PCC TF-2/zh

From IHE Wiki
Revision as of 10:33, 13 March 2010 by Linforest (talk | contribs) (Create a Simplified Chinese subpage)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Volume 2

HIMSS and RSNA
Integrating the Healthcare Enterprise

IHEBandW.png

IHE Patient Care Coordination

Technical Framework
Volume II

Revision 3.0
2008-2009

Public Comment


IHE Transactions

This section defines each IHE transaction in detail, specifying the standards used, and the information transferred.

IHE Patient Care Coordination Bindings

This section describes how the payload used in a transaction of an IHE profile is related to and/or constrains the data elements sent or received in those transactions. This section is where any specific dependencies between the content and transaction are defined.

A content integration profile can define multiple bindings. Each binding should identify the transactions and content to which it applies.

The source for all required and optional attributes have been defined in the bindings below. Three tables describe the three main XDS object types: XDSDocumentEntry, XDSSubmissionSet, and XDSFolder. XDSSubmissionSet and XDSDocumentEntry are required. Use of XDSFolder is optional. These concepts are universal to XDS, XDR and XDM.

The columns of the following tables are:

  • <XXX> attribute – name of an XDS attribute, followed by any discussion of the binding detail.
  • Optional? - Indicates the required status of the XDS attribute, and is one of R, R2, or O (optional). This column is filled with the values specified in the XDS Profile as a convenience.
  • Source Type – Will contain one of the following values:
Source Type Description
SA Source document Attribute – value is copied directly from source document. The Source/Value column identifies where in the source document this attribute comes from. Specify the location in XPath when possible.
SAT Source document Attribute with Transformation – value is copied from source document and transformed. The Source/Value column identifies where in the source document this attribute comes from. Specify the location in XPath when possible. Extended Discussion column must not be empty and the transform must be defined in the extended discussion
FM Fixed (constant) by Mapping - for all source documents. Source/Value column contains the value to be used in all documents.
FAD Fixed by Affinity Domain – value configured into Affinity Domain, all documents will use this value.
CAD Coded in Affinity Domain – a list of acceptable codes are to be configured into Affinity Domain. The value for this attribute shall be taken from this list.
CADT Coded in Affinity Domain with Transform - a list of acceptable codes are to be configured into Affinity Domain. The value for this attribute shall be taken from this list.
n/a Not Applicable – may be used with an optionality R2 or O attribute to indicate it is not to be used.
DS Document Source – value comes from the Document Source actor. Use Source/Value column or Extended Discussion to give details.
O Other – Extended Discussion must be 'yes' and details given in an Extended Discussion.
  • Source/Value – This column indicates the source or the value used.

The following tables are intended to be summaries of the mapping and transforms. The accompanying sections labeled 'Extended Discussion' are to contain the details as necessary.

Medical Document Binding to XDS, XDM and XDR

This binding defines a transformation that generates metadata for the XDSDocumentEntry element of appropriate transactions from the XDS, XDM and XDR profiles given a medical document and information from other sources. The medical document refers to the document being stored in a repository that will be referenced in the registry. The other sources of information include the configuration of the Document Source actor, the Affinity Domain, the site or facility, local agreements, other documents in the registry/repository, and this Content Profile.

In many cases, the CDA document is created for the purposes of sharing within an affinity domain. In these cases the context of the CDA and the context of the affinity domain are the same, in which case the following mappings shall apply.

In other cases, the CDA document may have been created for internal use, and are subsequentyly being shared. In these cases the context of the CDA document would not neccessarily coincide with that of the affinity domain, and the mappings below would not necessarily apply.

Please note the specifics given in the table below.

XDSDocumentEntry Metadata

XDSDocumentEntry Attribute Optional? Source Type Source/ Value
availabilityStatus R DS  
authorInstitution R2 SAT

$inst <= /ClinicalDocument/author
/assignedAuthor
/representedOrganization

The authorInstitution can be formated
using the following XPath expression, where $inst in the expression below represents the representedOrganization.
concat($inst/name)

authorPerson R2 SAT

$person <= /ClinicalDocument/author

The author can be formatted using the following XPath expression, where $person in the expression below represents the author.
concat(
$person/id/@extension,"^",
$person/assignedPerson/name/family,"^",
$person/assignedPerson/name/given[1],"^",
$person/assignedPerson/name/given[2],"^",
$person/assignedPerson/name/suffix,"^",
$person/assignedPerson/name/prefix,"^",
"^^^&", $person/id/@root,"&ISO")

