Example: EFA compliant IHE ITI-41 Transaction including EFA Digital Consent

Aus Hl7wiki
Wechseln zu: Navigation, Suche
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope
  xmlns:s="http://www.w3.org/2003/05/soap-envelope">
  <s:Header />
  <s:Body>
    <xdsb:ProvideAndRegisterDocumentSetRequest
      xmlns:lcm="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0"
      xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
      xmlns:rs="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0"
      xmlns:xdsb="urn:ihe:iti:xds-b:2007"
      xmlns:xop="http://www.w3.org/2004/08/xop/include">

      <lcm:SubmitObjectsRequest>
        <rim:RegistryObjectList>

          <!-- SubmissionSet -->
          <rim:RegistryPackage
            id="${#TestCase#SubmissionSet.entryUUID}"
            objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:RegistryPackage">

            <!-- SubmissionSet.submissionTime -->
            <rim:Slot name="submissionTime">
              <rim:ValueList>
                <rim:Value>${#TestCase#Time}</rim:Value>
              </rim:ValueList>
            </rim:Slot>

            <!-- SubmissionSet.title : Inhalt nicht reguliert. -->
            <rim:Name>
              <rim:LocalizedString value="Elektronische Fallakte anlegen" />
            </rim:Name>

            <!-- SubmissionSet.contentTypeCode : Inhalt nicht reguliert. -->
            <rim:Classification
              classificationScheme="urn:uuid:aa543740-bdda-424e-8c96-df4873be8500"
              classifiedObject="${#TestCase#SubmissionSet.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="${#TestCase#contentTypeCode.code}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>${#TestCase#contentTypeCode.codingScheme}</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="${#TestCase#contentTypeCode.display}" />
              </rim:Name>
            </rim:Classification>

            <!-- SubmissionSet Classification : statische Auszeichnungs des Parent-Elements als SubmissionSet -->
            <rim:Classification
              classificationNode="urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd"
              classifiedObject="${#TestCase#SubmissionSet.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification" />

            <!-- SubmissionSet.sourceId -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#SubmissionSet.entryUUID}"
              value="1.3.6.1.4.1.21367.2012.2.1.1">
              <rim:Name>
                <rim:LocalizedString value="XDSSubmissionSet.sourceId" />
              </rim:Name>
            </rim:ExternalIdentifier>

            <!-- SubmissionSet.uniqueId -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#SubmissionSet.entryUUID}"
              value="${#TestCase#SubmissionSet.uniqueId}">
              <rim:Name>
                <rim:LocalizedString value="XDSSubmissionSet.uniqueId" />
              </rim:Name>
            </rim:ExternalIdentifier>

            <!-- SubmissionSet.patientId : relevant für EFA-Identifiziert mit Tupel (PatID,Zweck), muss für alle Objekte in diesem Request gleich sein. -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#SubmissionSet.entryUUID}"
              value="${#TestCase#patientId}">
              <rim:Name>
                <rim:LocalizedString value="XDSSubmissionSet.patientId" />
              </rim:Name>
            </rim:ExternalIdentifier>
          </rim:RegistryPackage>

          <!-- Folder -->
          <rim:RegistryPackage
            id="${#TestCase#Folder.entryUUID}"
            objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:RegistryPackage"
            status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved">

            <!-- Folder.lastUpdateTime -->
            <rim:Slot name="lastUpdateTime">
              <rim:ValueList>
                <rim:Value>${#TestCase#Time}</rim:Value>
              </rim:ValueList>
            </rim:Slot>

            <!-- Folder.title -->
            <rim:Name>
              <rim:LocalizedString value="Basisordner" />
            </rim:Name>

            <!--
              Folder.codeList : Kennzeichnung als EFA
              Siehe: https://wiki.hl7.de/index.php?title=cdaefa:EFA_XDS_Folder_Metadata_Binding#codeList
            -->
            <rim:Classification
              classificationScheme="urn:uuid:1ba97051-7806-41a8-a48b-8fce7af683c5"
              classifiedObject="${#TestCase#Folder.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="ECR"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>IHE-D-Cookbook-FolderClassCode</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="Elektronische Fallakte" />
              </rim:Name>
            </rim:Classification>
            
            <!--
              Folder.codeList : Herstellung der Zweckbindung
              Siehe: https://wiki.hl7.de/index.php?title=cdaefa:EFA_XDS_Folder_Metadata_Binding#codeList
            -->
            <rim:Classification
              classificationScheme="urn:uuid:1ba97051-7806-41a8-a48b-8fce7af683c5"
              classifiedObject="${#TestCase#Folder.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="ATMO"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>urn:efa:purpose</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="ATMoSPHÄRE" />
              </rim:Name>
            </rim:Classification>

            <!-- Folder Classification -->
            <rim:Classification
              classificationNode="urn:uuid:d9d542f3-6cc4-48b6-8870-ea235fbc94c2"
              classifiedObject="${#TestCase#Folder.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification" />

            <!-- Folder.uniqueId -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:75df8f67-9973-4fbe-a900-df66cefecc5a"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#Folder.entryUUID}"
              value="${#TestCase#Folder.uniqueId}">
              <rim:Name>
                <rim:LocalizedString value="XDSFolder.uniqueId" />
              </rim:Name>
            </rim:ExternalIdentifier>

            <!-- Folder.patientId -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:f64ffdf0-4b97-4e06-b79f-a52b38ec2f8a"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#Folder.entryUUID}"
              value="${#TestCase#patientId}">
              <rim:Name>
                <rim:LocalizedString value="XDSFolder.patientId" />
              </rim:Name>
            </rim:ExternalIdentifier>
          </rim:RegistryPackage>

          <!-- DocumentEntry -->
          <rim:ExtrinsicObject
            id="${#TestCase#DocumentEntry.entryUUID}"
            mimeType="text/plain"
            objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1"
            status="urn:oasis:names:tc:ebxml-regrep:StatusType:Approved">

            <!-- DocumentEntry.languageCode -->
            <rim:Slot name="languageCode">
              <rim:ValueList>
                <rim:Value>de</rim:Value>
              </rim:ValueList>
            </rim:Slot>

            <!-- DocumentEntry.creationTime -->
            <rim:Slot name="creationTime">
              <rim:ValueList>
                <rim:Value>${#TestCase#Time}</rim:Value>
              </rim:ValueList>
            </rim:Slot>

            <!-- DocumentEntry.title : frei wählbar -->
            <rim:Name>
              <rim:LocalizedString value="Elektronische Einwilligung" />
            </rim:Name>

            <!-- DocumentEntry.classCode : aus Ontologie LOINC -->
            <rim:Classification
              classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a"
              classifiedObject="${#TestCase#DocumentEntry.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="${#TestCase#classCode.code}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>${#TestCase#classCode.codingScheme}</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="${#TestCase#classCode.display}" />
              </rim:Name>
            </rim:Classification>

            <!-- DocumentEntry.confidentialityCode : sollte immer "Normal" sein -->
            <rim:Classification
              classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f"
              classifiedObject="${#TestCase#DocumentEntry.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="N"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>2.16.840.1.113883.5.25</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="Normal" />
              </rim:Name>
            </rim:Classification>

            <!-- DocumentEntry.formatCode -->
            <rim:Classification
              classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d"
              classifiedObject="${#TestCase#DocumentEntry.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="${#TestCase#formatCode.code}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>${#TestCase#formatCode.codingScheme}</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="${#TestCase#formatCode.display}" />
              </rim:Name>
            </rim:Classification>

            <!-- DocumentEntry.healthCareFacilityTypeCode -->
            <rim:Classification
              classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1"
              classifiedObject="${#TestCase#DocumentEntry.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="${#TestCase#healthcareFacilityTypeCode.code}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>${#TestCase#healthcareFacilityTypeCode.codingScheme}</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="${#TestCase#healthcareFacilityTypeCode.display}" />
              </rim:Name>
            </rim:Classification>

            <!-- DocumentEntry.practiceSettingCode -->
            <rim:Classification
              classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead"
              classifiedObject="${#TestCase#DocumentEntry.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="${#TestCase#practiceSettingCode.code}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>${#TestCase#practiceSettingCode.codingScheme}</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="${#TestCase#practiceSettingCode.display}" />
              </rim:Name>
            </rim:Classification>

            <!-- DocumentEntry.typeCode -->
            <rim:Classification
              classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983"
              classifiedObject="${#TestCase#DocumentEntry.entryUUID}"
              id="${=UUID.randomUUID().toString()}"
              nodeRepresentation="${#TestCase#typeCode.code}"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:Classification">
              <rim:Slot name="codingScheme">
                <rim:ValueList>
                  <rim:Value>${#TestCase#typeCode.codingScheme}</rim:Value>
                </rim:ValueList>
              </rim:Slot>
              <rim:Name>
                <rim:LocalizedString value="${#TestCase#typeCode.display}" />
              </rim:Name>
            </rim:Classification>

            <!-- DocumentEntry.uniqueId -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#DocumentEntry.entryUUID}"
              value="${#TestCase#DocumentEntry.uniqueId}">
              <rim:Name>
                <rim:LocalizedString value="XDSDocumentEntry.uniqueId" />
              </rim:Name>
            </rim:ExternalIdentifier>

            <!-- DocumentEntry.patientId -->
            <rim:ExternalIdentifier
              id="${=UUID.randomUUID().toString()}"
              identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427"
              objectType="urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier"
              registryObject="${#TestCase#DocumentEntry.entryUUID}"
              value="${#TestCase#patientId}">
              <rim:Name>
                <rim:LocalizedString value="XDSDocumentEntry.patientId" />
              </rim:Name>
            </rim:ExternalIdentifier>
          </rim:ExtrinsicObject>

          <!-- HasMember : SubmissionSet to Folder -->
          <rim:Association
            associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember"
            id="${=UUID.randomUUID().toString()}"
            sourceObject="${#TestCase#SubmissionSet.entryUUID}"
            targetObject="${#TestCase#Folder.entryUUID}" />

          <!-- HasMember : SubmissionSet to DocumentEntry -->
          <rim:Association
            associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember"
            id="${=UUID.randomUUID().toString()}"
            sourceObject="${#TestCase#SubmissionSet.entryUUID}"
            targetObject="${#TestCase#DocumentEntry.entryUUID}">
            <rim:Slot name="SubmissionSetStatus">
              <rim:ValueList>
                <rim:Value>Original</rim:Value>
              </rim:ValueList>
            </rim:Slot>
          </rim:Association>

          <!-- HasMember : Folder to DocumentEntry -->
          <rim:Association
            associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember"
            id="${#TestCase#HasMember2Id}"
            sourceObject="${#TestCase#Folder.entryUUID}"
            targetObject="${#TestCase#DocumentEntry.entryUUID}" />
          
          <!-- HasMember : SubmissionSet to HasMember (Folder to DocumentEntry) -->
          <rim:Association
            associationType="urn:oasis:names:tc:ebxml-regrep:AssociationType:HasMember"
            id="${=UUID.randomUUID().toString()}"
            sourceObject="${#TestCase#SubmissionSet.entryUUID}"
            targetObject="${#TestCase#HasMember2Id}" />

        </rim:RegistryObjectList>

      </lcm:SubmitObjectsRequest>

      <!--
        Referenziert das XOP-Attachement im HTTP-multipart-Request. Das Attachemnt ist das Consent-Dokument.
        Alternativ kann es auch unter xdsb:Document base64-kodiert eingebunden werden.
      -->
      <xdsb:Document id="${#TestCase#DocumentEntry.entryUUID}">${#TestCase#Document}</xdsb:Document>
    </xdsb:ProvideAndRegisterDocumentSetRequest>
  </s:Body>
</s:Envelope>