Wiki

Clone wiki

best-practice / JoL Header v1.7 - schema

#!XML

<!--
    Below: common header used in service contracts for JoL (Journal- och Läkemedel).

    Version: JoL Header Fältregler_v1.7
-->

<xs:complexType name="HeaderType">
    <xs:sequence>
        <xs:element name="accessControlHeader" type="tns:AccessControlHeaderType"/>
        <xs:element name="sourceSystemId" type="tns:IIType"/>
        <xs:element name="record" type="tns:RecordType"/>
        <xs:element name="author" type="tns:AuthorType" minOccurs="0"/>
        <xs:element name="signature" type="tns:SignatureType" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="AccessControlHeaderType">
    <xs:sequence>
        <xs:element name="accountableHealthcareProvider" type="tns:IIType"/>
        <xs:element name="accountableCareUnit" type="tns:IIType" minOccurs="0"/>
        <xs:element name="originalPatientId" type="tns:IIType" minOccurs="0"/>
        <xs:element name="careProcessId" type="tns:IIType" minOccurs="0"/>
        <xs:element name="lockTime" type="tns:TimeStampType" minOccurs="0"/>
        <xs:element name="blockComparisonTime" type="tns:TimeStampType"/>
        <xs:element name="approvedForPatient" type="xs:boolean"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="RecordType">
    <xs:sequence>
        <xs:element name="id" type="tns:IIType"/>
        <xs:element name="timestamp" type="tns:TimeStampType"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="AuthorType">
    <xs:sequence>
        <xs:element name="id" type="tns:IIType" minOccurs="0"/>
        <xs:element name="name" type="xs:string" minOccurs="0"/>
        <xs:element name="timestamp" type="tns:TimeStampType"/>
        <xs:element name="byRole" type="tns:CVType" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="SignatureType">
    <xs:sequence>
        <xs:element name="id" type="tns:IIType" minOccurs="0"/>
        <xs:element name="name" type="xs:string" minOccurs="0"/>
        <xs:element name="timestamp" type="tns:TimeStampType"/>
        <xs:element name="byRole" type="tns:CVType" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<!--
    Below: only helper types allowed.

    A helper type is a type used in one ore more of the domain schema common types.
    It can also be a type used in two or more service schemas.

    Version: Gemensamma_typer_v12
-->

<xs:complexType name="CVType">
    <xs:annotation>
        <xs:documentation/>
    </xs:annotation>
    <xs:sequence>
        <xs:element name="code" type="xs:string" minOccurs="0"/>
        <xs:element name="codeSystem" type="xs:string" minOccurs="0"/>
        <xs:element name="codeSystemName" type="xs:string" minOccurs="0"/>
        <xs:element name="codeSystemVersion" type="xs:string" minOccurs="0"/>
        <xs:element name="displayName" type="xs:string" minOccurs="0"/>
        <xs:element name="originalText" type="xs:string" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="IIType">
    <xs:sequence>
        <xs:element name="root" type="xs:string"/>
        <xs:element name="extension" type="xs:string" minOccurs="0"/>
        <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>

<xs:simpleType name="TimeStampType">
    <xs:annotation>
        <xs:documentation>
            A quantity specifying a point on the axis of natural time.
            A point in time is most often represented as a calendar
            expression.

            The time has the format YYYYMMDDhhmmss
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
        <xs:pattern value="(19|20)\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])(0[0-9]|1[0-9]|2[0123])([0-5])([0-9])([0-5])([0-9])"/>
    </xs:restriction>
</xs:simpleType>

Updated