Introduktion

Formål

Specifikationen for Web Service interfacet for MinSpærring Verifikation beskriver de web services som MinSpærring Verifikation tilbyder henholdsvis sundhedsfaglige og borgere der vil udføre MinSpærring Verifikation.

Koncepter

En MinSpærring registrering beskriver sammenhængen mellem:

en borger,

(what) information om hvad en MinSpærring omhandler.

(who) sundhedsfaglig person eller organisation der er oprettet MinSpærring for.

For en detaljeret beskrivelse af datamodellen for MinSpærring og strukturen af MinSpærring elementerne se MinSpærring - Data Model

En spærring betyder at borgeren har afvist at data identificeret via what kan tilgås af personer eller organisationer identificaeret via who.

Et samtykke betyder at sundhedsfaglige personer eller organisation, identificeret via. who, kan tilgå data identificeret via what. Dette selvom der er oprettet en eller flere spæringer. Et samtykke kan også bruges i eksterne systemer til at tillade en given gruppe af personer adgang til til følsomme data der ellers er blevet markeret som private.

En registrering er enten aktive eller inaktive. En aktive registrering kan påvirke en sundhedsfagligs adgagn til følsom data om en borger. En inaktiv registrering har ikke nogen påvirkning på nuværende spærringer eller samtykker, men er udelukkende historik for en tidligere aktiv spærring eller samtykke.

En spærring eller samtykke kan oprettes for en gyldighedsperiode (when) der angiver hvilken periode der er spærret eller givet samtykke til data. Gyldighedsperioden angiver udelukkende hvornår der laves opslag på data og siger ikke noget om hvornår data var registreret eller oprettet. Samtykke skal have en gyldighedsperiode. En spærring kræber kun en startdato.

En sundhedsfagligs adgang til følsom data for en specifik borger er ikke påvirket hvis den oprettede spærring eller samtykke er for en anden sundhedsfaglig eller organisation. Dette er f.eks. hvis der er oprettet en spærring for en anden sundhedsfaglig end den der forespørger på data.

Definitioner og referencer

Formålet med denne sektion er at give et overblik over definitioner og referencer anvendt i dette dokument.

DefinitionBeskrivelse

NSI

National Sundheds IT

NSP

National Service Platform

SAML

Security Assertion Markup Language

STS

Security Token Service

NCP

National Contact Point

ReferenceBeskrivelse

OIO-NDR

OIO Navngivnings- og Designregler, OIO-NDR version 3.2, http://www.itst.dk/it-arkitektur-og-standarder/standardisering/datastandardisering/oioxml-udvikling/regler/ndr-3.2

DGWS 1.0

Den Gode Webservice 1.0

DGWS 1.0.1

Den Gode Webservice 1.0.1

HSUID-Header

Healthcare Service User Identification Header (SSE/11734/IFS/0018)

OIO-WSDL

Guide for udvikling og anvendelse af  OIOWSDL, http://www.itst.dk/it-arkitektur-og-standarder/standardisering/standarder-for-serviceorienteret-infrastruktur/standarder-for-webservices/filer-til-standarder-for-webservices/OIOWSDL_english.pdf

Læsevejledning

I dokumentet bruges begreberne autorisation og autoriseret primært i en sikkerhedskontekst, det vil sige i forståelsen af, at en person eller et system er autoriseret til at bruge en given ressource. Hvis begreberne anvendes på sundhedspersonale med dansk autorisation, der er anført i Sundhedsstyrelsens autorisationsregister, vil det blive udtrykkeligt angivet.

Et system der anvender Web Services

Et system, der bruger webservices beskrevet i dette dokument, referes som et anvendersystem.

Det antages at læseren har general forståelse for SOAP-basterede Web Services. Derfor er tekniske termer som SOAP, WSDL osv. ikke beskrevet. Kendskab til  Den Gode Webservice (DGWS) 1.0.1beskrevet i  [DGWS 1.0] og [DGWS 1.0.1] vil gøre forståelsen nemmere.

