Page History
...
Som klient sender man et ReplicationRequest til servicen. Headeren skal indeholde en DGWS 1.0.1 header.
Bemærk at registerVersion-parameteren er frivillig. Hvis den udelades, svarer det til angive værdien 1.
Herudover skal der også vælges et register og en datatype. En liste af registre og deres datatyper kan findes på siden Stamdataregistre og tilhørende datatyper. På siden kan man bl.a. se, at registreret "cpr" fx har datatypen "person". Et request for dette vil se ud som følgende forespørgesel herunder.
Nærmere beskrivelse af registre og deres datatyper kan læses på siden Dokumentation af stamdataregistre.
Forespørgsel:
...
| Code Block | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?> |
...
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> |
...
<S:Header> |
...
…
...
--- </S:Header> |
...
<S:Body> |
...
<ns1:ReplicationRequest xmlns:ns1="http://nsi.dk/2011/10/21/StamdataKrs/"> |
...
<register>cpr</register> |
...
<datatype>person</datatype> |
...
<version>1</version> |
...
<registerVersion>1</registerVersion> |
...
<offset>0</offset> |
...
</ns1:ReplicationRequest> |
...
</S:Body> |
...
</S:Envelope> |
...
Bemærk at registerVersion-parameteren er frivillig. Hvis den udelades, svarer det til angive værdien 1.Hvis alt går som forventet og forespørgslen bliver godkendt modtages et svar:
Svar:
| Code Block | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?> |
...
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> |
...
<S:Header> |
...
…
...
--- </S:Header> |
...
<S:Body> |
...
<ns1:ReplicationResponse xmlns:ns1="http://nsi.dk/2011/10/21/StamdataKrs/"> |
...
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://nsi.dk/-/stamdata/3.0/cpr"> |
...
<atom:id>tag:nsi.dkersonLookupWithSubscriptionIntegrationTest.java,2011:cpr/person/v1</atom:id> |
...
<atom:updated>2011-10-25T07:02:08.045Z</atom:updated> |
...
<atom:title>Stamdata Registry Feed</atom:title> |
...
<atom:author> |
...
<atom:name>National Sundheds IT</atom:name> |
...
</atom:author> |
...
…
...
--- </atom:feed> |
...
</ns1:ReplicationResponse> |
...
</S:Body> |
...
</S:Envelope> |
Opstår der derimod en fejl, bliver en DGWS 1.0.1 Fault sendt tilbage, f.eks.:
Fejl:
| Code Block | ||
|---|---|---|
| ||
<soapenv:Envelope ...> |
...
<soapenv:Header>...</soapenv:Header> |
...
<soapenv:Body> |
...
<soapenv:Fault> |
...
<faultcode>Server</faultcode> |
...
<detail> |
...
<medcom:FaultCode>expired_idcard</medcom:FaultCode> |
...
</detail> |
...
<faultstring>The ID card has expired.</faultstring> |
...
</soapenv:Fault> |
...
</soapenv:Body> |
...
</soapenv:Envelope> |
3.5.2 Eksempel på kald til RFS
Som klient sender man et ReplicationRequest til servicen.
Forespørgsel:
...
| Code Block | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?> |
...
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> |
...
<S:Header> |
...
…
...
--- </S:Header> |
...
<S:Body> |
...
<ns1:ReplicationRequest xmlns:ns1="http://nsi.dk/2021/03/03/StamdataRfs/"> |
...
<register>cpr</register> |
...
<datatype>person</datatype> |
...
<version>1</version> |
...
<registerVersion>1</registerVersion> |
...
<idList> |
...
<id>1112579876</id> |
...
<id>2211657418</id> |
...
</idList> |
...
<filter>filter 1</filter> |
...
</ns1:ReplicationRequest> |
...
</S:Body> |
...
</S:Envelope> |
Headeren skal indeholde en DGWS 1.0.1 header.
...
3.5.3 Eksempel på svar ved brug af et filter til RFS
| Code Block | ||
|---|---|---|
| ||
<?xml version="1.0" encoding="UTF-8"?> |
...
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns3="http://www.w3.org/2000/09/xmldsig#" xmlns:ns4="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns5="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns6="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns7="http://nsi.dk/2024/02/27/StamdataRfs/"> |
...
<atom:id>tag:nsi.dk,2011:cpr/person/v1</atom:id> |
...
<atom:updated>2024-04-23T12:55:05.129Z</atom:updated> |
...
<atom:title>Stamdata Registry Feed</atom:title> |
...
<atom:author> |
...
<atom:name>National Sundheds IT</atom:name> |
...
</atom:author> |
...
<atom:entry> |
...
<atom:id>tag:nsi.dk,2011:cpr/person/v1/17136504000000005006</atom:id> |
...
<atom:title/> |
...
<atom:updated>2024-04-20T22:00:00.000Z</atom:updated> |
...
<atom:content type="application/xml"> |
...
<person:person xmlns="http://nsi.dk/-/stamdata/3.0/cpr" xmlns:person="http://nsi.dk/-/stamdata/3.0/cpr"> |
...
<cpr>0102451234</cpr> |
...
<koen>M</koen> |
...
<fornavn>Peter</fornavn> |
...
<mellemnavn>Sigurd</mellemnavn> |
...
</person:person> |
...
</atom:content> |
...
</atom:entry> |
...
</atom:feed> |
3.6 Detaljeret svar fra KRS
Her følger et mere detaljeret output fra KRS. Tolkning af dette er beskrevet i afsnittet efter.
...
| Code Block | ||
|---|---|---|
| ||
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://nsi.dk/-/stamdata/3.0/cpr"> |
...
<atom:id>tag:nsi.dk,2011:cpr/person/v1</atom:id> |
...
<atom:updated>2011-11-07T09:56:12.278Z</atom:updated> |
...
<atom:title>Stamdata Registry Feed</atom:title> |
...
<atom:author> |
...
<atom:name>National Sundheds IT</atom:name> |
...
</atom:author> |
...
<atom:entry> |
...
<atom:id>tag:nsi.dk,2011:cpr/person/v1/13206597710000000085</atom:id> |
...
<atom:title/> |
...
<atom:updated>2011-11-07T09:56:11.000Z</atom:updated> |
...
<atom:content type="application/xml"> |
...
<person> |
...
<cpr>0102451234</cpr> |
...
<koen>M</koen> |
...
<fornavn>Hans</fornavn> |
...
<mellemnavn/> |
...
<efternavn>Hansen</efternavn> |
...
<coNavn></coNavn> |
...
<lokalitet/> |
...
<vejnavn>Ligustervænget</vejnavn> |
...
<bygningsnummer>42</bygningsnummer> |
...
<husnummer>123</husnummer> |
...
<etage>12</etage> |
...
<sideDoerNummer>th.</sideDoerNummer> |
...
<bynavn>Enby</bynavn> |
...
<postnummer>1448</postnummer> |
...
<postdistrikt>Nøddebo</postdistrikt> |
...
<status>01</status> |
...
<gaeldendeCPR>3105459876</gaeldendeCPR> |
...
<foedselsdato>1947-12-24T00:00:00+01:00</foedselsdato> |
...
<stilling/> |
...
<vejKode>740</vejKode> |
...
<kommuneKode>314</kommuneKode> |
...
<validFrom>2011-11-07T10:56:21+01:00</validFrom> |
...
<validTo>2012-11-07T10:56:11+01:00</validTo> |
...
</person> |
...
</atom:content> |
...
</atom:entry> |
...
</atom:feed> |
3.7 Parsing af output
Responset fra SKRS og SRFS består af et antal metadata-felter, som indeholder overordnet information om de data der er i responset, samt en række entry-elementer. Et entry-element beskriver hvordan et forretningsobjekt så ud i en bestemt periode, repræsenteret ved ValidFrom- og ValidTo-felterne. Med forretningsobjekt menes her en instans af en datatype. Et forretningsobjekt er f.eks. instansen af datatypen 'Person' i CPR-registret med cpr-nummer '0102451234'. Et forretningsobjekt beskrives således af et antal entry-elementer, ét for hver version.
...
Der findes følgende endpoints:
- http://stamdatahost:8080/stamdata-authorization-lookup-ws/service/AuthorizationService?wsdl
- http://stamdatahost:8080/stamdata-authorization-lookup-ws/service/AuthorizationCodeService?wsdl
- http://stamdatahost:8080/stamdata-authorization-lookup-ws/service/AuthorizationService-20240105?wsdl
- http://stamdatahost:8080/stamdata-authorization-lookup-ws/service/AuthorizationCodeService-20240105?wsdl
Og hvis man kalder gennem DCC:
- http://stamdatahost:8080/decoupling/nspservices/AuthorizationService
- http://stamdatahost:8080/decoupling/nspservices/AuthorizationCodeService
- http://stamdatahost:8080/decoupling/nspservices/AuthorizationService20240105
http://stamdatahost:8080/decoupling/nspservices/AuthorizationCodeService20240105
5.2.2 Eksempel: Én eller flere autorisationer
...
For 1.0.4.1a er snitfladerne også udstillet som IDWS-snitflader og tillader dermed borgerkald, dog begrænset til opslag på eget cpr-nummer. -nummer.
For 1.0.3
http://stamdatahost:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.3
Bemærk at kald til DetGodeCPROpslag med en af 1.0.4-versionerne, skal kaldes gennem DCC med en serviceIdentifier:
For 1.0.34
http://stamdatahost:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.3For 1.0.44
DCC:
...
For 1.0.4.1
http://stamdatahost:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4.1
DCC:
For 1.0.4a
http://stamdatahost:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4a
DCC:
For 1.0.4.1a
http://stamdatahost:8080/stamdata-cpr-ws/service/DetGodeCPROpslag-1.0.4.1a
DCC:
1.0.4
5.3.3 Mangelfuld datagrundlag
...
Servicen returner alt gyldig information i yderregistret baseret på opslag med ydernummeret. Se beskrivelsen af Yderregisteret lisen af data felter.
5.5.1 EndpointsEndpoints
https://stamdatahost:8443/stamdata-yder-lookup-ws/service/YderService
Og hvis man kalder gennem DCC:
http://stamdatahost:8080/stamdata-yder-lookup-ws/servicedecoupling/nspservices/YderService
5.5.1 Eksempel: Én eller flere autorisationer
...
- http://stamdatahost/stamdata-personinformation/2024/08/v101/person/{cpr}
- http://stamdatahost/stamdata-personinformation/2024/08/v101/person/{cpr}/status
- http://stamdatahost/stamdata-personinformation/2024/08/01/{cpr}/status
- http://stamdatahost/stamdata-personinformation/2024/08/v101/person/{cpr}/age
- http://stamdatahost/stamdata-personinformation/2024/v108/01/person/{cpr}/birthday
- http://stamdatahost/stamdata-personinformation/2024/08/v101/person/{cpr}/custody
- http://stamdatahost/stamdata-personinformation/2024/08/v101/person/{cpr}/name
- http://stamdatahost/stamdata-personinformation/v12024/08/01/person/deceased
- http://stamdatahost/stamdata-personinformation/2024/v108/01/person/{cpr}/address
- http://stamdatahost/stamdata-personinformation/2024/08/01/person/filterByStatusCode
5.6.2 Eksempel 1: Person findes
...
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327402203954940 |
Response
Der svares med HTTP statuskode 200.
...
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327412203954940/status |
Response
Der svares med HTTP statuskode 200.
...
Der svares med HTTP statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at CPR nummeret ikke findes.
| Code Block | ||
|---|---|---|
| ||
{ }
|
5.6.
...
7 Eksempel 5:
...
Alder hentes
I dette eksempel kaldes servicen med et CPR nummer der eksisterer, men ikke har en statusog har alder 29 år i 2024.
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327412203954940/statusage |
Response
Der svares med HTTP statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at status ikke findesDer svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
{ "age":29}
|
5.6.
...
8 Eksempel 6: Alder hentes på person der ikke findes
I dette eksempel kaldes servicen med et CPR nummer der IKKE eksisterer, og har alder 6 år. Samme fejl fåes, hvis alder ikke kan udregnes pga manglende fødselsdato, eller hvis fødselsdatoen fejlagtigt er registreret i fremtiden.
Request
Request i form af curl udtryk.
...
Der svares med HTTP statuskode 200404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at CPR nummeret ikke findes.
| Code Block | ||
|---|---|---|
| ||
{"age":6 }
|
5.6.
...
10 Eksempel 7:
...
Fødselsdag hentes
...
I dette eksempel kaldes servicen med et CPR nummer der IKKE eksisterer.eksisterer, og fødselsdagen 22 marts 1995
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/2209632741/age |
Response
2203954940/birthday |
Response
Der svares med HTTP statuskode 200Der svares med HTTP statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at CPR nummeret ikke findes.
| Code Block | ||
|---|---|---|
| ||
{ }
"birthday":"1995-03-22"} |
5.6.
...
11 Eksempel 8:
...
Fødselsdag hentes på person der
...
ikke findes
I dette eksempel kaldes servicen med et CPR nummer der eksisterer, men hvoer der ikke er angivet en fødselsdato i den tabel alder udregnes fra. (Samme resultat fåes, hvis fødselsdatoen fejlagtig er registret i fremtiden)IKKE eksisterer.
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/2209632741/agebirthday |
Response
Der svares med HTTP statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at alder CPR nummeret ikke kan udregnesfindes.
| Code Block | ||
|---|---|---|
| ||
{ }
|
5.6.
...
12 Eksempel 9:
...
Værge og forældremål hentes
I dette eksempel kaldes servicen med et CPR nummer der er forældre til 2 børn. Børnene er 20. december 2024 1 år (0612234612) henholdsvis 4 år (0711208372) gamle. CPR nummereret har også værgemål over person med cpr 2802064092.I dette eksempel kaldes servicen med et CPR nummer der eksisterer, og fødselsdagen 24 december 2012
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327412203954940/birthdaycustody |
Response
Der svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
{"birthday":"2012-12-24"{"parentalCustody":[{"relationCpr":"0711208372","age":4},{"relationCpr":"0612234612","age":1}],"wardCustody":[{"relationCpr":"2802064092"}]} |
5.6.
...
13 Eksempel 10:
...
Værge og forældremål hentes på person der ikke
...
har sådanne
I dette eksempel kaldes servicen med et CPR nummer der IKKE eksisterer.der ikke har værge og fældremål
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327412802064092/birthdaycustody |
Response
Der svares med HTTP statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at CPR nummeret ikke findes..
| Code Block | ||
|---|---|---|
| ||
{ }
|
5.6.
...
14 Eksempel 11:
...
Navn hentes
I dette eksempel kaldes servicen med et CPR nummer der er forældre til 2 børn på 9 og 16 år samt har værgemål over person med cpr 2209632743eksisterer, og personen har 3 navne (fornavn, mellem og efternavn).
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327412203954940/custodyname |
Response
Der svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
{"parentalCustodygivenName":[{"relationCpr":Helle"2209632741","agemiddleName":9},{"relationCpr":"2209632742""Sejer","agefamilyName":16}],"wardCustodyLarsen":[{,"relationCprnameForAddressing":"2209632743"}]Helle Sejer Larsen"} |
5.6.
...
15 Eksempel 12:
...
Navn hentes på person der ikke
...
findes
I dette eksempel kaldes servicen med et CPR der ikke har værge og fældremålnummer der IKKE eksisterer.
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/2209632741/custodyname |
Response
Der svares med HTTP statuskode 404. statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at CPR nummeret ikke findes.
| Code Block | ||
|---|---|---|
| ||
{ }
|
5.6.
...
16 Eksempel 13:
...
Find afdøde personer
I dette eksempel kaldes servicen med et CPR nummer der eksisterer, og personen har 3 navne (fornavn, mellem og efternavn)en liste af CPR numre og en dato. Servicen returnere en liste af person id'er fra input listen, som tilhører afdøde personer, som døde før tidspunktet i inputtet.
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" "http://stamdatahost/stamdata-personinformation/v1/person/2209632770/namedeceased?cpr=0810018631&cpr=2609144427&cpr=2203954940&dato=2024-05-30T17:32:28" |
Response
Der svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
[{"givenNamecpr":"Helle0810018631"},{"middleNamecpr":"Louise","familyName":"Eskesen","nameForAddressing":"Helle Eskesen"}2609144427"}] |
5.6.
...
17 Eksempel 14:
...
Find personer adresse
I dette eksempel kaldes servicen med et CPR nummer der IKKE eksisterereksisterer og har en atkiv status-kode. Den returner personens adresse data (adresse, by og post nummer).
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/v1/person/22096327712203954940/nameaddress |
Response
Der svares med HTTP statuskode 404. Bemærk at Content-Type headeren også er application/json når HTTP koden 404 skyldes at CPR nummeret ikke findes.200.
| Code Block | ||
|---|---|---|
| ||
{ }
"address":"Kastanievej,395,,","zipCode":"8550","cityName":"Ryomgård"} |
5.6.
...
18 Eksempel 15:
...
Status hentes
I dette eksempel kaldes ny version af servicen med en liste af CPR numre og en dato. Servicen returnere en liste af person id'er fra input listen, som tilhører afdøde personer, som døde før tidspunktet i inputtetet CPR nummer der eksisterer, og har status 01. Servicen sikre i denne udgave, at foranstillede nuller bebeholdes i svaret.
Request
Request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" http://stamdatahost/stamdata-personinformation/2024/08/v101/person/deceased?cpr=0304784567&cpr=1508902650&dato=2023-07-21T17:32:28/2203954940/status |
Response
Der svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
[{"cprstatus":"030478456701"},{"cpr":"1508902650"}] |
5.6.
...
19 Eksempel 16: Find personer
...
med status
I dette eksempel kaldes servicen med et CPR nummer der eksisterer og har en atkiv status-kode. Den returner personens adresse data (adresse, by og post nummer)en liste af CPR numre, en statuskode og en dato. Servicen returnere en liste af person id'er fra input listen, som tilhører personer med status på tidspunktet i inputtet.
Request
Request Post request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json"curl -H "AcceptContent-Type: application/json" "http://stamdatahost/stamdata-personinformation/2024/08/v101/person/2209632770/addressfilterByStatusCode?statusCode=01&dato=2024-05-30T17:32:28" --data "[\"0810018631\",\"2609144427\",\"2203954940\"]" |
Response
Der svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
[{"addresscpr":"Bogenhøjvej 230","zipCode":"6666","cityName":"BirkeBy2203954940"}] |
5.6.
...
20 Eksempel 17:
...
Finder person der er født på angivede dato
I dette eksempel kaldes ny version af servicen med et CPR nummer der eksisterer, og har status 01. Servicen sikre i denne udgave, at foranstillede nuller bebeholdes i svareten dato. Servicen returnere en liste af person id'er fra input listen, som tilhører personer med status på tidspunktet i inputtet.
Request
Request Get request i form af curl udtryk.
| Code Block | ||
|---|---|---|
| ||
curl -H "Accept: application/json" -H "Content-Type: application/json" "http://stamdatahost/stamdata-personinformation/2024/08/01v1/person/2209632741/statuspersonsByBirthday?birthday=1995-03-22" |
Response
Der svares med HTTP statuskode 200.
| Code Block | ||
|---|---|---|
| ||
[{"statuscpr":"012203954940"}] |
5.7
...
Yderinformation
Stamdataservicen udstiller en REST service der kan tilgå data om yder. Anvenderguiden kan læses her:
SDM - Guide til anvendere - Yderinformation
5.8 Sikredeinformation
Stamdataservicen udstiller en REST service der kan tilgå data om sikrede. Anvenderguiden kan læses her:
SDM - Guide til anvendere - Sikredeinformation
6 Stamdata Filter Management Service (SFMS)
...
| Parameter | Beskrivelse | Eksemel |
|---|---|---|
| Navn | Det navn som filter skal kaldes. | "Filter 1" |
| ViewPath | Er informationer på SKRS eller SRFS . Det vil være disse oplysning i dette format: register/version/datatype/Registerversion, skal angives på en af disse to foramter. Format med registerVersion: register/registerversion/datatype/version Format uden registerVersion: register/datatype/version | "vitamin/1/grunddata/1" |
| DataTypeFieldList | Specificer hvilket felter som skal vises ved brug af filter ved visning af en specifik datatype. | "varetype", "alfabetSekvensplads" |
...