Document Data Submission (DDS)

Overview

The Document Data Submission (DDS) service provides a mechanism to send document information, sans the document, to a responding organization, unsolicited by a call to the Query for Documents service or other mechanism, and therefore implementing a "push" exchange pattern. 

The transaction implemented by the Document Data Submission service are described in the IHE IT Infrastructure Technical Framework Volume 2b (ITI TF-2b)10 Transactions Part B – Sections 3.29 – 3.64 dated July 24,2018.

The Document Data Submission service provides the ability for one organization to "push" identified health information for a given patient from one NHIE to another, triggered by events at the submitting organization. In other words, Document Data Submission allows the sending organization to determine what organizations should receive the information and what information to send, and the receiving organization receives that information on appropriate and available endpoints from sources it authorizes.

The Document Data Submission service allows an NHIE to send an individual document's metadata  or metadata for a set of documents to other organizations, and allows the responder to receive the submission, audit the submission, and process the metadata as appropriate. 

Document Data Submission assumes that the patient ID is known to the receiving organization.

As part of CONNECT 5.2, support for only synchronous Document Data Submission is provided. A standard will be drafted and proposed for balloting.

Interface Description

Audit Logging

DDS employs the ATNA audit logging as described in section 3.42.5.1.1 IHE IT Infrastructure Technical Framework, Volume 2b (ITI TF-2b): Transactions Part B.

Sample Messages

Document Data Submission Request Message

