AFVENTER ENDELIG GODKENDELSE
Indholdsfortegnelse

-------------------------------------------------------------------------------- DOKUMENTATION UNDER OPDATERING --------------------------------------------------------------------------------
Releases
En oversigt over de forskellige releases, og eventuelle kommentare omkring disse:
| Release | Kommentar |
|---|
| 1.1 | Release af version 3 af WSDL Version 1 og version 2 er fjernet |
| 1.0 | Release af version 1 af WSDL |
Neden for kan dokumentationen for de aktive WSDL versioner findes.
Version 3
Nyeste version af systemet.
Endpoint
Opdater servicen kan tilgås på adressen:
[miljø url]/sor-opdatering/v3/SOROpdateringService
For eksempel, på TEST1-miljøet vil det være:
http://test1-cnsp.ekstern-test.nspop.dk:8080/sor-opdatering/v3/SOROpdateringService
WSDL filen for servicen kan hentes ved at tilføje "?wsdl" til enden af URL'en.
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 typer defineret under namespacet:
http://sundhedsdatastyrelsen.dk/SOROpdateringService/2019/10/08/
Alle typer benyttet i parametre og resultater i disse kald er defineret under namespacet:
SOR.Services.SOAPServices.V3
Koder
Flere felter benytter koder frem for tekst strenge til at signalere over for servicen, hvilken type enhed der er ønsket at blive oprettet, eller hvor at enheden er placeret. Eksempel på sådan er SystemTypeIdentifier under EanLocationCodeEntityType. Koderne for disse kan findes her:
http://filer.nsi.dk/sor/lookupdata/
Gyldighed
I de kald hvor at SorEntityType 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).
AddressInformationType
| Element | Data type | Beskrivelse |
|---|
| AdditionalAddressInformationText | String |
|
| AddressPostal | AddressPostalType |
|
| InheritanceIndicator | Boolean | Indikerer om informationerne er nedarvet eller ej |
| SkipAddressValidation | Boolean | Indikerer om den indtastede adresse skal valideres. Er altid sat til false i retur objektet. |
| MunicipalityCode | String |
|
| StreetCode | String |
|
| RegionName | String | Indeholder navnet på den valgte regionskode. Feltet bruges kun til output. |
| CoordETRS89z32NMeasure | Decimal |
|
| CoordETRS89z32EMeasure | decimal |
|
AddressPostalType
| Element | Data type | Beskrivelse |
|---|
| StreetName | String |
|
| StreetBuildingIdentifier | String |
|
| FloorIdentifier | String |
|
| SuiteIdentifier | String |
|
| PostOfficeBoxIdentifier | String |
|
| PostCodeIdentifier | String |
|
| DistrictName | String |
|
| CountryIdentificationCode | CountryIdentificationCodeType |
|
ArrayOfLong
| Element | Data type | Beskrivelse |
|---|
| long | Liste af long | Liste af long værdier til brug i forskellige sammenhænge |
ArrayOfPrioritizedEntitySpecialityType
| Element | Data type | Beskrivelse |
|---|
| PrioritizedEntitySpecialityType | Liste af PrioritizedEntitySpecialityType | Liste af SOR enhedens kliniske specialer. Der kan angives op til 8, hvoraf nr. 1 er hovedspecialet. |
ArrayOfReplacingInfoType
| Element | Data type | Beskrivelse |
|---|
| ReplacingInfoType | Liste af ReplacingInfoType | SOR enhed erstatning information |
ArrayOfSorSecurityGroupExternalType
CountryIdentificationCodeType
CountryIdentificationSchemeType
| Element | Data type | Beskrivelse |
|---|
| String | Enumeration af landekode identifikations systemer. Kan have en af følgende værdier: - iso3166-alpha2
- iso3166-alpha3
- un-numeric3
- imk
|
EanLocationCodeEntityType
| Element | Data type | Beskrivelse |
|---|
| EanLocationCode | Long | Lokationsnummer |
| OnlyInternalIndicator | Boolean | Angiver om lokationsnummeret er til internt brug |
| NonActiveIndicator | Boolean | Angiver om lokationsnummeret er ikke-aktivt |
| SystemSupplierIdentifier | Long | Systemleverandør-id |
| CommunicationSupplierIdentifier | Long | Netoperatør-id |
| SystemTypeIdentifier | Long | EDB-system-id |
| EdiAdministratorIdentifier | Long | EDI-Administrator-id |
| SorNote | String | Angiver eventuelle bemærkninger til lokationsnummeret |
| SorStatus | SorStatusType | Angiver SOR enhedens status |
| RegionCode | String | Regionens kode, f.eks. 1084 for RegionHovedstaden |
EanLocationCodeStateType
| Element | Data type | Beskrivelse |
|---|
| String | Enumeration af nedarving status for lokationsnumre. Kan have en af følgende værdier: - Undefined
- None
- Inherited
- Own
|
LocalAttributeCollectionType
| Element | Data type | Beskrivelse |
|---|
| LocalAttribute1 | String | Lokal attribut 1 |
| LocalAttribute2 | String | Lokal attribut 2 |
| LocalAttribute3 | String | Lokal attribut 3 |
| LocalAttribute4 | String | Lokal attribut 4 |
| LocalAttribute5 | String | Lokal attribut 5 |
PrioritizedEntitySpecialityType
| Element | Data type | Beskrivelse |
|---|
| SpecialityIdentifier | Long | Speciale nummer |
| SpecialityPriorityIdentifier | Long | Prioriteten af specialet |
ReplacingInfoType
| Element | Data type | Beskrivelse |
|---|
| Name | String | Enhedens navn |
| SorId | Long | Enhedens ID |
| Date | Date | Dato for ændringen |
SorEntityType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long | Unik nøgle der identificerer en SOR enhed |
| SorType | SorTypeType | SOR-type |
| SorStatus | SorStatusType | Angiver SOR enhedens status |
| GeographicalLocalisationIdentifier | Long | Id på den geografiske lokation. Bruges kun til output. |
| GeographicalLocalisationName | String | Navn på den geografiske lokation. Bruges kun til output. |
| HasGeographicalLocalisation | Boolean | Angiver om SOR enheden har en geografisk lokation, skal være false eller tom hvis SOR typen er IO. Vil altid returneres som false. |
| ParentSorIdentifier | Long | Forældre SOR-id, skal være 0 eller tom hvis SOR typen er IO |
| ActivityAddressInformation | AddressInformationType | Aktivitetsadressen, skal være tom hvis SOR typen er IO eller HI |
| VisitingAddressInformation | AddressInformationType | Besøgsadressen, skal være tom hvis SOR typen er IO |
| PostalAddressInformation | AddressInformationType | Postadressen |
| PharmacyIdentifier | String | SOR-enhedens apoteksnummer, skal være tom hvis SOR typen er IO |
| EntityName | String | SOR Enhedens navn |
| EntityTypeIdentifier | Long | Teknisk nøgle for EntityType (SNOMED Concept Id) |
| VirtualAddressInformation | VirtualAddressInformationType | Angiver enhedens hjemmesideadresse, email, telefonnummer og faxnummer |
| ReportingLevelIndicator | Boolean | Angiver om enheden er indberetningsniveau til Landspatientregisteret (LPR2), skal være false eller tom hvis SOR typen er IO eller HI |
| LocalAttributeCollection | LocalAttributeCollectionType | Der kan være op til 5 lokale attributter, skal være tom hvis SOR typen er IO eller HI |
| LocalCode | string | SOR-enhedens lokale kode, skal være tom hvis SOR typen er IO eller HI. Attribut der frit kan benyttes af anvender organisationen. |
| EanLocationCodeState | EanLocationCodeStateType | Angiver om lokationsnummer er nedarvet fra den hierarkiske mor. Kan være 'own', 'inherited' eller 'none'. |
| EanLocationCodeEntity | EanLocationCodeEntityType | Angiver lokationsnummeret på SOR enheden |
| PatientsAdmittedIndicator | boolean | Angiver om enheden er et sengeafsnit, skal være false eller tom hvis SOR typen er IO eller HI |
| AmbulantActivityIndicator | boolean | Angiver om enheden er et ambulatorie, skal være false eller tom hvis SOR typen er IO eller HI |
| ShakIdentifier | String | 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. Skal være tom hvis SOR typen er IO. |
| PrioritizedEntitySpecialityCollection | ArrayOfPrioritizedEntitySpecialityType | Liste af SOR enhedens kliniske specialer. Der kan angives op til 8, hvoraf nr. 1 er hovedspecialet. Skal være tom hvis SOR typen er IO eller HI. |
| ProviderIdentifier | String | SOR-enhedens ydernummer, skal være tom hvis SOR typen er IO eller HI |
| CvrNumberIdentifier | string | CVR nummer for SOR-enheden. Obligatorisk hvis SOR typen er IO. Skal være tom hvis SOR typen er HI eller OU. |
| ProductionUnitIdentifier | String | P nummer for SOR-enheden, skal være tom hvis SOR typen er IO |
| ReplacedByEntityCollection | ArrayOfReplacingInfoType | Liste af SOR enheder denne enhed er blevet erstattet af |
| ReplacesEntityCollection | ArrayOfReplacingInfoType | Liste af SOR enheder denne enhed erstatter |
SorSecurityGroupExternalType
| Element | Data type | Beskrivelse |
|---|
| String | Enumeration af security groups. Kan have en af følgende værdier: - SorCentralRole
- SorDecentralRole
- SorEditorRole
- SorGeoRole
- SorShakRole
- SorEdiCentralRole
- SorEdiAdminRole
- SorMoveEanRole
|
SorStatusType
| Element | Data type | Beskrivelse |
|---|
| FromDate | Date | Første dag enheden er aktiv |
| ToDate | Date | Sidste dag enheden er aktiv |
| UpdatedAt | Date | Dato hvornår enheden sidst er opdateret |
| FirstFromDate | Date | Dato for hvornår enheden første gang var aktiv |
SorTypeType
| Element | Date type | Beskrivelse |
|---|
| String | Enumeration af SOR typer. Kan have en af følgende værdier: |
StatusType
| 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. |
| ErrorMessage | String | Hvis ErrorCode er 0, er dette felt tomt. Ellers indeholder den en kort beskrivelse af, hvilken fejl der skete. |
VirtualAddressInformationType
| Element | Data type | Beskrivelse |
|---|
| InheritanceIndicator | Boolean | Indikerer om informationerne er nedarvet eller ej |
| EmailAddressIdentifier | String |
|
| Website | String |
|
| TelephoneNumber | String |
|
| FaxNumberIdentifier | String |
|
CreateSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
CreateSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | Det SOR objekt som skal oprettes |
CreateSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | Det SOR objekt som blev oprettet i systemet |
EditSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
EditSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | Det SOR objekt som skal redigeres |
EditSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | SOR objektet som det ser ud efter redigering |
MoveSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
MoveSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long | ID på det SOR objekt som skal flyttes |
| ParentSorIdentifier | Long | ID på det SOR object der skal være den nye parent |
| FromDate | Date | Dato for hvornår at flytningen skal træde i kraft |
MoveSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
ReplaceSorEntities
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
ReplaceSorEntitiesRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long | ID på det SOR objekt som skal flyttes |
| FromDate | Date | Dato for hvornår at erstatningen skal træde i kraft |
| ReplacesEntityCollection | ArrayOfLong | Liste af SOR ID'er på de enheder som skal erstattes |
ReplaceSorEntitiesResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
CloseSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
CloseSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long | ID på det SOR objekt som skal lukkes |
| ToDate | Date | Sidste dato for hvornår at enheden er aktiv |
CloseSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeSystemType
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
EditEanLocationCodeSystemTypeRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SystemTypeIdentifier | Long | EDB-system-id |
| EanLocationCodeEntities | ArrayOfLong | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeSystemTypeResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeCommunicationSupplier
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
EditEanLocationCodeCommunicationSupplierRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| CommunicationSupplierIdentifier | Long | VANS leverandør (ID) |
| EanLocationCodeEntities | ArrayOfLong | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeCommunicationSupplierResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeEdiAdministrator
Security gruppe påkrævet: SorEdiCentralRole
EditEanLocationCodeEdiAdministratorRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| EdiAdministratorIdentifier | Long | EDI-Administrator-id |
| EanLocationCodeEntities | ArrayOfLong | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeEdiAdministratorResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeRegion
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
EditEanLocationCodeRegionRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| RegionCode | Long | Region |
| EanLocationCodeEntities | ArrayOfLong | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeRegionResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeSystemSupplier
Security gruppe påkrævet: SorEdiCentralRole
EditEanLocationCodeSystemSupplierRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SystemSupplierIdentifier | Long | Systemleverandør-id |
| EanLocationCodeEntities | ArrayOfLong | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeSystemSupplierResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
MoveEanLocationCode
Security gruppe påkrævet: SorEdiCentralRole, SorDecentralRole
MoveEanLocationCodeRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long | SOR-kode for den nye enhed, som den skal knyttes til |
| EanLocationCode | Long | Angiver lokationsnummeret for enheden |
MoveEanLocationCodeResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
UpdateEdiTypes
Security gruppe påkrævet: SorEdiCentralRole, SorDecentralRole
UpdateEdiTypesRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| EdiIdentifiers | ArrayOfLong | Liste af EDI numre |
| EanLocationCodeEntities | ArrayOfLong | Liste af lokationsnumre som skal opdateres |
UpdateEdiTypesResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
Fejlkoder
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 |
| processing_problem | 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 |
| processing_problem | Unable to marshal object | Fejl under transformeringen af object til XML |
| processing_problem | Unable to write body | Fejl under at skrive det transformerede objekt til klienten |
| processing_problem | Error happened while contacting SOR backend | Fejl under forespørgelse mod backenden |
| processing_problem | 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".
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/sorus/trunk/SorUpdateService/src/test/java/dk/sds/nsp/sor/sorus/servlet/SorusV3ServletIT.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.
Version 2
Nyeste version af systemet, og anbefalet for nye klienter at integrere med.
Ændringer
Liste af ændringer sket i snitfladen mellem versioner.
Til v2.0
- Request og response bliver indpakket af et ekstra objekt, for at servicen behøver mindre operation specifik kode (quality of life ændring for fremtidig udvikling)
- Ryddet op i XSD filer, således at det muligt nu kun at udstille de som en klient af servicen skal bruge, uden også at udstille de typer som bruges mod interne SOR systemer
- MoveSorEntity returnerer nu ikke længere SorEntity
- Ændringer i nogle af de SDS producerede XSD filer, således at null værdier er tilladt
- Felterne CommunicationSupplierType og SystemSupplierType er blevet fjernet fra SorEntity
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 typer defineret under namespacet:
http://sundhedsdatastyrelsen.dk/SOROpdateringService/2019/03/14/
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/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.
Koder
Flere felter benytter koder frem for tekst strenge til at signalere over for servicen, hvilken type enhed der er ønsket at blive oprettet, eller hvor at enheden er placeret. Eksempler på sådanne er SystemTypeIdentifier under EanLocationCodeEntityType, eller RegionCode under de forskellige adresse typer (aktivitet, post, of visitation). Koderne for disse kan findes her:
http://filer.nsi.dk/sor/lookupdata/
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).
UserType
| Element | Data type | Beskrivelse |
|---|
| Roles | ArrayOfSorSecurityGroupsExternalType | 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 | SorIdentifierCollectionType | Liste af SOR-ID'er hvis træer som afsenderen har adgang til at redigere i. Indholdet bruges kun under autorisering af CreateSorEntity, EditSorEntity, MoveSorEntity, ReplaceSorEntities, og CloseSorEntity. |
StatusType
| 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. |
ArrayOfSorSecurityGroupsExternalType
SorSecurityGroupExternalType
| Element | Data type | Beskrivelse |
|---|
| string | Enumeration af security groups. Kan have en af følgende værdier: - SorCentralRole
- SorDecentralRole
- SorEditorRole
- SorGeoRole
- SorShakRole
- SorEdiCentralRole
- SorEdiAdminRole
- SorMoveEanRole
|
ArrayOfEdiIdentifierType
| Element | Data type | Beskrivelse |
|---|
| EdiIdentifier | Liste af long | EDI numre |
ArrayOfEanLocationCodeType
| Element | Data type | Beskrivelse |
|---|
| EanLocationCode | Liste af long (EanLocationCode) | Lokationsnumre |
SorTypeType
| Element | Data type | Beskrivelse |
|---|
| string | Enumeration af SOR typer. Kan have en af følgende værdier: |
SorEntityType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long (SorIdentifierType) | Unik nøgle der identificerer en SOR enhed |
| SorType | SorTypeType | SOR-type |
| SorStatus | SorStatusType | Angiver SOR enhedens status |
| GeographicalLocalisationIdentifier | Long (GeographicalLocalisationIdentifierType) | Id på den geografiske lokation. Bruges kun til output. |
| GeographicalLocalisationName | String (GeographicalLocalisationNameType) | Navn på den geografiske lokation. Bruges kun til output. |
| HasGeographicalLocalisation | Boolean | Angiver om SOR enheden har en geografisk lokation, skal være false eller tom hvis SOR typen er IO. Vil altid returneres som false. |
| ParentSorIdentifier | Long (SorIdentifierType) | Forældre SOR-id, skal være 0 eller tom hvis SOR typen er IO |
| ActivityAddressInformation | AddressInformationType | Aktivitetsadressen, skal være tom hvis SOR typen er IO eller HI |
| VisitingAddressInformation | AddressInformationType | Besøgsadressen, skal være tom hvis SOR typen er IO |
| PostalAddressInformation | AddressInformationType | Postadressen |
| PharmacyIdentifier | String (PharmacyIdentifierType) | SOR-enhedens apoteksnummer, skal være tom hvis SOR typen er IO |
| EntityName | String (SorNameType) | SOR Enhedens navn |
| EntityTypeIdentifier | Long (EntityTypeIdentifier) | Teknisk nøgle for EntityType (SNOMED Concept Id) |
| VirtualAddressInformation | VirtualAddressInformationType | Angiver enhedens hjemmesideadresse, email, telefonnummer og faxnummer |
| ReportingLevelIndicator | Boolean (ReportingLevelIndicator) | Angiver om enheden er indberetningsniveau til Landspatientregisteret (LPR2), skal være false eller tom hvis SOR typen er IO eller HI |
| LocalAttributeCollection | LocalAttributeCollectionType | Der kan være op til 5 lokale attributter, skal være tom hvis SOR typen er IO eller HI |
| LocalCode | String (LocalCodeType) | SOR-enhedens lokale kode, skal være tom hvis SOR typen er IO eller HI. Attribut der frit kan benyttes af anvender organisationen. |
| EanLocationCodeState | EanLocationCodeStateType | Angiver om lokationsnummer er nedarvet fra den hierarkiske mor. Kan være 'own', 'inherited' eller 'none'. |
| EanLocationCodeEntity | EanLocationCodeEntityType | Angiver lokationsnummeret på SOR enheden |
| PatientsAdmittedIndicator | Boolean (PatientsAdmittedIndicator) | Angiver om enheden er et sengeafsnit, skal være false eller tom hvis SOR typen er IO eller HI |
| AmbulantActivityIndicator | Boolean (AmbulantActivityIndicator) | Angiver om enheden er et ambulatorie, skal være false eller tom hvis SOR typen er IO eller HI
|
| ShakIdentifier | String (ShakIdentifierType) | 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. Skal være tom hvis SOR typen er IO. |
| PrioritizedEntitySpecialityCollection | PrioritizedEntitySpecialityCollectionType | Liste af SOR enhedens kliniske specialer. Der kan angives op til 8, hvoraf nr. 1 er hovedspecialet. Skal være tom hvis SOR typen er IO eller HI. |
| ProviderIdentifier | String (ProviderIdentifierType) | SOR-enhedens ydernummer, skal være tom hvis SOR typen er IO eller HI |
| CVRnumberIdentifier | String (CVRnumberIdentifierType) | CVR nummer for SOR-enheden. Obligatorisk hvis SOR typen er IO. Skal være tom hvis SOR typen er HI eller OU. |
| ProductionUnitIdentifier | String (ProductionUnitIdentifierType) | P nummer for SOR-enheden, skal være tom hvis SOR typen er IO |
EanLocationCodeStateType
| Element | Data type | Beskrivelse |
|---|
| string | Enumeration af stadier. Kan have en af følgende værdier: - Undefined
- None
- Inherited
- Own
|
EanLocationCodeEntityType
| Element | Data type | Beskrivelse |
|---|
| EanLocationCode | Long (EanLocationCode) | Lokationsnummer |
| OnlyInternalIndicator | Boolean (OnlyInternalIndicator) | Angiver om lokationsnummeret er til internt brug |
| NonActiveIndicator | Boolean (NonActiveIndicator) | Angiver om lokationsnummeret er ikke-aktivt |
| SystemSupplierIdentifier | Long (SystemSupplierType) | Systemleverandør-id |
| CommunicationSupplierIdentifier | Long (CommunicationSupplierType) | Netoperatør-id |
| SystemTypeIdentifier | Long (SystemTypeIdentifier) | EDB-system-id |
| EdiAdministratorIdentifier | Long (EdiAdministratorIdentifier) | EDI-Administrator-id |
| SorNote | String (SorNoteType) | Angiver eventuelle bemærkninger til lokationsnummeret |
| SorStatus | SorStatusType | Angiver SOR enhedens status |
| RegionCode | String (AuthorityCodeType) | Regionens kode, f.eks. 1084 for RegionHovedstaden |
Eksterne typer med lokale ændringer
Alle data typer nævnt her, er typer som originalt er defineret andre steder. Projektet har været nødt til at lave lokale ændringer til disse, for at opfylde forskellige behov eller krav.
Disse ændringer er allerede udført i WSDL og XSD filerne leveret af projektet, og ingen ændringer er nødvendige fra anvenders side. Denne sektion er kun til information.
AddressInformationType
Namespace: urn:oio:nsi:2.0.0
Original: http://filer.nsi.dk/sor/xsd/v_2_0_0/AddressInformation.xsd
| Element | Data type | Beskrivelse |
|---|
| AddressPostal | AddressPostalType |
|
| MunicipalityCode | String (MunicipalityCode) |
|
| StreetCode | String (StreetCodeType) |
|
| RegionCode | String (AuthorityCodeType) | Feltet benyttes ikke |
| AdditionalAddressInformationText | String (AdditionalAddressInformationTextType) |
|
| CoordETRS89z32NMeasure | Decimal (CoordETRS89z32NMeasure) |
|
| CoordETRS89z32EMeasure | Decimal (CoordETRS89z32EMeasure) |
|
| SkipAddressValidation | Boolean | Nyt felt i forhold til den originale type definition. Indikerer om den indtastede adresse skal valideres. Er altid sat til false i retur objektet. |
| RegionName | String | Nyt felt i forhold til den originale type definition. Indeholder navnet på den valgte regionskode. Feltet bruges kun til output. |
| InheritanceIndicator | Boolean | Nyt felt i forhold til den originale type definition. Indikerer om informationerne er nedarvet eller ej. |
VirtualAddressInformation type
Namespace: urn:oio:sundhedsstyrelsen:organisation:1.0.0
Original: http://filer.nsi.dk/sor/xsd/v_1_0_0/VirtualAddressInformation.xsd
| Element | Data type | Beskrivelse |
|---|
| EmailAddressIdentifier | String (EmailAddressIdentifierType) |
|
| Website | String (WebsiteType) |
|
| TelehponeNumberIdentifier | String (TelephoneNumberIdentifierType) |
|
| FaxNumberIdentifier | Stirng (FaxNumberIdentifierType) |
|
| InheritanceIndicator | Boolean | Nyt felt i forhold til den originale type definition. Indikerer om informationerne er nedarvet eller ej. |
CreateSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
CreateSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | Det SOR objekt som skal oprettes |
CreateSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | Det SOR objekt som blev oprettet i systemet |
EditSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
EditSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | Det SOR objekt som skal redigeres |
EditSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| SorEntity | SorEntityType | SOR objektet som det ser ud efter redigering |
MoveSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
MoveSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long (SorIdentifierType) | ID på det SOR objekt som skal flyttes |
| ParentSorIdentifier | Long (SorIdentifierType) | ID på det SOR object der skal være den nye parent |
| FromDate | Date (FromDate) | Dato for hvornår at flytningen skal træde i kraft |
MoveSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
ReplaceSorEntities
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
ReplaceSorEntitiesRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long (SorIdentifierType) | ID på det SOR objekt som skal flyttes |
| FromDate | Date (FromDate) | Dato for hvornår at erstatningen skal træde i kraft |
| ReplacesEntityCollection | SorIdentifierCollectionType | Liste af SOR ID'er på de enheder som skal erstattes |
ReplaceSorEntitiesResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
CloseSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
CloseSorEntityRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long (SorIdentifierType) | ID på det SOR objekt som skal lukkes |
| FromDate | Date (FromDate) | Dato for hvornår at lukningen skal træde i kraft |
CloseSorEntityResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeSystemType
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
EditEanLocationCodeSystemTypeRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SystemTypeIdentifier | Long (SystemTypeIdentifier) | EDB-system-id |
| EanLocationCodeEntities | ArrayOfEanLocationCodeType | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeSystemTypeResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeCommunicationSupplier
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
EditEanLocationCodeCommunicationSupplierRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| CommunicationSupplierIdentifier | Long (CommunicationSupplierIdentifier) | VANS leverandør (ID) |
| EanLocationCodeEntities | ArrayOfEanLocationCodeType | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeCommunicationSupplierResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeEdiAdministrator
Security gruppe påkrævet: SorEdiCentralRole
EditEanLocationCodeEdiAdministratorRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| EdiAdministratorIdentifier | Long (EdiAdministratorIdentifier) | EDI-Administrator-id |
| EanLocationCodeEntities | ArrayOfEanLocationCodeType | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeEdiAdministratorResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeRegion
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
EditEanLocationCodeRegionRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| RegionCode | String (RegionCode) | Region |
| EanLocationCodeEntities | ArrayOfEanLocationCodeType | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeRegionResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
EditEanLocationCodeSystemSupplier
Security gruppe påkrævet: SorEdiCentralRole
EditEanLocationCodeSystemSupplierRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SystemSupplierIdentifier | Long (SystemSupplierIdentifier) | Systemleverandør-id |
| EanLocationCodeEntities | ArrayOfEanLocationCodeType | Liste af lokationsnumre som skal opdateres |
EditEanLocationCodeSystemSupplierResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
MoveEanLocationCode
Security gruppe påkrævet: SorEdiCentralRole, SorDecentralRole
MoveEanLocationCodeRequestParameterType
| Element | Data type | Beskrivelse |
|---|
| SorIdentifier | Long (SorIdentifierType) | SOR-kode for den nye enhed, som den skal knyttes til |
| EanLocationCode | Long (EanLocationCode) | Angiver lokationsnummeret for enheden |
MoveEanLocationCodeResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
UpdateEdiTypes
Security gruppe påkrævet: SorEdiCentralRole, SorDecentralRole
UpdateEdiTypesRequestParameterType
UpdateEdiTypesResponseResultType
| Element | Data type | Beskrivelse |
|---|
| Tomt objekt |
Fejlkoder
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 |
| processing_problem | 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 |
| processing_problem | Unable to marshal object | Fejl under transformeringen af object til XML |
| processing_problem | Unable to write body | Fejl under at skrive det transformerede objekt til klienten |
| processing_problem | Error happened while contacting SOR backend | Fejl under forespørgelse mod backenden |
| processing_problem | 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".
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/sorus/trunk/SorUpdateService/src/test/java/dk/sds/nsp/sor/sorus/servlet/SorusV2ServletIT.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.
Version 1
Denne version af systemet er uddateret, og ikke anbefalet for nye klienter. Den bliver holdt i live i en overgangsperiode, og vil forsvinde i en fremtidig opdatering af systemet.
Endpoint
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.
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 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:
http://sor.dksund.dk/
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/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.
Koder
Flere felter benytter koder frem for tekst strenge til at signalere over for servicen, hvilken type enhed der er ønsket at blive oprettet, eller hvor at enheden er placeret. Eksempler på sådanne er SystemTypeIdentifier under EanLocationCodeEntityType, eller RegionCode under de forskellige adresse typer (aktivitet, post, of visitation). Koderne for disse kan findes her:
http://filer.nsi.dk/sor/lookupdata/
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).
User type
| 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 |
ArrayOfLong type
| Element | Data type | Beskrivelse |
|---|
| long | En liste af long | Tal værdier |
ArrayOfsorSecurityGroupsExternal type
sorSecurityGroupsExternal type
| Element | Data type | Beskrivelse |
|---|
| string | Enumeration af security groups. Kan have en af følgende værdier: - SorCentralRole
- SorDecentralRole
- SorEditorRole
- SorGeoRole
- SorShakRole
- SorEdiCentralRole
- SorEdiAdminRole
- SorMoveEanRole
|
EanLocationCodeState type
| Element | Data type | Beskrivelse |
|---|
| string | Enumeration af stadier. Kan have en af følgende værdier: - Undefined
- None
- Inherited
- Own
|
EanLocationCodeEntityType type
| 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 |
ArrayOfEanLocationCodes type
| Element | Data type | Beskrivelse |
|---|
| eanLocationCode | Liste af long | Lokationsnumre |
ArrayOfEdiIdentifiers type
| Element | Data type | Beskrivelse |
|---|
| EdiIdentifier | Liste af long | EDI numre |
Status type
| 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. |
SorEntity type
| 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" |
| SorStatus | SorStatus | Angiver SOR enhedens status |
| GeographicalLocalisationIdentifier | GeographicalLocalisationIdentifier (long) | Id på den geografiske lokation |
| GeographicalLocalisationName | GeographicalLocalisationName (string, 40) | Navn på den geografiske lokation |
| HasGeographicalLocalisation | boolean | Angiver om SOR enheden har en geografisk lokation. Vil altid returneres som false. |
| ParentSorIdentifier | string | Forældre SOR-id |
| ActivityAddressInformation | ActivityAddressInformation (AddressInformation) | Aktivitetsadressen |
| VisitingAddressInformation | VisitingAddressInformation (AddressInformation) | Besøgsadressen |
| PostalAddressInformation | PostalAddressInformation (AddressInformation) | 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, email, telefonnummer og faxnummer |
| ReportingLevelIndicator | ReportingLevelIndicator (boolean) | Angiver om enheden er indberetningsniveau til Landspatientregisteret (LPR2) |
| LocalAttributeCollection | LocalAttributeCollection | Der kan være op til 5 lokale attributter |
| LocalCode | LocalCode (string, 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 | Feltet benyttes ikke |
| 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 | Feltet benyttes ikke |
| ProviderIdentifier | ProviderIdentifier (string, 9) | SOR-enhedens ydernummer |
| CVRnumberIdentifier | CVRnumberIdentifier (string, 8) | CVR nummer for SOR-enheden. Obligatorisk hvis SOR typen er IO. |
| ProductionUnitIdentifier | ProductionUnitIdentifier (string, 10) | P nummer for SOR-enheden |
Eksterne typer med lokale ændringer
Alle data typer nævnt her, er typer som originalt er defineret andre steder. Projektet har været nødt til at lave lokale ændringer til disse, for at opfylde forskellige behov eller krav.
Disse ændringer er allerede udført i WSDL og XSD filerne leveret af projektet, og ingen ændringer er nødvendige fra anvenders side. Denne sektion er kun til information.
AddressInformation type
Namespace: urn:oio:nsi:2.0.0
Original: http://filer.nsi.dk/sor/xsd/v_2_0_0/AddressInformation.xsd
| Element | Data type | Beskrivelse |
|---|
| AddressPostal | AddressPostal |
|
| MunicipalityCode | MunicipalityCode |
|
| StreetCode | StreetCode |
|
| RegionCode | RegionCode | Feltet benyttes ikke |
| AdditionalAddressInformationText | AdditionalAddressInformationText |
|
| CoordETRS89z32NMeasure | CoordETRS89z32NMeasure |
|
| CoordETRS89z32EMeasure | CoordETRS89z32EMeasure |
|
| SkipAddressValidation | boolean | Nyt felt i forhold til den originale type definition. Indikerer om den indtastede adresse skal valideres. Er altid sat til false i retur objektet. |
| RegionName | string | Nyt felt i forhold til den originale type definition. Indeholder navnet på den valgte regionskode. |
| InheritanceIndicator | boolean | Nyt felt i forhold til den originale type definition. Indikerer om informationerne er nedarvet eller ej. |
VirtualAddressInformation type
Namespace: urn:oio:sundhedsstyrelsen:organisation:1.0.0
Original: http://filer.nsi.dk/sor/xsd/v_1_0_0/VirtualAddressInformation.xsd
| Element | Data type | Beskrivelse |
|---|
| EmailAddressIdentifier | EmailAddressIdentifier |
|
| Website | Website |
|
| TelehponeNumberIdentifier | TelehponeNumberIdentifier |
|
| FaxNumberIdentifier | FaxNumberIdentifier |
|
| InheritanceIndicator | boolean | Nyt felt i forhold til den originale type definition. Indikerer om informationerne er nedarvet eller ej. |
CreateSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
| 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 |
EditSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
| 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 |
MoveSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
| 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 |
ReplaceSorEntities
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
| 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 |
CloseSorEntity
Security gruppe påkrævet: SorCentralRole, SorDecentralRole
| 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 |
EditEanLocationCodeSystemType
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
| 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 |
EditEanLocationCodeCommunicationSupplier
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
| 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 |
EditEanLocationCodeEdiAdministrator
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 |
EditEanLocationCodeRegion
Security gruppe påkrævet: SorEdiCentralRole, SorEdiAdminRole
| 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 |
EditEanLocationCodeSystemSupplier
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 |
MoveEanLocationCode
Security gruppe påkrævet: SorEdiCentralRole, SorDecentralRole
| 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 |
UpdateEdiTypes
Security gruppe påkrævet: SorEdiCentralRole, SorDecentralRole
| Output |
| Element | Data type | Beskrivelse |
|---|
| Status | Status | Status for hvordan kaldet gik |
Fejlkoder
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 |
| processing_problem | 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 |
| processing_problem | Unable to marshal object | Fejl under transformeringen af object til XML |
| processing_problem | Unable to write body | Fejl under at skrive det transformerede objekt til klienten |
| processing_problem | Error happened while contacting SOR backend | Fejl under forespørgelse mod backenden |
| processing_problem | 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".
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/sorus/trunk/SorUpdateService/src/test/java/dk/sds/nsp/sor/sorus/servlet/SorusServletIT.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.
Kendte fejl
Der er desværre en udfordring med at sende værdien null frem og tilbage, som ikke er muligt at få løst før en fremtidig release. Heldigvis er de lette at detektere og håndtere.
Alle dato værdier som burde blive returneret som null, vil i stedet blive returneret som 0001-01-01 (så, starten for vores tidsregning).
Alle tal felter som burde blive returneret som null, vil i stedet blive returneret som deres mindste værdi. Felter som er long vil blive -9.223.372.036.854.775.808, integer vil blive -2.147.483.648, og så videre.
Alle boolean felter som burde være null, vil i stedet blive returneret som false. Men dette vil også være den forventede værdi i tilfælde af at den mangler.
Alle string felter er dog ikke kendt at have dette null problem, og burde blive returneret korrekt.