Indholdsfortegnelse


Endpoint

Opslag servicen kan tilgås på adressen:

[miljø url]/sor-opslag/SORLookupService

For eksempel, på TEST1-miljøet vil det være:

http://test1.ekstern-test.nspop.dk:8080/sor-opslag/

WSDL filen for servicen kan hentes ved at tilføje "?wsdl" til enden af URL'en, eksampel;

http://test1.ekstern-test.nspop.dk:8080/sor-opslag/SORLookupService?wsdl

Snitfladebeskrivelser

Fælles

Sikkerhed

Fælles for hele servicen, er at der bliver benyttet Den Gode Webservice (DGWS) til authentifikering, og der accepteres kun niveau 3 (VOCES og FOCES) eller 4 (MOCES) ID kort udstedt af SOSI-STS. Selvom at niveau 3 både indeholder FOCES og VOCES, så er det kun FOCES som er tilladt.

Namespaces

Alle kald til servicen vil benytte request typer defineret under namespacet:

http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06/

Der er type med samme navne under andre namespaces, så det er vigtigt at få valgt den rigtige.

Alle svar fra servicen vil benytte response typer defineret under namespacet:

http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06/

Eksterne typer

Mange af de data typer som bliver benyttet, kan typisk findes her:

http://filer.nsi.dk/sor/xsd/

Typer under både v_1_0_0 og v_2_0_0 bliver benyttet.

Følgende lokationer bliver også inkluderet for typer:

http://digitaliser.dk/resource/1945/artefact/CVR_CVRnumberIdentifier.xsd

http://rep.oio.dk/kms.dk/xml/schemas/2007/05/23/


Alle typer hentet eksternt fra er ikke angivet i dette dokument, da listen så vil blive meget lang.

Gyldighed

I de kald hvor at SorEntity bliver returneret, der er den returnerede version ikke den gyldige version af enheden. Den returnerede version er hvad der vil blive gyldigt i fremtiden (tidligst dagen efter).

ArrayOfLong type

ElementData typeBeskrivelse
longlongEn liste af tal værdier


ArrayOfsorSecurityGroupsExternal type

ElementData typeBeskrivelse
sorSecurityGroupsExternalsorSecurityGroupsExternalEn liste af security groups


sorSecurityGroupsExternal type

ElementData typeBeskrivelse

string

Enumeration af security groups. Kan have en af følgende værdier:

  • SorCentralRole
  • SorDecentralRole
  • SorEditorRole
  • SorGeoRole
  • SorShakRole
  • SorEdiCentralRole
  • SorEdiAdminRole
  • SorMoveEanRole


EanLocationCodeState type

ElementData typeBeskrivelse

string

Enumeration af stadier. Kan have en af følgende værdier:

  • Undefined
  • None
  • Inherited
  • Own


EanLocationCodeEntityType type

ElementData typeBeskrivelse
EanLocationCodeEanLocationCode (long)Lokationsnummer
OnlyInternalIndicatorOnlyInternalIndicator (boolean)Angiver om lokationsnummeret er til internt brug
NonActiveIndicatorNonActiveIndicator (boolean)Angiver om lokationsnummeret er ikke-aktivt
SystemSupplierIdentifierlongSystemleverandør-id
CommunicationSupplierIdentifierlongNetoperatør-id
SystemTypeIdentifierSystemTypeIdentifier (long)EDB-system-id
EdiAdministratorIdentifierEdiAdministratorIdentifier (long)EDI-Administrator-id
SorNoteSorNote (string, 254)Angiver eventuelle bemærkninger til lokationsnummeret
SorStatusSorStatusAngiver SOR enhedens status
RegionCodeRegionCode (string, 4)Regionens kode, f.eks. 1084 for RegionHovedstaden


ArrayOfEanLocationCodes type

ElementData typeBeskrivelse
eanLocationCodelongEn liste af lokationsnumre

ArrayOfEdiIdentifiers type

ElementData typeBeskrivelse
EdiIdentifierlongEn liste af EDI numre


Status type

ElementData typeBeskrivelse
ErrorCodeintHvis kaldet var en succes, så vil denne have værdien 0. Ved validerings fejl, så vil denne have en positiv værdi. Ved Tekniske og praktiske fejl, så vil denne have en negativ værdi.
MessagestringHvis ErrorCode er 0, er dette felt tomt. Ellers indeholder den en kort beskrivelse af, hvilken fejl der skete.


SorEntity type

