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


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




1. Servicen

SAES står for Stamdata Autorisation Enkeltopslags Service, og tjener det ene formål at slå op i autorisationsregisteret. Servicen udstilles på alle NSP installationer, og vil svare på baggrund af forholdvis aktuel data.

1.1. Autorisationer

Alle sundhedsfaglige personer er udstyret med mindst én autorisation. Denne autorisation dækker over en sundhedsfagligpersons CPR nummer og uddannelse, hvortil der knyttes en entydig identifikation. På denne måde kan identiteten og rollen alene specificeres ved denne identifikation.

Hvis en sundhedsfaglig person har flere uddannelser, har vedkommende også flere autorisationer. Den autorisation, der er relevant i den virken, som personen agerer med, skal benyttes. For yderligere information om autorisationer se sundhedsstyrelsen beskrivelse pa deres hjemmeside.

1.1.1. Uddannelseskoder

Enhver anerkendt dansk uddannelse har en uddannelseskode. Disse er bl.a. specificeret hos Danmarks Statistik. Der er dog kun en delmængde af disse, der anvendes til her omtalte autorisationer. I skrivende stund er disse:

Nedenstående er sidst opdateret 15-04-2016 - data er taget fra en webservice hos SST.

UddannelseskodeFaggruppenavn
4498Optiker
5151Fysioterapeut
5152Social- og sundhedsassistent
5153Ergoterapeut
5158Radiograf
5159Bioanalytiker
5166Sygeplejerske
5175Jordemoder
5176Kontaktlinseoptiker
5176Optometrist
5265Kiropraktor
5431Tandplejer
5432Klinisk tandtekniker
5433Tandlæge
5451Klinisk diætist
7170Læge
9495Bandagist


1.1.2. Offentlig service

Det er muligt at slå autorisationer op direkte fra en webservice hos SST. Da der ikke er nogen form for autentifikation på servicen, opereres der dog ikke med CPR-numre. Servicen samt andre nyttige services kan findes her:

http://autregwebservice.sst.dk/autregservice.asmx

Det er desuden muligt at anvende en webbaseret formula for at lave et opslag på:

http://sundhedsstyrelsen.dk/da/ds/opslagautreg.aspx

1.1.3. Autorisationidentifikation

SST definerer hvad en autorisationidentifikation er (herefter blot autorisationsID) på deres hjemmeside. Kort beskrevet består sådan et autorisationsID af 5 cifre; enten tal, konsonanter eller et Y. Der tillægges ikke nogen fortolkning heraf.

Som tidligere beskrevet er et autorisationsID unikt, derfor kan det bruges på samme måde som et CPR-nummer inden for sundhedsområdet. Yderligere anvendelser er beskrevet på tidligere linkede side.

2. Adgang til servicen

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

Servicens endpoint er: http://<nsp-host>:8080/stamdata-authorization-lookup-ws/service/AuthorizationService

2.1. Whitelistning

Servicen er underlagt whitelistningsbegrænsning. Denne whitelistning er baseret på CVR-nummer, der er indeholdt i det medsendte id-kort. Der skal anmodes om whitelistning hos NSP operatøren gennem en supporthenvendelse på nspop.dk.

2.2. Sikkerhedsniveau

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

3. Replikering og importering

Datagrundlaget for autorisationer på NSP bliver opdateret dagligt. På grund af denne frekvens vil ændringer i autorisationsregisteret foretaget mod SST ikke være at finde på NSP med det samme. Derudover vil der også være en kort forsinkelse efter modtagelse af en ny udgave af registeret indtil ændringerne kan hentes ud via servicen. Grunden til dette er at data skal replikeres centralt fra ud til alle NSP-installationer.

Der er ikke nogen garanti for hvor aktuelt datagrundlaget er.

4. Testdata 

Servicen er ligeledes installeret på de eksterne testmiljøer. Herpå er servicen offentlig tilgængelig og underlagt samme adgangskrav som i produktion, dog i testføderationen. Adgang til testmiljøer er beskrevet på nspop.dk.

Servicens datagrundlag er baseret på data specifik generet til testmiljøerne. En beskrivelse af testdata findes på nspop.dk. Specielt kan alle autorisationer på testmiljøet findes på denne side på nspop.dk.

5. Eksempelkode

Tilhørende eksempelkode kan findes på http://svn.nspop.dk/public/guides/latest, specielt under modulet saes.

Der findes kun én SOAP-operation på servicens snitflade. WSDL til snitfladen findes på https://wsdl.nspop.dk/stamdata-authorization-lookup-ws/service/AuthorizationService?wsdl eller sammen med koden på https://svn.nspop.dk/public/components/sdm/latest/code/nsp/authorization-lookup-ws/src/main/webapp/WEB-INF/wsdl/ .

En forespørgelse ser således ud – dele af SOAP headeren samt namespaces er undladt:

request
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" id="Envelope">
  <soapenv:Header>
    <wsse:Security>
      ...
    </wsse:Security>
    <medcom:Header>
      ...
    </medcom:Header>
  </soapenv:Header>
  <soapenv:Body>
    <AuthorizationRequestStructure xmlns="http://nsi.dk/-/stamdata/3.0">
      <cpr>1111111118</cpr>
    </AuthorizationRequestStructure>
  </soapenv:Body>
</soapenv:Envelope>

Et svar kunne se således ud – dele af SOAP Header samt namespaces er undladt:

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Header>
    <ns5:Security xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
       ...
    </ns5:Security>
    <ns3:Header xmlns:ns3="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
      ...
    <ns3:FlowStatus>flow_finalized_succesfully</ns3:FlowStatus>
    </ns3:Header>
  </S:Header>
  <S:Body>
    <ns6:AuthorizationResponseStructure xmlns:ns6="http://nsi.dk/-/stamdata/3.0">
      <ns6:cpr>1111111118</ns6:cpr>
      <ns6:firstName>Helle</ns6:firstName>
      <ns6:lastName>Bonde</ns6:lastName>
      <ns6:authorization>
        <ns6:authorizationCode>12345</ns6:authorizationCode>
        <ns6:educationCode>7170</ns6:educationCode>
        <ns6:educationName>Læge</ns6:educationName>
      </ns6:authorization>
    </ns6:AuthorizationResponseStructure>
  </S:Body>
</S:Envelope>

5.1. Eksempel klient

I følgende repository ligger desuden et eksempel på kald til servicen: https://svn.nspop.dk/public/guides/latest/ Specielt er filen AuthorizationRequestExample.Java af interesse. Koden heri indeholder en del kommentarer, der beskriver kaldsforløbet.

Koden udfører et kald mod Test2-testmiljøet med CPR-nummeret 1111111118. Dette CPR-nummer findes på testmiljøerne, hvorfor et ikke-tomt svar returneres. Svaret stemmer overens med ovenstående beskrevne svar.

  • No labels