Difference between revisions of "PCC TF-1/QCG"

From IHE Wiki
Jump to navigation Jump to search
m
m
Line 27: Line 27:
 
The RCG profile leverages the existing content modeling defined previously in the PCC Technical Framework to deliver information needed to a clinical decision support service.  The clinical decision support service then responds with updated information potentially including a suggested care plan or additional clinical information.
 
The RCG profile leverages the existing content modeling defined previously in the PCC Technical Framework to deliver information needed to a clinical decision support service.  The clinical decision support service then responds with updated information potentially including a suggested care plan or additional clinical information.
  
The care plan may propose additional observations and assessments to be made to provide more complete analysis, suggest treatment options, or additional testing to be performed.  Additional clinical information may be provided to evaluate effectiveness or quality of care (e.g., effectiveness of vaccinations based on prior history and existing or new guidelines or information).
+
The care plan may propose additional observations and assessments to be made to provide more complete analysis, suggest treatment options or contraindications, or additional testing to be performed or avoided.  Additional clinical information may be provided to suggest diagnoses or evaluate effectiveness or quality of care (e.g., effectiveness of vaccinations based on prior history and existing or new guidelines or information).
  
 
===Actors/Transaction===
 
===Actors/Transaction===

Revision as of 11:51, 5 May 2009

Volume 1

HIMSS and RSNA
Integrating the Healthcare Enterprise

IHEBandW.png

IHE Patient Care Coordination

Request for Clinical Guidance (RCG)
Technical Framework Supplement
Volume I

Revision 3.0
2008-2009

Public Comment



Open Issues

  1. Addressing the issues of feedback, given that these choices were provided, getting feedback upon what choice was selected (if any) is important to the decision support process (c.f., Machine learning). What mechanism should be provided to allow feedback to be given?
  1. Content in the HL7 Message and Control Act wrappers duplicate capabilities now available in WS-* profiles, how should this overlap be addressed?

Closed Issues

  1. Is the profile dealing with just synchronous queries (question/answer style), or will it also deal with asynchronous issues as well (stateless vs. stateful).
    This profile deals with just synchronous/stateless queries. Ansynchronous/stateful clinical decision support is enabled by the Care Management profile.
  2. Is there a way to address stateless/stateful above using composition, and if so, what actor deals with maintenance of state between invocations?
    There is a way to address stateful decision support using composition with the care management actor and the clinical data source. The maintenance of state information depends upon the clinical decision support algorithm and is outside the scope of this profile.
  3. Is the latter an issue to be addressed in ITI in a subsequent iteration?
    Possibly, but unclear at this time.

Request for Clinical Guidance Integration Profile (RCG)

The Request for Clinical Guidance Profile (RCG) supports integration of Clinical Decision Support into healthcare IT systems. A wide variety of these systems often need access to clinical guidance, for example, when ordering medications, determining appropriate immunizations, diagnostic tests, et cetera. This profile makes it possible for systems to obtain this guidance from within an enterprise.

A wide class of problems in healthcare are described as being in the area of clinical decision support. Integration of these capabilities into healthcare IT systems has been slow for a variety of reasons. Most of the attention on standards for integration of clinical decision support into applications has been in the area of describing the logic used to solve the problem. However, exchange of decision support algorithms has failed to make decision support more readily available. In part this is due to the wide variety of clinical decision algorithms that may be used to solve a problem. Some problems may be amenable to rule-based logic (e.g., immunization forecasting), others might use complex formulas (weight based dosing regimes), and others may use databases of medical knowledge (e.g., medication interaction checking). No single approach fits all decision support needs. Rather than specify the language in which clinical decision support rules are expressed, this profile describes how to exchange patient data as the payload needed to drive the clinical decision support service.

In this profile we show a common way to integrate clinical decision support services into healthcare IT applications to provide solutions to individualized patient care decisions such as:

  • Drug and Allergy interaction detection
  • Forecasting a vaccine schedule
  • Identification of eligibility for participation in reseach or other programs
  • Cost effective selection of antibiotics based on recent institutional data

The RCG profile leverages the existing content modeling defined previously in the PCC Technical Framework to deliver information needed to a clinical decision support service. The clinical decision support service then responds with updated information potentially including a suggested care plan or additional clinical information.

The care plan may propose additional observations and assessments to be made to provide more complete analysis, suggest treatment options or contraindications, or additional testing to be performed or avoided. Additional clinical information may be provided to suggest diagnoses or evaluate effectiveness or quality of care (e.g., effectiveness of vaccinations based on prior history and existing or new guidelines or information).

