XDS-SD OID

From IHE Wiki
Jump to: navigation, search

Back to: XDS-SD_Harmonization

Development Only

The PCC Wiki Content is used only for development of IHE PCC Content. The Normative content of the PCC Technical Framework and the current supplements can be found at http://www.ihe.net/Technical_Framework/index.cfm#PCC

Trial.gif Scanned Document Specification XDS-SD OID

This section outlines the content of the HL7 CDA R2 wrapper for the document. We note here that requirements specified below are to ensure the presence of a minimum amount of wrapper data in order to enhance description and facilitate sharing of the document. Implementers of this profile can and should make use of additional annotation within the CDA header to provide richer context. The examples in the following sections contain the minimal amount of wrapper data, as specified, and in many cases do make use of additional CDA header elements for enriched context.

Assumptions and Definitions We assume that the scanning facility and equipment within it are assigned an OID and that the scanning facility assembles the wrapped scanned content. More information regarding the construction of OIDS can be found in the ITI Technical Framework, Volume 2, Appendix B. We define the following nomenclature for entity roles concerned in forming the wrapper content.

  • Original content – Legacy paper or electronic document intended for wrapping.
  • Scanned content – Scanned or appropriately converted/encoded electronic version of the original content.
  • Original author – Author of the original content.
  • (Scanner) Operator – Person assembling the scanned content.


Format Code

The XDSDocumentEntry format code for this content is urn:ihe:iti:xds-sd:pdf:2008 or urn:ihe:iti:xds-sd:text:2008


Standards
CDAR2 HL7 CDA Release 2.0
PDF RFC 3778, The application/pdf Media Type (informative) [ ]
PDF/A ISO 19005-1b. Document management - Electronic document file format for long-term preservation - Part 1: Use of PDF (PDF/A) [ ]
IETF (Internet Engineering Task Force) RFC 3066 [ ]
Data Element Index
Data Elements CDA Release 2.0
Original Author author
Scanner author
Scanner Operator dataEnterer
Specification
Data Element Name Opt Template ID
Original Author R2 Original Author OID
Scanner R Scanner OID
Scanner Operator R Scanner Operator OID

Conformance

CDA Release 2.0 documents that conform to the requirements of this content module shall indicate their conformance by the inclusion of the appropriate <templateId> elements in the header of the document. This is shown in the sample document below.

Sample Scanned Document Document
<ClinicalDocument xmlns='urn:hl7-org:v3'>
  <typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
  <templateId root='XDS-SD OID'/>
  <id root=' ' extension=' '/>
  <code code=' ' displayName=' '
    codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
  <title>Scanned Document</title>
  <effectiveTime value='20200702012005'/>
  <confidentialityCode code='N' displayName='Normal' 
    codeSystem='2.16.840.1.113883.5.25' codeSystemName='Confidentiality' />
  <languageCode code='en-US'/>     
     :
  <component><structuredBody>
       
  </structuredBody></component>
</ClinicalDocument>
Schematron
<pattern name='Template_XDS-SD OID'>
 <rule context='*[cda:templateId/@root="XDS-SD OID"]'>
   <!-- Verify that the template id is used on the appropriate type of object -->
   <assert test='../cda:ClinicalDocument'>
     Error: The Scanned Document can only be used on Clinical Documents.
   </assert> 
   <!-- Verify the document type code -->
   <assert test='cda:code[@code = "{{{LOINC}}}"]'>
     Error: The document type code of a Scanned Document must be {{{LOINC}}}
   </assert>
   <assert test='cda:code[@codeSystem = "2.16.840.1.113883.6.1"]'>
     Error: The document type code must come from the LOINC code 
     system (2.16.840.1.113883.6.1).
   </assert> 
   <assert test='.//cda:templateId[@root = "Original Author OID"]'> 
     <!-- Alert on any missing required if known elements -->
     Warning: The  Scanned Document Document should contain a(n) Original Author HL7V3.
     See http://wiki.ihe.net/index.php?title=XDS-SD OID
   </assert> 
   <assert test='.//cda:templateId[@root = "Scanner OID"]'> 
     <!-- Verify that all required data elements are present -->
     Error: The Scanned Document Document must contain a(n) Scanner HL7V3.
     See http://wiki.ihe.net/index.php?title=XDS-SD OID
   </assert> 
   <assert test='.//cda:templateId[@root = "Scanner Operator OID"]'> 
     <!-- Verify that all required data elements are present -->
     Error: The Scanned Document Document must contain a(n) Scanner Operator HL7V3.
     See http://wiki.ihe.net/index.php?title=XDS-SD OID
   </assert> 
 </rule>