authorRole R2 SAT This metadata element should be based on a mapping of the participation function defined in the CDA document to the set of author roles configured for the affinity domain. If the context of the CDA coincides with that of the affinity domain, then the following x-path may be appropriate:
/ClincicalDocument/author/
participationFunction
authorSpecialty R2 SAT This metadata element should be based on a mapping of the code associated with the assignedAuthor to detailed defined classification system for healthcare providers such configured in the affinitity domain. Possible classifications include those found in SNOMED-CT, or the HIPAA Healthcare Provider Taxonomy. If the context of the CDA coincides with that of the affinity domain, then the following x-path may be appropriate:
/ClinicalDocument/author/
assignedAuthor/code
classCode R CADT Derived from a mapping of /ClinicalDocument/code/@code to an Affinity Domain specified coded value to use and coding system. Affinity Domains are encouraged to use the appropriate value for Type of Service, based on the LOINC Type of Service (see Page 53 of the LOINC User's Manual). Must be consistent with /ClinicalDocument/code/@code
classCodeDisplayName R CADT DisplayName of the classCode derived. Derived from a mapping of /ClinicalDocument/code/@code to the appropriate Display Name based on the Type of Service. Must be Consitent with /ClinicalDocument/code/@code
confidentialityCode R CADT Derived from a mapping of /ClinicalDocument/confidentialityCode/@code to an Affinity Domain specified coded value and coding system. When using the BPPC profile, the confidentialyCode may also be obtained from the <authorization> element.


/ClinicalDocument/
confidentialityCode/@code
-AND/OR-
/ClinicalDocument/authorization/
consent[
templateId/@root=
'1.3.6.1.4.1.19376.1.5.3.1.2.5'
] /code/@code

comments O DS  
creationTime R SAT /ClinicalDocument/effectiveTime


Times specified in clinical documents may be specified with a precision in fractional sections, and may contain a time zone offset. In the XDS Metadata, it can be precise to the second, and is always given in UTC, so the timezone offset if present must be added to the current time to obtain the UTC time.

entryUUID R DS  
eventCodeList O CADT These values express a collection of keywords that may be relevant to the consumer of the documents in the registry. They may come from anywhere in the CDA document, according to its purpose.
eventCodeDisplayNameList R
(if event
Code is valued)
CADT These are the display names for the collection of keywords described above.
formatCode R FM The format code for each PCC Document content profile is provided within the document specifications.
healthcareFacilityTypeCode R CAD A fixed value assigned to the Document Source and configured form a set of Affinity Domain defined values. Must be concistent with /clinicalDocument/code
healthcareFacility
TypeCodeDisplay
Name
R CAD Must be concistent with /clinicalDocument/code
intendedRecipient (for XDR, XDM) O SAT

$person <= /ClinicalDocument/intendedRecipient
and/or
$inst <= /ClinicalDocument/intendedRecipient/receivedOrganization

The intendedRecipient can be formated
using the following XPath expression, where $inst in the expression below represents the receivedOrganization and where $person in the expression below represents the intendedRecipient.
concat(
$person/id/@extension,"^",
$person/informationRecipient/name/family,"^",
$person/informationRecipient/name/given[1],"^",
$person/informationRecipient/name/given[2],"^",
$person/informationRecipient/name/suffix,"^",
$person/informationRecipient/name/prefix,"^",
"^^^&", $person/id/@root,"&ISO",
"|"
$inst/name)

"^^^^^&",
$inst/id/@root, "&ISO", "^^^^", $inst/id/@extension)
-->

languageCode R SA /ClinicalDocument/languageCode
legalAuthenticator O SAT $person <= /ClinicalDocument/
legalAuthenticator


The legalAuthenticator can be formatted using the following XPath expression, where $person in the expression below represents the legalAuthenticator.
concat(
$person/id/@extension,"^",
$person/assignedPerson/name/family,"^",
$person/assignedPerson/name/given[1],"^",
$person/assignedPerson/name/given[2],"^",
$person/assignedPerson/name/suffix,"^",
$person/assignedPerson/name/prefix,"^",
"^^^&", $person/id/@root,"&ISO")

mimeType R FM text/xml
parentDocumentRelationship R
(when applicable)
DS Local document versions need not always be published, and so no exact mapping can be determined from the content of the CDA document.
The parentDocumentRelationship may be determined in some configurations from the relatedDocument element present in the CDA dsocument. If the context of the CDA coincides with that of the affinity domain, then the following x-path may be appropriate:
/ClinicalDocument/relatedDocument/@typeCode
parentDocumentId R
(when parent
Document
Relationship is present)
DS Local document versions need not always be published, and so no exact mapping can be determined from the content of the CDA document.
The parentDocumentId may be determined in some configurations from the relatedDocument element present in the CDA dsocument. If the context of the CDA coincides with that of the affinity domain, then the following x-path may be appropriate:
$docID <= /ClinicalDocument/
relatedDocument/parentDocument/id


