PCC-7

From IHE Wiki
Jump to: navigation, search

Contents

Guideline Notification

This section corresponds to Transaction PCC-7 of the IHE Patient Care Coordination Technical Framework. Transaction PCC-7 is used by the Guideline Manager and Care Manager Actors.

Use Case Roles

Guideline Manager   Care Manager
Usecase.png
Guideline Notification
Actor
Guideline Manager
Role
Notifies the Care Manager of new and/or updated guidelines for care
Cooresponding HL7 Version 3 Application Roles
Care Provision Informer (REPC_AR004010UV)
Actor
Care Manager
Role
Recieves notification of new and/or updated guidelines for care
Cooresponding HL7 Version 3 Application Roles
Care Provision Tracker (REPC_AR004020UV)


Note: Implementors of a Guideline Manager Actor, or a Clinical Data Source Actor shall publish an HL7 Conformance Profile that indicates the vocabularies and code sets that they support for this transaction.


Referenced Standards

CareRecord HL7 Care Provision Care Record (DSTU)
HL7QI HL7 Version 3 Standard: Infrastructure Management – Query Infrastrucure
HL7WS HL7 Version 3 Standard: Transport Specification - Web Services Profile, Release
SOAP Simple Object Access Protocol Version 1.1 (SOAP 1.1)
SOAP12 Simple Object Access Protocol Version 1.2 (SOAP 1.2)


Interaction Diagrams

Pcc7id.gif

Guideline Notification

Trigger Events

When a new or updated guideline is released, the Guideline Manager uses this transaction to notify the Care Manager of the new and/or updated guideline. This cooresponds to the HL7 trigger events:

Message Semantics

This interaction cooresponds to the HL7 Interactions:

The schema for these interactions can be found at the links above, and include:

  • the transmission wrapper MCCI_MT000100UV01,
  • the control act wrapper MCAI_MT700201UV01, and
  • the message payload REPC_MT004000UV.

These components of the interaction are specified in the HL7 standards described above.

Transmission Wrapper

The transmission wrapper MCCI_MT000100UV01 provides information about the message transmission and routing. Transmission wrappers are further described in ITI TF-2: Appendix O. An example transmission wrapper is given below for this interaction. Items marked in dark gray are transmitted as specified in ITI TF-2: Appendix O. Items in bold black text are further constrained by this profile in this interaction.

<REPC_IN004110UV xmlns="urn:hl7-org:v3" ITSVersion="XML_1.0"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <id root=' ' extension=' '/>
 <creationTime value=' '/>
 <interactionId extension='REPC_IN004110UV|REPC_IN004913UV' root='2.16.840.1.113883.5'/>
 <processingCode code='D|P|T'/>
 <processingModeCode code='T'/>
 <acceptAckCode code='AL'/>
 <receiver typeCode="RCV">
   <device classCode="DEV" determinerCode="INSTANCE">
     <id/>
     <name/>
     <telecom value=' ' />
     <manufacturerModelName/>
     <softwareName/>
   </device>
 </receiver>
 <sender typeCode="SND">
   <device classCode="DEV" determinerCode="INSTANCE">
     <id/>
     <name/>
     <telecom value=' ' />
     <manufacturerModelName/>
     <softwareName/>
   </device>
 </sender>
 <controlActProcess classCode="CACT" moodCode="EVN">
  See Control Act Wrapper below
 </controlActProcess>
</REPC_IN004110UV>
<REPC_IN004110UV xmlns="urn:hl7-org:v3" ITSVersion="XML_1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

The HL7 Interaction being sent will control the name of the root element in the message. The namespace of this message shall be urn:hl7-org:v3, and the ITSVersion attribute shall be "XML_1.0".

To indicate that this interaction is notification of activation of a guideline, the element shall be named: REPC_IN004110UV To indicate that this interaction is notification of replacement of a guideline, the element shall be named: REPC_IN004913UV

 <rule context='/'>
   <assert test='/hl7:REPC_IN004110UV|/hl7:REPC_IN004913UV'>
     The root element of a PCC-7 transaction shall be REPC_IN004110UV or REPC_IN004913UV from the HL7 namespace (urn:hl7-org:v3).
   </assert>
 </rule>
