<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:CDA="http://www.openhealthtools.org/mdht/schemas/cda/4" xmlns:Ecore="http://www.eclipse.org/uml2/schemas/Ecore/5" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
  <uml:Package xmi:id="_qQyD8jxVEd6JwqSGecoePg" name="hitsp">
    <packageImport xmi:id="_-xRsgDxVEd6JwqSGecoePg">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_ii81kjxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_8zZJ4GD8Ed6bFO5yxRh3Nw">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_qQyD8jxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_AKC0kJqZEd-B4IL9pc6oFQ">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_qQyD8jxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_S49LUIwJEd6B6JSUB00H7g">
      <importedPackage href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_XgMSwzxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_Zkp_kDITEd-saqiXO4OYhQ">
      <importedPackage href="../../org.openhealthtools.mdht.uml.term.models/model/hitsp-c80.uml#_KnCD4CFjEd-3s7f6mWX-3A"/>
    </packageImport>
    <packageImport xmi:id="_Ob-UwDAYEeCvC_A6hevElg">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_qQyD8jxVEd6JwqSGecoePg"/>
    </packageImport>
    <packagedElement xmi:type="uml:Class" xmi:id="_vB4EUGEIEd6bFO5yxRh3Nw" name="AllergyDrugSensitivity">
      <eAnnotations xmi:id="_Uy2V4HrWEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_Uy2V4XrWEd68l9lQ-TLEBQ" key="Allergies and Drug Sensitivities"/>
      </eAnnotations>
      <eAnnotations xmi:id="_Xmce4HrWEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_Xmce4XrWEd68l9lQ-TLEBQ" key="Allergy and Drug Sensitivity"/>
      </eAnnotations>
      <ownedComment xmi:id="_aq5R4HrXEd68l9lQ-TLEBQ" annotatedElement="_vB4EUGEIEd6bFO5yxRh3Nw">
        <body>&lt;p>&#xD;
    This module contains the allergy or intolerance conditions and the associated adverse reactions suffered&#xD;
    by the patient. See the HL7 Continuity of Care Document Section 3.8 for constraints applicable to this module. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_-2bLEFgKEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAdverseEventDate" constrainedElement="_SSDPkFgGEeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_QOXuUFgLEeCQ8PeHNHg5Pw">
          <body>This is a date that expresses when this particular&#xD;
allergy or intolerance was known to be active for the&#xD;
patient</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_KPuloFgLEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  not obs.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ET5gYFgLEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAdverseEventType" constrainedElement="_-2bLEFgKEeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_SptIUFgLEeCQ8PeHNHg5Pw">
          <body>Describes the type of product and intolerance suffered&#xD;