Actors/Transaction

There are two actors in this profile, the Care Manager and the Clinical Decision Advisor.

File:RCGat.gif
Request for Clinical Guidance Actor Diagram

The table below lists the transactions for each actor directly involved in the Request for Clinical Guidance Profile. In order to claim support of this Integration Profile, an implementation must perform the required transactions (labeled 'R'). Transactions labeled 'O' are optional. A complete list of options defined by this Integration Profile and that implementations may choose to support is listed below under Options.

Actor Name Optionality Transaction
Request for Clinical Guidance Actors and Transactions
Care Manager Care Management Update R PCC-10
Care Plan Suggestion R PCC-10
Clinical Decision Advisor Care Management Update R PCC-10
Care Plan Suggestion R PCC-12

Options

No options are described by this profile.

Grouping

Consistent Time

These actors shall implement Time Client to ensure that consistent time is maintained across systems.

Audit Trail and Node Authentication

Actors of this profile may be grouped with either the Secure Node or the Secure Application actor, to ensure the security of the information being exchanged.

Content Integration Profiles

The Care Plan Suggester may require data specified in an IHE Content profile to assist in the computation of the guidance being provided. The Care Plan Suggester may also return information in the form of an IHE Content profile. Appendix F Transforming CDA Documents to Care Record Messages describes the model by which a CDA document conforming to an IHE Content profile can be transformed to the Care Record messages when used by this profile.

Process Flow

File:RCGflow.gif
Request for Clinical Guidance Process Flow

Immunization Forecasting

An EMR provides current immunization status, allergies and problem information to an immunization forecasting service. The forecastig service responds with validated immunizations and one or more immunization schedules. The EMR presents the immunization schedule to the end user, who then incorporates one of the suggested schedules into the patient's care plan.

Drug Safety

When a medication is to be administered an EMR provides the patient's current height, weight, problems, medications and allergies to a decision support system, along with proposed medication orders. The decision support system responds with alerts or suggested alternative treatments based on possible medication interactions, allergies, or even cost. The EMR can then offer these suggestions to the end user prior to completion of the order.

Identifying Qualifying Patients

Upon completion of a visit, the EMR activates a decision support system passing the current patient diagnoses. Upon determining that the patient has been diagnosed with Diabetes, the decision support system notifies the EMR that it should activate protocols for diabetic care.

Actor Definitions

Clinical Data Consumer
A clinical data consumer makes use of clinical patient data.
Clinical Data Source
A Clinical Data Sources maintains patient information about vital signs, problem and allergies, results from diagnostic tests (e.g., Lab, Imaging, or other test results), medications, immunizations or historical or planned visits and procedures.

Transaction Definitions

Query Existing Data
Request information about recent patient information, used to obtain vital signs measurements, problems and allergies, diagnostic results, medications, immunizations, or procedures or visits relevant for a patient. The query may request information about some or all of the above topics, or may request information on a specific topic, or one entered for a specific encounter or date range.

Volume II

HIMSS and RSNA
Integrating the Healthcare Enterprise

IHEBandW.png

IHE Patient Care Coordination

Request for Clinical Guidance (RCG)
Technical Framework Supplement
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.


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.

HL7 Version 3.0 Content Modules

This section contains content modules based upon the HL7 CDA Release 2.0 Standard, and related standards and/or implementation guides.

CDA Document Content Modules

CDA Header Content Modules

CDA Section Content Modules

This list defines the sections that may appear in a medical document. It is intended to be a comprehensive list of all document sections that are used by any content profile defined in the Patient Care Coordination Technical Framework. All sections shall have a narrative component that may be freely formatted into normal text, lists, tables, or other appropriate human-readable presentations. Additional subsections or entry content modules may be required.





Impressions


CDA and HL7 Version 3 Entry 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.

Appendix E - WSDLs for QED

The WSDL for the QED transaction PCC-1 represents the interface contract for the QED profile. Conformance to this contract is a requirement of the profile. However, the WSDL representing the this contract is not necessarily the best WSDLs to use when generating application proxies.

There is a general guideline for generating proxies make application development much easier for complex WSDL/schemas such as the ones included for QED. Use a generic, non-strongly typed WSDL that is for the purpose of generating the proxy. Use of a strongly typed WSDL forces the generation infrastructure to go through all the XML type definitions. It will then generate classes for each of them, which can result in thousands of generated classes and megabytes of generated code. In addition, the mapping between the schema and object oriented constructs is not straightforward. Because of both the size, and complexity of the schema, proxy generators often run into problems with valid instances of strongy typed WSDLs.