ElementData typeBeskrivelse
SorIdentifierSorIdentifier (long)Unik nøgle der identificerer en SOR enhed
SorTypestringTekstværdi for SOR-type
GeographicalLocalisationIdentifierGeographicalLocalisationIdentifier (long)Id på geografisklokalitet
GeographicalLocalisationNameGeographicalLocalisationName (string, 40)Navn på den geografiske lokalitet
HasGeographicalLocalisationbooleanAngiveer om SOR enheden har en grafisk lokation
ParentSorIdentifierlongForældre SOR-id
ActivityAddressInformationActivityAddressInformationAktivitetsadressen
VisitingAddressInformationVisitingAddressInformationBesøgsadressen
PostalAddressInformationPostalAddressInformationPostadressen
PharmacyIdentifierPharmacyIdentifier (string, 20)SOR-enhedens apoteksnummer
EntityNameEntityName (string, 60)SOR Enhedens navn
EntityTypeIdentifierEntityTypeIdentifier (long)Teknisk nøgle for EntityType (SNOMED Concept Id)
VirtualAddressInformationVirtualAddressInformationAngiver enhedens hjemmesideadresse
ReportingLevelIndicatorReportingLevelIndicator (boolean)Angiver om enheden er indberetningsniveau til Landspatientregisteret (LPR2)
LocalAttributeCollectionLocalAttributeCollectionDer kan være op til 5 lokale attributter
LocalCodeLocalCode (string, 20)SOR-enhedens lokale kode. Attribut der frit kan benyttes af anvender organisationen.
EanLocationCodeStateEanLocationCodeState Angiver om lokationsnummer er nedarvet fra den hierarkiske mor. Kan være 'own', 'inherited' eller 'none'.
EanLocationCodeEntityEanLocationCodeEntityType Angiver lokationsnummeret på SOR enheden
CommunicationSupplierCommunicationSupplierAngiver netoperatør for lokationsnummeret. Obligatorisk hvis lokationsnummeret oprettes.
PatientsAdmittedIndicatorPatientsAdmittedIndicator (boolean)Angiver om enheden er et sengeafsnit
AmbulantActivityIndicatorAmbulantActivityIndicator (boolean)Angiver om enheden er et ambulatorie
ShakIdentifierShakIdentifier (string, 7)Angiver hvilken sygehusafdelingskode, der er knyttet til SORenheden. Den samme sygehusafdelingskode kan være knyttet til mere end én SORenhed. Der kan kun registreres officielle sygehusafdelingskoder.
PrioritizedEntitySpecialityCollectionPrioritizedEntitySpecialityCollectionListe af SOR enhedens kliniske specialer. Der kan angives op til 8, hvoraf nr. 1 er hovedspecialet.
SystemSupplierSystemSupplier

Angiver systemleverandøren for lokationsnummeret. Obligatorisk hvis lokationsnummer oprettes.

ProviderIdentifierProviderIdentifier (string, 9)SOR-enhedens ydernummer
CVRnumberIdentifierCVRnumberIdentifier (string, 8)CVR nummer for SOR-enheden
pNumberProductionUnitIdentifier (string, 10)

P nummer for SOR-enheden

InstitutionOwnerSorIdSorIdentifier (long)Sorid for øverste niveau i hierarkiet
InstitutionOwnerEntityTypeIdEntityTypeIdentifier (long)Teknisk nøgle for EntityType for øverste niveau i hierarkiet
HealthInstitutionSorIdSorIdentifier (long)Sorid for næstøverste niveau i hierarkiet
HealthInstitutionEntityTypeIdEntityTypeIdentifier (long)

Teknisk nøgle for EntityType for næstøverste niveau i hierarkiet


SearchParameters type

ElementData typeBeskrivelse
SorIdentifierintegerSOR entydig id
EanLocationCodeintegerLokationsnummer
EanLocationCodeSystemSupplierIdintegerLocationCode System Supplier nummer
EntityNamestring60SOR Enhedens navn
ProviderIdentifierstring9Providernummer
PharmacyIdentifierstring20Apoteknummer
LocalCodestring20SOR-enhedens lokale kode. Attribut der frit kan benyttes af anvender organisationen.
CvrNumberIdentifierstring8CVR nummer for SOR-enheden
GeographicalLocalisationIdintegerId på geografisklokalitet

SearchLimit type

ElementData typeBeskrivelse
SearchScopeSorIdintegerSOR entydig søge nummer
SearchScopeTypeSearchScopeType Search scope type

SearchScope type

ElementData typeBeskrivelse
Allstring

Enum værdi som ALL(default værdi)