Sample Nwhin DDS Request Message
<ns5:RegisterDocumentSetRequest xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns:ns2="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" xmlns:ns3="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" xmlns:ns4="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" xmlns:ns5="urn:ihe:iti:xds-b:2007">
  <ns3:SubmitObjectsRequest comment="comment" id="123">
    <RegistryObjectList>
      <ExtrinsicObject id="Document01" mimeType="text/xml" objectType="urn:uuid:7edca82f-054d-47f2-a032-9b2a5b5186c1">
        <Slot name="creationTime">
          <ValueList>
            <Value>20051224</Value>
          </ValueList>
        </Slot>
        <Slot name="languageCode">
          <ValueList>
            <Value>en-us</Value>
          </ValueList>
        </Slot>
        <Slot name="serviceStartTime">
          <ValueList>
            <Value>200412230800</Value>
          </ValueList>
        </Slot>
        <Slot name="serviceStopTime">
          <ValueList>
            <Value>200412230801</Value>
          </ValueList>
        </Slot>
        <Slot name="sourcePatientId">
          <ValueList>
            <Value>ST-1000^^^&1.3.6.1.4.1.21367.2003.3.9&ISO</Value>
          </ValueList>
        </Slot>
        <Slot name="sourcePatientInfo">
          <ValueList>
            <Value>PID-3|ST-1000^^^&1.3.6.1.4.1.21367.2003.3.9&ISO</Value>
            <Value>PID-5|Doe^John^^^</Value>
            <Value>PID-7|19560527</Value>
            <Value>PID-8|M</Value>
            <Value>PID-11|100 Main St^^Metropolis^Il^44130^USA</Value>
          </ValueList>
        </Slot>
        <Name>
          <LocalizedString value="Physical"/>
        </Name>
        <Description/>
        <Classification classificationScheme="urn:uuid:93606bcf-9494-43ec-9b4e-a7748d1a838d" classifiedObject="Document01" id="cl01">
          <Slot name="authorPerson">
            <ValueList>
              <Value>Gerald Smitty</Value>
            </ValueList>
          </Slot>
          <Slot name="authorInstitution">
            <ValueList>
              <Value>Cleveland Clinic</Value>
              <Value>Parma Community</Value>
            </ValueList>
          </Slot>
          <Slot name="authorRole">
            <ValueList>
              <Value>Attending</Value>
            </ValueList>
          </Slot>
          <Slot name="authorSpecialty">
            <ValueList>
              <Value>Orthopedic</Value>
            </ValueList>
          </Slot>
        </Classification>
        <Classification classificationScheme="urn:uuid:41a5887f-8865-4c09-adf7-e362475b143a" classifiedObject="Document01" id="cl02" nodeRepresentation="History and Physical">
          <Slot name="codingScheme">
            <ValueList>
              <Value>Connect-a-thon classCodes</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="History and Physical"/>
          </Name>
        </Classification>
        <Classification classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" classifiedObject="Document01" id="cl03" nodeRepresentation="1.3.6.1.4.1.21367.2006.7.101">
          <Slot name="codingScheme">
            <ValueList>
              <Value>Connect-a-thon confidentialityCodes</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="Clinical-Staff"/>
          </Name>
        </Classification>
        <Classification classificationScheme="urn:uuid:a09d5840-386c-46f2-b5ad-9c3699a4309d" classifiedObject="Document01" id="cl04" nodeRepresentation="CDAR2/IHE 1.0">
          <Slot name="codingScheme">
            <ValueList>
              <Value>Connect-a-thon formatCodes</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="CDAR2/IHE 1.0"/>
          </Name>
        </Classification>
        <Classification classificationScheme="urn:uuid:f33fb8ac-18af-42cc-ae0e-ed0b0bdb91e1" classifiedObject="Document01" id="cl05" nodeRepresentation="Outpatient">
          <Slot name="codingScheme">
            <ValueList>
              <Value>Connect-a-thon healthcareFacilityTypeCodes</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="Outpatient"/>
          </Name>
        </Classification>
        <Classification classificationScheme="urn:uuid:cccf5598-8b07-4b77-a05e-ae952c785ead" classifiedObject="Document01" id="cl06" nodeRepresentation="General Medicine">
          <Slot name="codingScheme">
            <ValueList>
              <Value>Connect-a-thon practiceSettingCodes</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="General Medicine"/>
          </Name>
        </Classification>
        <Classification classificationScheme="urn:uuid:f0306f51-975f-434e-a61c-c59651d33983" classifiedObject="Document01" id="cl07" nodeRepresentation="34108-1">
          <Slot name="codingScheme">
            <ValueList>
              <Value>LOINC</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="Outpatient Evaluation And Management"/>
          </Name>
        </Classification>
        <ExternalIdentifier id="ei01" identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" registryObject="Document01" value="SELF-5^^^&1.3.6.1.4.1.21367.2005.3.7&ISO">
          <Name>
            <LocalizedString value="XDSDocumentEntry.patientId"/>
          </Name>
        </ExternalIdentifier>
        <ExternalIdentifier id="ei02" identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" registryObject="Document01" value="1.2.3.4.5.6.78901.2345.6.7890.12">
          <Name>
            <LocalizedString value="XDSDocumentEntry.uniqueId"/>
          </Name>
        </ExternalIdentifier>
      </ExtrinsicObject>
      <RegistryPackage id="SubmissionSet01">
        <Slot name="submissionTime">
          <ValueList>
            <Value>20041225235050</Value>
          </ValueList>
        </Slot>
        <Name>
          <LocalizedString value="Physical"/>
        </Name>
        <Description>
          <LocalizedString value="Annual physical"/>
        </Description>
        <Classification classificationScheme="urn:uuid:a7058bb9-b4e4-4307-ba5b-e3f0ab85e12d" classifiedObject="SubmissionSet01" id="cl08">
          <Slot name="authorPerson">
            <ValueList>
              <Value>Sherry Dopplemeyer</Value>
            </ValueList>
          </Slot>
          <Slot name="authorInstitution">
            <ValueList>
              <Value>Cleveland Clinic</Value>
              <Value>Berea Community</Value>
            </ValueList>
          </Slot>
          <Slot name="authorRole">
            <ValueList>
              <Value>Purn4ary Surgon</Value>
            </ValueList>
          </Slot>
          <Slot name="authorSpecialty">
            <ValueList>
              <Value>Orthopedic</Value>
            </ValueList>
          </Slot>
        </Classification>
        <Classification classificationScheme="urn:uuid:aa543740-bdda-424e-8c96-df4873be8500" classifiedObject="SubmissionSet01" id="cl09" nodeRepresentation="History and Physical">
          <Slot name="codingScheme">
            <ValueList>
              <Value>Connect-a-thon contentTypeCodes</Value>
            </ValueList>
          </Slot>
          <Name>
            <LocalizedString value="History and Physical"/>
          </Name>
        </Classification>
        <ExternalIdentifier id="ei03" identificationScheme="urn:uuid:96fdda7c-d067-4183-912e-bf5ee74998a8" registryObject="SubmissionSet01" value="1.2.3.4.5.6.78901.2345.6.7890.12">
          <Name>
            <LocalizedString value="XDSSubmissionSet.uniqueId"/>
          </Name>
        </ExternalIdentifier>
        <ExternalIdentifier id="ei04" identificationScheme="urn:uuid:554ac39e-e3fe-47fe-b233-965d2a147832" registryObject="SubmissionSet01" value="3670984664">
          <Name>
            <LocalizedString value="XDSSubmissionSet.sourceId"/>
          </Name>
        </ExternalIdentifier>
        <ExternalIdentifier id="ei05" identificationScheme="urn:uuid:6b5aea1a-874d-4603-a4bc-96a0a7b38446" registryObject="SubmissionSet01" value="SELF-5^^^&1.3.6.1.4.1.21367.2005.3.7&ISO">
          <Name>
            <LocalizedString value="XDSSubmissionSet.patientId"/>
          </Name>
        </ExternalIdentifier>
      </RegistryPackage>
      <Classification classificationNode="urn:uuid:a54d6aa5-d40d-43f9-88c5-b4633d873bdd" classifiedObject="SubmissionSet01" id="cl10"/>
      <Association associationType="HasMember" id="as01" sourceObject="SubmissionSet01" targetObject="Document01">
        <Slot name="SubmissionSetStatus">
          <ValueList>
            <Value>Original</Value>
          </ValueList>
        </Slot>
      </Association>
    </RegistryObjectList>
  </ns3:SubmitObjectsRequest>
