PCC TF-2/Introduction

From IHE Wiki
Jump to: navigation, search


This document, the IHE Patient Care Coordination Technical Framework (PCC TF), defines specific implementations of established standards. These are intended to achieve integration goals that promote appropriate exchange of medical information to coordinate the optimal patient care among care providers in different care settings. It is expanded annually, after a period of public review, and maintained regularly through the identification and correction of errata. The latest version of the document is always available via the Internet at http://www.ihe.net/Technical_Framework/index.cfm , where the technical framework volumes specific to the various healthcare domains addressed by IHE may be found.

The IHE Patient Care Coordination Technical Framework identifies a subset of the functional components of the healthcare enterprises and health information networks, called IHE actors, and specifies their interactions in terms of a set of coordinated, standards-based transactions.

The other domains within the IHE initiative also produce Technical Frameworks within their respective areas that together form the IHE Technical Framework. Currently, the following IHE Technical Framework(s) are available:

  • IHE IT Infrastructure Technical Framework
  • IHE Cardiology Technical Framework
  • IHE Laboratory Technical framework
  • IHE Radiology Technical Framework
  • IHE Patient Care Coordination Technical Framework

Where applicable, references are made to other technical frameworks. For the conventions on referencing other frameworks, see the preface of this volume.

Relationship to Standards

The IHE Technical Framework identifies functional components of a distributed healthcare environment (referred to as IHE actors), solely from the point of view of their interactions in the healthcare enterprise. At its current level of development, it defines a coordinated set of transactions based on standards (such as HL7, IETF, ASTM, DICOM, ISO, OASIS, etc.) in order to accomplish a particular use case. As the scope of the IHE initiative expands, transactions based on other standards may be included as required.

Each transaction may have as its payload one or more forms of content, as well as specific metadata describing that content within the transaction. The specification of the payload and metadata about it are the components of a Content Integration Profile. The payload is specified in a Content Module, and the impacts of any particular payload on a transaction are described within a content binding. The payloads of each transaction are also based on standards (such as HL7, IETF, ASTM, DICOM, ISO, OASIS, etc.), again, in order to meet the needs of a specific use case.

In some cases, IHE recommends selection of specific options supported by these standards. However, IHE does not introduce technical choices that contradict conformance to these standards. If errors in or extensions to existing standards are identified, IHE's policy is to report them to the appropriate standards bodies for resolution within their conformance and standards evolution strategy.

IHE is therefore an implementation framework, not a standard. Conformance claims for products must still be made in direct reference to specific standards. In addition, vendors who have implemented IHE integration capabilities in their products may publish IHE Integration Statements to communicate their products' capabilities. Vendors publishing IHE Integration Statements accept full responsibility for their content. By comparing the IHE Integration Statements from different products, a user familiar with the IHE concepts of actors and integration profiles can determine the level of integration between them. See PCC TF-1: Appendix C for the format of IHE Integration Statements.

Relationship to Product Implementations

The IHE actors and transactions described in the IHE Technical Framework are abstractions of the real-world healthcare information system environment. While some of the transactions are traditionally performed by specific product categories (e.g. HIS, Clinical Data Repository, Electronic Health record systems, Radiology Information Systems, Clinical Information Systems or Cardiology Information Systems), the IHE Technical Framework intentionally avoids associating functions or actors with such product categories. For each actor, the IHE Technical Framework defines only those functions associated with integrating information systems. The IHE definition of an actor should therefore not be taken as the complete definition of any product that might implement it, nor should the framework itself be taken to comprehensively describe the architecture of a healthcare information system.

The reason for defining actors and transactions is to provide a basis for defining the interactions among functional components of the healthcare information system environment. In situations where a single physical product implements multiple functions, only the interfaces between the product and external functions in the environment are considered to be significant by the IHE initiative. Therefore, the IHE initiative takes no position as to the relative merits of an integrated environment based on a single, all-encompassing information system versus one based on multiple systems that together achieve the same end.

Relation of this Volume to the Technical Framework

