Page History
...
Indholdsfortegnelse
| Table of Contents |
|---|
Se eksempel på udfyldelse på DDS: DDS - Guide til anvendere - NSP services - Global Site
Introduktion
Formål
Denne guide har som formål at give et overblik over <xxx>.
<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
Digital Post Adapter (DPA). Formålet med dokumentet er at give anvendere et overblik over løsningen, samt en oversigt over, hvilke User Stories der er understøttet af DPA og hvordan disse er implementeret.
Beskrivelse
Digital Post Adapter står for at videresende breve til Digital Post Komponent. Dette gøres asynkront via en kø, således at brevene vil blive sendt før eller senere, selv hvis DPK er utilgængelig.
Links til mere information
Dokumentationen for DPK kan findes her: https://github.com/trifork/dpk-docs/wiki
Det er kaldet SendPDF der bliver brugt af DPA.
Grafisk fremstilling og sammenhængen
DPA modtager breve fra andre services og sender dem videre til DPK, som omdanner dem til PDF og sender dem videre.<Angiv use cases såfremt det er relevant>
Læsevejledning og forudsætninger
Dette dokument er henvendt til udviklere og arkitekter, der skal anvende <> Digital Post Adapter .
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.>
| Service udstil type | <Angiv typen, f.eks. DGWS, IDWS, ...> | Krævede adgange | <Angiv adgange som er nødvendige for anvendere for at kunne benytte servicen/komponenten> |
| Whitelisting | <Angiv eventuel nødvendig whitelisting> | ||
| Krævet sikkerhedsniveau | <Angiv krav til authentication for at kunne bruge servicen/komponenten> | ||
| Forudsætninger for anvendelse | <Angiv forudsæntninger som er nødvendige for at kunne bruge servicen/komponenten, eventuelle nødvendige kald til andre services, etc.> | ||
| Logning | <Angiv om og hvad der logges> | <evt. yderligere krav eller forhold> |
<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>
| Krævet sikkerhedsniveau | VOCES eller FOCES certifikat |
| Logning | Der logges svar fra DPK, i de tilfælde hvor DPK melder fejl |
Definitioner og referencer
| Reference | Beskrivelse |
|---|---|
| DPA | Digital Post Adapter |
| DPK | Digital Post Komponent. Komponent som leverer digital post til Digital Post og Strålfors |
Adgang, brug og snitflader
Adgang
...
<Beskrivelse af hvordan service/komponent bruges, snitflade(r), endpoints, og andet relevant>
...
| Endpoint(s) | <Angiv udstillede endpoint(s), og hvad de hedder.> | På <serverurl>/digitalpost/2024/05/29/send findes endpointet http://nspop.dk/digitalpost/2024/05/29/#send | |
| WSDL | WSDL | <Angiv henvisning til WSDL(er). For ekstern anvendbare services typisk på https://wsdl.nspop.dk/> | |
| Beskrivelse af services | <Beskrivelser af service(s) / actions på endpoint(s). I lægmands termer beskrive hvad man kan forvente af de enkelte services.> | ||
| Namespaces etc | <Angiv eventuelt Namespaces, eksterne typer, ..> |
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>
...
| Afsendelse af brev til Digital Post, både digitalt og (hvis relevant) fysisk. | |
| Namespaces etc | http://nspop.dk/digitalpost/2024/05/29/ |
Snitfladebeskrivelse og brug
SendDigitalPost
SendDigitalPost kaldet sætter et Digital Post brev på en kø, som afvikles med jævne mellemrum. Hvis et brev succesfuldt sendes til DPK fjernes det fra køen, men hvis kaldet mod DPK fejler beholdes brevet i køen og forsøges afsendt igen senere og supporten får vha. is-alive kald besked om at der er et brev som er fejlet.
SendDigitalPostRequest
| SendDigitalPostRequest | ||
|---|---|---|
| Element | Beskrivelse | Påkrævet |
| message-id | UUID version 4 som unikt udpeger genne beske | X |
| recipient-id | ID-nummer for modtager af brevet. På nuværende tidspunkt understøttes kun CPR-numre | X |
| recipient-id-source | OID for ID-nummeret. På nuværende tidspunkt understøttes kun 1.2.208.176.1.2 | X |
| template-physical | ID for den fysiske skabelon der skal udfyldes. | |
| template-digital | ID for den digitale skabelon der skal udfyldes. | X |
| recipient-details | Key-value liste over modtager-specifikke detaljer der skal erstattes ind i skabelonen | Nogle templates har påkrævede detailer, som skal fremgå i enten recipient-details eller template-details |
| template-details | Key-value liste over skabelon-specifikke detaljer der skal erstattes ind i skabelonen | Nogle templates har påkrævede detailer, som skal fremgå i enten recipient-details eller template-details |
SendDigitalPostResponse
| SendDigitalPostResponse | ||
|---|---|---|
| Element | Beskrivelse | Påkrævet |
| message-id | Samme message-id som blev sendt ind vil blive returneret. Dette betyder ikke at brevet er sendt succesfuldt afsted, men at det er blevet sat i køen og vil blive forsøgt afsendt snarest | X |
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.
...
Disse Identifiers kan angives som template i requestet, og sender de tilsvarende Identifiers til DPK. Substitutions-nøglerne kan enten tilføjes som recipient-details eller som template-details. Hvis en substitutions-nøgle er angivet som både recipient-details og template-details vil recipient-details værdien blive valgt.
| Identifiers hos DPK | Obligatoriske substitutions-nøgler | Valgfri substitutions-nøgler |
|---|---|---|
fgvhr/20241218/digital/BekraeftelseRegistreringFravalg fgvhr/20241218/physical/BekraeftelseRegistreringFravalg |
|
|
fgvhr/20241218/digital/BekraeftelseFortrydelseFravalg fgvhr/20241218/physical/BekraeftelseFortrydelseFravalg |
| |
fgvhr/20241218/digital/PaamindelseRegistreringFravalg fgvhr/20241218/physical/PaamindelseRegistreringFravalg |
|
Fejlbeskeder
I fejl-scenarier vises disse fejlkoder:
| Fejlkode | Scenarie |
|---|---|
| system-validation-error | Fejl i sikkerheds-billet valideringen |
| invalid-oid-error | Hvis der angives en anden recipient-id-source end understøttet. På nuværende tidspunkt understøttes kun 1.2.208.176.1.2 |
| invalid-uuid-error | Hvis message-id ikke er en UUID version 4 |
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 på SendDigitalPostRequest/Response
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
<eksempel her> |
<mere eksempel>
Test
<beskriv Test muligheder, test-systemer og eventuelle testdata>
Eksempel kode og klient
Eksempel kode
<SendDigitalPostRequest>
<message-id>7edac017-97a1-4cdc-aa7c-ff2298514aff</message-id>
<recipient-id>1111111118</recipient-id>
<recipient-id-source>1.2.208.176.1.2</recipient-id-source>
<template-physical>fgvhr/20241218/physical/BekraeftelseRegistreringFravalg</template-physical>
<template-digital>fgvhr/20241218/digital/BekraeftelseRegistreringFravalg</template-digital>
<recipient-details>
<key>ikrafttraedelsesdato</key>
<value>2025-05-01</value>
</recipient-details>
<template-details>
<key>date</key>
<value>2025-04-25</value>
</template-details>
</SendDigitalPostRequest>
<SendDigitalPostResponse>
<message-id>7edac017-97a1-4cdc-aa7c-ff2298514aff</message-id>
</SendDigitalPostResponse> |
Eksempel kode
Eksempel kode
Denne eksempel-kode gør brug af nsp-test-idp biblioteket til håndtering af SOAP og SEAL.<Eksempel kode. Det er meget lettere at lave sin egen implementering, hvis man kan kigge efter en anden ....>
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
<eksempel her, eller reference andet steds> |
Eksempel klient
...
URI endpoint = URI.create("http://localhost:8080/digitalpost/2024/05/29/send");
String action = "http://nspop.dk/digitalpost/2024/05/29/#send";
Identity identity = sundhedsdatastyrelsen();
String request = """
<ns1:sendDigitalPostRequest xmlns:ns1="http://nspop.dk/digitalpost/2024/05/29/" >
<message-id>7edac017-97a1-4cdc-aa7c-ff2298514aff</message-id>
<recipient-id>1111111118</recipient-id>
<recipient-id-source>1.2.208.176.1.2</recipient-id-source>
<template-physical>fgvhr/20241218/physical/BekraeftelseRegistreringFravalg</template-physical>
<template-digital>fgvhr/20241218/digital/BekraeftelseRegistreringFravalg</template-digital>
<recipient-details>
<key>ikrafttraedelsesdato</key>
<value>2025-05-01</value>
</recipient-details>
<template-details>
<key>date</key>
<value>2025-04-25</value>
</template-details>
</ns1:sendDigitalPostRequest>
""";
try (NspSoapClient nspSoapClient = new NspSoapClient(System.out::println)) {
try (NspSoapClient.NspSoapResponse soapResponse = nspSoapClient.request(endpoint, action).as(identity).execute(request)) {
assertEquals(200, soapResponse.getStatus());
String response = IOUtils.toString(soapResponse.getResponse(), StandardCharsets.UTF_8);
assertTrue("Actual response: " + response, response.contains("7edac017-97a1-4cdc-aa7c-ff2298514aff"));
}
} |
Dokument Historik
| 3/4 2025 | Martin Henriksen/SDS | Etablering af dokumentation |
| 4/6 2025 | Markus Andreassen/Trifork | Udfyldelse af dokumentation |
| 27/7 2025 | Markus Andreassen/Trifork | Udvidelse af dokumentation ifbm. QA |
