Denne "Kom Godt i Gang Guide" omhandler SKRS (Stamdata Kopi Register Service). Guiden er beregnet til it-faglige personer som skal til eller er i gang med at udvikle systemer, der skal integrere med SKRS på platformen. Det anbefales at Platformsintroduktion læses inden denne guide.


OBS: Denne guide  er under revision - dele af indholdet mangler opdatering.



1. Servicen

Denne service giver mulighed for at hente komplette kopier af stamdata-registre. Dette giver anvendere mulighed for at ajourføre en lokal kopi af et stamdata-register. Adgangen er begrænset af den aftale der indgås med NSP-operatøren.

Neden for anførte datasamlinger/registre er derfor ikke tilgængelige for alle. Se liste over hvad der er tilgængeligt her: NSP services#Datasamlinger

1.1. Registeroversigt

Her følger en oversigt, der kort beskriver indhold for hvert enkelt register. Det skal bemærkes, at registernavn i nedenstående tabel skal tages bogstaveligt, når der skabes et request mod servicen.

RegisternavnAliasBeskrivelse
autorisationsregisteretAutorisationsregisteretIndeholder informationer om hvilke sundhedsfaglige uddannelser en given person har gennemgået og er blevet autoriseret til af Sundhedsstyrelsen. Se også SAES - autorisations enkeltopslagsservice.
bemyndigelsesserviceBemyndigelsesregisteretIndeholder informationer om delegerede rettigheder mellem personer til brug i sundheds IT-systemer.
bgoBegrænset Ordinationsret registeret

Begrænset ordinationsret angiver via CPR og autorisationsnummer hvilke typer medicin der ikke må ordineres

cprCPR registeretIndeholder informationer om borgere i Danmark, herunder navne, adresse, familierelationer og børn.
ddv
Det Danske
Vaccinationsregister
Indeholder informationer om borgeres vaccinationer.
dkmaMedicinpriser eller 'Taksten'

Indeholder informationer om godkendte lægemidler, herunder priser, indholdsstoffer, indikationer, opbevaringsbetingelser, tilskudsregler, ATC m.m.

doseringsforslagDoseringsforslagIndeholder informationer om doseringsenheder og -forslag, der består af to relaterede datasæt: Doseringsenheder knytter en enhed til et lægemiddel; doseringsforslag knytter et antal forslag til doseringer til et lægemiddel.
sikredeSygesikringsregisteretIndeholder sygesikringsinformationer om den enkelte borger, herunder hvilken ydergruppe sikrede er tilknyttet (”egen læge” relationen).
sksSKS-registeret eller Sundhedsvæsenets KlassifikationssystemIndeholder klassifikationer af sundhedsvæsenets institutioner.
sorSundhedsvæsenets Organisationsregister

Indeholder detaljerede informationer om sundhedsvæsenets institutioner og personer med ydernummer.

tilskudsblanketTilskudsblanket

Indeholder et uddrag fra taksten, med informationer om, hvilke blanketter der bruges til hvilke tilskud.

vitaminStærke vitaminerIndeholder information om det godkendte sortiment af lægemidler af typerne stærke vitamin- og mineralpræparater, naturlægemidler samt radioaktive lægemidler, med oplysninger om bl.a. lægemidlernes form, styrke, indholdsstoffer, administrationsveje m.m. Disse er udeladt i 'Taksten'.
yderregisterYderregisteretIndeholder detaljerede informationer om ydere og personer tilknyttet.


Der findes en genereret oversigt med alle udstillede registre og deres datatyper, som automatisk opdateres løbende. Denne oversigt er nyttig, når en anvender skal opbygge et request mod SKRS, idet der bl.a. skal angives en datatype og version for det data, der ønskes leveret. Denne information indeholdes i nævnte oversigt.

2. Adgang til servicen

SKRS er tilgængelig på alle NSP-installationer. Servicen er udstillet som en DGWS-service. Alle kald til servicen logges.

2.1. Whitelisting

Servicen er underlagt whitelistningbegrænsning. Denne whitelistning er baseret på CVR-nummeret, der er indeholdt i anvendte ID-kort kombineret med et registernavn, datatypenavn og version. Der skal anmodes om whitelistning hos NSP-operatøren gennem en supporthenvendelse.

2.2. Sikkerhedsniveau

Servicen kræver ID-kort af niveau 3, dvs. ID-kort udstillet med et VOCES- eller FOCES-certifikat.

3. Replikering

Der vil være en kort forsinkelse efter modtagelse af en ny udgave af et register, indtil ændringerne kan hentes ud via servicen. Grunden til dette er at data skal replikeres ud til alle NSP-installationer fra centralt hold. Der er ikke nogen garanti for hvor aktuelt datagrundlaget er.

4. Test data

Servicen er ligeledes installeret på de eksterne testmiljøer, hvor den er fungerende i testføderationen, men er underlagt samme adgangskrav som i produktion. Adgang til testmiljøer er beskrevet her. Servicens datagrundlag er baseret på data specifik generet til testmiljøerne. En beskrivelse af og adgang til testdata findes her.

5. Servicekald

Herunder er nævnt endpoint samt servicekald for SKRS. Bemærk at ID-kort og MedCom-information er fjernet fra SOAP-eksemplerne i svar herunder samt SOAP-header indhold, for at lette overblikket.

5.1. Endpoints

Der findes et enkelt endpoint til denne service:

  • http://[host]:[port]/stamdata-batch-copy-ws/service/StamdataReplication

5.1.1. Operation replicate

Denne operation bruges til at sende replikerings-requestet til SKRS. Svaret er SOAP, hvori der findes et ATOM-feed, som har det reelle indhold, der ønskes kopieret. De til enhver tid mulige felter i det reelle indhold er defineret ved en række XML-skemaer. Der kan angives en række værdier til parametre i requestet, som beskrevet i nedenstående tabel:

ParameternavnBeskrivelse
registerRegisternavnet der ønskes udtræk fra, som bekrevet på tidligere nævnte oversigt.
datatypeDatatypen som bekrevet på tidligere nævnte oversigt.
version

Af hensyn til bagudkompabilitet versioneres udtræksfunktionaliteten for hvert enkelt register. Seneste tilgængelige version er bekrevet på tidligere nævnte oversigt.

offset

En parameter, der angiver hvorfra i servicens udtræk af ændrede data svaret skal påbegyndes. Fra begyndelsen angives med '0' (nul). I hvert svar fra SKRS findes et revisionsnummer på en entitet, eksempelvis <atom:id>tag:nsi.dk,2011:cpr/person/v1/13667186340000000001</atom:id>, hvor sidste del, navnlig 13667186340000000001 angiver hvilket offset entiteten har. Denne værdi kan bruges som offset ifbm. paginering.

maxRecordsBruges til at begrænse antallet af entitieter, som returneres i hvert svar. Der eksisterer en øvre grænse defineret af servicen, som ikke kan overstyres af anvendere.

Et eksempel på en SOAP-besked i et kald til denne operation:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <Security xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <Timestamp xmlns="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
            <Created>2014-01-31T12:39:30+01:00</Created>
         </Timestamp>
         <saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" IssueInstant="2014-01-31T11:34:30Z" Version="2.0" id="IDCard">
			...
			...
         </saml:Assertion>
      </Security>
      <Header xmlns="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
			...
			...
      </Header>
   </soapenv:Header>
   <soapenv:Body>
      <ns1:ReplicationRequest xmlns:ns1="http://nsi.dk/2011/10/21/StamdataKrs/">
         <register>cpr</register>
         <datatype>person</datatype>
         <version>1</version>
         <offset>0</offset>
         <maxRecords>1</maxRecords>
      </ns1:ReplicationRequest>
   </soapenv:Body></soapenv:Envelope>

Svaret fra dette kald:

<?xml version='1.0' encoding='UTF-8'?>
   <S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
      <S:Header>
		...
		...
      </S:Header>
      <S:Body>
         <ns7:ReplicationResponse xmlns:ns2="http://www.w3.org/2000/09/xmldsig#" xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:ns4="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ns5="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:ns6="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:ns7="http://nsi.dk/2011/10/21/StamdataKrs/">
            <atom:feed xmlns:atom="http://www.w3.org/2005/Atom">
               <atom:id>tag:nsi.dk,2011:cpr/person/v1</atom:id>
               <atom:updated>2014-01-31T11:39:30.418Z</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/13667186340000000001</atom:id>
                  <atom:title />
                  <atom:updated>2013-04-23T12:03:54.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>0101010000</cpr>
                        <koen>K</koen>
                        <fornavn>Lene</fornavn>
                        <mellemnavn>Johansson</mellemnavn>
                        <efternavn>Sørensen</efternavn>
                        <coNavn />
                        <lokalitet />
                        <vejnavn>Weidekampsgade</vejnavn>
                        <bygningsnummer />
                        <husnummer>40A</husnummer>
                        <etage />
                        <sideDoerNummer />
                        <bynavn />
                        <postnummer>8860</postnummer>
                        <postdistrikt>Ulstrup</postdistrikt>
                        <status>01</status>
                        <gaeldendeCPR>0101010000</gaeldendeCPR>
                        <foedselsdato>1901-01-01</foedselsdato>
                        <stilling />
                        <vejKode>6564</vejKode>
                        <kommuneKode>661</kommuneKode>
                        <validFrom>2013-04-23T14:03:54.000+02:00</validFrom>
                        <validTo>2999-12-31T00:00:00.000+01:00</validTo>
                     </person:person>
                  </atom:content>
               </atom:entry>
            </atom:feed>
         </ns7:ReplicationResponse>
      </S:Body>
   </S:Envelope>

5.1.2. Bemærkninger

Servicen vedligeholder historik på entiteter. I det ovenstående eksempel-svar findes felterne <validFrom> og <validTo>. Disse felter angiver gyldighedsperioden for en instans af den konkrete entitet. Den nuværende gyldige entitet indeholder et <validFrom> tidsstempel i fortiden eller nærværende øjeblik og et <validTo> i fremtiden. I tilfælde af, at entiteten opdateres i det bagvedliggende register, opdateres den eksisterende gyldige instans af entiteten på <validTo> med et tidsstempel der har værdien opdaterings-øjeblikket. Derved afsluttes instansens gyldighed. Samtidig skabes en ny instans af entiteten, hvor  <validFrom>  er sat til værdien for skabelses-øjeblikket og <validTo> sat til fremtiden. Dette kommer til udtryk i det afleverede svar, som en ATOM-entry for hver af disse operationer på entiteten, i nærværende eksempel 2 ATOM-entries.

6. Eksempel kode

Tilhørende eksempelkode kan findes på http://svn.nspop.dk/public/guides/latest, specielt under modulet skrs. Eksempelkoden indeholder et eksempel på kald af servicen:

MetodenavnBeskrivelse
personRequestExample

Svarer til eksempel i afsnit Operation replicate, dog med et større antal iterationer så der returneres information for fem borgere i stedet for én, som vist i nærværende tekst. Eksempelkoden henter information om en borger fra CPR-registeret.

Eksemplerne anvender følgende FOCES-certifikat:

KeystorefilCVR-RID
Statens_Serum_Institut_FOCES.jksCVR:46837428-FID:92421325

CVR-nummer indeholdt i det benyttede certifikat er whitelistet på testmiljøer. Endvidere har dette CVR-nummer rettighed til at læse fra alle registre.

  • No labels