Introduktion

Dette dokument henvender sig til udviklere og arkitekter, der vil anvende samtykkeservice på NSP. Det antages, at læseren er fortrolig med webservices og de yderligere komponenter på NSP såsom STS, udover at have kendskab til Den Gode Webservice (DGWS).

Dokument historik

VersionDatoAnsvarligBeskrivelse

1.0

29.06.2012

Systematic

Initial version

1.1

28.11.2014

Systematic

References to National Patient Index (NPI) removed

1.2

07.09.2016

Systematic

Description of additional conditions for data specific consent check (paragraph 2.2)

1.3

07.12.2016

Systematic

Consent services now support DCC – (paragraph 3.1.1 and 3.1.2)

Changed sts.endpoint to new endpoint in example properties file

1.4

13.06.2018

Systematic

Migrated to NSPOP SVN


22.10.2018KITDocument moved from Word to Confluence. Original document name was: PHB0035 Consent Services Users Guide.docx

12.11.2020KITOversættelse fra engelsk til dansk

17.12.2021KITTilføjet request/response eksempler for Samtykkeservicen Administration

Definitioner og referencer

DefinitionBeksrivelse

NSI

National Sundheds IT

NSP

National Service Platform

SHAK

SygeHusAfdelingsKode

SOR

Sundhedsvæsnets Organisationsregister

STS

Security Token Service

ReferenceBeskrivelse

DGWS 1.0

Den Gode Webservice 1.0

DGWS 1.0.1

Den Gode Webservice 1.0.1

HSUID-header

HSUID - Guide til anvendere

MinSpærring - Verifikation Service Interface Beskrivelse

Samtykkeservicen - Verifikation Service Interface Beskrivelse


MinSpærring - Administration Service Interface Beskrivelse

MinSpærring - Administration Service Interface Description

Data Model

MinSpærring - Data Model

Interface Beskrivelse

Snitfladerne for de to services er beskrevet i detaljer i dokumenterne Samtykkeservicen - Verifikation Service Interface Beskrivelse og MinSpærring - Administration Service Interface Description.

I dette afsnit er kun de enkelte komponenter, der er nødvendige for at beskrive brugen af de to tjenester beskrevet.

Fælles

Security header

For at kalde de to Samtykkeservicen services  skal der anvendes et niveau 3 ID-kort udstedt af STS'en.

Det skal desuden sikres, at man har et angivet CVR-nummer og at dette er whitelisted i servicen. De to services bruger forskellige whitelisting tabeller, så CVR-nummer skal føjes til den ene eller begge, afhængigt af hvilken tjeneste man vil tilgå.

Der findes en admin-snitflade (til Samtykkeservicen administrationsservices), som er tilgængelig for sundhedspersoner, der er autentificeret med et niveau 4 ID-kort og som besidder den nationale rolle 'urn:dk:healthcare:national-federation-role:code:41001:value:SundAssistR1'.


Medcom header

I Medcom-headeren skal det sikres, at Flow-ID er sat korrekt. Hvis servicene kaldes fra et andet system der også anvender DGWS skal Flow-ID bevares fra dette opkald.

Medcom-headeren returneres fra alle operationer da den er indstillet som en ind / ud-parameter med flowstatus opdateret til 'afsluttet med succes'.


HSUID header

I nogle tilfælde vil der være angivet en HSUID header ved kald til den administrative snitflade. Det er tilfældet hvis en systembruger kalder den administrative snitflade, så vi HSUID headeren indeholde oplysninger om den borger der skal transformeres til.

Beskrivelse af HSUID headeren findes her.

Er det borgeren selv der ændre sine spærringer må HSUID-headeren gerne være tom (null) da de oplysninger der skal bruges fra headeren allerede findes i IDWS billetten.

Samtykkeservicen Verifikation

Samtykkeservicen Verifikation har to operationer til at verificere samtykke fra en sundhedsfaglig: ConsentForUserCheck og ConsentForDataCheck.

Formålet med ConsentForUserCheck-operationen er, at gøre det muligt for et brugersystem hurtigt at kontrollere, om en bruger har generelt samtykke eller generel spærring.

Hvis operationen vender tilbage positiv eller negativ, er det ikke nødvendigt at kalde yderlige for at afgøre om en sundhedsfaglig har lov til at tilgå data.

På et positivt svar antager brugersystemet, at brugeren har samtykke til at se sundhedsdata vedrørende den borger, som Samtykkeservicen databasen er ansvarlig for. Omvendt antages det på et negativt svar, at borgeren har oprettet en spærring vedrørende adgang til data.

Operationen ConsentForDataCheck accepterer en liste over metadataelementer og filtrerer dem baseret på borgerens samtykke eller spærring.

Hvis ID'erne er en SHAK-kode eller et Ydernummer forsøger verifikations servicen at slå de relaterede SOR koder op som vil blive anvendt i forbindelse med brugeresn spærring eller samtykke.

Derudover, hvis der er angivet en dataspecifikt spærring til en organisation, inkluderes de hierarkiske forældre til den organisation i dette samtykke. Medmindre der er givet et specifikt samtykke.

Dette illustreres i de følgende eksempler. Figur 1 viser borger, der har et generelt samtykke, men som har givet en dataspecifikt spærring til organisationen "Org". Hvis organisations id'er fra alle fire organisationer sendes til Samtykkeservicen Verifikation viser diagrammet svaret hvor rød er spærring og grøn er samtykke.



Figur 1: Spærring på ”Org” der har indflydelse på den overliggende organisation.

På den anden side, hvis borgeren har oprettet en general spærring og givet et specifikt samtykke til data fra "Org" for en given bruger, påvirkes overliggende organisation ikke. Se figur 2.

Figur 2: Specikt samtykke på  ”Org” påvirker ikke overliggende organisation.

De ID'er der returneres fra servicen er de data som anvenderen har samtykke til at få vist.

It is the user systems responsibility to ensure that the used IDs are unique so that they can be distinguished in the returned list. The service does not use the IDs for anything else than the return list.

Det er anvendersystemets ansvar at sikre, at de anvendte ID'er er unikke, så de kan skelnes på den returnerede liste. Tjenesten bruger ikke ID'erne til andet end returlisten.

Web Service - ConsentVerification

Nedenstående operationer er udstillet af MinSpærring Verifikation.

