Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Navitabs
rootFacade (GM-Facade) - Leverancebeskrivelse


Indholdsfortegnelse

Table of Contents

Se eksempel på udfyldelse på DDS: DDS - Guide til anvendere - NSP services - Global Site

Introduktion

Formål

Denne guide har

...

til formål at give et overblik over

...

<Denne guide er tilegnet klienter til NSP og specifikt den leverede komponent/service. Denne del skal være tilstrækkelig for en klientleverandør, som skal udvikle aftagersystemer. Heri tilgodeses specielt referencer til andre dokumenter, da en anvender også skal have en bredere forståelse af den anvendte komponent og eventuelle omgivelser.

Det er selvfølgelig også ret væsentligt at template udfyldes udtømmende, herunder i forhold til den logik og de regler, der skal følges for den måde servicen anvendes på, og som servicen selv efterlever>

Beskrivelse

<Formål og beskrivelse af komponenten/servicen>

Links til mere information

<Relevante links til andre dokumenter, herunder i forhold til de data services skal arbejde på, og den model de følger>

<Eventuel link til mere uddybende beskrivelse, intern på NSP og eksternt>

Grafisk fremstilling og sammenhængen

<Tegning(er) der letter forståelsen og beskrivelser af relevante sammenhængen>

Relevante use-cases

<Angiv use cases såfremt det er relevant>

Læsevejledning og forudsætninger

Dette dokument er henvendt til udviklere og arkitekter, der skal anvende <> .

Det forventes at læseren har kendskab til <f.eks.: SOAP WebService, Den Gode WebService (DGWS) og Sercurity Token Service (STS), o.a.>

<Eventuel andre forudsætninger>

Sikkerhed

<Forudsætninger for anvendelse og krævede adgange, whitelistinger etc., Sikkerhedsniveau. Angiv krav til authentication for at kunne bruge servicen/komponenten.>

...

Graviditetsmappens facade (GM-Facade) med henblik på at intern anvender kan tilgå GM-Facaden og udstille data fra Graviditetsmappen. Formålet med dokumentet er at give overblik over løsningen, samt indsigt i krav til OpenID Connect (OIDC), proces for whitelisting, samt adgangs- og testforudsætninger. 

Beskrivelse

GM-Facaden er en FHIR-baseret komponent, som udstiller data fra Graviditetsmappen via NMHD komponenten (Generisk udstilling (MHD) - Leverancebeskrivelse). NMHD servicen er en generisk service, som har til formål at udstille data hentet fra dokumentdelingsservicen via en generisk FHIR-snitflade. Adgangen styres via NSP’s sikkerhedskomponenter (Accesshandler, STS) med Triforks OIDC som er godkendt af SDS (Sundhedsdatastyrelsen) og whitelisted i de relevante komponenter.

Image Added


Definitioner og referencer

Reference / termBeskrivelse
GM FacadeGraviditetsmappens app facade
OIDCOpenID Connect – standard for identitets- og adgangsstyring.
JTP-H

Joint Trust Profile for Health – dansk profil for anvendelse af OIDC i sundhedsdomænet.