Dokument historik

VersionDateResponsibleDescription

0.1

24.4.2012

Systematic

Initial version.

0.2

1.5.2012

Systematic

Optimization of data elements by verification of consent for data elements.

Addition of ConsentForForeignerCheck operation.

0.9

14.5.2012

Systematic

HSUID-header reference added, reading guide updated, web service semantics updated.

1.0

29.6.2012

Systematic

ConsentForForeignersCheck, SOAP-faults, table elaboration, general improvements.

1.1

28.11.2014

Systematic

References to National Patient Index (NPI) removed.

1.2

09.09.2016

Systematic

Changed nsi:skscode to nsi:skskode and nsi:sorcode to nsi:sor to fit XML schema

1.3

13.06.2018

Systematic

Migrated to NSPOP SVN


22.10.2018KITDocument moved from Word to Confluence. Original document name was: IFS0014 Consent Verification Service Interface Description.docx

10.11.2020KITOversættelse til Dansk samt ajourføring

MinSpærring Verifikation Bruger Scenarier

Nedenstående beskriver brugerscenarier som service MinSpærring Verifikation understøtter.

Sundhedsfaglig Tjekker Borgers MinSpærring Registreringer

En sundhedsperson kan kontrollere en borgeres samtykker og spærringer for at afgøre, om der findes et samtykke eller spærring for adgang til borgerens data. Dette brugsscenarie understøttes af operationen ConsentForUserCheck. Kontrollen udføres typisk inden der hentes oplysninger om borgeren.

Resultatet af operationen er en erklæring om, hvorvidt der er spærret eller givet samtykke til den sundhedsfaglige. Resultat er enten negative, positive eller DataSpecificConsent.

DataSpecificConsent betyder, at der findes et eller flere samtykker eller spærringer til udvalgte oplysninger om borgeren. Det er således ikke muligt at afgøre, om sundhedspersonalet har ret til al information om borgeren. Derfor skal yderligere verifikation af de enkelte dataelementer udføres, inden den sundhedsfaglige kan få oplysninger om borgeren. Ved positivt svar udføres der ikke yderligere verifikation af data. Ved negativt svar er al information om borgeren utilgængelig for den sundhedsfaglige.

Sundhedsfaglig Tjekker Borgers Data Specifikke Registreringer

En sundhedsfaglig ønsker at hente en række oplysninger om en borger. Et tidligere kald til operationen ConsentForUserCheck returnerede resultatet DataSpecificConsent. Det er således nødvendigt at kontrollere hvert enkelt dataelement for borgerens samtykke eller spærring med hensyn til den sundhedsfaglige persons adgang. Operationen ConsentForDataCheck understøtter dette scenarie. 

Resultatet af operationen er en liste af data elementer som den sundhedsfaglige har lov til at se.

Sundhedsfaglig i Andet Land Tjekker Borgers MinSpærring Registreringer Gennem NCP

En sundhedsfaglig person, i et andet landt, ønsker at hente information om en dansk borger. Dette sker via et kald fra et andet lands NCP til den danske NCP. Før den danske NCP returnerer infomationer om den danske borger tjekkes der at borgeren har registreret et samtykke til den sundhedsfaglige person. Dette sker ved kald til operationen ConsentForForeignersCheck.

Resultatet af operationen er om den sundhedsfaglige har samtykke til a tilgå borgerens data.

MinSpærring Verifikation Web Services

Læsevejledning

Nedenstående skabelon dokumenterer operationenerne der er udstillet af MinSpærring Verifikation. De vigtigste elementer i forespørgsel og svar er beskrevet i sektion 5.

 

Navn: <operation header>

Beskrivelse

Beskriver operationens formål.

Forespørgsel:

Parameter til input.

Svar:

Parametre i svar.

Fejlhåndtering:

Beskriver fejlhåndtering. Refererer typisk til den generelle beskrivelse af fejlhåndtering.

Roller:

Beskriver krævede roller.

Forudsætninger:

Beskriver forudsætninger der skal være opfyldt for at operationen kan udføres.

Web Service - ConsentVerification

Nedenstående operationer udstullet 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:

Sundhedsffaglig.

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:

Sundhedsfaglig.

Forudsætninger:

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

Operation – ConsentForForeignersCheck

Navn: ConsentForForeignersCheck

Beskrivelse:

Undersøger om en borger har givet samtykke til at en sundhedsfaglig i et andet land må tilgå borgerens data.

Forespørgsel:

ConsentForForeignersCheckRequest består:

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


Svar:

ConsentForForeignerCheckResponse består af:

ConsentForForeigners om der er adgang til data.

Positive – betyder at der er oprettet samtykke så den sundhedsfaglige må tilgå borgerens data.

Negative - betyder at der ikke er adgang til borgerens data.

Fejlhåndtering:

Se afsnit 4.7.

Roller:

Sundhedsfaglig person

Forudsætninger:

Både bruger og brugersystem skal godkendt som beskrevet i afsnit 4.2.1.

MinSpærring Verifikation Web Service Semantiker

Besked format

Web servicen forventer SOAP beskeder. SOAP headeren indeholder sikkerheds header og Medcom header som krævet i DGWS 1.0.1. Udover dette skal der også være en HSUID header.

Figur 1 SOAP besked indeholdende sikkerhedsheader, Medcomheader samt HSUID header.

Formatet af sikkederhedsheader og Medcomheader er beskrevet i  [DGWS 1.0] og [DGWS 1.0.1]. Formatet for HSUID-headeren er beskrevet i  [HSUID-Header].

Attributter i HSUID headeren når bruger er sundhedsfaglig

Når brugere er en sundhedsfaglig person er det nedenstående attributter der skal være i HSUID headeren.

Element attribut

Underelement

Attributværdi

Attributnavn

AttributNavn format

-

nsi:UserType


nsi:HealthcareProfessional

nsi:ActingUserCivilRegistrationNumber


Den sundhedsfaglige CPR nummer.

nsi:OrgUsingID

nsi:sor

or

nsi:skskode

or

nsi:ynumber

Identifikation af den organisation som den sundhedsfaglige er tilknyttet.

Attributten skal være der mindst én gang og må maksimalt være angivet to tange. Hvis den er angivet to gange kan organisationen være identificeret ved en SOR kode og f.eks. en SHAK kode.

nsi:ResponsibleUserCivilRegistrationNumber


CPR nummer på den sundhedsfaglige som brugeren agerer på vegne aaf.

Hvis det er den samme person som brugeren er det samme CPR nummer angivet.

nsi:ResponsibleUserAuthorizationCode


Autorisationsnummer på den sundhedsfaglige som brugeren agerer på vegne af.

Hvis brugeren er en sundhedsfaglig uden autorisationskode, arbejder på vegne af en sundhedsfaglig uden autorisationskode anvendes specialværdien '-'.

nsi:SystemOwnerName


Navn på systemejer af anvendersystemet.

nsi:SystemName


Navn på anvendersystem.

nsi:SystemVersion


Version af anvendersystem.

nsi:OrgResponsibleName


Navn på organisation ansvarlig for anvendersystem.

Tabel 1 Attributer i HSUID-header når bruger sundhedsfaglig.

Identifikation af organisationen sundhedsfaglig er tilknyttet kan angives som en enkelt kode i form af f.eks. en SHAK-kode:

<hsuid:Attribute Name="nsi:OrgUsingID" NameFormat="nsi:skskode">
	<hsuid:AttributeValue>6620151</hsuid:AttributeValue>
</hsuid:Attribute>