The parentDocumentId can be formatted using the following XPath expression, where $docID in the expression below represents the identifier.
concat($docID/@root,"^", $docID/@extension)

patientId R DS The XDS Affinity Domain patient ID can be mapped from the patientRole/id element using transactions from the ITI PIX or PDQ profiles. See sourcePatientId below. If the context of the CDA coincides with that of the affinity domain, then the following x-path may be appropriate:


$patID <= /ClinicalDocument/recordTarget/
patientRole/id

practiceSettingCode R CAD This elements should be based on a coarse classification system for the class of specialty practice. Recommend the use of the classification system for Practice Setting, such as that described by the Subject Matter Domain in LOINC.
practiceSettingCodeDisplayName R CAD This element shall contain the display names associated with the codes described above.
serviceStartTime R2 SAT /ClinicalDocument/documentationOf/
serviceEvent/effectiveTime/low/
@value


Times specified in clinical documents may be specified with a precision in fractional sections, and may contain a time zone offset. In the XDS Metadata, it can be precise to the second, and is always given in UTC, so the timezone offset if present must be added to the current time to obtain the UTC time.

serviceStopTime R2 SAT /ClinicalDocument/documentationOf/
serviceEvent/effectiveTime/high/
@value


Times specified in clinical documents may be specified with a precision in fractional sections, and may contain a time zone offset. In the XDS Metadata, it can be precise to the second, and is always given in UTC, so the timezone offset if present must be added to the current time to obtain the UTC time.

sourcePatientId R SAT $patID <= /ClinicalDocument/recordTarget/
patientRole/id


The patientId can be formatted using the following XPath expression, where $patID in the expression below represents the appropriate identifier.
concat($patID/@extension,"^^^&", $patID/@root, "&ISO")

sourcePatientInfo R SAT /ClinicalDocument/recordTarget/
patientRole


The sourcePatientInfo metadata element can be assembled from various components of the patientRole element in the clinical document.

title O SA /ClinicalDocument/title
typeCode R CADT /ClinicalDocument/code/@code


The typeCode should be mapped from the ClinicalDocument/code element to a set of document type codes configured in the affinity domain. One suggested coding system to use for typeCode is LOINC, in which case the mapping step can be omitted.

typeCodeDisplay
Name
R CADT /ClinicalDocument/code/@displayName
uniqueId R SAT $docID <= /ClinicalDocument/id


The uniqueId can be formatted using the following XPath expression, where $docID in the expression below represents the identifier.
concat($docID/@root,"^", $docID/@extension)

XDSSubmissionSet Metadata

The submission set metadata is as defined for XDS, and is not necessarily affected by the content of the clinical document. Metadata values in an XDSSubmissionSet with names identical to those in the XDSDocumentEntry may be inherited from XDSDocumentEntry metadata, but this is left to affinity domain policy and/or application configuration.

Use of XDS Submission Set

This content format uses the XDS Submission Set to create a package of information to send from one provider to another. All documents referenced by the Medical Summary in this Package must be in the submission set.

Use of XDS Folders

No specific requirements identified.

Configuration

IHE Content Profiles using this binding require that Content Creators and Content Consumers be configurable with institution and other specific attributes or parameters. Implementers should be aware of these requirements to make such attributes easily configurable. There shall be a mechanism for the publishing and distribution of style sheets used to view clinical documents.

Extensions from other Domains

Scanned Documents (XDS-SD)

XDS-SD is a CDA R2 document and thus conforms to the XDS Metadata requirements in the PCC-TF, volume 2, Section 5 unless otherwise specified below.

XDSDocumentEntry

XDS-SD leverages the XDS DocumentEntry Metadata requirements in the PCC-TF, volume 2, Section 5.1.1.1.1 and in PCC_TF-2/Bindings unless otherwise specified below

XDSDocumentEntry.formatCode

The XDSDocumentEntry.formatCode shall be urn:ihe:iti:xds-sd:pdf:2008 when the document is scanned pdf and urn:ihe:iti:xds-sd:text:2008 when the document is scanned text. The formatCode codeSystem shall be 1.3.6.1.4.1.19376.1.2.3.