Operation – ConsentForUserCheck

Navn: ConsentForUserCheck

Beskrivelse:

Undersøger om en borger har oprettet generelt samtykke, spærring eller data specifik spærring for en bruger.

Forespørgsel:

ConsentForUserCheckRequest består af:

PatientPersonCivilRegistrationIdentifier Identifkation af den borger samtykke/spærring ønskes undersøgt.

HealthcareProfessionalIdentifier
Identifkation af den sundhedsfaglige.

HealthcareProfessionalIdentifierOnBehalfOf
Identifikation af en sundhedsfaglig person på hvis vegne der træffes handling (udfyldes kun, hvis den udførende person er en sundhedsfaglig, der handler på vegne af en sundhedsfaglig med tilladelse i Sundhedsstyrelsens autorisationsregister).

HealthcareProfessionalOrganization
Identifikation af den sundhedsfaglige tilknyttede organisation.

Svar:

ConsentForUserCheckResponse består af:

ConsentIndication Samtykke, spærring eller dataspecifkt samtykke i nedenstående form:

Positive – betyder at den sundhedsaglige har adgang til data.

Negative – betyder at den sundhedsfaglige, eller dennes tilknyttede organisation, ikke har adgang til borgerens data.

DataSpecificConsent - betyder at der er registreret dataspecikt samtykke eller spærring. Derfor er det ikke muligt at afgøre om den sundhedsfaglige har adgang til data. Derfor skal der laves opfølgende kald til operationen ConsentForDataCheck.

Error handling:

Se afsnit 4.7.

Roles:

Systembruger

Prerequisites:

Både bruger og brugersystem skal godkendt som beskrevet i afsnitet Web Service Sikkerhed.

Operation – ConsentForDataCheck

Navn: ConsentForDataCheck

Beskrivelse:

Undersøger om en borger har oprettet data specifikke spærringer eller samtykker.

Forespørgsel:

ConsentForDataCheckRequest består af:

PatientPersonCivilRegistrationIdentifier Identifkation af den borger samtykke/spærring ønskes undersøgt.

HealthcareProfessionalIdentifier
Identifkation af den sundhedsfaglige.

HealthcareProfessionalIdentifierOnBehalfOf
Identifikation af en sundhedsfaglig person på hvis vegne der træffes handling (udfyldes kun, hvis den udførende person er en sundhedsfaglig, der handler på vegne af en sundhedsfaglig med tilladelse i Sundhedsstyrelsens autorisationsregister).

HealthcareProfessionalOrganization
Identifikation af den sundhedsfaglige tilknyttede organisation.

ConsentForDataRegistrations
Liste af datalementer der skal tjekkes for spærring eller samtykke registrering.

Svar:

ConsentForDataCheckResponse består af:

PositiveConsentDataRegistrations Liste af dokument ID fra forespørgsel som den sundhedsfaglige har lov til at se. professional.

Fejlhåndtering:

Se afsnit 4.7.

Roller:

Systembruger

Forudsætninger:

Både bruger og brugersystem skal godkendt som beskrevet i afsnitet Web Service Sikkerhed.

MinSpærring Verifikation Web Service Skemaer

Dette afsnit giver en generel beskrivelse af nøgleelementerne i XML-skemaerne, som sammen med WSDL-filer definerer de webservicefunktioner, der er beskrevet i 3.2. Derudover gives kardinalitet, når et element ikke er obligatorisk.

HealthcareProfessionalIdentifierOnBehalfOf

Element-navn

Beskrivelse

HeathcareProfessionalIdentifierOnBehalfOf

Identifikation af den sundhedsfaglige der arbejdes på vegne af.  Feltet er optionelt og kan angives uden samtykke.

ConsentForDataRegistrations

Element-navn

Beskrivelse

ConsentDataRegistration[0..n]

Liste af data elementer der skal laves verifikation på.

ConsentDataRegistration

Element-navn

Beksirvelse

Identifier[1]

Unik identifikation af data element (nøgleværdi) som angivet af kalende system.

Origin[1]

SOR, SHAK eller yder nummer der angiver hvilken organisation datalementet stammer fra.

CreationDateTime[1]

Tidspunkt hvor dataelement blev oprettet.

ConsentIndication

Element-navn

Beskrivelse

ConsentIndication

Positim, negativ eller data specifikt. Nedenstående værdisæt anvendes:

Positive, Negative, DataSpecificConsent

ConsentForDataResponse

Element-navn

Beskrivelse

DataIdentifiers[0..n]

Liste af unikke id af data element (nøgleværdi) som angivet af det kalende system.

ConsentForForeigners

Element-navn

Beskrivelse

ConsentForForeigners

Positiv eller negativ med nedenstående værdisæt:

Positive, Negative


Samtykkeservicen Administration

Opret- rediger- og sletoperationer accepterer alle samtykke/spærring-objekter som parametre. Indholdet af et objektet vises i MinSpærring - Datamodel afsnit 2.

Alle metoder i administrationen af samtykke og spærringer tillader den borger, der opretter en registrering (eller sletter / ændrer), at være forskellig fra den borger, som registreringen vedrører.

Dette betyder, at en borger kan oprette / redigere / slette registretring på vegne af en anden borger, så længe borgeren har tilladelse til det.

Det er brugersystemets ansvar, at brugeren er godkendt og autoriseret til at udføre en handling på vegne af en anden.

Admin-snitfladen er til brug for administrative medarbejdere til hjælp for ikke digitale borgere. Administrative medarbejdere har i denne snitflade adgang til alle administrative services: Opret, rediger, slet og hent.

Web Service - Admin

Denne administrative snitflade kan kun tilgåes af en administrativ bruger med den rette  nationale rolle.

Operation – ConsentRegistrationsGetV2

Name: ConsentRegistrationsGet

Beskrivelse:

Henter alle registreringer for en given borger.

Forespørgsel:

ConsentRegistrationsGetRequest der består af:

PatientPersonCivilRegistrationIdentifier Identifikation af borger der forespørges på.

Svar:

ConsentRegistrationsGetResponse der består af:

ConsentRegistrations Liste af alle aktive og inaktive registreringer for borgeren.

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Administrativ medarbejder

Forudsætninger:

Brugeren skal have den rette nationale rolle

Operation – ConsentAddPositiveV2

Name: ConsentAddPositiveV2