All ChildrenstringEnum værdi som ALL_CHILDREN
Direct Childrenstring Enum værdi som DIRECT_CHILDREN

DecimalTenThree

ElementData typeBeskrivelse
decimaldecimal

total digits = 10

fraction digits = 3

string2

ElementData typeBeskrivelse
stringstring

max length = 2

string3

ElementData typeBeskrivelse
stringstring

max length = 3

string4

ElementData typeBeskrivelse
stringstring

max length = 4

string6

ElementData typeBeskrivelse
stringstring

max length = 6

string7

ElementData typeBeskrivelse
stringstring

max length = 7

string8

ElementData typeBeskrivelse
stringstring

max length = 8

string9

ElementData typeBeskrivelse
stringstring

max length = 9

string20

ElementData typeBeskrivelse
stringstring

max length = 20

string40

ElementData typeBeskrivelse
stringstring

max length = 40

string60

ElementData typeBeskrivelse
stringstring

max length = 60

string100


ElementData typeBeskrivelse
stringstring

max length = 100

string254

ElementData typeBeskrivelse
stringstring

max length = 254

string1000

ElementData typeBeskrivelse
stringstring

max length = 1000

ShakSorMap

ElementData typeBeskrivelse
SorShakMapIdintegerUnik ID for mapningsrecord
ShakIdstring7 Shak-kode der mappes
SorIdintegerSorId der mappes. Shak/Sor-Id'er medtages kun i gyldighedsperioder, med mapning.
IsDirectSorShakMappingbooleanTrue, hvis SHAK-koden er knyttet direkte til SOR-id I SOR. False, hvis  SHAK-koden kommer fra en ovenliggende SOR-enhed.
ShakIdsDirectSorIdintegerSOR-id for den enhed, som SHAK-koden er direkte knyttet til.  Kun angivet, hvis der er en indirekte mapning mellem "ShakId" og "SorId". Indeholder null, hvis der er en direkte mapning mellem "Shakid og SorId"
FromDatedateMapping recorden er gældende fradato.
Der er en ny record hver gang der enten er en ændring i SHAK eller SOR. Dvs, denne dato genereres ud fra SOR-fra-dato, SHAK-fra-dato eller nedarvede SOR-fra-datoer.
ToDatedateMapping recorden gældende til dato.
UpdatedAtdatetimeTidspunkt for genereringen af mapnings recorden.
SorTypestring2Tekstværdi for SOR-type, enten IE, SI, OE
SorEntityNamestring60SOR Enhedens navn
SorEntityTypeIdintegerTeknisk nøgle for EntityType (SNOMED Concept Id)
SorEntityTypeNamestring100Angiver hvilken type enheden har - fx privat, regional, tandlægepraksis, klinisk enhed, skadestue. Feltet kan indeholde enten en type af institutionsejer eller en type af sundhedsinstitution eller en type af organisatorisk enhed.
SorFirstFromDatedateFørste dato hvorfra SOR enheden er gældende.
SorFromDatedate

Fra dato for sidste ændring på SOR enheden. Hvis det er en ændring til en af attributterne på SOR enheden vil FromDate indeholde datoen for dagen efter ændringen til attributten.

SorToDatedate

Situation 1: ændringer til SOR enhed og hvor SOR enhed ikke lukkes
Dato for sidste dag hvor en række er aktiv, hvor der oprettes en ny række indeholdende SOR felter med nye værdier. ToDate i den nye række vil være null.

Situation 2: SOR enhed lukkes
Lukkedato for sidste dag hvor en SOR enhed er aktiv. Her findes der ikke nogen ny række, dvs. alle rækker tilknyttet SOR enhed har en dato i ToDate.

SorUpdatedAtdatetimeÆndringstidspunkt for SOR-enhed
SorParentSorIdintegerSor-Id for hierarkisk forælder entitet. Null for SorType institutionsejer (IE)
SorInstitutionOwnerSorIdintegerSor-Id der angiver institutionsejer (IE), dvs. øverste niveau i SOR hierarkiet for den enhed
SorInstitutionOwnerEntityNamestring60Angiver navnet på enhedens institutionsejer. Er altid udfyldt.
SorInstitutionOwnerEntityTypeIdintegerTeknisk nøgle (SNOMED Concept Id) der angiver typen af institutionsejer. (OWNER_TYPE.SUNDTERM_ID i stedet for TYPE_CODE).
SorInstitutionOwnerEntityTypeNamestring60Angiver hvilken type enheden har - enten privat, regional, kommunal, stat.
SorHealthInstitutionSorIdintegerSor-Id der angiver enhedens sundhedsinstitution, dvs. næstøverste niveau i SOR hierarkiet for den enhed. Er udfyldt for sortyperne SI og OE. Null hvis det er en IE sortype.
SorHealthInstitutionEntityNamestring60Angiver navnet på enhedens sundhedsinstitution. Angives kun for organisatoriske enheder.
SorHealthInstitutionEntityTypeIdinteger