A commonly used method for creating non-strongly typed WDSL for HL7 Messages used for generating proxies substitutes the ANY data type for the payload of either the message infrastructure or the control act. This results in much smaller proxies. Applications receiving messages using these proxies may want to validate inputs since they are no longer validated by the proxy. A discussion of this method of proxy generation can be found in this article: http://msdn2.microsoft.com/en-us/library/ms954603.aspx. See the section on Web Services Code Generation.


<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ClinicalDataSource" targetNamespace="urn:ihe:pcc:qed:2007" 
		xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:hl7="urn:hl7-org:v3" 
		xmlns:tns="urn:ihe:pcc:qed:2007"
		xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
		xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
		xmlns:wsoap11="http://schemas.xmlsoap.org/wsdl/soap/"
		xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap/"
		xmlns:wsaw="http://schemas.xmlsoap.org/ws/2004/08/addressing"
	 	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
		xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <types>
    <xsd:schema elementFormDefault="qualified" targetNamespace="urn:hl7-org:v3">
      <!-- Query Care Record Event Profile Query -->
      <xsd:include schemaLocation="QUPC_IN043100UV.xsd"/>
    </xsd:schema>
    <xsd:schema elementFormDefault="qualified" targetNamespace="urn:hl7-org:v3">
      <!-- Query Care Record Event Profile Query Response -->
      <xsd:include schemaLocation="QUPC_IN043200UV.xsd"/>
    </xsd:schema>
    <xsd:schema elementFormDefault="qualified" targetNamespace="urn:hl7-org:v3">
      <!-- General Query Activate Query Continue / Cancel -->
      <xsd:include schemaLocation="QUQI_IN000003UV01.xsd"/>
    </xsd:schema>
  </types>
  <message name="QUPC_IN043100UV_Message">
    <part element="hl7:QUPC_IN043100UV" name="Body"/>
  </message>
  <message name="QUPC_IN043200UV_Message">
    <part element="hl7:QUPC_IN043200UV" name="Body"/>
  </message>
  <message name="QUQI_IN000003UV01_Message">
    <part element="hl7:QUQI_IN000003UV01" name="Body"/>
  </message>
  <portType name="ClinicalDataSource_PortType">
    <operation name="ClinicalDataSource_QUPC_IN043100UV">
      <input message="tns:QUPC_IN043100UV_Message" 
        wsaw:Action="urn:hl7-org:v3:QUPC_IN043100UV"/>
      <output message="tns:QUPC_IN043200UV_Message" 
        wsaw:Action="urn:hl7-org:v3:QUPC_IN043200UV "/>
    </operation>
    <operation name="ClinicalDataSource_QUQI_IN000003UV01_Continue">
      <input message="tns:QUQI_IN000003UV01_Message" 
        wsaw:Action="urn:hl7-org:v3:QUQI_IN000003UV01_Continue"/>
      <output message="tns:QUPC_IN043200UV_Message" 
        wsaw:Action="urn:hl7-org:v3:QUPC_IN043200UV "/>
    </operation>
    <operation name="ClinicalDataSource_QUQI_IN000003UV01_Cancel">
      <input message="tns:QUQI_IN000003UV01_Message" 
        wsaw:Action="urn:hl7-org:v3:QUQI_IN000003UV01_Cancel"/>
      <output message="tns:QUPC_IN043200UV_Message" 
        wsaw:Action="urn:hl7-org:v3:QUPC_IN043200UV"/>
    </operation>
  </portType>
  <binding name="ClinicalDataSource_Binding_Soap12" type="tns:ClinicalDataSource_PortType">
    <wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="ClinicalDataSource_QUPC_IN043100UV">
      <wsoap12:operation soapAction="urn:hl7-org:v3:QUPC_IN043100UV"/>
      <input><wsoap12:body use="literal"/></input>
      <output><wsoap12:body use="literal"/></output>
    </operation>
    <operation name="ClinicalDataSource_QUQI_IN000003UV01_Continue">
      <wsoap12:operation soapAction="urn:hl7-org:v3:QUQI_IN000003UV01"/>
      <input><wsoap12:body use="literal"/></input>
      <output><wsoap12:body use="literal"/></output>
    </operation>
    <operation name="ClinicalDataSource_QUQI_IN000003UV01_Cancel">
      <wsoap12:operation soapAction="urn:hl7-org:v3:QUQI_IN000003UV01"/>
      <input><wsoap12:body use="literal"/></input>
      <output><wsoap12:body use="literal"/></output>
    </operation>
  </binding>
  <binding name="ClinicalDataSource_Binding_Soap11" type="tns:ClinicalDataSource_PortType">
    <wsoap11:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="ClinicalDataSource_QUPC_IN043100UV">
      <wsoap11:operation soapAction="urn:hl7-org:v3:QUPC_IN043100UV"/>
      <input><wsoap12:body use="literal"/></input>
      <output><wsoap12:body use="literal"/></output>
    </operation>
    <operation name="ClinicalDataSource_QUQI_IN000003UV01_Continue">
      <wsoap11:operation soapAction="urn:hl7-org:v3:QUQI_IN000003UV01"/>
      <input><wsoap11:body use="literal"/></input>
      <output><wsoap11:body use="literal"/></output>
    </operation>
    <operation name="ClinicalDataSource_QUQI_IN000003UV01_Cancel">
      <wsoap11:operation soapAction="urn:hl7-org:v3:QUQI_IN000003UV01"/>
      <input><wsoap11:body use="literal"/></input>
      <output><wsoap11:body use="literal"/></output>
    </operation>
  </binding>
  <service name="ClinicalDataSource_Service">
    <port binding="tns:ClinicalDataSource_Binding_Soap11" name="ClinicalDataSource_Port_Soap11">
      <wsoap11:address location="http://servicelocation/"/>
    </port>
    <port binding="tns:ClinicalDataSource_Binding_Soap12" name="ClinicalDataSource_Port_Soap12">
      <wsoap12:address location="http://servicelocation/"/>
    </port>
  </service>