</ns5:RegisterDocumentSetRequest>


Document Data Submission Response Success Message

Sample Nwhin DDS Response Message
<ns2:RegistryResponse xmlns="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0" xmlns:ns2="urn:oasis:names:tc:ebxml-regrep:xsd:rs:3.0" xmlns:ns3="urn:oasis:names:tc:ebxml-regrep:xsd:lcm:3.0" xmlns:ns4="urn:oasis:names:tc:ebxml-regrep:xsd:query:3.0" xmlns:ns5="urn:ihe:iti:xds-b:2007" status="urn:oasis:names:tc:ebxml-regrep:ResponseStatusType:Success"/>

Test Approach

Using JUnit and SoapUI Test Suite to verify the Document Data Submission

Methods
JUnit

Mocking the Document Data Submission: Inbound, Outbound and Adapter

Run JUnit test suites

SoapUI Test Suite

  • Project: ValidationSuite
  • Test Case: Document Data Submission


Validation Suite: Document Data Submission

To verified the DDS request and response, and document registry records are created

  • Starting with cleaning the test data in document registry table
  • Send DDS request to the gateway endpoint
  • Verify DDS response
  • Verify document registry records that was inserted from the response to the database

SoapUI Test Suite

  • Regression Suite: AuditLogging-passthrough
  • Test Case: Document Data Submission

Regression Suite AuditLogging-Passthrough: Document Data Submission

To verify that DDS request and response, and audit-log records are created:

  • Clear audit log table
  • Send DDS request
  • Verify Initiating Gateway logs the audit message in the database
  • Verify Responding Gateway logs the audit message in the database

SoapUI Test Suite

  • Regression Suite: EventLogging-passthrough
  • Test Case: Document Data Submission

Regression Suite EventLogging-Passthrough: Document Data Submission

To verify that DDS request and response, and event-log records are created:

  • Clear event logs table
  • Send DDS request
  • Verify Event logs
  • Verify elements logged as part of event.