Page History
...
Software requirements
NAP-SDK er uviklet udviklet og testet på.
Pakke | Version |
---|---|
npm | 6.14.x8 |
node | 1014.16.x og 12.18.4.0 |
Nap-typescript-sdk
Udviklingssetup og targets:
Installer afhængigheder
Installer dependecies dependencies ved at køre `npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/`
...
For at køre unit tests med Karma kør "npm run test". Det generere genererer en coverage rapport i coverage/ mappen.
...
For at bygge SDK til CI køre "npm run ci:build". Jenkins filen beskriver jenkins pipelinen.
Releases og snapshots
Der kan laves snapshots og release-candidates fra jenkins til NSP npm repository.
Versionering af Nap-typescript-sdk følger sem.
For at lave et release opdateres versionen i (package.json), hvorefter der køres en `npm i` for at opdatere package-lock.json.
Dernæst laves et tag i SVN på den følgende version manuelt som fx:
Code Block | ||
---|---|---|
| ||
svn copy https://svn.nspop.dk/svn/libraries/nap/nap-typescript-sdk/trunk \
https://svn.nspop.dk/svn/libraries/nap/nap-typescript-sdk/tags/release-1.0.0-rc.1 \
-m "Tagging the 1.0.0-rc.1 release of the 'nap typescript sdk' project."
|
Det er vigtigt at tagget i svn stemmer overens med versionen i package.json og package-lock.json
Linting
Kør "npm run lint" for linting.
...
NAPMessage 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 eventkataloget version 1.
Eventkataloget fungerer som versionering af NAP eventsNAPMessages.
Et anvenderprojekt definerer hvilken version af eventkataloget den implementerer.
Dette fungerer som en kontrakt således, at et givent værtssytem ved et givent projekt kan håndtere en række events.
...
Et værtssystem skal ligge en sådan bridge på window.NAP - få for nærmere beskrivelse af det, henvises til Guide til anvender.
...
Mapping funktioner | |
Funktionsnavn | Beskrivelse |
---|---|
getSessionValue getFilteredProjects() | Trækker SAMLassertion ud af et SessionOpenEventen string liste ud med WebAppShortnames. |
getPatientInfo() | Trækker familyName, givenName og ssNo ud af et PatientOpenEvent |
...
Mapping funktioner | |
Type | Beskrivelse |
---|---|
FHIRResourceType | Resource typen for event ('Patient' | 'Basic') |
FHIRSystem | System identifier ('nap') |
FHIRIdentifierSystem | System identifier til cpr, errorMessage og errorDescription |
FHIRextensionURL | Url for extensions WEBAPPSHORTNAMES, WEBAPPSHORTNAME, WEBAPPAUDIENCE, WEBAPPSERVICEENTRY, WEBAPPPRODUCER, WEBAPPRELEASEDATE, WEBAPPURL, WEBAPPCATALOGUEVERSIONS |
EventKatalog
Fungerer som versionering af de forskellige events, hvor der udstilles håndtag de events der er implementeret i en given version. Desuden udstiller den også hjælpefunktioner til at generere NAPmessages.
Code Block | ||
---|---|---|
| ||
export const EventCatalogue: EventCatalogues = {
v1: {
WebAppSelected: NAPEventType.WebAppSelected,
PatientOpen: NAPEventType.PatientOpen,
PatientClose: NAPEventType.PatientClose,
ProjectsRetrieved: NAPEventType.ProjectsRetrieved,
ProjectsFiltered: NAPEventType.ProjectsFiltered,
SessionClose: NAPEventType.SessionClose,
SessionError: NAPEventType.SessionError,
MessageFactory: {
createPatientOpenMessage: createPatientOpenMessageV1,
createPatientCloseMessage: createPatientCloseMessageV1,
createProjectsRetrievedMessage: createProjectsRetrievedMessageV1,
createSessionCloseMessage: createSessionCloseMessageV1,
createSessionErrorMessage: createSessionErrorMessageV1,
createWebAppSelectedMessage: createWebAppSelectedMessageV1
}
},
}; |
Nap-angular-sdk
Indeholder 3 "projekter".
...
Vær opmærksom på, at der findes en afhængighed til nap-typescript-sdk både for workspacet (package.json) og for selve sdket (projects/nap-angular/package.json). Begge skal opdateres, for at anvende en nye versionerversion.
Byg
Kør "npm run build" for at bygge projeket med sdk. Dette giver et output i dist/ folderen.
...
Jenkins filen beskriver jenkins pipelinen.
Releases og snapshots
Der kan laves snapshots og release-candidates fra jenkins til NSP npm repository.
Versionering af Nap-angular-sdk følger sem versioneringen af Nap-typescript-sdket.
For at lave et release opdateres versionen i workspacet (package.json) og for selve sdket (projects/nap-angular/package.json) hvorefter der køres en `npm i` for at opdatere package-lock.json.
Dernæst laves et tag i SVN på den følgende version manuelt som fx:
Code Block | ||
---|---|---|
| ||
svn copy https://svn.nspop.dk/svn/libraries/nap/nap-angular-sdk/trunk \
https://svn.nspop.dk/svn/libraries/nap/nap-angular-sdk/tags/release-1.0.0-rc.1 \
-m "Tagging the 1.0.0-rc.1 release of the 'nap angular sdk' project."
|
Det er vigtigt at tagget i svn stemmer overens med versionen i package.json og package-lock.json
Linting
Kør `npm run lint` for linting.
...
- Det egentlige nap-react-sdk i src
- Npm package mangeren bruger .npmignore til at ignore visse filer så som node_modules og example, når pakken skal bundles og publishes
- Et En eksempel implementering, som motionerer nap-react-sdk i example/src. Heri er injected en fakebridge i index.html. Dette er den egentlige test af SDKet, og der køres ingen unit tests. Sendte beskeder printes i console.log.
...
Installer dependencies ved at køre npm install --registry https://nexus.nspop.dk/nexus/repository/nsp-npm/
Vær opmærksom på, at der findes en afhængighed til nap-typescript-sdk både for for sdket (package.json) og for eksemplet (example/package.json). Begge skal opdateres, for at anvende en nye version.
Byg
Kør "npm run build" for at bygge projektet. Dette giver et output i dist/ folderen. Brug "npm run build-prod" for et produktionsbyg.
...
Jenkins filen beskriver jenkins pipelinen.
Releases og snapshots
Der kan laves snapshots og release-candidates fra jenkins til NSP npm repository.
Versionering af Nap-react-sdk følger sem versioneringen af Nap-typescript-sdket.
For at lave et release opdateres versionen i (package.json), hvorefter der køres en `npm i` for at opdatere package-lock.json.
Dernæst laves et tag i SVN på den følgende version manuelt som fx:
Code Block | ||
---|---|---|
| ||
svn copy https://svn.nspop.dk/svn/libraries/nap/nap-react-sdk/trunk \ https://svn.nspop.dk/svn/libraries/nap/nap-react-sdk/tags/release-1.0.0-rc.1 \ -m "Tagging the 1.0.0-rc.1 release of the 'nap react sdk' project." |
Det er vigtigt at tagget i svn stemmer overens med versionen i package.json og package-lock.json
Development server
Kør "npm run start" for en byggeserver, der bygge sdk'et hver ændringer gemmes. Outputtet er i dist/ folderen.
...