Beskrivelse:

Tilføjer et eller flere samtykker for den givne borger.

Forespørgsel:

ConsentAddPositiveV2Request der består af:

ConsentAdds Liste af samtykker, der skal tilføjes. Bemærk, at borgeren er identificeret i ConsentAdds.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Administrativ medarbejder

Forudsætninger:

Brugeren skal have den rette nationale rolle

Operation – ConsentAddConstraintV2

Name: ConsentAddPositiveV2

Beskrivelse:

Tilføjer en eller flere spærringer for den givne borger.

Forespørgsel:

ConsentAddConstraintV2Request der består af:

ConsentAdds Liste af spærringer, der skal tilføjes. Bemærk, at borgeren er identificeret i ConsentAdds.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Administrativ medarbejder

Forudsætninger:

Brugeren skal have den rette nationale rolle

Operation – ConsentModifyPositiveV2

Name: ConsentModifyPositiveV2

Beskrivelse:

Modificerer et eller flere samtykker for en borger.

Forespørgsel:

ConsentModifyPositiveV2Request der består af:

ConsentModifications Liste af samtykker som ønskes rettet. Bemærk, at borgeren er identificeret i ConsentModification.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Administrativ medarbejder

Forudsætninger:

Brugeren skal have den rette nationale rolle

Operation – ConsentModifyConstraintV2

Name: ConsentModifyConstraintV2

Beskrivelse:

Opdaterer en eller flere spærringer for en borger.

Forespørgsel:

ConsentModifyConstraintV2Request der består af:

ConsentModifications Liste af spærringer som ønskes rettet. Bemærk, at borgeren er identificeret i ConsentModification.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Administrativ medarbejder

Forudsætninger:

Brugeren skal have den rette nationale rolle

Operation – ConsentRevokeV2

Name: ConsentRevoke

Beskrivelse:

Tilbagekalder en eller flere registreringer i MinSpærring.  Dette finder sted ved inaktivering af givne registreringer.

Forespørgsel:

PatientConsentRevokeRequest der består af:

ConsentRevocations Liste af registreringer der skal tilbagekaldes.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Administrativ medarbejder

Forudsætninger:

Brugeren skal have den rette nationale rolle

Web Service - ConsentAdministration

Dette er den oprindelige version af administrationssnitfladen. Denne snitflade kan kun tilgåes af borgere.

Operation – ConsentRegistrationsGet

Navn: ConsentRegistrationsGet

Beskrivelse:

Henter alle registreringer for en given borger.

Forespørgsel:

ConsentRegistrationsGetRequest der består af:

PatientPersonCivilRegistrationIdentifier Identifikation af borger der forespørges på.

Svar:

ConsentRegistrationsGetResponse der består af:

ConsentRegistrations Liste af alle aktive og inaktive registreringer for borgeren.

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger, person på vegne af borger.

Forudsætninger:

Brugeren skal have den rette nationale rolle

Operation – ConsentAdd

Navn: ConsentAdd

Beskrivelse:

Tilføjer en eller flere samtykker eller spærringer for en given borger.

Forespørgsel:

ConsentAddRequest der består af:

ConsentAdds liste af beskrivelser af registreringer af samtykker/spærringer, der skal tilføjes. Bemærk, at borgeren er identificeret i ConsentAdds.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger, person på vegne af borger.

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed. Gentagne kald med identiske parametre vil der blive oprettet flere identiske spærringer eller samtykker.

Operation – ConsentModify

Navn: ConsentModify

Beskrivelse:

Opdaterer regsitreringer for en borger.

Forespørgsel:

ConsentModifyRequest der består af:

ConsentModifications Liste af beskrivelser af samtykker/spærringer, som ønskes modificeret. Bemærk, at borgeren er identificeret i ConsentModification.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger, person på borgerens vegne

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed.

Operation – ConsentRevoke

Navn: ConsentRevoke

Beskrivelse:

Tilbagekalder en eller flere registreringer i MinSpærring.  Dette finder sted ved inaktivering af givne registreringer.

Forespørgsel:

PatientConsentRevokeRequest der består af:

ConsentRevocations Liste af beskrivelser af registreringer, der skal tilbagekaldes. Bemærk, at borgeren er identificeret i ConsentRevocation.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed.

Web Service - Consent_Administration (V2)

Dette er en nyere version af administrationssnitfladen. Denne snitflade kan også kun tilgåes af borgere.

Operation – ConsentRegistrationsGetV2

Name: ConsentRegistrationsGet

Beskrivelse:

Henter alle registreringer for en given borger.

Forespørgsel:

ConsentRegistrationsGetRequest der består af:

PatientPersonCivilRegistrationIdentifier Identifikation af borger der forespørges på.

Svar:

ConsentRegistrationsGetResponse der består af:

ConsentRegistrations Liste af alle aktive og inaktive registreringer for borgeren.

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger, person på vegne af borger.

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed.

Operation – ConsentAddPositiveV2

Name: ConsentAddPositiveV2

Beskrivelse:

Tilføjer et eller flere samtykker for den givne borger.

Forespørgsel:

ConsentAddPositiveV2Request der består af:

ConsentAdds Liste af samtykker, der skal tilføjes. Bemærk, at borgeren er identificeret i ConsentAdds.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger, person på vegne af borger.

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed. Gentagne kald med identiske parametre vil der blive oprettet flere identiske spærringer eller samtykker.

Operation – ConsentAddConstraintV2

Name: ConsentAddPositiveV2

Beskrivelse:

Tilføjer en eller flere spærringer for den givne borger.

Forespørgsel:

ConsentAddConstraintV2Request der består af:

ConsentAdds Liste af spærringer, der skal tilføjes. Bemærk, at borgeren er identificeret i ConsentAdds.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger, person på vegne af borger.

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed. Gentagne kald med identiske parametre vil der blive oprettet flere identiske spærringer eller samtykker.

Operation – ConsentModifyPositiveV2

Name: ConsentModifyPositiveV2

Beskrivelse:

Modificerer et eller flere samtykker for en borger.

Forespørgsel:

ConsentModifyPositiveV2Request der består af:

ConsentModifications Liste af samtykker som ønskes rettet. Bemærk, at borgeren er identificeret i ConsentModification.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger eller person på vegne af borger.

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed.