by the patient. The type of product shall be classified&#xD;
with respect to whether the adverse event occurs in&#xD;
relationship with a medication, food, or environmental&#xD;
or other product. The adverse event should also be&#xD;
classified more specifically as an allergy, non-allergy&#xD;
intolerance, or just adverse reaction if that level of&#xD;
detail is not known</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_OoUWgFgLEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  not obs.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_WLsBUFgLEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAdverseEventTypeVocab" constrainedElement="_ET5gYFgLEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_hL2jIFgLEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  not obs.code.oclIsUndefined() and obs.code.codeSystem = '2.16.840.1.113883.6.96' and (obs.code.code = '420134006' or obs.code.code ='418038007' or obs.code.code='419511003' or obs.code.code='418471000' or obs.code.code='419199007' or obs.code.code='416098002' or obs.code.code='414285001' or obs.code.code='59037007' or obs.code.code='235719002'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_SSDPkFgGEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAllergyProduct">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_SSDPklgGEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_UXaZkFgGEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAllergyProductTypeCode">
        <constrainedElement xmi:type="uml:Constraint" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_yFyY4FgEEeCQ8PeHNHg5Pw"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UXaZkVgGEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies par.typeCode = vocab::ParticipationType::CSM))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_V-aMkFgGEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityProductDetailParticipantRole">
        <constrainedElement xmi:type="uml:Constraint" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_vzvfwFfuEeCQ8PeHNHg5Pw"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_V-aMkVgGEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined()))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tJTl4FgGEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityProductDetailParticipantRoleClassCode">
        <constrainedElement xmi:type="uml:Constraint" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_yFyY4FgEEeCQ8PeHNHg5Pw"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tJTl4VgGEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode=vocab::RoleClassRoot::MANU))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_us4RcFgGEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityProductDetailPlayingEntity">
        <constrainedElement xmi:type="uml:Constraint" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_yFyY4FgEEeCQ8PeHNHg5Pw"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_us4RcVgGEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode =vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode=vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined())))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_wMseYFgGEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityProductDetailPlayingEntityClassCode">
        <constrainedElement xmi:type="uml:Constraint" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_yFyY4FgEEeCQ8PeHNHg5Pw"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_wMseYVgGEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode =vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode=vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined() and playe.classCode =vocab::EntityClassRoot::MMAT )))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ct19MFf_EeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityProductDetailName" constrainedElement="_vB4EUGEIEd6bFO5yxRh3Nw">
        <ownedComment xmi:id="_paCjAFf_EeCQ8PeHNHg5Pw">
          <body>This is the name or other description of the product or&#xD;
agent that causes the intolerance</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_6OjpEFf_EeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode=vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined() and playe.classCode = vocab::EntityClassRoot::MMAT and playe.name->size() = 1)))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_hEbi8Ff_EeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityProductCode" constrainedElement="_ct19MFf_EeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_uBWsYFf_EeCQ8PeHNHg5Pw">
          <body>This value is a code describing the product</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_-8KxQFgLEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode=vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined() and playe.classCode = vocab::EntityClassRoot::MMAT and playe.code->size() = 1)))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_r6TC0FgLEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAllergyProductFoodVocab" constrainedElement="_SSDPkFgGEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_4ilZAFgLEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode= vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined() and playe.classCode = vocab::EntityClassRoot::MMAT and playe.code->size() = 1 and (playe.code.codeSystem =&#xD;&#xA;'2.16.840.1.113883.4.9' or playe.code.codeSystem = '2.16.840.1.113883.3.26.1.5' or playe.code.codeSystem = '2.16.840.1.113883.6.88'))))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_td0rEFgLEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAllergyProductMedClassVocab" constrainedElement="_SSDPkFgGEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_l8Tk8FgMEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode= vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined() and playe.classCode = vocab::EntityClassRoot::MMAT and playe.code->size() = 1 and (playe.code.codeSystem =&#xD;&#xA;'2.16.840.1.113883.4.9' or playe.code.codeSystem = '2.16.840.1.113883.3.26.1.5' or playe.code.codeSystem = '2.16.840.1.113883.6.88'))))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_vuu9wFgLEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityAllergyProductSpecificMedVocab" constrainedElement="_SSDPkFgGEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_olAskFgMEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation |  &#xD;&#xA;obs.participant->exists( par : cda::Participant2 | not par.oclIsUndefined() implies (par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(prole : cda::ParticipantRole | not prole.oclIsUndefined() and &#xD;&#xA;prole.classCode= vocab::RoleClassRoot::MANU and prole.playingEntity->exists( playe : cda::PlayingEntity | not playe.oclIsUndefined() and playe.classCode = vocab::EntityClassRoot::MMAT and playe.code->size() = 1 and (playe.code.codeSystem =&#xD;&#xA;'2.16.840.1.113883.4.9' or playe.code.codeSystem = '2.16.840.1.113883.3.26.1.5' or playe.code.codeSystem = '2.16.840.1.113883.6.88'))))))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_BD2hYFgKEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityReactionText" constrainedElement="_hEbi8Ff_EeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_K5KHsFgMEeCQ8PeHNHg5Pw">
          <body>This is the reaction that may be caused by the product&#xD;
or agent</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_NISjoFgKEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->forAll(obs | obs.getObservations()->forAll( ro | (not ro.oclIsKindOf(ccd::ReactionObservation)) or  (ro.oclIsKindOf(ccd::ReactionObservation) and  not ro.text.oclIsUndefined()) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_DLF6sFgKEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityReactionCode" constrainedElement="_BD2hYFgKEeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_LxZXQFgMEeCQ8PeHNHg5Pw">
          <body>This value is a code describing the reaction</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_yoBpoFgMEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->forAll(obs | obs.getObservations()->forAll( ro | (not ro.oclIsKindOf(ccd::ReactionObservation)) or  (ro.oclIsKindOf(ccd::ReactionObservation) and  not ro.code.oclIsUndefined()) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_siiSEFgMEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivityReactionCodeVocab" constrainedElement="_DLF6sFgKEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_i3sH8FgNEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->forAll(obs | obs.getObservations()->forAll( ro | (not ro.oclIsKindOf(ccd::ReactionObservation)) or  (ro.oclIsKindOf(ccd::ReactionObservation) and  not ro.code.oclIsUndefined()  and ro.code.codeSystem = '2.16.840.1.113883.6.96' and (ro.code.code = '404684003' or ro.code.code = '243796009')  ) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Ep2-wFgKEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivitySeverityText" constrainedElement="_DLF6sFgKEeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_Miom8FgMEeCQ8PeHNHg5Pw">
          <body>This is a description of the level of severity of the&#xD;
allergy or intolerance</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_RgujgFgKEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->forAll(obs | obs.getObservations()->forAll( so | (not so.oclIsKindOf(ccd::SeverityObservation)) or  (so.oclIsKindOf(ccd::SeverityObservation) and  not so.text.oclIsUndefined()) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_HfqHMFgKEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivitySeverityCode" constrainedElement="_Ep2-wFgKEeCQ8PeHNHg5Pw">
        <ownedComment xmi:id="_NQ6CMFgMEeCQ8PeHNHg5Pw">
          <body>This value is a code describing the level severity of&#xD;
the allergy or intolerance</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_0cq3EFgMEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->forAll(obs | obs.getObservations()->forAll( so | (not so.oclIsKindOf(ccd::SeverityObservation)) or  (so.oclIsKindOf(ccd::SeverityObservation) and  not so.code.oclIsUndefined()) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tXWaMFgMEeCQ8PeHNHg5Pw" name="AllergyDrugSensitivitySeverityCodeVocab" constrainedElement="_HfqHMFgKEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_snywEFgNEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.getObservations()->forAll(obs | obs.getObservations()->forAll( so | (not so.oclIsKindOf(ccd::SeverityObservation)) or  (so.oclIsKindOf(ccd::SeverityObservation) and  not so.code.oclIsUndefined() and so.code.codeSystem = '2.16.840.1.113883.6.96' and (so.code.code = '255604002' or so.code.code = '371923003' or so.code.code = '6736007' or so.code.code = '371924009' or so.code.code = '24484000' or so.code.code = '399166001')&#xA;) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tgFpkSWbEeGCz74CaMtvdQ" name="AllergyDrugSensitivityTemplateId" constrainedElement="_vB4EUGEIEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tgFpkiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.6')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_hsBnwHrWEd68l9lQ-TLEBQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_pOtQsHrDEd68l9lQ-TLEBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_IjIO0DxbEd6JwqSGecoePg" name="Medication">
      <ownedRule xmi:id="_frFhUOxaEd-JOaR14t7EwQ" name="HITSPMedicationFirstEffectiveTimeDatatype" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_nSbtMOxaEd-JOaR14t7EwQ">
          <language>OCL</language>
          <body>self.effectiveTime->exists (ef : datatypes::SXCM_TS | not ef.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_QG0qUEwiEeCN6rMvTBre1A" name="HITSPMedicationDoseUnits">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_nfwfoEwiEeCN6rMvTBre1A">
          <language>OCL</language>
          <body>self.doseQuantity->exists(dq : datatypes::IVL_PQ | dq.unit='2.16.840.1.113883.3.88.12.80.29')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Khe4cE5REeC-IOl-lQ-2xA" name="HITSPMedicationDeliveryMethodDescription">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_OejK8E5REeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>not self.code.originalText.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_WCCmAE5bEeC-IOl-lQ-2xA" name="HITSPMedicationHasMedicationInformation" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gV_iEE5bEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>self.consumable.manufacturedProduct->exists(mp : cda::ManufacturedProduct | mp.oclIsKindOf(hitsp::MedicationInformation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_8zg4gE6QEeC7C4Qxze6ysQ" name="HITSPMedicationHasStatusOfMedication" constrainedElement="_WCCmAE5bEeC-IOl-lQ-2xA">
        <ownedComment xmi:id="_IRSG4E6SEeC7C4Qxze6ysQ">
          <body>If the medication is Active, Discharged, Chronic,&#xD;
Acute, etc</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Muxl4E6SEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getObservations()->exists(po : cda::Observation |  po.oclIsKindOf(ccd::MedicationStatusObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_jMwZYE6TEeC7C4Qxze6ysQ" name="HITSPMedicationHasIndication" constrainedElement="_8zg4gE6QEeC7C4Qxze6ysQ">
        <ownedComment xmi:id="_8pVhcE6TEeC7C4Qxze6ysQ">
          <body>The medical condition or problem&#xD;
intended to be addressed by the ordered product. For&#xD;
example: for chest pain, for pain, for high blood&#xD;
pressure</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_o1rwwE6TEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getObservations()->exists(po : cda::Observation | po.oclIsKindOf(ccd::ProblemObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_wST6YE6TEeC7C4Qxze6ysQ" name="HITSPMedicationHasIndicationNarrativeText" constrainedElement="_jMwZYE6TEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_1SBVoE6TEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getObservations()->exists(po : cda::Observation | po.oclIsKindOf(ccd::ProblemObservation) and not po.text.reference.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_3tCmkE6TEeC7C4Qxze6ysQ" name="HITSPMedicationHasIndicationVocab" constrainedElement="_jMwZYE6TEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_G9TroE6UEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getObservations()->exists(po : cda::Observation | po.oclIsKindOf(ccd::ProblemObservation) and po.code.codeSystem = '2.16.840.1.113883.6.96')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_xDmX8E6UEeC7C4Qxze6ysQ" name="HITSPMedicationHasPatientInstructions" constrainedElement="_3tCmkE6TEeC7C4Qxze6ysQ">
        <ownedComment xmi:id="_zjPDIE6UEeC7C4Qxze6ysQ">
          <body>&lt;p>&#xD;
Instructions to the patient that are not traditionally part&#xD;
of the Sig. For example, &quot;keep in the refrigerator.&quot;&#xD;
More extensive patient education materials can also&#xD;
be included&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
External patient educational materials can be referenced with an appropriate URL entry in the text/ reference/value.&#xD;
&lt;/p></body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_G-uygE6VEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getActs()->exists(po : cda::Act | po.oclIsKindOf(ihe::PatientMedicalInstructions))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_XYIX8E6XEeC7C4Qxze6ysQ" name="HITSPMedicationHasMedicationVehicle" constrainedElement="_xDmX8E6UEeC7C4Qxze6ysQ">
        <ownedComment xmi:id="_Xl_YUE6YEeC7C4Qxze6ysQ">
          <body>Non-active ingredient(s), or&#xD;
substances not of therapeutic interest, in which the&#xD;
active ingredients are dispersed. Most often applied to&#xD;
liquid products where the major fluid component is&#xD;
considered the vehicle. For example: Normal Saline is&#xD;
the vehicle in &quot;Ampicillin 150mg in 50ml NS&quot;;&#xD;
Aquaphor is the vehicle in &quot;10% LCD in Aquaphor&quot;</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_PSAv8E6YEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant.participantRole->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_S3awYE6YEeC7C4Qxze6ysQ" name="HITSPMedicationMedicationVehicleType" constrainedElement="_XYIX8E6XEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UXO9UE6YEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->size() > 0) implies self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CSM))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_YpO-AE6YEeC7C4Qxze6ysQ" name="HITSPMedicationMedicationVehicleClass" constrainedElement="_S3awYE6YEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_dLMGQE6YEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant.participantRole->size() > 0) implies self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::MANU)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_scyoEE6YEeC7C4Qxze6ysQ" name="HITSPMedicationMedicationVehicleCode" constrainedElement="_YpO-AE6YEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ubQf4E6YEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant.participantRole->size() > 0) implies self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::MANU and pr.code.code = '412307009' and pr.code.codeSystem = '2.16.840.1.113883.6.96')))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_zk7vcE6YEeC7C4Qxze6ysQ" name="HITSPMedicationMedicationVehicleName" constrainedElement="_scyoEE6YEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_6FWvgE6YEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant.participantRole->size() > 0) implies self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::MANU and pr.code.code = '412307009' and pr.code.codeSystem = '2.16.840.1.113883.6.96' and pr.playingEntity.name->size() > 0)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="__E7A0E6YEeC7C4Qxze6ysQ" name="HITSPMedicationMedicationVehicleCodedName" constrainedElement="_zk7vcE6YEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_A8FWwE6ZEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant.participantRole->size() > 0) implies self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->exists(par : cda::Participant2 | par.typeCode =vocab::ParticipationType::CSM and par.participantRole->exists(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::MANU and pr.code.code = '412307009' and pr.code.codeSystem = '2.16.840.1.113883.6.96' and pr.playingEntity.code->size() > 0)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ELLI8E6ZEeC7C4Qxze6ysQ" name="HITSPMedicationMedicationVehicleCodedNameVocab" constrainedElement="__E7A0E6YEeC7C4Qxze6ysQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_v5rJME6ZEeC7C4Qxze6ysQ">
          <language>OCL</language>
          <body>self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant.participantRole->size() > 0) implies self.getSubstanceAdministrations()->exists(sa : cda::SubstanceAdministration | sa.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CSM and par.participantRole->exists(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::MANU and pr.code.code = '412307009' and pr.code.codeSystem = '2.16.840.1.113883.6.96' and pr.playingEntity.code->size() > 0 and pr.playingEntity.code.codeSystem = '2.16.840.1.113883.6.96')))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tgiVgCWbEeGCz74CaMtvdQ" name="HITSPMedicationTemplateId" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tgiVgSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.8')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thILYCWbEeGCz74CaMtvdQ" name="HITSPMedicationEffectiveTime" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thILYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime->isEmpty() or self.effectiveTime->exists(element | element.isNullFlavorUndefined())) implies (not self.effectiveTime->isEmpty() and self.effectiveTime->forAll(element | element.oclIsTypeOf(datatypes::IVL_TS)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thILYiWbEeGCz74CaMtvdQ" name="HITSPMedicationRouteCode" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thILYyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.routeCode.oclIsUndefined() or self.routeCode.isNullFlavorUndefined()) implies (not self.routeCode.oclIsUndefined() and self.routeCode.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.routeCode.oclAsType(datatypes::CE) in (&#xD;&#xA;not value.codeSystem.oclIsUndefined() or not value.codeSystemName.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thR8YCWbEeGCz74CaMtvdQ" name="HITSPMedicationDoseQuantity" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thR8YSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.doseQuantity.oclIsUndefined() or self.doseQuantity.isNullFlavorUndefined()) implies (not self.doseQuantity.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thR8YiWbEeGCz74CaMtvdQ" name="HITSPMedicationAdministrationUnitCode" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thR8YyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.administrationUnitCode.oclIsUndefined() or self.administrationUnitCode.isNullFlavorUndefined()) implies (not self.administrationUnitCode.oclIsUndefined() and self.administrationUnitCode.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.administrationUnitCode.oclAsType(datatypes::CE) in (&#xD;&#xA;not value.codeSystem.oclIsUndefined() or not value.codeSystemName.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thR8ZCWbEeGCz74CaMtvdQ" name="HITSPMedicationMaxDoseQuantity" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thR8ZSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.maxDoseQuantity.oclIsUndefined() or self.maxDoseQuantity.isNullFlavorUndefined()) implies (not self.maxDoseQuantity.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thbGUCWbEeGCz74CaMtvdQ" name="HITSPMedicationApproachSiteCode" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thbGUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.approachSiteCode->isEmpty() or self.approachSiteCode->exists(element | element.isNullFlavorUndefined())) implies (self.approachSiteCode->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = element.oclAsType(datatypes::CD) in &#xD;&#xA;not value.codeSystem.oclIsUndefined() or not value.codeSystemName.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thbGUiWbEeGCz74CaMtvdQ" name="HITSPMedicationCode" constrainedElement="_IjIO0DxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thbGUyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_w0bkkHrGEd68l9lQ-TLEBQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_sFGZUHGfEd6bf47ZOcft4w"/>
      </generalization>
      <ownedOperation xmi:id="_tnFpcCWbEeGCz74CaMtvdQ" name="getMedicationType" isQuery="true" bodyCondition="_tnFpcyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tnFpcyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tnFpcCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnFpdCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(hitsp::MedicationType))->asSequence()->first().oclAsType(hitsp::MedicationType)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tnFpcSWbEeGCz74CaMtvdQ" type="_NC6JAE51EeC-IOl-lQ-2xA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tnFpciWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tniVYCWbEeGCz74CaMtvdQ" name="getMedicationOrderInformations" isQuery="true" bodyCondition="_tniVYyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tniVYyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tniVYCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tniVZCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSupplies()->select(supply : cda::Supply | not supply.oclIsUndefined() and supply.oclIsKindOf(hitsp::MedicationOrderInformation)).oclAsType(hitsp::MedicationOrderInformation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tniVYSWbEeGCz74CaMtvdQ" type="_vMJZwE8mEeCYjrG3z1gQrQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tniVYiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tniVZSWbEeGCz74CaMtvdQ" name="getHITSPReactionObservation" isQuery="true" bodyCondition="_tniVaCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tniVaCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tniVZSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tniVaSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ccd::ReactionObservation))->asSequence()->first().oclAsType(ccd::ReactionObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tniVZiWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#__XC4cHrREd68l9lQ-TLEBQ"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tniVZyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_GgvgUDxbEd6JwqSGecoePg" name="Condition">
      <ownedComment xmi:id="_K0__gJbNEeCE85pxhQCV8w">
        <body>A condition is a clinical statement that a clinician is wants to track. It has important patient management use cases (e.g., health records often present the problem list as a way of summarizing a patient's medical history).</body>
      </ownedComment>
      <ownedRule xmi:id="_TVZQ0CmAEeCXiupwzMk--A" name="ConditionHasTreatingProvider" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_qUUqsCmAEeCXiupwzMk--A">
          <language>OCL</language>
          <body>not self.performer->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_QbPM0CmAEeCXiupwzMk--A" name="ConditionHasProviderId" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_wAMoYCmAEeCXiupwzMk--A">
          <language>OCL</language>
          <body>self.performer->exists(p : cda::Performer2 | p.assignedEntity.id->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_PANoACl6EeCXiupwzMk--A" name="ConditionHasProviderTreatmentTime" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UERXwCl6EeCXiupwzMk--A">
          <language>OCL</language>
          <body>self.performer->exists(p : cda::Performer2 | p.time.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thbGVCWbEeGCz74CaMtvdQ" name="ConditionTemplateId" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thbGVSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.7')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjqiACWbEeGCz74CaMtvdQ" name="ConditionConditionEntry" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjqiASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::ProblemEntry) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_H4qVgDxbEd6JwqSGecoePg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_wSnPAGaQEd6Hk_bPOfEjYA"/>
      </generalization>
      <ownedOperation xmi:id="_wzkWAGdLEd6Hk_bPOfEjYA" name="createConditionEntry">
        <ownedParameter xmi:id="_zxKvkGdLEd6Hk_bPOfEjYA" name="return" type="_c6bN4BvgEd-yI6xBTkJSNw" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="_tjqiAiWbEeGCz74CaMtvdQ" name="getConditionEntries" isQuery="true" bodyCondition="_tjqiBSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tjqiBSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tjqiAiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjqiBiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry)).oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tjqiAyWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_3ZiEwGdIEd6Hk_bPOfEjYA"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tjqiBCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_wDMM0GEHEd6bFO5yxRh3Nw" name="PatientSummary">
      <ownedComment xmi:id="_1cbBYO30Ed-70KBGpEgX1Q">
        <body>This Component describes the document content that summarizes a consumer's medical status for the purpose of health information exchange. While an EHR or PHR system can contain much more information, this Component only deals with the summary information to be exchanged between such systems as established as requirements described in AHIC Use Cases.</body>
      </ownedComment>
      <ownedRule xmi:id="_mYOrQEyXEd-GNbUQBie2ig" name="PatientSummaryHealthcareProvider" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_uUy5MEyXEd-GNbUQBie2ig">
          <language>OCL</language>
          <body>self.documentationOf.serviceEvent.performer->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thk3UCWbEeGCz74CaMtvdQ" name="PatientSummaryTemplateId" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thk3USWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.32.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tk_-yCWbEeGCz74CaMtvdQ" name="PatientSummaryAdvanceDirectivesSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tk_-ySWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AdvanceDirectivesSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlJvxSWbEeGCz74CaMtvdQ" name="PatientSummaryAllergiesReactionsSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlJvxiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AllergiesReactionsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlTgwCWbEeGCz74CaMtvdQ" name="PatientSummaryProblemListSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlTgwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ProblemListSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlTgxyWbEeGCz74CaMtvdQ" name="PatientSummaryEncountersSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlTgyCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::EncountersSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlcqtSWbEeGCz74CaMtvdQ" name="PatientSummaryImmunizationsSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlcqtiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ImmunizationsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlcqvCWbEeGCz74CaMtvdQ" name="PatientSummaryPayersSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlcqvSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PayersSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlcqwyWbEeGCz74CaMtvdQ" name="PatientSummaryMedicationsSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlcqxCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::MedicationsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlmbuSWbEeGCz74CaMtvdQ" name="PatientSummarySurgeriesSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlmbuiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::SurgeriesSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmMRnCWbEeGCz74CaMtvdQ" name="PatientSummaryPlanOfCareSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmMRnSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PlanOfCareSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmMRoyWbEeGCz74CaMtvdQ" name="PatientSummaryPregnancyHistorySection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmMRpCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::PregnancyHistorySection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmfzkCWbEeGCz74CaMtvdQ" name="PatientSummaryVitalSignsSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmfzkSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::VitalSignsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmfzlyWbEeGCz74CaMtvdQ" name="PatientSummaryDiagnosticResultsSection" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmfzmCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::DiagnosticResultsSection))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_0EOJQKRmEd6t_4WfM070fA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_wDMM0GEHEd6bFO5yxRh3Nw"/>
      </generalization>
      <generalization xmi:id="_na8Y0EmfEd-v4PAJSUtbvQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_Ze7UsGESEd69D7zx7EkLMA"/>
      </generalization>
      <ownedOperation xmi:id="_C1Qp0GG6Ed6bFO5yxRh3Nw" name="createProblemListSection">
        <ownedParameter xmi:id="_vMia4GdYEd6Hk_bPOfEjYA" name="Parameter1" type="_cPtREMfaEd6VjLXh4DcWSg" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="_FdooAHopEd6WAZ28-5wkSg" name="createMedicationsSection">
        <ownedParameter xmi:id="_H3ai0HopEd6WAZ28-5wkSg" name="Parameter1" type="_WI3zsMfwEd6VjLXh4DcWSg" direction="return"/>
      </ownedOperation>
      <ownedOperation xmi:id="_tlJvwCWbEeGCz74CaMtvdQ" name="getHITSPAdvanceDirectivesSection" isQuery="true" bodyCondition="_tlJvwyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlJvwyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlJvwCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlJvxCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AdvanceDirectivesSection))->asSequence()->first().oclAsType(hitsp::AdvanceDirectivesSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlJvwSWbEeGCz74CaMtvdQ" type="_uIr7cMfzEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlJvwiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlJvxyWbEeGCz74CaMtvdQ" name="getAllergiesReactionsSection" isQuery="true" bodyCondition="_tlJvyiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlJvyiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlJvxyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlJvyyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AllergiesReactionsSection))->asSequence()->first().oclAsType(hitsp::AllergiesReactionsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlJvyCWbEeGCz74CaMtvdQ" type="_VGnj8MfZEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlJvySWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlTgwiWbEeGCz74CaMtvdQ" name="getProblemListSection" isQuery="true" bodyCondition="_tlTgxSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlTgxSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlTgwiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlTgxiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ProblemListSection))->asSequence()->first().oclAsType(hitsp::ProblemListSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlTgwyWbEeGCz74CaMtvdQ" type="_cPtREMfaEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlTgxCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlcqsCWbEeGCz74CaMtvdQ" name="getHITSPEncountersSection" isQuery="true" bodyCondition="_tlcqsyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlcqsyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlcqsCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlcqtCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::EncountersSection))->asSequence()->first().oclAsType(hitsp::EncountersSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlcqsSWbEeGCz74CaMtvdQ" type="_F4b6wMijEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlcqsiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlcqtyWbEeGCz74CaMtvdQ" name="getHITSPImmunizationsSection" isQuery="true" bodyCondition="_tlcquiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlcquiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlcqtyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlcquyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ImmunizationsSection))->asSequence()->first().oclAsType(hitsp::ImmunizationsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlcquCWbEeGCz74CaMtvdQ" type="_gHDXQMf0Ed6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlcquSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlcqviWbEeGCz74CaMtvdQ" name="getHITSPPayersSection" isQuery="true" bodyCondition="_tlcqwSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlcqwSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlcqviWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlcqwiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PayersSection))->asSequence()->first().oclAsType(hitsp::PayersSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlcqvyWbEeGCz74CaMtvdQ" type="_DH404MfWEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlcqwCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlmbsCWbEeGCz74CaMtvdQ" name="getHITSPMedicationsSection" isQuery="true" bodyCondition="_tlmbsyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlmbsyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlmbsCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlmbtCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::MedicationsSection))->asSequence()->first().oclAsType(hitsp::MedicationsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlmbsSWbEeGCz74CaMtvdQ" type="_WI3zsMfwEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlmbsiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tlmbuyWbEeGCz74CaMtvdQ" name="getSurgeriesSection" isQuery="true" bodyCondition="_tlmbviWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tlmbviWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tlmbuyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlmbvyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::SurgeriesSection))->asSequence()->first().oclAsType(hitsp::SurgeriesSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tlmbvCWbEeGCz74CaMtvdQ" type="_OCM5cMfuEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tlmbvSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tmMRniWbEeGCz74CaMtvdQ" name="getHITSPPlanOfCareSection" isQuery="true" bodyCondition="_tmMRoSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmMRoSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmMRniWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmMRoiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PlanOfCareSection))->asSequence()->first().oclAsType(hitsp::PlanOfCareSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmMRnyWbEeGCz74CaMtvdQ" type="_SydBgMigEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmMRoCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tmWCkCWbEeGCz74CaMtvdQ" name="getPregnancyHistorySection" isQuery="true" bodyCondition="_tmWCkyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmWCkyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmWCkCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmWClCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::PregnancyHistorySection))->asSequence()->first().oclAsType(ihe::PregnancyHistorySection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmWCkSWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_oidBAO0SEd-dJvThfIiQuA"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmWCkiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tmfzkiWbEeGCz74CaMtvdQ" name="getHITSPVitalSignsSection" isQuery="true" bodyCondition="_tmfzlSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmfzlSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmfzkiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmfzliWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::VitalSignsSection))->asSequence()->first().oclAsType(hitsp::VitalSignsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmfzkyWbEeGCz74CaMtvdQ" type="_L9yGgK7HEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmfzlCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tmfzmSWbEeGCz74CaMtvdQ" name="getDiagnosticResultsSection" isQuery="true" bodyCondition="_tmfznCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmfznCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmfzmSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmfznSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::DiagnosticResultsSection))->asSequence()->first().oclAsType(hitsp::DiagnosticResultsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmfzmiWbEeGCz74CaMtvdQ" type="_P3GVkMieEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmfzmyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_L9yGgK7HEd6_ioDelDcPPg" name="VitalSignsSection">
      <ownedComment xmi:id="_EGGjEMf2Ed6VjLXh4DcWSg" annotatedElement="_L9yGgK7HEd6_ioDelDcPPg">
        <body>&lt;p>&#xD;
    The Vital Signs Section contains information documenting the patient vital signs. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_hrcTgK7MEd6_ioDelDcPPg" name="HITSPVitalSignsSectionVitalSignEntry" constrainedElement="_L9yGgK7HEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_hrc6kK7MEd6_ioDelDcPPg">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | entry.organizer.oclIsKindOf(ihe::VitalSignsOrganizer) and entry.organizer.component.observation->exists(obs : cda::Observation | obs.oclIsKindOf(hitsp::VitalSign)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_thuoUCWbEeGCz74CaMtvdQ" name="HITSPVitalSignsSectionTemplateId" constrainedElement="_L9yGgK7HEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_thuoUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.119')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_VeaIMK7HEd6_ioDelDcPPg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_5k1R8K4FEd6_ioDelDcPPg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_dobt4K7IEd6_ioDelDcPPg" name="VitalSign">
      <ownedComment xmi:id="_5DsX8DSeEeC4N-P6mHDwgg">
        <body>&lt;p>&#xD;
These entries are used to record current and relevant historical vital signs for the patient. Vital Signs are a subset of &lt;b>&lt;i>Results Section&lt;/i>&lt;/b>, but are reported in this section to follow clinical conventions.&#xD;
&lt;/p>&#xD;
&#xD;
&lt;p>&#xD;
The differentiation between Vital Signs and Results varies by clinical context. Common examples of vital signs include temperature, height, weight, blood pressure, etc. However, some clinical contexts may alter these common vitals, for example in neonatology &quot;height&quot; may be replaced by &quot;crown-to-rump&quot; measurement.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_th3yQCWbEeGCz74CaMtvdQ" name="VitalSignTemplateId" constrainedElement="_dobt4K7IEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_th3yQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.14')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_th3yQyWbEeGCz74CaMtvdQ" name="ResultObservationCode" constrainedElement="_dobt4K7IEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_th3yRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.1' and (value.code = '8310-5' or value.code = '8462-4' or value.code = '8480-6' or value.code = '8287-5' or value.code = '8867-4' or value.code = '8302-2' or value.code = '8306-3' or value.code = '2710-2' or value.code = '9279-1' or value.code = '3141-9')))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_JFpYoDSfEeC4N-P6mHDwgg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_LriUcK4NEd6_ioDelDcPPg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_DH404MfWEd6VjLXh4DcWSg" name="PayersSection">
      <ownedComment xmi:id="_KrHD0MfYEd6VjLXh4DcWSg" annotatedElement="_DH404MfWEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Payers Section contains data on the patient's payers, whether a 'third party' insurance, self-pay,&#xD;
    other payer or guarantor, or some combination. At a minimum, the patient's pertinent current payment sources should be&#xD;
    listed. If no payment sources are supplied, the reason shall be supplied as free text in the narrative block (e.g., Not&#xD;
    Insured, Payer Unknown, Medicare Pending, et cetera). &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiBjQCWbEeGCz74CaMtvdQ" name="HITSPPayersSectionTemplateId" constrainedElement="_DH404MfWEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiBjQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.101')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqgw6CWbEeGCz74CaMtvdQ" name="HITSPPayersSectionInsuranceProvider" constrainedElement="_DH404MfWEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw6SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::InsuranceProvider))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_1sbqcMfXEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_ynU6sMfXEd6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_tqgw6iWbEeGCz74CaMtvdQ" name="getInsuranceProviders" isQuery="true" bodyCondition="_tqgw7SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqgw7SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqgw6iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw7iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::InsuranceProvider)).oclAsType(hitsp::InsuranceProvider)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqgw6yWbEeGCz74CaMtvdQ" type="_ZNaLkDuHEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqgw7CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_VGnj8MfZEd6VjLXh4DcWSg" name="AllergiesReactionsSection">
      <ownedComment xmi:id="_J4LgIMfaEd6VjLXh4DcWSg" annotatedElement="_VGnj8MfZEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Allergies and Other Adverse Reactions Section contains data on the substance intolerances and the&#xD;
    associated adverse reactions suffered by the patient. At a minimum, currently active and any relevant historical&#xD;
    allergies and adverse reactions shall be listed. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiBjQyWbEeGCz74CaMtvdQ" name="HITSPAllergiesReactionsSectionTemplateId" constrainedElement="_VGnj8MfZEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiBjRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.102')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tniVcSWbEeGCz74CaMtvdQ" name="HITSPAllergiesReactionsSectionAllergyDrugSensitivity" constrainedElement="_VGnj8MfZEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tniVciWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::AllergyDrugSensitivity))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Xue-EMfZEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_O7-UAHrUEd68l9lQ-TLEBQ"/>
      </generalization>
      <ownedOperation xmi:id="_tniVcyWbEeGCz74CaMtvdQ" name="getAllergyDrugSensitivities" isQuery="true" bodyCondition="_tniVdiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tniVdiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tniVcyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tniVdyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::AllergyDrugSensitivity)).oclAsType(hitsp::AllergyDrugSensitivity)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tniVdCWbEeGCz74CaMtvdQ" type="_vB4EUGEIEd6bFO5yxRh3Nw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tniVdSWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_cPtREMfaEd6VjLXh4DcWSg" name="ProblemListSection">
      <ownedComment xmi:id="_mOi4wMfaEd6VjLXh4DcWSg" annotatedElement="_cPtREMfaEd6VjLXh4DcWSg">
        <body>This section lists and describes all relevant clinical problems at the time the document is generated. At a minimum, all pertinent current and historical problems should be listed.</body>
      </ownedComment>
      <ownedRule xmi:id="_tiBjRiWbEeGCz74CaMtvdQ" name="ProblemListSectionTemplateId" constrainedElement="_cPtREMfaEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiBjRyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.103')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjXAAyWbEeGCz74CaMtvdQ" name="ProblemListSectionCondition" constrainedElement="_cPtREMfaEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjXABCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_epE8MMfaEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_vz5koGGsEd6bFO5yxRh3Nw"/>
      </generalization>
      <ownedOperation xmi:id="_tjXABSWbEeGCz74CaMtvdQ" name="getConditions" isQuery="true" bodyCondition="_tjXACCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tjXACCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tjXABSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjXACSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition)).oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tjXABiWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tjXAByWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_lSC-0MfbEd6VjLXh4DcWSg" name="HistoryOfPastIllnessSection">
      <ownedComment xmi:id="_rhcgUMfbEd6VjLXh4DcWSg" annotatedElement="_lSC-0MfbEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The History of Past Illness Section contains data about problems the patient suffered in the&#xD;
    past. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiKtMCWbEeGCz74CaMtvdQ" name="HITSPHistoryOfPastIllnessSectionTemplateId" constrainedElement="_lSC-0MfbEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiKtMSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.104')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpBjMyWbEeGCz74CaMtvdQ" name="HITSPHistoryOfPastIllnessSectionCondition" constrainedElement="_lSC-0MfbEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpBjNCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_nhstQMfbEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_QD0tkMfbEd6VjLXh4DcWSg"/>
      </generalization>
      <generalization xmi:id="_YvqZwMg0EeCHk-lvWGDTdA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_KSTmQGjOEd-tUpkWYQgJlQ"/>
      </generalization>
      <ownedOperation xmi:id="_tpLUICWbEeGCz74CaMtvdQ" name="getCondition" isQuery="true" bodyCondition="_tpLUIyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tpLUIyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tpLUICWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpLUJCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition))->asSequence()->first().oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tpLUISWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpLUIiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_9ugRMMfcEd6VjLXh4DcWSg" name="ChiefComplaintSection">
      <ownedComment xmi:id="_EHhBsMfdEd6VjLXh4DcWSg" annotatedElement="_9ugRMMfcEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Chief Complaint Section contains information about the patient's chief complaint. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiKtMyWbEeGCz74CaMtvdQ" name="HITSPChiefComplaintSectionTemplateId" constrainedElement="_9ugRMMfcEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiKtNCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.105')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpBjLCWbEeGCz74CaMtvdQ" name="HITSPChiefComplaintSectionCondition" constrainedElement="_9ugRMMfcEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpBjLSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="__87QkMfcEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_iVB-oMfcEd6VjLXh4DcWSg"/>
      </generalization>
      <generalization xmi:id="_bHAmQMghEeCHk-lvWGDTdA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_o-ulkGj1Ed-tUpkWYQgJlQ"/>
      </generalization>
      <ownedOperation xmi:id="_tpBjLiWbEeGCz74CaMtvdQ" name="getCondition" isQuery="true" bodyCondition="_tpBjMSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tpBjMSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tpBjLiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpBjMiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition))->asSequence()->first().oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tpBjLyWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpBjMCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_bX2UoMfdEd6VjLXh4DcWSg" name="ReasonForReferralSection">
      <ownedComment xmi:id="_vA-QUMfdEd6VjLXh4DcWSg" annotatedElement="_bX2UoMfdEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Reason for Referral Section contains information about the reason that the patient is being&#xD;
    referred. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiKtNyWbEeGCz74CaMtvdQ" name="CodedReasonForReferralSectionTemplateId" constrainedElement="_bX2UoMfdEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiKtOCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.106')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqgw7yWbEeGCz74CaMtvdQ" name="HITSPReasonForReferralSectionCondition" constrainedElement="_bX2UoMfdEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw8CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqgw9iWbEeGCz74CaMtvdQ" name="HITSPReasonForReferralSectionResult" constrainedElement="_bX2UoMfdEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw9yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(hitsp::Result))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_K4z18M9LEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_b0JLIM9KEeCBIMy4xFlonQ"/>
      </generalization>
      <generalization xmi:id="_QREUEM9LEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_A0ab0GhHEd-ilOLYnIx0jA"/>
      </generalization>
      <ownedOperation xmi:id="_tqgw8SWbEeGCz74CaMtvdQ" name="getConditions" isQuery="true" bodyCondition="_tqgw9CWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqgw9CWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqgw8SWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw9SWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition)).oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqgw8iWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqgw8yWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tqqh4CWbEeGCz74CaMtvdQ" name="getResults" isQuery="true" bodyCondition="_tqqh4yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqqh4yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqqh4CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqqh5CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(hitsp::Result)).oclAsType(hitsp::Result)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqqh4SWbEeGCz74CaMtvdQ" type="_oTzNMDIWEd-SYNRf-pkwtw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqqh4iWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_w51SkMfhEd6VjLXh4DcWSg" name="HistoryOfPresentIllness">
      <ownedComment xmi:id="__Y1SwMfhEd6VjLXh4DcWSg" annotatedElement="_w51SkMfhEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The History of Present Illness Section contains information about the sequence of events preceding the&#xD;
    patient's current complaints. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiUeMCWbEeGCz74CaMtvdQ" name="HITSPHistoryOfPresentIllnessTemplateId" constrainedElement="_w51SkMfhEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiUeMSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.107')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_yYzyAMfhEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_jWj60MfhEd6VjLXh4DcWSg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_OCM5cMfuEd6VjLXh4DcWSg" name="SurgeriesSection">
      <ownedRule xmi:id="_tiUeMyWbEeGCz74CaMtvdQ" name="HITSPSurgeriesSectionTemplateId" constrainedElement="_OCM5cMfuEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiUeNCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.108')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tniVaiWbEeGCz74CaMtvdQ" name="HITSPSurgeriesSectionProcedureActivity" constrainedElement="_OCM5cMfuEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tniVayWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.procedure.oclIsUndefined() and entry.procedure.oclIsKindOf(hitsp::Procedure))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_UcKsMMfuEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_9fsJYMftEd6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_tniVbCWbEeGCz74CaMtvdQ" name="getProcedureActivities" isQuery="true" bodyCondition="_tniVbyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tniVbyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tniVbCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tniVcCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getProcedures()->select(procedure : cda::Procedure | not procedure.oclIsUndefined() and procedure.oclIsKindOf(hitsp::Procedure)).oclAsType(hitsp::Procedure)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tniVbSWbEeGCz74CaMtvdQ" type="_KYNNMKDlEd-dVeaMP0XXQw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tniVbiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_m5tlkMfuEd6VjLXh4DcWSg" name="FunctionalStatusSection">
      <ownedComment xmi:id="_z7tcQMfuEd6VjLXh4DcWSg" annotatedElement="_m5tlkMfuEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Functional Status Section provides information about the capability of the patient to perform acts&#xD;
    of daily living. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiUeNiWbEeGCz74CaMtvdQ" name="HITSPFunctionalStatusSectionTemplateId" constrainedElement="_m5tlkMfuEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiUeNyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.109')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_pp-twMfuEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GoctIKPdEd6t_4WfM070fA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_eg314MfvEd6VjLXh4DcWSg" name="HospitalAdmissionDiagnosisSection">
      <ownedComment xmi:id="_rzF54MfvEd6VjLXh4DcWSg" annotatedElement="_eg314MfvEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Hospital Admitting Diagnosis Section contains information about the primary reason for admission to&#xD;
    a hospital facility. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiePMCWbEeGCz74CaMtvdQ" name="HITSPHospitalAdmissionDiagnosisSectionTemplateId" constrainedElement="_eg314MfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiePMSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.110')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpLUJSWbEeGCz74CaMtvdQ" name="HITSPHospitalAdmissionDiagnosisSectionCondition" constrainedElement="_eg314MfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpLUJiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_m79y4MfvEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_MvxLwMfvEd6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_tpLUJyWbEeGCz74CaMtvdQ" name="getCondition" isQuery="true" bodyCondition="_tpLUKiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tpLUKiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tpLUJyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpLUKyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition))->asSequence()->first().oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tpLUKCWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpLUKSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_CEsTsMfwEd6VjLXh4DcWSg" name="DischargeDiagnosisSection">
      <ownedComment xmi:id="_NRLaQMfwEd6VjLXh4DcWSg" annotatedElement="_CEsTsMfwEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Discharge Diagnosis Section contains information about the conditions identified during the hospital&#xD;
    stay that either need to be monitored after discharge from the hospital and/or where resolved during the hospital&#xD;
    course. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tiePMyWbEeGCz74CaMtvdQ" name="HITSPDischargeDiagnosisSectionTemplateId" constrainedElement="_CEsTsMfwEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiePNCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.111')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_touoPCWbEeGCz74CaMtvdQ" name="HITSPDischargeDiagnosisSectionCondition" constrainedElement="_CEsTsMfwEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_touoPSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_HTsIIMfwEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_3ov5QMfvEd6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_touoPiWbEeGCz74CaMtvdQ" name="getCondition" isQuery="true" bodyCondition="_touoQSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_touoQSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_touoPiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_touoQiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition))->asSequence()->first().oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_touoPyWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_touoQCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_WI3zsMfwEd6VjLXh4DcWSg" name="MedicationsSection">
      <ownedComment xmi:id="_iNKE8MfwEd6VjLXh4DcWSg" annotatedElement="_WI3zsMfwEd6VjLXh4DcWSg">
        <body>The Medications Section contains information about the relevant medications for the patient. At a minimum, the currently active medications should be listed.</body>
      </ownedComment>
      <ownedRule xmi:id="_tiePNiWbEeGCz74CaMtvdQ" name="HITSPMedicationsSectionTemplateId" constrainedElement="_WI3zsMfwEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tiePNyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.112')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmMRlSWbEeGCz74CaMtvdQ" name="HITSPMedicationsSectionMedication" constrainedElement="_WI3zsMfwEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmMRliWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Medication))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Y4PkAMfwEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_8YbB4HomEd6WAZ28-5wkSg"/>
      </generalization>
      <ownedOperation xmi:id="_tmMRlyWbEeGCz74CaMtvdQ" name="getHITSPMedications" isQuery="true" bodyCondition="_tmMRmiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmMRmiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmMRlyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmMRmyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Medication)).oclAsType(hitsp::Medication)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmMRmCWbEeGCz74CaMtvdQ" type="_IjIO0DxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmMRmSWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_CoUvwMfxEd6VjLXh4DcWSg" name="AdmissionMedicationHistorySection">
      <ownedComment xmi:id="_NKd40MfxEd6VjLXh4DcWSg" annotatedElement="_CoUvwMfxEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Admission Medication Section contains information about the relevant medications of a patient prior&#xD;
    to admission to a facility. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tinZICWbEeGCz74CaMtvdQ" name="HITSPAdmissionMedicationHistorySectionTemplateId" constrainedElement="_CoUvwMfxEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tinZISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.113')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_IMdGsMfxEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_3Se44MfwEd6VjLXh4DcWSg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_OORpwMfyEd6VjLXh4DcWSg" name="HospitalDischargeMedicationsSection">
      <ownedComment xmi:id="_cuSWkMfyEd6VjLXh4DcWSg" annotatedElement="_OORpwMfyEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Hospital Discharge Medications Section contains information about the relevant medications of the&#xD;
    medications ordered for the patient for use after discharge from the hospital. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tinZIyWbEeGCz74CaMtvdQ" name="HITSPHospitalDischargeMedicationsSectionTemplateId" constrainedElement="_OORpwMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tinZJCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.114')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_touoQyWbEeGCz74CaMtvdQ" name="HITSPHospitalDischargeMedicationsSectionMedication" constrainedElement="_OORpwMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_touoRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Medication))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_TYzN4MfyEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_JAhygMfyEd6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_to4ZMCWbEeGCz74CaMtvdQ" name="getHITSPMedication" isQuery="true" bodyCondition="_to4ZMyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_to4ZMyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_to4ZMCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_to4ZNCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Medication))->asSequence()->first().oclAsType(hitsp::Medication)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_to4ZMSWbEeGCz74CaMtvdQ" type="_IjIO0DxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_to4ZMiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_u9U54MfyEd6VjLXh4DcWSg" name="MedicationsAdministeredSection">
      <ownedComment xmi:id="_HScqoMfzEd6VjLXh4DcWSg" annotatedElement="_u9U54MfyEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Medications Administered Section contains information about the relevant medications administered to&#xD;
    a patient during the course of an encounter. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tinZJiWbEeGCz74CaMtvdQ" name="HITSPMedicationsAdministeredSectionTemplateId" constrainedElement="_u9U54MfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tinZJyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.115')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_-RLecMfyEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_quPDQMfyEd6VjLXh4DcWSg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_uIr7cMfzEd6VjLXh4DcWSg" name="AdvanceDirectivesSection">
      <ownedComment xmi:id="_5aSLgMfzEd6VjLXh4DcWSg" annotatedElement="_uIr7cMfzEd6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Advance Directives Section contains information that defines the patient's expectations and requests&#xD;
    for care along with the locations of the documents. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tixKICWbEeGCz74CaMtvdQ" name="HITSPAdvanceDirectivesSectionTemplateId" constrainedElement="_uIr7cMfzEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tixKISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.116')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqXm8CWbEeGCz74CaMtvdQ" name="HITSPAdvanceDirectivesSectionAdvanceDirective" constrainedElement="_uIr7cMfzEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqXm8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(hitsp::AdvanceDirective))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_wzIIcMfzEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_bSHeEMfzEd6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_tqXm8iWbEeGCz74CaMtvdQ" name="getAdvanceDirectives" isQuery="true" bodyCondition="_tqXm9SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqXm9SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqXm8iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqXm9iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(hitsp::AdvanceDirective)).oclAsType(hitsp::AdvanceDirective)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqXm8yWbEeGCz74CaMtvdQ" type="_ZsqjcMzoEeCvbrjDQpuvkw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqXm9CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_gHDXQMf0Ed6VjLXh4DcWSg" name="ImmunizationsSection">
      <ownedComment xmi:id="_m9ylkMf0Ed6VjLXh4DcWSg" annotatedElement="_gHDXQMf0Ed6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Immunizations Section contains information describing the immunizations administered to the&#xD;
    patient. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tixKIyWbEeGCz74CaMtvdQ" name="HITSPImmunizationsSectionTemplateId" constrainedElement="_gHDXQMf0Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tixKJCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.117')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tk_-wSWbEeGCz74CaMtvdQ" name="HITSPImmunizationsSectionImmunization" constrainedElement="_gHDXQMf0Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tk_-wiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Immunization))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_iBayMMf0Ed6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_ZEjk4Mf0Ed6VjLXh4DcWSg"/>
      </generalization>
      <ownedOperation xmi:id="_tk_-wyWbEeGCz74CaMtvdQ" name="getHITSPImmunizations" isQuery="true" bodyCondition="_tk_-xiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tk_-xiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tk_-wyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tk_-xyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Immunization)).oclAsType(hitsp::Immunization)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tk_-xCWbEeGCz74CaMtvdQ" type="_qkWXUDuJEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tk_-xSWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_XaZ6wMf1Ed6VjLXh4DcWSg" name="PhysicalExamSection">
      <ownedComment xmi:id="_pXr_sMf1Ed6VjLXh4DcWSg" annotatedElement="_XaZ6wMf1Ed6VjLXh4DcWSg">
        <body>&lt;p>&#xD;
    The Physical Examination Section contains information describing the physical findings. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tixKJiWbEeGCz74CaMtvdQ" name="HITSPPhysicalExamSectionTemplateId" constrainedElement="_XaZ6wMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tixKJyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.118')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqqh5SWbEeGCz74CaMtvdQ" name="HITSPPhysicalExamSectionCondition" constrainedElement="_XaZ6wMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqqh5iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(hitsp::Condition))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Yda28Mf1Ed6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_LGf5IMf1Ed6VjLXh4DcWSg"/>
      </generalization>
      <generalization xmi:id="_FDo84M9MEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_yN6rgGhREd-ilOLYnIx0jA"/>
      </generalization>
      <ownedOperation xmi:id="_tqqh5yWbEeGCz74CaMtvdQ" name="getConditions" isQuery="true" bodyCondition="_tqqh6iWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqqh6iWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqqh5yWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqqh6yWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(hitsp::Condition)).oclAsType(hitsp::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqqh6CWbEeGCz74CaMtvdQ" type="_GgvgUDxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqqh6SWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_GuZI0MiXEd6mWrHPmrIIfQ" name="ReviewOfSystemsSection">
      <ownedComment xmi:id="_BxC2UMidEd6mWrHPmrIIfQ" annotatedElement="_GuZI0MiXEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Review of Systems Section contains information describing patient responses to questions about the&#xD;
    function of various body systems. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_ti67ICWbEeGCz74CaMtvdQ" name="HITSPReviewOfSystemsSectionTemplateId" constrainedElement="_GuZI0MiXEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ti67ISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.120')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_H4oHUMiXEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_6fSusMiWEd6mWrHPmrIIfQ"/>
      </generalization>
      <generalization xmi:id="_c9mScMg3EeCHk-lvWGDTdA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_fo5sMGjVEd-tUpkWYQgJlQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_J1pl8MidEd6mWrHPmrIIfQ" name="HospitalCourseSection">
      <ownedComment xmi:id="_qTMPUMidEd6mWrHPmrIIfQ" annotatedElement="_J1pl8MidEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Hospital Course Section contains information about of the sequence of events from admission to&#xD;
    discharge in a hospital facility. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_ti67IyWbEeGCz74CaMtvdQ" name="HITSPHospitalCourseSectionTemplateId" constrainedElement="_J1pl8MidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ti67JCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.121')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_LTgrEMidEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_DO0b4MidEd6mWrHPmrIIfQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_P3GVkMieEd6mWrHPmrIIfQ" name="DiagnosticResultsSection">
      <ownedComment xmi:id="_YY5XgMieEd6mWrHPmrIIfQ" annotatedElement="_P3GVkMieEd6mWrHPmrIIfQ">
        <body>&lt;p>The Results section contains the results of observations generated by laboratories, imaging procedures, and other procedures. The scope includes hematology, chemistry, serology, virology, toxicology, microbiology, plain x-ray, ultrasound, CT, MRI, angiography, echocardiography, nuclear medicine, pathology, and procedure observations. The section often includes notable results such as abnormal values or relevant trends, and could contain all results for the period of time being documented.&lt;/p>&#xD;
&#xD;
&lt;p>Laboratory results are typically generated by laboratories providing analytic services in areas such as chemistry, hematology, serology, histology, cytology, anatomic pathology, microbiology, and/or virology. These observations are based on analysis of specimens obtained from the patient and submitted to the laboratory.&lt;/p>&#xD;
&#xD;
&lt;p>Imaging results are typically generated by a clinician reviewing the output of an imaging procedure, such as where a cardiologist reports the left ventricular ejection fraction based on the review of a cardiac echocardiogram.&lt;/p>&#xD;
&#xD;
&lt;p>Procedure results are typically generated by a clinician to provide more granular information about component observations made during  a procedure, such as where a gastroenterologist reports the size of a polyp observed during a colonoscopy.&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_4lp9sNJ2EeC41uAULQUMQw" name="DiagnosticResultsSectionHasResult" constrainedElement="_P3GVkMieEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ALSSUNJ3EeC41uAULQUMQw">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | entry.observation.oclIsKindOf(hitsp::Result)) or self.entry->exists(entry : cda::Entry | entry.organizer.oclIsKindOf(ccd::ResultOrganizer) and entry.organizer.component.observation->exists(obs : cda::Observation | obs.oclIsKindOf(hitsp::Result)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ti67JiWbEeGCz74CaMtvdQ" name="DiagnosticResultsSectionTemplateId" constrainedElement="_P3GVkMieEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ti67JyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.122')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmyugCWbEeGCz74CaMtvdQ" name="DiagnosticResultsSectionDiagnosticProcedure" constrainedElement="_P3GVkMieEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmyugSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.procedure.oclIsUndefined() and entry.procedure.oclIsKindOf(hitsp::Procedure))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tm74cCWbEeGCz74CaMtvdQ" name="DiagnosticResultsSectionResult" constrainedElement="_P3GVkMieEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tm74cSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(hitsp::Result))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqXm9yWbEeGCz74CaMtvdQ" name="DiagnosticResultsSectionResultOrganizer" constrainedElement="_P3GVkMieEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqXm-CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.organizer.oclIsUndefined() and entry.organizer.oclIsKindOf(hitsp::ResultOrganizer))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_RNzp0MieEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_-OeSAMidEd6mWrHPmrIIfQ"/>
      </generalization>
      <ownedOperation xmi:id="_tmyugiWbEeGCz74CaMtvdQ" name="getDiagnosticProcedures" isQuery="true" bodyCondition="_tmyuhSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmyuhSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmyugiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmyuhiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getProcedures()->select(procedure : cda::Procedure | not procedure.oclIsUndefined() and procedure.oclIsKindOf(hitsp::Procedure)).oclAsType(hitsp::Procedure)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmyugyWbEeGCz74CaMtvdQ" type="_KYNNMKDlEd-dVeaMP0XXQw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmyuhCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tm74ciWbEeGCz74CaMtvdQ" name="getResults" isQuery="true" bodyCondition="_tm74dSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tm74dSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tm74ciWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tm74diWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(hitsp::Result)).oclAsType(hitsp::Result)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tm74cyWbEeGCz74CaMtvdQ" type="_oTzNMDIWEd-SYNRf-pkwtw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tm74dCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tqXm-SWbEeGCz74CaMtvdQ" name="getResultOrganizers" isQuery="true" bodyCondition="_tqXm_CWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqXm_CWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqXm-SWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqXm_SWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getOrganizers()->select(organizer : cda::Organizer | not organizer.oclIsUndefined() and organizer.oclIsKindOf(hitsp::ResultOrganizer)).oclAsType(hitsp::ResultOrganizer)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqXm-iWbEeGCz74CaMtvdQ" type="_WwjwsNJkEeCJq4tpS2QhbQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqXm-yWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ml82oMifEd6mWrHPmrIIfQ" name="AssessmentAndPlanSection">
      <ownedComment xmi:id="_yaHoQMifEd6mWrHPmrIIfQ" annotatedElement="_ml82oMifEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Assessment and Plan Section contains information about the assessment of the patient's condition and&#xD;
    expectations for care including proposals, goals, and order requests for monitoring, tracking, or improving the&#xD;
    condition of the patient. &#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    An assessment and plan section varies from the plan of care section defined later in that it includes a&#xD;
    physician assessment of the patient condition. &#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    &lt;b>NOTE &lt;/b>:&#xD;
    The assessments described in this section are physician assessments of the patient's current condition, and do not&#xD;
    include assessments of functional status, or other assessments typically used in nursing. In Implementation Guides&#xD;
    currently selected, when both the assessment and plan are documented, they are included together in a single section&#xD;
    documenting both. When the physician assessment is not present, only the plan of care section appears. There are no&#xD;
    cases where a physician assessment is provided without a plan.   &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tjEFECWbEeGCz74CaMtvdQ" name="HITSPAssessmentAndPlanSectionTemplateId" constrainedElement="_ml82oMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjEFESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.123')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqqh7CWbEeGCz74CaMtvdQ" name="HITSPAssessmentAndPlanSectionMedication" constrainedElement="_ml82oMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqqh7SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Medication))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tq0S4CWbEeGCz74CaMtvdQ" name="HITSPAssessmentAndPlanSectionImmunization" constrainedElement="_ml82oMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tq0S4SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Immunization))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tq0S5yWbEeGCz74CaMtvdQ" name="HITSPAssessmentAndPlanSectionEncounterEntry" constrainedElement="_ml82oMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tq0S6CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.encounter.oclIsUndefined() and entry.encounter.oclIsKindOf(hitsp::Encounter))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tq0S7iWbEeGCz74CaMtvdQ" name="HITSPAssessmentAndPlanSectionProcedureEntry" constrainedElement="_ml82oMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tq0S7yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.procedure.oclIsUndefined() and entry.procedure.oclIsKindOf(hitsp::Procedure))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_n1jdUMifEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_SNPREMifEd6mWrHPmrIIfQ"/>
      </generalization>
      <generalization xmi:id="_cTzLgM9eEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_ikbxwGjsEd-tUpkWYQgJlQ"/>
      </generalization>
      <ownedOperation xmi:id="_tqqh7iWbEeGCz74CaMtvdQ" name="getMedications" isQuery="true" bodyCondition="_tqqh8SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqqh8SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqqh7iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqqh8iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Medication)).oclAsType(hitsp::Medication)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqqh7yWbEeGCz74CaMtvdQ" type="_IjIO0DxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqqh8CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tq0S4iWbEeGCz74CaMtvdQ" name="getImmunizations" isQuery="true" bodyCondition="_tq0S5SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tq0S5SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tq0S4iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tq0S5iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Immunization)).oclAsType(hitsp::Immunization)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tq0S4yWbEeGCz74CaMtvdQ" type="_qkWXUDuJEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tq0S5CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tq0S6SWbEeGCz74CaMtvdQ" name="getEncounterEntries" isQuery="true" bodyCondition="_tq0S7CWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tq0S7CWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tq0S6SWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tq0S7SWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getEncounters()->select(encounter : cda::Encounter | not encounter.oclIsUndefined() and encounter.oclIsKindOf(hitsp::Encounter)).oclAsType(hitsp::Encounter)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tq0S6iWbEeGCz74CaMtvdQ" type="_x6SxkKsQEd-yFfcbpgNFIA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tq0S6yWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tq9c0CWbEeGCz74CaMtvdQ" name="getProcedureEntries" isQuery="true" bodyCondition="_tq9c0yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tq9c0yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tq9c0CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tq9c1CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getProcedures()->select(procedure : cda::Procedure | not procedure.oclIsUndefined() and procedure.oclIsKindOf(hitsp::Procedure)).oclAsType(hitsp::Procedure)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tq9c0SWbEeGCz74CaMtvdQ" type="_KYNNMKDlEd-dVeaMP0XXQw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tq9c0iWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_SydBgMigEd6mWrHPmrIIfQ" name="PlanOfCareSection">
      <ownedComment xmi:id="_h3l0oMigEd6mWrHPmrIIfQ" annotatedElement="_SydBgMigEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Plan of Care Section contains information about the expectations for care to be provided including&#xD;
    proposed interventions and goals for improving the condition of the patient. &#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    A plan of care section varies from the assessment and plan section defined above in that it does not&#xD;
    include a physician assessment of the patient condition. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tjEFEyWbEeGCz74CaMtvdQ" name="HITSPPlanOfCareSectionTemplateId" constrainedElement="_SydBgMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjEFFCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.124')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_to4ZNSWbEeGCz74CaMtvdQ" name="HITSPPlanOfCareSectionMedication" constrainedElement="_SydBgMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_to4ZNiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Medication))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_to4ZPCWbEeGCz74CaMtvdQ" name="HITSPPlanOfCareSectionImmunization" constrainedElement="_SydBgMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_to4ZPSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(hitsp::Immunization))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_to4ZQyWbEeGCz74CaMtvdQ" name="HITSPPlanOfCareSectionEncounter" constrainedElement="_SydBgMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_to4ZRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.encounter.oclIsUndefined() and entry.encounter.oclIsKindOf(hitsp::Encounter))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpBjJSWbEeGCz74CaMtvdQ" name="HITSPPlanOfCareSectionProcedure" constrainedElement="_SydBgMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpBjJiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.procedure.oclIsUndefined() and entry.procedure.oclIsKindOf(hitsp::Procedure))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_U9euoMigEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_BEcusMigEd6mWrHPmrIIfQ"/>
      </generalization>
      <generalization xmi:id="_cEYhwMNxEeCZQPUDKP01pg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_ikbxwGjsEd-tUpkWYQgJlQ"/>
      </generalization>
      <ownedOperation xmi:id="_to4ZNyWbEeGCz74CaMtvdQ" name="getMedication" isQuery="true" bodyCondition="_to4ZOiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_to4ZOiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_to4ZNyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_to4ZOyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Medication))->asSequence()->first().oclAsType(hitsp::Medication)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_to4ZOCWbEeGCz74CaMtvdQ" type="_IjIO0DxbEd6JwqSGecoePg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_to4ZOSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_to4ZPiWbEeGCz74CaMtvdQ" name="getImmunization" isQuery="true" bodyCondition="_to4ZQSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_to4ZQSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_to4ZPiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_to4ZQiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(hitsp::Immunization))->asSequence()->first().oclAsType(hitsp::Immunization)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_to4ZPyWbEeGCz74CaMtvdQ" type="_qkWXUDuJEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_to4ZQCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tpBjICWbEeGCz74CaMtvdQ" name="getEncounter" isQuery="true" bodyCondition="_tpBjIyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tpBjIyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tpBjICWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpBjJCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getEncounters()->select(encounter : cda::Encounter | not encounter.oclIsUndefined() and encounter.oclIsKindOf(hitsp::Encounter))->asSequence()->first().oclAsType(hitsp::Encounter)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tpBjISWbEeGCz74CaMtvdQ" type="_x6SxkKsQEd-yFfcbpgNFIA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpBjIiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tpBjJyWbEeGCz74CaMtvdQ" name="getProcedure" isQuery="true" bodyCondition="_tpBjKiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tpBjKiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tpBjJyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpBjKyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getProcedures()->select(procedure : cda::Procedure | not procedure.oclIsUndefined() and procedure.oclIsKindOf(hitsp::Procedure))->asSequence()->first().oclAsType(hitsp::Procedure)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tpBjKCWbEeGCz74CaMtvdQ" type="_KYNNMKDlEd-dVeaMP0XXQw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpBjKSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_4Mh2UMigEd6mWrHPmrIIfQ" name="FamilyHistorySection">
      <ownedComment xmi:id="__W9csMigEd6mWrHPmrIIfQ" annotatedElement="_4Mh2UMigEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Family History Section contains information about the genetic family members, to the extent that&#xD;
    they are known, the diseases they suffered from, their ages at death, and other relevant genetic information. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tjEFFiWbEeGCz74CaMtvdQ" name="HITSPFamilyHistorySectionTemplateId" constrainedElement="_4Mh2UMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjEFFyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.125')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqXm_iWbEeGCz74CaMtvdQ" name="HITSPFamilyHistorySectionFamilyHistory" constrainedElement="_4Mh2UMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqXm_yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.organizer.oclIsUndefined() and entry.organizer.oclIsKindOf(hitsp::FamilyHistory))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_7ThccMigEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_kKnAIMigEd6mWrHPmrIIfQ"/>
      </generalization>
      <ownedOperation xmi:id="_tqXnACWbEeGCz74CaMtvdQ" name="getFamilyHistories" isQuery="true" bodyCondition="_tqXnAyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqXnAyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqXnACWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqXnBCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getOrganizers()->select(organizer : cda::Organizer | not organizer.oclIsUndefined() and organizer.oclIsKindOf(hitsp::FamilyHistory)).oclAsType(hitsp::FamilyHistory)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqXnASWbEeGCz74CaMtvdQ" type="_kce00Mm2EeCDOYZyQPaRHg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqXnAiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_-ujjcMihEd6mWrHPmrIIfQ" name="SocialHistorySection">
      <ownedComment xmi:id="_Gu8hcMiiEd6mWrHPmrIIfQ" annotatedElement="_-ujjcMihEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Social History Section contains information about the person's beliefs, home life, community life,&#xD;
    work life, hobbies, and risky habits. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tjN2ESWbEeGCz74CaMtvdQ" name="HITSPSocialHistorySectionTemplateId" constrainedElement="_-ujjcMihEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjN2EiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.126')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpePECWbEeGCz74CaMtvdQ" name="HITSPSocialHistorySectionSocialHistory" constrainedElement="_-ujjcMihEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpePESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(hitsp::SocialHistory))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_BW7T4MiiEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_Kv5q4MihEd6mWrHPmrIIfQ"/>
      </generalization>
      <ownedOperation xmi:id="_tpePEiWbEeGCz74CaMtvdQ" name="getSocialHistories" isQuery="true" bodyCondition="_tpePFSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tpePFSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tpePEiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpePFiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(hitsp::SocialHistory)).oclAsType(hitsp::SocialHistory)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tpePEyWbEeGCz74CaMtvdQ" type="_I06IEMhGEeCHk-lvWGDTdA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tpePFCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_F4b6wMijEd6mWrHPmrIIfQ" name="EncountersSection">
      <ownedComment xmi:id="_R7eO0MijEd6mWrHPmrIIfQ" annotatedElement="_F4b6wMijEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Encounter Section contains information describing the patient history of encounters. At a minimum,&#xD;
    current and pertinent historical encounters should be included; a full encounter history may be included. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tjN2FCWbEeGCz74CaMtvdQ" name="HITSPEncountersSectionTemplateId" constrainedElement="_F4b6wMijEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjN2FSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.127')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmDHoiWbEeGCz74CaMtvdQ" name="HITSPEncountersSectionEncounterEntry" constrainedElement="_F4b6wMijEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmDHoyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.encounter.oclIsUndefined() and entry.encounter.oclIsKindOf(hitsp::Encounter))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_KMB24MijEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_tY30kMiiEd6mWrHPmrIIfQ"/>
      </generalization>
      <ownedOperation xmi:id="_tmMRkCWbEeGCz74CaMtvdQ" name="getHITSPEncounterEntries" isQuery="true" bodyCondition="_tmMRkyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tmMRkyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tmMRkCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmMRlCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getEncounters()->select(encounter : cda::Encounter | not encounter.oclIsUndefined() and encounter.oclIsKindOf(hitsp::Encounter)).oclAsType(hitsp::Encounter)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tmMRkSWbEeGCz74CaMtvdQ" type="_x6SxkKsQEd-yFfcbpgNFIA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tmMRkiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_d9cy8MijEd6mWrHPmrIIfQ" name="MedicalEquipmentSection">
      <ownedComment xmi:id="_kMSTwMijEd6mWrHPmrIIfQ" annotatedElement="_d9cy8MijEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The Medical Equipment section contains information describing a patient's implanted and external medical&#xD;
    devices and equipment that their health status depends on, as well as any pertinent equipment or device history. &#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_tjXAACWbEeGCz74CaMtvdQ" name="HITSPMedicalEquipmentSectionTemplateId" constrainedElement="_d9cy8MijEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjXAASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.128')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_gF0NoMijEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_tqabEMijEd6mWrHPmrIIfQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_c6bN4BvgEd-yI6xBTkJSNw" name="ConditionEntry">
      <ownedComment xmi:id="_EBSi4JeEEeCd9scrQ-M9WA">
        <body>&lt;p>This section makes use of the linking, severity, clinical status and comment content specifications defined elsewhere in the technical framework. In HL7 RIM parlance, observations about a problem, complaint, symptom, finding, diagnosis, or functional limitation of a patient is the event (moodCode='EVN') of observing (&amp;lt;observation classCode='OBS'>) that problem. The &amp;lt;value> of the observation comes from a controlled vocabulary representing such things. The &amp;lt;code> contained within the &amp;lt;observation> describes the method of determination from yet another controlled vocabulary.&lt;/p>&#xD;
&#xD;
&lt;p>The basic pattern for reporting a problem uses the CDA &amp;lt;observation> element, setting the classCode='OBS' to represent that this is an observation of a problem, and the moodCode='EVN', to represent that this is an observation that has in fact taken place. The negationInd attribute, if true, specifies that the problem indicated was observed to not have occurred (which is subtly but importantly different from having not been observed). The value of negationInd should not normally be set to true. Instead, to record that there is &quot;no prior history of chicken pox&quot;, one would use a coded value indicated exactly that. However, it is not always possible to record problems in this manner, especially if using a controlled vocabulary that does not supply pre-coordinated negations , or which do not allow the negation to be recorded with post-coordinated coded terminology.&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_Lt80wCl0EeCXiupwzMk--A" name="ConditionEntryHasOnsetDate" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gcqfgCl0EeCXiupwzMk--A">
          <language>OCL</language>
          <body>not self.effectiveTime.low.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_MZP0gCl0EeCXiupwzMk--A" name="ConditionEntryHasResolutionDate" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_mKyf8Cl0EeCXiupwzMk--A">
          <language>OCL</language>
          <body>not self.effectiveTime.high.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_NcASACl0EeCXiupwzMk--A" name="ConditionEntryHasUnknownResolutionDate" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tRZWQCl0EeCXiupwzMk--A">
          <language>OCL</language>
          <body>not self.effectiveTime.high.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjgxACWbEeGCz74CaMtvdQ" name="ConditionEntryCode" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjgxASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '404684003' or value.code = '409586006' or value.code = '282291009' or value.code = '64572001' or value.code = '248536006' or value.code = '418799008' or value.code = '55607006')))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjgxAiWbEeGCz74CaMtvdQ" name="ConditionEntryText" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjgxAyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjgxBCWbEeGCz74CaMtvdQ" name="ProblemEntryValue" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjgxBSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (self.value->size() = 1 and self.value->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = element.oclAsType(datatypes::CD) in &#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and not value.code.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tnsGYCWbEeGCz74CaMtvdQ" name="ConditionEntryAgeObservation" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnsGYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ccd::AgeObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tnsGZyWbEeGCz74CaMtvdQ" name="ConditionEntryProblemStatusObservation" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnsGaCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::ProblemStatusObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::REFR)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tnsGbiWbEeGCz74CaMtvdQ" name="ConditionEntryCauseOfDeathObservation" constrainedElement="_c6bN4BvgEd-yI6xBTkJSNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnsGbyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ccd::CauseOfDeathObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::CAUS)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_fv2i4BvgEd-yI6xBTkJSNw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_3ZiEwGdIEd6Hk_bPOfEjYA"/>
      </generalization>
      <ownedOperation xmi:id="_tnsGYiWbEeGCz74CaMtvdQ" name="getHITSPAgeObservation" isQuery="true" bodyCondition="_tnsGZSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tnsGZSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tnsGYiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnsGZiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ccd::AgeObservation))->asSequence()->first().oclAsType(ccd::AgeObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tnsGYyWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_S7rEABZ1Ed-i6Lz80y5G5g"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tnsGZCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tnsGaSWbEeGCz74CaMtvdQ" name="getHITSPProblemStatusObservation" isQuery="true" bodyCondition="_tnsGbCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tnsGbCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tnsGaSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnsGbSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemStatusObservation))->asSequence()->first().oclAsType(ihe::ProblemStatusObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tnsGaiWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_s7LQECQNEeCxCon8a79rfA"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tnsGayWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tnsGcCWbEeGCz74CaMtvdQ" name="getCauseOfDeathObservation" isQuery="true" bodyCondition="_tnsGcyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tnsGcyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tnsGcCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnsGdCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ccd::CauseOfDeathObservation))->asSequence()->first().oclAsType(ccd::CauseOfDeathObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tnsGcSWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_joG2YIHbEd6Ncrr6L3Ublw"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tnsGciWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_oTzNMDIWEd-SYNRf-pkwtw" name="Result">
      <ownedComment xmi:id="_5VrPQBeTEeCf9aMNaCAtDQ">
        <body>This clinical statement represents details of a lab, radiology, or other study performed on a patient. The scope of result observations is broad with the exception of &quot;vital signs&quot; which are contained in the Vital Signs section.</body>
      </ownedComment>
      <ownedRule xmi:id="_K7iAwBeWEeCf9aMNaCAtDQ" name="ResultTypeCodeSystem">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_YH7JkBeWEeCf9aMNaCAtDQ">
          <language>OCL</language>
          <body>self.code.codeSystem = '2.16.840.1.113883.6.1' or self.code.codeSystem = '2.16.840.1.113883.6.96'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_N2G7gBeWEeCf9aMNaCAtDQ" name="ResultLaboratoryResultsValueSet">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_eK9qEBeWEeCf9aMNaCAtDQ">
          <language>OCL</language>
          <body>self.code.codeSystem = '2.16.840.1.113883.6.1'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_yfmA4BeWEeCf9aMNaCAtDQ" name="ResultValuePresence">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_BH2qwBeXEeCf9aMNaCAtDQ">
          <language>OCL</language>
          <body>(self.moodCode = vocab::x_ActMoodDocumentObservation::EVN or self.moodCode = vocab::x_ActMoodDocumentObservation::EVN)&#xD;&#xA;    implies (not self.value->isEmpty()) and&#xD;&#xA;  (self.moodCode = vocab::x_ActMoodDocumentObservation::INT or self.moodCode = vocab::x_ActMoodDocumentObservation::PRP)&#xD;&#xA;   implies (self.value->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjqiByWbEeGCz74CaMtvdQ" name="ResultTemplateId" constrainedElement="_oTzNMDIWEd-SYNRf-pkwtw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjqiCCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.15.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjzr8CWbEeGCz74CaMtvdQ" name="ResultCode" constrainedElement="_oTzNMDIWEd-SYNRf-pkwtw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjzr8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjzr8iWbEeGCz74CaMtvdQ" name="ResultEffectiveTime" constrainedElement="_oTzNMDIWEd-SYNRf-pkwtw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjzr8yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjzr9CWbEeGCz74CaMtvdQ" name="ResultValue" constrainedElement="_oTzNMDIWEd-SYNRf-pkwtw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjzr9SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (not self.value->isEmpty())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_oT1CYDIWEd-SYNRf-pkwtw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_MQHZEHDAEd6eItyqb1FoWg"/>
      </generalization>
      <generalization xmi:id="_S1FzcDIXEd-SYNRf-pkwtw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_dLvb0K4NEd6_ioDelDcPPg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_MdoNoDuEEd-B8KE6Jx0UNQ" name="LanguageSpoken">
      <ownedRule xmi:id="_MztYQPyYEd-RgJ5u3I0u5A" name="LanguageSpokenNoProficiencyLevelCode" constrainedElement="_MdoNoDuEEd-B8KE6Jx0UNQ">
        <ownedComment xmi:id="_WBKmUPyYEd-RgJ5u3I0u5A">
          <body>Judgments about language proficiency are subjective, and could have a negative impact on consumers.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_iQWv8PysEd-RgJ5u3I0u5A">
          <language>OCL</language>
          <body>self.proficiencyLevelCode.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tjzr9iWbEeGCz74CaMtvdQ" name="LanguageSpokenTemplateId" constrainedElement="_MdoNoDuEEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tjzr9yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tj9c8SWbEeGCz74CaMtvdQ" name="LanguageSpokenModeCode" constrainedElement="_MdoNoDuEEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tj9c8iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.modeCode.oclIsUndefined() or self.modeCode.isNullFlavorUndefined()) implies (self.modeCode.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.modeCode.oclAsType(datatypes::CE) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.5.60' and (value.code = 'ESGN' or value.code = 'ESP' or value.code = 'EWR' or value.code = 'RSGN' or value.code = 'RSP' or value.code = 'RWR')))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Md7IkDuEEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_-uU7kDOtEd-5f4Yngl7nkw"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ZNaLkDuHEd-B8KE6Jx0UNQ" name="InsuranceProvider">
      <ownedRule xmi:id="_m7vFMM_7EeCBBsup3soRig" name="InsuranceProviderPaymentProviders">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_qcFmgM_7EeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->exists(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_HTgTMM_7EeCBBsup3soRig" name="InsuranceProviderPayerEntryID">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_NaxzcM_7EeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | not a.id.root->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_cqdCoM_7EeCBBsup3soRig" name="InsuranceProviderHealthInsuranceType" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_jiFo0M_7EeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.code.codeSystem = '2.16.840.1.113883.6.255.1336' and (a.code.code='12' or a.code.code='13' or a.code.code='14' or a.code.code='15' or a.code.code='16' or a.code.code='41' or a.code.code='42' or a.code.code='43' or a.code.code='47' or a.code.code='AP' or a.code.code='C1' or a.code.code='CO' or a.code.code='CP' or a.code.code='D' or a.code.code='DB' or a.code.code='EP' or a.code.code='FF' or a.code.code='GP' or a.code.code='HM' or a.code.code='HN' or a.code.code='HS' or a.code.code='IN' or a.code.code='IP' or a.code.code='LC' or a.code.code='LD' or a.code.code='LI' or a.code.code='LT' or a.code.code='MA' or a.code.code='MB' or a.code.code='MC' or a.code.code='MH' or a.code.code='MI' or a.code.code='MP' or a.code.code='OT' or a.code.code='PE' or a.code.code='PL' or a.code.code='PP' or a.code.code='PR' or a.code.code='PS' or a.code.code='QM' or a.code.code='RP' or a.code.code='SP' or a.code.code='TF' or a.code.code='WC' or a.code.code='WU'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_8_IaMNAXEeCBBsup3soRig" name="InsuranceProviderInsuranceInformation" constrainedElement="_R1oYsM_8EeCBBsup3soRig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EvTK4NAYEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.performer->exists (perm : cda::Performer2 | perm.typeCode = vocab::ParticipationPhysicalPerformer::PRF and perm.assignedEntity->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_R1oYsM_8EeCBBsup3soRig" name="InsuranceProviderInsuranceInfoSourceID" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_YwYkUM_8EeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.performer->exists (perm : cda::Performer2 | perm.typeCode = vocab::ParticipationPhysicalPerformer::PRF and perm.assignedEntity.id->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="__QcJwM_8EeCBBsup3soRig" name="InsuranceProviderInsuranceInfoSourceAddr" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ozCTIM_9EeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.performer->exists (perm : cda::Performer2 | perm.typeCode = vocab::ParticipationPhysicalPerformer::PRF and perm.assignedEntity.addr->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Uf77cM__EeCBBsup3soRig" name="InsuranceProviderHealthPlanCoverageStartTime" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3aGYQM__EeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.time.low->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_TH8_YNAAEeCBBsup3soRig" name="InsuranceProviderHealthPlanCoverageStopTime" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_TH8_YdAAEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.time.high->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_p9TvENAXEeCBBsup3soRig" name="InsuranceProviderPatientInformation">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_w7ebENAXEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.participantRole.classCode = vocab::RoleClassRoot::PAT))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_4Eu-wNABEeCBBsup3soRig" name="InsuranceProviderMemberId" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EjPt4NACEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.participantRole.classCode = vocab::RoleClassRoot::PAT and par.participantRole.id->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Hn5xsNACEeCBBsup3soRig" name="InsuranceProviderMemberIdRoot" constrainedElement="_4Eu-wNABEeCBBsup3soRig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_KEl2kNACEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.participantRole.classCode = vocab::RoleClassRoot::PAT and par.participantRole.id.root->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_gCei0NAFEeCBBsup3soRig" name="InsuranceProviderRelationshipToSubscriber" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_luki8NAFEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.participantRole.classCode = vocab::RoleClassRoot::PAT and par.participantRole.code->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_nusAkNAFEeCBBsup3soRig" name="InsuranceProviderRelationshipToSubscriberCodeSystem" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_yZGU0NAFEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.participantRole.classCode = vocab::RoleClassRoot::PAT and par.participantRole.code.codeSystem = '2.16.840.1.113883.5.111' and (par.participantRole.code.code = 'FAMDEP' or par.participantRole.code.code='HANDIC' or par.participantRole.code.code ='INJ' or par.participantRole.code.code='SELF' or par.participantRole.code.code='SPON' or par.participantRole.code.code ='STUD' or par.participantRole.code.code='FSTUD' or par.participantRole.code.code='PSTUD')))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EvC78NAHEeCBBsup3soRig" name="InsuranceProviderPatientName">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Nawu4NAHEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists (par : cda::Participant2 | par.typeCode = vocab::ParticipationType::COV and par.participantRole.classCode = vocab::RoleClassRoot::PAT and par.participantRole.playingEntity.name->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_UZRisNATEeCBBsup3soRig" name="InsuranceProviderSubscriberInformation" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UZRisdATEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::HLD))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_254UMNAMEeCBBsup3soRig" name="InsuranceProviderSubscriberId" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UaavANAPEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::HLD and par.participantRole.id->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_VujQYNAPEeCBBsup3soRig" name="InsuranceProviderSubscriberIdRoot" constrainedElement="_254UMNAMEeCBBsup3soRig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_0sST4NAPEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::HLD and par.participantRole.id.root->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_f6vv4NAVEeCBBsup3soRig" name="InsuranceProviderSubscriberAddress" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_f6vv4dAVEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.participant->exists(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::HLD and par.participantRole.addr->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_-5a5kOSEEeCaNryByvFiHA" name="InsuranceProviderFinancialResponsibilityPartyType" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_-5a5keSEEeCaNryByvFiHA">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.performer->exists(per : cda::Performer2 | per.typeCode = vocab::ParticipationPhysicalPerformer::PRF and per.assignedEntity.code->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_qNUCUNAJEeCBBsup3soRig" name="InsuranceProviderFinancialResponsibilityPartyTypeCode" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ZNduoNAMEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.performer->exists(per : cda::Performer2 | per.assignedEntity.code.codeSystem = '2.16.840.1.113883.5.110'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_hO80oNATEeCBBsup3soRig" name="InsuranceProviderFinancialResponsibilityPartyAddress">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_BQA9YNAUEeCBBsup3soRig">
          <language>OCL</language>
          <body>self.getActs()->select(act : cda::Act | act.oclIsKindOf(ihe::PayerEntry))->forAll(a : cda::Act | a.performer->exists(per : cda::Performer2 | per.assignedEntity.addr->size() > 0))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tkHN8CWbEeGCz74CaMtvdQ" name="InsuranceProviderTemplateId" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tkHN8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.5')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tk200CWbEeGCz74CaMtvdQ" name="CoverageActivityCode" constrainedElement="_ZNaLkDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tk200SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.code = '48768-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ZNaLkTuHEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_PMrjADXgEd-gpLhSMS7jpQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_pOKSYDuHEd-B8KE6Jx0UNQ" name="HealthcareProvider">
      <ownedRule xmi:id="_tk200iWbEeGCz74CaMtvdQ" name="HealthcareProviderTemplateId" constrainedElement="_pOKSYDuHEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tk200yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.4')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_pOUDYDuHEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_4hu_kDuGEd-B8KE6Jx0UNQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_qkWXUDuJEd-B8KE6Jx0UNQ" name="Immunization">
      <ownedRule xmi:id="_qvCv8FazEeCddY1UIvGtQg" name="HITSPImmunizationRefusalReason" constrainedElement="_qkWXUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_uYm3oFazEeCddY1UIvGtQg">
          <language>OCL</language>
          <body>self.entryRelationship->select(er |   er.typeCode = vocab::x_ActRelationshipEntryRelationship::RSON and er.act.code.codeSystem &lt;> '2.16.840.1.113883.1.11.19717' )->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tg8aoCWaEeGCz74CaMtvdQ" name="HITSPImmunizationCodedProductName" constrainedElement="_qkWXUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_xCZvMCWaEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.consumable.manufacturedProduct.manufacturedMaterial.code.codeSystem='2.16.840.1.113883.6.59'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tk201SWbEeGCz74CaMtvdQ" name="HITSPImmunizationTemplateId" constrainedElement="_qkWXUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tk201iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.13')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_qkWXUTuJEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_aFDTUDuJEd-B8KE6Jx0UNQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_B973gEveEd-GNbUQBie2ig" name="Comment">
      <ownedComment xmi:id="_Hk3OUEvfEd-GNbUQBie2ig">
        <body>This module contains a comment to be supplied for any other entry Content Modules.</body>
      </ownedComment>
      <ownedRule xmi:id="_tlJvzCWbEeGCz74CaMtvdQ" name="HITSPCommentTemplateId" constrainedElement="_B973gEveEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlJvzSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.11')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_B973gUveEd-GNbUQBie2ig">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_R_uVkEvdEd-GNbUQBie2ig"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_K3zLIFI0Ed-4TsxSz4jnfg" name="MedicationNormalDose">
      <generalization xmi:id="_K3zLIVI0Ed-4TsxSz4jnfg" general="_IjIO0DxbEd6JwqSGecoePg"/>
      <generalization xmi:id="_sf-boFI0Ed-4TsxSz4jnfg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#__HPx4HySEd6FS-4xbA1fBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_OUVjcFI0Ed-4TsxSz4jnfg" name="MedicationSplitDose">
      <generalization xmi:id="_OUVjcVI0Ed-4TsxSz4jnfg" general="_IjIO0DxbEd6JwqSGecoePg"/>
      <generalization xmi:id="_wT6AQFI0Ed-4TsxSz4jnfg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_OY9BYHyTEd6FS-4xbA1fBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_RuVlIFI0Ed-4TsxSz4jnfg" name="MedicationTaperedDose">
      <ownedRule xmi:id="_tlmbtiWbEeGCz74CaMtvdQ" name="HITSPMedicationTemplateId" constrainedElement="_RuVlIFI0Ed-4TsxSz4jnfg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlmbtyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = 'null')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_RuVlIVI0Ed-4TsxSz4jnfg" general="_IjIO0DxbEd6JwqSGecoePg"/>
      <generalization xmi:id="_zsa0MFI0Ed-4TsxSz4jnfg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_OCqBQHyTEd6FS-4xbA1fBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_WXndYFI0Ed-4TsxSz4jnfg" name="MedicationConditionalDose">
      <generalization xmi:id="_WXndYVI0Ed-4TsxSz4jnfg" general="_IjIO0DxbEd6JwqSGecoePg"/>
      <generalization xmi:id="_jYvKUFI0Ed-4TsxSz4jnfg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_OeXF0HyTEd6FS-4xbA1fBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_cNo1kFI0Ed-4TsxSz4jnfg" name="MedicationCombinationMedication">
      <generalization xmi:id="_cNo1kVI0Ed-4TsxSz4jnfg" general="_IjIO0DxbEd6JwqSGecoePg"/>
      <generalization xmi:id="_dsjqoFI0Ed-4TsxSz4jnfg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_QDIEMHyTEd6FS-4xbA1fBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_KYNNMKDlEd-dVeaMP0XXQw" name="Procedure" isAbstract="true">
      <ownedComment xmi:id="_mGksABdlEeCf9aMNaCAtDQ">
        <body>Defines a coded entry describing a procedure performed on a patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_05OHUBdtEeCf9aMNaCAtDQ" name="HITSPProcedureHasCodeOriginalText" constrainedElement="_KYNNMKDlEd-dVeaMP0XXQw">
        <ownedComment xmi:id="_SJjUgFWNEeCrQoPO8cZUSQ">
          <body>Free text describing the Procedure</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_0RHC0BeLEeCf9aMNaCAtDQ">
          <language>OCL</language>
          <body>not self.code.originalText.reference.value.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_o4kiIKr_Ed-yFfcbpgNFIA" name="HITSPProcedurePerformerAssignedEntity" constrainedElement="_KYNNMKDlEd-dVeaMP0XXQw">
        <ownedComment xmi:id="_V98zMFWNEeCrQoPO8cZUSQ">
          <body>Name and other information for the person or&#xD;
organization performed or hosted the Procedure</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3YYaoKr_Ed-yFfcbpgNFIA">
          <language>OCL</language>
          <body>self.performer->forAll(perf : cda::Performer2 | not perf.oclIsUndefined() and perf.assignedEntity->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlmbwCWbEeGCz74CaMtvdQ" name="HITSPProcedureTemplateId" constrainedElement="_KYNNMKDlEd-dVeaMP0XXQw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlmbwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.17')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlvloCWbEeGCz74CaMtvdQ" name="HITSPProcedureTargetSiteCode" constrainedElement="_KYNNMKDlEd-dVeaMP0XXQw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlvloSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.targetSiteCode->isEmpty() or self.targetSiteCode->exists(element | element.isNullFlavorUndefined())) implies (self.targetSiteCode->size() = 1 and self.targetSiteCode->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = element.oclAsType(datatypes::CD) in &#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and not value.code.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tlvloiWbEeGCz74CaMtvdQ" name="HITSPProcedureCode" constrainedElement="_KYNNMKDlEd-dVeaMP0XXQw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlvloyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_1wnE0MNwEeCZQPUDKP01pg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_uP4tkDuMEd-B8KE6Jx0UNQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_x6SxkKsQEd-yFfcbpgNFIA" name="Encounter">
      <ownedComment xmi:id="_3hJsYKsQEd-yFfcbpgNFIA">
        <body>The encounter entry contains data describing the interactions between the patient and clinicians. Interaction includes both in-person and non-in-person encounters such as telephone and e-mail communication.</body>
      </ownedComment>
      <ownedRule xmi:id="_uHp58MNxEeCZQPUDKP01pg" name="HITSPEncounterAdmissionSourceValueSet" constrainedElement="_x6SxkKsQEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_7_RxEMNxEeCZQPUDKP01pg">
          <language>OCL</language>
          <body>self.participant->select( par : cda::Participant2 | par.typeCode = vocab::ParticipationType::ORG )->forAll( par : cda::Participant2 | par.participantRole->one(pr : cda::ParticipantRole | pr.code.codeSystem = '2.16.840.1.113883.3.88.12.80.33') )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tl5WoCWbEeGCz74CaMtvdQ" name="HITSPEncounterTemplateId" constrainedElement="_x6SxkKsQEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tl5WoSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.16')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmDHoCWbEeGCz74CaMtvdQ" name="HITSPEncounterCode" constrainedElement="_x6SxkKsQEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmDHoSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.12' and not value.code.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_47cCEMNwEeCZQPUDKP01pg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_z__aIKsNEd-yFfcbpgNFIA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_IUTDIO3xEd-dJvThfIiQuA" name="Support">
      <ownedComment xmi:id="_nho9kO5tEd-70KBGpEgX1Q">
        <body>At a minimum, key support contacts relative to healthcare decisions, including next of kin, should be included. If no healthcare providers are supplied, the reason should be supplied as free text in the narrative block (e.g., Unknown, etc).</body>
      </ownedComment>
      <generalization xmi:id="_IUTqMO3xEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_w9-SYO3vEd-dJvThfIiQuA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_VWfHEO3xEd-dJvThfIiQuA" name="SupportGuardian">
      <ownedComment xmi:id="_oAgD0O5tEd-70KBGpEgX1Q">
        <body>At a minimum, key support contacts relative to healthcare decisions, including next of kin, should be included. If no healthcare providers are supplied, the reason should be supplied as free text in the narrative block (e.g., Unknown, etc).</body>
      </ownedComment>
      <ownedRule xmi:id="_tmWClSWbEeGCz74CaMtvdQ" name="HITSPSupportGuardianTemplateId" constrainedElement="_VWfHEO3xEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmWCliWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.3')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_VWfuIO3xEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_NaTwIO3wEd-dJvThfIiQuA"/>
      </generalization>
      <generalization xmi:id="_6oBAQO5nEd-70KBGpEgX1Q" general="_IUTDIO3xEd-dJvThfIiQuA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ci4cUO3xEd-dJvThfIiQuA" name="SupportParticipant">
      <ownedComment xmi:id="_ovnMkO5tEd-70KBGpEgX1Q">
        <body>At a minimum, key support contacts relative to healthcare decisions, including next of kin, should be included. If no healthcare providers are supplied, the reason should be supplied as free text in the narrative block (e.g., Unknown, etc).</body>
      </ownedComment>
      <ownedRule xmi:id="_tmWCmCWbEeGCz74CaMtvdQ" name="HITSPSupportParticipantTemplateId" constrainedElement="_ci4cUO3xEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmWCmSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.3')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ci5qcO3xEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_ZY0wkO3wEd-dJvThfIiQuA"/>
      </generalization>
      <generalization xmi:id="_ZfiHAO5oEd-70KBGpEgX1Q" general="_IUTDIO3xEd-dJvThfIiQuA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="__8-JUPG1Ed-FxO0PukiqhA" name="UnstructuredDocument">
      <ownedComment xmi:id="_DisjoPgpEd-pooc0RA29Vg">
        <body>&lt;b>IMPORTANT NOTE:&lt;/b> &lt;i>The HITSP C62 specification does not include a templateId for this doument type. The id 2.16.840.1.113883.3.88.11.62.1 is included in this model to support instance validation, but we are designing a solution to allow removal of this Id.&lt;/i></body>
      </ownedComment>
      <ownedRule xmi:id="_8u1IUPM0Ed-FxO0PukiqhA" name="UnstructuredDocumentNoStructuredData" constrainedElement="__8-JUPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_98cK8PM0Ed-FxO0PukiqhA">
          <language>OCL</language>
          <body>self.component.structuredBody.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EbnN0PM1Ed-FxO0PukiqhA" name="UnstructuredDocumentOnePatientPerDocument" constrainedElement="__8-JUPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_JhDdoPM1Ed-FxO0PukiqhA">
          <language>OCL</language>
          <body>self.recordTarget->one(record : cda::RecordTarget | not record.patientRole.oclIsUndefined() and not record.patientRole.patient.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmfznyWbEeGCz74CaMtvdQ" name="ScannedDocumentTemplateId" constrainedElement="__8-JUPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmfzoCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.62.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="__8-JUfG1Ed-FxO0PukiqhA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_g76sEPG1Ed-FxO0PukiqhA"/>
      </generalization>
      <generalization xmi:id="_CcbOUPG2Ed-FxO0PukiqhA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_wDMM0GEHEd6bFO5yxRh3Nw"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ex_ugPyzEd-RgJ5u3I0u5A" name="MedicationInformation">
      <ownedComment xmi:id="_-k6VwE5xEeC-IOl-lQ-2xA">
        <body>The product concentration is determined from the coded product or brand name using knowledge base information in the vocabularies specified for these fields, and therefore this information is not explicitly included.</body>
      </ownedComment>
      <ownedRule xmi:id="_cGx6ME5cEeC-IOl-lQ-2xA" name="MedicationInformationCodedProductName" constrainedElement="_ex_ugPyzEd-RgJ5u3I0u5A">
        <ownedComment xmi:id="_xrBrsE6REeC7C4Qxze6ysQ">
          <body>A code describing the product from a controlled&#xD;
vocabulary</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_f6eOQE5cEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>not self.manufacturedMaterial.code.code.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_xys0EE5cEeC-IOl-lQ-2xA" name="MedicationInformationCodedProductVocab">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="__p2xIE5cEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>self.manufacturedMaterial.code.codeSystem = '2.16.840.1.113883.6.88'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_2aeQcE5cEeC-IOl-lQ-2xA" name="MedicationInformationCodedIngredientVocab">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_pCBzME5dEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>self.manufacturedMaterial.code.codeSystem = '2.16.840.1.113883.4.9'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_2bejwE5hEeC-IOl-lQ-2xA" name="MedicationInformationCodedBrandName" constrainedElement="_2aeQcE5cEeC-IOl-lQ-2xA">
        <ownedComment xmi:id="_zKrgkE6REeC7C4Qxze6ysQ">
          <body>A code describing the product as a branded or&#xD;
trademarked entity from a controlled vocabulary</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_OQlXsE5iEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>self.manufacturedMaterial.code.translation->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_PKv54E5iEeC-IOl-lQ-2xA" name="MedicationInformationCodedBrandNameVocab" constrainedElement="_2bejwE5hEeC-IOl-lQ-2xA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_TBuLcE5iEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>self.manufacturedMaterial.code.codeSystem = '2.16.840.1.113883.6.88' or self.manufacturedMaterial.code.codeSystem = '2.16.840.1.113883.6.69'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FNdecE5vEeC-IOl-lQ-2xA" name="MedicationInformationFreeTextProductName" constrainedElement="_PKv54E5iEeC-IOl-lQ-2xA">
        <ownedComment xmi:id="_07v1kE6REeC7C4Qxze6ysQ">
          <body>The name of the substance or product without&#xD;
reference to a specific vendor (e.g., generic or other&#xD;
non-proprietary name). If a Coded Product Name is&#xD;
present, this is the text associated with the coded&#xD;
concept</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_KwoMEE5vEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>not self.manufacturedMaterial.code.originalText.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_RuyRAE5vEeC-IOl-lQ-2xA" name="MedicationInformationFreeTextBrandName" constrainedElement="_FNdecE5vEeC-IOl-lQ-2xA">
        <ownedComment xmi:id="_2wr98E6REeC7C4Qxze6ysQ">
          <body>The branded or trademarked name of the substance&#xD;
or product. If a Coded Brand Name is present, this is&#xD;
the text associated with the coded concept</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_WW0MEE5vEeC-IOl-lQ-2xA">
          <language>OCL</language>
          <body>not self.manufacturedMaterial.name.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tmo9gCWbEeGCz74CaMtvdQ" name="MedicationInformationTemplateId" constrainedElement="_ex_ugPyzEd-RgJ5u3I0u5A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tmo9gSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.8.2')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ZxMHYE5SEeC-IOl-lQ-2xA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_jZMQ0DuMEd-B8KE6Jx0UNQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_NC6JAE51EeC-IOl-lQ-2xA" name="MedicationType">
      <ownedComment xmi:id="_Ebp5IE6SEeC7C4Qxze6ysQ">
        <body>A classification based on how the medication is&#xD;
marketed (e.g., prescription, over the counter drug)</body>
      </ownedComment>
      <ownedRule xmi:id="_tm74dyWbEeGCz74CaMtvdQ" name="MedicationTypeTemplateId" constrainedElement="_NC6JAE51EeC-IOl-lQ-2xA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tm74eCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.8.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tm74eiWbEeGCz74CaMtvdQ" name="MedicationTypeCode" constrainedElement="_NC6JAE51EeC-IOl-lQ-2xA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tm74eyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '329505003' or value.code = '73639000')))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_NC6JAU51EeC-IOl-lQ-2xA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_vMJZwE8mEeCYjrG3z1gQrQ" name="MedicationOrderInformation">
      <ownedComment xmi:id="_zkhqQE9dEeCYjrG3z1gQrQ">
        <body>Order information may be recorded as part of the fulfillment history (moodcode = EVN) or as part of the administration information (moodcode = INT)</body>
      </ownedComment>
      <ownedRule xmi:id="_ntSbsE9LEeCYjrG3z1gQrQ" name="MedicationOrderInformationOrderNumber" constrainedElement="_gZ5JkE8qEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_Fi5YgE9XEeCYjrG3z1gQrQ">
          <body>The order identifier from the perspective of the&#xD;
ordering clinician. Also known as the 'placer number'&#xD;
versus the pharmacies prescription number (or 'filler&#xD;
number')</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_s2NdUE9LEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentSubstanceMood::INT implies self.id->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_wxphsE9XEeCYjrG3z1gQrQ" name="MedicationOrderInformationOrderExpiration" constrainedElement="_ntSbsE9LEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_1LzY0E9XEeCYjrG3z1gQrQ">
          <body>The date, including time if applicable, when the order&#xD;
is no longer valid. Dispenses and administrations are&#xD;
not continued past this date for an order instance</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_9u2_AE9XEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.moodCode =  vocab::x_DocumentSubstanceMood::INT implies not self.effectiveTime->select(et | et.value.oclIsUndefined())->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_vCrU4E9LEeCYjrG3z1gQrQ" name="MedicationOrderInformationQuantityOrdered" constrainedElement="_gZ5JkE8qEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_tSCnQE9XEeCYjrG3z1gQrQ">
          <body>The amount of product indicated by the ordering&#xD;
provider to be dispensed. For example, number of&#xD;
dosage units or volume of a liquid substance. Note:&#xD;
this is comprised of both a numeric value and a unit of&#xD;
measure</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_x1mvgE9LEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>not self.quantity.value.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_gZ5JkE8qEeCYjrG3z1gQrQ" name="MedicationOrderInformationQuantityUnit">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_jxmFME8qEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>not self.quantity.unit.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_w2-9YE9GEeCYjrG3z1gQrQ" name="MedicationOrderInformationPrescriptionNumber">
        <ownedComment xmi:id="_3_fL8E9YEeCYjrG3z1gQrQ">
          <body>The prescription&#xD;
identifier assigned by the pharmacy</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_HTNS0E9HEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentSubstanceMood::EVN implies not self.id->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="__k3HEE9GEeCYjrG3z1gQrQ" name="MedicationOrderInformationAssigningAuthority" constrainedElement="_w2-9YE9GEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_NtsC8E9HEeCYjrG3z1gQrQ">
          <body>determining the assigning authority is not feasible in all settings.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_TKxWsE9HEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.id.root->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_0xRmsE9cEeCYjrG3z1gQrQ" name="MedicationOrderInformationDispenseDate" constrainedElement="_uz6LAE9JEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_tqRSUE9dEeCYjrG3z1gQrQ">
          <body>The date of this&#xD;
dispense</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_gSA3wE9dEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentSubstanceMood::EVN implies self.effectiveTime->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_7apEME9YEeCYjrG3z1gQrQ" name="MedicationOrderInformationDispensingPharmacyLocation">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_CF-60E9ZEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.moodCode =  vocab::x_DocumentSubstanceMood::EVN  implies self.performer->select(p | p.assignedEntity.addr->isEmpty())->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_uz6LAE9JEeCYjrG3z1gQrQ" name="MedicationOrderInformationQuantityDispensed">
        <ownedComment xmi:id="_dJwDIE9ZEeCYjrG3z1gQrQ">
          <body>The actual quantity of&#xD;
product supplied in this dispense. Note: This is&#xD;
comprised of both a numeric value and a unit of&#xD;
measure</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ENv2YE9KEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentSubstanceMood::EVN implies not self.quantity.value.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_xwwKEE9eEeCYjrG3z1gQrQ" name="MedicationOrderInformationHasFillNumber" constrainedElement="_uz6LAE9JEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_3pISsE9eEeCYjrG3z1gQrQ">
          <body>The fill number for the&#xD;
history entry. The fill number identifies the supply (dispense) event as a distinct activities against the prescription.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_zshTME9eEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>self.entryRelationship->select(er | er.typeCode = vocab::x_ActRelationshipEntryRelationship::COMP and er.sequenceNumber.oclIsUndefined())->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tnFpdSWbEeGCz74CaMtvdQ" name="MedicationOrderInformationTemplateId" constrainedElement="_vMJZwE8mEeCYjrG3z1gQrQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnFpdiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.8.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tnYkYCWbEeGCz74CaMtvdQ" name="MedicationOrderInformationRepeatNumber" constrainedElement="_vMJZwE8mEeCYjrG3z1gQrQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnYkYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.repeatNumber.oclIsUndefined() or self.repeatNumber.isNullFlavorUndefined()) implies (not self.repeatNumber.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tnYkYiWbEeGCz74CaMtvdQ" name="MedicationOrderInformationStatusCode" constrainedElement="_vMJZwE8mEeCYjrG3z1gQrQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tnYkYyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.statusCode.oclIsUndefined() or self.statusCode.isNullFlavorUndefined()) implies (not self.statusCode.oclIsUndefined() and self.statusCode.oclIsKindOf(datatypes::CS) and &#xD;&#xA;let value : datatypes::CS = self.statusCode.oclAsType(datatypes::CS) in (&#xD;&#xA;not value.codeSystem.oclIsUndefined() or not value.codeSystemName.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_vMkQgE8mEeCYjrG3z1gQrQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_e2pkwOw7Ed-HcKrkbxroPA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_kTOYELGBEeCNQMtkrvuLWg" name="UnstructuredOrScannedDocument">
      <ownedComment xmi:id="_1VZfoLGBEeCNQMtkrvuLWg">
        <body>Used for documents that implement both HL7 Unstructured Documents and HITSP C62 based on IHE Scanned Documents.</body>
      </ownedComment>
      <generalization xmi:id="_qE8fELGBEeCNQMtkrvuLWg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_ESDCQKjIEeCFJ-gjhA0rqQ"/>
      </generalization>
      <generalization xmi:id="_scFVkLGBEeCNQMtkrvuLWg" general="__8-JUPG1Ed-FxO0PukiqhA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_YwJOIMHiEeC8rcpLzgYlNw" name="ReferralSummary">
      <ownedRule xmi:id="_tn1QUCWbEeGCz74CaMtvdQ" name="MedicalSummaryTemplateId" constrainedElement="_YwJOIMHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn1QUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.48.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_YwMRcMHiEeC8rcpLzgYlNw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_fp-n0DOvEd-5f4Yngl7nkw"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_iSKW8MHiEeC8rcpLzgYlNw" name="DischargeSummary">
      <ownedRule xmi:id="_tn1QUyWbEeGCz74CaMtvdQ" name="MedicalSummaryTemplateId" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn1QVCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.48.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tn1QViWbEeGCz74CaMtvdQ" name="DischargeSummaryProblemListSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn1QVyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ProblemListSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tn_BVSWbEeGCz74CaMtvdQ" name="DischargeSummaryAdmissionMedicationHistorySection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BViWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AdmissionMedicationHistorySection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tn_BXCWbEeGCz74CaMtvdQ" name="DischargeSummaryHospitalAdmissionDiagnosisSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BXSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HospitalAdmissionDiagnosisSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tn_BYyWbEeGCz74CaMtvdQ" name="DischargeSummaryAdvanceDirectivesSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BZCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AdvanceDirectivesSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toILQCWbEeGCz74CaMtvdQ" name="DischargeSummaryAllergiesReactionsSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AllergiesReactionsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toILRyWbEeGCz74CaMtvdQ" name="DischargeSummaryDischargeDiagnosisSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILSCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::DischargeDiagnosisSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toILTiWbEeGCz74CaMtvdQ" name="DischargeSummaryDischargeDiet" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILTyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::DischargeDiet))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toILVSWbEeGCz74CaMtvdQ" name="DischargeSummaryHospitalDischargeMedicationsSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILViWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HospitalDischargeMedicationsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toR8RSWbEeGCz74CaMtvdQ" name="DischargeSummaryDiagnosticResultsSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toR8RiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::DiagnosticResultsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toR8TCWbEeGCz74CaMtvdQ" name="DischargeSummaryFunctionalStatusSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toR8TSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::FunctionalStatusSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_toR8UyWbEeGCz74CaMtvdQ" name="DischargeSummaryHistoryOfPresentIllness" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_toR8VCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HistoryOfPresentIllness))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tobtRSWbEeGCz74CaMtvdQ" name="DischargeSummaryHospitalCourseSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtRiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HospitalCourseSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tobtTCWbEeGCz74CaMtvdQ" name="DischargeSummaryMedicalEquipmentSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtTSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::MedicalEquipmentSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tobtUyWbEeGCz74CaMtvdQ" name="DischargeSummaryPhysicalExamSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtVCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PhysicalExamSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tok3MCWbEeGCz74CaMtvdQ" name="DischargeSummaryPlanOfCareSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3MSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PlanOfCareSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tok3NyWbEeGCz74CaMtvdQ" name="DischargeSummaryHistoryOfPastIllnessSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3OCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HistoryOfPastIllnessSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tok3PiWbEeGCz74CaMtvdQ" name="DischargeSummaryReviewOfSystemsSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3PyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ReviewOfSystemsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tok3RSWbEeGCz74CaMtvdQ" name="DischargeSummaryMedicationsAdministeredSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3RiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::MedicationsAdministeredSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_touoNSWbEeGCz74CaMtvdQ" name="DischargeSummaryVitalSignsSection" constrainedElement="_iSKW8MHiEeC8rcpLzgYlNw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_touoNiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::VitalSignsSection))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_iSKW8cHiEeC8rcpLzgYlNw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_fp-n0DOvEd-5f4Yngl7nkw"/>
      </generalization>
      <ownedOperation xmi:id="_tn_BUCWbEeGCz74CaMtvdQ" name="getProblemListSection" isQuery="true" bodyCondition="_tn_BUyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tn_BUyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tn_BUCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BVCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ProblemListSection))->asSequence()->first().oclAsType(hitsp::ProblemListSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tn_BUSWbEeGCz74CaMtvdQ" type="_cPtREMfaEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tn_BUiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tn_BVyWbEeGCz74CaMtvdQ" name="getAdmissionMedicationHistorySection" isQuery="true" bodyCondition="_tn_BWiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tn_BWiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tn_BVyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BWyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AdmissionMedicationHistorySection))->asSequence()->first().oclAsType(hitsp::AdmissionMedicationHistorySection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tn_BWCWbEeGCz74CaMtvdQ" type="_CoUvwMfxEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tn_BWSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tn_BXiWbEeGCz74CaMtvdQ" name="getHospitalAdmissionDiagnosisSection" isQuery="true" bodyCondition="_tn_BYSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tn_BYSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tn_BXiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BYiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HospitalAdmissionDiagnosisSection))->asSequence()->first().oclAsType(hitsp::HospitalAdmissionDiagnosisSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tn_BXyWbEeGCz74CaMtvdQ" type="_eg314MfvEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tn_BYCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tn_BZSWbEeGCz74CaMtvdQ" name="getAdvanceDirectivesSection" isQuery="true" bodyCondition="_tn_BaCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tn_BaCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tn_BZSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tn_BaSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AdvanceDirectivesSection))->asSequence()->first().oclAsType(hitsp::AdvanceDirectivesSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tn_BZiWbEeGCz74CaMtvdQ" type="_uIr7cMfzEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tn_BZyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_toILQiWbEeGCz74CaMtvdQ" name="getAllergiesReactionsSection" isQuery="true" bodyCondition="_toILRSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_toILRSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_toILQiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILRiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::AllergiesReactionsSection))->asSequence()->first().oclAsType(hitsp::AllergiesReactionsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_toILQyWbEeGCz74CaMtvdQ" type="_VGnj8MfZEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_toILRCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_toILSSWbEeGCz74CaMtvdQ" name="getDischargeDiagnosisSection" isQuery="true" bodyCondition="_toILTCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_toILTCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_toILSSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILTSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::DischargeDiagnosisSection))->asSequence()->first().oclAsType(hitsp::DischargeDiagnosisSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_toILSiWbEeGCz74CaMtvdQ" type="_CEsTsMfwEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_toILSyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_toILUCWbEeGCz74CaMtvdQ" name="getDischargeDiet" isQuery="true" bodyCondition="_toILUyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_toILUyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_toILUCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_toILVCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::DischargeDiet))->asSequence()->first().oclAsType(ihe::DischargeDiet)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_toILUSWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_nwrzcL4kEeCPGaGuS9U6tg"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_toILUiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_toR8QCWbEeGCz74CaMtvdQ" name="getHospitalDischargeMedicationsSection" isQuery="true" bodyCondition="_toR8QyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_toR8QyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_toR8QCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_toR8RCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HospitalDischargeMedicationsSection))->asSequence()->first().oclAsType(hitsp::HospitalDischargeMedicationsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_toR8QSWbEeGCz74CaMtvdQ" type="_OORpwMfyEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_toR8QiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_toR8RyWbEeGCz74CaMtvdQ" name="getDiagnosticResultsSection" isQuery="true" bodyCondition="_toR8SiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_toR8SiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_toR8RyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_toR8SyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::DiagnosticResultsSection))->asSequence()->first().oclAsType(hitsp::DiagnosticResultsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_toR8SCWbEeGCz74CaMtvdQ" type="_P3GVkMieEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_toR8SSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_toR8TiWbEeGCz74CaMtvdQ" name="getFunctionalStatusSection" isQuery="true" bodyCondition="_toR8USWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_toR8USWbEeGCz74CaMtvdQ" name="body" constrainedElement="_toR8TiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_toR8UiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::FunctionalStatusSection))->asSequence()->first().oclAsType(hitsp::FunctionalStatusSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_toR8TyWbEeGCz74CaMtvdQ" type="_m5tlkMfuEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_toR8UCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tobtQCWbEeGCz74CaMtvdQ" name="getHistoryOfPresentIllness" isQuery="true" bodyCondition="_tobtQyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tobtQyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tobtQCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtRCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HistoryOfPresentIllness))->asSequence()->first().oclAsType(hitsp::HistoryOfPresentIllness)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tobtQSWbEeGCz74CaMtvdQ" type="_w51SkMfhEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tobtQiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tobtRyWbEeGCz74CaMtvdQ" name="getHospitalCourseSection" isQuery="true" bodyCondition="_tobtSiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tobtSiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tobtRyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtSyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HospitalCourseSection))->asSequence()->first().oclAsType(hitsp::HospitalCourseSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tobtSCWbEeGCz74CaMtvdQ" type="_J1pl8MidEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tobtSSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tobtTiWbEeGCz74CaMtvdQ" name="getMedicalEquipmentSection" isQuery="true" bodyCondition="_tobtUSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tobtUSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tobtTiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtUiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::MedicalEquipmentSection))->asSequence()->first().oclAsType(hitsp::MedicalEquipmentSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tobtTyWbEeGCz74CaMtvdQ" type="_d9cy8MijEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tobtUCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tobtVSWbEeGCz74CaMtvdQ" name="getPhysicalExamSection" isQuery="true" bodyCondition="_tobtWCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tobtWCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tobtVSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tobtWSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PhysicalExamSection))->asSequence()->first().oclAsType(hitsp::PhysicalExamSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tobtViWbEeGCz74CaMtvdQ" type="_XaZ6wMf1Ed6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tobtVyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tok3MiWbEeGCz74CaMtvdQ" name="getPlanOfCareSection" isQuery="true" bodyCondition="_tok3NSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tok3NSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tok3MiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3NiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::PlanOfCareSection))->asSequence()->first().oclAsType(hitsp::PlanOfCareSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tok3MyWbEeGCz74CaMtvdQ" type="_SydBgMigEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tok3NCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tok3OSWbEeGCz74CaMtvdQ" name="getHistoryOfPastIllnessSection" isQuery="true" bodyCondition="_tok3PCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tok3PCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tok3OSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3PSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::HistoryOfPastIllnessSection))->asSequence()->first().oclAsType(hitsp::HistoryOfPastIllnessSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tok3OiWbEeGCz74CaMtvdQ" type="_lSC-0MfbEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tok3OyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_tok3QCWbEeGCz74CaMtvdQ" name="getReviewOfSystemsSection" isQuery="true" bodyCondition="_tok3QyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tok3QyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tok3QCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tok3RCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::ReviewOfSystemsSection))->asSequence()->first().oclAsType(hitsp::ReviewOfSystemsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tok3QSWbEeGCz74CaMtvdQ" type="_GuZI0MiXEd6mWrHPmrIIfQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tok3QiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_touoMCWbEeGCz74CaMtvdQ" name="getMedicationsAdministeredSection" isQuery="true" bodyCondition="_touoMyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_touoMyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_touoMCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_touoNCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::MedicationsAdministeredSection))->asSequence()->first().oclAsType(hitsp::MedicationsAdministeredSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_touoMSWbEeGCz74CaMtvdQ" type="_u9U54MfyEd6VjLXh4DcWSg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_touoMiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_touoNyWbEeGCz74CaMtvdQ" name="getVitalSignsSection" isQuery="true" bodyCondition="_touoOiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_touoOiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_touoNyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_touoOyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(hitsp::VitalSignsSection))->asSequence()->first().oclAsType(hitsp::VitalSignsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_touoOCWbEeGCz74CaMtvdQ" type="_L9yGgK7HEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_touoOSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_I06IEMhGEeCHk-lvWGDTdA" name="SocialHistory">
      <ownedRule xmi:id="_tpLULCWbEeGCz74CaMtvdQ" name="SocialHistoryTemplateId" constrainedElement="_I06IEMhGEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpLULSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.1.33')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpUeECWbEeGCz74CaMtvdQ" name="SocialHistoryCode" constrainedElement="_I06IEMhGEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpUeESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '160573003' or value.code = '363908000' or value.code = '364703007' or value.code = '256235009' or value.code = '228272008' or value.code = '364393001' or value.code = '229819007' or value.code = '425400000')))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpUeEiWbEeGCz74CaMtvdQ" name="SocialHistoryEffectiveTime" constrainedElement="_I06IEMhGEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpUeEyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpUeFCWbEeGCz74CaMtvdQ" name="SocialHistoryText" constrainedElement="_I06IEMhGEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpUeFSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_I06vIMhGEeCHk-lvWGDTdA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_oapRoMhEEeCHk-lvWGDTdA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_kce00Mm2EeCDOYZyQPaRHg" name="FamilyHistory">
      <ownedRule xmi:id="_9vUVkMm3EeCDOYZyQPaRHg" name="FamilyHistoryRelatedSubjectCodeValueSet">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_x6xMoMm7EeCDOYZyQPaRHg">
          <language>OCL</language>
          <body>self.subject.relatedSubject.code.codeSystem = '2.16.840.1.113883.5.111'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_TGqJwMm8EeCDOYZyQPaRHg" name="FamilyHistoryHasFamilyName">
        <ownedComment xmi:id="_YpL-MMm8EeCDOYZyQPaRHg">
          <body>The family member name need not be the actual name of the family member. It may be a string (such as aunt1 or aunt2) to help the patient and providers distinguish between different family members with the same relationship to the patient</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_V0khgMm8EeCDOYZyQPaRHg">
          <language>OCL</language>
          <body>self.subject.relatedSubject.subject.name->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_lGBSUMm8EeCDOYZyQPaRHg" name="FamilyHistoryHasGenderCode" constrainedElement="_TGqJwMm8EeCDOYZyQPaRHg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_uSawcMm8EeCDOYZyQPaRHg">
          <language>OCL</language>
          <body>self.subject.relatedSubject.subject.administrativeGenderCode.codeSystem = '2.16.840.1.113883.5.1' and (self.subject.relatedSubject.subject.administrativeGenderCode.code = 'F' or self.subject.relatedSubject.subject.administrativeGenderCode.code='M' or self.subject.relatedSubject.subject.administrativeGenderCode.code='UN')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_azf0cMnOEeCDOYZyQPaRHg" name="FamilyHistoryFamilyMemberCondition">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_fWAWUMnOEeCDOYZyQPaRHg">
          <language>OCL</language>
          <body>self.getObservations()->exists(obs : cda::Observation | obs.oclIsKindOf(ihe::FamilyHistoryObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpePFyWbEeGCz74CaMtvdQ" name="FamilyHistoryTemplateId" constrainedElement="_kce00Mm2EeCDOYZyQPaRHg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpePGCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.18')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tpxKACWbEeGCz74CaMtvdQ" name="FamilyHistoryProblemStatusObservation" constrainedElement="_kce00Mm2EeCDOYZyQPaRHg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tpxKASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.component->exists(component : cda::Component4 | not component.observation.oclIsUndefined() and component.observation.oclIsKindOf(ihe::ProblemStatusObservation))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_kce00cm2EeCDOYZyQPaRHg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_7wLKkMkCEeChgrgmBsw26A"/>
      </generalization>
      <ownedOperation xmi:id="_tp67ACWbEeGCz74CaMtvdQ" name="getProblemStatusObservations" isQuery="true" bodyCondition="_tp67AyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tp67AyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tp67ACWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tp67BCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemStatusObservation)).oclAsType(ihe::ProblemStatusObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tp67ASWbEeGCz74CaMtvdQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_s7LQECQNEeCxCon8a79rfA"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tp67AiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ZsqjcMzoEeCvbrjDQpuvkw" name="AdvanceDirective">
      <ownedComment xmi:id="_kMpecMzqEeCvbrjDQpuvkw">
        <body>This module contains data describing the patient's Advance Directives and any reference to supporting documentation. This section contains data such as the existence of living wills, healthcare proxies and CPR and resuscitation status. The custodian of these documents may be described.</body>
      </ownedComment>
      <ownedRule xmi:id="_N7MZIMzrEeCvbrjDQpuvkw" name="AdvanceDirectiveHasStartingTime" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_R8gScMzrEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.effectiveTime.low.hasContent()  or self.effectiveTime.low.isNullFlavorDefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_480sUMzrEeCvbrjDQpuvkw" name="AdvanceDirectiveHasEndingTime" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_6SISYMzrEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.effectiveTime.high.hasContent() or self.effectiveTime.high.isNullFlavorDefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_LOLj0MzsEeCvbrjDQpuvkw" name="AdvanceDirectiveHasCustodian" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Mtn9UMzsEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.participant.participantRole->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_PEvlsMzsEeCvbrjDQpuvkw" name="AdvanceDirectiveParticipantTypeCode" constrainedElement="_LOLj0MzsEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_QASn8MzsEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.participant->one(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CST)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_d8hSQMzsEeCvbrjDQpuvkw" name="AdvanceDirectiveParticipantRoleClassCode" constrainedElement="_PEvlsMzsEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_jHaCwMzsEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.participant.participantRole->one(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::AGNT)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_o8auUMzsEeCvbrjDQpuvkw" name="AdvanceDirectiveHasAddress" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_x0Rf0MzsEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.participant.participantRole.addr->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_5MYV0MzsEeCvbrjDQpuvkw" name="AdvanceDirectiveHasTelecom" constrainedElement="_o8auUMzsEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_8rAY0MzsEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.participant.participantRole.telecom->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_AA1sMMztEeCvbrjDQpuvkw" name="AdvanceDirectiveHasNameOfAgent" constrainedElement="_5MYV0MzsEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7a0QMztEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.participant.participantRole.playingEntity.name->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tp67BSWbEeGCz74CaMtvdQ" name="AdvanceDirectiveTemplateId" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tp67BiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.12')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqN18CWbEeGCz74CaMtvdQ" name="AdvanceDirectiveObservationCode" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqN18SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '281789004' or value.code = '89666000' or value.code = '225204009' or value.code = '52765003' or value.code = '78823007' or value.code = '304251008')))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tqN18iWbEeGCz74CaMtvdQ" name="AdvanceDirectiveEffectiveTime" constrainedElement="_ZsqjcMzoEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqN18yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ZsrKgMzoEeCvbrjDQpuvkw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_JkYOEMzkEeCvbrjDQpuvkw"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_WwjwsNJkEeCJq4tpS2QhbQ" name="ResultOrganizer">
      <ownedComment xmi:id="_jvqEYNJkEeCJq4tpS2QhbQ">
        <body>Non-template subclasss of CCD ResultOrganizer that requires entires to be HITSP Result.</body>
      </ownedComment>
      <ownedRule xmi:id="_tqgw4CWbEeGCz74CaMtvdQ" name="HITSPResultOrganizerResult" constrainedElement="_WwjwsNJkEeCJq4tpS2QhbQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw4SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.component->exists(component : cda::Component4 | not component.observation.oclIsUndefined() and component.observation.oclIsKindOf(hitsp::Result))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_WwkXwNJkEeCJq4tpS2QhbQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_Ht_RsHDAEd6eItyqb1FoWg"/>
      </generalization>
      <ownedOperation xmi:id="_tqgw4yWbEeGCz74CaMtvdQ" name="getResults" isQuery="true" bodyCondition="_tqgw5iWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_tqgw5iWbEeGCz74CaMtvdQ" name="body" constrainedElement="_tqgw4yWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_tqgw5yWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(hitsp::Result)).oclAsType(hitsp::Result)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_tqgw5CWbEeGCz74CaMtvdQ" type="_oTzNMDIWEd-SYNRf-pkwtw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_tqgw5SWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ysYZ0BuLEeG6kfZwwf5nmQ" name="PlannedProcedure">
      <generalization xmi:id="_2VvGIBuLEeG6kfZwwf5nmQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_9xEuEDuNEd-B8KE6Jx0UNQ"/>
      </generalization>
      <generalization xmi:id="_6oXY8BuLEeG6kfZwwf5nmQ" general="_KYNNMKDlEd-dVeaMP0XXQw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_AnLgwBuMEeG6kfZwwf5nmQ" name="PastProcedure">
      <generalization xmi:id="_EICYYBuMEeG6kfZwwf5nmQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_6yfdEDuNEd-B8KE6Jx0UNQ"/>
      </generalization>
      <generalization xmi:id="_F0hIUBuMEeG6kfZwwf5nmQ" general="_KYNNMKDlEd-dVeaMP0XXQw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_tgrfcSWbEeGCz74CaMtvdQ" name="HITSPRegistryDelegate" clientDependency="_tgrfciWbEeGCz74CaMtvdQ">
      <interfaceRealization xmi:id="_tgrfciWbEeGCz74CaMtvdQ" client="_tgrfcSWbEeGCz74CaMtvdQ">
        <supplier xmi:type="uml:Interface" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_M9TsYBgbEd-f6JfqlBX7nQ"/>
        <contract href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_M9TsYBgbEd-f6JfqlBX7nQ"/>
      </interfaceRealization>
    </packagedElement>
    <profileApplication xmi:id="_qQyD9zxVEd6JwqSGecoePg">
      <eAnnotations xmi:id="_qQyD-DxVEd6JwqSGecoePg" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Standard.profile.uml#_yzU58YinEdqtvbnfB2L_5w"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UML_PROFILES/Standard.profile.uml#_0"/>
    </profileApplication>
    <profileApplication xmi:id="_aMu68IwJEd6B6JSUB00H7g">
      <eAnnotations xmi:id="_aMviAIwJEd6B6JSUB00H7g" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="http://www.openhealthtools.org/mdht/schemas/cda/4#/"/>
      </eAnnotations>
      <appliedProfile href="pathmap://CDA_PROFILES/CDA.profile.uml#_cxOJEIEVEd6H8o-hO3-B4Q"/>
    </profileApplication>
    <profileApplication xmi:id="_tffMoCWbEeGCz74CaMtvdQ">
      <eAnnotations xmi:id="_tffMoSWbEeGCz74CaMtvdQ" source="http://www.eclipse.org/uml2/2.0.0/UML">
        <references xmi:type="ecore:EPackage" href="pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA"/>
      </eAnnotations>
      <appliedProfile href="pathmap://UML_PROFILES/Ecore.profile.uml#_0"/>
    </profileApplication>
  </uml:Package>
  <CDA:CDATemplate xmi:id="_wcI-sHcIEd6ZeOKq_2_a9g" base_Class="_wDMM0GEHEd6bFO5yxRh3Nw" templateId="2.16.840.1.113883.3.88.11.32.1" assigningAuthorityName="HITSP C32">
    <ruleId>C32-[CT1-19]</ruleId>
  </CDA:CDATemplate>
  <CDA:CodegenSupport xmi:id="_lVjhYJyPEd6BO7rW3XxHIA" basePackage="org.openhealthtools.mdht.uml.cda" nsPrefix="hitsp" nsURI="http://www.openhealthtools.org/mdht/uml/cda/hitsp" packageName="hitsp" prefix="HITSP" base_Namespace="_qQyD8jxVEd6JwqSGecoePg"/>
  <CDA:PropertyValidation xmi:id="_JvJwoJyQEd6BO7rW3XxHIA"/>
  <CDA:CDATemplate xmi:id="_4p-OEMfhEd6VjLXh4DcWSg" base_Class="_w51SkMfhEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.107" assigningAuthorityName="HITSP C83"/>
  <CDA:PropertyValidation xmi:id="_lkLxoxvjEd-yI6xBTkJSNw" severity="WARNING">
    <ruleId>C83-[DE-7.01-1]</ruleId>
    <ruleId>C83-[DE-7.01-2]</ruleId>
    <ruleId>C83-[DE-7.01-3]</ruleId>
  </CDA:PropertyValidation>
  <CDA:CDATemplate xmi:id="_HDAsgDIXEd-SYNRf-pkwtw" base_Class="_oTzNMDIWEd-SYNRf-pkwtw" templateId="2.16.840.1.113883.3.88.11.83.15.1">
    <ruleId>C83-[DE-15-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:CDATemplate xmi:id="_SV4acDuEEd-B8KE6Jx0UNQ" base_Class="_MdoNoDuEEd-B8KE6Jx0UNQ" templateId="2.16.840.1.113883.3.88.11.83.2">
    <ruleId>C83-[DE-2.01-CDA-2]</ruleId>
  </CDA:CDATemplate>
  <CDA:CDATemplate xmi:id="_hNtqADuHEd-B8KE6Jx0UNQ" base_Class="_ZNaLkDuHEd-B8KE6Jx0UNQ" templateId="2.16.840.1.113883.3.88.11.83.5" assigningAuthorityName="HITSP C83"/>
  <CDA:CDATemplate xmi:id="_t1Wf8DuHEd-B8KE6Jx0UNQ" base_Class="_pOKSYDuHEd-B8KE6Jx0UNQ" templateId="2.16.840.1.113883.3.88.11.83.4" assigningAuthorityName="HITSP C83"/>
  <CDA:CDATemplate xmi:id="_MUro4EveEd-GNbUQBie2ig" base_Class="_B973gEveEd-GNbUQBie2ig" templateId="2.16.840.1.113883.3.88.11.83.11">
    <ruleId>C83-[DE-10-CDA-2]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_ngc3kEyXEd-GNbUQBie2ig" severity="INFO" base_Constraint="_mYOrQEyXEd-GNbUQBie2ig">
    <ruleId>C32-[CT1-6]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConformsTo xmi:id="_rGJ9gFF6Ed-Lud-5SYZhMw" base_Generalization="_0EOJQKRmEd6t_4WfM070fA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_rGJ9gVF6Ed-Lud-5SYZhMw" base_Generalization="_na8Y0EmfEd-v4PAJSUtbvQ"/>
  <CDA:ConformsTo xmi:id="_rGO2AFF6Ed-Lud-5SYZhMw" base_Generalization="_yYzyAMfhEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_rGZOEFF6Ed-Lud-5SYZhMw" base_Generalization="_oT1CYDIWEd-SYNRf-pkwtw" requiresParentId="true">
    <ruleId>[C83-[DE-15-CDA-3]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGZOEVF6Ed-Lud-5SYZhMw" base_Generalization="_S1FzcDIXEd-SYNRf-pkwtw" requiresParentId="true">
    <ruleId>C83-[DE-15-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGZ1IFF6Ed-Lud-5SYZhMw" base_Generalization="_Md7IkDuEEd-B8KE6Jx0UNQ" requiresParentId="true">
    <ruleId>C83-[DE-2.01-CDA-3]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGacMFF6Ed-Lud-5SYZhMw" base_Generalization="_ZNaLkTuHEd-B8KE6Jx0UNQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_rGbDQFF6Ed-Lud-5SYZhMw" base_Generalization="_pOUDYDuHEd-B8KE6Jx0UNQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_rGbqUVF6Ed-Lud-5SYZhMw" base_Generalization="_B973gUveEd-GNbUQBie2ig" requiresParentId="true">
    <ruleId>C83-[DE-10-CDA-3]</ruleId>
  </CDA:ConformsTo>
  <CDA:CDATemplate xmi:id="_PFSnYKDlEd-dVeaMP0XXQw" base_Class="_KYNNMKDlEd-dVeaMP0XXQw" templateId="2.16.840.1.113883.3.88.11.83.17" contextDependent="true">
    <ruleId>C83-[DE-17-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_gkawsKDlEd-dVeaMP0XXQw" requiresParentId="true">
    <ruleId>C83-[DE-17-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:PropertyValidation xmi:id="_cclAsKrtEd-yFfcbpgNFIA" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_tSizEKr_Ed-yFfcbpgNFIA" severity="WARNING" base_Constraint="_o4kiIKr_Ed-yFfcbpgNFIA"/>
  <CDA:CDATemplate xmi:id="_ZCuIQO3xEd-dJvThfIiQuA" base_Class="_VWfHEO3xEd-dJvThfIiQuA" templateId="2.16.840.1.113883.3.88.11.83.3"/>
  <CDA:CDATemplate xmi:id="_eG8QEO3xEd-dJvThfIiQuA" base_Class="_ci4cUO3xEd-dJvThfIiQuA" templateId="2.16.840.1.113883.3.88.11.83.3"/>
  <CDA:ConformsTo xmi:id="_l04kAO5xEd-70KBGpEgX1Q" base_Generalization="_ci5qcO3xEd-dJvThfIiQuA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_n_KqQO5xEd-70KBGpEgX1Q" base_Generalization="_VWfuIO3xEd-dJvThfIiQuA" requiresParentId="true"/>
  <CDA:PropertyValidation xmi:id="_ysSzUO7JEd-iKq5sSX9U2w" severity="INFO"/>
  <CDA:PropertyValidation xmi:id="_4GWBMO7JEd-iKq5sSX9U2w" severity="WARNING"/>
  <CDA:PropertyValidation xmi:id="_-h_2AO7JEd-iKq5sSX9U2w" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_VlY5IO7KEd-iKq5sSX9U2w"/>
  <CDA:ConstraintValidation xmi:id="_CTiuEPM1Ed-FxO0PukiqhA" severity="WARNING" base_Constraint="_8u1IUPM0Ed-FxO0PukiqhA"/>
  <CDA:ConstraintValidation xmi:id="_FTuhkPM1Ed-FxO0PukiqhA" base_Constraint="_EbnN0PM1Ed-FxO0PukiqhA"/>
  <CDA:CDATemplate xmi:id="_cxLtwPdXEd-aZohBEt6atA" base_Class="__8-JUPG1Ed-FxO0PukiqhA" templateId="2.16.840.1.113883.3.88.11.62.1"/>
  <CDA:ConstraintValidation xmi:id="_Q1DGwPyYEd-RgJ5u3I0u5A" severity="WARNING" base_Constraint="_MztYQPyYEd-RgJ5u3I0u5A">
    <ruleId>C83-[DE-2.01-CDA-5]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_5yVLUBdtEeCf9aMNaCAtDQ" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_6S2ecBdtEeCf9aMNaCAtDQ" base_Constraint="_05OHUBdtEeCf9aMNaCAtDQ"/>
  <CDA:ConstraintValidation xmi:id="_Qey1ABeWEeCf9aMNaCAtDQ" severity="WARNING" base_Constraint="_K7iAwBeWEeCf9aMNaCAtDQ">
    <ruleId>C154-[DE-15.03-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_SqvvMBeWEeCf9aMNaCAtDQ" severity="WARNING" base_Constraint="_N2G7gBeWEeCf9aMNaCAtDQ">
    <ruleId>C154-[DE-15.03-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_zVypEBeWEeCf9aMNaCAtDQ" base_Constraint="_yfmA4BeWEeCf9aMNaCAtDQ">
    <ruleId>C83-[DE-15.05-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_PtYh8Cl4EeCXiupwzMk--A">
    <ruleId>C83-[DE-7.04-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_WeiNM1WMEeCrQoPO8cZUSQ" severity="WARNING">
    <ruleId>CONF-433</ruleId>
  </CDA:PropertyValidation>
  <CDA:CDATemplate xmi:id="_aaTp4MHiEeC8rcpLzgYlNw" base_Class="_YwJOIMHiEeC8rcpLzgYlNw" templateId="2.16.840.1.113883.3.88.11.48.1"/>
  <CDA:CDATemplate xmi:id="_jLUMgMHiEeC8rcpLzgYlNw" base_Class="_iSKW8MHiEeC8rcpLzgYlNw" templateId="2.16.840.1.113883.3.88.11.48.2"/>
  <CDA:ConformsTo xmi:id="_UmSVoMIKEeCisoL14TrR_Q" base_Generalization="_iSKW8cHiEeC8rcpLzgYlNw">
    <ruleId>C48-[CT3-1]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_oNawIMNxEeCZQPUDKP01pg" base_Generalization="_1wnE0MNwEeCZQPUDKP01pg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_J5ubEMhGEeCHk-lvWGDTdA" base_Generalization="_I06vIMhGEeCHk-lvWGDTdA" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_LicFUMhGEeCHk-lvWGDTdA" base_Class="_I06IEMhGEeCHk-lvWGDTdA" templateId="2.16.840.1.113883.10.20.1.33"/>
  <CDA:CDATemplate xmi:id="_nGiAQMm2EeCDOYZyQPaRHg" base_Class="_kce00Mm2EeCDOYZyQPaRHg" templateId="2.16.840.1.113883.3.88.11.83.18" assigningAuthorityName="HITSP"/>
  <CDA:ConformsTo xmi:id="_opnjoMm2EeCDOYZyQPaRHg" base_Generalization="_kce00cm2EeCDOYZyQPaRHg" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_sxFWAMm7EeCDOYZyQPaRHg" base_Constraint="_9vUVkMm3EeCDOYZyQPaRHg"/>
  <CDA:ConstraintValidation xmi:id="_rf0wMMnAEeCDOYZyQPaRHg" severity="WARNING" base_Constraint="_TGqJwMm8EeCDOYZyQPaRHg"/>
  <CDA:ConstraintValidation xmi:id="_r6eE0MnAEeCDOYZyQPaRHg" base_Constraint="_lGBSUMm8EeCDOYZyQPaRHg"/>
  <CDA:AssociationValidation xmi:id="_OAJsgMnIEeCDOYZyQPaRHg" severity="WARNING"/>
  <CDA:ConformsTo xmi:id="_ouc7IMnIEeCDOYZyQPaRHg" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_gFnOUMnOEeCDOYZyQPaRHg" base_Constraint="_azf0cMnOEeCDOYZyQPaRHg"/>
  <CDA:ConformsTo xmi:id="_aUWOgMzoEeCvbrjDQpuvkw" base_Generalization="_ZsrKgMzoEeCvbrjDQpuvkw" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_oGKtsMzqEeCvbrjDQpuvkw" base_Class="_ZsqjcMzoEeCvbrjDQpuvkw" templateId="2.16.840.1.113883.3.88.11.83.12"/>
  <CDA:ConstraintValidation xmi:id="_SLZqEMzrEeCvbrjDQpuvkw" base_Constraint="_N7MZIMzrEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_6eEcoMzrEeCvbrjDQpuvkw" base_Constraint="_480sUMzrEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_M7ZTkMzsEeCvbrjDQpuvkw" base_Constraint="_LOLj0MzsEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_S2rmQMzsEeCvbrjDQpuvkw" base_Constraint="_PEvlsMzsEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_jV6_4MzsEeCvbrjDQpuvkw" base_Constraint="_d8hSQMzsEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_18t74MzsEeCvbrjDQpuvkw" base_Constraint="_o8auUMzsEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_84y9MMzsEeCvbrjDQpuvkw" base_Constraint="_5MYV0MzsEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_GXnoEMztEeCvbrjDQpuvkw" base_Constraint="_AA1sMMztEeCvbrjDQpuvkw"/>
  <CDA:ConstraintValidation xmi:id="_3_jykM_7EeCBBsup3soRig" base_Constraint="_m7vFMM_7EeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_4on9sM_7EeCBBsup3soRig" severity="WARNING" base_Constraint="_HTgTMM_7EeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_5KQEEM_7EeCBBsup3soRig" base_Constraint="_cqdCoM_7EeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_-WS1sM_8EeCBBsup3soRig" severity="INFO" base_Constraint="_R1oYsM_8EeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_FnR6kM_-EeCBBsup3soRig" severity="INFO" base_Constraint="__QcJwM_8EeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_Rwv74NAAEeCBBsup3soRig" severity="WARNING" base_Constraint="_Uf77cM__EeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_aO9eUNAAEeCBBsup3soRig" severity="WARNING" base_Constraint="_TH8_YNAAEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_FarFINACEeCBBsup3soRig" base_Constraint="_4Eu-wNABEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_Mj7m0NACEeCBBsup3soRig" severity="WARNING" base_Constraint="_Hn5xsNACEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_l-AtINAFEeCBBsup3soRig" base_Constraint="_gCei0NAFEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_4rtF4NAGEeCBBsup3soRig" base_Constraint="_nusAkNAFEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_XB5BMNAHEeCBBsup3soRig" base_Constraint="_EvC78NAHEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_feaIQNAMEeCBBsup3soRig" base_Constraint="_qNUCUNAJEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_UluAENAPEeCBBsup3soRig" base_Constraint="_254UMNAMEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_1lBSsNAPEeCBBsup3soRig" severity="WARNING" base_Constraint="_VujQYNAPEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_YoVkINATEeCBBsup3soRig" severity="WARNING" base_Constraint="_UZRisNATEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_vgIbQNATEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_jR9_0NAUEeCBBsup3soRig" severity="WARNING" base_Constraint="_hO80oNATEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_8Y7nwNAVEeCBBsup3soRig" base_Constraint="_f6vv4NAVEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_xH01ANAXEeCBBsup3soRig" base_Constraint="_p9TvENAXEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_E7DH4NAYEeCBBsup3soRig" base_Constraint="_8_IaMNAXEeCBBsup3soRig"/>
  <CDA:ConstraintValidation xmi:id="_JTVTsOSFEeCaNryByvFiHA" base_Constraint="_-5a5kOSEEeCaNryByvFiHA"/>
  <CDA:CDATemplate xmi:id="_t9ej4HcIEd6ZeOKq_2_a9g" base_Class="_vB4EUGEIEd6bFO5yxRh3Nw" templateId="2.16.840.1.113883.3.88.11.83.6" assigningAuthorityName="HITSP C83">
    <ruleId>C83-[DE-6-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:CDATemplate xmi:id="_Ymm44MfZEd6VjLXh4DcWSg" base_Class="_VGnj8MfZEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.102" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGFsEFF6Ed-Lud-5SYZhMw" base_Generalization="_hsBnwHrWEd68l9lQ-TLEBQ" requiresParentId="true">
    <ruleId>C83-[DE-6-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGMZwFF6Ed-Lud-5SYZhMw" base_Generalization="_Xue-EMfZEd6VjLXh4DcWSg" requiresParentId="true">
    <ruleId>C83-[CT-102-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:NullFlavor xmi:id="_dBUvUFf-EeCQ8PeHNHg5Pw" nullFlavor="NA">
    <ruleId>CONF-149</ruleId>
  </CDA:NullFlavor>
  <CDA:ConstraintValidation xmi:id="_62X3AFf_EeCQ8PeHNHg5Pw" base_Constraint="_ct19MFf_EeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_66mykFgGEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_SSDPkFgGEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_7rakcFgGEeCQ8PeHNHg5Pw" base_Constraint="_UXaZkFgGEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_8S73cFgGEeCQ8PeHNHg5Pw" base_Constraint="_V-aMkFgGEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_8xv6YFgGEeCQ8PeHNHg5Pw" base_Constraint="_tJTl4FgGEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_9eNXwFgGEeCQ8PeHNHg5Pw" base_Constraint="_us4RcFgGEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_91XTgFgGEeCQ8PeHNHg5Pw" base_Constraint="_wMseYFgGEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_NYWY4FgKEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_BD2hYFgKEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_OpbmQFgKEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_Ep2-wFgKEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_KdQrUFgLEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_-2bLEFgKEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_X5oJ0FgLEeCQ8PeHNHg5Pw" base_Constraint="_ET5gYFgLEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_WFNJYFgMEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_hEbi8Ff_EeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_c4NuQFgMEeCQ8PeHNHg5Pw" base_Constraint="_r6TC0FgLEeCQ8PeHNHg5Pw">
    <ruleId>C154-[DE-6.04-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_dPbUYFgMEeCQ8PeHNHg5Pw" base_Constraint="_td0rEFgLEeCQ8PeHNHg5Pw">
    <ruleId>C154-[DE-6.04-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_dj9Z8FgMEeCQ8PeHNHg5Pw" base_Constraint="_vuu9wFgLEeCQ8PeHNHg5Pw">
    <ruleId>C154-[DE-6.04-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_eicbcFgMEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_DLF6sFgKEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_fvW6gFgMEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_HfqHMFgKEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_O-7NwFgNEeCQ8PeHNHg5Pw" base_Constraint="_siiSEFgMEeCQ8PeHNHg5Pw">
    <ruleId>C154-[DE-6.06-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_PYhZgFgNEeCQ8PeHNHg5Pw" base_Constraint="_tXWaMFgMEeCQ8PeHNHg5Pw">
    <ruleId>C154-[DE-6.08-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_P_M_AFgNEeCQ8PeHNHg5Pw" base_Constraint="_WLsBUFgLEeCQ8PeHNHg5Pw">
    <ruleId>C154-[DE-6.02-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_vuEXwHcIEd6ZeOKq_2_a9g" base_Class="_IjIO0DxbEd6JwqSGecoePg" templateId="2.16.840.1.113883.3.88.11.83.8" assigningAuthorityName="HITSP C83" contextDependent="true">
    <ruleId>C83-[DE-8-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:CDATemplate xmi:id="_dtEk8MfwEd6VjLXh4DcWSg" base_Class="_WI3zsMfwEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.112" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGIvYFF6Ed-Lud-5SYZhMw" base_Generalization="_w0bkkHrGEd68l9lQ-TLEBQ" requiresParentId="true">
    <ruleId>C83-[DE-8-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGRSQFF6Ed-Lud-5SYZhMw" base_Generalization="_Y4PkAMfwEd6VjLXh4DcWSg" requiresParentId="true">
    <ruleId>C83-[CT-112-1]</ruleId>
  </CDA:ConformsTo>
  <CDA:CDATemplate xmi:id="_Pfi-8JqZEd-B4IL9pc6oFQ" base_Class="_RuVlIFI0Ed-4TsxSz4jnfg"/>
  <CDA:ConstraintValidation xmi:id="_hcmiQOxaEd-JOaR14t7EwQ" base_Constraint="_frFhUOxaEd-JOaR14t7EwQ">
    <ruleId>C83-[DE-8-CDA-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_cQmfkEwiEeCN6rMvTBre1A" severity="INFO" base_Constraint="_QG0qUEwiEeCN6rMvTBre1A">
    <ruleId>C154-[DE-8.08-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_IWiD0E5REeC-IOl-lQ-2xA" severity="INFO"/>
  <CDA:ConstraintValidation xmi:id="_PFE_cE5REeC-IOl-lQ-2xA" severity="INFO" base_Constraint="_Khe4cE5REeC-IOl-lQ-2xA">
    <ruleId>C83-[DE-8.12-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_nbi-QPyzEd-RgJ5u3I0u5A" base_Class="_ex_ugPyzEd-RgJ5u3I0u5A" templateId="2.16.840.1.113883.3.88.11.83.8.2">
    <ruleId>C83-[DE-8-CDA-5]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_tbnqUPyzEd-RgJ5u3I0u5A" requiresParentId="true">
    <ruleId>C83-[DE-8-CDA-4]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_3ZBOQE5aEeC-IOl-lQ-2xA" base_Generalization="_ZxMHYE5SEeC-IOl-lQ-2xA" requiresParentId="true">
    <ruleId>C83-[DE-8-CDA-4]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConstraintValidation xmi:id="_XP114E5bEeC-IOl-lQ-2xA" base_Constraint="_WCCmAE5bEeC-IOl-lQ-2xA"/>
  <CDA:ConstraintValidation xmi:id="_gzAYwE5cEeC-IOl-lQ-2xA" base_Constraint="_cGx6ME5cEeC-IOl-lQ-2xA">
    <ruleId>C83-[DE-8.13-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_5dXZsE5cEeC-IOl-lQ-2xA" base_Constraint="_xys0EE5cEeC-IOl-lQ-2xA">
    <ruleId>C154-[DE-8.13-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_6Q_PAE5cEeC-IOl-lQ-2xA" severity="INFO" base_Constraint="_2aeQcE5cEeC-IOl-lQ-2xA">
    <ruleId>C154-[DE-8.13-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_FPoUkE5iEeC-IOl-lQ-2xA" base_Constraint="_2bejwE5hEeC-IOl-lQ-2xA">
    <ruleId>C83-[DE-8.14-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_uTcQME5iEeC-IOl-lQ-2xA" base_Constraint="_PKv54E5iEeC-IOl-lQ-2xA">
    <ruleId>C154-[DE-8.14-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_HRZFEE5vEeC-IOl-lQ-2xA" base_Constraint="_FNdecE5vEeC-IOl-lQ-2xA">
    <ruleId>C83-[DE-8.15-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_hZL34E5wEeC-IOl-lQ-2xA" base_Constraint="_RuyRAE5vEeC-IOl-lQ-2xA">
    <ruleId>C83-[DE-8.14-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_UdWhUE51EeC-IOl-lQ-2xA" base_Class="_NC6JAE51EeC-IOl-lQ-2xA" templateId="2.16.840.1.113883.3.88.11.83.8.1">
    <ruleId>C83-[DE-8.19-CDA-1]</ruleId>
    <ruleId>C83-[DE-8.19-CDA-4]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_dGWXcE51EeC-IOl-lQ-2xA" severity="INFO">
    <ruleId>C83-[DE-8.19-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConformsTo xmi:id="_qvqFwE51EeC-IOl-lQ-2xA" base_Generalization="_NC6JAU51EeC-IOl-lQ-2xA">
    <ruleId>C83-[DE-8.19-CDA-3]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConstraintValidation xmi:id="_-0M94E6QEeC7C4Qxze6ysQ" severity="INFO" base_Constraint="_8zg4gE6QEeC7C4Qxze6ysQ">
    <ruleId>C154-[DE-8.20-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_t9YqYE6TEeC7C4Qxze6ysQ" severity="INFO" base_Constraint="_jMwZYE6TEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.20-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_2P6hQE6TEeC7C4Qxze6ysQ" base_Constraint="_wST6YE6TEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.20-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_5D7hAE6TEeC7C4Qxze6ysQ" base_Constraint="_3tCmkE6TEeC7C4Qxze6ysQ">
    <ruleId>C154-[DE-8.20-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_dIsTQE6VEeC7C4Qxze6ysQ" severity="INFO" base_Constraint="_xDmX8E6UEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.22-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_PfjcsE6YEeC7C4Qxze6ysQ" severity="INFO" base_Constraint="_XYIX8E6XEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.24-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_Ui1wYE6YEeC7C4Qxze6ysQ" base_Constraint="_S3awYE6YEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.24-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_ahSr0E6YEeC7C4Qxze6ysQ" base_Constraint="_YpO-AE6YEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.24-CDA-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_uoC-sE6YEeC7C4Qxze6ysQ" base_Constraint="_scyoEE6YEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.24-CDA-4]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_5v7SEE6YEeC7C4Qxze6ysQ" base_Constraint="_zk7vcE6YEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.24-CDA-5]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_BKXqYE6ZEeC7C4Qxze6ysQ" severity="INFO" base_Constraint="__E7A0E6YEeC7C4Qxze6ysQ">
    <ruleId>C83-[DE-8.24-CDA-6]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_2x4-ME6ZEeC7C4Qxze6ysQ" base_Constraint="_ELLI8E6ZEeC7C4Qxze6ysQ">
    <ruleId>C154-[DE-8.24-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_xPSWME8mEeCYjrG3z1gQrQ" severity="WARNING">
    <ruleId>CONF-318</ruleId>
  </CDA:PropertyValidation>
  <CDA:CDATemplate xmi:id="_9zdBYE8mEeCYjrG3z1gQrQ" base_Class="_vMJZwE8mEeCYjrG3z1gQrQ" templateId="2.16.840.1.113883.3.88.11.83.8.3">
    <ruleId>C83-[DE-8-CDA-6]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_BRUPYE8nEeCYjrG3z1gQrQ" base_Generalization="_vMkQgE8mEeCYjrG3z1gQrQ" requiresParentId="true">
    <ruleId>C83-[DE-8-CDA-7]</ruleId>
  </CDA:ConformsTo>
  <CDA:PropertyValidation xmi:id="_ubJTQ08pEeCYjrG3z1gQrQ">
    <ruleId>CONF-322</ruleId>
  </CDA:PropertyValidation>
  <CDA:ConstraintValidation xmi:id="_hhwJgE8qEeCYjrG3z1gQrQ" base_Constraint="_gZ5JkE8qEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.26-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_1X6uwE9CEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.38-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_HhrMoE9HEeCYjrG3z1gQrQ" base_Constraint="_w2-9YE9GEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.34-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_LiOQ8E9HEeCYjrG3z1gQrQ" severity="WARNING" base_Constraint="__k3HEE9GEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.34-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_pt4acE9LEeCYjrG3z1gQrQ" severity="WARNING" base_Constraint="_ntSbsE9LEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.26-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_yAjbQE9LEeCYjrG3z1gQrQ" base_Constraint="_vCrU4E9LEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.26-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_AXj9EE9MEeCYjrG3z1gQrQ" base_Constraint="_uz6LAE9JEeCYjrG3z1gQrQ"/>
  <CDA:PropertyValidation xmi:id="_oWhvgE9XEeCYjrG3z1gQrQ" severity="WARNING">
    <ruleId>CONF-320</ruleId>
  </CDA:PropertyValidation>
  <CDA:ConstraintValidation xmi:id="_964o0E9XEeCYjrG3z1gQrQ" severity="WARNING" base_Constraint="_wxphsE9XEeCYjrG3z1gQrQ"/>
  <CDA:ConstraintValidation xmi:id="_jU3hkE9ZEeCYjrG3z1gQrQ" severity="INFO" base_Constraint="_7apEME9YEeCYjrG3z1gQrQ"/>
  <CDA:ConstraintValidation xmi:id="_0Brq4E9eEeCYjrG3z1gQrQ" severity="WARNING" base_Constraint="_xwwKEE9eEeCYjrG3z1gQrQ">
    <ruleId>C83-[DE-8.39-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_KcUvMJy_EeCtZqh8o0ACbw" base_Constraint="_0xRmsE9cEeCYjrG3z1gQrQ"/>
  <CDA:CDATemplate xmi:id="_uxtdMHcIEd6ZeOKq_2_a9g" base_Class="_GgvgUDxbEd6JwqSGecoePg" templateId="2.16.840.1.113883.3.88.11.83.7">
    <ruleId>C83-[DE-7-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:CDATemplate xmi:id="_f6v_cMfaEd6VjLXh4DcWSg" base_Class="_cPtREMfaEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.103" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_Sqad0E79Ed-qMv3VdH3jrA" base_Generalization="_H4qVgDxbEd6JwqSGecoePg" requiresParentId="true">
    <ruleId>C83-[DE-7-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGNA0FF6Ed-Lud-5SYZhMw" base_Generalization="_epE8MMfaEd6VjLXh4DcWSg" requiresParentId="true">
    <ruleId>C83-[CT-103-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConstraintValidation xmi:id="_xxKtMCl0EeCXiupwzMk--A" severity="WARNING" base_Constraint="_Lt80wCl0EeCXiupwzMk--A">
    <ruleId>C83-[DE-7.01-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_yQ1EsCl0EeCXiupwzMk--A" severity="WARNING" base_Constraint="_MZP0gCl0EeCXiupwzMk--A">
    <ruleId>C83-[DE-7.01-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_yswywCl0EeCXiupwzMk--A" severity="WARNING" base_Constraint="_NcASACl0EeCXiupwzMk--A">
    <ruleId>C83-[DE-7.01-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_V88woCl6EeCXiupwzMk--A" severity="INFO" base_Constraint="_PANoACl6EeCXiupwzMk--A">
    <ruleId>C83-[DE-7.05-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_cXWZgCmAEeCXiupwzMk--A" base_Constraint="_TVZQ0CmAEeCXiupwzMk--A">
    <ruleId>C83-[DE-7.05-CDA-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_gTiiQCmAEeCXiupwzMk--A" base_Constraint="_QbPM0CmAEeCXiupwzMk--A">
    <ruleId>C83-[DE-7.05-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_DpQWE5bDEeCcyetSDtbszQ" severity="WARNING"/>
  <CDA:CDATemplate xmi:id="_jNa14K7HEd6_ioDelDcPPg" base_Class="_L9yGgK7HEd6_ioDelDcPPg" templateId="2.16.840.1.113883.3.88.11.83.119" assigningAuthorityName="HITSP C83"/>
  <CDA:CDATemplate xmi:id="_j4cTYK7IEd6_ioDelDcPPg" base_Class="_dobt4K7IEd6_ioDelDcPPg" templateId="2.16.840.1.113883.3.88.11.83.14" assigningAuthorityName="HITSP">
    <ruleId>C83-[DE-14-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_AKv5IK7OEd6_ioDelDcPPg" base_Constraint="_hrcTgK7MEd6_ioDelDcPPg">
    <ruleId>C83-[CT-119-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConformsTo xmi:id="_rGKkkFF6Ed-Lud-5SYZhMw" base_Generalization="_VeaIMK7HEd6_ioDelDcPPg" requiresParentId="true">
    <ruleId>C83-[CT-119-1]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_rGLLoFF6Ed-Lud-5SYZhMw" requiresParentId="true">
    <ruleId>C83-[DE-14-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_MrDZEDSfEeC4N-P6mHDwgg" base_Generalization="_JFpYoDSfEeC4N-P6mHDwgg" requiresParentId="true">
    <ruleId>C83-[DE-14-CDA-2]</ruleId>
  </CDA:ConformsTo>
  <CDA:CDATemplate xmi:id="_8Urw0MfXEd6VjLXh4DcWSg" message="This section SHALL include entries from the Insurance Provider module when this information is known." base_Class="_DH404MfWEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.101" assigningAuthorityName="HITSP C83">
    <ruleId>C83-[CT-101-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_rGLysFF6Ed-Lud-5SYZhMw" base_Generalization="_1sbqcMfXEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_oW-vcMfbEd6VjLXh4DcWSg" base_Class="_lSC-0MfbEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.104" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGNA0VF6Ed-Lud-5SYZhMw" base_Generalization="_nhstQMfbEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_donFsMg0EeCHk-lvWGDTdA" base_Generalization="_YvqZwMg0EeCHk-lvWGDTdA" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_AxgIIMfdEd6VjLXh4DcWSg" base_Class="_9ugRMMfcEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.105" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGNn4FF6Ed-Lud-5SYZhMw" base_Generalization="__87QkMfcEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_hpBnIMg0EeCHk-lvWGDTdA" base_Generalization="_bHAmQMghEeCHk-lvWGDTdA" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_xMUGgMfdEd6VjLXh4DcWSg" base_Class="_bX2UoMfdEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.106" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGOO8FF6Ed-Lud-5SYZhMw" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_HTW8wM9MEeCBIMy4xFlonQ" base_Generalization="_QREUEM9LEeCBIMy4xFlonQ" requiresParentId="true"/>
  <uml:Association xmi:id="_AMET4KDmEd-dVeaMP0XXQw"/>
  <CDA:CDATemplate xmi:id="_VedPoMfuEd6VjLXh4DcWSg" base_Class="_OCM5cMfuEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.108" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGPdEFF6Ed-Lud-5SYZhMw" base_Generalization="_UcKsMMfuEd6VjLXh4DcWSg" requiresParentId="true">
    <ruleId>C83-[CT-108-1]</ruleId>
  </CDA:ConformsTo>
  <CDA:AssociationValidation xmi:id="_BsF8MKDmEd-dVeaMP0XXQw" base_Association="_AMET4KDmEd-dVeaMP0XXQw">
    <ruleId>C83-[CT-108-2]</ruleId>
  </CDA:AssociationValidation>
  <CDA:CDATemplate xmi:id="_qi550MfuEd6VjLXh4DcWSg" base_Class="_m5tlkMfuEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.109" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGPdEVF6Ed-Lud-5SYZhMw" base_Generalization="_pp-twMfuEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_oA9sEMfvEd6VjLXh4DcWSg" base_Class="_eg314MfvEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.110" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGQEIFF6Ed-Lud-5SYZhMw" base_Generalization="_m79y4MfvEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_JyDoAMfwEd6VjLXh4DcWSg" base_Class="_CEsTsMfwEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.111" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGQrMFF6Ed-Lud-5SYZhMw" base_Generalization="_HTsIIMfwEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_Jms3IMfxEd6VjLXh4DcWSg" base_Class="_CoUvwMfxEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.113" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGRSQVF6Ed-Lud-5SYZhMw" base_Generalization="_IMdGsMfxEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_exNQkMfyEd6VjLXh4DcWSg" base_Class="_OORpwMfyEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.114" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGR5UFF6Ed-Lud-5SYZhMw" base_Generalization="_TYzN4MfyEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_JaSg4MfzEd6VjLXh4DcWSg" base_Class="_u9U54MfyEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.115" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGSgYFF6Ed-Lud-5SYZhMw" base_Generalization="_-RLecMfyEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_x0oowMfzEd6VjLXh4DcWSg" base_Class="_uIr7cMfzEd6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.116" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGTHcFF6Ed-Lud-5SYZhMw" base_Generalization="_wzIIcMfzEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_johS4Mf0Ed6VjLXh4DcWSg" base_Class="_gHDXQMf0Ed6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.117" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGTugFF6Ed-Lud-5SYZhMw" base_Generalization="_iBayMMf0Ed6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_s4UlEDuJEd-B8KE6Jx0UNQ" base_Class="_qkWXUDuJEd-B8KE6Jx0UNQ" templateId="2.16.840.1.113883.3.88.11.83.13" assigningAuthorityName="HITSP C83"/>
  <CDA:ConstraintValidation xmi:id="_r-nhcFazEeCddY1UIvGtQg" base_Constraint="_qvCv8FazEeCddY1UIvGtQg"/>
  <CDA:ConformsTo xmi:id="_rGbqUFF6Ed-Lud-5SYZhMw" base_Generalization="_qkWXUTuJEd-B8KE6Jx0UNQ" requiresParentId="true"/>
  <CDA:ValueSetConstraint xmi:id="_KFeygGxZEeCVhdosyN0o1A">
    <reference href="../../org.openhealthtools.mdht.uml.term.models/model/hitsp-c80.uml#_dkykkaDqEd-dVeaMP0XXQw"/>
  </CDA:ValueSetConstraint>
  <CDA:ConstraintValidation xmi:id="_zINlICWaEeGCz74CaMtvdQ" base_Constraint="_tg8aoCWaEeGCz74CaMtvdQ">
    <ruleId>C154-[DE-13.06-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_mV4bkMf1Ed6VjLXh4DcWSg" base_Class="_XaZ6wMf1Ed6VjLXh4DcWSg" templateId="2.16.840.1.113883.3.88.11.83.118" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGTugVF6Ed-Lud-5SYZhMw" base_Generalization="_Yda28Mf1Ed6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_GDKgMM9MEeCBIMy4xFlonQ" base_Generalization="_FDo84M9MEeCBIMy4xFlonQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_Mkc9QMiXEd6mWrHPmrIIfQ" base_Class="_GuZI0MiXEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.120" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGUVkFF6Ed-Lud-5SYZhMw" base_Generalization="_H4oHUMiXEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_imN8kMidEd6mWrHPmrIIfQ" base_Class="_J1pl8MidEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.121" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGU8oFF6Ed-Lud-5SYZhMw" base_Generalization="_LTgrEMidEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_VbEUcMieEd6mWrHPmrIIfQ" base_Class="_P3GVkMieEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.122" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGVjsFF6Ed-Lud-5SYZhMw" base_Generalization="_RNzp0MieEd6mWrHPmrIIfQ" requiresParentId="true">
    <ruleId>C83-[CT-122-1]</ruleId>
  </CDA:ConformsTo>
  <CDA:ConstraintValidation xmi:id="_AjqWENJ3EeC41uAULQUMQw" base_Constraint="_4lp9sNJ2EeC41uAULQUMQw">
    <ruleId>C83-[CT-122-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_ryd-0MifEd6mWrHPmrIIfQ" base_Class="_ml82oMifEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.123" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGVjsVF6Ed-Lud-5SYZhMw" base_Generalization="_n1jdUMifEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_XUbX4MigEd6mWrHPmrIIfQ" base_Class="_SydBgMigEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.124" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGWKwFF6Ed-Lud-5SYZhMw" base_Generalization="_U9euoMigEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_d-bzoMNxEeCZQPUDKP01pg" base_Generalization="_cEYhwMNxEeCZQPUDKP01pg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_8IgjsMigEd6mWrHPmrIIfQ" base_Class="_4Mh2UMigEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.125" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGWx0FF6Ed-Lud-5SYZhMw" base_Generalization="_7ThccMigEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_CY01wMiiEd6mWrHPmrIIfQ" base_Class="_-ujjcMihEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.126" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGXY4FF6Ed-Lud-5SYZhMw" base_Generalization="_BW7T4MiiEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_Ld8KsMijEd6mWrHPmrIIfQ" base_Class="_F4b6wMijEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.127" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGXY4VF6Ed-Lud-5SYZhMw" base_Generalization="_KMB24MijEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_7ex_kKsQEd-yFfcbpgNFIA" base_Class="_x6SxkKsQEd-yFfcbpgNFIA" templateId="2.16.840.1.113883.3.88.11.83.16">
    <ruleId>C83-[DE-16-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_GURicKsREd-yFfcbpgNFIA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_nOAhkMNxEeCZQPUDKP01pg" base_Generalization="_47cCEMNwEeCZQPUDKP01pg" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_E4ChgMNyEeCZQPUDKP01pg" base_Constraint="_uHp58MNxEeCZQPUDKP01pg"/>
  <CDA:CDATemplate xmi:id="_hOYYMMijEd6mWrHPmrIIfQ" base_Class="_d9cy8MijEd6mWrHPmrIIfQ" templateId="2.16.840.1.113883.3.88.11.83.128" assigningAuthorityName="HITSP C83"/>
  <CDA:ConformsTo xmi:id="_rGX_8FF6Ed-Lud-5SYZhMw" base_Generalization="_gF0NoMijEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <Ecore:EPackage xmi:id="_tgFpkCWbEeGCz74CaMtvdQ" base_Package="_qQyD8jxVEd6JwqSGecoePg" packageName="hitsp" nsPrefix="hitsp" nsURI="http://www.openhealthtools.org/mdht/uml/cda/hitsp" basePackage="org.openhealthtools.mdht.uml.cda" prefix="HITSP">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation registryDelegate='HITSPRegistryDelegate'</annotation>
  </Ecore:EPackage>
  <Ecore:EClass xmi:id="_tgFpkyWbEeGCz74CaMtvdQ" base_Class="_vB4EUGEIEd6bFO5yxRh3Nw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.6' constraints.validation.error='AllergyDrugSensitivityTemplateId AllergyDrugSensitivityAdverseEventType AllergyDrugSensitivityAdverseEventTypeVocab AllergyDrugSensitivityAllergyProductTypeCode AllergyDrugSensitivityProductDetailParticipantRole AllergyDrugSensitivityProductDetailParticipantRoleClassCode AllergyDrugSensitivityProductDetailPlayingEntity AllergyDrugSensitivityProductDetailPlayingEntityClassCode AllergyDrugSensitivityProductDetailName AllergyDrugSensitivityAllergyProductFoodVocab AllergyDrugSensitivityAllergyProductMedClassVocab AllergyDrugSensitivityAllergyProductSpecificMedVocab AllergyDrugSensitivityReactionCodeVocab AllergyDrugSensitivitySeverityCodeVocab' constraints.validation.warning='AllergyDrugSensitivityAdverseEventDate AllergyDrugSensitivityAllergyProduct AllergyDrugSensitivityProductCode AllergyDrugSensitivityReactionText AllergyDrugSensitivityReactionCode AllergyDrugSensitivitySeverityText AllergyDrugSensitivitySeverityCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tgrfcCWbEeGCz74CaMtvdQ" base_Class="_IjIO0DxbEd6JwqSGecoePg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation contextDependent='true' constraints.validation.error='HITSPMedicationTemplateId HITSPMedicationFirstEffectiveTimeDatatype HITSPMedicationHasMedicationInformation HITSPMedicationHasIndicationNarrativeText HITSPMedicationHasIndicationVocab HITSPMedicationMedicationVehicleType HITSPMedicationMedicationVehicleClass HITSPMedicationMedicationVehicleCode HITSPMedicationMedicationVehicleName HITSPMedicationMedicationVehicleCodedNameVocab' templateId.root='2.16.840.1.113883.3.88.11.83.8' constraints.validation.info='HITSPMedicationDoseUnits HITSPMedicationDeliveryMethodDescription HITSPMedicationHasStatusOfMedication HITSPMedicationHasIndication HITSPMedicationHasPatientInstructions HITSPMedicationHasMedicationVehicle HITSPMedicationMedicationVehicleCodedName HITSPMedicationEffectiveTime HITSPMedicationRouteCode HITSPMedicationDoseQuantity HITSPMedicationAdministrationUnitCode HITSPMedicationMaxDoseQuantity HITSPMedicationApproachSiteCode HITSPMedicationCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_thbGViWbEeGCz74CaMtvdQ" base_Class="_GgvgUDxbEd6JwqSGecoePg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.7' constraints.validation.error='ConditionTemplateId ConditionHasTreatingProvider ConditionHasProviderId ConditionConditionEntry' constraints.validation.info='ConditionHasProviderTreatmentTime'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_thk3UiWbEeGCz74CaMtvdQ" base_Class="_wDMM0GEHEd6bFO5yxRh3Nw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='PatientSummaryHealthcareProvider PatientSummaryAdvanceDirectivesSection PatientSummaryAllergiesReactionsSection PatientSummaryProblemListSection PatientSummaryEncountersSection PatientSummaryImmunizationsSection PatientSummaryPayersSection PatientSummaryMedicationsSection PatientSummarySurgeriesSection PatientSummaryPlanOfCareSection PatientSummaryPregnancyHistorySection PatientSummaryVitalSignsSection PatientSummaryDiagnosticResultsSection' constraints.validation.error='PatientSummaryTemplateId' templateId.root='2.16.840.1.113883.3.88.11.32.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_thuoUiWbEeGCz74CaMtvdQ" base_Class="_L9yGgK7HEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPVitalSignsSectionTemplateId HITSPVitalSignsSectionVitalSignEntry' templateId.root='2.16.840.1.113883.3.88.11.83.119'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_th3yQiWbEeGCz74CaMtvdQ" base_Class="_dobt4K7IEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='2.16.840.1.113883.3.88.11.83.14' constraints.validation.error='VitalSignTemplateId ResultObservationCode' code.codeSystem='2.16.840.1.113883.6.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiBjQiWbEeGCz74CaMtvdQ" base_Class="_DH404MfWEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPPayersSectionTemplateId HITSPPayersSectionInsuranceProvider' templateId.root='2.16.840.1.113883.3.88.11.83.101'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiBjRSWbEeGCz74CaMtvdQ" base_Class="_VGnj8MfZEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPAllergiesReactionsSectionTemplateId HITSPAllergiesReactionsSectionAllergyDrugSensitivity' templateId.root='2.16.840.1.113883.3.88.11.83.102'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiBjSCWbEeGCz74CaMtvdQ" base_Class="_cPtREMfaEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ProblemListSectionTemplateId ProblemListSectionCondition' templateId.root='2.16.840.1.113883.3.88.11.83.103'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiKtMiWbEeGCz74CaMtvdQ" base_Class="_lSC-0MfbEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPHistoryOfPastIllnessSectionTemplateId HITSPHistoryOfPastIllnessSectionCondition' templateId.root='2.16.840.1.113883.3.88.11.83.104'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiKtNSWbEeGCz74CaMtvdQ" base_Class="_9ugRMMfcEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='HITSPChiefComplaintSectionCondition' constraints.validation.error='HITSPChiefComplaintSectionTemplateId' templateId.root='2.16.840.1.113883.3.88.11.83.105'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_tiKtNiWbEeGCz74CaMtvdQ" base_Generalization="_K4z18M9LEeCBIMy4xFlonQ"/>
  <Ecore:EClass xmi:id="_tiKtOSWbEeGCz74CaMtvdQ" base_Class="_bX2UoMfdEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.106' constraints.validation.error='HITSPReasonForReferralSectionTemplateId' constraints.validation.info='HITSPReasonForReferralSectionCondition HITSPReasonForReferralSectionResult'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiUeMiWbEeGCz74CaMtvdQ" base_Class="_w51SkMfhEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.107' constraints.validation.error='HITSPHistoryOfPresentIllnessTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiUeNSWbEeGCz74CaMtvdQ" base_Class="_OCM5cMfuEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPSurgeriesSectionTemplateId HITSPSurgeriesSectionProcedureActivity' templateId.root='2.16.840.1.113883.3.88.11.83.108'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiUeOCWbEeGCz74CaMtvdQ" base_Class="_m5tlkMfuEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.109' constraints.validation.error='HITSPFunctionalStatusSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiePMiWbEeGCz74CaMtvdQ" base_Class="_eg314MfvEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPHospitalAdmissionDiagnosisSectionTemplateId HITSPHospitalAdmissionDiagnosisSectionCondition' templateId.root='2.16.840.1.113883.3.88.11.83.110'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiePNSWbEeGCz74CaMtvdQ" base_Class="_CEsTsMfwEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPDischargeDiagnosisSectionTemplateId HITSPDischargeDiagnosisSectionCondition' templateId.root='2.16.840.1.113883.3.88.11.83.111'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tiePOCWbEeGCz74CaMtvdQ" base_Class="_WI3zsMfwEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPMedicationsSectionTemplateId HITSPMedicationsSectionMedication' templateId.root='2.16.840.1.113883.3.88.11.83.112'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tinZIiWbEeGCz74CaMtvdQ" base_Class="_CoUvwMfxEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.113' constraints.validation.error='HITSPAdmissionMedicationHistorySectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tinZJSWbEeGCz74CaMtvdQ" base_Class="_OORpwMfyEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPHospitalDischargeMedicationsSectionTemplateId HITSPHospitalDischargeMedicationsSectionMedication' templateId.root='2.16.840.1.113883.3.88.11.83.114'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tinZKCWbEeGCz74CaMtvdQ" base_Class="_u9U54MfyEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.115' constraints.validation.error='HITSPMedicationsAdministeredSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tixKIiWbEeGCz74CaMtvdQ" base_Class="_uIr7cMfzEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPAdvanceDirectivesSectionTemplateId HITSPAdvanceDirectivesSectionAdvanceDirective' templateId.root='2.16.840.1.113883.3.88.11.83.116'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tixKJSWbEeGCz74CaMtvdQ" base_Class="_gHDXQMf0Ed6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPImmunizationsSectionTemplateId HITSPImmunizationsSectionImmunization' templateId.root='2.16.840.1.113883.3.88.11.83.117'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tixKKCWbEeGCz74CaMtvdQ" base_Class="_XaZ6wMf1Ed6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPPhysicalExamSectionTemplateId HITSPPhysicalExamSectionCondition' templateId.root='2.16.840.1.113883.3.88.11.83.118'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_ti67IiWbEeGCz74CaMtvdQ" base_Class="_GuZI0MiXEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.120' constraints.validation.error='HITSPReviewOfSystemsSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_ti67JSWbEeGCz74CaMtvdQ" base_Class="_J1pl8MidEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.121' constraints.validation.error='HITSPHospitalCourseSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_ti67KCWbEeGCz74CaMtvdQ" base_Class="_P3GVkMieEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.122' constraints.validation.error='DiagnosticResultsSectionTemplateId DiagnosticResultsSectionHasResult DiagnosticResultsSectionDiagnosticProcedure' constraints.validation.info='DiagnosticResultsSectionResult DiagnosticResultsSectionResultOrganizer'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjEFEiWbEeGCz74CaMtvdQ" base_Class="_ml82oMifEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.123' constraints.validation.error='HITSPAssessmentAndPlanSectionTemplateId' constraints.validation.info='HITSPAssessmentAndPlanSectionMedication HITSPAssessmentAndPlanSectionImmunization HITSPAssessmentAndPlanSectionEncounterEntry HITSPAssessmentAndPlanSectionProcedureEntry'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjEFFSWbEeGCz74CaMtvdQ" base_Class="_SydBgMigEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.124' constraints.validation.error='HITSPPlanOfCareSectionTemplateId' constraints.validation.info='HITSPPlanOfCareSectionMedication HITSPPlanOfCareSectionImmunization HITSPPlanOfCareSectionEncounter HITSPPlanOfCareSectionProcedure'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjN2ECWbEeGCz74CaMtvdQ" base_Class="_4Mh2UMigEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPFamilyHistorySectionTemplateId HITSPFamilyHistorySectionFamilyHistory' templateId.root='2.16.840.1.113883.3.88.11.83.125'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjN2EyWbEeGCz74CaMtvdQ" base_Class="_-ujjcMihEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='HITSPSocialHistorySectionSocialHistory' constraints.validation.error='HITSPSocialHistorySectionTemplateId' templateId.root='2.16.840.1.113883.3.88.11.83.126'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjN2FiWbEeGCz74CaMtvdQ" base_Class="_F4b6wMijEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPEncountersSectionTemplateId HITSPEncountersSectionEncounterEntry' templateId.root='2.16.840.1.113883.3.88.11.83.127'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjXAAiWbEeGCz74CaMtvdQ" base_Class="_d9cy8MijEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.128' constraints.validation.error='HITSPMedicalEquipmentSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjXACiWbEeGCz74CaMtvdQ" base_Class="_c6bN4BvgEd-yI6xBTkJSNw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SNOMEDCT' code.codeSystemName='SNOMEDCT' value.codeSystem='2.16.840.1.113883.6.96' constraints.validation.info='ConditionEntryAgeObservation ConditionEntryProblemStatusObservation ConditionEntryCauseOfDeathObservation' constraints.validation.error='ConditionEntryText ProblemEntryValue' code.codeSystem='2.16.840.1.113883.6.96' constraints.validation.warning='ConditionEntryHasOnsetDate ConditionEntryHasResolutionDate ConditionEntryHasUnknownResolutionDate ConditionEntryCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tjqiCSWbEeGCz74CaMtvdQ" base_Class="_oTzNMDIWEd-SYNRf-pkwtw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.15.1' constraints.validation.error='ResultTemplateId ResultValuePresence ResultCode ResultEffectiveTime ResultValue' constraints.validation.warning='ResultTypeCodeSystem ResultLaboratoryResultsValueSet'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tj9c8CWbEeGCz74CaMtvdQ" base_Class="_MdoNoDuEEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation modeCode.codeSystemName='LanguageAbilityMode' modeCode.codeSystem='2.16.840.1.113883.5.60' constraints.validation.error='LanguageSpokenTemplateId LanguageSpokenModeCode' templateId.root='2.16.840.1.113883.3.88.11.83.2' constraints.validation.warning='LanguageSpokenNoProficiencyLevelCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tkHN8iWbEeGCz74CaMtvdQ" base_Class="_ZNaLkDuHEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='InsuranceProviderInsuranceInfoSourceID InsuranceProviderInsuranceInfoSourceAddr' constraints.validation.error='InsuranceProviderTemplateId InsuranceProviderPaymentProviders InsuranceProviderHealthInsuranceType InsuranceProviderInsuranceInformation InsuranceProviderPatientInformation InsuranceProviderMemberId InsuranceProviderRelationshipToSubscriber InsuranceProviderRelationshipToSubscriberCodeSystem InsuranceProviderPatientName InsuranceProviderSubscriberId InsuranceProviderSubscriberAddress InsuranceProviderFinancialResponsibilityPartyType InsuranceProviderFinancialResponsibilityPartyTypeCode CoverageActivityCode' templateId.root='2.16.840.1.113883.3.88.11.83.5' code.displayName='Payment sources' code.codeSystem='2.16.840.1.113883.6.1' code.code='48768-6' constraints.validation.warning='InsuranceProviderPayerEntryID InsuranceProviderHealthPlanCoverageStartTime InsuranceProviderHealthPlanCoverageStopTime InsuranceProviderMemberIdRoot InsuranceProviderSubscriberInformation InsuranceProviderSubscriberIdRoot InsuranceProviderFinancialResponsibilityPartyAddress'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tk201CWbEeGCz74CaMtvdQ" base_Class="_pOKSYDuHEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.4' constraints.validation.error='HealthcareProviderTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tk_-wCWbEeGCz74CaMtvdQ" base_Class="_qkWXUDuJEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.13' constraints.validation.error='HITSPImmunizationTemplateId HITSPImmunizationRefusalReason HITSPImmunizationCodedProductName'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tlJvziWbEeGCz74CaMtvdQ" base_Class="_B973gEveEd-GNbUQBie2ig">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.11' constraints.validation.error='HITSPCommentTemplateId'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_tlmbtSWbEeGCz74CaMtvdQ" base_Generalization="_RuVlIVI0Ed-4TsxSz4jnfg"/>
  <Ecore:EClass xmi:id="_tlmbuCWbEeGCz74CaMtvdQ" base_Class="_RuVlIFI0Ed-4TsxSz4jnfg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='null' constraints.validation.error='MedicationTaperedDoseTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tlmbwiWbEeGCz74CaMtvdQ" base_Class="_KYNNMKDlEd-dVeaMP0XXQw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation targetSiteCode.codeSystemName='SNOMEDCT' contextDependent='true' targetSiteCode.codeSystem='2.16.840.1.113883.6.96' constraints.validation.error='HITSPProcedureTemplateId HITSPProcedureHasCodeOriginalText' templateId.root='2.16.840.1.113883.3.88.11.83.17' constraints.validation.warning='HITSPProcedurePerformerAssignedEntity HITSPProcedureTargetSiteCode HITSPProcedureCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tl5WoiWbEeGCz74CaMtvdQ" base_Class="_x6SxkKsQEd-yFfcbpgNFIA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='CPT-4' constraints.validation.error='HITSPEncounterTemplateId HITSPEncounterAdmissionSourceValueSet' templateId.root='2.16.840.1.113883.3.88.11.83.16' code.codeSystem='2.16.840.1.113883.6.12' constraints.validation.warning='HITSPEncounterCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tmWClyWbEeGCz74CaMtvdQ" base_Class="_VWfHEO3xEd-dJvThfIiQuA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.3' constraints.validation.error='HITSPSupportGuardianTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tmWCmiWbEeGCz74CaMtvdQ" base_Class="_ci4cUO3xEd-dJvThfIiQuA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.3' constraints.validation.error='HITSPSupportParticipantTemplateId'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_tmfzniWbEeGCz74CaMtvdQ" base_Generalization="__8-JUfG1Ed-FxO0PukiqhA"/>
  <Ecore:EClass xmi:id="_tmfzoSWbEeGCz74CaMtvdQ" base_Class="__8-JUPG1Ed-FxO0PukiqhA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.62.1' constraints.validation.error='UnstructuredDocumentTemplateId UnstructuredDocumentOnePatientPerDocument' constraints.validation.warning='UnstructuredDocumentNoStructuredData'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tmo9giWbEeGCz74CaMtvdQ" base_Class="_ex_ugPyzEd-RgJ5u3I0u5A">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='MedicationInformationCodedIngredientVocab' constraints.validation.error='MedicationInformationTemplateId MedicationInformationCodedProductName MedicationInformationCodedProductVocab MedicationInformationCodedBrandName MedicationInformationCodedBrandNameVocab MedicationInformationFreeTextProductName MedicationInformationFreeTextBrandName' templateId.root='2.16.840.1.113883.3.88.11.83.8.2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tm74eSWbEeGCz74CaMtvdQ" base_Class="_NC6JAE51EeC-IOl-lQ-2xA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' templateId.root='2.16.840.1.113883.3.88.11.83.8.1' constraints.validation.error='MedicationTypeTemplateId MedicationTypeCode' code.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tnFpdyWbEeGCz74CaMtvdQ" base_Class="_vMJZwE8mEeCYjrG3z1gQrQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='MedicationOrderInformationDispensingPharmacyLocation MedicationOrderInformationRepeatNumber MedicationOrderInformationStatusCode' templateId.root='2.16.840.1.113883.3.88.11.83.8.3' constraints.validation.error='MedicationOrderInformationTemplateId MedicationOrderInformationQuantityOrdered MedicationOrderInformationQuantityUnit MedicationOrderInformationPrescriptionNumber MedicationOrderInformationDispenseDate MedicationOrderInformationQuantityDispensed' constraints.validation.warning='MedicationOrderInformationOrderNumber MedicationOrderInformationOrderExpiration MedicationOrderInformationAssigningAuthority MedicationOrderInformationHasFillNumber'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_tnsGdSWbEeGCz74CaMtvdQ" base_Generalization="_YwMRcMHiEeC8rcpLzgYlNw"/>
  <Ecore:EClass xmi:id="_tn1QUiWbEeGCz74CaMtvdQ" base_Class="_YwJOIMHiEeC8rcpLzgYlNw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.48.1' constraints.validation.error='ReferralSummaryTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tn1QVSWbEeGCz74CaMtvdQ" base_Class="_iSKW8MHiEeC8rcpLzgYlNw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='DischargeSummaryTemplateId DischargeSummaryProblemListSection DischargeSummaryHospitalAdmissionDiagnosisSection DischargeSummaryAllergiesReactionsSection DischargeSummaryDischargeDiagnosisSection DischargeSummaryHospitalDischargeMedicationsSection DischargeSummaryHospitalCourseSection DischargeSummaryPlanOfCareSection DischargeSummaryHistoryOfPastIllnessSection' templateId.root='2.16.840.1.113883.3.88.11.48.2' constraints.validation.info='DischargeSummaryAdvanceDirectivesSection DischargeSummaryDischargeDiet DischargeSummaryDiagnosticResultsSection DischargeSummaryFunctionalStatusSection DischargeSummaryPhysicalExamSection DischargeSummaryReviewOfSystemsSection' constraints.validation.warning='DischargeSummaryAdmissionMedicationHistorySection DischargeSummaryHistoryOfPresentIllness DischargeSummaryMedicalEquipmentSection DischargeSummaryMedicationsAdministeredSection DischargeSummaryVitalSignsSection'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tpLULiWbEeGCz74CaMtvdQ" base_Class="_I06IEMhGEeCHk-lvWGDTdA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' templateId.root='2.16.840.1.113883.10.20.1.33' constraints.validation.error='SocialHistoryTemplateId SocialHistoryText' code.codeSystem='2.16.840.1.113883.6.96' constraints.validation.warning='SocialHistoryCode SocialHistoryEffectiveTime'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tpePGSWbEeGCz74CaMtvdQ" base_Class="_kce00Mm2EeCDOYZyQPaRHg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='FamilyHistoryTemplateId FamilyHistoryRelatedSubjectCodeValueSet FamilyHistoryHasGenderCode FamilyHistoryFamilyMemberCondition' templateId.root='2.16.840.1.113883.3.88.11.83.18' constraints.validation.warning='FamilyHistoryHasFamilyName FamilyHistoryProblemStatusObservation'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tp67ByWbEeGCz74CaMtvdQ" base_Class="_ZsqjcMzoEeCvbrjDQpuvkw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' constraints.validation.error='AdvanceDirectiveTemplateId AdvanceDirectiveHasStartingTime AdvanceDirectiveHasEndingTime AdvanceDirectiveHasCustodian AdvanceDirectiveParticipantTypeCode AdvanceDirectiveParticipantRoleClassCode AdvanceDirectiveHasAddress AdvanceDirectiveHasTelecom AdvanceDirectiveHasNameOfAgent AdvanceDirectiveObservationCode AdvanceDirectiveEffectiveTime' templateId.root='2.16.840.1.113883.3.88.11.83.12' code.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_tqgw4iWbEeGCz74CaMtvdQ" base_Class="_WwjwsNJkEeCJq4tpS2QhbQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='HITSPResultOrganizerResult'</annotation>
  </Ecore:EClass>
</xmi:XMI>