JWT Token Profile for Healthcare (se NSP Access Handler - Design og arkitekturbeskrivelse

FHIR

FHIR står for Fast Healthcare Interoperability Resources.

Det er en standard udviklet af HL7 (Health Level 7) til elektronisk udveksling af sundhedsoplysninger.

NSISNational Standard for Identiteters Sikringsniveau.
SDSSundhedsdatastyrelsen – ansvarlig for godkendelse og whitelisting af OIDC.
NMHD

National Mobile Health Data – komponent i NSP-infrastrukturen.

MHD  = Mobile Access to Health Documents

STSSecurity Token Service – håndterer sikkerhedstokens i NSP.
AccesshandlerNSP-komponent, der kontrollerer adgang til GM-Facaden.


Relevante use-cases

Pt. er det kun borgeren selv der kan hente data via. denne GM Facade.

Læsevejledning og forudsætninger

Denne guide henvender sig til tekniske anvendere (udviklere, arkitekter), som skal integrere med GM-Facaden via NSP.
Læsere bør have kendskab til:

  • OIDC og JTP-H-profilen

  • FHIR-standarder

  • NSP’s sikkerhedsarkitektur (STS, NMHD, Accesshandler)

Links til mere information

Dokumentation for anvendt FHIR model findes her: https://build.fhir.org/ig/trifork/gm-fhir-ig/branches/main/index.html

Dokumentation for krav til JTP-H findes her: NSP Access Handler - Design og arkitekturbeskrivelse 

Tilslutningsaftale – Bestillingsark for adgang til eksternt testmiljø

Bruno Collection – NMHD – NSP Mobile Access to Health Documents

Bruno Collection - GM-Facade 

FAQ NSP miljøer - NSP services - Global Site


Sikkerhed

Adgangen sker gennem NSP’s sikkerhedskomponenter og følger JTP-H-profilen, hvor borgeren logger ind med MitID, og et OIDC-token ved kald til GM-Facaden.

Sikkerheden i GM-Facaden bygger på OIDC og NSIS (National Standard for Identiteters Sikringsniveau).

  • Alle OIDC-udbydere skal opfylde NSIS niveau "Betydelig" og  OIDC’er godkendt af SDS må benyttes. Internt benyttes Triforks OIDC

  • Whitelisting i Accesshandler og STS er påkrævet, før adgang kan gives.


ForholdForklaring
Service udstil typeREST med JTP-H bearer token.
Krævede adgangeBorger-login via JTP-H (JTP-H token identificerer borgeren, der har adgang til egne dokumenter)
OIDCOIDC (skal godkendes og whitelistes af SDS)
WhitelistingKræves for ny OIDC (konfigureres i Accesshandler, STS, NMHD)
Sikkerhedsniveau

NSIS Betydelig 

Data udstilles kun til borgerlogin, og kun borgerens egne dokumenter.

LogningStandard adgangslog via NSP Access Handler

Adgang, brug og snitflader

Adgang sker ved, at borgeren logger ind og får udstedt et JTP-H token fra en OIDC-udsteder. Dette token anvendes som bearer token i REST-kaldet mod GM-Facaden og giver kun adgang til borgerens egne dokumenter

Adgang

Adgang til servicen sker ved at medsende en Authorization-header med bearer token i form af JTP-H. Et gyldigt JTP-H token til test kan erhverves vha. OATH 2.0 med følgender properties:  


Snitfladebeskrivelse og brug

GM-Facaden tilbyder FHIR-baserede endpoints til hentning af journaldata for borgere i graviditetsforløb.
Adgangen sker via NSP’s sikkerhedskomponenter, hvor anvenderen kalder GM-Facaden med et autoriseret JTP-H-token udstedt af en godkendt OIDC.

Et gyldigt token angiver altid borgeren, der er logget ind via MitID, og GM-Facaden returnerer udelukkende data for denne borger.

Adgang til servicen sker ved at medsende en Authorization-header med bearer-token i form af JTP-H.

Hent Journal for borger

Endpoint:

FeltBetydning
Endpoint

<serverurl>/gmaf/api/2025/06/25/journal

Viser formatet på GM-Facadens endpoint. Det er det REST-endpoint, som tredjeparts borgervendte anvendere kalder, når de skal hente borgerens data fra Graviditetsmappen.

Beskrivelse af services

Servicekaldet returnerer den borger, der er angivet i JTP-H-tokenet – dvs. borgerens egne graviditetsrelaterede journaldata.

(Selve indholdet af FHIR dokumentet afhænger af det borgertoken der videresendes fra BFF'en)

Resultat

Angiver hvilke dokumenttyper servicen returnerer:
• Svangerskabsjournal (PRF)
• Vandrejournal (PSCR)
• Målinger (PMR)



Kald til servicen: 

Henter borgers journal i Graviditetsmappen : 

GET <serverurl>/gmaf/api/2025/06/25/journal 

Når endpointet kaldes eksempelvis i test  "https://test1-cnsp.ekstern-test.nspop.dk:8443/gmaf/api/2025/06/25/journal" så returneres der et FHIR dokument.


GET  <serverurl>/gmaf/api/2025/06/25/journal
HeaderValueBeskrivelse
Authorization
Bearer <JTP-H token>

Header med JTP-H-token udstedt af en SDS-godkendt OIDC. Tokenet identificerer borgeren og anvendes til autorisering via NSP Accesshandler.


Returneret data: 

Endpointet returnerer JSON, der følger implementerings-guiden for dokumenttyperne
Svangerskabsjournal (PRF), Vandrejournal (PSCR) og Målinger (PMR)
(se FHIR-IG: https://build.fhir.org/ig/trifork/gm-fhir-ig/branches/main/index.html


Detaljeret snitfladebeskrivelse og FHIR profil:

Den fulde tekniske snitfladebeskrivelse og FHIR-profiler for GM-Facaden findes i den officielle Implementation Guide (GM-FHIR-IG):
https://build.fhir.org/ig/trifork/gm-fhir-ig/branches/main/index.html

Her findes beskrivelser af alle FHIR-profiler - inkl de konkrete datatyper og dokumentstrukturer i GM-Facaden

Den fulde oversigt over tekniske artefakter for GM-Facaden findes på artefakter-oversigten i GM-FHIR-IG. Herfra kan du klikke videre til alle relevante profiler, værdilister og eksempler.

https://test1-cnsp.ekstern-test.nspop.dk:8443/gmaf/api/2025/06/25/journal


Endpoints på TEST1 og TEST2: 

https://test1-cnsp.ekstern-test.nspop.dk:8443/gmaf

https://test2-cnsp.ekstern-test.nspop.dk:8443/gmaf

Fejlbeskeder

I fejl-scenarier vises disse fejlkoder:

Fejlkode

Scenarie

Ugyldig sikkerhedsbilletSikkerhedsbillet er ikke gyldig, f.eks., udløbet, forkert audience osv.
Tjenesten skal kaldes med en gyldig sikkerhedskontekstDer er angivet et bearer token
Ingen matchende aktør fundet for sikkerhedskontekstBearer token angiver ikke et gyldigt borgeropslag

Testdata

Følgende brugere har journaldata på Test 1:


CPRBrugernavnBeskrivelse

0708850322

KayaJokumsen

1507939666

Minerva

2911039098

Pouline
0511820464 Malle Sörensen
1404049428Casandra Kant
1710969864SysMathisen
1403879262 TestinnaTermina 
2610087224 

Bitte My Småland 


1408079612 Cirkeline Bublé 

1905839596

DagmarNap
 0904539384AmbraSand
2008902346KimmiKimsen
2108901238MimmiMimsen
2208901234NinniNinsen
2308901428OdaOddsen
 1201664078LivaLiddel


Eksempel kode og klient

Se integrations test i https://git.nspop.dk/scm/com/graviditetsmappens-app-facade.git for eksempel på komplet integration til komponenten.

...

<Eventuel nærmere introduktion>

<Eventuel yderligere beskrivelse af området / domænet som servicen/komponenten servicerer>.

<Samt yderligere information som er vigtigt for anvendelsen eller forståelsen>

Definitioner og referencer

...

Adgang, brug og snitflader

Adgang

<Beskrivelse af hvordan service/komponent bruges, snitflade(r), endpoints, og andet relevant>

...

<Angiv udstillede endpoint(s), og hvad de hedder.>

...

<Angiv henvisning til WSDL(er). For ekstern anvendbare services typisk på https://wsdl.nspop.dk/>

...

<Beskrivelser af service(s) / actions på endpoint(s). I lægmands termer beskrive hvad man kan forvente af de enkelte services.>

...

Snitfladebeskrivelse og brug

<Beskrivelse af Snitfladerne, samt den logik og de regler, der skal følges for den måde servicen anvendes på, og som servicen selv efterlever.

<snitflade 1>

<Beskrivelse af hver snitflade input/output>

<snitflade 1>Request

<beskrivelse af request>

<Marker hvilke der er obligatoriske. Gerne en beskrivende tekst på samtlige parametre, og gerne også et eksempel på hvilke data der kan sættes ind her. Selv hvis man forstår beskrivelsen, så er det stadig godt at have et eksempel. Angiv hvis der er undtagelser eller specielle hensyn>

...

<snitflade 1>Response

<beskrivelse af svar>

...

<snitflade 2, osv., med request/response>

Generelle koder, værdier, etc.

<Angiv eventuelle generelle koder, værdier, etc>

Fejlbeskeder

<Beskrivelse af  fejlbeskeder, og i hvilke situationer man kan forvente at se disse i.

Noter omkring ting som går på tværs af services. Det kan være fejl som optræder generelt og som man skal være opmærksom på.>

Eksempler på request/response

Eksempler på request og response til de operationer der udstilles. De enkelte elementer er beskrevet under snitfladebeskrivelse. Klient proxier kan genereres udfra WSDL'en.

<eksempel 1 på ..>

Code Block
languagexml
titleEksempel request/response
collapsetrue
<eksempel her>

<mere eksempel>

Test

<beskriv Test muligheder, test-systemer og eventuelle testdata>

Eksempel kode og klient

Eksempel kode

<Eksempel kode. Det er meget lettere at lave sin egen implementering, hvis man kan kigge efter en anden ....>

Code Block
languagexml
titleEksempel kode
collapsetrue
<eksempel her, eller reference andet steds>

Eksempel klient

<og hvor det giver mening angiv eventuel eksempel klient, samt hvordan og hvor det eventuelt kan eksekveres>

Dokument Historik

3/4 2025Martin Henriksen/SDSEtablering af dokumentation
1/7 2025Thomas GlæsnerUdfyldt
19/11 2025Kirsten VintherTilrettet