Den Gode E-CPRService MedCom, version 1.0 W 1
MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 2
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 BulkGenerateReplacementCPR... 19 LinkValidCPRWithReplacementCPR... 19 GetRegisteredReplacementCPRInformation... 20 Bilag C: WSDL... 22 Referencer... 30 MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 3
MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 4
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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 5
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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 6
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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 7
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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 8
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 cprnummer og der søges efter de e-cpr-numre der er tilknyttet dette valide cpr-nummer. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 9
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 cprnummer. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 10
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 Sundhedsdatanettet (VPN) Andet VPN SSL Tilladt 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 Type Ja Ja Nej Værdi 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 Sign On Single Sign On Tilladt Kuvert attributter I DGWS SOAP kuverters headere findes en række meta-oplysninger om de enkelte servicekald, hvoraf nogle udtrykker forventninger til serviceudbyderen. Selvom forventningerne i princippet kan variere fra operation til operation, idet der kan være forskel på hvor sensitive data der udveksles, ensretter denne specifikation attributterne på tværs af operationer aht. simpliciteten. En serviceudbyder skal således tage stilling til hvor lang tid der maksimalt må være gået siden brugeren blev autentificeret til et servicekald udføres. Dette Timeout implementeres af serviceudbyderen og kan medsendes i DGWS kuverter som et hint om hvad klienten Ja Nej MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 11
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 Uafviselig kvittering Prioritet 1-TOM Nej 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 Logning af adgang til personfølsomme data påkrævet? Påkræet 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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 12
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 GenerateReplacementCPRResponse BulkGenerateReplacementCPRRequest BulkGenerateReplacementCPRResponse LinkValidCPRWithReplacementCPRRequest LinkValidCPRWithReplacementCPRResponse GetRegisteredReplacementCPRInformationRequest GetRegisteredReplacementCPRInformationResponse GenerateReplacementCPRReq uesttype GenerateReplacementCPRRes ponsetype BulkGenerateReplacementCP RRequestType BulkGenerateReplacementCP RResponseType LinkValidCPRWithReplacemen tcprrequesttype LinkValidCPRWithReplacemen tcprresponsetype GetRegisteredReplacementCP RInformationRequestType GetRegisteredReplacementCP RInformationResponseType Gender GenderType Køn Anmodning om et e- cprnummer. Svar på anmodning om e-cpr-nummer. Anmodning om en pulje af e-cpr-numre. Svar på anmodning om en pulje af e-cprnumre. Anmodning om at linke et validt cpr nummer med et e-cprnummer. De opdateret oplysninger på e-cprnumret. Anmodning om at se registreret information på et e-cpr-nummer, eller se hvilke e-cprnumre der er tilknyttet det angivne valide cpr nummer. Information på det/de e-cpr-numre der er tilknyttet det angivne valide cpr-nummer. DateOfBirth Date Fødselsdato EstimatedAge Int Anslået alder, mellem 0 og 130. GivenName String Fornavn, op til 70 tegn. Surname String Efternavn, op til 70 tegn. ISOCountryCode String ISO 3166 Landekode ReplacementCPR ReplacementCPRType E-cprnummer efter formatet i afsnittet: Format. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 13
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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 14
Komplekse typer Type urn:oio:medcom:ecprservice:1.0.0 GenerateReplacementCPRRequestType Antal Beskrivelse 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 Anmodning om e-cpr-nummer. ISOCountryCode 0..1 ISO 3166 landekode GenerateReplacementCPRResponseType Svar på anmodning om e-cprnummer. ReplacementCPR 1 Erstatnings cpr nummer. BulkGenerateReplacementCPRRequestType Amount 1 Et positiv antal. Anmodning om en pulje af e-cprnumre. 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-cprnumret. ReplacementCPRInformation 1 Registreret information på et e-cprnummer. GetRegisteredReplacementCPRInformationRequestType Vælg mellem { ValidCPR 1 Validt cpr-nummer Eller } 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. ReplacementCPR 1 Erstatningscprnummer. GetRegisteredReplacementCPRInformationResponseType Information på det/de e-cpr-numre der er tilknyttet det angivne valide cpr-nummer. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 15
Type Antal Beskrivelse ReplacementCPRInformation 0..n Registreret information på et e-cprnummer. ReplacementCPRInformationType Registreret information på et e-cprnummer. 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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 16
Operationer XML-Listen viser et eksempel på dataindhold i webservicens request- og responsemeddelelser 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-ofkey</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> </saml:attribute> <saml:attribute Name="sosi:AuthenticationLevel"> <saml:attributevalue>2</saml:attributevalue> </saml:attribute> </saml:attributestatement> <saml:attributestatement id="userlog"> <saml:attribute Name="medcom:UserCivilRegistrationNumber"> <saml:attributevalue>2606444917</saml:attributevalue> </saml:attribute> <saml:attribute Name="medcom:UserGivenName"> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 17
<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" wsu:id="envelope"> <soap:header> <wsse:security> <wsu:timestamp> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 18
<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 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:oio:medcom:ecprservice:1.0.0"> <soap:body> <LinkValidCPRWithReplacementCPRRequest> <ReplacementCPR>2512481BN8</ReplacementCPR> <ValidCPR>2512484916</ValidCPR> </LinkValidCPRWithReplacementCPRRequest> </soap:body> </soap:envelope> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 19
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 styrekarakterer må ikke forekomme. Se http://www.w3.org/tr/xmlschema11-2/#string MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 20
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. MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 21
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:documentation>anmodning om et erstatningscprnummer.</xs:documentation> <xs:element name="generatereplacementcprresponse" type="ecws:generatereplacementcprresponsetype"> <xs:documentation>svar på anmodning om erstatningscprnummer.</xs:documentation> <xs:element name="linkvalidcprwithreplacementcprrequest" type="ecws:linkvalidcprwithreplacementcprrequesttype"> <xs:documentation>anmodning om at sætte eller ændre registreret information på et erstatningscprnummer.</xs:documentation> <xs:element name="linkvalidcprwithreplacementcprresponse" type="ecws:linkvalidcprwithreplacementcprresponsetype"> <xs:documentation>resultatet af en anmodning om at sætte eller ændre registreret information på et erstatningscprnummer</xs:documentation> <xs:element name="getregisteredreplacementcprinformationrequest" type="ecws:getregisteredreplacementcprinformationrequesttype"> <xs:documentation>anmodning om at se registreret information på et erstatningscprnummer eller se hvilke erstatningscprnumre der er tilknyttet et cpr nummer.</xs:documentation> <xs:element name="getregisteredreplacementcprinformationresponse" type="ecws:getregisteredreplacementcprinformationresponsetype"> <xs:documentation>registreret information på et erstatningscprnummer eller registreret information på alle de erstatningscprnumre der er tilknyttet et cpr nummer.</xs:documentation> <xs:element name="bulkgeneratereplacementcprrequest" type="ecws:bulkgeneratereplacementcprrequesttype"> <xs:documentation>anmodning om en pulje af erstatningscprnumre.</xs:documentation> <xs:element name="bulkgeneratereplacementcprresponse" type="ecws:bulkgeneratereplacementcprresponsetype"> <xs:documentation>et antal erstatningscprnumre svarende til antal i anmodningen.</xs:documentation> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 22
<xs:complextype name="linkvalidcprwithreplacementcprrequesttype"> <xs:documentation>type for anmodning om at sætte/ændre registreringen af et validt cpr nummer på et erstatningscprnummer..</xs:documentation> <xs:sequence> <xs:element ref="ecws:replacementcpr"> <xs:documentation>det erstatningscprnummer der skal ændres eller sættes oplysninger på.</xs:documentation> <xs:element ref="ecws:validcpr" minoccurs="0"> <xs:documentation>et gyldigt cpr nummer der skal tilknyttes erstatningscprnummeret. Hvis dette element ikke er med, fjernes tidligere tilknytning.</xs:documentation> </xs:sequence> </xs:complextype> <xs:complextype name="linkvalidcprwithreplacementcprresponsetype"> <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:sequence> <xs:element ref="ecws:replacementcprinformation"> <xs:documentation>den opdateret registreret information på erstatningscprnummeret.</xs:documentation> </xs:sequence> </xs:complextype> <xs:complextype name="getregisteredreplacementcprinformationresponsetype"> <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:sequence> <xs:element ref="ecws:replacementcprinformation" minoccurs="0" maxoccurs="unbounded"> <xs:documentation>information på et erstatningscprnummer.</xs:documentation> </xs:sequence> </xs:complextype> <xs:complextype name="getregisteredreplacementcprinformationrequesttype"> <xs:documentation>type for anmodning om at få registreret information på et erstatningscprnummer, eller på dem der er tilknyttet et validt cprnummer.</xs:documentation> <xs:choice> <xs:element ref="ecws:validcpr"> <xs:documentation>et validt cprnummer, ved dette hentes registreret information på alle de erstatningscprnumre der er tilknyttet det valide cprnummer.</xs:documentation> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 23
<xs:element ref="ecws:replacementcpr"> <xs:documentation>et erstatningscprnummer, der søges kun på registreret information for dette erstatningscprnummer.</xs:documentation> </xs:choice> </xs:complextype> <xs:complextype name="bulkgeneratereplacementcprrequesttype"> <xs:documentation>type for anmodning om at få en pulje af erstatningscprnumre.</xs:documentation> <xs:sequence> <xs:element ref="ecws:amount"> <xs:documentation>antal erstatningscprnumre i puljen.</xs:documentation> </xs:sequence> </xs:complextype> <xs:complextype name="bulkgeneratereplacementcprresponsetype"> <xs:documentation>type for svar på anmodning om en pulje af erstatningscprnumre.</xs:documentation> <xs:sequence> <xs:element ref="ecws:replacementcpr" maxoccurs="unbounded"> <xs:documentation>et erstatningscprnummer i puljen.</xs:documentation> </xs:sequence> </xs:complextype> <xs:complextype name="generatereplacementcprrequesttype"> <xs:documentation>type for anmodning om et erstatningscprnummer.</xs:documentation> <xs:sequence> <xs:element ref="ecws:gender"> <xs:documentation>køn på den person erstatningscprnummeret skal tildeles til.</xs:documentation> <xs:choice minoccurs="0"> <xs:element ref="ecws:dateofbirth"> <xs:documentation>fødselsdato for den person erstatningscprnummeret tildeles.</xs:documentation> <xs:element ref="ecws:estimatedage"> <xs:documentation>anslået alder i hele år for den person erstatningscprnummeret tildeles.</xs:documentation> </xs:choice> <xs:element ref="ecws:givenname" minoccurs="0"> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 24
<xs:documentation>fornavn på den person erstatningscprnummeret tildeles.</xs:documentation> <xs:element ref="ecws:surname" minoccurs="0"> <xs:documentation>efternavn på den person erstatningscprnummeret tildeles.</xs:documentation> <xs:element ref="ecws:isocountrycode" minoccurs="0"> <xs:documentation>lande kode for den personen erstatningscprnummeret tildeles.</xs:documentation> </xs:sequence> </xs:complextype> <xs:complextype name="generatereplacementcprresponsetype"> <xs:documentation>type for svar med erstatningscprnummer på anmodning her om.</xs:documentation> <xs:sequence> <xs:element ref="ecws:replacementcpr"> <xs:documentation>tildelt erstatningscprnummer.</xs:documentation> </xs:sequence> </xs:complextype> <xs:element name="updatedby"> <xs:documentation>navn på person der har udført en ændring eller sat registreret information på et erstatningscprnummer.</xs:documentation> <xs:simpletype> <xs:restriction base="xs:string"> <xs:maxlength value="255"/> <xs:minlength value="2"/> </xs:restriction> </xs:simpletype> <xs:element name="isocountrycode" type="ecws:isocountrycodetype"> <xs:documentation>lande kode på formen ISO 3166 med to tegn.</xs:documentation> <xs:element name="replacementcprinformation" type="ecws:replacementcprinformationtype"> <xs:documentation>registreret information på et erstatningscprnummer.</xs:documentation> <xs:complextype name="replacementcprinformationtype"> <xs:documentation>type for registreret information på et erstatningscprnummer.</xs:documentation> <xs:sequence> <xs:element ref="ecws:replacementcpr"> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 25
<xs:documentation>det erstatningscprnummer informationen er registreret på.</xs:documentation> <xs:element ref="ecws:validcpr" minoccurs="0"> <xs:documentation>validt cpr nummer der tilknyttet erstatningscprnummeret.</xs:documentation> <xs:element ref="ecws:isocountrycode" minoccurs="0"> <xs:documentation>landekode for person med dette erstatningscprnummer.</xs:documentation> <xs:sequence minoccurs="0"> <xs:element ref="ecws:updatedby"> <xs:documentation>navn på den der sidst har ændret eller sat information på dette erstatningscprnummer.</xs:documentation> <xs:element name="lastupdateat" type="xs:datetime"> <xs:documentation>tidsstempel for sidste opdatering af den registreret information på dette erstatningscprnummer.</xs:documentation> </xs:sequence> </xs:sequence> </xs:complextype> <xs:element name="validcpr" type="ecws:validcprtype"> <xs:documentation>et gyldigt cpr nummer.</xs:documentation> <xs:simpletype name="validcprtype"> <xs:documentation>type for et validt cprnummer.</xs:documentation> <xs:restriction base="xs:string"> <xs:pattern value="[0-9]{10}"/> </xs:restriction> </xs:simpletype> <xs:element name="amount" type="xs:positiveinteger"> <xs:documentation>antal med et tal over nul.</xs:documentation> <xs:element name="gender" type="ecws:gendertype"> <xs:documentation>angivelse af køn</xs:documentation> <xs:simpletype name="gendertype"> <xs:documentation>type for angivelse af køn.</xs:documentation> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 26
<xs:restriction base="xs:string"> <xs:enumeration value="male"> <xs:documentation>mand</xs:documentation> </xs:enumeration> <xs:enumeration value="female"> <xs:documentation>kvinde</xs:documentation> </xs:enumeration> </xs:restriction> </xs:simpletype> <xs:element name="dateofbirth" type="xs:date"> <xs:documentation>fødselsdato</xs:documentation> <xs:element name="estimatedage" type="ecws:estimatedagetype"> <xs:documentation>anslået alder i hele år.</xs:documentation> <xs:simpletype name="estimatedagetype"> <xs:documentation> <xs:documentation>type for anslået alder i hele år, 0 til 130</xs:documentation> </xs:documentation> <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:documentation>fornavn</xs:documentation> <xs:element name="surname" type="ecws:string_1_70"> <xs:documentation>efternavn</xs:documentation> <xs:simpletype name="string_1_70"> <xs:documentation>en tekst streng på max 70 tegn og mindst 1 tegn.</xs:documentation> <xs:restriction base="xs:string"> <xs:minlength value="1"/> <xs:maxlength value="70"/> </xs:restriction> </xs:simpletype> <xs:element name="replacementcpr" type="ecws:replacementcprtype"> <xs:documentation>et erstatningscprnummer.</xs:documentation> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 27
<xs:simpletype name="replacementcprtype"> <xs:documentation>type for et erstatningscprnummer.</xs:documentation> <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:documentation>iso 3166</xs:documentation> <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"> <wsdl:input message="ecws:bulkgeneratereplacementcprin"/> <wsdl:output message="ecws:bulkgeneratereplacementcprout"/> </wsdl:operation> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 28
<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"> <wsdl:port name="testecprservice" binding="ecws:replacementcprbinding"> <soap:address location="https://195.80.249.19/ecpr-service-ejb/erstatningscprws"/> </wsdl:port> <wsdl:port name="testecprserviceinternet" binding="ecws:replacementcprbinding"> <soap:address location="https://193.163.223.242/ecpr-service-ejb/replacementcprimpl"/> </wsdl:port> </wsdl:service> </wsdl:definitions> MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 29
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/ MedCom, Den Gode E-CPRService ver. 1.0 opdat. 18.10.2011 30