Nap-typescript-sdk

Udviklingssetup og targets:

Installer dependencies

Installer dependecies ved at køre `npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/`

Build

Kør `npm run build` for at bygge projektet. Dette giver et output i dist/ folderen. 

Unit tests

For at køre unit tests med Karma kør `npm run test`. Det smider en coverage rapport i coverage/ folderen.

CI

For at bygge SDK til CI køre `npm run ci:build`.

Jenkins filen beskriver jenkins pipelinen

Linting

Kør `npm run lint` for linting.

Documentation

For at generere TsDoc køre `npm run doc`

Projektstruktur

NAPMessages

NAPmessages er meget inspireret af FHIR / FHIRcast (https://fhircast.org/specification/Feb2020Ballot/), og er udgangspunktet i NAPmessage datastrukturen og grundlaget for de events der er implementeret i eventkatalog version 1. Eventkataloget fungerer som versionering af NAP events. 

Et anvenderprojekt definerer hvilken version af eventkataloget den implementerer. Dette fungerer som en kontrakt således, at et givent værtssytem ved at et giventprojekt kan håndtere en række events.

Skal der implementeres nye events kræver det nye releases af nap-typescript-sdket.

Bro

Nærmere beskrivelse mangler.

Marshalling

Nærmere beskrivelse mangler.

Message-streams

Nærmere beskrivelse mangler.

FhirValueGetter

Der er defineret et fhir-value-getter NameSpace med utility funktioner til mappe NapMessages til de værdier, som egentlig er interessan.. 

Mapping funktioner

FunktionsnavnBeskrivelse
getSessionValue()Trækker SAMLassertion ud af et SessionOpenEvent
getPationInfo()Trækker familyName, givenName og ssNo ud af et PatientOpenEvent


FhirValueSetter

Der er defineret fhir-value-setter NameSpace til enums af typiske værdier, der skal sættes i for NapMessages.

Mapping funktioner

TypeBeskrivelse
FHIRResourceTypeResource typen for event ('Patient' | 'Basic')
FHIRSystemSystem identifier ('nap')
FHIRIdentifierSystemSystem identifier til cpr, errorMessage og errorDescription


Nap-angular-sdk

Indeholder 3 "projekter".

  1. Et angular workspace i src-folderen. Dette kræves af angular framework for at serve et library.
  2. Det egentlige nap-angular-sdk, som warapper nap-typescript-sdk, i projecs/nap-angular
    1. ng-package.json definerer de filer der skal pakkes og publishes.
  3. En test implementering, som motionerer nap-angular-sdk i projects/test. Heri er injected en fakebridge i index.html.
    Dette er den egentlige test af SDKet, og der køres ingen unit tests.

Dependencies

Installer dependecies ved at køre npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/

Development server

For at starte en web pack dev server kør `npm run start:dev`.  Dette vil starte test implementering på (projects/test) http://localhost:4300/

Build

Kør `npm run build` for at bygge projektet. Dette giver et output i dist/ folderen. brug --prod flaget for et produktionsbyg.

Linting

Kør `npm run lint` for linting.

Documentation

For at generere TsDoc køres `npm run doc`.

Nap-react-sdk

Indeholder 2 "projekter".

  1. Det egentligt nap-react-sdk i src
    1. Her ligger en DEV.README i projektets rodfolder, specifikt egnet til udviklere, som beskriver de npm targets der opsat i projektet.
    2. Npm package mangeren bruger .npmignore til at ignore visse filer så som node_modules og example, når pakken skal bundles og publishes
  2. Et eksempel implementering, som motionerer nap-react-sdk i example/src. Heri er injected en fakebridge i index.html.


## Install



Install all used dependencies by running `npm i` - this will install all dependencies specified in package.json.

## Build

Run `npm run build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.

## Development server

For a dev server run `npm run start`. Navigate to `http://localhost:4300/`. The app will automatically redeploy on save.

## Unit tests

To run unit test use `npm run test`.

## Linting

Run `npm run lint` to lint the project.

## Documentation

To generate code documentation, use `npm run doc`.