<interactionId extension='REPC_IN004110UV|REPC_IN004913UV' root='2.16.840.1.113883.5'/>

The identifer for the interaction shall be sent using either the value REPC_IN004110UV or REPC_IN004913UV depending upon whether this interaction describes activation or replacement respectively. This value must be the same as the name of the interaction element being sent.

 <rule context='/hl7:REPC_IN004110UV|/hl7:REPC_IN004913UV'>
   <assert test='hl7:interactionId/@extension = local-name()'>
     The interaction of a PCC-7 transaction shall be REPC_IN004110UV or REPC_IN004913UV and shall coorespond to the interaction being used in the message.
   </assert>
 </rule>
<processingModeCode code='T'/>

The processingModeCode distinguishes the type of processing being performed. This element shall be present and have the value shown above to indicate that this message is for current processing.

 <rule context='/hl7:REPC_IN004110UV|/hl7:REPC_IN004913UV'>
   <assert test='hl7:processingModeCode/@code = "T"'>
     The processingModeCode shall use the code value "T" for this message.
   </assert>
 </rule>
<acceptAckCode code='AL'/>

The acceptAckCode indicates whether the sender wants to recieve an acknowledgement, and shall be sent as shown above.

 <rule context='/hl7:REPC_IN004110UV|/hl7:REPC_IN004913UV'>
   <assert test='hl7:acceptAckCode/@code = "AL"'>
     The acceptAckCode shall use the code "AL" to indicate that the reciever must always acknowledge the message. 
   </assert>
 </rule>
Control Act Wrapper

The control act wrapper MCAI_MT700201UV01 provides information about the business actors related to the transaction, including the author or performer of the act. Control act wrappers are further described in ITI TF-2: Appendix O.

An example control act wrapper is given below for this interaction. Items marked in dark gray are transmitted as specified in ITI TF-2: Appendix O. Items in bold black text are further constrained by this profile in this interaction.

<controlActProcess classCode="CACT" moodCode="EVN">
  <id root=' ' extension=' '/>
  <code code='REPC_TE004110UV|REPC_TE004913UV'/>
  <effectiveTime><low value=' '/><high value=' '/></effectiveTime>
  <languageCode code=' '/>
  <authorOrPerformer typeCode=' '></authorOrPerformer>
  <subject typeCode='SUBJ' contextConductionInd='false'>
  </subject>
</controlActProcess></font>
<controlActProcess classCode="CACT" moodCode="EVN">

The controlActProcess element is where information about the business act being performed is recorded. The moodCode is set to "EVN" by the sender to indicate notification of a guideline activation or change event.

 <rule context='//hl7:controlActProcess'>
   <assert test='@classCode="CACT"'>
     The controlActProcess of a PCC-7 transaction shall have classCode="CACT".
   </assert>
   <assert test='@moodCode="EVN"'>
     The controlActProcess of a PCC-7 transaction shall have moodCode="EVN".
   </assert>
 </rule>
<code code='REPC_TE004110UV|REPC_TE004913UV'/>

The trigger event which caused the act to be transmitted is recorded in the code element is recorded. The value of the code attribute shall be REPC_TE004110UV to record an activation event, or REPC_TE004913UV to record a replacement. The code attribute shall coorespond to the correct interaction.

 <rule context='//hl7:controlActProcess'>
   <assert test='hl7:code'>
     The code element shall be present in a PCC-7 transaction.
   </assert>
 </rule>
 <rule context='//hl7:controlActProcess/hl7:code'>
   <assert test='(@code="REPC_TE004110UV" or @code="REPC_TE004913UV) and substring(@code,8,8) = substring(local-name(/),8,8)"'>
     The trigger event in a PCC-7 transaction shall be REPC_TE004110UV or REPC_TE004913UV, and shall coorespond to the interaction.
   </assert>
 </rule>
<effectiveTime><low value=' '/><high value=' '/></effectiveTime>