Operation – ConsentModifyConstraintV2

Name: ConsentModifyConstraintV2

Beskrivelse:

Opdaterer en eller flere spærringer for en borger.

Forespørgsel:

ConsentModifyConstraintV2Request der består af:

ConsentModifications Liste af spærringer som ønskes rettet. Bemærk, at borgeren er identificeret i ConsentModification.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger eller person på vegne af borger.

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed.

Operation – ConsentRevokeV2

Name: ConsentRevoke

Beskrivelse:

Tilbagekalder en eller flere registreringer i MinSpærring.  Dette finder sted ved inaktivering af givne registreringer.

Forespørgsel:

PatientConsentRevokeRequest der består af:

ConsentRevocations Liste af registreringer der skal tilbagekaldes.

Svar:

Ingen

Fejlhåndtering:

Se den generelle beskrivelse af fejlhåndtering.

Roller:

Borger

Forudsætninger:

Både bruger og brugersystem skal godkendes som beskrevet i afsnitet Web Service Sikkerhed.

MinSpærring Administration WebService Skemaer

Dette afsnit giver en generel beskrivelse af nøgleelementerne i XML-skemaerne, der sammen med WSDL definerer de services der er beskrevet tidligere Hvor eksisterende OIO-typer identificeres, angives den i parentes efter elementnavnet. Derudover tilvejebringes kardinalitet, når et element ikke er obligatorisk.

ConsentItem

Element-navn

Beskrivelse

CitizenCPR

borgerens CPR nummer.

ConsentId

Unik ID på registreringen

PositiveConsent

Sandt hvis der er tale om et samtykke.

What[0..1]

Beskrivelse af hvilke data registreringen dækker.

Who [0..1]

Beskrivelse afsundhedsfaglig person eller organisation som registreringen dækker.

ValidFrom

Hvornår registreringen er gyldig. Bemærk at dette kun er en dato.

ValidTo [0..1]

Hvornår registreringen ikke længere er gyldt. Bemærk at dette kun er en dato.

WhatItem

Element-navn

Beskrivelse

OrganizationIdentifier

Identifikation af specifik sundhedsorganisation, muligvis med underorganisationer, hvorfra data stammer

IncludeSuborganizations

Om data fra underorganisationer for den angivne organisation også er inkluderet i registreringen.

ReferralStartDate [0..1]

Startdato fra hvor data er gældende.

ReferralEndDate [0..1]

Slutdato fra hvor data er gældende.

WhoItem

Element-navn

Beskrivelse

HealthcareProfessionalIdentifier

Identifikation af en bestemt sundhedsfaglig ved hjælp af CPR-nummer.

Eller


OrganizationIdentifier

Identifikation af specifik sundhedsorganisation, muligvis inkluderende underorganisationer.

Eller


ForeignHealthcareProfessionals

Angiver med værdien sandt, at samtykke dækker udenlandske sundhedspersonale (epSos).

IncludeSuborganizations

Om data for underorganisationer for den angivne organisation også er inkluderet i registreringen. Kun relevant, hvis OrganizationIdentifier er udfyldt.

ConsentAdds

Element-navn

Beskrivelse

ConsentItems

Liste af ConsentItem.

ConsentRegistrations

Element-navn

Beskrivelse

ConsentRegistrations

Liste af ConsentItem.

ConsentModification

Element-navn

Beskrivelse

ConsentItems

Liste af ConsentItem

ConsentRevocation

Element-navn

Beskrivelse

ConsentRevocations

Liste af ConsentItem.


Eksempler

I dette afsnit gives eksempler på, hvordan man kan bruge et Java-baseret systemet til at kalde de to services.

Kodeeksemplet er taget fra integrationstestene for servicen, og begge metodekald, variabler og parametre kommer fra integrationstesten.

Koden kan muligvis ikke være i stand til at kompilere eller køre i sin nuværende form, da den kun er beregnet som en guide til, hvordan man opretter et kald til tjenesten.

Eksempler på IDWS kald request og response