The IHE Technical Framework is based on actors that interact through transactions using some form of content.

Actors are information systems or components of information systems that produce, manage, or act on information associated with operational activities in the enterprise.

Transactions are interactions between actors that transfer the required information through standards-based messages.

The implementation of the transactions described in this PCC TF-2 support the specification of Integration Profiles defined in PCC TF-1. The role and implementation of these transactions require the understanding of the Integration profile they support.

There is often a very clear distinction between the transactions in a messaging framework used to package and transmit information, and the information content actually transmitted in those messages. This is especially true when the messaging framework begins to move towards mainstream computing infrastructures being adopted by the healthcare industry.

In these cases, the same transactions may be used to support a wide variety of use cases in healthcare, and so more and more the content and use of the message also needs to be profiled, sometimes separately from the transaction itself. Towards this end IHE has developed the concept of a Content Integration Profile.

Content Integration Profiles specify how the payload of a transaction fits into a specific use of that transaction. A content integration profile has three main parts. The first part describes the use case. The second part is binding to a specific IHE transaction, which describes how the content affects the transaction. The third part is a Content Module, which describes the payload of the transaction. A content module is specified so as to be independent of the transaction in which it appears.

Content Modules

The Patient Care Coordination Technical Framework organizes content modules categorically by the base standard. At present, the PCC Technical Framework uses only one base standard, CDA Release 2.0, but this is expected to change over time. Underneath each standard, the content modules are organized using a very coarse hierarchy inherent to the standard. So for CDA Release 2.0 the modules are organized by document, section, entry, and header elements.

Each content module can be viewed as the definition of a "class" in software design terms, and has associated with it a name. Like "class" definitions in software design, a content module is a "contract", and the PCC Technical Framework defines that contract in terms of constraints that must be obeyed by instances of that content module. Each content module has a name, also known as its template identifier. The template identifiers are used to identify the contract agreed to by the content module. The PCC Technical Committee is responsible for assigning the template identifiers to each content module.

Like classes, content modules may inherit features of other content modules of the same type (Document, Section or Entry) by defining the parent content module that they inherit from. They may not inherit features from a different type. Although information in the CDA Header is in a different location that information in a CDA Entry, these two content modules are considered to be of the same type, and so may inherit from each other when necessary.

The PCC Technical Framework uses the convention that a content module cannot have more than one parent (although it may have several ancestors). This is similar to the constraint in the Java™ programming language, where classes can derive from only one parent. This convention is not due to any specific technical limitation of the technical framework, but does make it easier for software developers to implement content modules.

Each content module has a list of data elements that are required (R), required if known (R2), and optional (O). The presentation of this information varies with the type of content module, and is described in more detail below. Additional data elements may be provided by the sender that are not defined by a specific content module, but the receiver is not required to interpret them.

Required data elements must always be sent. Data elements that are required may under exceptional circumstances have an unknown value (e.g., the name of an unconscious patient). In these cases the sending application is required to indicate the reason that the data is not available.

Data elements that are marked required if known (R2) must be sent when the sending application has that data available. The sending application must be able to demonstrate that it can send all required if known elements, unless it does not in fact gather that data. When the information is not available, the sending application may indicate the reason that the data is not available.

Data elements that are marked optional (O) may be sent at the choice of the sending application. Since a content module may include data elements not specified by the profile, some might ask why these are specified in a content module. The reason for specifying the optional data elements is to ensure that both sender and receiver use the appropriate semantic interpretation of these elements. Thus, an optional element need not be sent, but when it is sent, the content module defines the meaning of that data element, and a receiver can always be assured of what that data element represents when it is present. Senders should not send an optional data element with an unknown value. If the value is not known, simply do not send the data element.

Other data elements may be included in an instance of a content module over what is defined by the PCC Technical Framework. Receivers are not required to process these elements, and if they do not understand them, must ignore them. Thus, it is not an error to include more than is asked for, but it is an error to reject a content module because it contains more than is defined by the framework. This allows value to be added to the content modules delivered in this framework, through extensions to it that are not defined or profiled by IHE. It further allows content modules to be defined later by IHE that are refinements or improvements over previous content modules.