The effectiveTime element shall be present. The low component shall be present and indicates the effective start date for the set of guidelines described in the subject element. The high component may be present, and if present, indicates the stop date for the guidelines. If not present, the guidelines are effective for an indefinate time period until explicitely changed or removed from the system.

 <rule context='//hl7:controlActProcess'>
   <assert test='hl7:effectiveTime'>
     The effectiveTime element shall be present in a PCC-7 transaction.
   </assert>
 </rule>
 <rule context='//hl7:controlActProcess/hl7:effectiveTime'>
   <assert test='hl7:low and hl7:low/@value'>
     A low element shall be present in the effectiveTime and the value attribute shall indicate the date upon which the guidelines become effective.
   </assert>
 </rule>


<subject typeCode='SUBJ' contextConductionInd='false'>

The subject element shall be present and shall be recorded as shown above. The subject element shall contain a <careProvisionEvent> element describing the guideline being activated.

Message Body
<careProvisionEvent classCode='PCPR' moodCode='EVN'>

An example <careProvisionEvent> element is shown below.

 <careProvisionEvent classCode='PCPR' moodCode='EVN'>
   <replacementOf typeCode='RPLC' contextControlCode='OP' contextConductionInd='false'>
     <careProvisionEvent classCode='PCPR' moodCode='EVN'>
       <id root=' ' extension=' '/>  
     </careProvisionEvent>
   </replacementOf>
   <component typeCode='COMP'>
     <carePlan classCode='PCPR' moodCode='INT'>
       <definition typeCode='INST' contextControlCode='OP' contextConductionInd='false'>
         <guideline classCode='PCPR' moodCode='DEF'>
           <id root=' ' extension=' '/>
           <title></title>
           <text></text>
           <statusCode code='active|obsolete'/>
           <effectiveTime>
             <low value=' '/>
             <high value=' '/>
           </effectiveTime>
           <!-- zero or more components containing acts of care to be monitored -->
           <component2 typeCode='COMP'>
             <!-- One of the following elements -->
             <observationDefinition classCode='OBS' moodCode='DEF'>
               <templateId root=' ' extension=' '/>
               <id root=' ' extension=' '/>
               <code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '/>
             </observationDefinition>
             <substanceAdministrationDefinition classCode='SBADM' moodCode='DEF'>
               <templateId root=' ' extension=' '/>
               <id root=' ' extension=' '/>
               <code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '/>
             </substanceAdministrationDefinition>
             <procedureDefinition classCode='PROC' moodCode='DEF'>
               <templateId root=' ' extension=' '/>
               <id root=' ' extension=' '/>
               <code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '/>
             </procedureDefinition>
             <encounterDefinition classCode='ENC' moodCode='DEF'>
               <templateId root=' ' extension=' '/>
               <id root=' ' extension=' '/>
               <code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '/>
             </encounterDefinition>
             <actDefinition classCode='ACT' moodCode='DEF'>
               <templateId root=' ' extension=' '/>
               <id root=' ' extension=' '/>
               <code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '/>
             </actDefinition>
           </component2>
           <!-- zero or more components containing "sub-guidelines" that make up this guideline -->
           <component3 typeCode='COMP'>
             <!-- The content model for "sub-guidelines" is as for a guideline, with the exception
             that it need not contain an id, title, text, statusCode, or effectiveTime element.  -->
           </component3>
         </guideline>
       </definition>
     </carePlan>
   </component>
 </careProvisionEvent>

The <careProvisionEvent> elements sent by a Guideline Notification transaction, or returned in a Request Guideline Data transaction represent activations or replacements of guidelines. As such these elements shall not contain any of the following participants:

  • The <careProvisionEvent> element SHALL NOT contain a <recordTarget>, as guidelines are not specific to a single patient record.
  • The <careProvisionEvent> element SHALL NOT contain a <subject> element, as guidelines are not specific to a device being maintained.

The <careProvisionEvent> may contain other participants not otherwise prohibited above.

Furthermore, these elements shall not contain any of the following relationships which would be only relevant to a single patient:

  • The <careProvisionEvent> element SHALL NOT contain a <pertinentInformation2> element.
  • The <careProvisionEvent> element SHALL NOT contain a <pertinentInformation3> element.

Furthermore, the <careProvisionEvent> element SHOULD NOT contain a <pertinentInformation1> element, as this information is not directly relevant to the guideline being retrieved.

The <careProvisionEvent> may contain other relationships not otherwise prohibited above, but the use of these elements is not described in this profile.