ConsentModifyContraint

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb" xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <wsse:Security mustUnderstand="1" wsu:Id="security">
            <wsu:Timestamp wsu:Id="ts">
                <wsu:Created>2024-06-05T14:35:44Z</wsu:Created>
            </wsu:Timestamp>
            <saml:Assertion xmlns:xs="http://www.w3.org/2001/XMLSchema"
                ID="_230b1aa1-4473-4704-829f-50f86ac0c47b" IssueInstant="2024-06-05T14:35:43Z"
                Version="2.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
                xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                <saml:Issuer>TEST1-NSP-STS</saml:Issuer>
                <ds:Signature Id="OCESSignature">
                    <ds:SignedInfo>
                        <ds:CanonicalizationMethod
                            Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                        <ds:Reference URI="#_230b1aa1-4473-4704-829f-50f86ac0c47b">
                            <ds:Transforms>
                                <ds:Transform
                                    Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
                                <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                            </ds:Transforms>
                            <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                            <ds:DigestValue>Nge2gfLQA163j933ZXBUnS0lc50=</ds:DigestValue>
                        </ds:Reference>
                    </ds:SignedInfo>
                    <ds:SignatureValue>
                        Ja1A4ji85Ru9aZmqVDB3rjFfXUhWq85RKfs3mt3iuY05/ayoyZ6rr0nwnGYog8bQpbE4nA9fzQ0IeKQMHKJr6m7IBHPZcRZxyIQgT0zDn2e0C2ysy5whbVf2px7a38B7ouOV6+2ubPbFBfEN0JKy0IJdoXbVBLeBe9IUdl5dMbGPBFVBH3a1NGghckRBaDl/y6jwq9i+3r17Pm3/H35+JWaGNvdif5Vi7Sg7sjL5HJZUzRqfBBsguJr+3tyE5lfeKujkPpAUx3NNoSvb6DZxEwKbiS3Cr9z/EQtSHRU8oL+SvBMANCG6B7REJrncoBG/57nf82iaEtB2r/S/qfnPRXmwWAFdaCLIVHWhAvI8bNdSE7C1BDi1IpQ/W43g5I34S5xOugvQdB9oDCHhsCoziuYr4am6xQBx7DoDIsbXDs/UgAg9AJ3wQK4xS1+DpbESW9zobnjtcySuxVssjw+Q18PdZXK5Ep9V4sQw1DqehToXGx5RWXhK5tQqWL8xJ8J8</ds:SignatureValue>
                    <ds:KeyInfo>
                        <ds:X509Data>
                            <ds:X509Certificate>
                                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</ds:X509Certificate>
                        </ds:X509Data>
                    </ds:KeyInfo>
                </ds:Signature>
                <saml:Subject>
                    <saml:NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">
                        dk:gov:saml:attribute:CprNumberIdentifier:0707787777</saml:NameID>
                    <saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
                        <saml:SubjectConfirmationData NotOnOrAfter="2024-06-05T14:40:43Z"
                            Recipient="https://audience.nspop.dk/minspaerring">
                            <ds:KeyInfo>
                                <ds:X509Data>
                                    <ds:X509Certificate>
                                        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</ds:X509Certificate>
                                </ds:X509Data>
                            </ds:KeyInfo>
                        </saml:SubjectConfirmationData>
                    </saml:SubjectConfirmation>
                </saml:Subject>
                <saml:Conditions NotBefore="2024-06-05T14:30:43Z"
                    NotOnOrAfter="2024-06-05T14:40:43Z">
                    <saml:AudienceRestriction>
                        <saml:Audience>https://audience.nspop.dk/minspaerring</saml:Audience>
                    </saml:AudienceRestriction>
                </saml:Conditions>
                <saml:AttributeStatement>
                    <saml:Attribute Name="dk:gov:saml:attribute:SpecVer"
                        NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                        <saml:AttributeValue xsi:type="xs:string">DK-SAML-2.0</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="dk:gov:saml:attribute:AssuranceLevel"
                        NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                        <saml:AttributeValue xsi:type="xs:string">3</saml:AttributeValue>
                    </saml:Attribute>
                    <saml:Attribute Name="dk:gov:saml:attribute:CprNumberIdentifier"
                        NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
                        <saml:AttributeValue xsi:type="xs:string">0707787777</saml:AttributeValue>
                    </saml:Attribute>
                </saml:AttributeStatement>
            </saml:Assertion>
            <wsse:SecurityTokenReference
                xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wsswssecurity-secext-1.1.xsd"
                wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"
                wsu:Id="str">
                <wsse:KeyIdentifier
                    ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID">
                    _230b1aa1-4473-4704-829f-50f86ac0c47b</wsse:KeyIdentifier>
            </wsse:SecurityTokenReference>
            <ds:Signature>
                <ds:SignedInfo>
                    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                    <ds:Reference URI="#body">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>akKQmArPbO1xx54oBAk6nju7LJM=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#ts">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>XJOXnt0oNJtNkmJfoGwbdkzij1M=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#str">
                        <ds:Transforms>
                            <ds:Transform
                                Algorithm="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#STR-Transform">
                                <wsse:TransformationParameters>
                                    <ds:CanonicalizationMethod
                                        Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                                </wsse:TransformationParameters>
                            </ds:Transform>
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>qse2e65f2ATZGSdQiY9ONfJAWnU=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#messageID">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>ugc3txolQ51kNDj6DAxXpX8JUok=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#action">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>sB8Zv8kw1/5/UbSq+Kn9WoMqPfw=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#sbf">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>DrMuEoWp7Uik1KTUOuvtisxvpXA=</ds:DigestValue>
                    </ds:Reference>
                </ds:SignedInfo>
                <ds:SignatureValue>
                    fAmPXi95+kx+dDFHwGON1O03nRPfb3SjAR0N3bOY5C00L4Ih8juwUaIpSh1yvF/gRQS7afZNNLUz2Lh0vfyEpC/tijw8ZkYl1TGY6m0oB2ftYsz3iqX4heSAKZ1gqUAux5on4ww/vqMn1Kc2/GP4v6JsqfUliR2nvv81el5ap1347blC6wapt9lrOoNRh6TdvKn5dl6hsL/7pC3P9KZIlfZZK4KP4rWl0Wu1xR9TZaIIWi9hijxELH3HRGv7v90tNLu0QlGkF6ELc9WchABorrqRD9NfU5jK9/IfUywR9vH0MKn3f8B8+/IiWZVUhowddRZOOknZoPChoYsQy2x1WcQYWce6BXsinzYZaiwO/mSj75ZPB5mGW0gVfkpHUPSPjuQhPgyHADSruOzQoAwve4yr9ONHl1C4RXdkWfaNh+N2/uuDvzDsR8FrkSgAjbta8P7+Wm4pOs6vIqWBw/UBC/OfYkpZaTxfYnJpGr2UlNCG6zGVmPYBaes1jTI0tNfQ</ds:SignatureValue>
                <ds:KeyInfo>
                    <wsse:SecurityTokenReference
                        xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wsswssecurity-secext-1.1.xsd"
                        wsse11:TokenType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0"
                        wsu:Id="sigStr">
                        <wsse:KeyIdentifier
                            ValueType="http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLID">
                            _230b1aa1-4473-4704-829f-50f86ac0c47b</wsse:KeyIdentifier>
                    </wsse:SecurityTokenReference>
                </ds:KeyInfo>
            </ds:Signature>
        </wsse:Security>
        <wsa:MessageID wsu:Id="messageID">b320ed13-a298-484e-b726-0ccf4da19b84</wsa:MessageID>
        <wsa:Action wsu:Id="action">
            http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04#ConsentModifyConstraint</wsa:Action>
        <sbf:Framework sbfprofile:profile="urn:liberty:sb:profile:basic" version="2.0" wsu:Id="sbf" />
    </soapenv:Header>
    <soapenv:Body wsu:Id="body">
        <ns3:ConsentModifyConstraint
            xmlns:ns3="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"
            xmlns:ns2="urn:dk:nsi:consentservices:types">
            <ConsentModifications>
                <ns2:consentId>123498765532110</ns2:consentId>
                <ns2:citizenCPR>0707787777</ns2:citizenCPR>
                <ns2:what>
                    <ns2:includeSubOrganizations>false</ns2:includeSubOrganizations>
                    <ns2:organizationIdentifier>8041000016000</ns2:organizationIdentifier>
                    <ns2:referralEnd>2024-06-06T00:00:00.000+02:00</ns2:referralEnd>
                    <ns2:referralStart>2024-06-05T16:35:41.712+02:00</ns2:referralStart>
                </ns2:what>
                <ns2:validFromDate>2024-06-05T16:33:46.000+02:00</ns2:validFromDate>
            </ConsentModifications>
        </ns3:ConsentModifyConstraint>
    </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb" xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
        <wsse:Security mustUnderstand="1" wsu:Id="security">
            <wsu:Timestamp wsu:Id="ts">
                <wsu:Created>2024-06-05T14:36:43Z</wsu:Created>
            </wsu:Timestamp>
            <ds:Signature>
                <ds:SignedInfo>
                    <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                    <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
                    <ds:Reference URI="#body">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>b6mPViNwG8+6N0iCNKdP8MwS4z4=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#ts">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>VXVIsgfyWfc0Szw3pmF5TMB3YWY=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#messageID">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>xwTcW/q2NxOgNZ7WwrfjlUTo9j4=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#relatesTo">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>ONG1R63zH6XGn6IE0wpLtXfmxzs=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#action">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>sB8Zv8kw1/5/UbSq+Kn9WoMqPfw=</ds:DigestValue>
                    </ds:Reference>
                    <ds:Reference URI="#sbf">
                        <ds:Transforms>
                            <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
                        </ds:Transforms>
                        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                        <ds:DigestValue>DrMuEoWp7Uik1KTUOuvtisxvpXA=</ds:DigestValue>
                    </ds:Reference>
                </ds:SignedInfo>
                <ds:SignatureValue>
                    hxjtcZ7SRUlz401ubjDTw1+236gc3TX64FOwq1KfzAL9r4m2QiZXhm7D6M+2M1iUVLyLFmAp+m4haAixiFVN59ZXuTV7hchN7T8UXTwfq1CKkWrSQLvJDHHZ5ewYS5hg2DDNCmBQSN+8w/kPkbeuXA2gUfSWHnOzrdc3Px5WoTlLS7rkhW1uCPSFw9VxB25mj+c5P/ZF3SNeWW45FBm588uGUNNxHyMacVru7652SfOhN6B1UbgDG6MxRmkbDefh1PL21oc40frKi1arbodUuPieo5TszN7N2iy8MWstt9bfG8f9HPtEn9ezPelHvp1YTR7wQRBtFP83D640EwD+iSQppqlUZfUr7H3ff7Qkey0dgZ8tmXt2Q2bKOMQTAhaJjWgW8VOhi3jacIWm4gLw0a8I4uvLLXVjrSYdO/lu/CFB7ogEYz8Nt2IzuiYaV8egZ38N6RJAZ+gtvObksmlBCCa1NW6c2/MdhYSZ8H97ks7+pYt9amElVC2k4DYXIG6q</ds:SignatureValue>
                <ds:KeyInfo>
                    <wsse:SecurityTokenReference>
                        <wsse:Reference URI="#X509Token"
                            ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" />
                    </wsse:SecurityTokenReference>
                </ds:KeyInfo>
            </ds:Signature>
            <wsse:BinarySecurityToken
                EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"
                ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"
                wsu:Id="X509Token">
                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</wsse:BinarySecurityToken>
        </wsse:Security>
        <wsa:MessageID wsu:Id="messageID">0c86f874-5358-4330-b1a2-2fe8ac24859a</wsa:MessageID>
        <wsa:RelatesTo wsu:Id="relatesTo">b320ed13-a298-484e-b726-0ccf4da19b84</wsa:RelatesTo>
        <wsa:Action wsu:Id="action">
            http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04#ConsentModifyConstraint</wsa:Action>
        <sbf:Framework sbfprofile:profile="urn:liberty:sb:profile:basic" version="2.0" wsu:Id="sbf" />
    </soapenv:Header>
    <soap:Body wsu:Id="body">
        <ns4:ConsentModifyConstraintResponse xmlns:ns2="urn:dk:nsi:consentservices:types"
            xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
            xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04" />
    </soap:Body>