XDSDocumentEntry.uniqueId

This value shall be the ClinicalDocument/id in the HL7 CDA R2 header. The root attribute is required, and the extension attribute is optional. In accordance with the XDS.a profile, total length is limited to 128 characters; for XDS.b the limit is 256 characters. Additionally see PCC-TF, volume 2, Section 5.1.1.1.1 or PCC_TF-2/Bindings for further content specification.

Relating instances of XDS-SD documents

In general, most instances of XDS-SD will not have parent documents. It is possible, however, in some specific use cases that instances of XDS-SD documents are related. For example, for a particular document it may be the case that both the PDF scanned content and somewhat equivalent plaintext need to be wrapped and submitted. Each document would correspond to separate XDSDocumentEntries linked via an XFRM Association that indicates one document is a transform of the other. These can be submitted in a single submission set, or in separate ones. Other specific examples may exist and this profile does not preclude the notion of a parent document for these cases.

XDSSubmissionSet

No additional constraints. Particular to this profile, a legitimate use of submission sets would be to maintain a logical grouping of multiple XDS-SD documents. We encourage such usage. For more information, see PCC-TF-2 Section 5.1.1.1.2 or PCC_TF-2/Bindings.

XDSFolder

No additional requirements. For more information, see PCC-TF-2 Section 5.1.1.1.3 or PCC_TF-2/Bindings.

Basic Patient Privacy Consents (BPPC)

Laboratory Reports (XD-LAB)

XD-Lab is a CDA R2 document and thus conforms to the XDS Metadata requirements in the PCC-TF, volume 2, Section 5 unless otherwise specified below.

XDSDocumentEntry

XD-Lab leverages the XDS DocumentEntry Metadata requirements in the PCC-TF, volume 2, Section 5.1.1.1.1 and in PCC_TF-2/Bindings unless otherwise specified below

XDSDocumentEntry.eventCodeList

XD-Lab documents further constrain the the XDSDocumentEntry.eventCodeList to the following.

XDSDocumentEntry
Attribute Optional? Source Type Source/ Value
eventCodeList R2 SAT ClinicalDocument / component / structuredBody / component / section / entry / act / entryRelationship / organizer (templateId="1.3.6.1.4.1.19376.1.3.1.1")/ component / observation(templateId="1.3.6.1.4.1.19376.1.3.1.1.1")/code

AND

ClinicalDocument / component / structuredBody / component / section / entry / act / subject / code

If the document has Reportable Condition, then this code shall be among those listed in the eventCodeList. Additionally, if the document contains information about a Non-Human Subject, then the code that indicates what this subject is shall be among those listed in the eventCodeList. Thus, this attribute has been enhanced from the XDS profile from O to R2.

XDSDocumentEntry.formatCode

The XDSDocumentEntry.formatCode shall be urn:ihe:lab:xd-lab:2008 The formatCode codeSystem shall be 1.3.6.1.4.1.19376.1.2.3.

XDSSubmissionSet

No additional constraints. For more information, see PCC-TF-2 Section 5.1.1.1.2 or PCC_TF-2/Bindings.

XDSFolder

No additional requirements. For more information, see PCC-TF-2 Section 5.1.1.1.3 or PCC_TF-2/Bindings.

Namespaces and Vocabularies

This section lists the namespaces and identifiers defined or referenced by the IHE PCC Technical Framework, and the vocabularies defined or referenced herein.

The following vocabularies are referenced in this document. An extensive list of registered vocabularies can be found at http://www.hl7.org/oid/.

