• Ingen resultater fundet

Den Gode E-CPRService

N/A
N/A
Info
Hent
Protected

Academic year: 2022

Del "Den Gode E-CPRService"

Copied!
30
0
0

Indlæser.... (se fuldtekst nu)

Hele teksten

(1)

Den Gode E-CPRService

MedCom, version 1.0

W 1

(2)
(3)

Den Gode E-CPRService

MedCom, version 1.0

Formål ... 5  

Introduktion ... 5  

Ansvar ... 6  

Erstatningscprnummerservice ... 6  

Klientsystem ... 6  

Tilgængelighed ... 6  

Adgang ... 6  

Format ... 7  

Dato ... 7  

Århundrede ... 7  

Bogstaver ... 7  

Kønsangivelse ... 7  

Funktionalitet ... 8  

Data indhold ... 8  

Rekvirer et e-cpr-nummer ... 8  

Rekvirer en mængde af e-cpr-numre ... 8  

Link validt cpr-nummer med e-cpr-nummer ... 9  

Hent information på et e-cpr-nummer ... 9  

Bilag A: Forudsætninger ... 11  

Netværk ... 11  

Id-kort attributter ... 11  

Kommunikationsmodel ... 11  

Kuvert attributter ... 11  

Logning ... 12  

Server (Udbyder) ... 12  

Klienten ... 12  

Bilag B: Teknisk dokumentation ... 13  

DataListe ... 13  

Komplekse typer ... 15  

Enumerationer ... 16  

Operationer ... 17  

GenerateReplacementCPR ... 17  

(4)
(5)

Formål

Indførelse af et nationalt erstatningspersonnummer til brug i sundhedssektoren, så alle anvender samme nummersystem ved tildeling af personnummer i de tilfælde, hvor der ikke er almindeligt CPR-nummer til rådighed.

Med e-CPRservicen vil det være muligt at tildele unikke erstatningscpr-numre på tværs af organisation og it-systemer. Ligeledes vil det være muligt at associerer et tildelt

erstatningscpr-nummer med et gyldigt cpr-nummer, når/hvis dette er kendt.

Introduktion

Ønsket er at etablere et landsdækkende unikt erstatningscprnummersystem til brug i sundhedssektoren, så alle enheder kan anvende det direkte, uden at der er behov for om tildeling – også når patienter sendes videre til anden organisation.

Webservicen giver it-systemerne mulighed for at integrere rekvireringen af nye erstatningscprnumre, så brugeren ikke skal spekulere over dette.

(6)

Ansvar

Nedenfor beskrives parternes ansvar.

Erstatningscprnummerservice

E-CPRservicen skal have en fornuftig oppe tid. E-CPRservicen skal sørge for at registrere hvilket system der har reserveret et givet erstatningscprnummer, samt sørge for at det samme erstatningscprnummer ikke reserveres mere end en gang.

Klientsystem

Det er det enkelte klientsystems ansvar, at de erstatningscprnumre, som systemet har reserveret, kun bruges til unik identifikation af en patient.

Tilgængelighed

Til test er der udstillet en webservice der er tilgængelig via Internettet og en på sundhedsdatanettet. Produktionswebservicen udstilles via sundhedsdatanettet.

Der er til begge services også mulighed for at benytte en hjemmeside indtil servicen er integreret i eget system.

Testservice hjemmeside kan tilgås her for sundhedsdatanettet:

https://cprweb-test.rm.dsdn.dk/ecpr/

Og her for internettet:

https://193.163.223.242/ecpr/

Testservice webservice kan tilgås her for sundhedsdatanettet:

https://cprweb-test.rm.dsdn.dk/ecpr-service-ejb/ReplacementCPRImpl Og her for internettet:

https://ecpr-demo.rm.dk/ecpr-service-ejb/ReplacementCPRImpl Adgang

Der kræves login med brugernavn og adgangskode på systemniveau for de systemer som kun henter nye e-cpr-numre, mens der kræves brugernavn og adgangskode på

brugerniveau for at linke et cpr-nummer med et e-cpr-nummer. Login foregår med dgws, hvor brugernavn og password leveres af Region Midt ved at skrive til:

Thomas Koldkur Bitsch: Thomas.Bitsch@stab.rm.dk

Kun systemer der er godkendt af MedCom kan få udleveret et login.

(7)

Format

Et e-cpr nummer består af ti tegn. Tegnenes betydning beskrives herunder og i tabellen.

e-cpr: D1 D2 M1 M2 Y1 Y2 H1 L1 F1 S1 Dato

De seks første cifre er en dato, hvor D1 og D2 er antal dage inde i måneden, M1 og M2 er månedens nummer i året, Y1 og Y2 er de sidste to cifre i årstallet. Alle værdier er med foranstillet nuller såfremt de er mindre end ti. Datoen er den fødselsdato der blev oplyst ved oprettelsen af e-cpr-nummeret.

Århundrede

For at kunne skelne mellem fødselsdatoer i 20. Århundrede og det 21. Århundrede, sættes felt H1 til 1 for 20. Århundrede, og 7 for 21. Århundrede.

Bogstaver

F1 og L1 er bogstaver i området A til Z, hvis der er oplyst navn ved oprettelse angives forbogstaverne her, ellers vælges tilfældige værdier. F1 er forbogstav i fornavn og L1 er forbogstav fra efternavn.