For example, there is a Referral Summary content module defined in this framework. In later years an ED Referral content module can be created that inherits the constraints of the Referral Summary content module, with a few more use case specific constraints added. Systems that do not understand the ED Referral content module but do understand the Referral Summary content module will be able to interoperate with systems that send instances of documents that conform to the ED Referral content module. This interoperability, albeit at a reduced level of functionality, is by virtue of the fact that ED Referrals are simply a refinement of the Referral Summary.

In order to retain this capability, there are a few rules about how the PCC Technical Committee creates constraints. Constraints that apply to any content module will always apply to any content modules that inherit from it. Thus, the "contracts" are always valid down the inheritance hierarchy. Secondly, data elements of a content module will rarely be deprecated. This will usually occur only in the cases where they have been deprecated by the base standard. While any specific content module has a limited scope and set of use cases, deprecating the data element prevents any future content module from taking advantage of what has already been defined when a particular data element has been deprecated simply because it was not necessary in the original use case.

Document Content Module Constraints

Each document content module will define the appropriate codes used to classify the document, and will also describe the specific data elements that are included. The code used to classify it is specified using an external vocabulary, typically LOINC in the case of CDA Release 2.0 documents. The set of data elements that make up the document are defined, including the whether these data elements must, should or may be included in the document. Each data element is typically a section within the document, but may also describe information that is contained elsewhere within of the document (e.g., in the header). Each data element is mapped into a content module via a template identifier, and the document content module will further indicate whether these are data elements are required, required if known or optional.

Thus, a document content module shall contain as constraints:

  • The template identifier of the parent content module when there is one.
  • The LOINC code or codes that shall be used to classify the document.
  • A possibly empty set of required, required if known, and optional section content modules, and their template identifiers.
  • A possibly empty set of required, required if known, and optional header content modules, and their template identifiers.
  • Other constraints as necessary.

The template identifier for the document will be provided in the narrative, as will the legal LOINC document type codes and if present, any parent template identifier.

The remaining constraints are presented in two tables. The first table identifies the relevant data elements as determined during the technical analysis, and maps these data elements to one or more standards. The second table actually provides the constraints, wherein each data element identified in the first table is repeated, along with whether it is required, required if known, or optional. Following this column is a reference to the specification for the content module that encodes that data element, and the template identifier assigned to it. The simple example below completes the content specification described above. A simplified example is shown below.

== 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

Draft.gif Sample Document Specification SampleDocumentOID

Sample Document has one required section, and one entry that is required if known

Data Element Name Opt Template ID
Sample Section
Comment on section
R SampleSectionOID
Sample Entry
Comment on entry
R2 SampleEntryOID


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 Sample Document Document
<ClinicalDocument xmlns='urn:hl7-org:v3'>
  <typeId extension="POCD_HD000040" root="2.16.840.1.113883.1.3"/>
  <templateId root='SampleDocumentOID'/>
  <id root=' ' extension=' '/>
  <code code=' ' displayName=' '
    codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/>
  <title>Sample Document</title>
  <effectiveTime value='20191015012005'/>
  <confidentialityCode code='N' displayName='Normal' 
    codeSystem='2.16.840.1.113883.5.25' codeSystemName='Confidentiality' />
  <languageCode code='en-US'/>     
        <templateId root='SampleSectionOID'/>
        <!-- Required Sample Section Section content -->
    </structuredBody></component> </ClinicalDocument>