</pattern>

ClinicalDocument Header rendering

ClinicalDocument Header constraints

<typeId/>

ClinicalDocument/typeId shall be present and shall be as stated in the HL7 CDA R2 Standard.

  • Example: <typeId root="2.16.840.1.113883.1.3" extension="POCD_H000040"
<template id="XDS-SD OID"/>

ClinicalDocument/templateId shall be present and shall have root value of "XDS-SD OID" to signify that this ClinicalDocument conforms to the XDS-SD content profile specification.

<id/>

The ClinicalDocument/id element shall be present. The root attribute shall contain the oid for the document, in which case the extension attribute shall be empty, or an oid that scopes the set of possible unique values for the extention attribute, in which case the extension shall be populated with a globally unique identifier within the scope of the root oid.

<code/>

The ClinicalDocument/code will in most cases be provided by the operator. Values for this code are dictated by the CDA R2 documentation, but are permissible to extend to fit the particular use case. Attributes code@code and code@codeSystem shall be present.

<title/>

The ClinicalDocument/title shall be present if known.

<effectiveTime/>

The ClinicalDocument/effectiveTime shall denote the time at which the original content was scanned. At a minimum, the time shall be precise to the day and shall include the time zone offset from GMT.

<confidentalityCody/>

The ClinicalDocument/confidentialityCode shall be assigned by the operator in accordance with the scanning facility policy. The notion or level of confidentiality in the header may not be the same as that in the Affinity Domain, but in certain cases could be used to derive a confidentiality value among those specified by the Affinity Domain. Attributes confidentialityCode@code and confidentialityCode@codeSystem shall be present.

<languageCode/>

