Opdater servicen kan tilgås på adressen:
[miljø url]/sor-opdater/SOROpdateringService
For eksempel, på TEST1-miljøet vil det være:
http://test1.ekstern-test.nspop.dk:8080/sor-opdater/SOROpdateringService
WSDL filen for servicen kan hentes ved at tilføje "?wsdl" til enden af URL'en.
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.
Alle kald til servicen vil benytte typer defineret under namespacet:
http://sundhedsdatastyrelsen.dk/SOROpdateringService/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 typer defineret under namespacet:
Mange af de data typer som bliver benyttet, kan typisk findes her:
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/cvr.dk/xml/schemas/2005/03/22/CVR_ProductionUnitIdentifier.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.
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).
Element | Data type | Beskrivelse |
---|---|---|
Roles | ArrayOfsorSecurityGroupsExternal | Liste af sikkerheds grupper som skal bruges under autoriseringen af et kald. Hvert type af kald har sin type som er nødvendigt, for at kunne udføre operationen. Afsenders CVR nummer skal være knyttet til den afsendte gruppe. |
Entities | ArrayOfLong | Liste af SOR-ID'er hvis træer som afsenderen har adgang til at redigere i |
Element | Data type | Beskrivelse |
---|---|---|
long | long | En liste af tal værdier |
Element | Data type | Beskrivelse |
---|---|---|
sorSecurityGroupsExternal | sorSecurityGroupsExternal | En liste af security groups |
Element | Data type | Beskrivelse |
---|---|---|
string | Enumeration af security groups. Kan have en af følgende værdier:
|
Element | Data type | Beskrivelse |
---|---|---|
string | Enumeration af stadier. Kan have en af følgende værdier:
|
Element | Data type | Beskrivelse |
---|---|---|
EanLocationCode | EanLocationCode (long) | Lokationsnummer |
OnlyInternalIndicator | OnlyInternalIndicator (boolean) | Angiver om lokationsnummeret er til internt brug |
NonActiveIndicator | NonActiveIndicator (boolean) | Angiver om lokationsnummeret er ikke-aktivt |
SystemSupplierIdentifier | long | Systemleverandør-id |
CommunicationSupplierIdentifier | long | Netoperatør-id |
SystemTypeIdentifier | SystemTypeIdentifier (long) | EDB-system-id |
EdiAdministratorIdentifier | EdiAdministratorIdentifier (long) | EDI-Administrator-id |
SorNote | SorNote (string, 254) | Angiver eventuelle bemærkninger til lokationsnummeret |
SorStatus | SorStatus | Angiver SOR enhedens status |
RegionCode | RegionCode (string, 4) | Regionens kode, f.eks. 1084 for RegionHovedstaden |
Element | Data type | Beskrivelse |
---|---|---|
eanLocationCode | long | En liste af lokationsnumre |
Element | Data type | Beskrivelse |
---|---|---|
EdiIdentifier | long | En liste af EDI numre |
Element | Data type | Beskrivelse |
---|---|---|
ErrorCode | int | Hvis 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. |
Message | string | Hvis ErrorCode er 0, er dette felt tomt. Ellers indeholder den en kort beskrivelse af, hvilken fejl der skete. |
Element | Data type | Beskrivelse |
---|---|---|
SorIdentifier | SorIdentifier (long) | Unik nøgle der identificerer en SOR enhed |
SorType | string | Tekstværdi for SOR-type, skal være enten "IO", "HI", eller "OU" |
GeographicalLocalisationIdentifier | GeographicalLocalisationIdentifier (long) | Id på geografisklokalitet |
GeographicalLocalisationName | GeographicalLocalisationName (string, 40) | Navn på den geografiske lokalitet |
HasGeographicalLocalisation | boolean | Angiveer om SOR enheden har en grafisk lokation |
ParentSorIdentifier | string | Forældre SOR-id |
ActivityAddressInformation | ActivityAddressInformation | Aktivitetsadressen |
VisitingAddressInformation | VisitingAddressInformation | Besøgsadressen |
PostalAddressInformation | PostalAddressInformation | Postadressen |
PharmacyIdentifier | PharmacyIdentifier (string, 20) | SOR-enhedens apoteksnummer |
EntityName | EntityName (string, 60) | SOR Enhedens navn |
EntityTypeIdentifier | EntityTypeIdentifier (long) | Teknisk nøgle for EntityType (SNOMED Concept Id) |
VirtualAddressInformation | VirtualAddressInformation | Angiver enhedens hjemmesideadresse |
ReportingLevelIndicator | ReportingLevelIndicator (boolean) | Angiver om enheden er indberetningsniveau til Landspatientregisteret (LPR2) |
LocalAttributeCollection | LocalAttributeCollection | Der kan være op til 5 lokale attributter |
LocalCode | LocalCode (stirng, 20) | SOR-enhedens lokale kode. Attribut der frit kan benyttes af anvender organisationen. |
EanLocationCodeState | EanLocationCodeState | Angiver om lokationsnummer er nedarvet fra den hierarkiske mor. Kan være 'own', 'inherited' eller 'none'. |
EanLocationCodeEntity | EanLocationCodeEntityType | Angiver lokationsnummeret på SOR enheden |
CommunicationSupplier | CommunicationSupplier | Angiver netoperatør for lokationsnummeret. Obligatorisk hvis lokationsnummeret oprettes. |
PatientsAdmittedIndicator | PatientsAdmittedIndicator (boolean) | Angiver om enheden er et sengeafsnit |
AmbulantActivityIndicator | AmbulantActivityIndicator (boolean) | Angiver om enheden er et ambulatorie |
ShakIdentifier | ShakIdentifier (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. |
PrioritizedEntitySpecialityCollection | PrioritizedEntitySpecialityCollection | Liste af SOR enhedens kliniske specialer. Der kan angives op til 8, hvoraf nr. 1 er hovedspecialet. |
SystemSupplier | SystemSupplier | Angiver systemleverandøren for lokationsnummeret. Obligatorisk hvis lokationsnummer oprettes. |
ProviderIdentifier | ProviderIdentifier (string, 9) | SOR-enhedens ydernummer |
CVRnumberIdentifier | CVRnumberIdentifier (string, 8) | CVR nummer for SOR-enheden |
ProductionUnitIdentifier | ProductionUnitIdentifier (string, 10) | P nummer for SOR-enheden |
Security gruppe påkrævet: SorCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SorObject | SorEntity | Det SOR objekt som skal oprettes |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
CreateSorEntityResult | SorEntity | Det SOR objekt som blev oprettet i systemet |
Security gruppe påkrævet: SorCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SorObject | SorEntity | Det SOR objekt som skal redigeres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
EditSorEntityResult | SorEntity | SOR objektet som det ser ud efter redigering |
Security gruppe påkrævet: SorCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SorIdentifier | SorIdentifier (long) | ID på det SOR objekt som skal flyttes |
ParentSorIdentifier | long | ID på den nye parent SOR enhed |
FromDate | date | Dato for hvornår at flytningen skal træde i kraft |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
MoveSorEntityResult | SorEntity | SOR objektet som det ser ud efter flytningen |
Security gruppe påkrævet: SorCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SorIdentifier | SorIdentifier (long) | ID på den SOR enhed som skal bruges til erstatte med |
ReplacesEntityCollection | ReplacesEntityCollection | Liste af SOR ID'er på de enheder som skal erstattes |
FromDate | date | Dato for hvornår at erstatningen skal træde i kraft |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SorIdentifier | SorIdentifier (long) | ID på det SOR objekt som skal lukkes |
FromDate | date | Dato for hvornår at lukningen skal træde i kraft |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorEdiCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SystemTypeIdentifier | SystemTypeIdentifier (long) | EDB-system-id |
EanLocationCodeEntities | ArrayOfEanLocationCodes | Liste af lokationsnumre som skal opdateres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorEdiCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
CommunicationSupplierIdentifier | long | VANS leverandør (ID) |
EanLocationCodeEntities | ArrayOfEanLocationCodes | Liste af lokationsnumre som skal opdateres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorEdiCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
EdiAdministratorIdentifier | EdiAdministratorIdentifier (long) | EDI-Administrator-id |
EanLocationCodeEntities | ArrayOfEanLocationCodes | Liste af lokationsnumre som skal opdateres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorEdiCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
RegionCode | RegionCode (string, 4) | Region |
EanLocationCodeEntities | ArrayOfEanLocationCodes | Liste af lokationsnumre som skal opdateres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorEdiCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SystemSupplierIdentifier | long | Systemleverandør-id |
EanLocationCodeEntities | ArrayOfEanLocationCodes | Liste af lokationsnumre som skal opdateres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorEdiCentralRole
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
SorIdentifier | SorIdentifier (long) | SOR-kode for den nye enhed, som den skal knyttes til |
EanLocationCode | EanLocationCode (long) | Angiver lokationsnummeret for enheden |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Security gruppe påkrævet: SorCentralRole
ArrayOfEdiIdentifiers
Input | ||
Element | Data type | Beskrivelse |
---|---|---|
User | User | User element til brug i autorisering af kaldet |
EdiIdentifiers | ArrayOfEdiIdentifiers | Liste af EDI numre |
EanLocationCodeEntities | ArrayOfEanLocationCodes | Liste af lokationsnumre som skal opdateres |
Output | ||
Element | Data type | Beskrivelse |
---|---|---|
Status | Status | Status for hvordan kaldet gik |
Alle operationer vil som udgangspunkt returnere et Status
objekt som en del af svaret. Dette object indeholder altid to felter, ErrorCode
og Message
. Hvis ErrorCode
er 0, så var kaldet en succes, ellers skete der en fejl i løbet af kaldet. Positive værdier er validerings fejl fra SOR's interne systemer, og Message
vil have en beskrivelse af fejlen. Mere tekniske fejl vil blive lavet som en SOAP fault. De nedenstående er hvilke denne applikation definerer:
MedCom fault code | Fault string | Beskrivelse |
---|---|---|
invalid_signature | Invalid signature | Autentifikations fejl, invalid signatur |
missing_required_header | Unable to read request | Autentifikations fejl, kan ikke læse forespørgelsen |
security_level_failed | Invalid authentication level, level 3 or 4 required | Autorisations fejl, kun certifikat niveau 3 eller 4 er tilladt |
expired_idcard | Current time is outside of valid period | Autorisations fejl, uden for gyldighedsperioden for sikkerheds headeren |
invalid_certificate | The type of certificate used is invalid, FOCES or MOCES required | Autorisations fejl, ugyldig type af certifikat brugt, kun FOCES og MOCES er tilladt |
not_authorized | CVR not whitelisted | Autorisations fejl, CVR er ikke whitelisted |
Error happened while contacting SOR database | Fejl under forespørgelse mod databasen | |
syntax_error | Unable to parse body | Fejl under transformeringen af SOAP body til et objekt |
Unable to marshal object | Fejl under transformeringen af object til XML | |
Unable to write body | Fejl under at skrive det transformerede objekt til klienten | |
Error happened while contacting SOR backend | Fejl under forespørgelse mod backenden | |
Invalid request type | Ukendt operation mod backenden |
Andre fejlkoder kan forekomme, men disse kommer fra backenden, eller dens underliggende services.
Det skal pointeres, at MedCom's fault code kan findes under detail sektionen af den resulterende SOAP fault. Den påkrævede faultstring vil altid være "Server".
For en eksempel implementation i Java, kan der med foredel tages udgangspunkt i servicens integrationstest:
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
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.