<rule context='hl7:careProvisionEvent[not(../hl7:replacementOf)]'>
  <assert test='count(hl7:component) = 1'>
    A careProvisionEvent shall have only one component containing the guideline.
  </assert>
  <assert test='not(hl7:recordTarget)'>
    The careProvisionEvent shall not contain a recordTarget element.
  </assert>
  <assert test='not(hl7:subject)'>
    The careProvisionEvent shall not contain a subject element.
  </assert>
  <assert test='not(hl7:pertinentInformation1)'>
    Warning: The careProvisionEvent should not contain a pertinentInformation1 element.
  </assert>
  <assert test='not(hl7:pertinentInformation2)'>
    The careProvisionEvent shall not contain a pertinentInformation2 element.
  </assert>
  <assert test='not(hl7:pertinentInformation3)'>
    The careProvisionEvent shall not contain a pertinentInformation3 element.
  </assert>
</rule>
<replacementOf typeCode='RPLC' contextControlCode='OP' contextConductionInd='false'>
<careProvisionEvent classCode='PCPR' moodCode='EVN'>
<id root=' ' extension=' '/>

When a Guideline Notification transaction sends a replacement notification, the <careProvisionEvent> that references the guideline being replaced shall be identified in the <replacementOf> element. The <replacementOf> element shall contain a single <careProvisionEvent> element that shall contain the an <id> element giving the unique identifier of the <careProvisionElement> that was replaced, and which should not contain any other elements.

<rule context='/hl7:REPC_IN004913UV'>
  <assert test='hl7:careProvisionEvent/hl7:replacementOf'>
    A replacement transaction shall contain a replacementOf element identifying 
    the careProvisionEvent being replaced.
  </assert>
</rule>
<rule context='hl7:replacementOf/hl7:careProvisionEvent'>
  <assert test='hl7:id'>
    The careProvisionEvent that is being replaced shall contain an id element.
  </assert>
  <assert test='not(hl7:*[local-name() != "id"])'>
    Warning: The careProvisionEvent that is being replaced should not contain anything other than an id element.
  </assert>
</rule>
<component typeCode='COMP'>
<carePlan classCode='PCPR' moodCode='INT'>

A <careProvisionEvent> shall have only one <component> element, containing only one <carePlan>, represented exactly as shown above.

<rule context='hl7:careProvisionEvent/hl7:component'>
  <assert test='count(hl7:carePlan) = 1'>
    The component of the careProvisionEven shall have one and only one carePlan element.
  </assert>
</rule>
<definition typeCode='INST' contextControlCode='OP' contextConductionInd='false'>
<guideline classCode='PCPR' moodCode='DEF'>

The <carePlan> element shall be empty of all participants and relations with the exception of the <definition> of the <carePlan>. The <definition> element contains one and only one <guideline>.

<rule context='hl7:carePlan'>
  <assert test='not(*[local-name() != "definition"])'>
    The carePlan element shall be empty of all participants and relations with the exception of the definition element.
  </assert>
  <assert test='count(hl7:definition) = 1'>
    The carePlan element shall have one and only one definition element.
  </assert>
</rule>
<rule context='hl7:definition'>
  <assert test='count(hl7:guideline) = 1'>
    The definition element shall have one and only one guideline element.
  </assert>
</rule>


<id root=' ' extension=' '/>

Top level guidelines shall have a unique identifier.

<rule context='hl7:definition/hl7:guideline'>
  <assert test='hl7:id'>
    A top level guideline shall have an id element.
  </assert>
</rule>
<title></title>

Top level guidelines shall have a title.

<rule context='hl7:definition/hl7:guideline'>
  <assert test='hl7:title'>
    A top level guideline shall have a title element.
  </assert>
</rule>
<text></text>

All guidelines may contain narrative text describing the guideline.

<statusCode code='active|obsolete'/>

Top level guidelines shall have a statusCode value that is either "active" or "obsolete".

<rule context='hl7:definition/hl7:guideline'>
  <assert test='hl7:statusCode'>
    A top level guideline shall have a statusCode element.
  </assert>