Vocabularies Used
codeSystem codeSystemName Description
1.3.6.1.4.1.19376.1.5.3.1 IHE PCC Template Identifiers This is the root OID for all IHE PCC Templates. A list of PCC templates can be found below in CDA Release 2.0 Content Modules.
1.3.6.1.4.1.19376.1.5.3.2 IHEActCode See IHEActCode Vocabulary below
1.3.6.1.4.1.19376.1.5.3.3 IHE PCC RoleCode See IHERoleCode Vocabulary below
1.3.6.1.4.1.19376.1.5.3.4   Namespace OID used for IHE Extensions to CDA Release 2.0
2.16.840.1.113883.10.20.1 CCD Root OID Root OID used for by ASTM/HL7 Continuity of Care Document
2.16.840.1.113883.5.112 RouteOfAdministration See the HL7 RouteOfAdministration Vocabulary
2.16.840.1.113883.5.1063 SeverityObservation See the HL7 SeverityObservation Vocabulary
2.16.840.1.113883.5.7 ActPriority See the HL7 ActPriority Vocabulary
2.16.840.1.113883.6.1 LOINC Logical Observation Identifier Names and Codes
2.16.840.1.113883.6.96 SNOMED-CT SNOMED Controlled Terminology
2.16.840.1.113883.6.103 ICD-9CM (diagnosis codes) International Classification of Diseases, Clinical Modifiers, Version 9
2.16.840.1.113883.6.104 ICD-9CM (procedure codes) International Classification of Diseases, Clinical Modifiers, Version 9
2.16.840.1.113883.6.26 MEDCIN A classification system from MEDICOMP Systems.
2.16.840.1.113883.6.88 RxNorm RxNorm
2.16.840.1.113883.6.63 FDDC First DataBank Drug Codes
2.16.840.1.113883.6.12 C4 Current Procedure Terminology 4 (CPT-4) codes.
2.16.840.1.113883.6.257 Minimum Data Set for Long Term Care The root OID for Minimum Data Set Answer Lists
1.2.840.10008.2.16.4 DCM DICOM Controlled Terminology; PS 3.16 Content Mapping Resource, Annex D
2.16.840.1.113883.6.24 MDC ISO/IEEE 11073 Medical Device Nomenclature
2.16.840.1.113883.3.26.1.5 NDF-RT National Drug File Reference Terminology (NCI version)
2.16.840.1.113883.11.19465 nuccProviderCodes National Uniform Codes Council Healthcare Provider Terminology
2.16.840.1.113883.6.255.1336 X12DE1336 Insurance Type Code (ASC X12 Data Element 1336)
2.16.840.1.113883.6.256 RadLex RadLex (Radiological Society of North America)

The IHE FormatCode vocabulary is now managed in an Implementation Guide published using FHIR.

This FormatCode vocabulary represents:

  • Code System 1.3.6.1.4.1.19376.1.2.3
  • Value Set 1.3.6.1.4.1.19376.1.2.7.1

IHEActCode Vocabulary

CCD   ASTM/HL7 Continuity of Care Document
CCR   ASTM CCR Implementation Guide

The IHEActCode vocabulary is a small vocabulary of clinical acts that are not presently supported by the HL7 ActCode vocabulary. The root namespace (OID) for this vocabulary is 1.3.6.1.4.1.19376.1.5.3.2. These vocabulary terms are based on the vocabulary and concepts used in the CCR and CCD standards listed above.

Code Description
COMMENT This is the act of commenting on another act.
PINSTRUCT This is the act of providing instructions to a patient regarding the use of medication.
FINSTRUCT This is the act of providing instructions to the supplier regarding the fulfillment of the medication order.
IMMUNIZ The act of immunization of a patient using a particular substance or class of substances identified using a specified vocabulary. Use of this vocabulary term requires the use of either the SUBSTANCE or SUBSTCLASS qualifier described below, along with an identified substance or class of substances.
DRUG The act of treating a patient with a particular substance or class of substances identified using a specified vocabulary. Use of this vocabulary term requires the use of either the SUBSTANCE or SUBSTCLASS qualifier described below, along with an identified substance or class of substances.
INTOL An observation that a patient is somehow intollerant of (e.g., allergic to) a particular substance or class of substances using a specified vocabulary. Use of this vocabulary term requires the use of either the SUBSTANCE or SUBSTCLASS qualifier described below, along with an identified substance or class of substances.
SUBSTANCE A qualifier that identifies the substance used to treat a patient in an immunization or drug treatment act. The substance is expected to be identified using a vocabulary such as RxNORM, SNOMED CT or other similar vocabulary and should be specific enough to identify the ingredients of the substance used.
SUBSTCLASS A qualifier that identifies the class of substance used to treat a patient in an immunization or drug treatment act. The class of substances is expected to be identified using a vocabulary such as NDF-RT, SNOMED CT or other similar vocabulary, and should be broad enough to classify substances by mechanism of action (e.g., Beta Blocker), intended effect (Dieuretic, antibiotic) or ...


For Public Comment What else needs to appear above for SUBSTCLASS?


IHERoleCode Vocabulary

The IHERoleCode vocabulary is a small vocabulary of role codes that are not presently supported by the HL7 Role Code vocabulary. The root namespace (OID) for this vocabulary is 1.3.6.1.4.1.19376.1.5.3.3.

IHERoleCode Vocabulary
Code Description
EMPLOYER The employer of a person.
SCHOOL The school in which a person is enrolled.
AFFILIATED An organization with which a person is affiliated (e.g., a volunteer organization).
PHARMACY The pharmacy a person uses.