Alternativt kan organisation angives med to værdier. Det kan f.eks. være en SOR kode og en SHAK kode:

<hsuid:Attribute Name="nsi:OrgUsingID" NameFormat="nsi:sor">
	<hsuid:AttributeValue>440081000016006</hsuid:AttributeValue>
</hsuid:Attribute>
<hsuid:Attribute Name="nsi:OrgUsingID" NameFormat="nsi:skskode">
	<hsuid:AttributeValue>6620151</hsuid:AttributeValue>
</hsuid:Attribute>

Bemærk at det er anvendersystemets ansvar at sikre konsistes mellem de angive organisationer.

Web Service Sikkerhed

Sikkerheden er baseret på SOSI-integrationsmønstret i Den Gode WebService (DGWS). Godkendelse sker via STS på NSP'en og er baseret på OCES digitale certifikater. Som udgangspunkt kræves der et medarbejdercertifikat (MOCES). Initielt kan visse systemer, i en overgangsperiode, anvende et VOCES certifikat.

Yderligere sikkerhedsaspekter, herunder autorisation, integritet, fortrolighed, tilgængelighed og fortrolighedshensyn, håndhæves kun i nogen grad af den tekniske service. De aspekter, der i øjeblikket ikke håndteres af den tekniske tjeneste, håndteres i serviceaftalen, som specificeret af den dataansvarlige myndighed (SDS) som forbrugere af tjenesten skal acceptere.

Godkendelse

Godkendelse af anvendersystemer

Når STS'en signatur af ID korter er valideret med succes har anvenderen adgang.

Udover dette skal anvendersystemet være whitelisted baseret på system delen af ID-kortet.

Godkendelse af bruger

Når anvendersytemet er godkendt bliver brugeren godkendt via HSUID header attributen nsi:ActingUserCivilRegistrationNumber.

Om det er en borger eller sundhedsfaglig afgøres af HSUID header attributen nsi: UserType.

Web service opetaitoner hvor bruger er sundhedsfaglig

Servicen godkender all brugere der er sundhedsfaglige.

Udløb af ID-kort

En request med et ID-kort der er mere end 24 timer gammelt i forhold til udstedelsestidspunkt afvises.

Status koder og flow status

Som krævet i DGWS 1.0.1 anvendes kun HTTP status kode 200 og 500.

Ved HTTP status kode 200 er FlowStatus altid flow_finalized_succesfully.

Timeout ved web-service operationer

Timeout er det samme som standard timeout på NSP platformen.

Session

Alle kald håndteres i sin egen session.

Der forestages ikke check om et MessageId har været anvendt tidligere og der er ikke garanti for at samme svar returenres hvis MessageId anvendes igen.

Dette afviger fra  DGWS 1.0.1 i forhold til håndtering af genfremsendelse.

Tildeling og genbrug af flow-ID

Hvis request indeholder et flow-ID bliver det genbrugt i svaret. Håndtering af flow-ID sker i henhold til DGWS 1.0.1.

Behandling af anmodning om Non-Repudiation

Digital signing of replies is not supported. On request for non-repudiation, a fault-error message is returned as described in [DGWS 1.0].

Digital signering af svar understøttes ikke. På anmodning om Non-Repudiation returneres en fejlfejlmeddelelse som beskrevet i [DGWS 1.0].

Fejlhåndtering

SOAP fejl

SOAP-fejl returneres som beskrevet nedenfor. Der er valgt en struktur, hvor både standardfejlkoder som beskrevet i [DGWS 1.0] og servicespecifikke fejlkoder kan returneres.

<soap:Body>
      <soap:Fault>
         <faultcode>soap:Server</faultcode>
         <faultstring>Description of the error</faultstring>
         <detail>
            <FaultInfo xsi:type="ns2:dgwsInfo" xmlns="urn:dk:nsi:consent:verification:service:1" xmlns:ns2="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <ns2:FaultCode>expired_idcard</ns2:FaultCode>
            </FaultInfo>
         </detail>
      </soap:Fault>
   </soap:Body>