</rule>
<rule context='hl7:guideline/hl7:statusCode'>
  <assert test='@code="active" or @code="obsolete"'>
    The statusCode/@code attribute shall be either "active" or "obsolete".
  </assert>
<rule>
<effectiveTime><low value=' '/><high value=' '/></effectiveTime>

Top level guidelines shall contain an <effectiveTime> element that records the time period over which the guideline is effective. It shall contain a <low> element recording at the very least the date upon which the guideline was activated. An obsolete guideline shall contain a <high> element recording the last date upon which the guideline was effective. An active guideline may record the date upon which the guideline is expected to be revised.

<rule context='hl7:definition/hl7:guideline'>
  <assert test='hl7:effectiveTime'>
    A top level guideline shall have a effectiveTime element.
  </assert>
</rule>
<rule context='hl7:guideline/hl7:effectiveTime'>
  <assert test='hl7:low and hl7:low/@value'>
    The effectiveTime element shall contain a low element containing a value attribute indicating the time at which
    the guideline became effective.
  </assert>
<rule>
<rule context='hl7:guideline[hl7:statusCode/@code="obsolete"]/hl7:effectiveTime'>
  <assert test='hl7:high and hl7:high/@value'>
    The effectiveTime element in an obsolete guideline shall contain a high element containing a value attribute 
    indicating the time at which the guideline became ineffective.
  </assert>
<rule>
<component2 typeCode='COMP'>

All guidelines are composed (at some level) of one or more definitions for acts of care which are to be monitored by a Care Manager and reported upon by a Clinical Data Source during the provision of care. These may include various observations performed (e.g., Hemoglobin A1C tests), medications or immunizations given or prescribed, procedures performed (e.g., foot care), encounters performed (e.g., eye exam), or other acts of care not elsewhere described above.

<rule context='hl7:guideline'>
  <assert test='count(.//hl7:component2/hl7:*[@moodCode='DEF']) > 0'>
    At least one act of care must be defined at some level beneath a guideline element.
  </assert>
</rule>
<observationDefinition classCode='OBS' moodCode='DEF'>
<substanceAdministrationDefinition classCode='SBADM' moodCode='DEF'>
<procedureDefinition classCode='PROC' moodCode='DEF'>
<encounterDefinition classCode='ENC' moodCode='DEF'>
<actDefinition classCode='ACT' moodCode='DEF'>

One of the above definitions of an act of care shall be present in a <component2> element.

<templateId root=' ' extension=' '/>

Each act of care to be monitored shall indicate the identifier of the template used to report information on that act.

<rule context='hl7:component2/hl7:*[@moodCode='DEF']'>
  <assert test='hl7:templateId'>
    A templateId element must appear in the definition.
  </assert>
</rule>

A Guideline Manager actor shall use one the IHE Template identifiers specified for PCC-1 under careProvisionCode to request information profiled in an IHE template to be returned in a PCC-10 transaction. A Clincial Data Source implementing the Care Record option shall report activites to the Care Manager using the Care Record Query Response message using the template identified.

A Guideline Manager actor may include an ActDefinition in the <guideline> to identify the HL7 Version 2 Message Profile to describe the data to be monitored by a Care Manager. A Clinical Data Source implementing the HL7 Version 2 option shall report activities to the Care Manager using the HL7 Version 2 message identified by those ActDefinition elements.

<id root=' ' extension=' '/>
<code code=' ' displayName=' ' codeSystem=' ' codeSystemName=' '/>

Each act of care to be monitored shall contain an identifier for the definition of the act. It shall also contain a code element describing the specific act of care to be monitored. Other features of the specific act allowed by the standard may be provided by the Guideline Manager to further identify the specific acts of care that a Care Manager wants to recieve (e.g., routeCode, targetSiteCode). A Clinical Data Source may use these additional features to limit the number of items it reports, but is not required to review any feature other than the "code" element when making its reports. The Care Manager is expected to use its decision support capabilities to ignore reports that are not relevant to its decision making processes.

<rule context='hl7:component2/hl7:*[@moodCode='DEF']'>
  <assert test='hl7:id'>
    An id element must appear in the definition.
  </assert>
  <assert test='hl7:code'>
    An code element must appear in the definition.
  </assert>
</rule>