</soap:Envelope>

ConsentAddConstraint

<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soap:Header
     .. soap headers fjernet for overskueligehed...
</soap:Header>
  <soap:Body
      xmlns:ns2="urn:dk:nsi:consentservices:types"
      xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
      xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"
      wsu:Id="body">
    <ns4:ConsentAddConstraint
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04">
      <ConsentAdds
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <ns2:citizenCPR>
          0804610417
        </ns2:citizenCPR>
        <ns2:who>
          <ns2:healthProfessionalCPR>
            0307702555
          </ns2:healthProfessionalCPR>
          <ns2:includeSubOrganizations>
            false
          </ns2:includeSubOrganizations>
          <ns2:foreignHealthProfessionals>
            false
          </ns2:foreignHealthProfessionals>
        </ns2:who>
        <ns2:what
            xsi:nil="true"/>
        <ns2:validFromDate>
          2021-12-17T07:35:51.906+01:00
        </ns2:validFromDate>
        <ns2:validToDate
            xsi:nil="true"/>
      </ConsentAdds>
    </ns4:ConsentAddConstraint>
  </soap:Body>
</soap:Envelope>

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soapenv:Header
     .. soap headers fjernet for overskueligehed...
 </soapenv:Header>
  <soap:Body
      wsu:Id="body">
    <ns4:ConsentAddConstraintResponse
        xmlns:ns2="urn:dk:nsi:consentservices:types"
        xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"/>
  </soap:Body>
</soap:Envelope>

ConsentAddPositive

<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soap:Header
     .. soap headers fjernet for overskueligehed...
</soap:Header>
  <soap:Body
      xmlns:ns2="urn:dk:nsi:consentservices:types"
      xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
      xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"
      wsu:Id="body">
    <ns4:ConsentAddPositive
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04">
      <ConsentAdds
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <ns2:citizenCPR>
          0804610417
        </ns2:citizenCPR>
        <ns2:who>
          <ns2:healthProfessionalCPR>
            0307702555
          </ns2:healthProfessionalCPR>
          <ns2:includeSubOrganizations>
            false
          </ns2:includeSubOrganizations>
          <ns2:foreignHealthProfessionals>
            false
          </ns2:foreignHealthProfessionals>
        </ns2:who>
        <ns2:what
            xsi:nil="true"/>
        <ns2:validFromDate>
          2021-12-17T07:35:52.133+01:00
        </ns2:validFromDate>
        <ns2:validToDate>
          2022-02-05T00:00:00.000+01:00
        </ns2:validToDate>
      </ConsentAdds>
    </ns4:ConsentAddPositive>
  </soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soapenv:Header