Kønsangivelse

S1 er det køn der blev oplyst ved oprettelse, lige numre ved kvinder og ulige for mænd.

(8)

Funktionalitet

Der udbydes fire kald.

• Rekvirer et e-cpr-nummer.

• Rekvirer en mængde af e-cpr-nummer.

• Link et validt cpr-nummer til et e-cpr-nummer.

• Hent information på et e-cpr-nummer.

Data indhold

Schemaet definerer indholdet i anmodning og svar for body del af webservicen. Indholdet er vist her som oversigts billeder.

Rekvirer et e-cpr-nummer Anmodning

I anmodning er det krævet at der er angivet køn (Gender) for den person der ønskes et e- cpr-nummer på. De resterende oplysninger er frivillige. Der kan oplyses fødselsdato på formatet YYYY-MM-DD, eller en anslået alder i hele år. Hvis fornavn og/eller efternavn kendes kan de sendes med.

Svar

Svaret indeholder et e-cpr-nummer med formatet beskrevet i afsnittet Format.

Rekvirer en mængde af e-cpr-numre Anmodning

Kræver at man angiver antallet af ønskede e-cpr-numre.

(9)

Svar

En liste af e-cpr-numre.

Link validt cpr-nummer med e-cpr-nummer Anmodning

Der angives e-cpr-nummer der skal tilknyttes det angivne valide cpr-nummer.

Svar

De opdaterede informationer på e-cpr-nummeret.

Hent information på et e-cpr-nummer Anmodning

Enten angives et e-cpr-nummer der ønskes information på, eller også angives et validt cpr- nummer og der søges efter de e-cpr-numre der er tilknyttet dette valide cpr-nummer.

(10)

Svar

Hvis der søges på et e-cpr-nummer returneres information omkring dette ene, ellers returneres information på alle de e-cpr-numre der er linket til det angivne valide cpr- nummer.

(11)

Bilag A: Forudsætninger Netværk

Den Gode Webservice kræver et krypteret transportlag og aftaler mellem de udvekslende parter for at sikre konfidentialitet af data. Den Gode E-CPRService, tillader følgende netværkstyper:

Netværk Tilladt

Sundhedsdatanettet (VPN) Ja

Andet VPN Ja

SSL Nej

Id-kort attributter

Oplysninger om afsenderens identitet lagres i id-kortet. Hvis det afsenderen identificerer en bruger er id-kortet af typen ”USER” og ”SYSTEM” hvis det udelukkende identificerer et sådant.

Id-kortets versionsnummer referer til den tilhørende DGWS specifikation og

autentifikationsniveauet angiver hvilke typer af akkreditiver der er medsendt. På det laveste niveau, ”1” medsendes ingen akkreditiver, mens niveau ”2” tillader brugernavn og password. På niveau ”3” medsendes en digital signatur foretaget med et OCES

virksomhedscertifikat (VOCES) og niveau ”4” tillader alene medarbejder OCES signaturer (MOCES).

Id-kort attribut Værdi

Type SYSTEM

Version 1.0.1

Autentifikationsniveau 2-Login

Kommunikationsmodel

Den Gode Webservice definerer to overordnede kommunikationsmodeller: Sign On (SO) og Single Sign On (SSO). I et SO scenarium kommunikerer klient og serviceudbyder alene med hinanden, mens SSO scenariet introducerer en betroet tredjepart,

Identitetsudbyderen (IdP) til at varetage autentifikationen. Service der kan håndtere SSO siges at indgå i SOSI føderationen.

Id-kort attribut Tilladt

Sign On Ja

Single Sign On Nej

Kuvert attributter

I DGWS SOAP kuverters headere findes en række meta-oplysninger om de enkelte

(12)

forventer. DGWS definerer muligheden for at signere hele kuverten som sikkerhedsniveau 5.

Klienter kan – hvis serviceudbyderen understøtter det – bede om at få en digital signatur på svaret i f.eks. indberetningssituationer og endelig kan en klient angive sit ønske til behandlingsprioritet og serviceudbyderen kan hvis det er muligt derpå vælge at opprioritere behandlingen af kaldet.

Kuvert attribut Tilladt

Timeout -

Sikkerhedsniveau 1-TOM

Uafviselig kvittering Nej

Prioritet RUTINE

Logning

Persondataloven [PERSLOV] og Sundhedsloven [SUNDLOV] udstikker retningslinjer for hvornår det påkrævet at logge hvem der har haft adgang til data. Dette fortolkes i bredeste forstand som at have set eller opdateret personfølsom information om en anden person.

Logning udføres af bade klient og serviceudbyder.

Kontrol Påkræet

Logning af adgang til personfølsomme data påkrævet? Ja

Server (Udbyder)

Udbyderen af servicen kan ikke logge hvem slutbrugeren er men logger følgende informationer:

• IP-adresse på klienten

• ID-kortet

• CPR-nr der søges på

• Tidsperiode Klienten

Skal logge hvem slutbrugeren måtte være og sikre sig at denne er korrekt authentificeret.

(13)

Bilag B: Teknisk dokumentation

De ”fulde” XML Lister viser det maksimale dataindhold i webservicens request- som response-meddelelser.