A Clinical Data Source implementing the Care Record Option shall report care activities that meet the definitions in the guideline to the Care Manager using the clinical statement templates specified in PCC-10.

A Clinical Data Source implementing the HL7 Version 2 Option shall report care activities that meet the definitions in the guideline to the Care Manager using the clinical statement templates specified in PCC-11.

<component3 typeCode='COMP'>

Guidelines may cover different phases (e.g., pre-operative, post-operative) or perspectives of care (e.g., patient education, diet, medications). A guideline can therefore be constructed of other guideline components, which follow the same pattern as for the top level guideline in the careProvisionEvent, except that these subcomponents need not have a unique identity, a title, a status, or effective time.

Expected Actions -- Guideline Manager

The Guideline Manager shall send notifications as specified in the REPC_IN004110UV and REPC_IN004913UV interactions. The message shall be sent using web services as specified in the ITI-TF: Appendix V.

The name of the messages in the WSDL shall be REPC_IN004110UV_Message for activitation notifications, and REPC_IN004913UV_Message for replacement notifications. The following WSDL snippet defines the types for these messages:

Guideline Notification Message Type Definition
<types>
   <xsd:schema elementFormDefault="qualified" 
      targetNamespace="urn:hl7-org:v3" xmlns:hl7="urn:hl7-org:v3">
    <!-- Include the message schema -->
    <xsd:import namespace="urn:hl7-org:v3"
      schemaLocation="REPC_IN004110UV.xsd"/>
    <xsd:element name="REPC_IN004110UV"/>
    <xsd:import namespace="urn:hl7-org:v3"
      schemaLocation="REPC_IN004913UV.xsd"/>
    <xsd:element name="REPC_IN004913UV"/>
  </xsd:schema>
</types>

The message types are declared to be of the appropriate type by the following WSDL snippet:

Guideline Notification Message WSDL Declarations
<message name='REPC_IN004110UV_Message'>
  <part element='hl7:REPC_IN004110UV' name="Body"/>
</message>
<message name='REPC_IN004913UV_Message'>
  <part element='hl7:REPC_IN004913UV' name="Body"/>
</message>
Expected Actions -- Care Manager

The Care Manager shall send an acknowledgement response as specified in the MCCI_IN000002UV01 interaction. The message shall be sent using web services as specified in the ITI-TF: Appendix V. An acknowledgement response is structured almost identically to a transmission wrapper, but includes an acknowledgement element in the response. The example structure below uses the same values as the transmission wrapper, with the exceptions noted in bold black text below.

<MCCI_IN000002UV01 xmlns="urn:hl7-org:v3" ITSVersion="XML_1.0"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <id root=' ' extension=' '/>
 <creationTime value=' '/>
 <interactionId extension='MCCI_IN000002UV01' root='2.16.840.1.113883.5'/>
 <processingCode code='D|P|T'/>
 <processingModeCode code='T'/>
 <acceptAckCode code='NE'/>
 <receiver typeCode="RCV">
   <device determinerCode="INSTANCE">
     <id/>
     <name/>
     <telecom value=' ' />
     <manufacturerModelName/>
     <softwareName/>
   </device>
 </receiver>
 <sender typeCode="SND">
   <device determinerCode="INSTANCE">
     <id/>
     <name/>
     <telecom value=' ' />
     <manufacturerModelName/>
     <softwareName/>
   </device>
 </sender>
 <acknowledgement>
  <typeCode code='AA|AE|AR'/>
  <acknowledgementDetail>
    <typeCode='E|I|W'/>
    <code code=' ' displayName=' ' codeSystem='2.16.840.1.113883.5.1100' codeSystemName='AcknowledgementDetailCode'/>
    <text></text>
    <location></location>
  </acknowledgementDetail>
 </acknowledgement>
</MCCI_IN000002UV01>


<MCCI_IN000002UV01 xmlns="urn:hl7-org:v3" ITSVersion="XML_1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

The name of the acknowledgement message element shall be MCCI_IN000002UV01 from the HL7 namespace.

<rule context='/'>
 <assert test='/hl7:MCCI_IN000002UV01'>
  The name of the acknowledgement message element shall be MCCI_IN000002UV01 from the HL7 namespace.
 </assert>