Folder Content Modules

This section contains modules that describe the content requirements of Folders used with XDS, XDM or XDR. When workflows are completed normally, the folders will contain documents with the optionality specified in the tables shown below. Under certain circumstances, the folders will not meet the optionality requirements described below, for example, when the patient leaves before treatment is completed.



HL7第3.0版内容模块(HL7 Version 3.0 Content Modules)

本节之中收录的是那些基于HL7 CDA 2.0版标准的内容模块以及相关的标准和/或实施指南(implementation guides)。

CDA文档内容模块(CDA Document Content Modules)

CDA标头内容模块(CDA Header Content Modules)

CDA小节内容模块(CDA Section Content Modules)

这份列表定义的是医疗文档(medical document,医疗文书)之中可能出现的那些小节(sections)。此列表计划全面完整地列出病人医疗护理服务协调技术框架(Patient Care Coordination Technical Framework)之中所规定的任何内容概貌所使用的所有文档小节。所有小节都应当具有一个叙述型的组成部分,从而可以把后者随意地编排成为常规的文本、列表、表格或者其他合适的人工可读型呈现形式(human-readable presentations)。另外,可能还会要求具有额外的子小节(subsections)或者条目内容模块。





印象(Impressions)


CDA及HL7第3版条目内容模块(CDA and HL7 Version 3 Entry Content Modules)

HL7 Version 2 Content Modules

This section contains content modules based upon the HL7 Version 2 Standard, and related standards and/or implementation guides.


PCC Value Sets

This section contains value sets used by Content Modules.


Appendix A - Examples Using PCC Content Profiles

Example documents conforming to each profile can be found on the IHE wiki at the following URLs.

Profile and Content URL
XDS-MS  
 Referral Summary XDSMS Example1
 Discharge Summary XDSMS Example1
XPHR  
 XPHR Content XPHR Example1
 XPHR Update XPHR Example2
(EDR) ED Referral EDR Example
(APS) Antepartum Summary APS Example
(EDES)  
 Triage Note EDES Example1
 ED Nursing Note EDES Example2
 Composite Triage and Nursing Note EDES Example3
 ED Physician Note EDES Example4
(FSA) Functional Status Section FSA Example

Appendix B - Validating CDA Documents using the Framework

Many of the constraints specified by the content modules defined in the PCC Technical Framework can be validated automatically by software. Automated validation is a very desirable capability, as it makes it easier for implementers to test the correctness of their implementations. With regard to validation of the content module, the PCC Technical Framework narrative is the authoritative specification, not any automated software tool. Having said that, it is still very easy to create a validation framework for the IHE PCC Technical Framework using a XML validation tool such as Schematron. Since each content module has a name (the template identifier), any XML instance that reports itself to be of that "class" can be validated by creating assertions that must be true for each constraint indicated for the content module. In the XML representation, the <templateId> element is a child of the element that is claiming conformance to the template named. Thus the general pattern of a Schematron that validates a specific template is shown below:

<schema xmlns="http://www.ascc.net/xml/schematron" xmlns:cda="urn:hl7-org:v3">
  <ns prefix="cda" uri="urn:hl7-org:v3" />
  <pattern name='ReferralSummary'>
    <rule context='*[cda:templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.1.3]"'>
      <!-- one or more assertions made by the content module -->
    </rule>
  </pattern>
</schema>

Validating Documents

For document content modules, the pattern can be extended to support common document content module constraints as shown below:

<schema xmlns="http://www.ascc.net/xml/schematron" xmlns:cda="urn:hl7-org:v3">
  <ns prefix="cda" uri="urn:hl7-org:v3" />
  <pattern name='ReferralSummary'>
    <rule context='*[templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.1.3]"'>
      <!-- Verify that the template id is used on the appropriate type of object -->
      <assert test='../ClinicalDocument'>
        Error: The referral content module can only be used on Clinical Documents.
      </assert>
      <!-- Verify that the parent templateId is also present. -->
      <assert test='templateId[@root="1.3.6.1.4.1.19376.1.5.3.1.1.2"]'>
        Error: The parent template identifier for medical summary is not present.
      </assert>
      <!-- Verify the document type code -->
      <assert test='code[@code = "34133-9"]'>
        Error: The document type code of a referral summary must be
        34133-9 SUMMARIZATION OF EPISODE NOTE.
      </assert>
      <assert test='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>
      <!-- Verify that all required data elements are present -->
      <assert test='.//templateId[@root = "1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
        Error: A referral summary must contain a reason for referral.
      </assert>
      <!-- Alert on any missing required if known elements -->
      <assert test='.//templateId[@root = "1.3.6.1.4.1.19376.1.5.3.1.3.8"]'>
        Warning: A referral summary should contain a list of history of past illnesses.
      </assert>
      <!-- Note any missing optional elements -->
      <assert test='.//templateId[@root = "1.3.6.1.4.1.19376.1.5.3.1.3.18"]'>
        Note: This referral summary does not contain the pertinent review of systems.
      </assert>
    </rule>
  </pattern>
