Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagexml
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="SORLS" targetNamespace="http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06/"
                  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
                  xmlns:tns="http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06/"
                  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                  xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
                  xmlns:medcom="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">

    <wsdl:types>
        <!-- Headers -->
        <xsd:schema targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <xsd:include schemaLocation="schema/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
        </xsd:schema>
        <xsd:schema targetNamespace="http://www.medcom.dk/dgws/2006/04/dgws-1.0.xsd">
            <xsd:include schemaLocation="schema/2006_01/medcom.xsd"/>
        </xsd:schema>

        <xsd:schema targetNamespace="http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06/">
            <xsd:include schemaLocation="schema/2018/09/06/sorls.xsd"/>
        </xsd:schema>
    </wsdl:types>

    <!-- Headers -->
    <wsdl:message name="SecurityHeader">
        <wsdl:part name="SecurityHeader" element="wsse:Security"/>
    </wsdl:message>
    <wsdl:message name="MedComHeader">
        <wsdl:part name="MedcomHeader" element="medcom:Header"/>
    </wsdl:message>

    <!-- GetSorEntity Requests/Responses -->
    <wsdl:message name="GetSorEntityRequest_2018_09_06">
        <wsdl:part element="tns:GetSorEntityRequest" name="GetSorEntityRequest"/>
    </wsdl:message>
    <wsdl:message name="GetSorEntityResponse_2018_09_06">
        <wsdl:part element="tns:GetSorEntityResponse" name="GetSorEntityResponse"/>
    </wsdl:message>

    <!-- ShakSorMap Requests/Responses -->
    <wsdl:message name="ShakSorMapRequest_2018_09_06">
        <wsdl:part element="tns:ShakSorMapRequest" name="ShakSorMapRequest"/>
    </wsdl:message>
    <wsdl:message name="ShakSorMapResponse_2018_09_06">
        <wsdl:part element="tns:ShakSorMapResponse" name="ShakSorMapResponse"/>
    </wsdl:message>

    <!-- SorShakMap Requests/Responses -->
    <wsdl:message name="SorShakMapRequest_2018_09_06">
        <wsdl:part element="tns:SorShakMapRequest" name="SorShakMapRequest"/>
    </wsdl:message>
    <wsdl:message name="SorShakMapResponse_2018_09_06">
        <wsdl:part element="tns:SorShakMapResponse" name="SorShakMapResponse"/>
    </wsdl:message>

    <!-- Port Types -->
    <wsdl:portType name="SORLookupServicePortType">
        <wsdl:operation name="GetSorEntity_2018_09_06">
            <wsdl:input message="tns:GetSorEntityRequest_2018_09_06" name="GetSorEntityRequest_2018_09_06"/>
            <wsdl:output message="tns:GetSorEntityResponse_2018_09_06" name="GetSorEntityResponse_2018_09_06"/>
        </wsdl:operation>

        <wsdl:operation name="ShakSorMap_2018_09_06">
            <wsdl:input message="tns:ShakSorMapRequest_2018_09_06" name="ShakSorMapRequest_2018_09_06"/>
            <wsdl:output message="tns:ShakSorMapResponse_2018_09_06" name="ShakSorMapResponse_2018_09_06"/>
        </wsdl:operation>

        <wsdl:operation name="SorShakMap_2018_09_06">
            <wsdl:input message="tns:SorShakMapRequest_2018_09_06" name="SorShakMapRequest_2018_09_06"/>
            <wsdl:output message="tns:SorShakMapResponse_2018_09_06" name="SorShakMapResponse_2018_09_06"/>
        </wsdl:operation>
    </wsdl:portType>

    <!-- Bindings -->
    <wsdl:binding name="SORLookupServiceBinding" type="tns:SORLookupServicePortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation name="GetSorEntity_2018_09_06">
            <soap:operation soapAction="http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06#GetSorEntity" style="document"/>

            <wsdl:input name="GetSorEntityRequest_2018_09_06">
                <soap:header message="tns:SecurityHeader" part="SecurityHeader" use="literal"/>
                <soap:header message="tns:MedComHeader" part="MedcomHeader" use="literal"/>
                <soap:body use="literal"/>
            </wsdl:input>

            <wsdl:output name="GetSorEntityResponse_2018_09_06">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="ShakSorMap_2018_09_06">
            <soap:operation soapAction="http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06#ShakSorMap" style="document"/>

            <wsdl:input name="ShakSorMapRequest_2018_09_06">
                <soap:header message="tns:SecurityHeader" part="SecurityHeader" use="literal"/>
                <soap:header message="tns:MedComHeader" part="MedcomHeader" use="literal"/>
                <soap:body use="literal"/>
            </wsdl:input>

            <wsdl:output name="ShakSorMapResponse_2018_09_06">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>

        <wsdl:operation name="SorShakMap_2018_09_06">
            <soap:operation soapAction="http://sundhedsdatastyrelsen.dk/SORLookupService/2018/09/06#SorShakMap" style="document"/>

            <wsdl:input name="SorShakMapRequest_2018_09_06">
                <soap:header message="tns:SecurityHeader" part="SecurityHeader" use="literal"/>
                <soap:header message="tns:MedComHeader" part="MedcomHeader" use="literal"/>
                <soap:body use="literal"/>
            </wsdl:input>

            <wsdl:output name="SorShakMapResponse_2018_09_06">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>

    <!-- Services -->
    <wsdl:service name="SORLookupServiceService">
        <wsdl:port name="SORLookupServicePort" binding="tns:SORLookupServiceBinding">
            <soap:address location="http://localhost:8080/sor-opslag/SORLookupService" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions> 


Modus operandi

Applikationen prøver så vidt muligt altid at give et fornuftigt svar. Kun i de tilfælde, hvor at applikationen ikke kan skrive et pænt svar til klienten, vil den give op og bare kaste en exception. Ved et kald til en snitflade der ikke eksisterer, vil den svare med HTTP kode 404.

...

Ved fejlkode -7 er den nødvendige database service nede, og applikationen kan reelt ikke fungere før SDM databasen er oppe. Applikationen er dog i stand til at recover fra databasen når servicen går ned, uden at nogen indgriben er nødvendig. Applikationen kræver dog, at databasen er tilgængelig ved opstart, ellers vil det give en fejl, og applikationen bliver ikke deployeret. Kun en ny deployering kan få servicen op at køre igen.

Ved fejlkode -8 er der tale om fejl under forespørgsel mod SOR databasen enten fordi databasen er nede eller data er ikke tilstede.

Ved fejlkode -9 er der tale om fejl under transformation af XML til objekt, og det tyder på forkert konstrueret SOAP body. Fejlen ligger højest sandsynligt hos klienten, men bør undersøges nærmere.

Ved fejlkode -10, -11, -12 og -13 er fejl hvor at transformation af objekter til XML har fejlet. De bør ikke kunne forekomme.


Ved alle resterende fejl ligger ansvaret udelukkende hos klienten.

Logning

Applikationen bruger tre forskellige logs.

...