</soapenv:Header>
   .. soap headers fjernet for overskueligehed...
  <soap:Body
      wsu:Id="body">
    <ns4:ConsentAddPositiveResponse
        xmlns:ns2="urn:dk:nsi:consentservices:types"
        xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"/>
  </soap:Body>
</soap:Envelope>

ConsentRevoke

<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soap:Header
    .. soap headers fjernet for overskueligehed...
</soap:Header>
  <soap:Body
      xmlns:ns2="urn:dk:nsi:consentservices:types"
      xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
      xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"
      wsu:Id="body">
    <ns4:ConsentRevoke
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04">
      <ConsentRevocations>
        <ns2:consentId>
          123498765532463
        </ns2:consentId>
        <ns2:citizenCPR>
          1110734334
        </ns2:citizenCPR>
        <ns2:positiveConsent>
          false
        </ns2:positiveConsent>
        <ns2:who>
          <ns2:healthProfessionalCPR>
            0307702555
          </ns2:healthProfessionalCPR>
          <ns2:includeSubOrganizations>
            false
          </ns2:includeSubOrganizations>
          <ns2:foreignHealthProfessionals>
            false
          </ns2:foreignHealthProfessionals>
        </ns2:who>
        <ns2:validFromDate>
          2021-12-17T07:35:53.000+01:00
        </ns2:validFromDate>
      </ConsentRevocations>
    </ns4:ConsentRevoke>
  </soap:Body>
</soap:Envelope>

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soapenv:Header
    .. soap headers fj ernet for overskueligehed...
</soapenv:Header>
  <soap:Body
      wsu:Id="body">
    <ns4:ConsentRevokeResponse
        xmlns:ns2="urn:dk:nsi:consentservices:types"
        xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"/>
  </soap:Body>
</soap:Envelope>

ConsentRegistrationsGet

<?xml version='1.0' encoding='UTF-8'?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soap:Header
     .. soap headers fj ernet for overskueligehed...
</soap:Header>
  <soap:Body
      xmlns:ns2="urn:dk:nsi:consentservices:types"
      xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
      xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04"
      wsu:Id="body">
    <ns4:ConsentRegistrationsGet
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04">
      <PatientPersonCivilRegistrationIdentifier>
        0701979346
      </PatientPersonCivilRegistrationIdentifier>
    </ns4:ConsentRegistrationsGet>
  </soap:Body>
</soap:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
    xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
    xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
    xmlns:sbf="urn:liberty:sb"
    xmlns:sbfprofile="urn:liberty:sb:profile"
    xmlns:wsa="http://www.w3.org/2005/08/addressing"
    xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
  <soapenv:Header
     .. soap headers fj ernet for overskueligehed...
</soapenv:Header>
  <soap:Body
      wsu:Id="body">
    <ns4:ConsentRegistrationsGetResponse
        xmlns:ns2="urn:dk:nsi:consentservices:types"
        xmlns:ns3="http://www.nsi.dk/hsuid/2016/08/hsuid-1.1.xsd"
        xmlns:ns4="http://sundhedsdatastyrelsen.dk/minspaerring/2020/11/04">
      <ConsentRegistrations>
        <ns2:consentId>
          123498765532463
        </ns2:consentId>
        <ns2:citizenCPR>
          0701979346
        </ns2:citizenCPR>
        <ns2:positiveConsent>
          false
        </ns2:positiveConsent>
        <ns2:who>
          <ns2:healthProfessionalCPR>
            0307702555
          </ns2:healthProfessionalCPR>
          <ns2:includeSubOrganizations>
            false
          </ns2:includeSubOrganizations>
          <ns2:foreignHealthProfessionals>
            false
          </ns2:foreignHealthProfessionals>
        </ns2:who>
        <ns2:validFromDate>
          2021-12-17T07:35:53.000+01:00
        </ns2:validFromDate>
      </ConsentRegistrations>
    </ns4:ConsentRegistrationsGetResponse>
  </soap:Body>
</soap:Envelope>

Eksempler på DGWS kald request og response

ConsentModifyContraint

ConsentAddConstraint

ConsentAddPositive

ConsentRevoke

ConsentRegistrationsGet


Service Klienter

Der er udviklet en service klient til hver service. Klienterne kan findes som maven moduler.

<dependency> 
	<groupId>dk.nsi.consentservices.verification</groupId> 
	<artifactId>consent-verification-client</artifactId> 
	<version><desired client version></version>
</dependency>

og:

<dependency> 
	<groupId>dk.nsi.consentservices.administration</groupId> 
	<artifactId>consent-administration-client</artifactId> 
	<version><desired client version></version>
</dependency>

Notificeringer i NAS 

For alle ændringer af en borgers spærringer (oprettelse, opdateringer og sletninger), sker der en notificering via NAS få sekunder efter ændringen er gemt. Se evt. NAS 2.0 Anvenderguide.

De enkelte notificeringer indholder ikke detaljer vedr. opdateringen eller spærring, men udelukkende oplysninger om det cprnummer, for hvilket opdateringen har fundet sted. Det er efterfølgende op til anvenderen at hente ændringerne ud via snitfladerne.

Følgende er et eksempel på en opdateringsnotificering:

<ns2:Body>
     <ns8:Notify>
          <ns8:NotificationMessage>
               <ns8:TopicDialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">MinSpærringTopic</ns8:Topic>
               <ns8:Message>
                    <ns13:NotifyContentid="1208643298"idType="http://nsi.dk/advis/v10/CPR">
                         <ns14:ConsentUpdatedxmlns:ns14="http://nsp.dk/consent/2021/04/12">
                              <datevalue="2021-04-21"/>
                              <versionvalue="1"/>
                         </ns14:ConsentUpdated>
                    </ns13:NotifyContent>
               </ns8:Message>
          </ns8:NotificationMessage>
     </ns8:Notify>     
</ns2:Body>

Topic der anvendes: http://sundhedsdatastyrelsen.dk/ConsentAdministration/2021/03/01:ConsentUpdated

Oprettelse af service client

Disse serviceklienter konfigureres ved hjælp af en property fil, og klienten sørger for at få et gyldigt STS-token, indsætte korrekte headers osv.