The ClinicalDocument/languageCode, in accordance with the HL7 CDA R2 documentation, shall denote the language used in the character data of the wrapper CDA header. If the scanned content, when rendered, is in a language different than that of the header, the language context of the CDA will be overwritten at the body level (see ‎XDS-SD_OID#ClinicalDocument Body ClinicalDocument/component/nonXMLBody for an example). Attribute code@code shall be present. Attribute code@codeSystem shall be IETF (Internet Engineering Task Force) RFC 3066 in accordance with the HL7 CDA R2 documentation.

<recordTarget/>

The ClinicalDocument/recordTarget contains identifying information about the patient concerned in the original content. In many cases this will have to be supplied by the operator. All subelements retain their original definition as defined by the HL7 CDA R2 specification, unless noted below.

  • The ClinicalDocument/recordTarget/patientRole/id element shall include both the root and the extension attributes. Refer back to ‎PCC_TF-2/Bindings for more details.
  • At least one ClinicalDocument/recordTarget/patientRole/addr element shall include at least the country subelement. The addr element has an unbounded upper limit on occurrences. It can, and should, be replicated to include additional addresses for a patient, each minimally specified by the country subelement.
  • At least one ClinicalDocument/recordTarget/patientRole/patient/name element shall be at least one given subelement and one family subelement.
  • The ClinicalDocument/recordTarget/patientRole/patient/administrativeGenderCode element shall be present.
  • The ClinicalDocument/recordTarget/patientRole/patient/birthTime element shall be present with precision to the year.
<custodian/>

The ClinicalDocument/custodian shall be present. Its context is left up to the scanning facility to refine in accordance with local policies and to reflect the entity responsible for the scanned content. In most cases this will be the scanning facility. All subelements retain their original definition as defined by the HL7 CDA R2 specification, unless noted below.

  • The ClinicalDocument/assignedCustodian/representedOrganization/name shall be present.
  • At least one ClinicalDocument/assignedCustodian/representedOrganization/addr element shall include at least the country subelement.
<legalAuthenticator/>

The ClinicalDocument/legalAuthenticator may be present and its context is left up to the scanning facility to refine in accordance with local policies. All subelements retain their original definition as defined by the HL7 CDA R2 specification, unless noted below.

  • The ClinicalDocument/legalAuthenticator/assignedEntity/id element if known shall include both the root and the extension attributes. Refer back to ‎PCC_TF-2/Bindings for more details.
<documentationOf/>

This ClinicalDocument/documentationOf element is used to encode the date/time range of the original content. If the original content is representative of a single point in time then the endpoints of the date/time range shall be the same. Information regarding this date/time range shall be included, if it is known. In many cases this will have to be supplied by the operator. This profile does not restrict the documentationOf element beyond statements made in the HL7 CDA R2 documentation.

ClinicalDocument Header Content Modules

The table above lists the additional requirements (conformance statements) for this scanned document which are in the form of header content modules.

ClinicalDocument Header Example

<ClinicalDocument xmlns="urn:hl7-org:v3"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" classCode="DOCCLIN" moodCode="EVN" xsi:schemaLocation="urn:hl7-org:v3 CDA.xsd">
  <typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
  <templateId root="XDS-SD OID"/>
  <id root=“1.3.6.4.1.4.1.2835.2.7777”/>
  <code code=“34133-9”  codeSystem=“2.16.840.1.113883.6.1” 
codeSystemName=“LOINC” displayName=“SUMMARIZATION OF EPISODE NOTE”/>
  <title>Good Health Clinic Care Record Summary</title>
  <effectiveTime value=“20050329224411+0500”/>
  <confidentialityCode code="N" codeSystem="2.16.840.1.113883.5.25"/>
  <languageCode code=“en-US”/>
  <recordTarget>
    <patientRole>
      <id extension="12345" root="2.16.840.1.113883.3.933"/>
      <addr>
        <streetAddressLine>17 Daws Rd.</streetAddressLine>
        <city>Blue Bell</city>
        <state>MA</state>
        <postalCode>02368</postalCode>
        <country>USA</country>
      </addr>
      <patient>
        <name>
          <prefix>Mrs.</prefix>
          <given>Ellen</given>
          <family>Ross</family>
        </name>
        <administrativeGenderCode code="F"
codeSystem="2.16.840.1.113883.5.1"/>
        <birthTime value="19600127"/>
      </patient>
   </patientRole>
  </recordTarget>
  <author>
    <templateId root="Original Author OID"/>
    <time value=“19990522”/>
    <assignedAuthor>
      <id extension=“11111111” root=“1.3.5.35.1.4436.7”/>
      <assignedPerson>
        <name>
          <prefix>Dr.</prefix>
          <given>Bernard</given>
          <family>Wiseman</family>
          <suffix>Sr.</suffix>
        </name>
      </assignedPerson>
    	<representedOrganization>
	   <id extension=“aaaaabbbbb”	root=“1.3.5.35.1.4436.7”/>
	   <name>Dr. Wiseman’s Clinic</name>
      </representedOrganization>
    </assignedAuthor>
  </author>
  <author>
    <templateId root="Scanner OID"/>
    <time value=“20050329224411+0500”/>
    <assignedAuthor>
      <id root=“1.3.6.4.1.4.1.2835.2.1234”/>
      <assignedAuthoringDevice>
<code code=“CAPTURE” displayName=“Image Capture” codeSystem=“  1.2.840.10008.2.16.4” /> 
<manufacturerModelName>SOME SCANNER NAME AND MODEL  </manufacturerModelName>
         <softwareName>SCAN SOFTWARE NAME v0.0</softwareName>
    	</assignedAuthoringDevice>
    	<representedOrganization>
	   <id root=“1.3.6.4.1.4.1.2835.2”/>
	   <name>SOME Scanning Facility</name>
         <addr>
           <streetAddressLine>21 North Ave</streetAddressLine>
           <city>Burlington</city>
           <state>MA</state>
           <postalCode>01803</postalCode>
           <country>USA</country>
         </addr>
      </representedOrganization>
   </assignedAuthor>
 </author>
  <dataEnterer>
    <templateId root="Scanner Operator OID"/>
    <time value=“20050329224411+0500”/>
    <assignedEntity>
      <id extension=“22222222” root=“1.3.6.4.1.4.1.2835.2”/>
      <assignedPerson>
        <name>
          <prefix>Mrs.</prefix>
          <given>Bernice</given>
          <family>Smith</family>
        </name>
      </assignedPerson>
    </assignedEntity>
  </dataEnterer>
  <custodian>
    <assignedCustodian>
      <representedCustodianOrganization>
	   <id root=“1.3.6.4.1.4.1.2835.2”/>
	   <name>SOME Scanning Facility</name>
         <addr>
           <streetAddressLine>21 North Ave</streetAddressLine>
           <city>Burlington</city>
           <state>MA</state>
           <postalCode>01803</postalCode>
           <country>USA</country>
         </addr>
      </representedCustodianOrganization>
    </assignedCustodian>
  </custodian>
  <legalAuthenticator>
    <time value=“19990522”/>
    <signatureCode code=“S”/>
    <assignedEntity>
      <id extension=“11111111” root=“1.3.5.35.1.4436.7”/>
      <assignedPerson>
        <name>
          <prefix>Dr.</prefix>
          <given>Bernard</given>
          <family>Wiseman</family>
          <suffix>Sr.</suffix>
        </name>
      </assignedPerson>
    </assignedEntity>
  </legalAuthenticator>
  <documentationOf>
    <serviceEvent >
      <effectiveTime>
        <low value=“19800127”/>
        <high value=“19990522”/>
      </effectiveTime>
    </serviceEvent>
  </documentationOf>
  <component>
    <nonXMLBody>

     ... scanned content here ...
    </nonXMLBody>
  </component>
</ClinicalDocument>

ClinicalDocument Body

This ClinicalDocument/component/nonXMLBody element shall be present and used to wrap the scanned content. The nonXMLBody element is guaranteed to be unique; thus the x-path to recover the scanned content is essentially fixed. All subelements of the nonXMLBody retain their original definition as defined by the HL7 CDA R2 specification, unless noted below.

  • If the human-readable language of the scanned content is different than that of the wrapper (specified in ClinicalDocument/languageCode), then ClinicalDocument/component/nonXMLBody/languageCode shall be present. Attribute code@code shall be present. Attribute code@codeSystem shall be IETF (Internet Engineering Task Force) RFC 3066 in accordance with the HL7 CDA R2 documentation.
  • The ClinicalDocument/component/nonXMLBody/text element shall be present and encoded using xs:base64Binary encoding. Its #CDATA will contain the scanned content.
    • ClinicalDocument/component/nonXMLBody/text@mediaType shall be “application/pdf” for PDF, or “text/plain” for plaintext.
    • ClinicalDocument/component/nonXMLBody/text@representation shall be present. The @representation for both PDF and plaintext scanned content will be “B64”, because this profile requires the base-64 encoding of both formats.


ClinicalDocument Body Example

Example (PDF scanned content is in the same language as the wrapper):

<ClinicalDocument>
 ... CDA header content here ...
  <component>
    <nonXMLBody>
      <text mediaType=“application/pdf” representation=“B64”>
JVBERi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0
ZURlY29kZT4+CnN0cmVhbQp4nGWPMWsDMQyFd/8KjfJwqmVbkr0GQqFbg7fQoSRNWuhB
Q/4/1L67TEEYme+9J1s3CMQQRm39NLuXg8H17gK89nN1N8eLAbZ2mmHXuql2QDVUhnZx
a5iBcyQtoMIUM7TZHbH5KZEVDgm//SSUswbFHx/JzBLeu5yYxOIzE8bPcRWqdaGDmcZO
BWc/9bfUNOPfOte44O9jxtcIKskqp0JZouJ5deYqeBn58ZmKtIU+2ptjqWQRJpGyrHDu
K7CXIe2be+/1DzXQP+RlbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKMjAxCmVuZG9iago0
...
SW5mbyAyIDAgUgovSUQgWzxGNENDN0FFQjU0QjM2RkIyODNDNUMzMjQ3OUFEMjgzRj48
RjRDQzdBRUI1NEIzNkZCMjgzQzVDMzI0NzlBRDI4M0Y+XQo+PgpzdGFydHhyZWYKMzAx
MgolJUVPRgo=
     </text>
    </nonXMLBody>
  </component>
</ClinicalDocument>


Example (PDF scanned content is in a different language as the wrapper):

<ClinicalDocument>
 ... CDA header content here ...
  <component>
    <nonXMLBody>
	<languageCode code=“zh-CN”/>
      <text mediaType=“application/pdf” representation=“B64”>
JVBERi0xLjMKJcfsj6IKNSAwIG9iago8PC9MZW5ndGggNiAwIFIvRmlsdGVyIC9GbGF0
ZURlY29kZT4+CnN0cmVhbQp4nGWPMWsDMQyFd/8KjfJwqmVbkr0GQqFbg7fQoSRNWuhB
Q/4/1L67TEEYme+9J1s3CMQQRm39NLuXg8H17gK89nN1N8eLAbZ2mmHXuql2QDVUhnZx
a5iBcyQtoMIUM7TZHbH5KZEVDgm//SSUswbFHx/JzBLeu5yYxOIzE8bPcRWqdaGDmcZO
BWc/9bfUNOPfOte44O9jxtcIKskqp0JZouJ5deYqeBn58ZmKtIU+2ptjqWQRJpGyrHDu
K7CXIe2be+/1DzXQP+RlbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKMjAxCmVuZG9iago0
...
SW5mbyAyIDAgUgovSUQgWzxGNENDN0FFQjU0QjM2RkIyODNDNUMzMjQ3OUFEMjgzRj48
RjRDQzdBRUI1NEIzNkZCMjgzQzVDMzI0NzlBRDI4M0Y+XQo+PgpzdGFydHhyZWYKMzAx
MgolJUVPRgo=
      </text>
    </nonXMLBody>
  </component>
</ClinicalDocument>