</schema>

Validating Sections

The same pattern can be also applied to sections with just a few minor alterations.

<schema xmlns="http://www.ascc.net/xml/schematron" xmlns:cda="urn:hl7-org:v3">
  <ns prefix="cda" uri="urn:hl7-org:v3" />
  <pattern name='ReasonForReferralUncoded'>
    <rule context='*[templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
      <!-- Verify that the template id is used on the appropriate type of object -->
      <assert test='section'>
        Error: The coded reason for referral module can only be used on a section.
      </assert>
      <assert test='false'>
        Manual: Manually verify that this section contains narrative providing the
        reason for referral.
      </assert>
      <!-- Verify that the parent templateId is also present. -->
      <assert test='templateId[@root="1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
        Error: The parent template identifier for the reason for referral 
        module is not present.
      </assert>
      <!-- Verify the section type code -->
      <assert test='code[@code = "42349-1"]'>
        Error: The section type code of the reason for referral section must be 42349-1
        REASON FOR REFERRAL.
      </assert>
      <assert test='code[@codeSystem = "2.16.840.1.113883.6.1"]'>
        Error: The section type code must come from the LOINC code 
        system (2.16.840.1.113883.6.1).
      </assert>
  </pattern>
  <pattern name='ReasonForReferralCoded'>
    <rule context='*[templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.3.2"]'>
      <!-- The parent template will have already verified the type of object -->
      <!-- Verify that the parent templateId is also present. -->
      <assert test='templateId[@root="1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
        Error: The parent template identifier for the reason for referral 
        module is not present.
      </assert>
      <!-- Don't bother with the section type code, as the parent template caught it -->
      <!-- Verify that all required data elements are present -->
      <assert test='.//templateId[@root = "1.3.6.1.4.1.19376.1.5.3.1.4.13"]'>
        Error: A coded reason for referral section must contain an simple observation.
      </assert>
      <!-- Alert on any missing required if known elements -->
      <!-- Note any missing optional elements -->
    </rule>
  </pattern>
</schema>

A similar pattern can also be followed for Entry and Header content modules, and these are left as an exercise for the reader.

Phases of Validation and Types of Errors

Note that each message in the Schematrons shown above start with a simple text string that indicates whether the message indicates one of the following conditions:

  • An error, e.g., the failure to transmit a required element,
  • A warning, e.g., the failure to transmit a required if known element,
  • A note, e.g., the failure to transmit an optional element.
  • A manual test, e.g., a reminder to manually verify some piece of content.

Schematron supports the capability to group sets of rules into phases by the pattern name, and to specify which phases of validation should be run during processing. To take advantage of this capability, one simply breaks each <pattern> element above up into separate patterns depending upon whether the assertion indicates an error, warning, note or manual test, and then associate each pattern with a different phase. This is shown in the figure below.

<schema xmlns="http://www.ascc.net/xml/schematron" xmlns:cda="urn:hl7-org:v3">
  <ns prefix="cda" uri="urn:hl7-org:v3" />
  <phase id="errors">
    <active pattern="ReasonForReferralUncoded_Errors"/>
    <active pattern="ReasonForReferralCoded_Errors"/>
  </phase>
  <phase id="manual">
    <active pattern="ReasonForReferralUncoded_Manual"/>
  </phase>
  <pattern name='ReasonForReferralUncoded_Errors'>
    <rule context='*[templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
      <assert test='section'>
        Error: The coded reason for referral module can only be used on a section.
      </assert>
      <assert test='code[@code = "42349-1"]'>
        Error: The section type code of the reason for referral section must be 42349-1
        REASON FOR REFERRAL.
      </assert>
      <assert test='code[@codeSystem = "2.16.840.1.113883.6.1"]'>
        Error: The section type code must come from the LOINC code 
        system (2.16.840.1.113883.6.1).
      </assert>
    </rule>
  </pattern>
  <pattern name='ReasonForReferralUncoded_Manual'>
    <rule context='*[templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
      <assert test='false'>
        Manual: Manually verify that this section contains narrative providing the
        reason for referral.
      </assert>
  </pattern>
  <pattern name='ReasonForReferralCoded_Errors'>
    <rule context='*[templateId/@root="1.3.6.1.4.1.19376.1.5.3.1.3.2"]'>
      <assert test='templateId[@root="1.3.6.1.4.1.19376.1.5.3.1.3.1"]'>
        Error: The parent template identifier for the reason for referral not present.
      </assert>
      <assert test='.//templateId[@root = "1.3.6.1.4.1.19376.1.5.3.1.4.13"]'>
        Error: A coded reason for referral section must contain an simple observation.
      </assert>
    </rule>
  </pattern>