Kodeliste 1 Struktur af SOAP-fejl returneret fra Web Service Operation. Eksemplet viser FaultCode, der bruges, når ID-kortet er udløbet.

SOAP Fault Status Koder

For alle web service operationer, der er beskrevet i afsnit 3, anvendes SOAP-fejl med FaultCode-værdier som anført i tabel 2, der stammer fra DGWS 1.0.1.

FaultCode

Beskrivelse

missing_required_header

En eller flere krævede DGWS headers mangler i request. F.eks. skal ID-kort altid være angivet.

security_level_failed

 Godkendelses fejl. Forkert id-kort niveau.

invalid_idcard

Godkendelses fejl. Fejl i SOSI ID kort.

invalid_certificate

Godkendelses fejl.. Certifikat er ikke OCES certifikat eller også er det udløbet.

expired_idcard

Godkendelses fejl. SOSI ID kort er udløbet eller for gammel i forhold til kravet i servicen.

not_authorized

Bruger har ikke ret til at anvende Web Service operationen. F.eks. cvr nummer der ikke er whitetlisted.

nonrepudiation_not_supported

Service kan ikke signere svar da dette ikke er understøttet.

Tabel 2 Anvendte Faultcode værdier stammende fra DGWS 1.0.1

Derudover anvendes tjenestespecifikke FaultCode værdier som anført i tabel 3.

FaultCode

Beskrivelse

consent_service.ConsentDatabase

En intern fejl i servicen i forbindelse med adgang til databasen.

consent_service.SORLookup

En intern fejl i servicen i forbindelse med opslag i SOR data.

consent_service.ServiceInvocation

Servicen blev kald med invalid parametre.
HSUID header ikke valid.

invalid_date_timezone

En dato i request er i invalid format. De skal følge DGWS 1.0.1.
Alle datoer skal være i UTC.

consent_service.UnknownError

Ukendt fejl i servicen.

Tabel 3 Anvendte servicespecifikke FaultCode værdier

WSDL'en tilhørende servicen specificerer ikke SOAP fejlkoder for hver operation.

Web Service Input Validering

Nedenstående valideres:

Nedenstående udføres IKKE:

Standarder

MinSpærring Verifikation er baseret på nedenstående standarder. :

  1. SOAP version 1.1

  2. Soap Fault version 1.1

  3. WS-I Basic Profile 1.1

  4. OIO navngivnings- og designregler

  5. DGWS 1.0.1, med undtagelse af krav til videresendelse og kontrol af genbrug af meddelelses-ID som beskrevet i afsnit 4.5, og med undtagelse af struktur anvendt på fejl som beskrevet i afsnit 4.7.1.

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

Styring

Dokumentation

 

Til MinSpærring Verifikation er grænsefladen mellem anvendersystemerne og verifikation versioneret.

Snitfladebeskrivelsen udgør kontrakten, der definerer, hvordan de involverede systemer skal handle.

Snitfladebeksrivelsen består af:

Versionering

Som en del af WSDL for ConsentVerification er der headers der er definereret i andre standarder. Selve request til ConsentVerification følger nedenstående navngivning.

urn:dk:nsi:consentservices:verification:service:<version>

Bemærk dog at hvis der laves nye versioner af snitfladen skal versioneringen ske ved hjælp af en datoangivelse som det kan ses i nyeste version af MinSpærring Aministration snitfladen.

WSDL

WSDL til servicen kan tilgås ved at tilgå det endpoint servicen udstiller WSDL på. I test2 miljøet er det http://test2-cnsp.ekstern-test.nspop.dk:8080/consent-verification/service?wsdl. Hvis tjenesten på NSP miljøet ikke er tilgængeligt kan servicen startes op ved hjælp af de leverede docker-compose filer og WSDL kan tilgås der.