</definitions>

This file, along with the necessary HL7 Schemas, and some skelatal examples can all be found on the Patient Care Coordination FTP site: [1]

Appendix F - Transforming CDA Documents to Care Record Messages

The HL7 Clinical Document Architecture (CDA) provides a mechanism to record an XML document that can be used as a persistent record of care acts documented during a clinical encounter. Many profiles developed by the IHE Patient Care Coordination Technical committee are based upon the CDA and are used in that fashion. However, there are other exchanges that may not need the overhead of a clinical document, and which would be better expressed in a clinical message. The HL7 Care Record standard describes one such message that has already been used in several IHE PCC profiles, including the QED and CM profiles, and now the Query for Clinical Guidance (QCG) profile.

One example of the case where the content of a clinical document could be used in a message is in the use of clinical decision support for forecasting immunizations. The Query for Clinical Guidance profile describes a pair of messages that can be exchanged to integrate a healthcare application with a clinical decision support service. The content needed for an immunization forecasting service is already defined in the IHE PCC Immunization Content (IC) profile. This profile provides all the information needed for an immunization forecasting system, but does so as a clinical document. What is needed to support immunization forecasting as a service is a way to translate that document content into an HL7 Version 3 Care Record message.

This appendix describes how a CDA document can be transformed into a message conforming to the same guidelines as the CDA document.

The intent of the HL7 Version 3 standard is to provide semantic interoperability. An application that is aware of the HL7 Reference Information Model, and the datatypes and underlying vocabulary should readily be able to interpret the meaning of an activity regardless of the particular HL7 V3 standard used to describe it. In practice, this requires a great deal of HL7 specific knowledge regarding modelling and semantics.

A Clinical Document provides documentation of (see the documentationOf class in the CDA R-MIM) one or more service events (see ServiceEvent) performed by a healthcare service provider (see the performer connected to the ServiceEvent). The HL7 Version 3 Care Record message describes a service event that is the "provision of care" (see CareProvisionEvent in the Care Record DSTU) by a service provider (see performer attached to CareProvisionEvent). These two standards greatly overlap in their content.

The Author, DataEnter, and RecordTarget classes of the CareProvisionEvent are mapped to the Author, DataEnter, RecordTarget classes of the CDA (and visa-versa). Many other classes map one-for-one from one to the other, or nearly so.

Mapping the CDA Header to the Care Record Message

The following table shows the mapping from the classes found in the CDA Header found in this diagram to the Care Record classes found here. The tables use XPath expressions to identify the classes in each component.