Datatype, anvendelse og beskrivelse af de enkelte XML elementer fremgår af DataListen.

DataListe

XML element Type Beskrivelse

urn:oio:medcom:ecprservice:1.0.0

GenerateReplacementCPRRequest GenerateReplacementCPRReq uestType

Anmodning om et e- cprnummer.

GenerateReplacementCPRResponse GenerateReplacementCPRRes ponseType

Svar på anmodning om e-cpr-nummer.

BulkGenerateReplacementCPRRequest BulkGenerateReplacementCP RRequestType

Anmodning om en pulje af e-cpr-numre.

BulkGenerateReplacementCPRResponse BulkGenerateReplacementCP RResponseType

Svar på anmodning om en pulje af e-cpr- numre.

LinkValidCPRWithReplacementCPRRequest LinkValidCPRWithReplacemen tCPRRequestType

Anmodning om at linke et validt cpr nummer med et e-cpr- nummer.

LinkValidCPRWithReplacementCPRResponse LinkValidCPRWithReplacemen tCPRResponseType

De opdateret oplysninger på e-cpr- numret.

GetRegisteredReplacementCPRInformationRequest GetRegisteredReplacementCP RInformationRequestType

Anmodning om at se registreret information på et e-cpr-nummer, eller se hvilke e-cpr- numre der er tilknyttet det angivne valide cpr nummer.

GetRegisteredReplacementCPRInformationResponse GetRegisteredReplacementCP RInformationResponseType

Information på det/de e-cpr-numre der er tilknyttet det angivne valide cpr-nummer.

Gender GenderType Køn

DateOfBirth Date Fødselsdato

EstimatedAge Int Anslået alder, mellem

0 og 130.

GivenName String Fornavn, op til 70

tegn.

(14)

XML element Type Beskrivelse

Amount Int Heltal over 0.

ValidCPR ValidCPRType Et validt cpr-nummer.

ReplacementCPRInformation ReplacementCPRInformationT

ype

Registreret information på et e-cpr-nummer.

UpdatedBy String Login navn for den der

sidst har ændret eller sat information på dette e-cpr-nummer.

LastUpdateAt DateTime Tidstempel for sidste

opdatering.

(15)

Komplekse typer

Type Antal Beskrivelse

urn:oio:medcom:ecprservice:1.0.0

GenerateReplacementCPRRequestType Anmodning om e-cpr-nummer.

Gender 1 Køn

Vælg en af { 0..1

DateOfBirth 1 Fødselsdato

EstimatedAge 1 Anslået alder

}

GivenName 0..1 Fornavn

Surname 0..1 Efternavn

ISOCountryCode 0..1 ISO 3166 landekode

GenerateReplacementCPRResponseType Svar på anmodning om e-cpr- nummer.

ReplacementCPR 1 Erstatnings cpr nummer.

BulkGenerateReplacementCPRRequestType Anmodning om en pulje af e-cpr- numre.

Amount 1 Et positiv antal.

BulkGenerateReplacementCPRResponseType Svar på anmodning om en pulje af e- cpr-numre.

ReplacementCPR 1..n Erstatnings cpr nummer.

LinkValidCPRWithReplacementCPRRequestType Anmodning om at linke et validt cpr nummer med et e-cpr-nummer.

ReplacementCPR 1 Erstatnings cpr nummer.

ValidCPR 0..1 Et validt cpr-nummer.

LinkValidCPRWithReplacementCPRResponseType De opdateret oplysninger på e-cpr- numret.

ReplacementCPRInformation 1 Registreret information på et e-cpr- nummer.

GetRegisteredReplacementCPRInformationRequestType Anmodning om at se registreret information på et e-cpr-nummer, eller se hvilke e-cpr-numre der er tilknyttet det angivne valide cpr nummer.