Teknisk Id (SNOMED Concept Id) der angiver typen af sundhedsinstitution.

SorHealthInstitutionEntityTypeNamestring60Angiver typen af sundhedsinstitution fx tandlæge klinik, plejehjem, hospital
SorEanLocationCodeStatestring20Angiver om lokationsnummer er nedarvet fra den hierarkiske mor. Kan være 'own', 'inherited' eller 'none'. Det er lige blevet ændret I SOR-opdater-webservice, derfor denne ændring her.
SorEanLocationCodeintegerSOR-enhedens lokationsnummer
SorGeographicalLocalisationIdinteger Id for geografisk lokalitet til opslag i tabellen GeoLocalisation
SorGeographicalLocalisationNamestring40 Navn på den geografiske lokalitet
SorVisitingAddressInheritanceIndicatorboolean True hvis besøgsadressen er arvet via SOR-hierarkiet. Værdier: True/False.
SorVisitingAddressStreetNamestring40 Besøgsadressens vejnavn
SorVisitingAddressStreetCode string4 Besøgsadressens vejkode til vejregister i CPR
SorVisitingAddressStreetBuildingId string4 Besøgsadressens husnummer
SorVisitingAddressFloorId string2Besøgsadressens etage
SorVisitingAddressSuiteId string4Besøgsadressens dør eller til højre, til venstre eller midt for 
SorVisitingAddressAdditionalAddressInfostring40Besøgsadressens ekstra adresseinformation: Information der specificerer fysiske adresser.
SorVisitingAddressPostCodeId string4 Besøgsadressens postnummer
 SorVisitingAddressDistrictName string20 Besøgsadressens postdistriktsnavn
SorVisitingAddressMunicipalityCode  string4 Besøgsadressens kommunekode, der identificerer en kommune i myndighedstabellerne i Det Centrale Personregister
 SorVisitingAddressRegionCode string4 Besøgsadressens regionskode
 SorVisitingAddressCountryIdCode string6 Besøgsadressens landekode. Pt kun er muligt at oprette danske adresser.
 SorVisitingAddressCoordETRS89z32NMeasure DecimalTenThree Besøgsadressens GPS koordinater (ETRS89, north)
 SorVisitingAddressCoordETRS89z32EMeasure DecimalTenThree Besøgsadressens GPS koordinater (ETRS89, east)
 SorPrioritizedEntitySpeciality1Id integer Teknisk (SNOMED Concept Id) nøgle til enhedens klinisk hovedspeciale
 SorPrioritizedEntitySpeciality1Name string254 Angiver enhedens hovedspeciale
 SorPrioritizedEntitySpeciality2Id integer Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality2Name string254 Angiver enhedens bispeciale
 SorPrioritizedEntitySpeciality3Id integer Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality3Name string254 Angiver enhedens bispeciale 
 SorPrioritizedEntitySpeciality4Id integer Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality4Name string254  Angiver enhedens bispeciale
 SorPrioritizedEntitySpeciality5Idinteger  Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality5Name string254  Angiver enhedens bispeciale
 SorPrioritizedEntitySpeciality6Id integer Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality6Name string254  Angiver enhedens bispeciale
 SorPrioritizedEntitySpeciality7Id integer Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality7Name string254  Angiver enhedens bispeciale
 SorPrioritizedEntitySpeciality8Id integer Teknisk (SNOMED Concept Id) nøgle til klinisk speciale
 SorPrioritizedEntitySpeciality8Name string254  Angiver enhedens bispeciale
 ShakDateFrom date Gyldig fra dato for SHAK enhed
 ShakDateTodatetime  Gyldig til dato for SHAK enhed
 ShakUpdatedAtdatetime Ændringstid for SHAK enhed
 ShakNamestring60 Shak Navn
 ShakInstitutionTypeIdstring3 ID for SHAK institutiontype
 ShakInstitutionTypeNamestring254 SHAK institutionstype fra "sygehusniveau"
 ShakOwnerTypeIdstring3 ID for SHAK owner type
 ShakOwnerTypeNamestring254 SHAK owner type, f.eks. regional, privat, statslig...
 ShakMainSpecialityIdstring3 ID for SHAK hovedspeciale.
 ShakMainSpecialityNamestring254 SHAK hovedspeciale
 ShakSpeciality1Idstring3 ID for Shak bispeciale 1
 ShakSpeciality1Namestring254