<pattern name='Template_SampleDocumentOID'>
 <rule context='*[cda:templateId/@root="SampleDocumentOID"]'>
   <!-- Verify that the template id is used on the appropriate type of object -->
   <assert test='../cda:ClinicalDocument'>
     Error: The Sample Document can only be used on Clinical Documents.
   <!-- Verify the document type code -->
   <assert test='cda:code[@code = "{{{LOINC}}}"]'>
     Error: The document type code of a Sample Document must be {{{LOINC}}}
   <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 test='.//cda:templateId[@root = "SampleSectionOID"]'> 
     <!-- Verify that all required data elements are present -->
     Error: The Sample Document Document must contain a(n) Sample Section Section.
     See http://wiki.ihe.net/index.php?title=SampleDocumentOID 
   <assert test='.//cda:templateId[@root = "SampleEntryOID"]'> 
     <!-- Alert on any missing required if known elements -->
     Warning: The  Sample Document Document should contain a(n) Sample Entry Entry.
     See http://wiki.ihe.net/index.php?title=SampleDocumentOID 


Section Content Module Constraints

Section content modules will define the content of a section of a clinical document. Sections will usually contain narrative text, and so this definition will often describe the information present in the narrative, although sections may be wholly comprised of subsections.

Sections may contain various subsections, and these may be required, required if known or optional. Sections may also contain various entries, and again, these may be required, required if known, or optional. A section may not contain just entries; it must have at least some narrative text or subsections to be considered to be valid content.

Again, sections can inherit features from other section content modules. Once again, sections are classified using an external vocabulary (again typically this would be LOINC), and so the list of possible section codes is also specified. Sections that inherit from other sections will not specify a LOINC code unless it is to restrict the type of section to smaller set of LOINC codes specified by one of its ancestors.

Thus, a section content module will contain as constraints:

  • The template identifier of the parent content module when there is one.
  • The LOINC code or codes that shall be used to classify the section.
  • A possibly empty set of required, required if known, and optional section content modules, and their template identifiers for the subsections of this section.
  • A possibly empty set of required, required if known, and optional entry content modules, and their template identifiers.
  • Other constraints as necessary.

These constraints are presented in this document using a table for each section content module, as shown below.

Sample Section Content Module
== 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

Draft.gif Sample Section
Template ID SampleSectionOID
Parent Template foo (SampleParentOID)
General Description Desription of this section
LOINC Codes Opt Description
Entries Opt Description
OID R Sample Entry
Subsections Opt Description
OID R Sample Subsection

Parent Template

The parent of this template is foo.

Sample Sample Section
<templateId root='SampleParentOID'/> <templateId root='SampleSectionOID'/> <id root=' ' extension=' '/> <code code=' ' displayName=' ' codeSystem='2.16.840.1.113883.6.1' codeSystemName='LOINC'/> <text> Text as described above </text>
<entry> Required and optional entries as described above </entry>

<component> Required and optional subsections as described above </component>     </section> </component>


See Templates using the Sample Section

Entry and Header Content Modules Constraints

Entry and Header content modules are the lowest level of content for which content modules are defined. These content modules are associated with classes from the HL7 Reference Information Model (RIM). These "RIM" content modules will constrain a single RIM class. Entry content modules typically constrain an "Act" class or one of its subtypes, while header content modules will normally constrain "Participation", "Role" or "Entity" classes, but may also constrain an "Act" class.

Entry and Header content modules will describe the required, required if known, and optional XML elements and attributes that are present in the CDA Release 2.0 instance. Header and Entry content modules may also be built up using other Header and Entry content modules.

An entry or header content module may also specify constraints on the vocabularies used for codes found in the entry, or data types for the values found in the entry.

Thus, an entry or header content module will contain as constraints:

  • The template identifier of the parent content module when there is one.
  • A description of the XML elements and attributes used in the entry, along with explanations of their meaning.
  • An indication of those XML elements or attributes that are required, required if known, or optional.
  • Vocabulary domains to use when coding the entry.
  • Data types used to specify the value of the entry.
  • Other constraints as necessary.

An example is shown below:

==== Sample Entry ====

Some text describing the entry.

<observation classCode='OBS' moodCode='EVN'>
   <templateId root='foo'/>
<observation classCode='OBS' moodCode='EVN'>

Some details about the observation element

<templateId root='foo'/>

Some details about the template id element