</schema>

Using these simple "templates" for template validation one can simply create a collection of Schematron patterns that can be used to validate the content modules in the PCC Technical Framework. Such Schematrons are expected to be made available as part of the MESA test tools that are provided to IHE Connectathon participants, and which will also be made available to the general public after connectathon.

Appendix C - Extensions to CDA Release 2.0

This section describes extensions to CDA Release 2.0 that are used by the IHE Patient Care Coordination Technical Framework.

IHE PCC Extensions

All Extensions to CDA Release 2.0 created by the IHE PCC Technical Committee are in the namespace urn:ihe:pcc:hl7v3.

The approach used to create extension elements created for the PCC Technical Framework is the same as was used for the HL7 Care Record Summary (see Appendix E) and the ASTM/HL7 Continuity of Care Document (see secion 7.2).

replacementOf

The <replacementOf> extension element is applied to a section appearing in a PHR Update Document to indicate that that section's content should replace that of a previously existing section. The identifier of the previously existing section is given so that the PHR Manager receiving the Update content will know which section to replace. The model for this extension is shown below.

Model for replacementOf

Use of this extension is shown below. The <replacementOf> element appears after all other elements within the <section> element. The <id> element appearing in the <externalDocumentSection> element shall provide the identifier of the section being replaced in the parent document.

Example use of the replacementOf extension
<section>
 <id root=' ' extension=' '/>
 
 <title>Name of the Section</title>
 <text>Text of the section</text>
 <entry></entry>
 <component></component>
 <pcc:replacementOf xmlns:pcc='urn:ihe:pcc:hl7v3'>
   <pcc:externalDocumentSection>
     <pcc:id root='58FCBE50-D4F2-4bda-BC1C-2105B284BBE3'/>
   <pcc:externalDocumentSection/>
 </pcc:replacementOf>
</section>

Extensions Defined Elsewhere used by IHE PCC

Entity Identifiers

There is often a need to record an identifer for an entity so that it can be subsequently referenced. This extension provides a mechnism to store that identifier. The element appears after any <realm>, <typeId> or <templateId> elements, but before all others in the entity where it is used:

<playingEntity classCode='ENT' determinerCode='INSTANCE'>
 <sdtc:id root='1.3.6.4.1.4.1.2835.2' extension='EntityID'/>
   :
   .
</playingEntity>

Patient Identifier

There is a need to record the identifer by which a patient is known to another healthcare provider. This extension provides a role link between the assigned, related or associated entity, and the patient role.

Use of this extension to record the identifier under which the patient is known to a provider is shown below.

Example use of the Patient Identifier Extension
<assignedEntity>
 <id extension='1' root='1.3.6.4.1.4.1.2835.1'/>
 
 <addr>
   <streetAddressLine>21 North Ave</streetAddressLine>
   <city>Burlington</city>
   <state>MA</state>
   <postalCode>01803</postalCode>
   <country>USA</country>
 </addr>
 <telecom value='tel:(999)555-1212' use='WP'/>
 <assignedPerson>
   <name>
     <prefix>Dr.</prefix><given>Bernard</given><family>Wiseman</family><suffix>Sr.</suffix>
   </name>
 </assignedPerson>
 <sdtc:patient xmlns:sdtc='urn:hl7-org:sdtc' >
   <sdtc:id root='1.3.6.4.1.4.1.2835.2' extension='PatientMRN'/>
 </sdtc:patient>
</assignedEntity>

The <patient> element records the link between the related, assigned or associated entity and the patient. The <id> element provides the identifier for the patient. The root attribute of the <id> should be the namespace used for patient identifiers by the entity. The extension attribute of the <id> element shall be the patient's medical record number or other identifier used by the entity to identify the patient.