CDA Care Record Notes
/ClinicalDocument/documentationOf/serviceEvent /CareProvisionEvent The CareProvisionEvent must have the classCode PCPR. A CDA document can describe service events other than those with a classCode of PCPR. Note: The Continutity of Care Document service event uses the classCode of PCPR in the CDA Service event
/ClinicalDocument/documentationOf/serviceEvent/performer /CareProvisionEvent/performer Technically this is already addressed in the mapping above, however, we wanted to be clear that the performer of the Care Provision Event would also appear as the performer of the serviceEvent in the CDA document
/ClinicalDocument/recordTarget /CareProvisionEvent/recordTarget The Care Record allows for the record target to be the patient or any other entity maintained by the organization (e.g., a piece of equiment or a service location). CDA only allows patients to be record targets. Please note that CDA also does not support subject on the ClinicalDocument act, but it may be used inside entries in the clinical document.
/ClinicalDocument/author/assignedAuthor /CareProvisionEvent/author/assignedPart CDA Authors are persons or devices. Care Record allows persons and organizations to be recorded as an author, but not devices. There are other fine details as to what is allowed in the content, but the essential information (id, code, addr, telecom, and person name) are all recorded using the same XML
/ClinicalDocument/dataEnterer/assignedEntity /CareProvisionEvent/dataEnterer/assignedPerson These two are nearly the same, the CDA uses a more tightly constrained form.
/ClinicalDocument/authenticator{ }/ClinicalDocument/legalAuthenticator Care Record supports recording of a verifier (classCode=VRF), authenticator (AUTHEN), or legal authenticator (LA) in one class. CDA uses different classes to distinguish between the authenticator and legal authenticator. Strictly speaking, a CareRecord verifier with classCode VRF must be represented in CDA using the /ClinicalDocument/participant with a classCode set to VRF, but the other two cases map directly into more specific CDA classes
/ClinicalDocument/informationRecipient /CareProvisionEvent/PrimaryInformationRecipient The Care Record class is more restricted. It only holds primary information recipients, whereas the CDA class can hold primary and secondary information recipients
/ClinicalDocument/inFulfillmentOf/order /CareRecord/inFulfillmentOf/careProvisionRequestOrPromise A CDA can fulfill a wider variety of orders than are allowed for in a CareProvisionRequest, and so allows for code and and priorityCode to be sent in addition to the order identifier.

Mapping the CDA Body to the Care Record Message

The CDA Body requires just a little bit of explanation. The body of a CDA document is composed of one or more sections, each of which may be composed of additional sections or entries as clinical statements. A section is a special kind of organizer used within documents. It need not be preserved in the Care Record Message unless the use case requires similar information to be carried together. However, many implementors will want to do so in order to preserve the structure of the CDA document. A simple expedient resolves this issue, as each section in the CDA document can be represented as an organizer in the Care Record message using the same classCode DOCSECT. The only determination that needs to be made is whether this section should be related through the pertinentInformation1, pertinentInformation2, pertinentInformation3, or component act relationships of the CareProvisionEvent. Since the CDA document does not distinguish between informative vs. pertinent relationships, we can rule out pertinentInformation1 and pertinentInformation2, requiring that we only need to decide whether to place the information in the component or pertinentInformation3 relationship. We can easily determine which information should appear in the care plan by inspection of section.code. If section.code uses the LOINC code 18776-5 TREATMENT PLAN then the information belongs in component, otherwise, it belongs in pertinentInformation3.

What happens to section.text

Since the purpose of this transformation is to put the machine readable information into a message so that clinical decision support algorithms can be applied, the text associated with the section will not be transformed. If you really wanted to maintain the text in the message, you could incorporate it into an act that was a component of the organizer, using a special code to identify the act containing the text.

Mapping CDA Entries to clinical statements in the Care Record

The following table shows the mapping from the classes found in the CDA clinical statement model to clinical statements in the Care Record DSTU. As you can see, almost all classes use identical names in the two models. The tables use XPath expressions to identify the classes in each component. Note that since the section.text is no longer present, references to text in acts, or originalText in codes that point to text in the section of the CDA can no longer be pointed to, and must be copied.

CDA Care Record Notes
observation observation
observation/referenceRange observation/referenceRange
any clinicalStatement/precondition any CareEntry'/conditions Care Record supports more than just precondition (PRCN) in the conditions relationship.
substanceAdministration substanceAdministration
substanceAdministration/consumable substanceAdministration/consumable
supply supply
supply/product supply/product
procedure procedure
encounter encounter
act act
organizer organizer
any clinicalStatement/entryRelationship any CareEntry/targetOf Care Record supports a wider model than CDA.

This mapping can be used in the other direction to take information from a Care Record message (e.g., as a result of a QED query) and turn it into a CDA document.