SHAK bispeciale 1 

 ShakSpeciality2Idstring3ID for Shak bispeciale 2
 ShakSpeciality2Namestring254

SHAK bispeciale 2 

 ShakSpeciality3Idstring3ID for Shak bispeciale 2 
 ShakSpeciality3Namestring254

SHAK bispeciale 2  

GetSorEntity Operation

Security gruppe påkrævet: SorCentralRole

Input
ElementData type OptionalBeskrivelse

SorIdentifier

long noSor entydig Id
SnapshotDatedate yesSOR-enhedens data på en given dato. Hvis dato er tom vil der blive returneret gældende SOR enhed dagsdato.
Output
ElementData typeBeskrivelse
SorEntitySorEntitySor entity object svarende til sor entity record i SDM databasen
StatusStatusStatus for hvordan kaldet gik


Search Operation

Security gruppe påkrævet: SorCentralRole

Input
ElementData type OptionalBeskrivelse
SearchparametersSearchParametersType yes Søge parameter
SearchLimit

SearchLimitType

 yes (default search scope = ALL)Søge begrænsning
Output
ElementData typeBeskrivelse
SorEntitiesSorEntity listEn liste over de SOR enheder
StatusStatusStatus for hvordan kaldet gik


SorShakMap Operation

Security gruppe påkrævet: SorCentralRole

Input
ElementData type OptionalBeskrivelse
SorIdentifierinteger noSOR id
datedate yesHvis udfyldt returneres historisk mapning fra angivne dato. Hvis ikke udfyldt, så returneres data fra dagsdato.
Output
ElementData typeBeskrivelse
 SorShakMapResp ShakSorMap Shak sor map objekt type
StatusStatusStatus for hvordan kaldet gik

ShakSorMap Operation

Security gruppe påkrævet: SorCentralRole

Input
ElementData type OptionalBeskrivelse
ShakIdentifierstring7 noShak id
datedate yesHvis udfyldt returneres historisk mapning fra angivne dato. Hvis ikke udfyldt, så returneres data fra dagsdato.
Output
ElementData typeBeskrivelse
 ShakSorMapRespList of ShakSorMap Shak sor map objekt type
StatusStatusStatus for hvordan kaldet gik


Fejlkoder

Her er en kort liste over, nogle af de fejlkoder som kan forekomme, når servicen benyttes:

KodeBeskrivelse
-13SOAP request er ugyldigt of kan ikke valideres
-12Fejl når forsøger at konverter response object til SOAP
-11Fejl under SOAP body transformation
-10Fejl under konvertering af object til XML
-9Fejl under paersering af SOAP besked body
-8Fejl under connect til SOR databasen for whitelisting
-7Fejl under connect/forespørgelse mod SDM databasen
-6Autorisations fejl, CVR er ikke whitelisted
-5Autorisations fejl, ugyldig type af certifikat brugt, kun FOCES og MOCES er tilladt
-4Autorisations fejl, uden for gyldighedsperioden for sikkerheds headeren
-3Autorisations fejl, kun certifikat niveau 3 eller 4 er tilladt
-2Autentifikations fejl, kan ikke læse forespørgelsen
-1Autentifikations fejl, invalid signatur

Alle fejl kan forekomme i brugen af servicen, specielt fejlen fra -7 til -13. I alle tilfælde vil Message elementet i Status typen være sat.

Eksempel på kald

Java frameworks

For en eksempel implementation i Java, kan der med foredel tages udgangspunkt i servicens integrationstest:

https://svn.nspop.dk/svn/capgemini/SORServices/NSP/sorls/trunk/SorLookupService/src/test/java/dk/sds/nsp/sor/sorls/servlet/SorlsServletIT.java

Denne implementerer og bruge er JAX-WS klient for servicen, implementeret med Apache CXF. Klienten benytter også Seal.Java biblioteket til håndtering af SOSI ID kort og DGWS. Yderligere dokumentation på biblioteket kan findes her:

https://digitaliser.dk/group/374971

.NET frameworks

Seal.NET er .NET ekvivalenten til Seal.Java, og er dokumenteret her:

http://digitaliser.dk/group/375117

Der eksisterer ingen eksempel implementation i .NET, men bibliotek og WSDL er frit tilgængelig til at lave en sådan.