Vælg mellem {

ValidCPR 1 Validt cpr-nummer

(16)

Type Antal Beskrivelse

ReplacementCPRInformation 0..n Registreret information på et e-cpr- nummer.

ReplacementCPRInformationType Registreret information på et e-cpr- nummer.

ReplacementCPR 1 Erstatningscprnummer.

ValidCPR 0..1 Tilknyttet validt cpr-nummer.

ISOCountryCode 0..1 Landekode for nationalitet på

personen.

Valgfri sekvens {

UpdatedBy 1 Login navn på den der sidst har

ændret.

LastUpdateAt 1 Tidsstempel for sidste opdatering.

}

Enumerationer

Type Værdi Beskrivelse

urn:oio:medcom:ecprservice:1.0.0

GenderType male Køn = Mand

GenderType female Køn = Kvinde

ISOCountryCodeType (den på tidspunktet gældende liste over landekoder på to tegn)

Listen over landekoder kan ses på MedComs hjemmeside under koder/tabeller/ydere.

(17)

Operationer

XML-Listen viser et eksempel på dataindhold i webservicens request- og response-

meddelelser for hver operation. Af hensyn til overskueligheden er der kun kommet header informationer fra dgws på GenerateReplacementCPR eksemplet.

GenerateReplacementCPR

SoapAction: urn:oio:medcom:ecprservice:1.0.0#GenerateReplacementCPR

Opretter et e-cpr-nummer med det angivne køn, fødselsdato og navn.

Request

<soap:Envelope

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"

xmlns:ds="http://www.w3.org/2000/09/xmldsig"

xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"

wsu:id="Envelope">

<soap:Header>

<wsse:Security>

<wsu:Timestamp>

<wsu:Created>2011-10-18T10:08:54Z</wsu:Created>

</wsu:Timestamp>

<saml:Assertion id="IDCard" IssueInstant="2011-10-18T10:08:54Z" Version="2.0">

<saml:Issuer>LægeSystemA</saml:Issuer>

<saml:Subject>

<saml:NameID Format="medcom:cprnumber">2606444917</saml:NameID>

<saml:SubjectConfirmation>

<saml:ConfirmationMethod>urn:oasis:names:tc:SAML:2.0:cm:holder-of- key</saml:ConfirmationMethod>

<saml:SubjectConfirmationData>

<wsse:UsernameToken>

<wsse:Username>Ole H..Berggren</wsse:Username>

<wsse:Password>ohbPaWW5</wsse:Password>

</wsse:UsernameToken>

</saml:SubjectConfirmationData>

</saml:SubjectConfirmation>

</saml:Subject>

<saml:Conditions NotBefore="2011-10-18T08:08:54Z" NotOnOrAfter="2011-10- 18T18:08:54Z"/>

<saml:AttributeStatement id="IDCardData">

<saml:Attribute Name="sosi:IDCardID">

<saml:AttributeValue>AAATX</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="sosi:IDCardVersion">

<saml:AttributeValue>1.0.1</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="sosi:IDCardType">

<saml:AttributeValue>user</saml:AttributeValue>

(18)

<saml:AttributeValue>Ole H.</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:UserSurName">

<saml:AttributeValue>Berggren</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:UserEmailAddress">

<saml:AttributeValue>ohb@nomail.dk</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:UserRole">

<saml:AttributeValue>PRAKTISERENDE_LAEGE</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:UserOccupation">

<saml:AttributeValue>Maskinarbejder</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:UserAuthorizationCode">

<saml:AttributeValue>24778</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:CareProviderID" NameFormat="medcom:ynumber">

<saml:AttributeValue>079741</saml:AttributeValue>

</saml:Attribute>

<saml:Attribute Name="medcom:CareProviderName">

<saml:AttributeValue>Lægehuset, Vandværksvej</saml:AttributeValue>

</saml:Attribute>

</saml:AttributeStatement>

<saml:AttributeStatement id="SystemLog">

<saml:Attribute Name="medcom:ITSystemName">

<saml:AttributeValue>LægeSystemA</saml:AttributeValue>

</saml:Attribute>

</saml:AttributeStatement>

</saml:Assertion>

</wsse:Security>

<medcom:Header>

<medcom:SecurityLevel>2</medcom:SecurityLevel>

<medcom:TimeOut>1440</medcom:TimeOut>

<medcom:Linking>

<medcom:FlowID>AMRRMD</medcom:FlowID>

<medcom:MessageID>AGQ5ZW</medcom:MessageID>

</medcom:Linking>

<medcom:Priority>RUTINE</medcom:Priority>

</medcom:Header>

</soap:Header>

<soap:Body>

<GenerateReplacementCPRRequest xmlns="urn:oio:medcom:ecprservice:1.0.0">

<Gender>female</Gender>

<DateOfBirth>1948-12-25</DateOfBirth>

<GivenName>Nancy Ann</GivenName>

<Surname>Berggren</Surname>

<ISOCountryCode>UK</ISOCountryCode>

</GenerateReplacementCPRRequest>

</soap:Body>

</soap:Envelope>

Response:

<soap:Envelope

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"

xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"

xmlns:ds="http://www.w3.org/2000/09/xmldsig#"

xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd"

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"

(19)

<wsu:Created>2011-10-18T10:13:37Z</wsu:Created>

</wsu:Timestamp>

</wsse:Security>

<medcom:Linking>

<medcom:FlowID>AMRRMD</medcom:FlowID>

<medcom:MessageID>AB76AF</medcom:MessageID>

<medcom:InResponseToMessageID>AGQ5ZW</medcom:InResponseToMessageID>

</medcom:Linking>

<medcom:FlowStatus>flow_finalized_succesfully</medcom:FlowStatus>

</soap:Header>

<soap:Body>

<GenerateReplacementCPRResponse xmlns="urn:oio:medcom:ecprservice:1.0.0">

<ReplacementCPR>2512481BN8</ReplacementCPR>

</GenerateReplacementCPRResponse>

</soap:Body>

</soap:Envelope>

BulkGenerateReplacementCPR

SoapAction: urn:oio:medcom:ecprservice:1.0.0#BulkGenerateReplacementCPR

Rekvirer to e-cpr-numre.

Request

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns="urn:oio:medcom:ecprservice:1.0.0">

<soap:Body>

<BulkGenerateReplacementCPRRequest>

<Amount>2</Amount>

</BulkGenerateReplacementCPRRequest>

</soap:Body>

</soap:Envelope>

Response

<env:Envelope

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns="urn:oio:medcom:ecprservice:1.0.0">

<env:Body>

<BulkGenerateReplacementCPRResponse>

<ReplacementCPR>2909611DJ8</ReplacementCPR>

<ReplacementCPR>2909067VQ0</ReplacementCPR>

</BulkGenerateReplacementCPRResponse>

</env:Body>

</env:Envelope>

LinkValidCPRWithReplacementCPR

SoapAction: urn:oio:medcom:ecprservice:1.0.0#LinkValidCPRWithReplacementCPR

Sætter Nancy Ann Berggrens cpr-nummer på e-cpr-numret.

Request

<soap:Envelope

(20)

Response

<env:Envelope

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns="urn:oio:medcom:ecprservice:1.0.0">

<env:Body>

<LinkValidCPRWithReplacementCPRResponse>

<ReplacementCPRInformation>

<ReplacementCPR>2512481BN8</ReplacementCPR>

<ValidCPR>2512484916</ValidCPR>

<ISOCountryCode>UK</ISOCountryCode>

<UpdatedBy>ecpr_admin</UpdatedBy>

<LastUpdateAt>2011-09-29T10:09:12.000+02:00</LastUpdateAt>

</ReplacementCPRInformation>

</LinkValidCPRWithReplacementCPRResponse>

</env:Body>

</env:Envelope>

GetRegisteredReplacementCPRInformation

SoapAction: urn:oio:medcom:ecprservice:1.0.0#GetRegisteredReplacementCPRInformation

Henter registreret information på e-cpr-nummeret.

Request

<soap:Envelope

xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"

xmlns="urn:oio:medcom:ecprservice:1.0.0">

<soap:Body>

<GetRegisteredReplacementCPRInformationRequest>

<ReplacementCPR>2512481BN8</ReplacementCPR>

</GetRegisteredReplacementCPRInformationRequest>

</soap:Body>

</soap:Envelope>

Response

<env:Envelope

xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"

xmlns="urn:oio:medcom:ecprservice:1.0.0">

<env:Body>

<GetRegisteredReplacementCPRInformationResponse>

<ReplacementCPRInformation>

<ReplacementCPR>2512481BN8</ReplacementCPR>

<ValidCPR>2512484916</ValidCPR>

<ISOCountryCode>UK</ISOCountryCode>

<UpdatedBy>ecpr_admin</UpdatedBy>

<LastUpdateAt>2011-09-29T10:09:12.000+02:00</LastUpdateAt>

</ReplacementCPRInformation>

</GetRegisteredReplacementCPRInformationResponse>

</env:Body>

</env:Envelope>

I DataListen er angivet alle værdibærende elementer i Den Gode E-cpr-service i den rækkefølge variablene forekommer i XML Listen. XML-elementer der er medtaget i XMLListen af hensyn til dennes syntaks, er ikke medtaget i Datalisten.

Skemaets ”type” felt angiver en XML Schema type eller en enumeration. Følgende typer anvendes:

1. ”string” angiver at dataindholdet skal være en streng. Reserverede XML

(21)

2. ”integer” angiver at dataindholdet er et positivt hel-tal. Se http://www.w3.org/TR/xmlschema11-2/#integer

3. ”dateTime” angiver at data er en dato og et klokkeslæt på UTC formen (Universal Time, Coordinated) YYYY-MM-DDTHH:MM:SSZ, f.eks. 2006-05-28T23:59:00Z for 28 maj 2006 kl. 23:59:00. UTC bruger ikke sommer- og vintertid, så for at omregne fra dansk tid til UTC trækkes i vinterhalvåret 1 time fra (dansk tid = UTC + 1) og i sommerhalvåret trækkes 2 timer fra (dansk tid = UTC + 2). DGWS kræver at webservice klienter og webservice udbydere synkroniserer urene efter en global anerkendt tidsserver og benytter UTC som tidsangivelse. Se

http://www.w3.org/TR/xmlschema11-2/#dateTime

4. ”anyType” angiver at elementet kan indeholde et vilkårligt indlejret XML-dokument.

5. ”ENUM” angiver at der skal benyttes én af de valgmuligheder der fremgår af Enumerationslisten.

Nogle elementer kan forekomme flere gange, nogle er optionelle og nogle skal altid medtages. Dette angives med kolonnen ”Antal”, hvor følgende gælder:

1. 1 betyder at elementet altid skal forekomme hvis betingelsen er opfyldt.

2. 0..1 betyder at elementet kan forekomme 0 eller 1 gang hvis betingelsen er opfyldt 3. 0..n betyder at elementet kan forekomme 0 eller vilkårligt mange gange hvis

betingelserne opfyldt

Endelig angives en beskrivelse af elementet i den sidste kolonne.

(22)

Bilag C: WSDL

<wsdl:definitions targetNamespace="urn:oio:medcom:ecprservice:1.0.0"

xmlns:ecws="urn:oio:medcom:ecprservice:1.0.0"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

<wsdl:types>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="urn:oio:medcom:ecprservice:1.0.0"

xmlns:ecws="urn:oio:medcom:ecprservice:1.0.0" elementFormDefault="qualified">

<xs:element name="GenerateReplacementCPRRequest"

type="ecws:GenerateReplacementCPRRequestType">

<xs:annotation>

<xs:documentation>Anmodning om et erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="GenerateReplacementCPRResponse"

type="ecws:GenerateReplacementCPRResponseType">

<xs:annotation>

<xs:documentation>Svar på anmodning om erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="LinkValidCPRWithReplacementCPRRequest"

type="ecws:LinkValidCPRWithReplacementCPRRequestType">

<xs:annotation>

<xs:documentation>Anmodning om at sætte eller ændre registreret information på et erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="LinkValidCPRWithReplacementCPRResponse"

type="ecws:LinkValidCPRWithReplacementCPRResponseType">

<xs:annotation>

<xs:documentation>Resultatet af en anmodning om at sætte eller ændre registreret information på et erstatningscprnummer</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="GetRegisteredReplacementCPRInformationRequest"

type="ecws:GetRegisteredReplacementCPRInformationRequestType">

<xs:annotation>

<xs:documentation>Anmodning om at se registreret information på et erstatningscprnummer eller se hvilke erstatningscprnumre der er tilknyttet et cpr nummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="GetRegisteredReplacementCPRInformationResponse"

type="ecws:GetRegisteredReplacementCPRInformationResponseType">

<xs:annotation>

<xs:documentation>Registreret information på et erstatningscprnummer eller registreret information på alle de erstatningscprnumre der er tilknyttet et cpr nummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="BulkGenerateReplacementCPRRequest"

type="ecws:BulkGenerateReplacementCPRRequestType">

<xs:annotation>

<xs:documentation>Anmodning om en pulje af erstatningscprnumre.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="BulkGenerateReplacementCPRResponse"

type="ecws:BulkGenerateReplacementCPRResponseType">

(23)

</xs:annotation>

</xs:element>

<xs:complexType name="LinkValidCPRWithReplacementCPRRequestType">

<xs:annotation>

<xs:documentation>Type for anmodning om at sætte/ændre registreringen af et validt cpr nummer på et erstatningscprnummer..</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:ReplacementCPR">

<xs:annotation>

<xs:documentation>Det erstatningscprnummer der skal ændres eller sættes oplysninger på.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element ref="ecws:ValidCPR" minOccurs="0">

<xs:annotation>

<xs:documentation>Et gyldigt cpr nummer der skal tilknyttes erstatningscprnummeret.

Hvis dette element ikke er med, fjernes tidligere tilknytning.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="LinkValidCPRWithReplacementCPRResponseType">

<xs:annotation>

<xs:documentation>Typen for et svar på anmodning om at sætte/ændre registreringen af et validt cpr nummer på et erstatningscprnummer.</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:ReplacementCPRInformation">

<xs:annotation>

<xs:documentation>Den opdateret registreret information på erstatningscprnummeret.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="GetRegisteredReplacementCPRInformationResponseType">

<xs:annotation>

<xs:documentation>Typen for et svar på anmodning om at se registreret information på et erstatningscprnummer eller på alle dem der er tilknyttet det angivet valide

cprnummer.</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:ReplacementCPRInformation" minOccurs="0" maxOccurs="unbounded">

<xs:annotation>

<xs:documentation>Information på et erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="GetRegisteredReplacementCPRInformationRequestType">

(24)

</xs:element>

<xs:element ref="ecws:ReplacementCPR">

<xs:annotation>

<xs:documentation>Et erstatningscprnummer, der søges kun på registreret information for dette erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:choice>

</xs:complexType>

<xs:complexType name="BulkGenerateReplacementCPRRequestType">

<xs:annotation>

<xs:documentation>Type for anmodning om at få en pulje af erstatningscprnumre.</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:Amount">

<xs:annotation>

<xs:documentation>Antal erstatningscprnumre i puljen.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="BulkGenerateReplacementCPRResponseType">

<xs:annotation>

<xs:documentation>Type for svar på anmodning om en pulje af erstatningscprnumre.</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:ReplacementCPR" maxOccurs="unbounded">

<xs:annotation>

<xs:documentation>Et erstatningscprnummer i puljen.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="GenerateReplacementCPRRequestType">

<xs:annotation>

<xs:documentation>Type for anmodning om et erstatningscprnummer.</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:Gender">

<xs:annotation>

<xs:documentation>Køn på den person erstatningscprnummeret skal tildeles til.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:choice minOccurs="0">

<xs:element ref="ecws:DateOfBirth">

<xs:annotation>

<xs:documentation>Fødselsdato for den person erstatningscprnummeret tildeles.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element ref="ecws:EstimatedAge">

<xs:annotation>

<xs:documentation>Anslået alder i hele år for den person erstatningscprnummeret tildeles.</xs:documentation>

</xs:annotation>

</xs:element>

(25)

<xs:documentation>Fornavn på den person erstatningscprnummeret tildeles.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element ref="ecws:Surname" minOccurs="0">

<xs:annotation>

<xs:documentation>Efternavn på den person erstatningscprnummeret tildeles.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element ref="ecws:ISOCountryCode" minOccurs="0">

<xs:annotation>

<xs:documentation>Lande kode for den personen erstatningscprnummeret tildeles.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:complexType name="GenerateReplacementCPRResponseType">

<xs:annotation>

<xs:documentation>Type for svar med erstatningscprnummer på anmodning her om.</xs:documentation>

</xs:annotation>

<xs:sequence>

<xs:element ref="ecws:ReplacementCPR">

<xs:annotation>

<xs:documentation>Tildelt erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:complexType>

<xs:element name="UpdatedBy">

<xs:annotation>

<xs:documentation>Navn på person der har udført en ændring eller sat registreret information på et erstatningscprnummer.</xs:documentation>

</xs:annotation>

<xs:simpleType>

<xs:restriction base="xs:string">

<xs:maxLength value="255"/>

<xs:minLength value="2"/>

</xs:restriction>

</xs:simpleType>

</xs:element>

<xs:element name="ISOCountryCode" type="ecws:ISOCountryCodeType">

<xs:annotation>

<xs:documentation>Lande kode på formen ISO 3166 med to tegn.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="ReplacementCPRInformation" type="ecws:ReplacementCPRInformationType">

<xs:annotation>

<xs:documentation>Registreret information på et erstatningscprnummer.</xs:documentation>

(26)

<xs:annotation>

<xs:documentation>Det erstatningscprnummer informationen er registreret på.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element ref="ecws:ValidCPR" minOccurs="0">

<xs:annotation>

<xs:documentation>Validt cpr nummer der tilknyttet erstatningscprnummeret.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element ref="ecws:ISOCountryCode" minOccurs="0">

<xs:annotation>

<xs:documentation>Landekode for person med dette erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:sequence minOccurs="0">

<xs:element ref="ecws:UpdatedBy">

<xs:annotation>

<xs:documentation>Navn på den der sidst har ændret eller sat information på dette erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="LastUpdateAt" type="xs:dateTime">

<xs:annotation>

<xs:documentation>Tidsstempel for sidste opdatering af den registreret information på dette erstatningscprnummer.</xs:documentation>

</xs:annotation>

</xs:element>

</xs:sequence>

</xs:sequence>

</xs:complexType>

<xs:element name="ValidCPR" type="ecws:ValidCPRType">

<xs:annotation>

<xs:documentation>Et gyldigt cpr nummer.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:simpleType name="ValidCPRType">

<xs:annotation>

<xs:documentation>Type for et validt cprnummer.</xs:documentation>

</xs:annotation>

<xs:restriction base="xs:string">

<xs:pattern value="[0-9]{10}"/>

</xs:restriction>

</xs:simpleType>

<xs:element name="Amount" type="xs:positiveInteger">

<xs:annotation>

<xs:documentation>Antal med et tal over nul.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="Gender" type="ecws:GenderType">

<xs:annotation>

<xs:documentation>Angivelse af køn</xs:documentation>

</xs:annotation>

</xs:element>

<xs:simpleType name="GenderType">

(27)

<xs:restriction base="xs:string">

<xs:enumeration value="male">

<xs:annotation>

<xs:documentation>Mand</xs:documentation>

</xs:annotation>

</xs:enumeration>

<xs:enumeration value="female">

<xs:annotation>

<xs:documentation>Kvinde</xs:documentation>

</xs:annotation>

</xs:enumeration>

</xs:restriction>

</xs:simpleType>

<xs:element name="DateOfBirth" type="xs:date">

<xs:annotation>

<xs:documentation>Fødselsdato</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="EstimatedAge" type="ecws:EstimatedAgeType">

<xs:annotation>

<xs:documentation>Anslået alder i hele år.</xs:documentation>

</xs:annotation>

</xs:element>

<xs:simpleType name="EstimatedAgeType">

<xs:annotation>

<xs:documentation>

<xs:documentation>Type for anslået alder i hele år, 0 til 130</xs:documentation>

</xs:documentation>

</xs:annotation>

<xs:restriction base="xs:int">

<xs:minInclusive value="0"/>

<xs:maxInclusive value="130"/>

</xs:restriction>

</xs:simpleType>

<xs:element name="GivenName" type="ecws:String_1_70">

<xs:annotation>

<xs:documentation>Fornavn</xs:documentation>

</xs:annotation>

</xs:element>

<xs:element name="Surname" type="ecws:String_1_70">

<xs:annotation>

<xs:documentation>Efternavn</xs:documentation>

</xs:annotation>

</xs:element>

<xs:simpleType name="String_1_70">

<xs:annotation>

<xs:documentation>En tekst streng på max 70 tegn og mindst 1 tegn.</xs:documentation>

</xs:annotation>

<xs:restriction base="xs:string">

(28)

<xs:simpleType name="ReplacementCPRType">

<xs:annotation>

<xs:documentation>Type for et erstatningscprnummer.</xs:documentation>

</xs:annotation>

<xs:restriction base="xs:string">

<xs:pattern value="([1-2][0-9]|0[1-9]|3[0-1])(0[1-9]|1[12])[0-9]{2}[17][A-Z]{2}[0-9]"/>

</xs:restriction>

</xs:simpleType>

<xs:simpleType name="ISOCountryCodeType">

<xs:annotation>

<xs:documentation>ISO 3166</xs:documentation>

</xs:annotation>

<xs:restriction base="xs:string">

<xs:pattern value="[A-Z]{2}"/>

</xs:restriction>

</xs:simpleType>

</xs:schema>

</wsdl:types>

<wsdl:message name="GenerateReplacementCPRIn">

<wsdl:part name="GenerateReplacementCPRInPart" element="ecws:GenerateReplacementCPRRequest"/>

</wsdl:message>

<wsdl:message name="GenerateReplacementCPROut">

<wsdl:part name="GenerateReplacementCPROutPart" element="ecws:GenerateReplacementCPRResponse"/>

</wsdl:message>

<wsdl:message name="BulkGenerateReplacementCPRIn">

<wsdl:part name="BulkGenerateReplacementCPRInPart"

element="ecws:BulkGenerateReplacementCPRRequest"/>

</wsdl:message>

<wsdl:message name="BulkGenerateReplacementCPROut">

<wsdl:part name="BulkGenerateReplacementCPROutPart"

element="ecws:BulkGenerateReplacementCPRResponse"/>

</wsdl:message>

<wsdl:message name="GetReplacementCPRInformationIn">

<wsdl:part name="GetReplacementCPRInformationInPart"

element="ecws:GetRegisteredReplacementCPRInformationRequest"/>

</wsdl:message>

<wsdl:message name="GetReplacementCPRInformationOut">

<wsdl:part name="GetReplacementCPRInformationOutPart"

element="ecws:GetRegisteredReplacementCPRInformationResponse"/>

</wsdl:message>

<wsdl:message name="LinkValidCPRWithReplacementCPRIn">

<wsdl:part name="LinkValidCPRWithReplacementCPRInPart"

element="ecws:LinkValidCPRWithReplacementCPRRequest"/>

</wsdl:message>

<wsdl:message name="LinkValidCPRWithReplacementCPROut">

<wsdl:part name="LinkValidCPRWithReplacementCPROutPart"

element="ecws:LinkValidCPRWithReplacementCPRResponse"/>

</wsdl:message>

<wsdl:portType name="ReplacementCPRPort">

<wsdl:operation name="GenerateReplacementCPROperation">

<wsdl:input message="ecws:GenerateReplacementCPRIn"/>

<wsdl:output message="ecws:GenerateReplacementCPROut"/>

</wsdl:operation>

<wsdl:operation name="BulkGenerateReplacementCPROperation">

(29)

<wsdl:operation name="GetReplacementCPRInformationOperation">

<wsdl:input message="ecws:GetReplacementCPRInformationIn"/>

<wsdl:output message="ecws:GetReplacementCPRInformationOut"/>

</wsdl:operation>

<wsdl:operation name="LinkValidCPRWithReplacementCPROperation">

<wsdl:input message="ecws:LinkValidCPRWithReplacementCPRIn"/>

<wsdl:output message="ecws:LinkValidCPRWithReplacementCPROut"/>

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="ReplacementCPRBinding" type="ecws:ReplacementCPRPort">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="GenerateReplacementCPROperation">

<soap:operation soapAction="urn:oio:medcom:ecprservice:1.0.0#GenerateReplacementCPR"

style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="BulkGenerateReplacementCPROperation">

<soap:operation soapAction="urn:oio:medcom:ecprservice:1.0.0#BulkGenerateReplacementCPR"

style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="GetReplacementCPRInformationOperation">

<soap:operation soapAction="urn:oio:medcom:ecprservice:1.0.0#GetReplacementCPRInformation"

style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="LinkValidCPRWithReplacementCPROperation">

<soap:operation soapAction="urn:oio:medcom:ecprservice:1.0.0#LinkValidCPRWithReplacementCPR"

style="document"/>

<wsdl:input>

<soap:body use="literal"/>

</wsdl:input>

<wsdl:output>

<soap:body use="literal"/>

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="GenerateReplacementService">

(30)

Referencer

[PERSLOV] “Persondataloven”, Datatilsynet, Lov nr. 429 af 31. maj 2000, http://www.datatilsynet.dk/lovgivning/persondataloven/

[SUNDLOV] “Sundhedsloven”, Lov nr. 546 af 24. juni 2005, http://www.retsinfo.dk/

Referencer

RELATEREDE DOKUMENTER

Nyledige: Hver uge viser antal unikke CPR-numre, som meldte sig ledige på

Kilde: Landspatientregisteret (DRG-grupperet) og CPR-registeret, Sundhedsdatastyrelsen. Note: Alder er opgjort på tidspunktet for kontakt. Det betyder, at en patient, der har

Kilde: Landspatientregisteret (DRG-grupperet) og CPR-registeret, Sundhedsdatastyrelsen. Note: Patienter er opgjort som unikke patienter. En unik patient er en patient, som har

• Personoplysninger, som CPR-nummer, kontaktoplysninger, køn, alder mv. • Bopælsoplysninger, som bopæl og med hvem. • Rusmiddelbrug, såsom hvad, hvor meget, hvor mange penge der

Ved ikke valide CPR-numre sætte denne parameter i WebReq som et eCPR-nummer. Når eCPR-nummer lægges på hotel, udskrives altid en PTB, som patient skal have

ƒ Ingen tidligere blodprøver kan findes på modtagende sygehus, patienten har nu fået erstatnings-CPR...

Kilde: Register for udvalgte kroniske sygdomme og svære psykiske lidelser (oktober 2019), Sygesikringsregisteret, Yderregisteret og CPR-registeret, Sundhedsdatastyrelsen. Note:

Straffuldbyrdelseskontoret september 2014.. Baggrund for rapporten ... Kvindelige klienter uden dansk cpr-nummer ... Baggrundsoplysninger for samtlige kvindelige klienter med