<rule>
<interactionId extension='MCCI_IN000002UV01' root='2.16.840.1.113883.5'/>

The interactionId element shall be recorded exactly as specified above.

<rule context='/hl7:MCCI_IN000002UV01'>
 <assert test='hl7:interactionId/@extension = "MCCI_IN000002UV01" and interactionId/@root = "2.16.840.1.113883.5"'>
  The extension attribute of the interaction Id element shall be MCCI_IN000002UV01.
 </assert>
<rule>
<processingModeCode code='T'/>

The code attribute of the processingModeCode element shall be T to indicate current processing.

<rule context='/hl7:MCCI_IN000002UV01'>
 <assert test='hl7:processingModeCode/@code = "T"'>
   The code attribute of the processingModeCode element shall be T to indicate current processing.
 </assert>
<rule>
<acceptAckCode code='NE'/>

The code attribute of the acceptAckCode element shall be NE to indicate that acknowledgments are never acknowledged by the reciever.

<rule context='/hl7:MCCI_IN000002UV01'>
 <assert test='hl7:acceptAckCode/@code = "NE"'>
   The code attribute of the acceptAckCode element shall be NE.
 </assert>
<rule>
<acknowledgement>

One and only one acknowledgement element shall be present.

<rule context='/hl7:MCCI_IN000002UV01'>
 <assert test='count(hl7:acknowledgement) = 1'>
   One and only one acknowledgement element shall be present.
 </assert>
<rule>
<typeCode code='AA|AE|AR'/>

The typeCode element shall be present. It shall use only the values AA, AE, or AR to describe whether the application accepted it (AA), found an error in it (AE), or rejected it (AR).

<rule context='/hl7:MCCI_IN000002UV01/hl7:acknowledgement'>
 <assert test='hl7:typeCode/@code = "AA" or hl7:typeCode/@code = "AE" or hl7:typeCode/@code = "AR"'>
   Only the values AA, AE and AR are acceptable.
 </assert>
<rule>
<acknowledgementDetail>

The acknowledgementDetail element shall be present when a message is rejected, or when an error is found. It may be present even when an application has accepted the message to convey information and warnings.

<rule context='/hl7:MCCI_IN000002UV01/hl7:acknowledgement'>
 <assert test='hl7:typeCode/@code = "AA" or hl7:acknowledgementDetail'>
   The acknowledgementDetail element is required when the acknowedgement reports an error (AE) or rejects a message (AR).
 </assert>
<rule>
<typeCode code='E|I|W'/>

The typeCode element shll be present in the acknowledgementDetail element. It shall have a value of E, I or W to indicate errors, information or warnings. A detail message sent with the acknowledgement type of AA shall not contain a value of E in the detailed type code.

<rule context='/hl7:MCCI_IN000002UV01/hl7:acknowledgement/hl7:acknowledgementDetail'>
 <assert test='hl7:typeCode/@code = "E" or hl7:typeCode/@code = "I" or hl7:typeCode/@code = "W"'>
   Only the values E, I or W are acceptable.
 </assert>
 <assert test='hl7:typeCode/@code != "E" or ../../hl7:typeCode != "AA"'>
   Acknowledgement details cannot indicate an error when the acknowledgment is of type AA.
 </assert>
<rule>
<code code=' ' displayName=' ' codeSystem='2.16.840.1.113883.5.1100' codeSystemName='AcknowledgementDetailCode'/>

The code element may be present in the acknowledgementDetail element to further describe the error.

<text></text>

The text element may be present in the acknowledgementDetail element to further describe the error in human readable form.

<location></location>

The location element may be present in the acknowledgementDetail element to indicate the location of the error. The location shall be reported as an XPath expression indicating the position of the error in the source message content.

The name of the acknowledgement response message shall be MCCI_IN000002UV01_Message in the WSDL. The following WSDL snippet defines the type for this message:

Accept Acknowledgement Message Type Definition
 <types>
   <xsd:schema elementFormDefault="qualified" 
     targetNamespace="urn:hl7-org:v3" xmlns:hl7="urn:hl7-org:v3">
     <xsd:import namespace="urn:hl7-org:v3"
       schemaLocation="MCCI_IN000002UV01.xsd"/>
     <xsd:element name="MCCI_IN000002UV01"/>
   </xsd:schema>
 </types>

