Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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 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 (flows).

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

Dokumentatione Dokumentationen for DPK kan findes her: https://github.com/trifork/dpk-docs/wiki

...

Grafisk fremstilling og sammenhængen

Image Modified

DPA modtager breve fra andre services og sender dem videre til DPK, som omdanner dem til PDF og sender dem videre.

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 Digital Post Adapter .

Det forventes at læseren har kendskab til SOAP WebService, Den Gode WebService (DGWS) og Sercurity Token Service (STS).

Sikkerhed

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

 <Angiv forudsæntninger som er nødvendige for at kunne bruge servicen/komponenten, eventuelle nødvendige kald til andre services, etc.>
Service udstil typeDGWSKrævede adgange <Angiv adgange som er nødvendige for anvendere for at kunne benytte servicen/komponenten>
WhitelistingWhitelisting af certifikat og system-navn for hver brev-type
Krævet sikkerhedsniveau VOCES eller FOCES certifikatForudsætninger for anvendelse
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>

Der logges svar fra DPK, i de tilfælde hvor DPK melder fejl

Definitioner og referencer

ReferenceBeskrivelse
DPADigital Post Adapter. Denne komponent
DPKDigital 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>

...

<Angiv eventuelt Namespaces, eksterne typer, ..>
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

http://test1-cnsp.ekstern-test.nspop.dk:8080/digitalpost/service-contract/wsdl/digitalpostadapter_2024_05_29.wsdl

http://test2-cnsp.ekstern-test.nspop.dk:8080/digitalpost/service-contract/wsdl/digitalpostadapter_2024_05_29.wsdl

WSDL

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

Beskrivelse af servicesAfsendelse af brev til Digital Post, både digitalt og (hvis relevant) fysisk.
Namespaces etchttp://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
ElementBeskrivelsePåkrævet
message-idUUID version 4 som unikt udpeger genne beskeX
recipient-idID-nummer for modtager af brevet. På nuværende tidspunkt understøttes kun CPR-numreX
recipient-id-sourceOID for ID-nummeret. På nuværende tidspunkt understøttes kun 1.2.208.176.1.2X
template-physicalID for den fysiske skabelon der skal udfyldes.
Gyldige værdier kan findes i afsnittet Generelle koder, værdier, etc
 
template-digitalID for den digitale skabelon der skal udfyldes.X
recipient-detailsKey-value liste over modtager-specifikke detaljer der skal erstattes ind i skabelonenNogle templates har påkrævede detailer, som skal fremgå i enten recipient-details eller template-details
template-detailsKey-value liste over skabelon-specifikke detaljer der skal erstattes ind i skabelonenNogle templates har påkrævede detailer, som skal fremgå i enten recipient-details eller template-details

SendDigitalPostResponse

SendDigitalPostResponse
ElementBeskrivelsePåkrævet
message-idSamme 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 snarestX

Generelle koder, værdier, etc.

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.

fgvhr/20241218/BekraeftelseRegistreringFravalg
Identifiers hos DPKObligatoriske substitutions-nøglerValgfri substitutions-nøgler

fgvhr/20241218/digital/BekraeftelseRegistreringFravalg

fgvhr/20241218/physical/BekraeftelseRegistreringFravalg

  • ikrafttraedelsesdato
  • date
fgvhr/20241218/BekraeftelseFortrydelseFravalg

fgvhr/20241218/digital/BekraeftelseFortrydelseFravalg

fgvhr/20241218/physical/BekraeftelseFortrydelseFravalg


  • date 

fgvhr/20241218

/PaamindelseRegistreringFravalg

fgvhr/20241218/digital/PaamindelseRegistreringFravalg

fgvhr/20241218/physical/PaamindelseRegistreringFravalg


  • date

Fejlbeskeder

I fejl-scenarier vises disse fejlkoder:

FejlkodeScenarie
system-validation-errorFejl 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-errorHvis 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
languagexml
titleEksempel request/response
collapsetrue
<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>fgvhr<template-physical>fgvhr/20241218/physical/BekraeftelseRegistreringFravalg</template>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>

Test

...

Eksempel kode

...

Eksempel kode

<Eksempel kode. Det er meget lettere at lave sin egen implementering, hvis man kan kigge efter en anden ....>Denne eksempel-kode gør brug af nsp-test-idp biblioteket til håndtering af SOAP og SEAL.

Code Block
languagexml
titleEksempel kode
collapsetrue
<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 2025Martin Henriksen/SDSEtablering af dokumentation
4/6 2025Markus Andreassen/TriforkUdfyldelse af dokumentation
27/7 2025Markus Andreassen/TriforkUdvidelse af dokumentation ifbm. QA