Konfiguration af klienten sker via ClientConfig. ClientConfig's argument er navnet på den property fil der skal anvendes. Filen skal findes på classpath.

Koden nedenfor opretter en web service port til Samtykkeservicen Verifikation:

Config config = new ClientConfig("VerificationClient").
     addRequiredKeys(ConsentVerificationService.CONFIG_KEY, ConsentVerificationService.CONFIG_ENDPOINT);
URL wsdl =
   new URL(config.getProperty(ConsentVerificationService.CONFIG_KEY));
String wsendpoint = config.getProperty(ConsentVerificationService.CONFIG_ENDPOINT);
ConsentVerificationServiceservice =
   new ConsentVerificationService (config, wsdl);
service.initialise();
ConsentVerification port = service.getConsentVerificationPort(wsendpoint);

Dette forudsætter, at en VerificationClient.properties-fil kan findes på classpath

Lignende kode skaber en klient til Samtykkeservicen Administration, klienten er bare klassen ConsentAdministrationService i stedet, og kaldet returnerer en web service port der er defineret i klassen ConsentAdministration.

Konfiguration

Den konfigurationsfil der gives til service klient skal definere en række properties som klienten anvender til at kommunikere med servicen.

administration.wsdl.location = http://localhost:8080/consent-administration/service?wsdl
administration.service.url = http://localhost:8080/consent-administration/service
verification.wsdl.location = http://localhost:8080/consent-verification/service?wsdl
verification.service.url = http://localhost:9090/consent-verification/service
idcard.level = 3
idcard.system.name = TESTSTS
idcard.subject.id.type = medcom:cvrnumber
idcard.subject.id = 19343634
idcard.subject.name = JERNALDERBYENS VENNER
sts.test.mode = false
sts.endpoint = http://test1.ekstern-test.nspop.dk:8080/sts/services/NewSecurityTokenService
sts.token.expiry.threshold = 60
sts.keystore = jks/validVocesVault.jks
sts.keystore.password = !234Qwer
cert.expires.in.warning = 30

Værdierne er taget fra integrationstesten og skal tilpasses til det anvende systemet Det vil sige sti til certifikat, systemnavn osv.

Headers

Derefter kan service og port bruges til at oprette de nødvendige headers så det er muligt at kalde servicen.

Et flowID er angivet i headeren.

DGWSHeaderWrapper signedHeaders = service.getSignedHeaders(flowID);
Holder<Header> medcomHeader =
   new Holder<Header>(signedHeaders.getMedcomHeader());
HsuidHeader hsuidHeader = createHsuidHeader();

Værdierne i HSUID-headeren skal sættes manuelt ved at kalde en metode, der opretter objektet (se MinSpærring Healthcare Service User Identification Header Interface Description for en beskrivelse af headerindholdet).

Medcom-headeren er pakket ind i et holderobjekt, da det er en request/response-parameter.

Eksempel på kald af Samtykkeservicen Verifikation

Et eksempel på kald af  ConsentForDataCheck er vist her.


List<ConsentDataRegistration> consentData; // the list must be populated elsewhere

ConsentForDataCheck consentForDataCheck =
new ConsentForDataCheck(citizen, healthcareProfessional, onBehalfOf,
organization, consentData);

ConsentForDataResponse consentForDataCheckResponse =
PORT.ConsentForDataCheck(consentForDataCheck, medcomHeader,
signedHeaders.getSecurityHeader(), hsuidHeader);

Elementet consentData skal være en liste over ConsentDataRegistration-objekter, se MinSpærring - Administration Service Interface Beskrivelse.

Servicen returnerer en liste af ID'er som den sundhedsfaglige har samtukke til at få vist.

Eksempel på kald af Samtykkeservicen Administration

Her vises et eksempel på et kald til ConsentAdd i administrationsservicen. Indholdet af det faktiske samtykkeobjekt vises ikke her:

Consent consentItem = new Consent();
consentItem.setCitizenCPR(citizen);
consentItem.setPositiveConsent(positive);
consentItem.setValidFromDate(validFrom);
consentItem.setValidToDate(validTo);
consentItem.setWho(who);
consentItem.setWhat(what);

PORT.ConsentAdd(Arrays.<Consent>asList(consentItem), medcomHeader,
signedHeaders.getSecurityHeader(), hsuidHeader);

Klient generering fra WSDL

Det er også muligt selv at generere en klient baseret på en WSDL.

Samtykkeservicen services versioner

Både den administrative og verifikationssnitfladen findes i flere versioner. Nedenstående liste er en fortegnelse over disse og deres endpoints og WSDL. Urlen skal tilpasses til det miljø, som anvenderen ønsker at ramme (se FAQ NSP miljøer).

VerifikationsserviceURLWSL
DGWS service til verfification af bruger og datahttp://localhost:8080/consent-verification/service

http://localhost:8080/consent-verification/service?wsdl

http://localhost:8080/consent-verification/service-contract/wsdl/consent-verification.wsdl

Administrationsservice

DGWS service til administration af spærringerhttp://localhost:8081/consent-administration/service

http://localhost:8081/consent-administration/service?wsdl

http://localhost:8081/consent-administration/service-contract/wsdl/consent-administration-dgws.wsdl

IDWS service til administration af spærringerhttp://localhost:8081/consent-administration/serviceidws

http://localhost:8081/consent-administration/serviceidws?wsdl

http://localhost:8081/consent-administration/service-contract/wsdl/consent-administration-idws.wsdl

DGWS service til administration af spærringer v2http://localhost:8081/consent-administration/service-2.0

http://localhost:8081/consent-administration/service-2.0?wsdl

http://localhost:8081/consent-administration/service-contract/wsdl/consent-administration-dgws-20201104.wsdl

IDWS service til administration af spærringer v2http://localhost:8081/consent-administration/serviceidws-2.0

http://localhost:8081/consent-administration/serviceidws-2.0?wsdl

http://localhost:8081/consent-administration/service-contract/wsdl/consent-administration-idws-20201104.wsdl

DGWS service til administration af spærringer for ikke digititale borgerehttp://localhost:8081/consent-administration/service-adm-2.0

http://localhost:8081/consent-administration/service-adm-2.0?wsdl

http://localhost:8081/consent-administration/service-contract/wsdl/consent-administration-adm-20220207.wsdl