The message type is declared to be of the appropriate type by the following WSDL snippet:

Accept Acknowledgement Message WSDL Declaration
 <message name='MCCI_IN000002UV01_Message'>
   <part element='hl7:MCCI_IN000002UV01' name="Body"/>
 </message>

WSDL Declarations

The following WSDL naming conventions SHALL apply for this transaction:

WSDL Definitions for PCC-7
WSDL Item Value
wsdl:definitions/@name GuidelineManger
Activate Care Provision REPC_IN004110UV_Message
Replace Care Provision REPC_IN004913UV_Message
Acknowlegement MCCI_IN000002UV01_Message
portType GuidelineManger_PortType
Activate Guideline Operation GuidelineManger_REPC_IN004110UV
Activate Guideline Operation GuidelineManger_REPC_IN004913UV
SOAP 1.1 binding GuidelineManger_Binding_Soap11
SOAP 1.1 port GuidelineManger_Port_Soap11
SOAP 1.2 binding GuidelineManger_Binding_Soap12
SOAP 1.2 port GuidelineManger_Port_Soap12

The following WSDL snippets specify the Port Type and Binding definitions, according to the requirements specified in ITI TF-2: Appendix V. A full WSDL example for the Guideline Manger Data Repository actor implementing the QED profile can be found at ftp://ftp.ihe.net/Patient_Care_Coordination/yr3_2008-2009/resources/cm.zip. For a general description of the WSDLs for Care Management see the Appendix of the same name in this volume.

Port Type
<portType name="GuidelineManger_PortType">
 <operation name="GuidelineManger_REPC_IN004110UV">
   <input message="tns:REPC_IN004110UV_Message"
     wsaw:Action="urn:hl7-org:v3:REPC_IN004110UV"/>
   <output message="tns:MCCI_IN000002UV01_Message" 
     wsaw:Action="urn:hl7-org:v3:MCCI_IN000002UV01"/>
 </operation>
 <operation name="GuidelineManger_REPC_IN004913UV">
   <input message="tns:REPC_IN004913UV_Message"
     wsaw:Action="urn:hl7-org:v3:REPC_IN004913UV"/>
   <output message="tns:MCCI_IN000002UV01_Message" 
     wsaw:Action="urn:hl7-org:v3:MCCI_IN000002UV01"/>
 </operation>
</portType>
Port Types for PCC-7
Bindings
<binding name="GuidelineManger_Binding_Soap12" 
   type="GuidelineManger_PortType">
 <wsoap12:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http"/>
 <operation name="GuidelineManger_REPC_IN004110UV">
   <wsoap12:operation soapAction="urn:hl7-org:v3:REPC_IN004110UV"/>
   <input>
     <wsoap12:body use="literal"/>
   </input>
   <output>
     <wsoap12:body use="literal"/>
   </output>
 </operation>
 <operation name="GuidelineManger_REPC_IN004913UV">
   <wsoap12:operation soapAction="urn:hl7-org:v3:REPC_IN004913UV"/>
   <input>
     <wsoap12:body use="literal"/>
   </input>
   <output>
     <wsoap12:body use="literal"/>
   </output>
 </operation>
</binding>
SOAP 1.2 Binding for PCC-7
<binding name="GuidelineManger_Binding_Soap11" 
   type="GuidelineManger_PortType">
 <wsoap11:binding style="document"
   transport="http://schemas.xmlsoap.org/soap/http"/>
 <operation name="GuidelineManger_REPC_IN004110UV">
   <wsoap11:operation soapAction="urn:hl7-org:v3:REPC_IN004110UV"/>
   <input>
     <wsoap11:body use="literal"/>
   </input>
   <output>
     <wsoap11:body use="literal"/>
   </output>
 </operation>
 <operation name="GuidelineManger_REPC_IN004913UV">
   <wsoap11:operation soapAction="urn:hl7-org:v3:REPC_IN004913UV"/>
   <input>
     <wsoap11:body use="literal"/>
   </input>
   <output>
     <wsoap11:body use="literal"/>
   </output>
 </operation>
</binding>
SOAP 1.1 Binding for PCC-7