<?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="ihe">
    <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="_ETmFQHrCEd68l9lQ-TLEBQ">
      <importedPackage href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_XgMSwzxVEd6JwqSGecoePg"/>
    </packageImport>
    <packagedElement xmi:type="uml:Class" xmi:id="_ZEjk4Mf0Ed6VjLXh4DcWSg" name="ImmunizationsSection">
      <ownedComment xmi:id="_pH00MMf0Ed6VjLXh4DcWSg" annotatedElement="_ZEjk4Mf0Ed6VjLXh4DcWSg">
        <body>The immunizations section shall contain a narrative description of the immunizations administered to the patient in the&#xD;
past. It shall include entries for medication administration as described in the Entry Content Modules.</body>
      </ownedComment>
      <ownedRule xmi:id="_FuEtACWbEeGCz74CaMtvdQ" name="IHEImmunizationsSectionTemplateId" constrainedElement="_ZEjk4Mf0Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FuEtASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.23')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4gbYCWbEeGCz74CaMtvdQ" name="IHEImmunizationsSectionImmunization" constrainedElement="_ZEjk4Mf0Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4gbYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(ihe::Immunization))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_cBTp4Mf0Ed6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_CinbMHDPEd6eItyqb1FoWg"/>
      </generalization>
      <ownedOperation xmi:id="_F4gbYiWbEeGCz74CaMtvdQ" name="getImmunizations" isQuery="true" bodyCondition="_F4gbZSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F4gbZSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F4gbYiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4gbZiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(ihe::Immunization)).oclAsType(ihe::Immunization)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F4gbYyWbEeGCz74CaMtvdQ" type="_aFDTUDuJEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F4gbZCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_quPDQMfyEd6VjLXh4DcWSg" name="MedicationsAdministeredSection">
      <ownedComment xmi:id="_FLRiwMfzEd6VjLXh4DcWSg" annotatedElement="_quPDQMfyEd6VjLXh4DcWSg">
        <body>The medications administered section shall contain a narrative description of the relevant medications administered to a&#xD;
patient during the course of an encounter. It shall include entries for medication administration as described in the Entry&#xD;
Content Module.</body>
      </ownedComment>
      <ownedRule xmi:id="_FuOeACWbEeGCz74CaMtvdQ" name="MedicationsAdministeredSectionTemplateId" constrainedElement="_quPDQMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FuOeASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.21')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FuXn8CWbEeGCz74CaMtvdQ" name="MedicationsAdministeredSectionCode" constrainedElement="_quPDQMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FuXn8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '18610-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_sg7v8MfyEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_GgvgUDxbEd6JwqSGecoePg" name="ConcernEntry">
      <ownedComment xmi:id="_MDuIEFflEeCQ8PeHNHg5Pw">
        <body>&lt;p>&#xD;
This event (moodCode='EVN') represents an act (act classCode='ACT') of being concerned&#xD;
about a problem, allergy or other issue. The &amp;lt;effectiveTime> element describes the period of&#xD;
concern. The subject of concern is one or more observations about related problems (see&#xD;
1.3.6.1.4.1.19376.1.5.3.1.4.5.2) or allergies and intolerances (see&#xD;
1.3.6.1.4.1.19376.1.5.3.1.4.5.3). Additional references can be provided having additional information related to the concern. The concern entry allows related acts to be grouped. This&#xD;
allows representing the history of a problem as a series of observation over time, for example.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
All concerns reflect the act of recording (&amp;lt;act classCode='ACT'>) the event (moodCode='EVN')&#xD;
of being concerned about a problem, allergy or other issue about the patient condition.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_jfpCcCNMEeCxCon8a79rfA" name="ConcernEntryEffectiveTimeLowHigh" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_vbZp0CNMEeCxCon8a79rfA">
          <language>OCL</language>
          <body>not self.effectiveTime.low.oclIsUndefined()&#xD;&#xA;   and ((self.statusCode.code = 'completed' or self.statusCode.code = 'aborted') implies not self.effectiveTime.high.oclIsUndefined())&#xD;&#xA;   and ((self.statusCode.code &lt;> 'completed' and self.statusCode.code &lt;> 'aborted') implies self.effectiveTime.high.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_-tR7oCNQEeCxCon8a79rfA" name="ConcernEntryHasRelatedObservations" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <ownedComment xmi:id="_ARMfwFfmEeCQ8PeHNHg5Pw">
          <body>Each concern is about one or more related problems or allergies. This is how a series of related observations can be grouped as a single concern.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_D4dAACNREeCxCon8a79rfA">
          <language>OCL</language>
          <body>self.entryRelationship.observation.templateId->exists(id : datatypes::II | id.root =  '1.3.6.1.4.1.19376.1.5.3.1.4.5') or self.entryRelationship.observation.templateId->exists(id : datatypes::II | id.root =  '1.3.6.1.4.1.19376.1.5.3.1.4.6')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_VB8x4FfmEeCQ8PeHNHg5Pw" name="ConcernEntryRelatedObservationsTypeCode" constrainedElement="_-tR7oCNQEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_XgGPUFfmEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.entryRelationship->select(er|er.typeCode &lt;> vocab::x_ActRelationshipEntryRelationship::SUBJ)->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_qz-60FfmEeCQ8PeHNHg5Pw" name="ConcernEntryHasRelatedReferencesTypeCode" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_q0Ir0VfmEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.reference->forAll(r | r.typeCode = vocab::x_ActRelationshipExternalReference)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FuXn8iWbEeGCz74CaMtvdQ" name="ConcernEntryTemplateId" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FuXn8yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.5.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FuhY8CWbEeGCz74CaMtvdQ" name="ConcernEntryEffectiveTime" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FuhY8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_H4qVgDxbEd6JwqSGecoePg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_wDMM0GEHEd6bFO5yxRh3Nw" name="MedicalDocument">
      <ownedRule xmi:id="_FwKXsCWbEeGCz74CaMtvdQ" name="MedicalDocumentTemplateId" constrainedElement="_wDMM0GEHEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FwKXsSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_HGkB0GEIEd6bFO5yxRh3Nw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_MwGRIGeLEd-ilOLYnIx0jA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_vz5koGGsEd6bFO5yxRh3Nw" name="ActiveProblemsSection">
      <eAnnotations xmi:id="_mlSHonrUEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_mlSHo3rUEd68l9lQ-TLEBQ" key="Active Problems Section"/>
      </eAnnotations>
      <ownedComment xmi:id="_7PEV4CMwEeCxCon8a79rfA">
        <body>The active problem section shall contain a narrative description of the conditions currently being monitored for the patient. It shall include entries for patient conditions as described in the Entry Content Module.</body>
      </ownedComment>
      <ownedRule xmi:id="_FwKXsyWbEeGCz74CaMtvdQ" name="ActiveProblemsSectionTemplateId" constrainedElement="_vz5koGGsEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FwKXtCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.6')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0CLECWbEeGCz74CaMtvdQ" name="ActiveProblemsSectionProblemConcernEntry" constrainedElement="_vz5koGGsEd6bFO5yxRh3Nw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0CLESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::ProblemConcernEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ESh9QGGzEd6bFO5yxRh3Nw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_vjPMEGaGEd6Hk_bPOfEjYA"/>
      </generalization>
      <ownedOperation xmi:id="_F0L8ECWbEeGCz74CaMtvdQ" name="getProblemConcernEntries" isQuery="true" bodyCondition="_F0L8EyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F0L8EyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F0L8ECWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0L8FCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::ProblemConcernEntry)).oclAsType(ihe::ProblemConcernEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F0L8ESWbEeGCz74CaMtvdQ" type="_wSnPAGaQEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F0L8EiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_wSnPAGaQEd6Hk_bPOfEjYA" name="ProblemConcernEntry">
      <eAnnotations xmi:id="_8kuacXrUEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_8kuacnrUEd68l9lQ-TLEBQ" key="Problem Concern Entry"/>
      </eAnnotations>
      <ownedComment xmi:id="_ByGeQHrVEd68l9lQ-TLEBQ" annotatedElement="_wSnPAGaQEd6Hk_bPOfEjYA">
        <body>This entry is a specialization of the Concern Entry, wherein the subject of the concern is focused on a problem.</body>
      </ownedComment>
      <ownedRule xmi:id="_FwThoSWbEeGCz74CaMtvdQ" name="ProblemConcernEntryTemplateId" constrainedElement="_wSnPAGaQEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FwThoiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.5.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0VGACWbEeGCz74CaMtvdQ" name="ProblemConcernEntryProblemEntry" constrainedElement="_wSnPAGaQEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0VGASWbEeGCz74CaMtvdQ">
          <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="_wSnPBWaQEd6Hk_bPOfEjYA" general="_GgvgUDxbEd6JwqSGecoePg"/>
      <ownedOperation xmi:id="_F0VGAiWbEeGCz74CaMtvdQ" name="getProblemEntries" isQuery="true" bodyCondition="_F0VGBSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F0VGBSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F0VGAiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0VGBiWbEeGCz74CaMtvdQ">
            <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="_F0VGAyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F0VGBCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_3ZiEwGdIEd6Hk_bPOfEjYA" name="ProblemEntry">
      <ownedComment xmi:id="_jB5SUCNTEeCxCon8a79rfA">
        <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="_-vm8wCl4EeCXiupwzMk--A" name="ProblemEntryHasTextReference" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_-vm8wSl4EeCXiupwzMk--A">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_wtsB8CQZEeCxCon8a79rfA" name="ProblemEntryCommentInversionInd" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Arh-sCQaEeCxCon8a79rfA">
          <language>OCL</language>
          <body>self.entryRelationship->forAll(rel : cda::EntryRelationship | (not rel.act.oclIsUndefined() and rel.act.oclIsKindOf(ihe::Comment)) implies rel.inversionInd=true)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FwThpCWbEeGCz74CaMtvdQ" name="ProblemEntryTemplateId" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FwThpSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.5')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FwdSoCWbEeGCz74CaMtvdQ" name="ProblemEntryCode" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FwdSoSWbEeGCz74CaMtvdQ">
          <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="_FwdSoiWbEeGCz74CaMtvdQ" name="ProblemEntryEffectiveTime" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FwdSoyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FyPbUCWbEeGCz74CaMtvdQ" name="ProblemEntryId" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FyPbUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id->isEmpty() or self.id->exists(element | element.isNullFlavorUndefined())) implies (not self.id->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FyZMUCWbEeGCz74CaMtvdQ" name="ProblemEntryText" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FyZMUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FyZMUiWbEeGCz74CaMtvdQ" name="ProblemEntryValue" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FyZMUyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (self.value->size() = 1 and self.value->forAll(element | element.oclIsTypeOf(datatypes::CD)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_WqQCWbEeGCz74CaMtvdQ" name="ProblemEntrySeverity" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_WqQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::Severity))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_qMQCWbEeGCz74CaMtvdQ" name="ProblemEntryProblemStatusObservation" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_qMQSWbEeGCz74CaMtvdQ">
          <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="_F_9HMCWbEeGCz74CaMtvdQ" name="ProblemEntryHealthStatusObservation" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_9HMSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::HealthStatusObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::REFR)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_9HNyWbEeGCz74CaMtvdQ" name="ProblemEntryComment" constrainedElement="_3ZiEwGdIEd6Hk_bPOfEjYA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_9HOCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(ihe::Comment) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_3ZiExWdIEd6Hk_bPOfEjYA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_IjIO0DxbEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_F_WqQiWbEeGCz74CaMtvdQ" name="getSeverity" isQuery="true" bodyCondition="_F_WqRSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F_WqRSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F_WqQiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_WqRiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::Severity))->asSequence()->first().oclAsType(ihe::Severity)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F_WqQyWbEeGCz74CaMtvdQ" type="_MIoHYCQKEeCxCon8a79rfA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_WqRCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_F_qMQiWbEeGCz74CaMtvdQ" name="getProblemStatusObservation" isQuery="true" bodyCondition="_F_qMRSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F_qMRSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F_qMQiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_qMRiWbEeGCz74CaMtvdQ">
            <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="_F_qMQyWbEeGCz74CaMtvdQ" type="_s7LQECQNEeCxCon8a79rfA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_qMRCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_F_9HMiWbEeGCz74CaMtvdQ" name="getHealthStatusObservation" isQuery="true" bodyCondition="_F_9HNSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F_9HNSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F_9HMiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_9HNiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::HealthStatusObservation))->asSequence()->first().oclAsType(ihe::HealthStatusObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F_9HMyWbEeGCz74CaMtvdQ" type="_R7NF0CQREeCxCon8a79rfA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_9HNCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_F_9HOSWbEeGCz74CaMtvdQ" name="getComments" isQuery="true" bodyCondition="_F_9HPCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F_9HPCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F_9HOSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_9HPSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::Comment)).oclAsType(ihe::Comment)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F_9HOiWbEeGCz74CaMtvdQ" type="_R_uVkEvdEd-GNbUQBie2ig" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_9HOyWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_sFGZUHGfEd6bf47ZOcft4w" name="Medication" isAbstract="true">
      <ownedComment xmi:id="_97AuoHopEd6WAZ28-5wkSg" annotatedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <body>&lt;p>&#xD;
This content module describes the general structure for a medication. All medication administration acts will be derived&#xD;
from this content module.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The &amp;lt;substanceAdministration> element may contain subordinate&#xD;
&amp;lt;substanceAdministration> elements in a related component entry to deal with special cases (see&#xD;
the section below on Special Cases). These cases include split, tapered, or conditional dosing, or&#xD;
combination medications. The use of subordinate &amp;lt;substanceAdministration> elements to deal with these cases is optional. The comment field should always be used in these cases to provide&#xD;
the same information as free text in the top level &amp;lt;substanceAdministration> element.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_HALBQEqVEeCTurDhhRqwBw" name="MedicationHasDosing">
        <ownedComment xmi:id="_SBP6UEqbEeCTurDhhRqwBw">
          <body>There are a variety of special cases for dosing that need to be accounted for. &#xD;
Most of these special cases involve changing the dosage or frequency over time, or based on&#xD;
some measurement. When the dosage changes, then additional entries are required for each differing dosage.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_JSheYEqVEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.7.1') xor self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.8') xor self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.9') xor self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.10') xor self.templateId->exists(id : datatypes::II | id.root =  '1.3.6.1.4.1.19376.1.5.3.1.4.11')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_AO1-4Et7EeCAK_Z5vqvtzg" name="MedicationDosingRelationship" constrainedElement="_MWNEMEt5EeCAK_Z5vqvtzg">
        <ownedComment xmi:id="_YKXucEt8EeCAK_Z5vqvtzg">
          <body>n the first three cases, the subordinate components shall specify only the changed &amp;lt;frequency>&#xD;
and/or &amp;lt;doseAmount> elements. For conditional dosing, each subordinate component shall have&#xD;
a &amp;lt;precondition> element that specifies the &amp;lt;observation> that must be obtained before&#xD;
administration of the dose. The value of the &amp;lt;sequenceNumber> shall be an ordinal number,&#xD;
starting at 1 for the first component, and increasing by 1 for each subsequent component.&#xD;
Components shall be sent in &amp;lt;sequenceNumber> order.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_RNsssEt7EeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.8') xor &#xA;self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.9') xor &#xA;self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.10') xor &#xA;self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.11') implies self.entryRelationship->exists(er | er.typeCode=vocab::x_ActRelationshipEntryRelationship::COMP)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_AXxswEqcEeCTurDhhRqwBw" name="MedicationHasDescriptionNoMedNotKnown">
        <ownedComment xmi:id="_Fo59QEqeEeCTurDhhRqwBw">
          <body>&lt;p>&#xD;
182904002 &quot;Drug Treatment Unknown&quot; (To indicate lack of knowledge about drug therapy)&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
182849000 &quot;No Drug Therapy Prescribed&quot; (To indicate the absense of any prescribed medications)&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
408350003 &quot;Patient Not On Self-Medications&quot; (To indicate no treatment)&#xD;
&lt;/p></body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GsU0AEqcEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>true</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_0gwT0Es9EeCAK_Z5vqvtzg" name="MedicationReasonClassMood" constrainedElement="_AXxswEqcEeCTurDhhRqwBw">
        <ownedComment xmi:id="_shQtkHZGEeCvxvMoSjRGEw">
          <body>self.internalReference->exists(ir : ihe::InternalReference | ar.classCode &amp;lt;> 'ACT' or ar.moodCode &amp;lt;> 'EVN')</body>
        </ownedComment>
        <ownedComment xmi:id="_auRswHZJEeCvxvMoSjRGEw">
          <body>OCL Issue - What is the internalReference relationship?  unable to get OCL to reference</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_DdxFsEs-EeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>true</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_MWNEMEt5EeCAK_Z5vqvtzg" name="MedicationHasProductEntry">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UlYFEEt5EeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>self.consumable.manufacturedProduct.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.7.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_i0d5oEt8EeCAK_Z5vqvtzg" name="MedicationHasIntructionsInversion" constrainedElement="_MWNEMEt5EeCAK_Z5vqvtzg">
        <ownedComment xmi:id="_jPm0oHZJEeCvxvMoSjRGEw">
          <body>OCL Issue - What is the patientInstructions relationship?  unable to get OCL to reference</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_5PKlEEt8EeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>self.entryRelationship->forAll( er : cda::EntryRelationship | (not er.act.oclIsKindOf(ihe::PatientMedicalInstructions)) or ( er.inversionInd = true and er.act.oclIsKindOf(ihe::PatientMedicalInstructions))  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_fk_lkEt_EeCAK_Z5vqvtzg" name="MedicationProductStrength">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_CewZwEuAEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.consumable.manufacturedProduct.manufacturedMaterial.code.oclIsUndefined() implies not self.consumable.manufacturedProduct.manufacturedMaterial.code.originalText.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_pw4KwEt_EeCAK_Z5vqvtzg" name="MedicationProductName" constrainedElement="_fk_lkEt_EeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3vfasEt_EeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.consumable.manufacturedProduct.manufacturedMaterial.name.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_bYIRoEuBEeCAK_Z5vqvtzg" name="MedicationPreconditionReference" constrainedElement="_pw4KwEt_EeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_fMCoIEuBEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.precondition.criterion.text->exists (t | t.reference.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_yYE_4E9KEeCYjrG3z1gQrQ" name="MedicationHasSupplyEntryInversion" constrainedElement="_bYIRoEuBEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3sEpEE9KEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>not self.entryRelationship->exists(er : cda::EntryRelationship | (not er.supply->isEmpty()) and er.inversionInd&lt;>false )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_JFsAQE9LEeCYjrG3z1gQrQ" name="MedicationHasFillNumber" constrainedElement="_yYE_4E9KEeCYjrG3z1gQrQ">
        <ownedComment xmi:id="_PtHnQE9LEeCYjrG3z1gQrQ">
          <body>The prescription activity may have a &amp;lt;sequenceNumber> element to indicate the fill number. A&#xD;
value of 1, 2 or N indicates that it is the first, second, or Nth fill respectively of a specific&#xD;
prescription.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_PHyFkE9LEeCYjrG3z1gQrQ">
          <language>OCL</language>
          <body>not self.entryRelationship->exists(er| (not er.supply->isEmpty()) and er.sequenceNumber.value.oclIsUndefined() )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FyZMVCWbEeGCz74CaMtvdQ" name="MedicationTemplateId" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FyZMVSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.7')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FysHQCWbEeGCz74CaMtvdQ" name="MedicationApproachSiteCode" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FysHQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.approachSiteCode->isEmpty() or self.approachSiteCode->exists(element | element.isNullFlavorUndefined())) implies (not self.approachSiteCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FysHQiWbEeGCz74CaMtvdQ" name="MedicationDoseQuantity" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FysHQyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.doseQuantity.oclIsUndefined() or self.doseQuantity.isNullFlavorUndefined()) implies (not self.doseQuantity.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Fy14QCWbEeGCz74CaMtvdQ" name="MedicationRateQuantity" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fy14QSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.rateQuantity.oclIsUndefined() or self.rateQuantity.isNullFlavorUndefined()) implies (not self.rateQuantity.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Fy14QiWbEeGCz74CaMtvdQ" name="MedicationCode" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fy14QyWbEeGCz74CaMtvdQ">
          <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'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Fy_pQCWbEeGCz74CaMtvdQ" name="MedicationStatusCode" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fy_pQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.statusCode.oclIsUndefined() or self.statusCode.isNullFlavorUndefined()) implies (not self.statusCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Fy_pQiWbEeGCz74CaMtvdQ" name="MedicationEffectiveTime" constrainedElement="_sFGZUHGfEd6bf47ZOcft4w">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fy_pQyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime->isEmpty() or self.effectiveTime->exists(element | element.isNullFlavorUndefined())) implies (not self.effectiveTime->isEmpty())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_zZRrcHq8Ed68l9lQ-TLEBQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_W6aMoHfTEd6ZeOKq_2_a9g"/>
      </generalization>
      <ownedOperation xmi:id="_GAZzIiWbEeGCz74CaMtvdQ" name="getInternalReferences" isQuery="true" bodyCondition="_GAZzJSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GAZzJSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GAZzIiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAZzJiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::InternalReference)).oclAsType(ihe::InternalReference)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GAZzIyWbEeGCz74CaMtvdQ" type="_0TsKoEqtEeCJlNjgFmcEiA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GAZzJCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GAZzJyWbEeGCz74CaMtvdQ" name="getPatientMedicalInstructionss" isQuery="true" bodyCondition="_GAZzKiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GAZzKiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GAZzJyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAZzKyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::PatientMedicalInstructions)).oclAsType(ihe::PatientMedicalInstructions)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GAZzKCWbEeGCz74CaMtvdQ" type="_nzLQYEqtEeCJlNjgFmcEiA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GAZzKSWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GAsuECWbEeGCz74CaMtvdQ" name="getSupplyEntry" isQuery="true" bodyCondition="_GAsuEyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GAsuEyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GAsuECWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAsuFCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSupplies()->select(supply : cda::Supply | not supply.oclIsUndefined() and supply.oclIsKindOf(ihe::SupplyEntry))->asSequence()->first().oclAsType(ihe::SupplyEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GAsuESWbEeGCz74CaMtvdQ" type="_e2pkwOw7Ed-HcKrkbxroPA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GAsuEiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_8YbB4HomEd6WAZ28-5wkSg" name="MedicationsSection">
      <ownedComment xmi:id="_cNkOgHonEd6WAZ28-5wkSg" annotatedElement="_8YbB4HomEd6WAZ28-5wkSg">
        <body>The medications section shall contain a description of the relevant medications for the patient, e.g. an ambulatory&#xD;
prescription list. It shall include entries for medications as described in the Entry Content Module.</body>
      </ownedComment>
      <ownedRule xmi:id="_Fy_pRCWbEeGCz74CaMtvdQ" name="IHEMedicationsSectionTemplateId" constrainedElement="_8YbB4HomEd6WAZ28-5wkSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fy_pRSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.19')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F77i0SWbEeGCz74CaMtvdQ" name="IHEMedicationsSectionMedication" constrainedElement="_8YbB4HomEd6WAZ28-5wkSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F77i0iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(ihe::Medication))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_KxUI4Hq9Ed68l9lQ-TLEBQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_OvmR4HfUEd6ZeOKq_2_a9g"/>
      </generalization>
      <ownedOperation xmi:id="_F77i0yWbEeGCz74CaMtvdQ" name="getMedications" isQuery="true" bodyCondition="_F77i1iWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F77i1iWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F77i0yWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F77i1yWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(ihe::Medication)).oclAsType(ihe::Medication)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F77i1CWbEeGCz74CaMtvdQ" type="_sFGZUHGfEd6bf47ZOcft4w" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F77i1SWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_pOtQsHrDEd68l9lQ-TLEBQ" name="AllergyIntoleranceConcern">
      <eAnnotations xmi:id="_wqbysnrUEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_wqcZwHrUEd68l9lQ-TLEBQ" key="Allergy and Intolerance Concern"/>
      </eAnnotations>
      <ownedComment xmi:id="_PYW4kHrVEd68l9lQ-TLEBQ" annotatedElement="_pOtQsHrDEd68l9lQ-TLEBQ">
        <body>This entry is a specialization of the Concern Entry, wherein the subject of the concern is focused on an allergy or intolerance.</body>
      </ownedComment>
      <ownedRule xmi:id="_FzIzMCWbEeGCz74CaMtvdQ" name="AllergyIntoleranceConcernTemplateId" constrainedElement="_pOtQsHrDEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzIzMSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.5.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GA2fGyWbEeGCz74CaMtvdQ" name="AllergyIntoleranceConcernAllergyIntolerance" constrainedElement="_pOtQsHrDEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fHCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::AllergyIntolerance) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_F7xSEHrEEd68l9lQ-TLEBQ" general="_GgvgUDxbEd6JwqSGecoePg"/>
      <ownedOperation xmi:id="_GA2fHSWbEeGCz74CaMtvdQ" name="getAllergyIntolerances" isQuery="true" bodyCondition="_GA2fICWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GA2fICWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GA2fHSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fISWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::AllergyIntolerance)).oclAsType(ihe::AllergyIntolerance)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GA2fHiWbEeGCz74CaMtvdQ" type="_gkbLsHrEEd68l9lQ-TLEBQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GA2fHyWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_gkbLsHrEEd68l9lQ-TLEBQ" name="AllergyIntolerance">
      <eAnnotations xmi:id="_4OTz0HrUEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_4OTz0XrUEd68l9lQ-TLEBQ" key="Allergies and Intolerances"/>
      </eAnnotations>
      <ownedComment xmi:id="_zkc1cFfnEeCQ8PeHNHg5Pw">
        <body>Allergies and intolerances are special kinds of problems, and so are also recorded in the CDA&#xD;
&amp;lt;observation> element, with classCode='OBS'. They follow the same pattern as the problem&#xD;
entry, with exceptions noted below.</body>
      </ownedComment>
      <ownedRule xmi:id="_5SaL4FfpEeCQ8PeHNHg5Pw" name="AllergyIntoleranceCodeCodeSystemRequired">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_A8UjkFfqEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>not (code.code.oclIsUndefined() or code.codeSystem.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_CrT08FfqEeCQ8PeHNHg5Pw" name="AllergyIntoleranceDisplayNameCodeName" constrainedElement="_5SaL4FfpEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GXkEQFfqEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>not (code.displayName.oclIsUndefined() or code.codeSystemName.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_vzvfwFfuEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstance" constrainedElement="_GgvgUDxbEd6JwqSGecoePg">
        <ownedComment xmi:id="_7dtMgFfuEeCQ8PeHNHg5Pw">
          <body>The substance that causes the allergy or intolerance may be specified in the &amp;lt;participant> element.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3KtGQFfuEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Mi80MFgFEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstanceTypeCode" constrainedElement="_yFyY4FgEEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_SAc-sFgFEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant->forAll(par : cda::Participant2 | par.typeCode = vocab::ParticipationType::CSM)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_yFyY4FgEEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstanceParticipantRole" constrainedElement="_vzvfwFfuEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_7rl1gFgEEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant.participantRole->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Suty4FgFEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstanceParticipantRoleClassCode" constrainedElement="_yFyY4FgEEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Suty4VgFEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant.participantRole->one(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::MANU)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_0xg_UFgEEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstancePlayingEntity" constrainedElement="_yFyY4FgEEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_-eIOkFgEEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant.participantRole.playingEntity->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ZIq-kFgFEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstancePlayingEntityClassCode" constrainedElement="_yFyY4FgEEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ZIq-kVgFEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant.participantRole.playingEntity->one(pe : cda::PlayingEntity | pe.classCode = vocab::EntityClassRoot::MMAT)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_gj-UgFfvEeCQ8PeHNHg5Pw" name="AllergyIntoleranceAllergySubstancePlayingEntityCode" constrainedElement="_vzvfwFfuEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ogsTcFfvEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant.participantRole.playingEntity.code->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tE3pQFfvEeCQ8PeHNHg5Pw" name="AllergyIntolerancePlayingEntityCodeReference" constrainedElement="_gj-UgFfvEeCQ8PeHNHg5Pw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_wMYz0FfvEeCQ8PeHNHg5Pw">
          <language>OCL</language>
          <body>self.participant.participantRole.playingEntity.code.originalText.reference->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FzIzMyWbEeGCz74CaMtvdQ" name="AllergyIntoleranceTemplateId" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzIzNCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.6')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FzbuICWbEeGCz74CaMtvdQ" name="ProblemEntryCode" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzbuISWbEeGCz74CaMtvdQ">
          <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.5.4'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FzlfICWbEeGCz74CaMtvdQ" name="AllergyIntoleranceValue" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzlfISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (not self.value->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GA2fIiWbEeGCz74CaMtvdQ" name="AllergyIntoleranceProblemEntryReactionObservationContainer" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fIyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::ProblemEntryReactionObservationContainer) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::MFST)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GA_pACWbEeGCz74CaMtvdQ" name="AllergyIntoleranceSeverity" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA_pASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(ihe::Severity) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::REFR)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GA_pByWbEeGCz74CaMtvdQ" name="AllergyIntoleranceProblemStatusObservation" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA_pCCWbEeGCz74CaMtvdQ">
          <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="_GA_pDiWbEeGCz74CaMtvdQ" name="AllergyIntoleranceComment" constrainedElement="_gkbLsHrEEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA_pDyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(ihe::Comment) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_kdkngHrEEd68l9lQ-TLEBQ" general="_3ZiEwGdIEd6Hk_bPOfEjYA"/>
      <ownedOperation xmi:id="_GA2fJCWbEeGCz74CaMtvdQ" name="getProblemEntryReactionObservationContainers" isQuery="true" bodyCondition="_GA2fJyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GA2fJyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GA2fJCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fKCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntryReactionObservationContainer)).oclAsType(ihe::ProblemEntryReactionObservationContainer)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GA2fJSWbEeGCz74CaMtvdQ" type="_88SO0FsZEeCBQI4cjwqCWQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GA2fJiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GA_pAiWbEeGCz74CaMtvdQ" name="getIHESeverity" isQuery="true" bodyCondition="_GA_pBSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GA_pBSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GA_pAiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA_pBiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::Severity))->asSequence()->first().oclAsType(ihe::Severity)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GA_pAyWbEeGCz74CaMtvdQ" type="_MIoHYCQKEeCxCon8a79rfA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GA_pBCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GA_pCSWbEeGCz74CaMtvdQ" name="getIHEProblemStatusObservation" isQuery="true" bodyCondition="_GA_pDCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GA_pDCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GA_pCSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA_pDSWbEeGCz74CaMtvdQ">
            <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="_GA_pCiWbEeGCz74CaMtvdQ" type="_s7LQECQNEeCxCon8a79rfA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GA_pCyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GBJaACWbEeGCz74CaMtvdQ" name="getIHEComments" isQuery="true" bodyCondition="_GBJaAyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GBJaAyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GBJaACWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBJaBCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::Comment)).oclAsType(ihe::Comment)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GBJaASWbEeGCz74CaMtvdQ" type="_R_uVkEvdEd-GNbUQBie2ig" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GBJaAiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_O7-UAHrUEd68l9lQ-TLEBQ" name="AllergiesReactionsSection">
      <eAnnotations xmi:id="_gbVG0XrUEd68l9lQ-TLEBQ" source="uml2.alias">
        <details xmi:id="_gbVG0nrUEd68l9lQ-TLEBQ" key="Allergies and Other Adverse Reactions Section"/>
      </eAnnotations>
      <ownedComment xmi:id="_nMf64HyQEd6FS-4xbA1fBQ" annotatedElement="_O7-UAHrUEd68l9lQ-TLEBQ">
        <body>The adverse and other adverse reactions section shall contain a narrative description of the substance intolerances and the&#xD;
associated adverse reactions suffered by the patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_FzlfIiWbEeGCz74CaMtvdQ" name="AllergiesReactionsSectionTemplateId" constrainedElement="_O7-UAHrUEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzlfIyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.13')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GA2fFCWbEeGCz74CaMtvdQ" name="AllergiesReactionsSectionAllergyIntoleranceConcern" constrainedElement="_O7-UAHrUEd68l9lQ-TLEBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fFSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::AllergyIntoleranceConcern))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_W-wesHrUEd68l9lQ-TLEBQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_PgsSAHrREd68l9lQ-TLEBQ"/>
      </generalization>
      <ownedOperation xmi:id="_GA2fFiWbEeGCz74CaMtvdQ" name="getAllergyIntoleranceConcerns" isQuery="true" bodyCondition="_GA2fGSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GA2fGSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GA2fFiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fGiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::AllergyIntoleranceConcern)).oclAsType(ihe::AllergyIntoleranceConcern)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GA2fFyWbEeGCz74CaMtvdQ" type="_pOtQsHrDEd68l9lQ-TLEBQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GA2fGCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="__HPx4HySEd6FS-4xbA1fBQ" name="NormalDose">
      <ownedComment xmi:id="_XTRfgEqZEeCTurDhhRqwBw">
        <body>This template identifier is used to identify medication administration events that do not require&#xD;
any special processing.</body>
      </ownedComment>
      <ownedRule xmi:id="_PlDFAEqYEeCTurDhhRqwBw" name="NormalDoseNoSubordinateSubstanceAdministration" constrainedElement="__HPx4HySEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UjwasEqYEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>self.entryRelationship.substanceAdministration->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FzlfJSWbEeGCz74CaMtvdQ" name="NormalDoseTemplateId" constrainedElement="__HPx4HySEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzlfJiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.7.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_CsEjgHyTEd6FS-4xbA1fBQ" general="_sFGZUHGfEd6bf47ZOcft4w"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_OCqBQHyTEd6FS-4xbA1fBQ" name="TaperedDose">
      <ownedComment xmi:id="_up71cHyTEd6FS-4xbA1fBQ" annotatedElement="_OCqBQHyTEd6FS-4xbA1fBQ">
        <body>&lt;p>&#xD;
    This template identifier is used to identify medication administration events that require special processing to handle&#xD;
    tapered dosing. The parent template is 1.3.6.1.4.1.19376.1.5.3.1.4.7. A tapered dose is often used for certain&#xD;
    medications where abrupt termination of the medication can have negative consequences. Tapered dosages may be done by&#xD;
    adjusting the dose frequency, the dose amount, or both.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    When merely the dose frequency is adjusted, (e.g., Prednisone 5mg b.i.d. for three days, then 5mg. daily for three&#xD;
    days, and then 5mg every other day), then only one medication entry is needed, multiple frequency specifications&#xD;
    recorded in &amp;lt;effectiveTime&amp;gt; elements. When the dose varies (eg. Prednisone 15mg daily for three days, then 10 mg&#xD;
    daily for three days, the 5 mg daily for three days), subordinate medication entries should be created for each&#xD;
    distinct dosage.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_gvxroEqYEeCTurDhhRqwBw" name="TaperedDoseTaperedDosingSubstanceAdministration" constrainedElement="_OCqBQHyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_mchMAEqYEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>self.entryRelationship.substanceAdministration->exists( substanceAdministration  | substanceAdministration.oclIsKindOf( ihe::Medication) )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FzvQISWbEeGCz74CaMtvdQ" name="TaperedDoseTemplateId" constrainedElement="_OCqBQHyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzvQIiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.8')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_OCqBQXyTEd6FS-4xbA1fBQ" general="_sFGZUHGfEd6bf47ZOcft4w"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_OY9BYHyTEd6FS-4xbA1fBQ" name="SplitDose">
      <ownedComment xmi:id="_qCsBcEqYEeCTurDhhRqwBw">
        <body>&lt;p>&#xD;
This template identifier is used to identify medication administration events that require special&#xD;
processing to handle split dosing. The parent template is 1.3.6.1.4.1.19376.1.5.3.1.4.7. A split&#xD;
dose is often used when different dosages are given at different times (e.g., at different times of day, or on different days). This may be to account for different metabolism rates at different&#xD;
times of day, or to simply address drug packaging deficiencies (e.g., and order for Coumadin&#xD;
2mg on even days, 2.5mg on odd days is used because Coumadin does not come in a 2.25mg&#xD;
dose form).&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_wqJdoEqYEeCTurDhhRqwBw" name="SplitDoseSplitDosingSubstanceAdministration" constrainedElement="_OY9BYHyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_4EpgUEqYEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>not self.entryRelationship.substanceAdministration->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_FzvQJCWbEeGCz74CaMtvdQ" name="SplitDoseTemplateId" constrainedElement="_OY9BYHyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FzvQJSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.9')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_OY9BYXyTEd6FS-4xbA1fBQ" general="_sFGZUHGfEd6bf47ZOcft4w"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_OeXF0HyTEd6FS-4xbA1fBQ" name="ConditionalDose">
      <ownedComment xmi:id="_MPr2QEqZEeCTurDhhRqwBw">
        <body>&lt;p>&#xD;
This template identifier is used to identify medication administration events that require special&#xD;
processing to handle conditional dosing. The parent template is 1.3.6.1.4.1.19376.1.5.3.1.4.7. A&#xD;
conditional dose is often used when the dose amount differs based on some measurement (e.g.,&#xD;
an insulin sliding scale dose based on blood sugar level).&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_NesAAEqZEeCTurDhhRqwBw" name="ConditionalDoseConditionalDosingSubstanceAdministration" constrainedElement="_OeXF0HyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_SRwtcEqZEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>not self.entryRelationship.substanceAdministration->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Fz4aECWbEeGCz74CaMtvdQ" name="ConditionalDoseTemplateId" constrainedElement="_OeXF0HyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fz4aESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.10')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_OeXF0XyTEd6FS-4xbA1fBQ" general="_sFGZUHGfEd6bf47ZOcft4w"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_QDIEMHyTEd6FS-4xbA1fBQ" name="CombinationMedication">
      <ownedComment xmi:id="_Jdg0IEqaEeCTurDhhRqwBw">
        <body>&lt;p>&#xD;
This template identifier is used to identify medication administration events that require special&#xD;
processing to handle combination medications. The parent template is&#xD;
1.3.6.1.4.1.19376.1.5.3.1.4.7. A combination medication is made up of two or more other&#xD;
medications. These may be prepackaged, such as Percocet, which is a combination of&#xD;
Acetaminophen and oxycodone in predefined ratios, or prepared by a pharmacist, such as a GI&#xD;
cocktail.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
In the case of the prepackaged combination, it is sufficient to supply the name of the&#xD;
combination drug product, and its strength designation in a single &amp;lt;substanceAdministation>&#xD;
entry. The dosing information should then be recorded as simply a count of administration units.&#xD;
In the latter case of a prepared mixture, the description of the mixture should be provided as the&#xD;
product name (e.g., &quot;GI Cocktail&quot;) , in the &amp;lt;substanceAdministration> entry. That entry may, but&#xD;
is not required, to have subordinate &amp;lt;substanceAdministration> entries included beneath it to record the components of the mixture.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_VJZMcEqaEeCTurDhhRqwBw" name="CombinationMedicationSubstanceAdministration" constrainedElement="_QDIEMHyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_mDZPcEqaEeCTurDhhRqwBw">
          <language>OCL</language>
          <body>not self.entryRelationship.substanceAdministration->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Fz4aEyWbEeGCz74CaMtvdQ" name="CombinationMedicationTemplateId" constrainedElement="_QDIEMHyTEd6FS-4xbA1fBQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Fz4aFCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.11')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_QDIEMXyTEd6FS-4xbA1fBQ" general="_sFGZUHGfEd6bf47ZOcft4w"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_iFB1EK4EEd6_ioDelDcPPg" name="VitalSignsSection">
      <ownedComment xmi:id="_1MSkYK4FEd6_ioDelDcPPg" annotatedElement="_iFB1EK4EEd6_ioDelDcPPg">
        <body>&lt;p>&#xD;
    The vital signs section shall contain a narrative description of the measurement results of a patient's vital signs.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_F0VGByWbEeGCz74CaMtvdQ" name="IHEVitalSignsSectionTemplateId" constrainedElement="_iFB1EK4EEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0VGCCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.25')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_lkJAQK4EEd6_ioDelDcPPg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GKpeMKPaEd6t_4WfM070fA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_5k1R8K4FEd6_ioDelDcPPg" name="CodedVitalSignsSection">
      <ownedComment xmi:id="_Jx9SoMf2Ed6VjLXh4DcWSg" annotatedElement="_5k1R8K4FEd6_ioDelDcPPg">
        <body>The vital signs section contains coded measurement results of a patient's vital signs.</body>
      </ownedComment>
      <ownedRule xmi:id="_F0e3ACWbEeGCz74CaMtvdQ" name="CodedVitalSignsSectionTemplateId" constrainedElement="_5k1R8K4FEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0e3ASWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.5.3.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1hY0CWbEeGCz74CaMtvdQ" name="CodedVitalSignsSectionVitalSignsOrganizer" constrainedElement="_5k1R8K4FEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1hY0SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.organizer.oclIsUndefined() and entry.organizer.oclIsKindOf(ihe::VitalSignsOrganizer))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_8EJ0EK4FEd6_ioDelDcPPg" general="_iFB1EK4EEd6_ioDelDcPPg"/>
      <ownedOperation xmi:id="_F1hY0iWbEeGCz74CaMtvdQ" name="getIHEVitalSignsOrganizers" isQuery="true" bodyCondition="_F1hY1SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F1hY1SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F1hY0iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1hY1iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getOrganizers()->select(organizer : cda::Organizer | not organizer.oclIsUndefined() and organizer.oclIsKindOf(ihe::VitalSignsOrganizer)).oclAsType(ihe::VitalSignsOrganizer)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F1hY0yWbEeGCz74CaMtvdQ" type="_hVMdIK4QEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F1hY1CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_LriUcK4NEd6_ioDelDcPPg" name="VitalSignObservation">
      <ownedComment xmi:id="_u_ZYkDSKEeC4N-P6mHDwgg">
        <body>A vital signs observation is a simple observation that uses a specific vocabulary, and inherits&#xD;
constraints from CCD.</body>
      </ownedComment>
      <ownedRule xmi:id="_F0e3AyWbEeGCz74CaMtvdQ" name="VitalSignObservationTemplateId" constrainedElement="_LriUcK4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0e3BCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0e3BiWbEeGCz74CaMtvdQ" name="ResultObservationCode" constrainedElement="_LriUcK4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0e3ByWbEeGCz74CaMtvdQ">
          <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'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0oA8CWbEeGCz74CaMtvdQ" name="VitalSignObservationInterpretationCode" constrainedElement="_LriUcK4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0oA8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.interpretationCode->isEmpty() or self.interpretationCode->exists(element | element.isNullFlavorUndefined())) implies (not self.interpretationCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0oA8iWbEeGCz74CaMtvdQ" name="VitalSignObservationMethodCode" constrainedElement="_LriUcK4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0oA8yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.methodCode->isEmpty() or self.methodCode->exists(element | element.isNullFlavorUndefined())) implies (not self.methodCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0oA9CWbEeGCz74CaMtvdQ" name="VitalSignObservationTargetSiteCode" constrainedElement="_LriUcK4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0oA9SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.targetSiteCode->isEmpty() or self.targetSiteCode->exists(element | element.isNullFlavorUndefined())) implies (not self.targetSiteCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0oA9iWbEeGCz74CaMtvdQ" name="VitalSignObservationValue" constrainedElement="_LriUcK4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0oA9yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (self.value->forAll(element | element.oclIsTypeOf(datatypes::PQ)))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_PU_HYK4NEd6_ioDelDcPPg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_MQHZEHDAEd6eItyqb1FoWg"/>
      </generalization>
      <generalization xmi:id="_pcbyQDhCEd-RGdSGlf-Kow" general="_dLvb0K4NEd6_ioDelDcPPg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_dLvb0K4NEd6_ioDelDcPPg" name="SimpleObservation" isAbstract="true">
      <ownedComment xmi:id="_x8oQ0K4NEd6_ioDelDcPPg" annotatedElement="_dLvb0K4NEd6_ioDelDcPPg">
        <body>The simple observation entry is meant to be an abstract representation of many of the observations used in this&#xD;
specification. It can be made concrete by the specification of a few additional constraints, namely the vocabulary used for&#xD;
codes, and the value representation. A simple observation may also inherit constraints from other specifications (e.g.,&#xD;
ASTM/HL7 Continuity of Care Document).</body>
      </ownedComment>
      <ownedRule xmi:id="_F0xx8CWbEeGCz74CaMtvdQ" name="SimpleObservationTemplateId" constrainedElement="_dLvb0K4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0xx8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0xx8yWbEeGCz74CaMtvdQ" name="SimpleObservationId" constrainedElement="_dLvb0K4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0xx9CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id->isEmpty() or self.id->exists(element | element.isNullFlavorUndefined())) implies (not self.id->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F0xx9SWbEeGCz74CaMtvdQ" name="SimpleObservationStatusCode" constrainedElement="_dLvb0K4NEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F0xx9iWbEeGCz74CaMtvdQ">
          <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;value.code = 'completed'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_naMM0K4NEd6_ioDelDcPPg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_hVMdIK4QEd6_ioDelDcPPg" name="VitalSignsOrganizer">
      <ownedComment xmi:id="_w0c0sDSVEeC4N-P6mHDwgg">
        <body>&lt;p>&#xD;
A vital signs organizer collects vital signs observations.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_U_kKsDVUEeCCs-MhNzM4tg" name="IHEVitalSignsOrganizerRequireResultsOrganizerTemplateID" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_cW0FEDVUEeCCs-MhNzM4tg">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root ='2.16.840.1.113883.10.20.1.32')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F07i8CWbEeGCz74CaMtvdQ" name="IHEVitalSignsOrganizerTemplateId" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F07i8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F07i8yWbEeGCz74CaMtvdQ" name="IHEVitalSignsOrganizerClassCode" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F07i9CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.classCode=vocab::x_ActClassDocumentEntryOrganizer::CLUSTER</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1Es4CWbEeGCz74CaMtvdQ" name="ResultOrganizerCode" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1Es4SWbEeGCz74CaMtvdQ">
          <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 = '46680005' and value.codeSystem = '2.16.840.1.113883.6.96'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1Es4iWbEeGCz74CaMtvdQ" name="IHEVitalSignsOrganizerEffectiveTime" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1Es4yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1Od4CWbEeGCz74CaMtvdQ" name="ResultOrganizerStatusCode" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1Od4SWbEeGCz74CaMtvdQ">
          <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;value.code = 'completed'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1Od4iWbEeGCz74CaMtvdQ" name="IHEVitalSignsOrganizerId" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1Od4yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id->isEmpty() or self.id->exists(element | element.isNullFlavorUndefined())) implies (self.id->size() = 1)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1Od5CWbEeGCz74CaMtvdQ" name="IHEVitalSignsOrganizerVitalSignObservation" constrainedElement="_hVMdIK4QEd6_ioDelDcPPg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1Od5SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.component->exists(component : cda::Component4 | not component.observation.oclIsUndefined() and component.observation.oclIsKindOf(ihe::VitalSignObservation))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_j3GZMK4QEd6_ioDelDcPPg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_wN4O0K3zEd6_ioDelDcPPg"/>
      </generalization>
      <ownedOperation xmi:id="_F1YO4CWbEeGCz74CaMtvdQ" name="getVitalSignObservations" isQuery="true" bodyCondition="_F1YO4yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F1YO4yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F1YO4CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1YO5CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::VitalSignObservation)).oclAsType(ihe::VitalSignObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F1YO4SWbEeGCz74CaMtvdQ" type="_LriUcK4NEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F1YO4iWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ynU6sMfXEd6VjLXh4DcWSg" name="PayersSection">
      <ownedComment xmi:id="_gIRwAMfYEd6VjLXh4DcWSg" annotatedElement="_ynU6sMfXEd6VjLXh4DcWSg">
        <body>The Payers section contains data on the patient's payers, whether a 'third party' insurance, self-pay, other payer or&#xD;
guarantor, or some combination.</body>
      </ownedComment>
      <ownedRule xmi:id="_F1hY1yWbEeGCz74CaMtvdQ" name="IHEPayersSectionTemplateId" constrainedElement="_ynU6sMfXEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1hY2CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.5.3.7')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4DveiWbEeGCz74CaMtvdQ" name="IHEPayersSectionCoverageEntry" constrainedElement="_ynU6sMfXEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4DveyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::CoverageEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_1MYRYMfXEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_T79VIKPeEd6t_4WfM070fA"/>
      </generalization>
      <ownedOperation xmi:id="_F4M5YCWbEeGCz74CaMtvdQ" name="getCoverageEntries" isQuery="true" bodyCondition="_F4M5YyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F4M5YyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F4M5YCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4M5ZCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::CoverageEntry)).oclAsType(ihe::CoverageEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F4M5YSWbEeGCz74CaMtvdQ" type="_PMrjADXgEd-gpLhSMS7jpQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F4M5YiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_QD0tkMfbEd6VjLXh4DcWSg" name="HistoryOfPastIllnessSection">
      <ownedComment xmi:id="_fABAEMfbEd6VjLXh4DcWSg" annotatedElement="_QD0tkMfbEd6VjLXh4DcWSg">
        <body>The History of Past Illness section shall contain a narrative description of the conditions the patient suffered in the&#xD;
past. It shall include entries for problems as described in the Entry Content Modules.</body>
      </ownedComment>
      <ownedRule xmi:id="_F1hY2iWbEeGCz74CaMtvdQ" name="HistoryOfPastIllnessSectionTemplateId" constrainedElement="_QD0tkMfbEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1hY2yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.8')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1rJ0CWbEeGCz74CaMtvdQ" name="HistoryOfPastIllnessSectionCode" constrainedElement="_QD0tkMfbEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1rJ0SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11348-0' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_W5e90MfbEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_iVB-oMfcEd6VjLXh4DcWSg" name="ChiefComplaintSection">
      <ownedComment xmi:id="_69I80MfcEd6VjLXh4DcWSg" annotatedElement="_iVB-oMfcEd6VjLXh4DcWSg">
        <body>This contains a narrative description of the patient's chief complaint.</body>
      </ownedComment>
      <ownedRule xmi:id="_F1rJ0iWbEeGCz74CaMtvdQ" name="ChiefComplaintSectionTemplateId" constrainedElement="_iVB-oMfcEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1rJ0yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.13.2.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1rJ1SWbEeGCz74CaMtvdQ" name="ChiefComplaintSectionCode" constrainedElement="_iVB-oMfcEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1rJ1iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10154-3' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_rPXcYMfcEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_XicJUMfdEd6VjLXh4DcWSg" name="ReasonForReferralSection">
      <ownedComment xmi:id="_tI8XsMfdEd6VjLXh4DcWSg" annotatedElement="_XicJUMfdEd6VjLXh4DcWSg">
        <body>The reason for referral section shall contain a narrative description of the reason that the patient is being referred.</body>
      </ownedComment>
      <ownedRule xmi:id="_F10TwCWbEeGCz74CaMtvdQ" name="ReasonForReferralSectionTemplateId" constrainedElement="_XicJUMfdEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F10TwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F10TwyWbEeGCz74CaMtvdQ" name="ReasonForReferralSectionCode" constrainedElement="_XicJUMfdEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F10TxCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '42349-1' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_f1I_UMfdEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_jWj60MfhEd6VjLXh4DcWSg" name="HistoryOfPresentIllness">
      <ownedComment xmi:id="_wSbUUMfhEd6VjLXh4DcWSg" annotatedElement="_jWj60MfhEd6VjLXh4DcWSg">
        <body>The history of present illness section shall contain a narrative description of the sequence of events preceding the&#xD;
patient's current complaints.</body>
      </ownedComment>
      <ownedRule xmi:id="_F1-EwCWbEeGCz74CaMtvdQ" name="HistoryOfPresentIllnessTemplateId" constrainedElement="_jWj60MfhEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1-EwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F1-EwyWbEeGCz74CaMtvdQ" name="HistoryOfPresentIllnessCode" constrainedElement="_jWj60MfhEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1-ExCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10164-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_nDBlgMfhEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_jgutAMftEd6VjLXh4DcWSg" name="SurgeriesSection">
      <ownedComment xmi:id="_0aVHYMftEd6VjLXh4DcWSg" annotatedElement="_jgutAMftEd6VjLXh4DcWSg">
        <body>The list of surgeries section shall contain a narrative description of the diagnostic and therapeutic operative procedures&#xD;
and associated anesthetic techniques the patient received in the past.</body>
      </ownedComment>
      <ownedRule xmi:id="_F1-ExSWbEeGCz74CaMtvdQ" name="SurgeriesSectionTemplateId" constrainedElement="_jgutAMftEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F1-ExiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.11')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_tTPI4MftEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_p_LEwIjvEd66cKocspyVOg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_9fsJYMftEd6VjLXh4DcWSg" name="CodedSurgeriesSection">
      <ownedComment xmi:id="_JeA8kMfuEd6VjLXh4DcWSg" annotatedElement="_9fsJYMftEd6VjLXh4DcWSg">
        <body>The list of surgeries section shall include entries for procedures and references to procedure reports when known as&#xD;
described in the Entry Content Modules.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2H1wSWbEeGCz74CaMtvdQ" name="CodedSurgeriesSectionTemplateId" constrainedElement="_9fsJYMftEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2H1wiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.12')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAsuHCWbEeGCz74CaMtvdQ" name="CodedSurgeriesSectionExternalReference" constrainedElement="_9fsJYMftEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAsuHSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::ExternalReference))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAsuIyWbEeGCz74CaMtvdQ" name="CodedSurgeriesSectionProcedureEntryProcedureActivityProcedure" constrainedElement="_9fsJYMftEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAsuJCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.procedure.oclIsUndefined() and entry.procedure.oclIsKindOf(ihe::ProcedureEntryProcedureActivityProcedure))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_CZnswMfuEd6VjLXh4DcWSg" general="_jgutAMftEd6VjLXh4DcWSg"/>
      <ownedOperation xmi:id="_GAsuHiWbEeGCz74CaMtvdQ" name="getExternalReference" isQuery="true" bodyCondition="_GAsuISWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GAsuISWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GAsuHiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAsuIiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::ExternalReference))->asSequence()->first().oclAsType(ihe::ExternalReference)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GAsuHyWbEeGCz74CaMtvdQ" type="_hBLMcBj6EeCf9aMNaCAtDQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GAsuICWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GAsuJSWbEeGCz74CaMtvdQ" name="getProcedureEntryProcedureActivityProcedures" isQuery="true" bodyCondition="_GA2fEiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GA2fEiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GAsuJSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GA2fEyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getProcedures()->select(procedure : cda::Procedure | not procedure.oclIsUndefined() and procedure.oclIsKindOf(ihe::ProcedureEntryProcedureActivityProcedure)).oclAsType(ihe::ProcedureEntryProcedureActivityProcedure)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GA2fECWbEeGCz74CaMtvdQ" type="_6yfdEDuNEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GA2fESWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_MvxLwMfvEd6VjLXh4DcWSg" name="HospitalAdmissionDiagnosisSection">
      <ownedComment xmi:id="_cJSTcMfvEd6VjLXh4DcWSg" annotatedElement="_MvxLwMfvEd6VjLXh4DcWSg">
        <body>The hospital admitting diagnosis section shall contain a narrative description of the primary reason for admission to a&#xD;
hospital facility. It shall include entries for observations as described in the Entry Content Modules.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2H1xCWbEeGCz74CaMtvdQ" name="HospitalAdmissionDiagnosisSectionTemplateId" constrainedElement="_MvxLwMfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2H1xSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F2H1xyWbEeGCz74CaMtvdQ" name="HospitalAdmissionDiagnosisSectionCode" constrainedElement="_MvxLwMfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2H1yCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '46241-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBcU_yWbEeGCz74CaMtvdQ" name="HospitalAdmissionDiagnosisSectionProblemConcernEntry" constrainedElement="_MvxLwMfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBcVACWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::ProblemConcernEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_U6294MfvEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GBcVASWbEeGCz74CaMtvdQ" name="getProblemConcernEntry" isQuery="true" bodyCondition="_GBcVBCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GBcVBCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GBcVASWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBcVBSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::ProblemConcernEntry))->asSequence()->first().oclAsType(ihe::ProblemConcernEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GBcVAiWbEeGCz74CaMtvdQ" type="_wSnPAGaQEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GBcVAyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_3ov5QMfvEd6VjLXh4DcWSg" name="DischargeDiagnosisSection">
      <ownedComment xmi:id="_Bgh2sMfwEd6VjLXh4DcWSg" annotatedElement="_3ov5QMfvEd6VjLXh4DcWSg">
        <body>The discharge diagnosis section shall contain a narrative description of the conditions that need to be monitored after&#xD;
discharge from the hospital and those that were resolved during the hospital course. It shall include entries for patient&#xD;
conditions as described in the Entry Content Module.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2Q_sCWbEeGCz74CaMtvdQ" name="DischargeDiagnosisSectionTemplateId" constrainedElement="_3ov5QMfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2Q_sSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.7')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F2Q_syWbEeGCz74CaMtvdQ" name="DischargeDiagnosisSectionCode" constrainedElement="_3ov5QMfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2Q_tCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11535-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBcU9SWbEeGCz74CaMtvdQ" name="DischargeDiagnosisSectionProblemConcernEntry" constrainedElement="_3ov5QMfvEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBcU9iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::ProblemConcernEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_7mCOMMfvEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GBcU9yWbEeGCz74CaMtvdQ" name="getProblemConcernEntry" isQuery="true" bodyCondition="_GBcU-iWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GBcU-iWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GBcU9yWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBcU-yWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::ProblemConcernEntry))->asSequence()->first().oclAsType(ihe::ProblemConcernEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GBcU-CWbEeGCz74CaMtvdQ" type="_wSnPAGaQEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GBcU-SWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_3Se44MfwEd6VjLXh4DcWSg" name="AdmissionMedicationHistorySection">
      <ownedComment xmi:id="__793MMfwEd6VjLXh4DcWSg" annotatedElement="_3Se44MfwEd6VjLXh4DcWSg">
        <body>The admission medication history section shall contain a narrative description of the relevant medications administered to&#xD;
a patient prior to admission to a facility. It shall include entries for medication administration as described in the&#xD;
Entry Content Module.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2awsCWbEeGCz74CaMtvdQ" name="AdmissionMedicationHistorySectionTemplateId" constrainedElement="_3Se44MfwEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2awsSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.20')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F2awsyWbEeGCz74CaMtvdQ" name="AdmissionMedicationHistorySectionCode" constrainedElement="_3Se44MfwEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2awtCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '42346-7' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_7iCCgMfwEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_JAhygMfyEd6VjLXh4DcWSg" name="HospitalDischargeMedicationsSection">
      <ownedComment xmi:id="_akYq0MfyEd6VjLXh4DcWSg" annotatedElement="_JAhygMfyEd6VjLXh4DcWSg">
        <body>The hospital discharge medications section shall contain a narrative description of the medications requested&#xD;
            (ordered) to be administered to the patient after discharge from the hospital. It shall include entries for&#xD;
            medication requests as described in the Entry Content Module.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2awtSWbEeGCz74CaMtvdQ" name="HospitalDischargeMedicationsSectionTemplateId" constrainedElement="_JAhygMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2awtiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.22')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F2khsSWbEeGCz74CaMtvdQ" name="HospitalDischargeMedicationsSectionCode" constrainedElement="_JAhygMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2khsiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10183-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBTLBCWbEeGCz74CaMtvdQ" name="HospitalDischargeMedicationsSectionMedication" constrainedElement="_JAhygMfyEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBTLBSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.substanceAdministration.oclIsUndefined() and entry.substanceAdministration.oclIsKindOf(ihe::Medication))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_S1iv0MfyEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GBcU8CWbEeGCz74CaMtvdQ" name="getMedication" isQuery="true" bodyCondition="_GBcU8yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GBcU8yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GBcU8CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBcU9CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getSubstanceAdministrations()->select(substanceAdministration : cda::SubstanceAdministration | not substanceAdministration.oclIsUndefined() and substanceAdministration.oclIsKindOf(ihe::Medication))->asSequence()->first().oclAsType(ihe::Medication)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GBcU8SWbEeGCz74CaMtvdQ" type="_sFGZUHGfEd6bf47ZOcft4w" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GBcU8iWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_bSHeEMfzEd6VjLXh4DcWSg" name="CodedAdvanceDirectivesSection">
      <ownedRule xmi:id="_F2khsyWbEeGCz74CaMtvdQ" name="CodedAdvanceDirectivesSectionTemplateId" constrainedElement="_bSHeEMfzEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2khtCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.35')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCfd1CWbEeGCz74CaMtvdQ" name="CodedAdvanceDirectivesSectionAdvanceDirectivesObservation" constrainedElement="_bSHeEMfzEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCfd1SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::AdvanceDirectiveObservation))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_pXLUQMfzEd6VjLXh4DcWSg" general="_fc6DgMfzEd6VjLXh4DcWSg"/>
      <ownedOperation xmi:id="_GCfd1iWbEeGCz74CaMtvdQ" name="getAdvanceDirectivesObservations" isQuery="true" bodyCondition="_GCfd2SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GCfd2SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GCfd1iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCfd2iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::AdvanceDirectiveObservation)).oclAsType(ihe::AdvanceDirectiveObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GCfd1yWbEeGCz74CaMtvdQ" type="_JkYOEMzkEeCvbrjDQpuvkw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GCfd2CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_fc6DgMfzEd6VjLXh4DcWSg" name="AdvanceDirectivesSection">
      <ownedComment xmi:id="_AwXoQMf0Ed6VjLXh4DcWSg" annotatedElement="_fc6DgMfzEd6VjLXh4DcWSg">
        <body>The advance directive section shall contain a narrative description of the list of documents that define the patient's&#xD;
expectations and requests for care along with the locations of the documents.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2troCWbEeGCz74CaMtvdQ" name="IHEAdvanceDirectivesSectionTemplateId" constrainedElement="_fc6DgMfzEd6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2troSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.34')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ovC9QMfzEd6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_NvRwcKPeEd6t_4WfM070fA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_IAGv8Mf1Ed6VjLXh4DcWSg" name="PhysicalExamNarrativeSection">
      <ownedComment xmi:id="_y4jR8Mf1Ed6VjLXh4DcWSg" annotatedElement="_IAGv8Mf1Ed6VjLXh4DcWSg">
        <body>The physical exam section shall contain a narrative description of the patient's physical findings.</body>
      </ownedComment>
      <ownedRule xmi:id="_F2troyWbEeGCz74CaMtvdQ" name="PhysicalExamNarrativeSectionTemplateId" constrainedElement="_IAGv8Mf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2trpCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.24')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F2trpiWbEeGCz74CaMtvdQ" name="PhysicalExamNarrativeSectionCode" constrainedElement="_IAGv8Mf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F2trpyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '29545-1' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_QAS5oMf1Ed6VjLXh4DcWSg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_LGf5IMf1Ed6VjLXh4DcWSg" name="PhysicalExamSection">
      <ownedComment xmi:id="_t8oKgMf1Ed6VjLXh4DcWSg" annotatedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <body>The physical exam section shall contain only the required and optional subsections performed.</body>
      </ownedComment>
      <ownedRule xmi:id="_F23coCWbEeGCz74CaMtvdQ" name="PhysicalExamSectionTemplateId" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F23coSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.15')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCyYxSWbEeGCz74CaMtvdQ" name="PhysicalExamSectionVitalSignsSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCyYxiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::VitalSignsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGqMJyWbEeGCz74CaMtvdQ" name="PhysicalExamSectionGeneralAppearanceSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGqMKCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::GeneralAppearanceSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGqMLiWbEeGCz74CaMtvdQ" name="PhysicalExamSectionVisibleImplantedMedicalDevicesSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGqMLyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::VisibleImplantedMedicalDevicesSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGz9JSWbEeGCz74CaMtvdQ" name="PhysicalExamSectionIntegumentarySystemSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGz9JiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::IntegumentarySystemSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGz9LCWbEeGCz74CaMtvdQ" name="PhysicalExamSectionHeadSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGz9LSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::HeadSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GG9HECWbEeGCz74CaMtvdQ" name="PhysicalExamSectionEyesSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GG9HESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EyesSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GG9HFyWbEeGCz74CaMtvdQ" name="PhysicalExamSectionEarsNoseMouthThroatSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GG9HGCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EarsNoseMouthThroatSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GG9HHiWbEeGCz74CaMtvdQ" name="PhysicalExamSectionEarsSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GG9HHyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EarsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHG4EiWbEeGCz74CaMtvdQ" name="PhysicalExamSectionNoseSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4EyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::NoseSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHG4GSWbEeGCz74CaMtvdQ" name="PhysicalExamSectionMouthThroatTeethSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4GiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::MouthThroatTeethSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHG4ICWbEeGCz74CaMtvdQ" name="PhysicalExamSectionNeckSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4ISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::NeckSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHQpECWbEeGCz74CaMtvdQ" name="PhysicalExamSectionEndocrineSystemSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHQpESWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EndocrineSystemSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHQpFyWbEeGCz74CaMtvdQ" name="PhysicalExamSectionThoraxLungsSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHQpGCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ThoraxLungsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHQpHiWbEeGCz74CaMtvdQ" name="PhysicalExamSectionChestWallSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHQpHyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ChestWallSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHZzAyWbEeGCz74CaMtvdQ" name="PhysicalExamSectionBreastSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHZzBCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::BreastSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHZzCiWbEeGCz74CaMtvdQ" name="PhysicalExamSectionHeartSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHZzCyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::HeartSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHZzESWbEeGCz74CaMtvdQ" name="PhysicalExamSectionRespiratorySystemSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHZzEiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::RespiratorySystemSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHjkBSWbEeGCz74CaMtvdQ" name="PhysicalExamSectionAbdomenSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHjkBiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::AbdomenSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHjkDCWbEeGCz74CaMtvdQ" name="PhysicalExamSectionLymphaticSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHjkDSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::LymphaticSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHjkEyWbEeGCz74CaMtvdQ" name="PhysicalExamSectionVesselsSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHjkFCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::VesselsSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHst9SWbEeGCz74CaMtvdQ" name="PhysicalExamSectionMusculoskeletalSystemSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHst9iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::MusculoskeletalSystemSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHst_CWbEeGCz74CaMtvdQ" name="PhysicalExamSectionNeurologicSystemSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHst_SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::NeurologicSystemSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GHsuAyWbEeGCz74CaMtvdQ" name="PhysicalExamSectionGenitaliaSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHsuBCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::GenitaliaSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GH2e9SWbEeGCz74CaMtvdQ" name="PhysicalExamSectionRectumSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GH2e9iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::RectumSection))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GH2e_CWbEeGCz74CaMtvdQ" name="PhysicalExamSectionExtremitiesSection" constrainedElement="_LGf5IMf1Ed6VjLXh4DcWSg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GH2e_SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ExtremitiesSection))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Qnv7MMf1Ed6VjLXh4DcWSg" general="_IAGv8Mf1Ed6VjLXh4DcWSg"/>
      <ownedOperation xmi:id="_GCyYxyWbEeGCz74CaMtvdQ" name="getVitalSignsSection" isQuery="true" bodyCondition="_GCyYyiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GCyYyiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GCyYxyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCyYyyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::VitalSignsSection))->asSequence()->first().oclAsType(ihe::VitalSignsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GCyYyCWbEeGCz74CaMtvdQ" type="_iFB1EK4EEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GCyYySWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GGqMKSWbEeGCz74CaMtvdQ" name="getGeneralAppearanceSection" isQuery="true" bodyCondition="_GGqMLCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGqMLCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGqMKSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGqMLSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::GeneralAppearanceSection))->asSequence()->first().oclAsType(ihe::GeneralAppearanceSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGqMKiWbEeGCz74CaMtvdQ" type="_NwEIMM9REeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGqMKyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GGz9ICWbEeGCz74CaMtvdQ" name="getVisibleImplantedMedicalDevicesSection" isQuery="true" bodyCondition="_GGz9IyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGz9IyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGz9ICWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGz9JCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::VisibleImplantedMedicalDevicesSection))->asSequence()->first().oclAsType(ihe::VisibleImplantedMedicalDevicesSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGz9ISWbEeGCz74CaMtvdQ" type="_j2TmkM9REeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGz9IiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GGz9JyWbEeGCz74CaMtvdQ" name="getIntegumentarySystemSection" isQuery="true" bodyCondition="_GGz9KiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGz9KiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGz9JyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGz9KyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::IntegumentarySystemSection))->asSequence()->first().oclAsType(ihe::IntegumentarySystemSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGz9KCWbEeGCz74CaMtvdQ" type="_KhAVwM9SEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGz9KSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GGz9LiWbEeGCz74CaMtvdQ" name="getHeadSection" isQuery="true" bodyCondition="_GGz9MSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGz9MSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGz9LiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGz9MiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::HeadSection))->asSequence()->first().oclAsType(ihe::HeadSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGz9LyWbEeGCz74CaMtvdQ" type="_tvofUM9VEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGz9MCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GG9HEiWbEeGCz74CaMtvdQ" name="getEyesSection" isQuery="true" bodyCondition="_GG9HFSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GG9HFSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GG9HEiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GG9HFiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EyesSection))->asSequence()->first().oclAsType(ihe::EyesSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GG9HEyWbEeGCz74CaMtvdQ" type="_AieTQM9WEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GG9HFCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GG9HGSWbEeGCz74CaMtvdQ" name="getEarsNoseMouthThroatSection" isQuery="true" bodyCondition="_GG9HHCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GG9HHCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GG9HGSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GG9HHSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EarsNoseMouthThroatSection))->asSequence()->first().oclAsType(ihe::EarsNoseMouthThroatSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GG9HGiWbEeGCz74CaMtvdQ" type="_X4APQM9WEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GG9HGyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GG9HICWbEeGCz74CaMtvdQ" name="getEarsSection" isQuery="true" bodyCondition="_GHG4ECWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHG4ECWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GG9HICWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4ESWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EarsSection))->asSequence()->first().oclAsType(ihe::EarsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GG9HISWbEeGCz74CaMtvdQ" type="_stnMMM9WEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GG9HIiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHG4FCWbEeGCz74CaMtvdQ" name="getNoseSection" isQuery="true" bodyCondition="_GHG4FyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHG4FyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHG4FCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4GCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::NoseSection))->asSequence()->first().oclAsType(ihe::NoseSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHG4FSWbEeGCz74CaMtvdQ" type="_9L0rEM9WEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHG4FiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHG4GyWbEeGCz74CaMtvdQ" name="getMouthThroatTeethSection" isQuery="true" bodyCondition="_GHG4HiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHG4HiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHG4GyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4HyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::MouthThroatTeethSection))->asSequence()->first().oclAsType(ihe::MouthThroatTeethSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHG4HCWbEeGCz74CaMtvdQ" type="_UwOwkM9XEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHG4HSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHG4IiWbEeGCz74CaMtvdQ" name="getNeckSection" isQuery="true" bodyCondition="_GHG4JSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHG4JSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHG4IiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHG4JiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::NeckSection))->asSequence()->first().oclAsType(ihe::NeckSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHG4IyWbEeGCz74CaMtvdQ" type="_mMLqEM9XEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHG4JCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHQpEiWbEeGCz74CaMtvdQ" name="getEndocrineSystemSection" isQuery="true" bodyCondition="_GHQpFSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHQpFSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHQpEiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHQpFiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::EndocrineSystemSection))->asSequence()->first().oclAsType(ihe::EndocrineSystemSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHQpEyWbEeGCz74CaMtvdQ" type="_zCJ28M9XEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHQpFCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHQpGSWbEeGCz74CaMtvdQ" name="getThoraxLungsSection" isQuery="true" bodyCondition="_GHQpHCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHQpHCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHQpGSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHQpHSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ThoraxLungsSection))->asSequence()->first().oclAsType(ihe::ThoraxLungsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHQpGiWbEeGCz74CaMtvdQ" type="_DAYOMM9YEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHQpGyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHQpICWbEeGCz74CaMtvdQ" name="getChestWallSection" isQuery="true" bodyCondition="_GHZzASWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHZzASWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHQpICWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHZzAiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ChestWallSection))->asSequence()->first().oclAsType(ihe::ChestWallSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHQpISWbEeGCz74CaMtvdQ" type="_IXiqsM9ZEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHZzACWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHZzBSWbEeGCz74CaMtvdQ" name="getBreastSection" isQuery="true" bodyCondition="_GHZzCCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHZzCCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHZzBSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHZzCSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::BreastSection))->asSequence()->first().oclAsType(ihe::BreastSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHZzBiWbEeGCz74CaMtvdQ" type="_U4Y8IM9ZEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHZzByWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHZzDCWbEeGCz74CaMtvdQ" name="getHeartSection" isQuery="true" bodyCondition="_GHZzDyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHZzDyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHZzDCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHZzECWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::HeartSection))->asSequence()->first().oclAsType(ihe::HeartSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHZzDSWbEeGCz74CaMtvdQ" type="_deZvsM9ZEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHZzDiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHjkACWbEeGCz74CaMtvdQ" name="getRespiratorySystemSection" isQuery="true" bodyCondition="_GHjkAyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHjkAyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHjkACWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHjkBCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::RespiratorySystemSection))->asSequence()->first().oclAsType(ihe::RespiratorySystemSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHjkASWbEeGCz74CaMtvdQ" type="_C17m0M9aEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHjkAiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHjkByWbEeGCz74CaMtvdQ" name="getAbdomenSection" isQuery="true" bodyCondition="_GHjkCiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHjkCiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHjkByWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHjkCyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::AbdomenSection))->asSequence()->first().oclAsType(ihe::AbdomenSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHjkCCWbEeGCz74CaMtvdQ" type="_VnlH8M9aEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHjkCSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHjkDiWbEeGCz74CaMtvdQ" name="getLymphaticSection" isQuery="true" bodyCondition="_GHjkESWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHjkESWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHjkDiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHjkEiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::LymphaticSection))->asSequence()->first().oclAsType(ihe::LymphaticSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHjkDyWbEeGCz74CaMtvdQ" type="_CbVgEM9bEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHjkECWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHst8CWbEeGCz74CaMtvdQ" name="getVesselsSection" isQuery="true" bodyCondition="_GHst8yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHst8yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHst8CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHst9CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::VesselsSection))->asSequence()->first().oclAsType(ihe::VesselsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHst8SWbEeGCz74CaMtvdQ" type="_Rb0csM9bEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHst8iWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHst9yWbEeGCz74CaMtvdQ" name="getMusculoskeletalSystemSection" isQuery="true" bodyCondition="_GHst-iWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHst-iWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHst9yWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHst-yWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::MusculoskeletalSystemSection))->asSequence()->first().oclAsType(ihe::MusculoskeletalSystemSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHst-CWbEeGCz74CaMtvdQ" type="_fkNTsM9bEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHst-SWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GHst_iWbEeGCz74CaMtvdQ" name="getNeurologicSystemSection" isQuery="true" bodyCondition="_GHsuASWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GHsuASWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GHst_iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GHsuAiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::NeurologicSystemSection))->asSequence()->first().oclAsType(ihe::NeurologicSystemSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GHst_yWbEeGCz74CaMtvdQ" type="_WMKJwM9cEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GHsuACWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GH2e8CWbEeGCz74CaMtvdQ" name="getGenitaliaSection" isQuery="true" bodyCondition="_GH2e8yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GH2e8yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GH2e8CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GH2e9CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::GenitaliaSection))->asSequence()->first().oclAsType(ihe::GenitaliaSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GH2e8SWbEeGCz74CaMtvdQ" type="_iIjqUM9cEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GH2e8iWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GH2e9yWbEeGCz74CaMtvdQ" name="getRectumSection" isQuery="true" bodyCondition="_GH2e-iWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GH2e-iWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GH2e9yWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GH2e-yWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::RectumSection))->asSequence()->first().oclAsType(ihe::RectumSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GH2e-CWbEeGCz74CaMtvdQ" type="_ttJH0M9cEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GH2e-SWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GJyYoCWbEeGCz74CaMtvdQ" name="getExtremitiesSection" isQuery="true" bodyCondition="_GJyYoyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GJyYoyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GJyYoCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GJyYpCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ExtremitiesSection))->asSequence()->first().oclAsType(ihe::ExtremitiesSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GJyYoSWbEeGCz74CaMtvdQ" type="_53FVIM9cEeCBIMy4xFlonQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GJyYoiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_6fSusMiWEd6mWrHPmrIIfQ" name="ReviewOfSystemsSection">
      <ownedComment xmi:id="_cZMy8MiYEd6mWrHPmrIIfQ" annotatedElement="_6fSusMiWEd6mWrHPmrIIfQ">
        <body>The review of systems section shall contain a narrative description of the responses the patient gave to a set of routine&#xD;
questions on the functions of each anatomic body system.</body>
      </ownedComment>
      <ownedRule xmi:id="_F23coyWbEeGCz74CaMtvdQ" name="ReviewOfSystemsSectionTemplateId" constrainedElement="_6fSusMiWEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F23cpCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.18')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F3AmkCWbEeGCz74CaMtvdQ" name="ReviewOfSystemsSectionCode" constrainedElement="_6fSusMiWEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3AmkSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10187-3' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_At0tgMiXEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_DO0b4MidEd6mWrHPmrIIfQ" name="HospitalCourseSection">
      <ownedComment xmi:id="_UToAsMidEd6mWrHPmrIIfQ" annotatedElement="_DO0b4MidEd6mWrHPmrIIfQ">
        <body>The hospital course section shall contain a narrative description of the sequence of events from admission to discharge in&#xD;
a hospital facility.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3AmkiWbEeGCz74CaMtvdQ" name="HospitalCourseSectionTemplateId" constrainedElement="_DO0b4MidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3AmkyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.5')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F3KXkCWbEeGCz74CaMtvdQ" name="HospitalCourseSectionCode" constrainedElement="_DO0b4MidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3KXkSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '8648-8' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_g4z_kMidEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_-OeSAMidEd6mWrHPmrIIfQ" name="CodedResultsSection">
      <ownedComment xmi:id="_I7CiYMieEd6mWrHPmrIIfQ" annotatedElement="_-OeSAMidEd6mWrHPmrIIfQ">
        <body>The results section shall contain a narrative description of the relevant diagnostic procedures the patient received in the&#xD;
past. It shall include entries for procedures and references to procedure reports when known as described in the Entry&#xD;
Content Modules.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3KXkiWbEeGCz74CaMtvdQ" name="CodedResultsSectionTemplateId" constrainedElement="_-OeSAMidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3KXkyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.28')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F3KXlSWbEeGCz74CaMtvdQ" name="CodedResultsSectionCode" constrainedElement="_-OeSAMidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3KXliWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '30954-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-nDYCWbEeGCz74CaMtvdQ" name="CodedResultsSectionProcedureEntry" constrainedElement="_-OeSAMidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-nDYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.procedure.oclIsUndefined() and entry.procedure.oclIsKindOf(ihe::ProcedureEntry))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_DvUCWbEeGCz74CaMtvdQ" name="CodedResultsSectionExternalReference" constrainedElement="_-OeSAMidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_DvUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.act.oclIsUndefined() and entry.act.oclIsKindOf(ihe::ExternalReference))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_DvVyWbEeGCz74CaMtvdQ" name="CodedResultsSectionSimpleObservation" constrainedElement="_-OeSAMidEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_DvWCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::SimpleObservation))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_EU3BcMieEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_F-nDYiWbEeGCz74CaMtvdQ" name="getProcedureEntries" isQuery="true" bodyCondition="_F-nDZSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F-nDZSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F-nDYiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-nDZiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getProcedures()->select(procedure : cda::Procedure | not procedure.oclIsUndefined() and procedure.oclIsKindOf(ihe::ProcedureEntry)).oclAsType(ihe::ProcedureEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F-nDYyWbEeGCz74CaMtvdQ" type="_uP4tkDuMEd-B8KE6Jx0UNQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F-nDZCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_F_DvUiWbEeGCz74CaMtvdQ" name="getExternalReferences" isQuery="true" bodyCondition="_F_DvVSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F_DvVSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F_DvUiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_DvViWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::ExternalReference)).oclAsType(ihe::ExternalReference)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F_DvUyWbEeGCz74CaMtvdQ" type="_hBLMcBj6EeCf9aMNaCAtDQ" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_DvVCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_F_DvWSWbEeGCz74CaMtvdQ" name="getSimpleObservations" isQuery="true" bodyCondition="_F_DvXCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F_DvXCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F_DvWSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_DvXSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::SimpleObservation)).oclAsType(ihe::SimpleObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F_DvWiWbEeGCz74CaMtvdQ" type="_dLvb0K4NEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F_DvWyWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_SNPREMifEd6mWrHPmrIIfQ" name="AssessmentAndPlanSection">
      <ownedComment xmi:id="_ddQz0MifEd6mWrHPmrIIfQ" annotatedElement="_SNPREMifEd6mWrHPmrIIfQ">
        <body>The assessment and plan section shall contain a narrative description of the assessment of the patient condition and&#xD;
expectations for care including proposals, goals, and order requests for monitoring, tracking, or improving the condition&#xD;
of the patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3UIkCWbEeGCz74CaMtvdQ" name="AssessmentAndPlanSectionTemplateId" constrainedElement="_SNPREMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3UIkSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.13.2.5')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F3UIkyWbEeGCz74CaMtvdQ" name="AssessmentAndPlanSectionCode" constrainedElement="_SNPREMifEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3UIlCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '51847-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_YipT8MifEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_BEcusMigEd6mWrHPmrIIfQ" name="CarePlanSection">
      <ownedComment xmi:id="_QMLi0MigEd6mWrHPmrIIfQ" annotatedElement="_BEcusMigEd6mWrHPmrIIfQ">
        <body>The care plan section shall contain a narrative description of the expectations for care including proposals, goals, and&#xD;
order requests for monitoring, tracking, or improving the condition of the patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3UIlSWbEeGCz74CaMtvdQ" name="CarePlanSectionTemplateId" constrainedElement="_BEcusMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3dSgCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.31')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_DPCW8MigEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_o9nLAKPTEd6t_4WfM070fA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_kKnAIMigEd6mWrHPmrIIfQ" name="FamilyMedicalHistorySection">
      <ownedComment xmi:id="_vlQegMigEd6mWrHPmrIIfQ" annotatedElement="_kKnAIMigEd6mWrHPmrIIfQ">
        <body>The family history section shall contain a narrative description of the genetic family members, to the extent that they are&#xD;
known, the diseases they suffered from, their ages at death, and other relevant genetic information.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3dSgiWbEeGCz74CaMtvdQ" name="FamilyMedicalHistorySectionTemplateId" constrainedElement="_kKnAIMigEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3dSgyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.14')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_nplocMigEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_5ET7oGwWEd6q29qQGU-SBA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_Kv5q4MihEd6mWrHPmrIIfQ" name="SocialHistorySection">
      <ownedComment xmi:id="_TCqyUMihEd6mWrHPmrIIfQ" annotatedElement="_Kv5q4MihEd6mWrHPmrIIfQ">
        <body>The social history section shall contain a narrative description of the person's beliefs, home life, community life, work&#xD;
life, hobbies, and risky habits.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3dShSWbEeGCz74CaMtvdQ" name="IHESocialHistorySectionTemplateId" constrainedElement="_Kv5q4MihEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3dShiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.16')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Nt9-gMihEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_UOVM0HDAEd6eItyqb1FoWg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_tY30kMiiEd6mWrHPmrIIfQ" name="EncounterHistorySection">
      <ownedComment xmi:id="_z7qzMMiiEd6mWrHPmrIIfQ" annotatedElement="_tY30kMiiEd6mWrHPmrIIfQ">
        <body>&lt;p>&#xD;
    The encounter history section contains coded entries describing the patient history of encounters.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_F3nDgCWbEeGCz74CaMtvdQ" name="EncounterHistorySectionTemplateId" constrainedElement="_tY30kMiiEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3nDgSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.5.3.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7xx0iWbEeGCz74CaMtvdQ" name="EncounterHistorySectionEncounterEntry" constrainedElement="_tY30kMiiEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7xx0yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.encounter.oclIsUndefined() and entry.encounter.oclIsKindOf(ihe::EncounterEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_vuzKIMiiEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_rJDcIHDAEd6eItyqb1FoWg"/>
      </generalization>
      <ownedOperation xmi:id="_F7xx1CWbEeGCz74CaMtvdQ" name="getEncounterEntries" isQuery="true" bodyCondition="_F7xx1yWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F7xx1yWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F7xx1CWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7xx2CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getEncounters()->select(encounter : cda::Encounter | not encounter.oclIsUndefined() and encounter.oclIsKindOf(ihe::EncounterEntry)).oclAsType(ihe::EncounterEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F7xx1SWbEeGCz74CaMtvdQ" type="_z__aIKsNEd-yFfcbpgNFIA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F7xx1iWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_tqabEMijEd6mWrHPmrIIfQ" name="MedicalDevicesSection">
      <ownedComment xmi:id="_1yJXMMijEd6mWrHPmrIIfQ" annotatedElement="_tqabEMijEd6mWrHPmrIIfQ">
        <body>The medical devices section contains narrative text describing the patient history of medical device use.</body>
      </ownedComment>
      <ownedRule xmi:id="_F3nDgyWbEeGCz74CaMtvdQ" name="MedicalDevicesSectionTemplateId" constrainedElement="_tqabEMijEd6mWrHPmrIIfQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3nDhCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.5.3.5')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_w6Wh0MijEd6mWrHPmrIIfQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_5hfTYKPbEd6t_4WfM070fA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_-uU7kDOtEd-5f4Yngl7nkw" name="LanguageCommunication">
      <ownedRule xmi:id="_F3nDhiWbEeGCz74CaMtvdQ" name="IHELanguageCommunicationTemplateId" constrainedElement="_-uU7kDOtEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3nDhyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.2.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_-uU7kTOtEd-5f4Yngl7nkw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_cHD44EcZEd6besF9iFIJkQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_fp-n0DOvEd-5f4Yngl7nkw" name="MedicalSummary">
      <ownedRule xmi:id="_iiAk4DOvEd-5f4Yngl7nkw" name="MedicalSummaryProblemConcernEntry" constrainedElement="_fp-n0DOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_d_T4kDXaEd-gpLhSMS7jpQ">
          <language>OCL</language>
          <body>self.getSections()->exists(sect : cda::Section | sect.getActs()->exists(act : cda::Act | act.oclIsKindOf(ihe::ProblemConcernEntry)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_kVCowDOvEd-5f4Yngl7nkw" name="MedicalSummaryAllergyConcernEntry" constrainedElement="_fp-n0DOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_I5oNYDXcEd-gpLhSMS7jpQ">
          <language>OCL</language>
          <body>self.getSections()->exists(sect : cda::Section | sect.getActs()->exists(act : cda::Act | act.oclIsKindOf(ihe::AllergyIntoleranceConcern)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_mjgEYDOvEd-5f4Yngl7nkw" name="MedicalSummaryMedications" constrainedElement="_fp-n0DOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_MtHGEDXcEd-gpLhSMS7jpQ">
          <language>OCL</language>
          <body>self.getSections()->exists(sect : cda::Section | sect.getSubstanceAdministrations()->exists(sub : cda::SubstanceAdministration | sub.oclIsKindOf(ihe::Medication)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F3nDiSWbEeGCz74CaMtvdQ" name="MedicalSummaryTemplateId" constrainedElement="_fp-n0DOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3nDiiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F3w0gSWbEeGCz74CaMtvdQ" name="GeneralHeaderConstraintsCode" constrainedElement="_fp-n0DOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F3w0giWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_fp-n0TOvEd-5f4Yngl7nkw" general="_wDMM0GEHEd6bFO5yxRh3Nw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_yq8-YDOvEd-5f4Yngl7nkw" name="DischargeSummary">
      <ownedRule xmi:id="_F35-cCWbEeGCz74CaMtvdQ" name="DischargeSummaryTemplateId" constrainedElement="_yq8-YDOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F35-cSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F35-cyWbEeGCz74CaMtvdQ" name="GeneralHeaderConstraintsCode" constrainedElement="_yq8-YDOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F35-dCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4DvcCWbEeGCz74CaMtvdQ" name="DischargeSummaryActiveProblemsSection" constrainedElement="_yq8-YDOvEd-5f4Yngl7nkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4DvcSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.getAllSections()->one(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ActiveProblemsSection))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_yq8-YTOvEd-5f4Yngl7nkw" general="_fp-n0DOvEd-5f4Yngl7nkw"/>
      <ownedOperation xmi:id="_F4DvciWbEeGCz74CaMtvdQ" name="getActiveProblemsSection" isQuery="true" bodyCondition="_F4DvdSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F4DvdSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F4DvciWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4DvdiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getAllSections()->select(section : cda::Section | not section.oclIsUndefined() and section.oclIsKindOf(ihe::ActiveProblemsSection))->asSequence()->first().oclAsType(ihe::ActiveProblemsSection)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F4DvcyWbEeGCz74CaMtvdQ" type="_vz5koGGsEd6bFO5yxRh3Nw" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F4DvdCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_PMrjADXgEd-gpLhSMS7jpQ" name="CoverageEntry">
      <ownedRule xmi:id="_F4DvdyWbEeGCz74CaMtvdQ" name="CoverageEntryTemplateId" constrainedElement="_PMrjADXgEd-gpLhSMS7jpQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4DveCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.17')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GConwCWbEeGCz74CaMtvdQ" name="CoverageEntryPayerEntry" constrainedElement="_PMrjADXgEd-gpLhSMS7jpQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GConwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(ihe::PayerEntry) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::COMP)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_PMrjATXgEd-gpLhSMS7jpQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_4A1mMMJqEd6-XpBv2uxYrQ"/>
      </generalization>
      <ownedOperation xmi:id="_GConwiWbEeGCz74CaMtvdQ" name="getPayerEntries" isQuery="true" bodyCondition="_GConxSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GConxSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GConwiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GConxiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::PayerEntry)).oclAsType(ihe::PayerEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GConwyWbEeGCz74CaMtvdQ" type="_8M5ZwFIvEd-4TsxSz4jnfg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GConxCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_4hu_kDuGEd-B8KE6Jx0UNQ" name="HealthcareProvidersPharmacies">
      <ownedRule xmi:id="_F4M5ZSWbEeGCz74CaMtvdQ" name="HealthcareProvidersPharmaciesTemplateId" constrainedElement="_4hu_kDuGEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4M5ZiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.2.3')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_4hu_kTuGEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_FvF74EcaEd6besF9iFIJkQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_aFDTUDuJEd-B8KE6Jx0UNQ" name="Immunization">
      <ownedRule xmi:id="_U2yi4Fa2EeCddY1UIvGtQg" name="ImmunizationComments" constrainedElement="_aFDTUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_iD9HwFa2EeCddY1UIvGtQg">
          <language>OCL</language>
          <body>self.negationInd=true implies not self.entryRelationship.act->select( act | act.oclIsKindOf(ccd::Comment) )->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4M5aCWbEeGCz74CaMtvdQ" name="ImmunizationTemplateId" constrainedElement="_aFDTUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4M5aSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.12')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4M5ayWbEeGCz74CaMtvdQ" name="ImmunizationCode" constrainedElement="_aFDTUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4M5bCWbEeGCz74CaMtvdQ">
          <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.code = 'IMMUNIZ' and value.codeSystem = '2.16.840.1.113883.5.4'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4WqYCWbEeGCz74CaMtvdQ" name="ImmunizationStatusCode" constrainedElement="_aFDTUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4WqYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.statusCode.oclIsUndefined() or self.statusCode.isNullFlavorUndefined()) implies (not self.statusCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4WqYiWbEeGCz74CaMtvdQ" name="ImmunizationMoodCode" constrainedElement="_aFDTUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4WqYyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>isDefined('moodCode')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4WqZCWbEeGCz74CaMtvdQ" name="ImmunizationEffectiveTime" constrainedElement="_aFDTUDuJEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4WqZSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime->isEmpty() or self.effectiveTime->exists(element | element.isNullFlavorUndefined())) implies (self.effectiveTime->size() = 1)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_aFDTUTuJEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_W6aMoHfTEd6ZeOKq_2_a9g"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_Q-mPsDuKEd-B8KE6Jx0UNQ" name="ObservationRequestEntry">
      <ownedRule xmi:id="_F4gbZyWbEeGCz74CaMtvdQ" name="ObservationRequestEntryTemplateId" constrainedElement="_Q-mPsDuKEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4gbaCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.20.3.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Q-mPsTuKEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_7I79cDHlEd-saqiXO4OYhQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_jZMQ0DuMEd-B8KE6Jx0UNQ" name="ProductEntry">
      <ownedComment xmi:id="_glSKQEtFEeCAK_Z5vqvtzg">
        <body>&lt;p>&#xD;
The product entry describes a medication or immunization used in a 'substanceAdministration'&#xD;
or 'supply' act&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
In a CDA document, the name and strength of the medication are specified in the elements under&#xD;
the 'manufacturedMaterial' element.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The 'code' element of the 'manufacturedMaterial' describes the medication. This may be&#xD;
coded using a controlled vocabulary, such as RxNorm, First Databank, or other vocabulary&#xD;
system for medications, and should be the code that represents the generic medication name and&#xD;
strength (e.g., acetaminophen and oxycodone -5/325), or just the generic medication name alone&#xD;
if strength is not relevant (Acetaminophen).&#xD;
In a CDA document, the &amp;lt;originalText> shall contain a 'reference' whose URI value points to&#xD;
the generic name and strength of the medication, or just the generic name alone if strength is not&#xD;
relevant.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_F4gbaiWbEeGCz74CaMtvdQ" name="ProductEntryTemplateId" constrainedElement="_jZMQ0DuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4gbayWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.7.2')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_jZMQ0TuMEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_8Xj7UIiBEd66cKocspyVOg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_uP4tkDuMEd-B8KE6Jx0UNQ" name="ProcedureEntry" isAbstract="true">
      <ownedRule xmi:id="_LXP9oBt3EeG6kfZwwf5nmQ" name="ProcedureEntryMoodCode" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_QRuosBt5EeG6kfZwwf5nmQ">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentProcedureMood::EVN or self.moodCode = vocab::x_DocumentProcedureMood::INT</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_MrAEgBt3EeG6kfZwwf5nmQ" name="ProcedureEntryHasTextReference" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_RfElkBt5EeG6kfZwwf5nmQ">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_PQs7cBt3EeG6kfZwwf5nmQ" name="ProcedureEntryPriorityCode" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_TySlYBt5EeG6kfZwwf5nmQ">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentProcedureMood::INT and self.effectiveTime.oclIsUndefined() implies not self.priorityCode.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_QanJ0Bt3EeG6kfZwwf5nmQ" name="ProcedureEntryHasInversionIndForEncounter" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Vut10Bt5EeG6kfZwwf5nmQ">
          <language>OCL</language>
          <body>self.entryRelationship->select(er | er.typeCode = vocab::x_ActRelationshipEntryRelationship::COMP and er.inversionInd &lt;> true)->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F4gbbSWbEeGCz74CaMtvdQ" name="ProcedureEntryTemplateId" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F4gbbiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.19')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F49HUCWbEeGCz74CaMtvdQ" name="ProcedureEntryClassCode" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F49HUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>isDefined('classCode')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F49HUiWbEeGCz74CaMtvdQ" name="ProcedureEntryText" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F49HUyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F5GRQCWbEeGCz74CaMtvdQ" name="ProcedureEntryApproachSiteCode" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F5GRQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.approachSiteCode->isEmpty() or self.approachSiteCode->exists(element | element.isNullFlavorUndefined())) implies (not self.approachSiteCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GJyYpSWbEeGCz74CaMtvdQ" name="ProcedureEntryInternalReference" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GJyYpiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(ihe::InternalReference) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::COMP)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GJ8JpSWbEeGCz74CaMtvdQ" name="ProcedureEntryInternalReferenceReason" constrainedElement="_uP4tkDuMEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GJ8JpiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(ihe::InternalReference) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::RSON)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_K9s2QMLEEeCH35Uk0QXD4A">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_-jiisEbuEd6besF9iFIJkQ"/>
      </generalization>
      <ownedOperation xmi:id="_GJ8JoCWbEeGCz74CaMtvdQ" name="getInternalReference" isQuery="true" bodyCondition="_GJ8JoyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GJ8JoyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GJ8JoCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GJ8JpCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::InternalReference))->asSequence()->first().oclAsType(ihe::InternalReference)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GJ8JoSWbEeGCz74CaMtvdQ" type="_0TsKoEqtEeCJlNjgFmcEiA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GJ8JoiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GJ8JpyWbEeGCz74CaMtvdQ" name="getInternalReferenceReasons" isQuery="true" bodyCondition="_GJ8JqiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GJ8JqiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GJ8JpyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GJ8JqyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::InternalReference)).oclAsType(ihe::InternalReference)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GJ8JqCWbEeGCz74CaMtvdQ" type="_0TsKoEqtEeCJlNjgFmcEiA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GJ8JqSWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_6yfdEDuNEd-B8KE6Jx0UNQ" name="ProcedureEntryProcedureActivityProcedure">
      <generalization xmi:id="_6yfdETuNEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_6mhnYDH6Ed-saqiXO4OYhQ"/>
      </generalization>
      <generalization xmi:id="_bVK9wDuREd-3heHR3GH1ew" general="_uP4tkDuMEd-B8KE6Jx0UNQ"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_9xEuEDuNEd-B8KE6Jx0UNQ" name="ProcedureEntryPlanOfCareActivityProcedure">
      <ownedRule xmi:id="_F5GRQyWbEeGCz74CaMtvdQ" name="ProcedureEntryPlanOfCareActivityProcedureMoodCode" constrainedElement="_9xEuEDuNEd-B8KE6Jx0UNQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F5GRRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>isDefined('moodCode')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_9xEuETuNEd-B8KE6Jx0UNQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_1z0WEDHpEd-saqiXO4OYhQ"/>
      </generalization>
      <generalization xmi:id="_cRXgQDuREd-3heHR3GH1ew" general="_uP4tkDuMEd-B8KE6Jx0UNQ"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_R_uVkEvdEd-GNbUQBie2ig" name="Comment">
      <ownedComment xmi:id="_NH9TQEjyEeCOWNbpDoETQw">
        <body>&lt;p>This entry allows for a comment to be supplied with each entry. For CDA this structure is usually included in the target act using the &amp;lt;entryRelationship> element defined in the CDA Schema, but can also be used in the &amp;lt;component> element when the comment appears within an &amp;lt;organizer>.&lt;/p>&#xD;
&#xD;
&lt;p>Any condition or allergy may be the subject of a comment.&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_928MoCQYEeCxCon8a79rfA" name="IHECommentHasTextReference" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_928MoSQYEeCxCon8a79rfA">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_eIUF0EkGEeCOWNbpDoETQw" name="IHECommentEffectiveTimeWhenAuthorPresent" constrainedElement="_R_uVkEvdEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_oBBQUEkGEeCOWNbpDoETQw">
          <language>OCL</language>
          <body>not self.author->isEmpty() implies not self.effectiveTime.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_bTMdYEkHEeCOWNbpDoETQw" name="IHECommentHasAuthorId" constrainedElement="_R_uVkEvdEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_hf6eUEkHEeCOWNbpDoETQw">
          <language>OCL</language>
          <body>not self.author->isEmpty() implies (  self.author.assignedAuthor.id ->size() > 0 and self.author.assignedAuthor.addr ->size() > 0 and self.author.assignedAuthor.telecom ->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_p0gxwEkHEeCOWNbpDoETQw" name="IHECommentHasAuthorOrganization" constrainedElement="_R_uVkEvdEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_vFsXgEkHEeCOWNbpDoETQw">
          <language>OCL</language>
          <body>not self.author->isEmpty() implies ( self.author->exists( a : cda::Author | ( (not a.assignedAuthor.assignedPerson.oclIsUndefined()) and not a.assignedAuthor.assignedPerson.name->isEmpty()) or (not a.assignedAuthor.representedOrganization.name->isEmpty())  ) )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F5GRRiWbEeGCz74CaMtvdQ" name="CommentTemplateId" constrainedElement="_R_uVkEvdEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F5GRRyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F5ZMMCWbEeGCz74CaMtvdQ" name="IHECommentStatusCode" constrainedElement="_R_uVkEvdEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F5ZMMSWbEeGCz74CaMtvdQ">
          <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;value.code = 'completed'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7L78CWbEeGCz74CaMtvdQ" name="IHECommentText" constrainedElement="_R_uVkEvdEd-GNbUQBie2ig">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7L78SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_R_vjsEvdEd-GNbUQBie2ig">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_Hj3aYCQYEeCxCon8a79rfA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_8M5ZwFIvEd-4TsxSz4jnfg" name="PayerEntry">
      <ownedRule xmi:id="_F7L78yWbEeGCz74CaMtvdQ" name="PolicyActivityTemplateId" constrainedElement="_8M5ZwFIvEd-4TsxSz4jnfg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7L79CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.18')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_8M5ZwVIvEd-4TsxSz4jnfg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_6M-toMJqEd6-XpBv2uxYrQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_5_3IwJvhEd-L4qx175J3dg" name="PHRExtract">
      <ownedRule xmi:id="_F7Vs8CWbEeGCz74CaMtvdQ" name="PHRExtractTemplateId" constrainedElement="_5_3IwJvhEd-L4qx175J3dg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7Vs8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.5')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_6ANuEJvhEd-L4qx175J3dg" general="_fp-n0DOvEd-5f4Yngl7nkw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_-P-6IJvhEd-L4qx175J3dg" name="PHRUpdate">
      <ownedRule xmi:id="_F7Vs8yWbEeGCz74CaMtvdQ" name="PHRUpdateTemplateId" constrainedElement="_-P-6IJvhEd-L4qx175J3dg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7Vs9CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.6')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_-P_hMJvhEd-L4qx175J3dg" general="_fp-n0DOvEd-5f4Yngl7nkw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_j6rjcKsNEd-yFfcbpgNFIA" name="EncounterActivity">
      <ownedRule xmi:id="_F7Vs9yWbEeGCz74CaMtvdQ" name="EncountersActivityTemplateId" constrainedElement="_j6rjcKsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7Vs-CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.14')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_5BDgQKsNEd-yFfcbpgNFIA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_mO8KEHJWEd6cacuAk5qrhg"/>
      </generalization>
      <generalization xmi:id="_j6sKgKsNEd-yFfcbpgNFIA" general="_z__aIKsNEd-yFfcbpgNFIA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_pVIZ8KsNEd-yFfcbpgNFIA" name="EncounterPlanOfCare">
      <ownedRule xmi:id="_zt8HMKsVEd-yFfcbpgNFIA" name="EncounterPlanOfCareMoodCodeValue">
        <constrainedElement xmi:type="uml:Property" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_F3vCcDHmEd-saqiXO4OYhQ"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_zt8HMasVEd-yFfcbpgNFIA">
          <language>OCL</language>
          <body>self.moodCode = vocab::x_DocumentEncounterMood::ARQ&#xD;&#xA;  or self.moodCode = vocab::x_DocumentEncounterMood::PRMS</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7e24iWbEeGCz74CaMtvdQ" name="PlanOfCareActivityEncounterTemplateId" constrainedElement="_pVIZ8KsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7e24yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.14')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_882AYKsNEd-yFfcbpgNFIA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_EGZnsDHmEd-saqiXO4OYhQ"/>
      </generalization>
      <generalization xmi:id="_pVIZ8asNEd-yFfcbpgNFIA" general="_z__aIKsNEd-yFfcbpgNFIA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_z__aIKsNEd-yFfcbpgNFIA" name="EncounterEntry" isAbstract="true">
      <ownedRule xmi:id="_F7e25SWbEeGCz74CaMtvdQ" name="EncounterEntryTemplateId" constrainedElement="_z__aIKsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7e25iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.14')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7on4CWbEeGCz74CaMtvdQ" name="EncounterEntryClassCode" constrainedElement="_z__aIKsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7on4SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.classCode=vocab::ActClass::ENC</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7on4iWbEeGCz74CaMtvdQ" name="EncounterEntryCode" constrainedElement="_z__aIKsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7on4yWbEeGCz74CaMtvdQ">
          <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.5.4'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7on5CWbEeGCz74CaMtvdQ" name="EncounterEntryId" constrainedElement="_z__aIKsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7on5SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id->isEmpty() or self.id->exists(element | element.isNullFlavorUndefined())) implies (not self.id->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F7xx0CWbEeGCz74CaMtvdQ" name="EncounterEntryText" constrainedElement="_z__aIKsNEd-yFfcbpgNFIA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7xx0SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_JWwpwKsWEd-yFfcbpgNFIA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_AAXtEEbvEd6besF9iFIJkQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_5GSkEMwTEd-iJaPtkyVyKg" name="IntakeOutputSection">
      <ownedRule xmi:id="_F7xx2SWbEeGCz74CaMtvdQ" name="IntakeOutputSectionTemplateId" constrainedElement="_5GSkEMwTEd-iJaPtkyVyKg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F7xx2iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.20.2.3')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_5GSkEcwTEd-iJaPtkyVyKg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_e2pkwOw7Ed-HcKrkbxroPA" name="SupplyEntry">
      <ownedComment xmi:id="_kOOGMEtNEeCAK_Z5vqvtzg">
        <body>The supply entry describes a prescription activity. The moodCode attribute shall be INT to reflect that a&#xD;
medication has been prescribed, or EVN to indicate that the prescription has been filled.</body>
      </ownedComment>
      <ownedRule xmi:id="_d0bRkEtYEeCAK_Z5vqvtzg" name="SupplyEntryHasIntentAuthor" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_wLquoEtYEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>(self.classCode=vocab::ActClassSupply::SPLY and self.moodCode=vocab::x_DocumentSubstanceMood::INT) implies self.author->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_3YIDYEtaEeCAK_Z5vqvtzg" name="SupplyEntryHasAuthorTime" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_8TX1YEtaEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.author->isEmpty() implies self.author->forAll(author| author.time->size() = 1)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_9Rse0EtaEeCAK_Z5vqvtzg" name="SupplyEntryHasAssignedAuthor" constrainedElement="_3YIDYEtaEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ArUtEEtbEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.author->isEmpty() implies  self.author->forAll(author| author.assignedAuthor->size() = 1)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_37lgUEtbEeCAK_Z5vqvtzg" name="SupplyEntryHasAssignedAuthorID" constrainedElement="_9Rse0EtaEeCAK_Z5vqvtzg">
        <ownedComment xmi:id="__NTacEtbEeCAK_Z5vqvtzg">
          <body>These identifiers identify the author of the act.&#xD;
When the author is the prescribing physician they may include local identifiers or regional&#xD;
identifiers necessary for prescribing.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_-vXhQEtbEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.author.assignedAuthor->isEmpty() implies self.author.assignedAuthor->forAll ( assignedAuthor | assignedAuthor.id->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_DBTQgEtcEeCAK_Z5vqvtzg" name="SupplyEntryHasAssignedAuthorPersonOrOrg" constrainedElement="_37lgUEtbEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FgeosEtcEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>not self.author.assignedAuthor->isEmpty() implies    (self.author.assignedAuthor.assignedPerson->size() > 0 and self.author.assignedAuthor.assignedPerson.name->size() > 0) or (self.author.assignedAuthor.representedOrganization->size() > 0 and self.author.assignedAuthor.representedOrganization.name->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_RuNw4EtcEeCAK_Z5vqvtzg" name="SupplyEntryHasPerformerTimeEvent" constrainedElement="_DBTQgEtcEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_qZDS8EtcEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>(not self.performer->isEmpty()) and self.moodCode = vocab::x_DocumentSubstanceMood::EVN implies self.performer->forAll(time->size() = 1)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_s0Z7EEtcEeCAK_Z5vqvtzg" name="SupplyEntryHasPerformerTimeIntent" constrainedElement="_RuNw4EtcEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_wfiwEEtcEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>(not self.performer->isEmpty()) and self.moodCode = vocab::x_DocumentSubstanceMood::INT implies self.performer->forAll(time->size() = 1)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_D4ilEEtdEeCAK_Z5vqvtzg" name="SupplyEntryHasPerformerAssignedEntity" constrainedElement="_s0Z7EEtcEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_FojKIEtdEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>(not self.performer->isEmpty()) implies self.performer->forAll(performer| not performer.assignedEntity.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_kYMuUEtdEeCAK_Z5vqvtzg" name="SupplyEntryHasPerformerAssignedEntityID" constrainedElement="_D4ilEEtdEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_mQOm8EtdEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>(not self.performer.assignedEntity->isEmpty())  implies self.performer.assignedEntity->forAll(id->size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_pjMMgEtdEeCAK_Z5vqvtzg" name="SupplyEntryHasPerformerEntityPersonOrOrg" constrainedElement="_kYMuUEtdEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_qkzagEtdEeCAK_Z5vqvtzg">
          <language>OCL</language>
          <body>(not self.performer.assignedEntity->isEmpty()) implies self.performer.assignedEntity->forAll(assignedEntity | (not assignedEntity.assignedPerson->isEmpty() and assignedEntity.assignedPerson->forAll( assignedPerson | not assignedPerson.name->isEmpty() ) ) or (not assignedEntity.representedOrganization->isEmpty() and  assignedEntity.representedOrganization->forAll(representedOrganization | not representedOrganization.name->isEmpty() ) )  )</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_02CNMBEzEeGQTKMzurBNQw" name="SupplyEntryQuantityHasValue" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3r4Y8BEzEeGQTKMzurBNQw">
          <language>OCL</language>
          <body>not self.quantity->isEmpty() implies self.quantity.isDefined('value')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F77i2CWbEeGCz74CaMtvdQ" name="SupplyEntryTemplateId" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F77i2SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.7.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8OdwCWbEeGCz74CaMtvdQ" name="SupplyEntryQuantity" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8OdwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.quantity.oclIsUndefined() or self.quantity.isNullFlavorUndefined()) implies (not self.quantity.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8YOwCWbEeGCz74CaMtvdQ" name="SupplyEntryRepeatNumber" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8YOwSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.repeatNumber.oclIsUndefined() or self.repeatNumber.isNullFlavorUndefined()) implies (not self.repeatNumber.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAsuFSWbEeGCz74CaMtvdQ" name="SupplyEntryMedicationFullfillmentInstructions" constrainedElement="_e2pkwOw7Ed-HcKrkbxroPA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAsuFiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(ihe::MedicationFullfillmentInstructions) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_e2pkwew7Ed-HcKrkbxroPA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_dAAnAHfVEd6ZeOKq_2_a9g"/>
      </generalization>
      <ownedOperation xmi:id="_GAsuFyWbEeGCz74CaMtvdQ" name="getMedicationFullfillmentInstructions" isQuery="true" bodyCondition="_GAsuGiWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GAsuGiWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GAsuFyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAsuGyWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(ihe::MedicationFullfillmentInstructions))->asSequence()->first().oclAsType(ihe::MedicationFullfillmentInstructions)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GAsuGCWbEeGCz74CaMtvdQ" type="_MD_HEEteEeCAK_Z5vqvtzg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GAsuGSWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_oidBAO0SEd-dJvThfIiQuA" name="PregnancyHistorySection">
      <ownedComment xmi:id="_1w7NcO0SEd-dJvThfIiQuA">
        <body>The pregnancy history section contains coded entries describing the patient history of pregnancies.</body>
      </ownedComment>
      <ownedRule xmi:id="_F8YOwiWbEeGCz74CaMtvdQ" name="PregnancyHistorySectionTemplateId" constrainedElement="_oidBAO0SEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8YOwyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.5.3.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8YOxSWbEeGCz74CaMtvdQ" name="PregnancyHistorySectionCode" constrainedElement="_oidBAO0SEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8YOxiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10162-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F806sCWbEeGCz74CaMtvdQ" name="PregnancyHistorySectionPregnancyObservation" constrainedElement="_oidBAO0SEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F806sSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::PregnancyObservation))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_oihScO0SEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_F806siWbEeGCz74CaMtvdQ" name="getPregnancyObservations" isQuery="true" bodyCondition="_F806tSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_F806tSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_F806siWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_F806tiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::PregnancyObservation)).oclAsType(ihe::PregnancyObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_F806syWbEeGCz74CaMtvdQ" type="_0UCcoO2qEd-dJvThfIiQuA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_F806tCWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_0UCcoO2qEd-dJvThfIiQuA" name="PregnancyObservation">
      <ownedComment xmi:id="_fcqvsO2rEd-dJvThfIiQuA">
        <body>A pregnancy observation is a Simple Observation that uses a specific vocabulary to record observations about a patient's current or historical pregnancies.</body>
      </ownedComment>
      <ownedRule xmi:id="_F8h_wSWbEeGCz74CaMtvdQ" name="SimpleObservationTemplateId" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8h_wiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13.5')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8h_xCWbEeGCz74CaMtvdQ" name="PregnancyObservationCode" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8h_xSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8h_xiWbEeGCz74CaMtvdQ" name="PregnancyObservationInterpretationCode" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8h_xyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.interpretationCode->isEmpty() or self.interpretationCode->exists(element | element.isNullFlavorUndefined())) implies (not self.interpretationCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8rJsCWbEeGCz74CaMtvdQ" name="PregnancyObservationMethodCode" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8rJsSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.methodCode->isEmpty() or self.methodCode->exists(element | element.isNullFlavorUndefined())) implies (not self.methodCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8rJsiWbEeGCz74CaMtvdQ" name="PregnancyObservationRepeatNumber" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8rJsyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.repeatNumber.oclIsUndefined() or self.repeatNumber.isNullFlavorUndefined()) implies (not self.repeatNumber.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8rJtCWbEeGCz74CaMtvdQ" name="PregnancyObservationTargetSiteCode" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8rJtSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.targetSiteCode->isEmpty() or self.targetSiteCode->exists(element | element.isNullFlavorUndefined())) implies (not self.targetSiteCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8rJtiWbEeGCz74CaMtvdQ" name="PregnancyObservationValue" constrainedElement="_0UCcoO2qEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8rJtyWbEeGCz74CaMtvdQ">
          <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="_0UDDsO2qEd-dJvThfIiQuA" general="_dLvb0K4NEd6_ioDelDcPPg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_w9-SYO3vEd-dJvThfIiQuA" name="PatientContact" isAbstract="true">
      <generalization xmi:id="_w9-5cO3vEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_eyg4QO3TEd-dJvThfIiQuA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_NaTwIO3wEd-dJvThfIiQuA" name="PatientContactGuardian">
      <ownedRule xmi:id="_F806tyWbEeGCz74CaMtvdQ" name="PatientContactGuardianTemplateId" constrainedElement="_NaTwIO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F806uCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.2.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F806uiWbEeGCz74CaMtvdQ" name="PatientContactGuardianAddr" constrainedElement="_NaTwIO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F806uyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.addr->isEmpty() or self.addr->exists(element | element.isNullFlavorUndefined())) implies (not self.addr->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8-EoCWbEeGCz74CaMtvdQ" name="PatientContactGuardianClassCode" constrainedElement="_NaTwIO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8-EoSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>isDefined('classCode') and self.classCode=vocab::RoleClass::GUAR</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F8-EoiWbEeGCz74CaMtvdQ" name="PatientContactGuardianCode" constrainedElement="_NaTwIO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F8-EoyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.codeSystem = '2.16.840.1.113883.5.111'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F9H1oCWbEeGCz74CaMtvdQ" name="PatientContactGuardianTelecom" constrainedElement="_NaTwIO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9H1oSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.telecom->isEmpty() or self.telecom->exists(element | element.isNullFlavorUndefined())) implies (not self.telecom->isEmpty())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_NaUXMO3wEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_abHaMO3TEd-dJvThfIiQuA"/>
      </generalization>
      <generalization xmi:id="_RnW_YO3wEd-dJvThfIiQuA" general="_w9-SYO3vEd-dJvThfIiQuA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ZY0wkO3wEd-dJvThfIiQuA" name="PatientContactParticipant">
      <ownedRule xmi:id="_F9H1oiWbEeGCz74CaMtvdQ" name="PatientContactParticipantTemplateId" constrainedElement="_ZY0wkO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9H1oyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.2.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F9H1pSWbEeGCz74CaMtvdQ" name="PatientContactParticipantTime" constrainedElement="_ZY0wkO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9H1piWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.time.oclIsUndefined() or self.time.isNullFlavorUndefined()) implies (not self.time.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F9RmoCWbEeGCz74CaMtvdQ" name="PatientContactParticipantTypeCode" constrainedElement="_ZY0wkO3wEd-dJvThfIiQuA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9RmoSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.typeCode=vocab::ParticipationType::IND</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ZY1XoO3wEd-dJvThfIiQuA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_WE95UO3TEd-dJvThfIiQuA"/>
      </generalization>
      <generalization xmi:id="_bzhRYO3wEd-dJvThfIiQuA" general="_w9-SYO3vEd-dJvThfIiQuA"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_g76sEPG1Ed-FxO0PukiqhA" name="ScannedDocument">
      <ownedComment xmi:id="_1D_gsPHNEd-FxO0PukiqhA">
        <body>A variety of legacy paper, film, electronic and scanner outputted formats are used to store and exchange clinical documents. These formats are not designed for healthcare documentation, and furthermore, do not have a uniform mechanism to store healthcare metadata associated with the documents, including patient identifiers, demographics, encounter, order or service information. The association of structured, healthcare metadata with this kind of document is important to maintain the integrity of the patient health record as managed by the source system. It is necessary to provide a mechanism that allows such source metadata to be stored with the document.</body>
      </ownedComment>
      <ownedRule xmi:id="_qOv4oPHREd-FxO0PukiqhA" name="ScannedDocumentTypeIdFixed">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.cdt/model/cdt_Ecore.uml#_MwGRIGeLEd-ilOLYnIx0jA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_qOv4ofHREd-FxO0PukiqhA">
          <language>OCL</language>
          <body>self.typeId.root = '2.16.840.1.113883.1.3' and self.typeId.extension = 'POCD_HD000040'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Q58-IPHSEd-FxO0PukiqhA" name="ScannedDocumentHasOneRecordTarget">
        <ownedComment xmi:id="_kk8bsPQ7Ed-e-dANbnDT2A">
          <body>Contains identifying information about the patient concerned in the original content. In many cases this will have to be supplied by the operator.</body>
        </ownedComment>
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_Ze7UsGESEd69D7zx7EkLMA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Q58-IfHSEd-FxO0PukiqhA">
          <language>OCL</language>
          <body>self.recordTarget->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_UHB-IPHSEd-FxO0PukiqhA" name="ScannedDocumentHasAssignedAuthor">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_Ze7UsGESEd69D7zx7EkLMA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_UHB-IfHSEd-FxO0PukiqhA">
          <language>OCL</language>
          <body>self.author->exists(author : cda::Author | not author.assignedAuthor.assignedPerson.oclIsUndefined() &#xD;&#xA;   or not author.assignedAuthor.representedOrganization.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIXFYPQ7Ed-e-dANbnDT2A" name="ScannedDocumentPatientRoleId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_uoxREPQ7Ed-e-dANbnDT2A">
          <language>OCL</language>
          <body>self.recordTarget->forAll(target : cda::RecordTarget | not target.patientRole.oclIsUndefined()&#xD;&#xA;   and target.patientRole.id->forAll(roleId : datatypes::II | not roleId.root.oclIsUndefined()&#xD;&#xA;   and not roleId.extension.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rBwRoPQ8Ed-e-dANbnDT2A" name="ScannedDocumentHasPatientRoleAddress" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <ownedComment xmi:id="_TdgHsPQ9Ed-e-dANbnDT2A">
          <body>The addr element has an unbounded upper limit on occurrences. It can, and should, be replicated to include additional addresses for a patient, each minimally specified by the country sub element.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_4b8l4PQ8Ed-e-dANbnDT2A">
          <language>OCL</language>
          <body>self.recordTarget->exists(target : cda::RecordTarget | not target.patientRole.oclIsUndefined()&#xD;&#xA;   and target.patientRole.addr->exists(address : datatypes::AD | address.country->exists(c : datatypes::ADXP |&#xD;&#xA;   not c.oclIsUndefined() and c.getText().size() > 0)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_OfAiEPcqEd-aZohBEt6atA" name="ScannedDocumentHasPatientName" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_RPfFoPcqEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.recordTarget->exists(target : cda::RecordTarget | not target.patientRole.patient.oclIsUndefined()&#xD;&#xA;   and target.patientRole.patient.name->exists(name: datatypes::PN |&#xD;&#xA;      not name.given->isEmpty() and not name.family->isEmpty()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ILMIsPcsEd-aZohBEt6atA" name="ScannedDocumentHasPatientGenderCode" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_M13IEPcsEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.recordTarget->one(target : cda::RecordTarget |&#xD;&#xA;   not target.patientRole.patient.administrativeGenderCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_NegnAPctEd-aZohBEt6atA" name="ScannedDocumentHasPatientBirthYear" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_TupIUPctEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.recordTarget->one(target : cda::RecordTarget |&#xD;&#xA;   not target.patientRole.patient.birthTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_RETpMPdSEd-aZohBEt6atA" name="ScannedDocumentHasOriginalAuthor" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_sEkKgPdSEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.author->exists(author : cda::Author | not author.oclIsUndefined() and author.oclIsKindOf(ihe::ScanOriginalAuthor))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Cf5IEPdTEd-aZohBEt6atA" name="ScannedDocumentHasScanningDevice" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Cf5IEfdTEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.author->exists(author : cda::Author | not author.oclIsUndefined() and author.oclIsKindOf(ihe::ScanningDevice))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_dZPSkPgjEd-pooc0RA29Vg" name="ScannedDocumentHasScanDataEnterer" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_dZPSkfgjEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>not self.dataEnterer.oclIsUndefined() and self.dataEnterer.oclIsKindOf(ihe::ScanDataEnterer)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_lbQIkPggEd-pooc0RA29Vg" name="ScannedDocumentHasRepresentedCustodianOrganizationName" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_zJ-iYPggEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>not self.custodian.assignedCustodian.representedCustodianOrganization.name.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_AQGrIPghEd-pooc0RA29Vg" name="ScannedDocumentHasRepresentedCustodianOrganizationAddr" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_AQGrIfghEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>not self.custodian.assignedCustodian.representedCustodianOrganization.addr.oclIsUndefined()&#xD;&#xA;   and self.custodian.assignedCustodian.representedCustodianOrganization.addr.country->exists(c : datatypes::ADXP |&#xD;&#xA;      not c.oclIsUndefined() and c.getText().size() > 0)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_tuvG0PtDEd-xzOM2yZqLUw" name="ScannedDocumentLegalAuthenticatorAssignedEntityId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_zGWrwPtDEd-xzOM2yZqLUw">
          <language>OCL</language>
          <body>self.legalAuthenticator.assignedEntity.id->size() > 0 implies (&#xD;&#xA;   self.legalAuthenticator.assignedEntity.id->forAll(ident : datatypes::II |&#xD;&#xA;      not ident.root.oclIsUndefined() and not ident.extension.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_qW_5gPtEEd-xzOM2yZqLUw" name="ScannedDocumentHasNonXMLBody" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <ownedComment xmi:id="_4FAhoPtEEd-xzOM2yZqLUw">
          <body>Used to wrap the scanned content. The nonXMLBody element is guaranteed to be unique; thus the x-path to recover the scanned content is essentially fixed.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_xSS3sPtEEd-xzOM2yZqLUw">
          <language>OCL</language>
          <body>not self.component.nonXMLBody.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_ImYSsPvIEd-GKY_8ySda1g" name="ScannedDocumentHasNonXMLBodyBinaryText" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_WQIF4PvIEd-GKY_8ySda1g">
          <language>OCL</language>
          <body>not self.component.nonXMLBody.text.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_djygwPvIEd-GKY_8ySda1g" name="ScannedDocumentHasNonXMLBodyTextMediaType" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_iaz6EPvIEd-GKY_8ySda1g">
          <language>OCL</language>
          <body>self.component.nonXMLBody.text.mediaType = 'application/pdf' or self.component.nonXMLBody.text.mediaType = 'text/plain'</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_qO9y4PvIEd-GKY_8ySda1g" name="ScannedDocumentHasNonXMLBodyTextRepresentation" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <ownedComment xmi:id="_8OnZ4PvJEd-GKY_8ySda1g">
          <body>The @representation for both PDF and plaintext scanned content will be &quot;B64&quot;, because this profile requires the base-64 encoding of both formats.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_t8tP8PvIEd-GKY_8ySda1g">
          <language>OCL</language>
          <body>self.component.nonXMLBody.text.representation = datatypes::BinaryDataEncoding::B64</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F9RmoiWbEeGCz74CaMtvdQ" name="ScannedDocumentTemplateId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9RmoyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.2.20')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F9uSkCWbEeGCz74CaMtvdQ" name="ScannedDocumentCode" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9uSkSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F9uSkiWbEeGCz74CaMtvdQ" name="ScannedDocumentConfidentialityCode" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F9uSkyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.confidentialityCode.oclIsUndefined() or self.confidentialityCode.isNullFlavorUndefined()) implies (not self.confidentialityCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F93cgCWbEeGCz74CaMtvdQ" name="ScannedDocumentEffectiveTime" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F93cgSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F93cgiWbEeGCz74CaMtvdQ" name="ScannedDocumentId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F93cgyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id.oclIsUndefined() or self.id.isNullFlavorUndefined()) implies (not self.id.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F93chCWbEeGCz74CaMtvdQ" name="ScannedDocumentLanguageCode" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F93chSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.languageCode.oclIsUndefined() or self.languageCode.isNullFlavorUndefined()) implies (not self.languageCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-BNgCWbEeGCz74CaMtvdQ" name="ScannedDocumentTitle" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-BNgSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.title.oclIsUndefined() or self.title.isNullFlavorUndefined()) implies (not self.title.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-BNgiWbEeGCz74CaMtvdQ" name="ScannedDocumentTypeId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-BNgyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.typeId.oclIsUndefined() or self.typeId.isNullFlavorUndefined()) implies (not self.typeId.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_g76sEfG1Ed-FxO0PukiqhA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_S9OzADxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_DVyVoPdQEd-aZohBEt6atA" name="ScanOriginalAuthor">
      <ownedComment xmi:id="_2N_C0PdYEd-aZohBEt6atA">
        <body>Represents the author of the original content. It additionally can encode the original author‟s institution in the subelement representedOrganization. Information regarding the original author and his/her institution shall be included, if it is known. In many cases this will have to be supplied by the operator.</body>
      </ownedComment>
      <ownedRule xmi:id="_nmt0EPcvEd-aZohBEt6atA" name="ScanOriginalAuthorHasAssignedAuthorId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_tlzosPcvEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.assignedAuthor.id->forAll(ident : datatypes::II |&#xD;&#xA;   not ident.root.oclIsUndefined() and not ident.extension.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_zlalQPcwEd-aZohBEt6atA" name="ScanOriginalAuthorHasAssignedAuthorRepresentedOrganizationId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_zlalQfcwEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.assignedAuthor.representedOrganization.id->forAll(ident : datatypes::II |&#xD;&#xA;   not ident.root.oclIsUndefined() and not ident.extension.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-BNhCWbEeGCz74CaMtvdQ" name="ScanOriginalAuthorTemplateId" constrainedElement="_DVyVoPdQEd-aZohBEt6atA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-BNhSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.2.20.1')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_DVy8sPdQEd-aZohBEt6atA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_ChEisEcEEd6besF9iFIJkQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_QUckcPdQEd-aZohBEt6atA" name="ScanningDevice">
      <ownedComment xmi:id="_5-h8QPdYEd-aZohBEt6atA">
        <body>Represents the scanning device and software used to produce the scanned content.</body>
      </ownedComment>
      <ownedRule xmi:id="_Qs4HAPdaEd-aZohBEt6atA" name="ScanningDeviceTimeEqualsDocumentEffectiveTime" constrainedElement="_DVyVoPdQEd-aZohBEt6atA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_l3AicPdaEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.time.value = self.getClinicalDocument().effectiveTime.value</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_5BxFIPdwEd-aZohBEt6atA" name="ScanningDeviceHasAssignedAuthorId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_5BxFIfdwEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.assignedAuthor.id->forAll(ident : datatypes::II | not ident.root.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_VLMN8PdxEd-aZohBEt6atA" name="ScanningDeviceHasAssignedAuthoringDeviceCode" constrainedElement="_QUckcPdQEd-aZohBEt6atA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_d5NG8PdxEd-aZohBEt6atA">
          <language>OCL</language>
          <body>self.assignedAuthor.assignedAuthoringDevice.code.codeSystem = '1.2.840.10008.2.16.4'&#xD;&#xA;   and not self.assignedAuthor.assignedAuthoringDevice.code.code.oclIsUndefined()&#xD;&#xA;   and not self.assignedAuthor.assignedAuthoringDevice.code.displayName.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_h7xNIPgkEd-pooc0RA29Vg" name="ScanningDeviceHasDeviceManufacturerModelName" constrainedElement="_QUckcPdQEd-aZohBEt6atA">
        <ownedComment xmi:id="_D_ApAPglEd-pooc0RA29Vg">
          <body>The mixed content shall contain string information that specifies the scanner product name and model number. From this information, features like bit depth and resolution can be inferred. In the case of virtually scanned documents (for example, print to PDF), the manufactureModelName referenced here refers to the makers of the technology that was used to produce the embedded content.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_sU2g0PgkEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>not self.assignedAuthor.assignedAuthoringDevice.manufacturerModelName.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_KL4a8PglEd-pooc0RA29Vg" name="ScanningDeviceHasDeviceSoftwareName" constrainedElement="_QUckcPdQEd-aZohBEt6atA">
        <ownedComment xmi:id="_KL4a8fglEd-pooc0RA29Vg">
          <body>The mixed content shall contain string information that specifies the scanning software name and version. In the case of virtually scanned documents, the softwareName referenced here refers to the technology that was used to produce the embedded content.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_KL4a8vglEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>not self.assignedAuthor.assignedAuthoringDevice.softwareName.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_jhFvsPglEd-pooc0RA29Vg" name="ScanningDeviceHasAssignedAuthorRepresentedOrganizationId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_jhFvsfglEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>self.assignedAuthor.representedOrganization.id->forAll(ident : datatypes::II | not ident.root.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-KXcCWbEeGCz74CaMtvdQ" name="ScanningDeviceTemplateId" constrainedElement="_QUckcPdQEd-aZohBEt6atA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-KXcSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.2.20.2')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_QUdLgPdQEd-aZohBEt6atA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_ChEisEcEEd6besF9iFIJkQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_f-SDcPd5Ed-I-P0qO6j1fA" name="ScanDataEnterer">
      <ownedComment xmi:id="_kFq9EPgdEd-pooc0RA29Vg">
        <body>Represents the scanner operator who produced the scanned content.</body>
      </ownedComment>
      <ownedRule xmi:id="_HoyQQPgeEd-pooc0RA29Vg" name="ScanDataEntererTimeEqualsDocumentEffectiveTime" constrainedElement="_DVyVoPdQEd-aZohBEt6atA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_HoyQQfgeEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>self.time.value = self.getClinicalDocument().effectiveTime.value</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_qWiowPgeEd-pooc0RA29Vg" name="ScanDataEntererHasAssignedEntityId" constrainedElement="_g76sEPG1Ed-FxO0PukiqhA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_qWiowfgeEd-pooc0RA29Vg">
          <language>OCL</language>
          <body>self.assignedEntity.id->forAll(ident : datatypes::II | not ident.root.oclIsUndefined() and not ident.extension.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-d5cCWbEeGCz74CaMtvdQ" name="ScanDataEntererTemplateId" constrainedElement="_f-SDcPd5Ed-I-P0qO6j1fA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-d5cSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.2.20.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-d5cyWbEeGCz74CaMtvdQ" name="ScanDataEntererTime" constrainedElement="_f-SDcPd5Ed-I-P0qO6j1fA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-d5dCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.time.oclIsUndefined() or self.time.isNullFlavorUndefined()) implies (not self.time.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_f-dpoPd5Ed-I-P0qO6j1fA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_twqZYEcEEd6besF9iFIJkQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_hBLMcBj6EeCf9aMNaCAtDQ" name="ExternalReference">
      <ownedRule xmi:id="_E31joFWJEeCJpM11UriAaA" name="ExternalReferenceHasNoCode">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_E31joVWJEeCJpM11UriAaA">
          <language>OCL</language>
          <body>not self.code.oclIsUndefined() implies self.code.nullFlavor = vocab::NullFlavor::NA</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GzibUFWJEeCJpM11UriAaA" name="ExternalReferenceHasReference">
        <ownedComment xmi:id="_GzjCYFWJEeCJpM11UriAaA">
          <body>External references are listed as either supporting documentation (typeCode='SPRT') or simply&#xD;
reference material (typeCode='REFR') for the reader. If this distinction is not supported by the&#xD;
source EMR system, the value of typeCode should be REFR.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GzjCYVWJEeCJpM11UriAaA">
          <language>OCL</language>
          <body>self.reference->select(r| r.typeCode &lt;> vocab::x_ActRelationshipExternalReference::REFR and r.typeCode &lt;> vocab::x_ActRelationshipExternalReference::SPRT)->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_IB3PoFWJEeCJpM11UriAaA" name="ExternalReferenceHasReferenceExternalDocument">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_IB3PoVWJEeCJpM11UriAaA">
          <language>OCL</language>
          <body>self.reference.externalDocument->select(ed | ed.classCode =  vocab::ActClassDocument::DOC and ed.moodCode =  vocab::ActMood::EVN )->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_J9BUwFWJEeCJpM11UriAaA" name="ExternalReferenceHasReferenceExternalDocumentID">
        <ownedComment xmi:id="_J9BUwVWJEeCJpM11UriAaA">
          <body>A link to the original document may be provided here. This shall be a URL where the referenced&#xD;
document can be located. For CDA, the link should also be present in the narrative inside the&#xD;
CDA Narrative in a &amp;lt;linkHTML> element.</body>
        </ownedComment>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_J9BUwlWJEeCJpM11UriAaA">
          <language>OCL</language>
          <body>self.reference->select(  r | r.externalDocument.id->isEmpty() )->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_LRd_MFWJEeCJpM11UriAaA" name="ExternalReferenceHasReferenceExternalDocumentText">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_LRd_MVWJEeCJpM11UriAaA">
          <language>OCL</language>
          <body>self.reference->select(  r | r.externalDocument.text.oclIsUndefined()  )->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-w0YCWbEeGCz74CaMtvdQ" name="ExternalReferenceTemplateId" constrainedElement="_hBLMcBj6EeCf9aMNaCAtDQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-w0YSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-6lYCWbEeGCz74CaMtvdQ" name="ExternalReferenceClassCode" constrainedElement="_hBLMcBj6EeCf9aMNaCAtDQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-6lYSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.classCode=vocab::x_ActClassDocumentEntryAct::ACT</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-6lYiWbEeGCz74CaMtvdQ" name="ExternalReferenceMoodCode" constrainedElement="_hBLMcBj6EeCf9aMNaCAtDQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-6lYyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_DocumentActMood::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-6lZCWbEeGCz74CaMtvdQ" name="ExternalReferenceId" constrainedElement="_hBLMcBj6EeCf9aMNaCAtDQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-6lZSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id->isEmpty() or self.id->exists(element | element.isNullFlavorUndefined())) implies (not self.id->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F-6lZiWbEeGCz74CaMtvdQ" name="ExternalReferenceText" constrainedElement="_hBLMcBj6EeCf9aMNaCAtDQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F-6lZyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_hBLMcRj6EeCf9aMNaCAtDQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_YiANsDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_MIoHYCQKEeCxCon8a79rfA" name="Severity">
      <ownedComment xmi:id="_gI-3UCQKEeCxCon8a79rfA">
        <body>This specification models a severity observation as a separate observation from the condition. While this model is different from work presently underway by various organizations (i.e., SNOMED, HL7, TermInfo), it is not wholly incompatible with that work. In that work, qualifiers may be used to identify severity in the coded condition observation, and a separate severity observation is no longer necessary. The use of qualifiers is not precluded by this specification. However, to support semantic interoperability between EMR systems using different vocabularies, this specification does require that severity information also be provided in a separate observation. This ensures that all EMR systems have equal access to the information, regardless of the vocabularies they support.</body>
      </ownedComment>
      <ownedRule xmi:id="_eaijECQLEeCxCon8a79rfA" name="SeverityHasTextReference" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_0bt7QCQLEeCxCon8a79rfA">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_DvXiWbEeGCz74CaMtvdQ" name="SeverityTemplateId" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_DvXyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_NgUSWbEeGCz74CaMtvdQ" name="SeverityText" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_NgUiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_NgUyWbEeGCz74CaMtvdQ" name="SeverityObservationValue" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_NgVCWbEeGCz74CaMtvdQ">
          <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.5.1063' and (value.code = 'H' or value.code = 'M' or value.code = 'L')))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_MIoHYSQKEeCxCon8a79rfA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_ILkpIHrSEd68l9lQ-TLEBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_s7LQECQNEeCxCon8a79rfA" name="ProblemStatusObservation">
      <ownedComment xmi:id="_6NWQwCQNEeCxCon8a79rfA">
        <body>Any problem or allergy observation may reference a problem status observation. The clinical status observation records information about the current status of the problem or allergy, for example, whether it is active, in remission, resolved, et cetera.</body>
      </ownedComment>
      <ownedRule xmi:id="_bfwsoCQOEeCxCon8a79rfA" name="IHEProblemStatusObservationHasTextReference" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_bfwsoSQOEeCxCon8a79rfA">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_WqRyWbEeGCz74CaMtvdQ" name="IHEProblemStatusObservationTemplateId" constrainedElement="_s7LQECQNEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_WqSCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.1.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_gbQCWbEeGCz74CaMtvdQ" name="IHEProblemStatusObservationText" constrainedElement="_s7LQECQNEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_gbQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_gbQiWbEeGCz74CaMtvdQ" name="StatusObservationValue" constrainedElement="_s7LQECQNEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_gbQyWbEeGCz74CaMtvdQ">
          <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::CE) and &#xD;&#xA;let value : datatypes::CE = element.oclAsType(datatypes::CE) in &#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '55561003' or value.code = '73425007' or value.code = '90734009' or value.code = '7087005' or value.code = '255227004' or value.code = '415684004' or value.code = '410516002' or value.code = '413322009')))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_s7L3ICQNEeCxCon8a79rfA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_TrwngGaJEd6Hk_bPOfEjYA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_R7NF0CQREeCxCon8a79rfA" name="HealthStatusObservation">
      <ownedComment xmi:id="_ZzxkkCQREeCxCon8a79rfA">
        <body>The health status observation records information about the current health status of the patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_rUcmACQREeCxCon8a79rfA" name="HealthStatusObservationHasTextReference" constrainedElement="_MIoHYCQKEeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rUcmASQREeCxCon8a79rfA">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_qMRyWbEeGCz74CaMtvdQ" name="HealthStatusObservationTemplateId" constrainedElement="_R7NF0CQREeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_qMSCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.1.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_qMSiWbEeGCz74CaMtvdQ" name="HealthStatusObservationText" constrainedElement="_R7NF0CQREeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_qMSyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_F_zWMCWbEeGCz74CaMtvdQ" name="StatusObservationValue" constrainedElement="_R7NF0CQREeCxCon8a79rfA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_zWMSWbEeGCz74CaMtvdQ">
          <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::CE) and &#xD;&#xA;let value : datatypes::CE = element.oclAsType(datatypes::CE) in &#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '81323004' or value.code = '313386006' or value.code = '162467007' or value.code = '161901003' or value.code = '271593001' or value.code = '21134002' or value.code = '161045001' or value.code = '419099009')))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_R7Ns4CQREeCxCon8a79rfA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_T6kfkGaJEd6Hk_bPOfEjYA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_nzLQYEqtEeCJlNjgFmcEiA" name="PatientMedicalInstructions">
      <ownedComment xmi:id="_jYEG0Es4EeCAK_Z5vqvtzg">
        <body>Any medication may be the subject of further instructions to the patient, for example to indicate&#xD;
that it should be taken with food, et cetera. This structure is included in the target substance administration or supply act using the&#xD;
&amp;lt;entryRelationship> element defined in the CDA Schema.</body>
      </ownedComment>
      <ownedRule xmi:id="_F_9HPiWbEeGCz74CaMtvdQ" name="PatientMedicalInstructionsTemplateId" constrainedElement="_nzLQYEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_F_9HPyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAG4MSWbEeGCz74CaMtvdQ" name="PatientMedicalInstructionsClassCode" constrainedElement="_nzLQYEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAG4MiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>isDefined('classCode')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAG4MyWbEeGCz74CaMtvdQ" name="PatientMedicalInstructionsCode" constrainedElement="_nzLQYEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAG4NCWbEeGCz74CaMtvdQ">
          <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 = 'PINSTRUCT' and value.codeSystem = '1.3.6.1.4.1.19376.1.5.3.2'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAQCICWbEeGCz74CaMtvdQ" name="PatientMedicalInstructionsStatusCode" constrainedElement="_nzLQYEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAQCISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.statusCode.oclIsUndefined() or self.statusCode.isNullFlavorUndefined()) implies (not self.statusCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAQCIiWbEeGCz74CaMtvdQ" name="PatientMedicalInstructionsText" constrainedElement="_nzLQYEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAQCIyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_nzL3cEqtEeCJlNjgFmcEiA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_F9_RAMKAEd6-XpBv2uxYrQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_0TsKoEqtEeCJlNjgFmcEiA" name="InternalReference">
      <ownedComment xmi:id="_12sZAEquEeCJlNjgFmcEiA">
        <body>&lt;p>CDA and HL7 Version 3 Entries may reference (point to) information contained in other entries&#xD;
within the same document or message&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
The act being referred to can be any CDA Clinical Statement element type (act, procedure,&#xD;
observation, substanceAdministration, supply, et cetera). For compatibility with the Clinical&#xD;
Statement model the internal reference shall always use the &amp;lt;act> class, regardless of the XML&#xD;
element type of the act it refers to.&#xD;
&lt;/p></body>
      </ownedComment>
      <ownedRule xmi:id="_GAQCJCWbEeGCz74CaMtvdQ" name="InternalReferenceTemplateId" constrainedElement="_0TsKoEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAQCJSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.4.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAQCJyWbEeGCz74CaMtvdQ" name="InternalReferenceCode" constrainedElement="_0TsKoEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAQCKCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAZzICWbEeGCz74CaMtvdQ" name="InternalReferenceId" constrainedElement="_0TsKoEqtEeCJlNjgFmcEiA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAZzISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.id->isEmpty() or self.id->exists(element | element.isNullFlavorUndefined())) implies (not self.id->isEmpty())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_iQCK8Es8EeCAK_Z5vqvtzg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_YiANsDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_MD_HEEteEeCAK_Z5vqvtzg" name="MedicationFullfillmentInstructions">
      <ownedRule xmi:id="_GAZzLCWbEeGCz74CaMtvdQ" name="MedicationFullfillmentInstructionsTemplateId" constrainedElement="_MD_HEEteEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAZzLSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.3.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAi9ECWbEeGCz74CaMtvdQ" name="MedicationFullfillmentInstructionsCode" constrainedElement="_MD_HEEteEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAi9ESWbEeGCz74CaMtvdQ">
          <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 = 'FINSTRUCT' and value.codeSystem = '1.3.6.1.4.1.19376.1.5.3.2'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAi9EiWbEeGCz74CaMtvdQ" name="MedicationFullfillmentInstructionsStatusCode" constrainedElement="_MD_HEEteEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAi9EyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.statusCode.oclIsUndefined() or self.statusCode.isNullFlavorUndefined()) implies (not self.statusCode.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GAi9FCWbEeGCz74CaMtvdQ" name="MedicationFullfillmentInstructionsText" constrainedElement="_MD_HEEteEeCAK_Z5vqvtzg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GAi9FSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_TgZOQEteEeCAK_Z5vqvtzg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_IuPLEMKAEd6-XpBv2uxYrQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_88SO0FsZEeCBQI4cjwqCWQ" name="ProblemEntryReactionObservationContainer">
      <generalization xmi:id="_88S14FsZEeCBQI4cjwqCWQ" general="_3ZiEwGdIEd6Hk_bPOfEjYA"/>
      <generalization xmi:id="_ATYGcFsaEeCBQI4cjwqCWQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#__XC4cHrREd68l9lQ-TLEBQ"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_nwrzcL4kEeCPGaGuS9U6tg" name="DischargeDiet">
      <ownedComment xmi:id="_FTvBoL4lEeCPGaGuS9U6tg">
        <body>This section records a narrative description of the expectations for diet, including proposals, goals, and order requests for monitoring, tracking, or improving the dietary control of the patient, used in a discharge from a facility such as an emergency department, hospital, or nursing home.</body>
      </ownedComment>
      <ownedRule xmi:id="_GBJaBSWbEeGCz74CaMtvdQ" name="DischargeDietTemplateId" constrainedElement="_nwrzcL4kEeCPGaGuS9U6tg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBJaBiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.33')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBJaCCWbEeGCz74CaMtvdQ" name="DischargeDietCode" constrainedElement="_nwrzcL4kEeCPGaGuS9U6tg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBJaCSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '42344-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_nwsagL4kEeCPGaGuS9U6tg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_dw0bkL4lEeCPGaGuS9U6tg" name="HospitalDischargePhysical">
      <ownedComment xmi:id="_uCCAQL4lEeCPGaGuS9U6tg">
        <body>The Hospital Discharge Physical section records a narrative description of the patient's physical findings.</body>
      </ownedComment>
      <ownedRule xmi:id="_GBJaCiWbEeGCz74CaMtvdQ" name="HospitalDischargePhysicalTemplateId" constrainedElement="_dw0bkL4lEeCPGaGuS9U6tg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBTLACWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.26')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBTLAiWbEeGCz74CaMtvdQ" name="HospitalDischargePhysicalCode" constrainedElement="_dw0bkL4lEeCPGaGuS9U6tg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBTLAyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10184-0' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_dw0bkb4lEeCPGaGuS9U6tg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_cSezgMgkEeCHk-lvWGDTdA" name="CodedFamilyMedicalHistorySection">
      <ownedRule xmi:id="_GBcU_CWbEeGCz74CaMtvdQ" name="CodedFamilyMedicalHistorySectionTemplateId" constrainedElement="_cSezgMgkEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBcU_SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.15')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCL71yWbEeGCz74CaMtvdQ" name="CodedFamilyMedicalHistorySectionFamilyHistoryOrganizer" constrainedElement="_cSezgMgkEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCL72CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.organizer.oclIsUndefined() and entry.organizer.oclIsKindOf(ihe::FamilyHistoryOrganizer))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_cSokgMgkEeCHk-lvWGDTdA" general="_kKnAIMigEd6mWrHPmrIIfQ"/>
      <ownedOperation xmi:id="_GCL72SWbEeGCz74CaMtvdQ" name="getIHEFamilyHistoryOrganizer" isQuery="true" bodyCondition="_GCL73CWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GCL73CWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GCL72SWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCL73SWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getOrganizers()->select(organizer : cda::Organizer | not organizer.oclIsUndefined() and organizer.oclIsKindOf(ihe::FamilyHistoryOrganizer))->asSequence()->first().oclAsType(ihe::FamilyHistoryOrganizer)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GCL72iWbEeGCz74CaMtvdQ" type="_7wLKkMkCEeChgrgmBsw26A" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GCL72yWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_oapRoMhEEeCHk-lvWGDTdA" name="SocialHistoryObservation">
      <ownedRule xmi:id="_quOBUMhFEeCHk-lvWGDTdA" name="IHESocialHistoryObservationNoRepeatNumber" constrainedElement="_oapRoMhEEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_soR6QMhFEeCHk-lvWGDTdA">
          <language>OCL</language>
          <body>self.repeatNumber->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_vqMMEMhFEeCHk-lvWGDTdA" name="IHESocialHistoryObservationNoInterpretationCode" constrainedElement="_quOBUMhFEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_zXYPgMhFEeCHk-lvWGDTdA">
          <language>OCL</language>
          <body>self.interpretationCode->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_0bGWUMhFEeCHk-lvWGDTdA" name="IHESocialHistoryObservationNoMethodCode" constrainedElement="_oapRoMhEEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_3yz5AMhFEeCHk-lvWGDTdA">
          <language>OCL</language>
          <body>self.methodCode->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_5sn6UMhFEeCHk-lvWGDTdA" name="IHESocialHistoryObservationNoTargetSiteCode" constrainedElement="_oapRoMhEEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_9CPLQMhFEeCHk-lvWGDTdA">
          <language>OCL</language>
          <body>self.targetSiteCode->size() = 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBmF8CWbEeGCz74CaMtvdQ" name="IHESocialHistoryObservationTemplateId" constrainedElement="_oapRoMhEEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBmF8SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13.4')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBvP4CWbEeGCz74CaMtvdQ" name="IHESocialHistoryObservationValue" constrainedElement="_oapRoMhEEeCHk-lvWGDTdA">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBvP4SWbEeGCz74CaMtvdQ">
          <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="_oap4sMhEEeCHk-lvWGDTdA" general="_dLvb0K4NEd6_ioDelDcPPg"/>
      <generalization xmi:id="_mhxPAMhFEeCHk-lvWGDTdA">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_Wa2uwHDAEd6eItyqb1FoWg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_7wLKkMkCEeChgrgmBsw26A" name="FamilyHistoryOrganizer">
      <ownedRule xmi:id="_JAhDoMkhEeCcAd9ZGNykiw" name="IHEFamilyHistoryOrganizerHasParticipant">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_OWPyMMkhEeCcAd9ZGNykiw">
          <language>OCL</language>
          <body>self.participant->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_POMG0MkhEeCcAd9ZGNykiw" name="IHEFamilyHistoryOrganizerHasParticipantParticipantRole" constrainedElement="_JAhDoMkhEeCcAd9ZGNykiw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_WhCpYMkhEeCcAd9ZGNykiw">
          <language>OCL</language>
          <body>self.participant.participantRole->one(pr : cda::ParticipantRole | pr.classCode = vocab::RoleClassRoot::PRS)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_9Nwx0MkhEeCcAd9ZGNykiw" name="IHEFamilyHistoryOrganizerHasParticipantRoleCode" constrainedElement="_7wLKkMkCEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_DFkSsMkiEeCcAd9ZGNykiw">
          <language>OCL</language>
          <body>self.participant.participantRole.code->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_Lbzk4MkiEeCcAd9ZGNykiw" name="IHEFamilyHistoryOrganizerHasParticipantRolePlayingEntity" constrainedElement="_9Nwx0MkhEeCcAd9ZGNykiw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_OM2wMMkiEeCcAd9ZGNykiw">
          <language>OCL</language>
          <body>self.participant.participantRole.playingEntity->one(pe : cda::PlayingEntity | pe.classCode = vocab::EntityClassRoot::PSN)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GBvP4iWbEeGCz74CaMtvdQ" name="IHEFamilyHistoryOrganizerTemplateId" constrainedElement="_7wLKkMkCEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GBvP4yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.15')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GB5A4CWbEeGCz74CaMtvdQ" name="IHEFamilyHistoryOrganizerCode" constrainedElement="_7wLKkMkCEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GB5A4SWbEeGCz74CaMtvdQ">
          <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.5.111'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCL70CWbEeGCz74CaMtvdQ" name="IHEFamilyHistoryOrganizerFamilyHistoryObservation" constrainedElement="_7wLKkMkCEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCL70SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.component->exists(component : cda::Component4 | not component.observation.oclIsUndefined() and component.observation.oclIsKindOf(ihe::FamilyHistoryObservation))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_7wLKkckCEeChgrgmBsw26A">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_9QFYgGwWEd6q29qQGU-SBA"/>
      </generalization>
      <ownedOperation xmi:id="_GCL70iWbEeGCz74CaMtvdQ" name="getIHEFamilyHistoryObservations" isQuery="true" bodyCondition="_GCL71SWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GCL71SWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GCL70iWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCL71iWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::FamilyHistoryObservation)).oclAsType(ihe::FamilyHistoryObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GCL70yWbEeGCz74CaMtvdQ" type="_IOqkMMkGEeChgrgmBsw26A" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GCL71CWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_IOqkMMkGEeChgrgmBsw26A" name="FamilyHistoryObservation">
      <ownedRule xmi:id="_GB5A4yWbEeGCz74CaMtvdQ" name="SimpleObservationTemplateId" constrainedElement="_IOqkMMkGEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCCx4CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13.3')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCCx4iWbEeGCz74CaMtvdQ" name="IHEFamilyHistoryObservationCode" constrainedElement="_IOqkMMkGEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCCx4yWbEeGCz74CaMtvdQ">
          <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="_GCCx5CWbEeGCz74CaMtvdQ" name="IHEFamilyHistoryObservationValue" constrainedElement="_IOqkMMkGEeChgrgmBsw26A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCCx5SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (not self.value->isEmpty() and self.value->forAll(element | element.oclIsTypeOf(datatypes::CD)))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_IOqkMckGEeChgrgmBsw26A" general="_dLvb0K4NEd6_ioDelDcPPg"/>
      <generalization xmi:id="_KVKWoMkGEeChgrgmBsw26A">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_7tlrAGwWEd6q29qQGU-SBA"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_JkYOEMzkEeCvbrjDQpuvkw" name="AdvanceDirectiveObservation">
      <ownedRule xmi:id="_vf1cMMzlEeCvbrjDQpuvkw" name="IHEAdvanceDirectiveObservationHasExternalReference" constrainedElement="_JkYOEMzkEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_Mc1-EMzmEeCvbrjDQpuvkw">
          <language>OCL</language>
          <body>self.reference->select(r | r.oclIsKindOf(ccd::AdvanceDirectiveReference))->size() =1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCL73iWbEeGCz74CaMtvdQ" name="IHEAdvanceDirectiveObservationTemplateId" constrainedElement="_JkYOEMzkEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCL73yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.4.13.7')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCVs0CWbEeGCz74CaMtvdQ" name="AdvanceDirectiveObservationCode" constrainedElement="_JkYOEMzkEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCVs0SWbEeGCz74CaMtvdQ">
          <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'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCVs0iWbEeGCz74CaMtvdQ" name="IHEAdvanceDirectiveObservationRepeatNumber" constrainedElement="_JkYOEMzkEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCVs0yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.repeatNumber.oclIsUndefined() or self.repeatNumber.isNullFlavorUndefined()) implies (not self.repeatNumber.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCfd0CWbEeGCz74CaMtvdQ" name="IHEAdvanceDirectiveObservationInterpretationCode" constrainedElement="_JkYOEMzkEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCfd0SWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.interpretationCode->isEmpty() or self.interpretationCode->exists(element | element.isNullFlavorUndefined())) implies (not self.interpretationCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCfd0iWbEeGCz74CaMtvdQ" name="IHEAdvanceDirectiveObservationTargetSiteCode" constrainedElement="_JkYOEMzkEeCvbrjDQpuvkw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCfd0yWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.targetSiteCode->isEmpty() or self.targetSiteCode->exists(element | element.isNullFlavorUndefined())) implies (not self.targetSiteCode->isEmpty())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_JkYOEczkEeCvbrjDQpuvkw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_mEuuUMJcEd6-XpBv2uxYrQ"/>
      </generalization>
      <generalization xmi:id="_yskTYMzkEeCvbrjDQpuvkw" general="_dLvb0K4NEd6_ioDelDcPPg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_b0JLIM9KEeCBIMy4xFlonQ" name="CodedReasonForReferralSection">
      <ownedRule xmi:id="_GConxyWbEeGCz74CaMtvdQ" name="CodedReasonForReferralSectionTemplateId" constrainedElement="_b0JLIM9KEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GConyCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.3.2')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GConyiWbEeGCz74CaMtvdQ" name="CodedReasonForReferralSectionSimpleObservation" constrainedElement="_b0JLIM9KEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GConyyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::SimpleObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCon0SWbEeGCz74CaMtvdQ" name="CodedReasonForReferralSectionProblemEntry" constrainedElement="_b0JLIM9KEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCon0iWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->exists(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_b0JLIc9KEeCBIMy4xFlonQ" general="_XicJUMfdEd6VjLXh4DcWSg"/>
      <ownedOperation xmi:id="_GConzCWbEeGCz74CaMtvdQ" name="getSimpleObservations" isQuery="true" bodyCondition="_GConzyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GConzyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GConzCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCon0CWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::SimpleObservation)).oclAsType(ihe::SimpleObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GConzSWbEeGCz74CaMtvdQ" type="_dLvb0K4NEd6_ioDelDcPPg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GConziWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_GCyYwCWbEeGCz74CaMtvdQ" name="getProblemEntries" isQuery="true" bodyCondition="_GCyYwyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GCyYwyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GCyYwCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCyYxCWbEeGCz74CaMtvdQ">
            <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="_GCyYwSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GCyYwiWbEeGCz74CaMtvdQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_NwEIMM9REeCBIMy4xFlonQ" name="GeneralAppearanceSection">
      <ownedComment xmi:id="_zyc6MM9REeCBIMy4xFlonQ">
        <body>The general appearance section shall contain a description of the overall, visiblyapparent&#xD;
condition of the patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_GCyYzCWbEeGCz74CaMtvdQ" name="GeneralAppearanceSectionTemplateId" constrainedElement="_NwEIMM9REeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCyYzSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.16')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GCyYzyWbEeGCz74CaMtvdQ" name="GeneralAppearanceSectionCode" constrainedElement="_NwEIMM9REeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GCyY0CWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10210-3' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GC7isCWbEeGCz74CaMtvdQ" name="GeneralAppearanceSectionProblemEntry" constrainedElement="_NwEIMM9REeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GC7isSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_NwEIMc9REeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GC7isiWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GC7itSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GC7itSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GC7isiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GC7itiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GC7isyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GC7itCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_j2TmkM9REeCBIMy4xFlonQ" name="VisibleImplantedMedicalDevicesSection">
      <ownedComment xmi:id="_xfwe0M9REeCBIMy4xFlonQ">
        <body>The visible implanted medical devices section shall contain a description of the medical&#xD;
devices apparent on physical exam that have been inserted into the patient, whether&#xD;
internal or partially external.</body>
      </ownedComment>
      <ownedRule xmi:id="_GC7ityWbEeGCz74CaMtvdQ" name="VisibleImplantedMedicalDevicesSectionTemplateId" constrainedElement="_j2TmkM9REeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GC7iuCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.48')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDFTsCWbEeGCz74CaMtvdQ" name="VisibleImplantedMedicalDevicesSectionCode" constrainedElement="_j2TmkM9REeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDFTsSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = 'XX-VisibleImplantedDevices' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDFTsiWbEeGCz74CaMtvdQ" name="VisibleImplantedMedicalDevicesSectionProblemEntry" constrainedElement="_j2TmkM9REeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDFTsyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_j2dXkM9REeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GDFTtCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GDFTtyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GDFTtyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GDFTtCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDFTuCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GDFTtSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GDFTtiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_KhAVwM9SEeCBIMy4xFlonQ" name="IntegumentarySystemSection">
      <ownedComment xmi:id="_MLrH0M9SEeCBIMy4xFlonQ">
        <body>The integumentary system section shall contain a description of any type of integumentary&#xD;
system exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GDFTuSWbEeGCz74CaMtvdQ" name="IntegumentarySystemSectionTemplateId" constrainedElement="_KhAVwM9SEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDFTuiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.17')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDPEsCWbEeGCz74CaMtvdQ" name="IntegumentarySystemSectionCode" constrainedElement="_KhAVwM9SEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDPEsSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '29302-7' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDPEsiWbEeGCz74CaMtvdQ" name="IntegumentarySystemSectionProblemEntry" constrainedElement="_KhAVwM9SEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDPEsyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_KhAVwc9SEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GDPEtCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GDPEtyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GDPEtyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GDPEtCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDPEuCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GDPEtSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GDPEtiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_tvofUM9VEeCBIMy4xFlonQ" name="HeadSection">
      <ownedComment xmi:id="_vrkAgM9VEeCBIMy4xFlonQ">
        <body>The head section shall contain a description of any type of head exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GDPEuSWbEeGCz74CaMtvdQ" name="HeadSectionTemplateId" constrainedElement="_tvofUM9VEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDPEuiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.18')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDYOoCWbEeGCz74CaMtvdQ" name="HeadSectionCode" constrainedElement="_tvofUM9VEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDYOoSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10199-8' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDYOoiWbEeGCz74CaMtvdQ" name="HeadSectionProblemEntry" constrainedElement="_tvofUM9VEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDYOoyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_tvofUc9VEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GDYOpCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GDYOpyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GDYOpyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GDYOpCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDYOqCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GDYOpSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GDYOpiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_AieTQM9WEeCBIMy4xFlonQ" name="EyesSection">
      <ownedRule xmi:id="_GDYOqSWbEeGCz74CaMtvdQ" name="EyesSectionTemplateId" constrainedElement="_AieTQM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDYOqiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.19')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDh_oSWbEeGCz74CaMtvdQ" name="EyesSectionCode" constrainedElement="_AieTQM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDh_oiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10197-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDh_oyWbEeGCz74CaMtvdQ" name="EyesSectionProblemEntry" constrainedElement="_AieTQM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDh_pCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_AindMM9WEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GDh_pSWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GDh_qCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GDh_qCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GDh_pSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDh_qSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GDh_piWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GDh_pyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_X4APQM9WEeCBIMy4xFlonQ" name="EarsNoseMouthThroatSection">
      <ownedComment xmi:id="_bhI5IM9WEeCBIMy4xFlonQ">
        <body>The ears, nose, mouth, and throat section shall contain a description of any type of ears,&#xD;
nose, mouth, or throat exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GDrwoCWbEeGCz74CaMtvdQ" name="EarsNoseMouthThroatSectionTemplateId" constrainedElement="_X4APQM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDrwoSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.20')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDrwoyWbEeGCz74CaMtvdQ" name="EarsNoseMouthThroatSectionCode" constrainedElement="_X4APQM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDrwpCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11393-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GDrwpSWbEeGCz74CaMtvdQ" name="EarsNoseMouthThroatSectionProblemEntry" constrainedElement="_X4APQM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GDrwpiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_X4APQc9WEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GD06kCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GD06kyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GD06kyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GD06kCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD06lCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GD06kSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GD06kiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_stnMMM9WEeCBIMy4xFlonQ" name="EarsSection">
      <ownedComment xmi:id="_yHD9IM9WEeCBIMy4xFlonQ">
        <body>The ears section shall contain a description of any type of ear exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GD06lSWbEeGCz74CaMtvdQ" name="EarsSectionTemplateId" constrainedElement="_stnMMM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD06liWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.21')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GD06mCWbEeGCz74CaMtvdQ" name="EarsSectionCode" constrainedElement="_stnMMM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD06mSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10195-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GD-rkCWbEeGCz74CaMtvdQ" name="EarsSectionProblemEntry" constrainedElement="_stnMMM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD-rkSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_stnMMc9WEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GD-rkiWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GD-rlSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GD-rlSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GD-rkiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD-rliWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GD-rkyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GD-rlCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_9L0rEM9WEeCBIMy4xFlonQ" name="NoseSection">
      <ownedComment xmi:id="_AYFywM9XEeCBIMy4xFlonQ">
        <body>The nose section shall contain a description of any type of nose exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GD-rlyWbEeGCz74CaMtvdQ" name="NoseSectionTemplateId" constrainedElement="_9L0rEM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD-rmCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.22')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GD-rmiWbEeGCz74CaMtvdQ" name="NoseSectionCode" constrainedElement="_9L0rEM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GD-rmyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10203-8' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEH1gCWbEeGCz74CaMtvdQ" name="NoseSectionProblemEntry" constrainedElement="_9L0rEM9WEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEH1gSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_9L0rEc9WEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GEH1giWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GEH1hSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GEH1hSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GEH1giWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEH1hiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GEH1gyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GEH1hCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_UwOwkM9XEeCBIMy4xFlonQ" name="MouthThroatTeethSection">
      <ownedComment xmi:id="_YoPj8M9XEeCBIMy4xFlonQ">
        <body>The mouth, throat, and teeth section shall contain a description of any type of mouth,&#xD;
throat, or teeth exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GEH1hyWbEeGCz74CaMtvdQ" name="MouthThroatTeethSectionTemplateId" constrainedElement="_UwOwkM9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEH1iCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.23')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEH1iiWbEeGCz74CaMtvdQ" name="MouthThroatTeethSectionCode" constrainedElement="_UwOwkM9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEH1iyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10201-2' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GERmgCWbEeGCz74CaMtvdQ" name="MouthThroatTeethSectionProblemEntry" constrainedElement="_UwOwkM9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GERmgSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_UwOwkc9XEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GERmgiWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GERmhSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GERmhSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GERmgiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GERmhiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GERmgyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GERmhCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_mMLqEM9XEeCBIMy4xFlonQ" name="NeckSection">
      <ownedComment xmi:id="_oYxdcM9XEeCBIMy4xFlonQ">
        <body>Description The neck section shall contain a description of any type of neck exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GERmhyWbEeGCz74CaMtvdQ" name="NeckSectionTemplateId" constrainedElement="_mMLqEM9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GERmiCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.24')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEbXgCWbEeGCz74CaMtvdQ" name="NeckSectionCode" constrainedElement="_mMLqEM9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEbXgSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11411-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEbXgiWbEeGCz74CaMtvdQ" name="NeckSectionProblemEntry" constrainedElement="_mMLqEM9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEbXgyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_mMLqEc9XEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GEbXhCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GEbXhyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GEbXhyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GEbXhCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEbXiCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GEbXhSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GEbXhiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_zCJ28M9XEeCBIMy4xFlonQ" name="EndocrineSystemSection">
      <ownedComment xmi:id="_7ZTIEM9XEeCBIMy4xFlonQ">
        <body>The endocrine system section shall contain a description of any type of endocrine&#xD;
system exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GEbXiSWbEeGCz74CaMtvdQ" name="EndocrineSystemSectionTemplateId" constrainedElement="_zCJ28M9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEbXiiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.25')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEkhcCWbEeGCz74CaMtvdQ" name="EndocrineSystemSectionCode" constrainedElement="_zCJ28M9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEkhcSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '29307-6' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEkhciWbEeGCz74CaMtvdQ" name="EndocrineSystemSectionProblemEntry" constrainedElement="_zCJ28M9XEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEkhcyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_zCJ28c9XEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GEkhdCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GEkhdyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GEkhdyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GEkhdCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEkheCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GEkhdSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GEkhdiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_DAYOMM9YEeCBIMy4xFlonQ" name="ThoraxLungsSection">
      <ownedComment xmi:id="_FiF9AM9YEeCBIMy4xFlonQ">
        <body>The thorax and lungs section shall contain a description of any type of thoracic or lung&#xD;
exams.</body>
      </ownedComment>
      <ownedRule xmi:id="_GEkheSWbEeGCz74CaMtvdQ" name="ThoraxLungsSectionTemplateId" constrainedElement="_DAYOMM9YEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEkheiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.26')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEuScCWbEeGCz74CaMtvdQ" name="ThoraxLungsSectionCode" constrainedElement="_DAYOMM9YEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEuScSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10207-9' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GEuSciWbEeGCz74CaMtvdQ" name="ThoraxLungsSectionProblemEntry" constrainedElement="_DAYOMM9YEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEuScyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_DAYOMc9YEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GEuSdCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GEuSdyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GEuSdyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GEuSdCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEuSeCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GEuSdSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GEuSdiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_IXiqsM9ZEeCBIMy4xFlonQ" name="ChestWallSection">
      <ownedComment xmi:id="_OSdxAM9ZEeCBIMy4xFlonQ">
        <body>The chest wall section shall contain a description of any type of chest wall exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GEuSeSWbEeGCz74CaMtvdQ" name="ChestWallSectionTemplateId" constrainedElement="_IXiqsM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GEuSeiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.27')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GE4DcCWbEeGCz74CaMtvdQ" name="ChestWallSectionCode" constrainedElement="_IXiqsM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GE4DcSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11392-8' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GE4DciWbEeGCz74CaMtvdQ" name="ChestWallSectionProblemEntry" constrainedElement="_IXiqsM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GE4DcyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_IXiqsc9ZEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GE4DdCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GE4DdyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GE4DdyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GE4DdCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GE4DeCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GE4DdSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GE4DdiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_U4Y8IM9ZEeCBIMy4xFlonQ" name="BreastSection">
      <ownedComment xmi:id="_YKwEwM9ZEeCBIMy4xFlonQ">
        <body>The breast section shall contain a description of any type of breast exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GE4DeSWbEeGCz74CaMtvdQ" name="BreastSectionTemplateId" constrainedElement="_U4Y8IM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GE4DeiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.28')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFBNYSWbEeGCz74CaMtvdQ" name="BreastSectionCode" constrainedElement="_U4Y8IM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFBNYiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10193-1' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_U4Y8Ic9ZEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_deZvsM9ZEeCBIMy4xFlonQ" name="HeartSection">
      <ownedComment xmi:id="_fET9kM9ZEeCBIMy4xFlonQ">
        <body>The heart section shall contain a description of any type of heart exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GFBNYyWbEeGCz74CaMtvdQ" name="HeartSectionTemplateId" constrainedElement="_deZvsM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFBNZCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.29')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFK-YCWbEeGCz74CaMtvdQ" name="HeartSectionCode" constrainedElement="_deZvsM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFK-YSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10200-4' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFK-YiWbEeGCz74CaMtvdQ" name="HeartSectionProblemEntry" constrainedElement="_deZvsM9ZEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFK-YyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_deZvsc9ZEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GFK-ZCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GFK-ZyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GFK-ZyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GFK-ZCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFK-aCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GFK-ZSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GFK-ZiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_C17m0M9aEeCBIMy4xFlonQ" name="RespiratorySystemSection">
      <ownedComment xmi:id="_Fx1XQM9aEeCBIMy4xFlonQ">
        <body>The respiratory system section shall contain a description of any type of respiratory&#xD;
exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GFK-aSWbEeGCz74CaMtvdQ" name="RespiratorySystemSectionTemplateId" constrainedElement="_C17m0M9aEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFK-aiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.30')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFUIUCWbEeGCz74CaMtvdQ" name="RespiratorySystemSectionCode" constrainedElement="_C17m0M9aEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFUIUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11412-4' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFUIUiWbEeGCz74CaMtvdQ" name="RespiratorySystemSectionProblemEntry" constrainedElement="_C17m0M9aEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFUIUyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_C17m0c9aEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GFUIVCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GFUIVyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GFUIVyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GFUIVCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFUIWCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GFUIVSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GFUIViWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_VnlH8M9aEeCBIMy4xFlonQ" name="AbdomenSection">
      <ownedComment xmi:id="_YMt-MM9aEeCBIMy4xFlonQ">
        <body>The abdomen system section shall contain a description of any type of abdominal exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GFUIWSWbEeGCz74CaMtvdQ" name="AbdomenSectionTemplateId" constrainedElement="_VnlH8M9aEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFUIWiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.31')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFd5UCWbEeGCz74CaMtvdQ" name="AbdomenSectionCode" constrainedElement="_VnlH8M9aEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFd5USWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10191-5' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFd5UiWbEeGCz74CaMtvdQ" name="AbdomenSectionProblemEntry" constrainedElement="_VnlH8M9aEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFd5UyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_VnlH8c9aEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GFd5VCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GFd5VyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GFd5VyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GFd5VCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFd5WCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GFd5VSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GFd5ViWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_CbVgEM9bEeCBIMy4xFlonQ" name="LymphaticSection">
      <ownedComment xmi:id="_FUQ1AM9bEeCBIMy4xFlonQ">
        <body>The lymphatic system section shall contain a description of any type of lymphatic exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GFd5WSWbEeGCz74CaMtvdQ" name="LymphaticSectionTemplateId" constrainedElement="_CbVgEM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFd5WiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.32')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFnqUCWbEeGCz74CaMtvdQ" name="LymphaticSectionCode" constrainedElement="_CbVgEM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFnqUSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11447-0' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFnqUiWbEeGCz74CaMtvdQ" name="LymphaticSectionProblemEntry" constrainedElement="_CbVgEM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFnqUyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_CbVgEc9bEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GFnqVCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GFnqVyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GFnqVyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GFnqVCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFnqWCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GFnqVSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GFnqViWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_Rb0csM9bEeCBIMy4xFlonQ" name="VesselsSection">
      <ownedComment xmi:id="_UfwHwM9bEeCBIMy4xFlonQ">
        <body>The vessels section shall contain a description of any type of vessels exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GFnqWSWbEeGCz74CaMtvdQ" name="VesselsSectionTemplateId" constrainedElement="_Rb0csM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFnqWiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.33')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFw0QSWbEeGCz74CaMtvdQ" name="VesselsSectionCode" constrainedElement="_Rb0csM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFw0QiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10208-7' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GFw0QyWbEeGCz74CaMtvdQ" name="VesselsSectionProblemEntry" constrainedElement="_Rb0csM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFw0RCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_Rb0csc9bEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GFw0RSWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GFw0SCWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GFw0SCWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GFw0RSWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GFw0SSWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GFw0RiWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GFw0RyWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_fkNTsM9bEeCBIMy4xFlonQ" name="MusculoskeletalSystemSection">
      <ownedComment xmi:id="_NOo1IM9cEeCBIMy4xFlonQ">
        <body>The musculoskeletal system section shall contain a description of any type of&#xD;
musculoskeletal exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GF6lQCWbEeGCz74CaMtvdQ" name="MusculoskeletalSystemSectionTemplateId" constrainedElement="_fkNTsM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GF6lQSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.34')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GF6lQyWbEeGCz74CaMtvdQ" name="MusculoskeletalSystemSectionCode" constrainedElement="_fkNTsM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GF6lRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11410-8' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GF6lRSWbEeGCz74CaMtvdQ" name="MusculoskeletalSystemSectionProblemEntry" constrainedElement="_fkNTsM9bEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GF6lRiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_fkNTsc9bEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GF6lRyWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GGEWQSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGEWQSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GF6lRyWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGEWQiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GF6lSCWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGEWQCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_WMKJwM9cEeCBIMy4xFlonQ" name="NeurologicSystemSection">
      <ownedComment xmi:id="_YpjZQM9cEeCBIMy4xFlonQ">
        <body>The neurologic system section shall contain a description of any type of neurologic&#xD;
exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GGEWQyWbEeGCz74CaMtvdQ" name="NeurologicSystemSectionTemplateId" constrainedElement="_WMKJwM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGEWRCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.35')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGEWRiWbEeGCz74CaMtvdQ" name="NeurologicSystemSectionCode" constrainedElement="_WMKJwM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGEWRyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10202-0' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGEWSCWbEeGCz74CaMtvdQ" name="NeurologicSystemSectionProblemEntry" constrainedElement="_WMKJwM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGEWSSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_WMKJwc9cEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GGNgMCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GGNgMyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGNgMyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGNgMCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGNgNCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGNgMSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGNgMiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_iIjqUM9cEeCBIMy4xFlonQ" name="GenitaliaSection">
      <ownedComment xmi:id="_lMVkYM9cEeCBIMy4xFlonQ">
        <body>The genitalia section shall contain a description of any type of genital exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GGNgNSWbEeGCz74CaMtvdQ" name="GenitaliaSectionTemplateId" constrainedElement="_iIjqUM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGNgNiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.36')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGNgOCWbEeGCz74CaMtvdQ" name="GenitaliaSectionCode" constrainedElement="_iIjqUM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGNgOSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '11400-9' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGNgOiWbEeGCz74CaMtvdQ" name="GenitaliaSectionProblemEntry" constrainedElement="_iIjqUM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGNgOyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_iIjqUc9cEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GGXRMCWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GGXRMyWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGXRMyWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGXRMCWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGXRNCWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGXRMSWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGXRMiWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_ttJH0M9cEeCBIMy4xFlonQ" name="RectumSection">
      <ownedComment xmi:id="_yE_R0M9cEeCBIMy4xFlonQ">
        <body>The rectum section shall contain a description of any type of rectal exam.</body>
      </ownedComment>
      <ownedRule xmi:id="_GGXRNSWbEeGCz74CaMtvdQ" name="RectumSectionTemplateId" constrainedElement="_ttJH0M9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGXRNiWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.9.37')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGXROCWbEeGCz74CaMtvdQ" name="RectumSectionCode" constrainedElement="_ttJH0M9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGXROSWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10205-3' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGgbICWbEeGCz74CaMtvdQ" name="RectumSectionProblemEntry" constrainedElement="_ttJH0M9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGgbISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_ttJH0c9cEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GGgbIiWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GGgbJSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGgbJSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGgbIiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGgbJiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGgbIyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGgbJCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_53FVIM9cEeCBIMy4xFlonQ" name="ExtremitiesSection">
      <ownedComment xmi:id="_8lcY0M9cEeCBIMy4xFlonQ">
        <body>The Extremities section SHALL contain a description of any type of exam on the&#xD;
patient's extremities.</body>
      </ownedComment>
      <ownedRule xmi:id="_GGgbJyWbEeGCz74CaMtvdQ" name="ExtremitiesSectionTemplateId" constrainedElement="_53FVIM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGgbKCWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '1.3.6.1.4.1.19376.1.5.3.1.1.16.2.1')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGgbKiWbEeGCz74CaMtvdQ" name="ExtremitiesSectionCode" constrainedElement="_53FVIM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGgbKyWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and &#xD;&#xA;let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in (&#xD;&#xA;value.code = '10196-4' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_GGqMICWbEeGCz74CaMtvdQ" name="ExtremitiesSectionProblemEntry" constrainedElement="_53FVIM9cEeCBIMy4xFlonQ">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGqMISWbEeGCz74CaMtvdQ">
          <language>OCL</language>
          <body>self.entry->one(entry : cda::Entry | not entry.observation.oclIsUndefined() and entry.observation.oclIsKindOf(ihe::ProblemEntry))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_53FVIc9cEeCBIMy4xFlonQ">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_GGqMIiWbEeGCz74CaMtvdQ" name="getProblemEntry" isQuery="true" bodyCondition="_GGqMJSWbEeGCz74CaMtvdQ">
        <ownedRule xmi:id="_GGqMJSWbEeGCz74CaMtvdQ" name="body" constrainedElement="_GGqMIiWbEeGCz74CaMtvdQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_GGqMJiWbEeGCz74CaMtvdQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(ihe::ProblemEntry))->asSequence()->first().oclAsType(ihe::ProblemEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_GGqMIyWbEeGCz74CaMtvdQ" type="_3ZiEwGdIEd6Hk_bPOfEjYA" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_GGqMJCWbEeGCz74CaMtvdQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_F4plUSWbEeGCz74CaMtvdQ" name="IHERegistryDelegate" clientDependency="_F4zWUCWbEeGCz74CaMtvdQ">
      <interfaceRealization xmi:id="_F4zWUCWbEeGCz74CaMtvdQ" client="_F4plUSWbEeGCz74CaMtvdQ">
        <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="__XON4IwEEd6B6JSUB00H7g">
      <eAnnotations xmi:id="__XPcAIwEEd6B6JSUB00H7g" 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="_FtLVICWbEeGCz74CaMtvdQ">
      <eAnnotations xmi:id="_FtLVISWbEeGCz74CaMtvdQ" 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="_RxBtgHcOEd6ZeOKq_2_a9g" base_Class="_GgvgUDxbEd6JwqSGecoePg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.5.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_Sd-6IHcOEd6ZeOKq_2_a9g" base_Class="_wDMM0GEHEd6bFO5yxRh3Nw" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CodegenSupport xmi:id="_saK-MJyQEd6BO7rW3XxHIA" basePackage="org.openhealthtools.mdht.uml.cda" nsPrefix="ihe" nsURI="http://www.openhealthtools.org/mdht/uml/cda/ihe" packageName="ihe" prefix="IHE" base_Namespace="_qQyD8jxVEd6JwqSGecoePg"/>
  <CDA:CDATemplate xmi:id="_oa_igK4NEd6_ioDelDcPPg" base_Class="_dLvb0K4NEd6_ioDelDcPPg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_okqXYMfhEd6VjLXh4DcWSg" base_Class="_jWj60MfhEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.4" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_FcNUAMfuEd6VjLXh4DcWSg" base_Class="_9fsJYMftEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.12" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_E5gEYDOuEd-5f4Yngl7nkw" base_Class="_-uU7kDOtEd-5f4Yngl7nkw" templateId="1.3.6.1.4.1.19376.1.5.3.1.2.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_hhTyUDOuEd-5f4Yngl7nkw" message="IHE Medical Summary SHALL contain the template identifier 1.3.6.1.4.1.19376.1.5.3.1.1.2" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.2" assigningAuthorityName="IHE PCC"/>
  <CDA:PropertyValidation xmi:id="_ic6e8DOuEd-5f4Yngl7nkw" message="IHE Medical Summary SHALL contain [1..1] code"/>
  <CDA:CodeSystemConstraint xmi:id="_v8u6EDOuEd-5f4Yngl7nkw">
    <reference href="../../org.openhealthtools.mdht.uml.term.models/model/CodeSystems.uml#_3-cwsCWrEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:CodeSystemConstraint xmi:id="_RPz4YTXgEd-gpLhSMS7jpQ" code="35525-4" displayName="Payment sources" message="IHE Coverage Entry SHALL contain [1..1] code/@code = &quot;48768-6&quot; Payment sources (CodeSystem: 2.16.840.1.113883.6.1 LOINC STATIC 2.26)">
    <reference href="../../org.openhealthtools.mdht.uml.term.models/model/CodeSystems.uml#_3-cwsCWrEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:CDATemplate xmi:id="_71B8UDuGEd-B8KE6Jx0UNQ" base_Class="_4hu_kDuGEd-B8KE6Jx0UNQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.2.3" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_UqB_oDuKEd-B8KE6Jx0UNQ" base_Class="_Q-mPsDuKEd-B8KE6Jx0UNQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.20.3.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_hGs7wEvdEd-GNbUQBie2ig" base_Class="_R_uVkEvdEd-GNbUQBie2ig" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.2"/>
  <CDA:CodeSystemConstraint xmi:id="_z1WMMEvdEd-GNbUQBie2ig" code="48767-8" displayName="Annotation Comment">
    <reference href="../../org.openhealthtools.mdht.uml.term.models/model/CodeSystems.uml#_3-cwsCWrEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_gd-mgEvrEd-GNbUQBie2ig"/>
  <CDA:ConformsTo xmi:id="_6wcFEFF6Ed-Lud-5SYZhMw" base_Generalization="_H4qVgDxbEd6JwqSGecoePg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6woSUFF6Ed-Lud-5SYZhMw" base_Generalization="_CZnswMfuEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wvnEVF6Ed-Lud-5SYZhMw" base_Generalization="_Q-mPsTuKEd-B8KE6Jx0UNQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_AvxIAFIwEd-4TsxSz4jnfg" base_Class="_8M5ZwFIvEd-4TsxSz4jnfg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.18" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_EUumoJvpEd-nMfCxM8hlxg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_FXd2AJvpEd-nMfCxM8hlxg" base_Generalization="_HGkB0GEIEd6bFO5yxRh3Nw" requiresParentId="true"/>
  <CDA:PropertyValidation xmi:id="_O4u6cJv1Ed-IotBrVd7ICA"/>
  <CDA:CDATemplate xmi:id="_Pcg4cO3wEd-dJvThfIiQuA" base_Class="_NaTwIO3wEd-dJvThfIiQuA" templateId="1.3.6.1.4.1.19376.1.5.3.1.2.4" contextDependent="true"/>
  <CDA:CDATemplate xmi:id="_cw_mQO3wEd-dJvThfIiQuA" base_Class="_ZY0wkO3wEd-dJvThfIiQuA" templateId="1.3.6.1.4.1.19376.1.5.3.1.2.4" contextDependent="true"/>
  <CDA:CDATemplate xmi:id="_5V-nMPG1Ed-FxO0PukiqhA" base_Class="_g76sEPG1Ed-FxO0PukiqhA" templateId="1.3.6.1.4.1.19376.1.2.20"/>
  <CDA:ConstraintValidation xmi:id="_rUXc4PHREd-FxO0PukiqhA" base_Constraint="_qOv4oPHREd-FxO0PukiqhA"/>
  <CDA:ConstraintValidation xmi:id="_XdF7APHSEd-FxO0PukiqhA" base_Constraint="_Q58-IPHSEd-FxO0PukiqhA"/>
  <CDA:ConstraintValidation xmi:id="_X9J7IPHSEd-FxO0PukiqhA" base_Constraint="_UHB-IPHSEd-FxO0PukiqhA"/>
  <CDA:ConstraintValidation xmi:id="_u_8a8PQ7Ed-e-dANbnDT2A" base_Constraint="_rIXFYPQ7Ed-e-dANbnDT2A"/>
  <CDA:ConstraintValidation xmi:id="_40GAIPQ8Ed-e-dANbnDT2A" base_Constraint="_rBwRoPQ8Ed-e-dANbnDT2A"/>
  <CDA:ConstraintValidation xmi:id="_RxWAEPcrEd-aZohBEt6atA" base_Constraint="_OfAiEPcqEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_Q-ysUPcsEd-aZohBEt6atA" base_Constraint="_ILMIsPcsEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_cWsjQPctEd-aZohBEt6atA" base_Constraint="_NegnAPctEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_UPA_kPcvEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_t98b4PcvEd-aZohBEt6atA" severity="WARNING" base_Constraint="_nmt0EPcvEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_0losIPcwEd-aZohBEt6atA" severity="WARNING" base_Constraint="_zlalQPcwEd-aZohBEt6atA"/>
  <CDA:AssociationValidation xmi:id="_d_R2YPdIEd-aZohBEt6atA"/>
  <CDA:AssociationValidation xmi:id="_iqnkIPdIEd-aZohBEt6atA" severity="WARNING"/>
  <CDA:CDATemplate xmi:id="_Jjl7sPdQEd-aZohBEt6atA" base_Class="_DVyVoPdQEd-aZohBEt6atA" templateId="1.3.6.1.4.1.19376.1.2.20.1"/>
  <CDA:CDATemplate xmi:id="_Tg88sPdQEd-aZohBEt6atA" base_Class="_QUckcPdQEd-aZohBEt6atA" templateId="1.3.6.1.4.1.19376.1.2.20.2"/>
  <CDA:ConstraintValidation xmi:id="_U9tjsPdSEd-aZohBEt6atA" severity="WARNING" base_Constraint="_RETpMPdSEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_NNsHgPdTEd-aZohBEt6atA" base_Constraint="_Cf5IEPdTEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_Vcge4PdaEd-aZohBEt6atA" base_Constraint="_Qs4HAPdaEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_6KgO0PdwEd-aZohBEt6atA" base_Constraint="_5BxFIPdwEd-aZohBEt6atA"/>
  <CDA:ConstraintValidation xmi:id="_noHcQPdxEd-aZohBEt6atA" base_Constraint="_VLMN8PdxEd-aZohBEt6atA"/>
  <CDA:CDATemplate xmi:id="_nmVZ8Pd5Ed-I-P0qO6j1fA" base_Class="_f-SDcPd5Ed-I-P0qO6j1fA" templateId="1.3.6.1.4.1.19376.1.2.20.3"/>
  <CDA:ConstraintValidation xmi:id="_LOZFAPgeEd-pooc0RA29Vg" base_Constraint="_HoyQQPgeEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_K6ussPgfEd-pooc0RA29Vg" base_Constraint="_qWiowPgeEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_rXLUcPggEd-pooc0RA29Vg" base_Constraint="_lbQIkPggEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_BihVQPghEd-pooc0RA29Vg" base_Constraint="_AQGrIPghEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_kha2MPgjEd-pooc0RA29Vg" base_Constraint="_dZPSkPgjEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_lSkw4PgkEd-pooc0RA29Vg" base_Constraint="_h7xNIPgkEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_VZRgcPglEd-pooc0RA29Vg" base_Constraint="_KL4a8PglEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_Bz2jkPgmEd-pooc0RA29Vg" base_Constraint="_jhFvsPglEd-pooc0RA29Vg"/>
  <CDA:ConstraintValidation xmi:id="_zf_TwPtDEd-xzOM2yZqLUw" base_Constraint="_tuvG0PtDEd-xzOM2yZqLUw"/>
  <CDA:ConstraintValidation xmi:id="_xp4RQPtEEd-xzOM2yZqLUw" base_Constraint="_qW_5gPtEEd-xzOM2yZqLUw"/>
  <CDA:ConstraintValidation xmi:id="_K40PYPvIEd-GKY_8ySda1g" base_Constraint="_ImYSsPvIEd-GKY_8ySda1g"/>
  <CDA:ConstraintValidation xmi:id="_i1H3gPvIEd-GKY_8ySda1g" base_Constraint="_djygwPvIEd-GKY_8ySda1g"/>
  <CDA:ConstraintValidation xmi:id="_uP9jIPvIEd-GKY_8ySda1g" base_Constraint="_qO9y4PvIEd-GKY_8ySda1g"/>
  <CDA:PropertyValidation xmi:id="_UKUvkBdqEeCf9aMNaCAtDQ"/>
  <CDA:PropertyValidation xmi:id="_V7MQQBdqEeCf9aMNaCAtDQ"/>
  <CDA:PropertyValidation xmi:id="_X6OIwBdqEeCf9aMNaCAtDQ" severity="WARNING"/>
  <CDA:PropertyValidation xmi:id="_skKoQBdqEeCf9aMNaCAtDQ"/>
  <CDA:TextValue xmi:id="_yFCP0BdqEeCf9aMNaCAtDQ"/>
  <CDA:PropertyValidation xmi:id="_5fSa4BdqEeCf9aMNaCAtDQ" severity="INFO"/>
  <CDA:PropertyValidation xmi:id="_7emnQBdqEeCf9aMNaCAtDQ" severity="INFO"/>
  <CDA:ConstraintValidation xmi:id="_BBpjoBdsEeCf9aMNaCAtDQ" severity="INFO"/>
  <CDA:ConstraintValidation xmi:id="_BhEDgBdsEeCf9aMNaCAtDQ" severity="INFO"/>
  <CDA:ConstraintValidation xmi:id="_OehYcBdsEeCf9aMNaCAtDQ"/>
  <CDA:ConstraintValidation xmi:id="_kP6BwCNMEeCxCon8a79rfA" base_Constraint="_jfpCcCNMEeCxCon8a79rfA"/>
  <CDA:ConstraintValidation xmi:id="__YJdkCNQEeCxCon8a79rfA" base_Constraint="_-tR7oCNQEeCxCon8a79rfA"/>
  <CDA:ConstraintValidation xmi:id="_-qABQCQYEeCxCon8a79rfA" base_Constraint="_928MoCQYEeCxCon8a79rfA">
    <ruleId>CONF-6.3.4.6.7</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_sIAT0EkGEeCOWNbpDoETQw" base_Constraint="_eIUF0EkGEeCOWNbpDoETQw">
    <ruleId>CONF-6.3.4.6.10</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_laQM8EkHEeCOWNbpDoETQw" base_Constraint="_bTMdYEkHEeCOWNbpDoETQw">
    <ruleId>CONF-6.3.4.6.11</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_xl31QEkHEeCOWNbpDoETQw" base_Constraint="_p0gxwEkHEeCOWNbpDoETQw">
    <ruleId>CONF-6.3.4.6.12</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_dG_2UFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_pA3AQFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_plKAIFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_rKg0YFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_rjf8IFWJEeCJpM11UriAaA"/>
  <CDA:EntryRelationship xmi:id="_BIix8FWKEeCrQoPO8cZUSQ" severity="INFO" typeCode="COMP"/>
  <CDA:EntryRelationship xmi:id="_BxscoFWKEeCrQoPO8cZUSQ" severity="INFO" typeCode="RSON"/>
  <CDA:PropertyValidation xmi:id="_Ss9q8FWKEeCrQoPO8cZUSQ">
    <ruleId>CONF-430</ruleId>
    <ruleId>CONF-431</ruleId>
  </CDA:PropertyValidation>
  <CDA:ValueSetConstraint xmi:id="_Ss-5EFWKEeCrQoPO8cZUSQ" identifier="2.16.840.1.113883.1.11.20.15" name="ProcedureStatusCode" version="20061017"/>
  <CDA:ConstraintValidation xmi:id="_m7dpIHpsEeClUPwBnV8CsA" base_Constraint="_VB8x4FfmEeCQ8PeHNHg5Pw"/>
  <CDA:CDATemplate xmi:id="_tfcGAL4kEeCPGaGuS9U6tg" base_Class="_nwrzcL4kEeCPGaGuS9U6tg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.33"/>
  <CDA:PropertyValidation xmi:id="_Kg5qEL4lEeCPGaGuS9U6tg"/>
  <CDA:TextValue xmi:id="_K-u1kL4lEeCPGaGuS9U6tg"/>
  <CDA:CDATemplate xmi:id="_iDE68L4lEeCPGaGuS9U6tg" base_Class="_dw0bkL4lEeCPGaGuS9U6tg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.26"/>
  <CDA:PropertyValidation xmi:id="_qACxgL4lEeCPGaGuS9U6tg"/>
  <CDA:TextValue xmi:id="_qjHCUL4lEeCPGaGuS9U6tg"/>
  <CDA:CDATemplate xmi:id="_hweDcMLEEeCH35Uk0QXD4A" base_Class="_uP4tkDuMEd-B8KE6Jx0UNQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.19" contextDependent="true"/>
  <CDA:CDATemplate xmi:id="_evb-IMgkEeCHk-lvWGDTdA" base_Class="_cSezgMgkEeCHk-lvWGDTdA" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.15"/>
  <CDA:ConformsTo xmi:id="_fqWuQMgkEeCHk-lvWGDTdA" base_Generalization="_cSokgMgkEeCHk-lvWGDTdA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_aHwlYMhFEeCHk-lvWGDTdA" base_Generalization="_oap4sMhEEeCHk-lvWGDTdA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_nO6B0MhFEeCHk-lvWGDTdA" base_Generalization="_mhxPAMhFEeCHk-lvWGDTdA" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_tbW9AMhFEeCHk-lvWGDTdA" severity="WARNING" base_Constraint="_quOBUMhFEeCHk-lvWGDTdA"/>
  <CDA:ConstraintValidation xmi:id="_z03cwMhFEeCHk-lvWGDTdA" severity="WARNING" base_Constraint="_vqMMEMhFEeCHk-lvWGDTdA"/>
  <CDA:ConstraintValidation xmi:id="_4DkR0MhFEeCHk-lvWGDTdA" severity="WARNING" base_Constraint="_0bGWUMhFEeCHk-lvWGDTdA"/>
  <CDA:ConstraintValidation xmi:id="_7Yb74MhFEeCHk-lvWGDTdA" severity="WARNING" base_Constraint="_5sn6UMhFEeCHk-lvWGDTdA"/>
  <CDA:CDATemplate xmi:id="_AKri4MhGEeCHk-lvWGDTdA" base_Class="_oapRoMhEEeCHk-lvWGDTdA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13.4" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_8sRmcMkCEeChgrgmBsw26A" base_Generalization="_7wLKkckCEeChgrgmBsw26A" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="__OvjMMkCEeChgrgmBsw26A" base_Class="_7wLKkMkCEeChgrgmBsw26A" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.15"/>
  <CDA:CDATemplate xmi:id="_Mrps4MkGEeChgrgmBsw26A" base_Class="_IOqkMMkGEeChgrgmBsw26A" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13.3" assigningAuthorityName="IHE PCC"/>
  <CDA:ConstraintValidation xmi:id="_OosNEMkhEeCcAd9ZGNykiw" severity="INFO" base_Constraint="_JAhDoMkhEeCcAd9ZGNykiw"/>
  <CDA:ConstraintValidation xmi:id="_xA_6AMkhEeCcAd9ZGNykiw" base_Constraint="_POMG0MkhEeCcAd9ZGNykiw"/>
  <CDA:ConstraintValidation xmi:id="_Df5eQMkiEeCcAd9ZGNykiw" base_Constraint="_9Nwx0MkhEeCcAd9ZGNykiw"/>
  <CDA:AssociationValidation xmi:id="_RTkfsMm1EeCDOYZyQPaRHg"/>
  <CDA:ConstraintValidation xmi:id="_LME0oMnDEeCDOYZyQPaRHg" base_Constraint="_Lbzk4MkiEeCcAd9ZGNykiw"/>
  <CDA:CDATemplate xmi:id="_NNqB4MzkEeCvbrjDQpuvkw" base_Class="_JkYOEMzkEeCvbrjDQpuvkw" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13.7" assigningAuthorityName="IHE PCC"/>
  <CDA:ConstraintValidation xmi:id="_RvF60MzmEeCvbrjDQpuvkw" severity="INFO" base_Constraint="_vf1cMMzlEeCvbrjDQpuvkw"/>
  <CDA:ConformsTo xmi:id="_c8n4UMzoEeCvbrjDQpuvkw" base_Generalization="_JkYOEczkEeCvbrjDQpuvkw" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_dQQmAMzoEeCvbrjDQpuvkw" base_Generalization="_yskTYMzkEeCvbrjDQpuvkw" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_fmDWgM9KEeCBIMy4xFlonQ" base_Class="_b0JLIM9KEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.2" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_GcNHwM9LEeCBIMy4xFlonQ" base_Generalization="_b0JLIc9KEeCBIMy4xFlonQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_PYNKsM9REeCBIMy4xFlonQ" base_Class="_NwEIMM9REeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.16" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_u4ru4M9REeCBIMy4xFlonQ" base_Class="_j2TmkM9REeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.48" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_NDnccM9SEeCBIMy4xFlonQ" base_Class="_KhAVwM9SEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.17" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_3EXaEM9VEeCBIMy4xFlonQ" base_Class="_tvofUM9VEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.18" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_MSqj0M9WEeCBIMy4xFlonQ" base_Class="_AieTQM9WEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.19" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_aCETEM9WEeCBIMy4xFlonQ" base_Class="_X4APQM9WEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.20" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_ue-cIM9WEeCBIMy4xFlonQ" base_Class="_stnMMM9WEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.21" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_-5UHoM9WEeCBIMy4xFlonQ" base_Class="_9L0rEM9WEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.22" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_WR1GMM9XEeCBIMy4xFlonQ" base_Class="_UwOwkM9XEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.23" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_nMc0QM9XEeCBIMy4xFlonQ" base_Class="_mMLqEM9XEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.24" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_0yoWEM9XEeCBIMy4xFlonQ" base_Class="_zCJ28M9XEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.25" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_EEEf0M9YEeCBIMy4xFlonQ" base_Class="_DAYOMM9YEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.26" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_PLS2cM9ZEeCBIMy4xFlonQ" base_Class="_IXiqsM9ZEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.27" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_W7T2IM9ZEeCBIMy4xFlonQ" base_Class="_U4Y8IM9ZEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.28" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_gyQGEM9ZEeCBIMy4xFlonQ" base_Class="_deZvsM9ZEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.29" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_EZBKMM9aEeCBIMy4xFlonQ" base_Class="_C17m0M9aEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.30" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_W3LHkM9aEeCBIMy4xFlonQ" base_Class="_VnlH8M9aEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.31" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_EIPGwM9bEeCBIMy4xFlonQ" base_Class="_CbVgEM9bEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.32" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_S7xzkM9bEeCBIMy4xFlonQ" base_Class="_Rb0csM9bEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.33" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_rBq1gM9bEeCBIMy4xFlonQ" base_Class="_fkNTsM9bEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.34" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_Xh2KUM9cEeCBIMy4xFlonQ" base_Class="_WMKJwM9cEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.35" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_j1TgAM9cEeCBIMy4xFlonQ" base_Class="_iIjqUM9cEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.36" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_whwkgM9cEeCBIMy4xFlonQ" base_Class="_ttJH0M9cEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.37" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_7g3WYM9cEeCBIMy4xFlonQ" base_Class="_53FVIM9cEeCBIMy4xFlonQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.16.2.1" assigningAuthorityName="IHE PCC"/>
  <CDA:ConstraintValidation xmi:id="_4exO8AYxEeG7pO1MXdunbA" base_Constraint="_qz-60FfmEeCQ8PeHNHg5Pw"/>
  <CDA:AssociationValidation xmi:id="_8DTzkBEwEeGQTKMzurBNQw" severity="INFO"/>
  <CDA:ConstraintValidation xmi:id="_HU5tEBt4EeG6kfZwwf5nmQ" base_Constraint="_LXP9oBt3EeG6kfZwwf5nmQ"/>
  <CDA:ConstraintValidation xmi:id="_HwKswBt4EeG6kfZwwf5nmQ" base_Constraint="_MrAEgBt3EeG6kfZwwf5nmQ"/>
  <CDA:ConstraintValidation xmi:id="_IrLjgBt4EeG6kfZwwf5nmQ" base_Constraint="_PQs7cBt3EeG6kfZwwf5nmQ"/>
  <CDA:ConstraintValidation xmi:id="_JeSbcBt4EeG6kfZwwf5nmQ" base_Constraint="_QanJ0Bt3EeG6kfZwwf5nmQ"/>
  <CDA:CDATemplate xmi:id="_cn5v0Mf0Ed6VjLXh4DcWSg" base_Class="_ZEjk4Mf0Ed6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.23" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_cNip0DuJEd-B8KE6Jx0UNQ" base_Class="_aFDTUDuJEd-B8KE6Jx0UNQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.12" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6waP4FF6Ed-Lud-5SYZhMw" base_Generalization="_cBTp4Mf0Ed6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wvnEFF6Ed-Lud-5SYZhMw" base_Generalization="_aFDTUTuJEd-B8KE6Jx0UNQ" requiresParentId="true"/>
  <CDA:CodeSystemConstraint xmi:id="_viq4wFTLEeCUesz7J0dFlQ" code=""/>
  <CDA:CodeSystemConstraint xmi:id="_I5Km8FTMEeCUesz7J0dFlQ" code="11369-6">
    <reference href="../../org.openhealthtools.mdht.uml.term.models/model/CodeSystems.uml#_3-cwsCWrEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:ConstraintValidation xmi:id="_o-kuEFTVEeCUesz7J0dFlQ">
    <ruleId>6.3.4.17.2</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_0Jm-8FTcEeCUesz7J0dFlQ" message="The effectiveTime element shall be present and should contain a time value that indicates the date of the substance administration. If the date is unkown, this shall be recorded using the nullFlavor attribute, with the reason that the information is unknown being specified. Otherwise, the date shall be recorded, and should have precision of at least the day.">
    <ruleId>6.3.4.17.8</ruleId>
  </CDA:PropertyValidation>
  <CDA:ConstraintValidation xmi:id="_UM3xYFUwEeCUesz7J0dFlQ">
    <ruleId>6.3.4.17.8</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_tQI_UMfyEd6VjLXh4DcWSg" base_Class="_quPDQMfyEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.21" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_QW-KUHcOEd6ZeOKq_2_a9g" base_Class="_vz5koGGsEd6bFO5yxRh3Nw" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.6" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_TTbUYHcOEd6ZeOKq_2_a9g" base_Class="_wSnPAGaQEd6Hk_bPOfEjYA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.5.2" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_UINAQHcOEd6ZeOKq_2_a9g" base_Class="_3ZiEwGdIEd6Hk_bPOfEjYA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.5" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_rRPl4DOvEd-5f4Yngl7nkw" base_Class="_fp-n0DOvEd-5f4Yngl7nkw" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.2" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_2lStADOvEd-5f4Yngl7nkw" base_Class="_yq8-YDOvEd-5f4Yngl7nkw" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.4" assigningAuthorityName="IHE PCC"/>
  <CDA:ConstraintValidation xmi:id="_JnaD8DXdEd-gpLhSMS7jpQ" base_Constraint="_iiAk4DOvEd-5f4Yngl7nkw"/>
  <CDA:ConstraintValidation xmi:id="_LovpkDXdEd-gpLhSMS7jpQ" base_Constraint="_kVCowDOvEd-5f4Yngl7nkw"/>
  <CDA:ConstraintValidation xmi:id="_MFpoADXdEd-gpLhSMS7jpQ" base_Constraint="_mjgEYDOvEd-5f4Yngl7nkw"/>
  <CDA:ConformsTo xmi:id="_6wcsIFF6Ed-Lud-5SYZhMw" base_Generalization="_ESh9QGGzEd6bFO5yxRh3Nw" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wcsIVF6Ed-Lud-5SYZhMw" base_Generalization="_wSnPBWaQEd6Hk_bPOfEjYA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wdTMFF6Ed-Lud-5SYZhMw" base_Generalization="_3ZiExWdIEd6Hk_bPOfEjYA" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wtx4FF6Ed-Lud-5SYZhMw" base_Generalization="_fp-n0TOvEd-5f4Yngl7nkw" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wuY8FF6Ed-Lud-5SYZhMw" base_Generalization="_yq8-YTOvEd-5f4Yngl7nkw" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_DGpHEJviEd-L4qx175J3dg" base_Class="_5_3IwJvhEd-L4qx175J3dg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.5"/>
  <CDA:CDATemplate xmi:id="_GNRg0JviEd-L4qx175J3dg" base_Class="_-P-6IJvhEd-L4qx175J3dg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.6"/>
  <CDA:ConformsTo xmi:id="_LkvQkJvpEd-nMfCxM8hlxg" base_Generalization="_6ANuEJvhEd-L4qx175J3dg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_MdIRIJvpEd-nMfCxM8hlxg" base_Generalization="_-P_hMJvhEd-L4qx175J3dg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_QqlPoCQKEeCxCon8a79rfA" base_Class="_MIoHYCQKEeCxCon8a79rfA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.1"/>
  <CDA:ConformsTo xmi:id="_R4udwCQKEeCxCon8a79rfA" base_Generalization="_MIoHYSQKEeCxCon8a79rfA" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_e7GScCQLEeCxCon8a79rfA" base_Constraint="_eaijECQLEeCxCon8a79rfA"/>
  <CDA:CDATemplate xmi:id="_uxkJ8CQNEeCxCon8a79rfA" base_Class="_s7LQECQNEeCxCon8a79rfA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.1.1"/>
  <CDA:ConformsTo xmi:id="_u-ucMCQNEeCxCon8a79rfA" base_Generalization="_s7L3ICQNEeCxCon8a79rfA" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_cosqoCQOEeCxCon8a79rfA" base_Constraint="_bfwsoCQOEeCxCon8a79rfA"/>
  <CDA:CDATemplate xmi:id="_Um_WoCQREeCxCon8a79rfA" base_Class="_R7NF0CQREeCxCon8a79rfA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.1.2"/>
  <CDA:ConformsTo xmi:id="_UzceQCQREeCxCon8a79rfA" base_Generalization="_R7Ns4CQREeCxCon8a79rfA" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_r9Y1UCQREeCxCon8a79rfA" base_Constraint="_rUcmACQREeCxCon8a79rfA"/>
  <CDA:ConstraintValidation xmi:id="_x2xw8CQZEeCxCon8a79rfA" base_Constraint="_wtsB8CQZEeCxCon8a79rfA"/>
  <CDA:ConstraintValidation xmi:id="__lifMCl4EeCXiupwzMk--A" base_Constraint="_-vm8wCl4EeCXiupwzMk--A"/>
  <CDA:CDATemplate xmi:id="_wsBhIHGfEd6bf47ZOcft4w" base_Class="_sFGZUHGfEd6bf47ZOcft4w" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.7" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="__nZfUHomEd6WAZ28-5wkSg" base_Class="_8YbB4HomEd6WAZ28-5wkSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.19" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_EJ4lUHyTEd6FS-4xbA1fBQ" base_Class="__HPx4HySEd6FS-4xbA1fBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.7.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_OCrPYHyTEd6FS-4xbA1fBQ" base_Class="_OCqBQHyTEd6FS-4xbA1fBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.8" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_OY9ocHyTEd6FS-4xbA1fBQ" base_Class="_OY9BYHyTEd6FS-4xbA1fBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.9" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_OeXs4HyTEd6FS-4xbA1fBQ" base_Class="_OeXF0HyTEd6FS-4xbA1fBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.10" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_QDIrQHyTEd6FS-4xbA1fBQ" base_Class="_QDIEMHyTEd6FS-4xbA1fBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.11" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wd6QFF6Ed-Lud-5SYZhMw" base_Generalization="_zZRrcHq8Ed68l9lQ-TLEBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wehUFF6Ed-Lud-5SYZhMw" base_Generalization="_KxUI4Hq9Ed68l9lQ-TLEBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wg9kFF6Ed-Lud-5SYZhMw" base_Generalization="_CsEjgHyTEd6FS-4xbA1fBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6whkoFF6Ed-Lud-5SYZhMw" base_Generalization="_OCqBQXyTEd6FS-4xbA1fBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wiLsFF6Ed-Lud-5SYZhMw" base_Generalization="_OY9BYXyTEd6FS-4xbA1fBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wiywFF6Ed-Lud-5SYZhMw" base_Generalization="_OeXF0XyTEd6FS-4xbA1fBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wjZ0FF6Ed-Lud-5SYZhMw" base_Generalization="_QDIEMXyTEd6FS-4xbA1fBQ" requiresParentId="true"/>
  <CDA:PropertyValidation xmi:id="_5h_YcO7MEd-iKq5sSX9U2w" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_GTptEO7NEd-iKq5sSX9U2w"/>
  <CDA:ConstraintValidation xmi:id="_GXveYEqMEeCTurDhhRqwBw" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_o0X_wEqOEeCTurDhhRqwBw" severity="INFO"/>
  <CDA:ConstraintValidation xmi:id="_fBt9cEqPEeCTurDhhRqwBw" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_VH0KAEqYEeCTurDhhRqwBw" base_Constraint="_PlDFAEqYEeCTurDhhRqwBw"/>
  <CDA:ConstraintValidation xmi:id="_mqldMEqYEeCTurDhhRqwBw" base_Constraint="_gvxroEqYEeCTurDhhRqwBw"/>
  <CDA:ConstraintValidation xmi:id="_5MNlUEqYEeCTurDhhRqwBw" base_Constraint="_wqJdoEqYEeCTurDhhRqwBw"/>
  <CDA:ConstraintValidation xmi:id="_D3UnsEqaEeCTurDhhRqwBw" base_Constraint="_NesAAEqZEeCTurDhhRqwBw"/>
  <CDA:ConstraintValidation xmi:id="_G42NEEqcEeCTurDhhRqwBw" base_Constraint="_AXxswEqcEeCTurDhhRqwBw"/>
  <CDA:ConstraintValidation xmi:id="_HrtNYEqcEeCTurDhhRqwBw" severity="INFO"/>
  <CDA:PropertyValidation xmi:id="_uix5w0qeEeCTurDhhRqwBw" severity="WARNING">
    <ruleId>CONF-308</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_zCuP0EqeEeCTurDhhRqwBw">
    <reference href="../../org.openhealthtools.mdht.uml.term.models/model/CodeSystems.uml#_df-9EaDqEd-dVeaMP0XXQw"/>
  </CDA:CodeSystemConstraint>
  <CDA:CDATemplate xmi:id="_lhFxcDuMEd-B8KE6Jx0UNQ" base_Class="_jZMQ0DuMEd-B8KE6Jx0UNQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.7.2" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wwOIFF6Ed-Lud-5SYZhMw" base_Generalization="_jZMQ0TuMEd-B8KE6Jx0UNQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_hDTpkOw7Ed-HcKrkbxroPA" base_Class="_e2pkwOw7Ed-HcKrkbxroPA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.7.3"/>
  <CDA:CDATemplate xmi:id="_q6cjUEqtEeCJlNjgFmcEiA" base_Class="_nzLQYEqtEeCJlNjgFmcEiA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.3"/>
  <CDA:ConformsTo xmi:id="_r2kSQEs6EeCAK_Z5vqvtzg" base_Generalization="_nzL3cEqtEeCJlNjgFmcEiA" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_BHEWgEquEeCJlNjgFmcEiA" base_Class="_0TsKoEqtEeCJlNjgFmcEiA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.4.1"/>
  <CDA:ConstraintValidation xmi:id="_Fm6jgEs-EeCAK_Z5vqvtzg" base_Constraint="_0gwT0Es9EeCAK_Z5vqvtzg">
    <ruleId>6.3.4.16.22</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConformsTo xmi:id="_wSMcIEtSEeCAK_Z5vqvtzg" base_Generalization="_e2pkwew7Ed-HcKrkbxroPA" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_wiCnQEtYEeCAK_Z5vqvtzg" severity="INFO" base_Constraint="_d0bRkEtYEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_22sU0EtbEeCAK_Z5vqvtzg" base_Constraint="_9Rse0EtaEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_3VXN0EtbEeCAK_Z5vqvtzg" base_Constraint="_3YIDYEtaEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="__k4M8EtbEeCAK_Z5vqvtzg" severity="WARNING" base_Constraint="_37lgUEtbEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_FtJLsEtcEeCAK_Z5vqvtzg" base_Constraint="_DBTQgEtcEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_uoyCwEtcEeCAK_Z5vqvtzg" base_Constraint="_RuNw4EtcEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_vEBNQEtcEeCAK_Z5vqvtzg" severity="WARNING" base_Constraint="_s0Z7EEtcEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_GfCGMEtdEeCAK_Z5vqvtzg" base_Constraint="_D4ilEEtdEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_mgvIIEtdEeCAK_Z5vqvtzg" severity="WARNING" base_Constraint="_kYMuUEtdEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_tdjJQEtdEeCAK_Z5vqvtzg" base_Constraint="_pjMMgEtdEeCAK_Z5vqvtzg"/>
  <CDA:CDATemplate xmi:id="_VkInoEteEeCAK_Z5vqvtzg" base_Class="_MD_HEEteEeCAK_Z5vqvtzg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.3.1"/>
  <CDA:ConformsTo xmi:id="_WEosoEteEeCAK_Z5vqvtzg" base_Generalization="_TgZOQEteEeCAK_Z5vqvtzg" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_HWz9kEtvEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_VfhZIEt5EeCAK_Z5vqvtzg" base_Constraint="_MWNEMEt5EeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_lgqaIEt8EeCAK_Z5vqvtzg" base_Constraint="_i0d5oEt8EeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_zSttYEt_EeCAK_Z5vqvtzg" base_Constraint="_pw4KwEt_EeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_GyXkAEuAEeCAK_Z5vqvtzg" severity="WARNING" base_Constraint="_fk_lkEt_EeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_dAbsMEuBEeCAK_Z5vqvtzg" severity="INFO" base_Constraint="_bYIRoEuBEeCAK_Z5vqvtzg"/>
  <CDA:ConstraintValidation xmi:id="_C8Gy4E9LEeCYjrG3z1gQrQ" base_Constraint="_yYE_4E9KEeCYjrG3z1gQrQ"/>
  <CDA:ConstraintValidation xmi:id="_Rnu50E9LEeCYjrG3z1gQrQ" severity="WARNING" base_Constraint="_JFsAQE9LEeCYjrG3z1gQrQ"/>
  <CDA:ConstraintValidation xmi:id="_UHuugBE0EeGQTKMzurBNQw" base_Constraint="_02CNMBEzEeGQTKMzurBNQw"/>
  <CDA:CDATemplate xmi:id="_JL93gHrEEd68l9lQ-TLEBQ" base_Class="_pOtQsHrDEd68l9lQ-TLEBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.5.3" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_ipVpwHrEEd68l9lQ-TLEBQ" base_Class="_gkbLsHrEEd68l9lQ-TLEBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.6" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_RMCSIHrUEd68l9lQ-TLEBQ" base_Class="_O7-UAHrUEd68l9lQ-TLEBQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.13" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wfIYFF6Ed-Lud-5SYZhMw" base_Generalization="_F7xSEHrEEd68l9lQ-TLEBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wfvcFF6Ed-Lud-5SYZhMw" base_Generalization="_kdkngHrEEd68l9lQ-TLEBQ" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wgWgFF6Ed-Lud-5SYZhMw" base_Generalization="_W-wesHrUEd68l9lQ-TLEBQ" requiresParentId="true"/>
  <CDA:ConstraintValidation xmi:id="_BJHpcFfqEeCQ8PeHNHg5Pw" base_Constraint="_5SaL4FfpEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_GkzPAFfqEeCQ8PeHNHg5Pw" severity="WARNING" base_Constraint="_CrT08FfqEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_lm5mYFfwEeCQ8PeHNHg5Pw" base_Constraint="_tE3pQFfvEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_20VysFgEEeCQ8PeHNHg5Pw" severity="INFO" base_Constraint="_yFyY4FgEEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_3WIRIFgEEeCQ8PeHNHg5Pw" severity="INFO" base_Constraint="_0xg_UFgEEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_Gn7qcFgJEeCQ8PeHNHg5Pw" base_Constraint="_Mi80MFgFEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_HGufQFgJEeCQ8PeHNHg5Pw" base_Constraint="_Suty4FgFEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_HkVBQFgJEeCQ8PeHNHg5Pw" base_Constraint="_ZIq-kFgFEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_sYJowOO-EeC0h71-rDFgKg" severity="INFO" base_Constraint="_vzvfwFfuEeCQ8PeHNHg5Pw"/>
  <CDA:ConstraintValidation xmi:id="_ujQOYOO-EeC0h71-rDFgKg" base_Constraint="_gj-UgFfvEeCQ8PeHNHg5Pw"/>
  <CDA:CDATemplate xmi:id="_pK8H0K4EEd6_ioDelDcPPg" base_Class="_iFB1EK4EEd6_ioDelDcPPg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.25" assigningAuthorityName="IHE PCC">
    <ruleId>6.3.3.4.4</ruleId>
  </CDA:CDATemplate>
  <CDA:CDATemplate xmi:id="_nVnHcK4QEd6_ioDelDcPPg" base_Class="_hVMdIK4QEd6_ioDelDcPPg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13.1" assigningAuthorityName="IHE PCC">
    <ruleId>6.3.4.21</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_6wkA4FF6Ed-Lud-5SYZhMw" base_Generalization="_lkJAQK4EEd6_ioDelDcPPg" requiresParentId="true">
    <ruleId>6.3.3.4.4.1</ruleId>
  </CDA:ConformsTo>
  <CDA:CDATemplate xmi:id="_WyKqoK4NEd6_ioDelDcPPg" base_Class="_LriUcK4NEd6_ioDelDcPPg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13.2" assigningAuthorityName="IHE PCC">
    <ruleId>6.3.4.22</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_6wkn8VF6Ed-Lud-5SYZhMw" base_Generalization="_PU_HYK4NEd6_ioDelDcPPg" requiresParentId="true">
    <ruleId>6.3.4.22.2</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_6wlPAFF6Ed-Lud-5SYZhMw" base_Generalization="_pcbyQDhCEd-RGdSGlf-Kow" requiresParentId="true">
    <ruleId>6.3.4.22.2</ruleId>
  </CDA:ConformsTo>
  <CDA:ConformsTo xmi:id="_6wmdIFF6Ed-Lud-5SYZhMw" base_Generalization="_j3GZMK4QEd6_ioDelDcPPg" requiresParentId="true">
    <ruleId>6.3.4.21.3</ruleId>
  </CDA:ConformsTo>
  <CDA:ConstraintValidation xmi:id="_ZRrgIDVUEeCCs-MhNzM4tg" base_Constraint="_U_kKsDVUEeCCs-MhNzM4tg">
    <ruleId>6.3.4.21.3</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_HksOEDVhEeCCs-MhNzM4tg">
    <ruleId>CONF-394</ruleId>
  </CDA:PropertyValidation>
  <CDA:CDATemplate xmi:id="_AG5QwK4GEd6_ioDelDcPPg" base_Class="_5k1R8K4FEd6_ioDelDcPPg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.5.3.2" assigningAuthorityName="IHE PCC">
    <ruleId>6.3.3.4.5</ruleId>
  </CDA:CDATemplate>
  <CDA:ConformsTo xmi:id="_6wkn8FF6Ed-Lud-5SYZhMw" base_Generalization="_8EJ0EK4FEd6_ioDelDcPPg" requiresParentId="true">
    <ruleId>6.3.3.4.5.1</ruleId>
  </CDA:ConformsTo>
  <CDA:CDATemplate xmi:id="_47pYcMfXEd6VjLXh4DcWSg" base_Class="_ynU6sMfXEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.5.3.7" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_gY1F8DXgEd-gpLhSMS7jpQ" base_Class="_PMrjADXgEd-gpLhSMS7jpQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.17" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wnEMFF6Ed-Lud-5SYZhMw" base_Generalization="_1MYRYMfXEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:ConformsTo xmi:id="_6wvAAFF6Ed-Lud-5SYZhMw" base_Generalization="_PMrjATXgEd-gpLhSMS7jpQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_ha_0wMfbEd6VjLXh4DcWSg" base_Class="_QD0tkMfbEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.8" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_3p31QMfcEd6VjLXh4DcWSg" base_Class="_iVB-oMfcEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.13.2.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_pVNnYMfdEd6VjLXh4DcWSg" base_Class="_XicJUMfdEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.1" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_xBuz4MftEd6VjLXh4DcWSg" base_Class="_jgutAMftEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.11" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wnrQFF6Ed-Lud-5SYZhMw" base_Generalization="_tTPI4MftEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_Yo-1cMfvEd6VjLXh4DcWSg" base_Class="_MvxLwMfvEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.3" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_8dy8oMfvEd6VjLXh4DcWSg" base_Class="_3ov5QMfvEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.7" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_8wKCgMfwEd6VjLXh4DcWSg" base_Class="_3Se44MfwEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.20" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_Wwx2UMfyEd6VjLXh4DcWSg" base_Class="_JAhygMfyEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.22" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_qXzq0MfzEd6VjLXh4DcWSg" base_Class="_bSHeEMfzEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.35" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wo5YFF6Ed-Lud-5SYZhMw" base_Generalization="_pXLUQMfzEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_Feu00Mf0Ed6VjLXh4DcWSg" base_Class="_fc6DgMfzEd6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.34" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wpgcFF6Ed-Lud-5SYZhMw" base_Generalization="_ovC9QMfzEd6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_VRj-8Mf1Ed6VjLXh4DcWSg" base_Class="_IAGv8Mf1Ed6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.24" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_RXTI0Mf1Ed6VjLXh4DcWSg" base_Class="_LGf5IMf1Ed6VjLXh4DcWSg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.9.15" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wqHgFF6Ed-Lud-5SYZhMw" base_Generalization="_Qnv7MMf1Ed6VjLXh4DcWSg" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_EocwAMiXEd6mWrHPmrIIfQ" base_Class="_6fSusMiWEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.18" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_Or_CwMidEd6mWrHPmrIIfQ" base_Class="_DO0b4MidEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.5" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_F1DB0MieEd6mWrHPmrIIfQ" base_Class="_-OeSAMidEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.28" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_w4x-UBj6EeCf9aMNaCAtDQ" base_Class="_hBLMcBj6EeCf9aMNaCAtDQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.4"/>
  <CDA:ConstraintValidation xmi:id="_MQX3cFWJEeCJpM11UriAaA" base_Constraint="_E31joFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_Ml6CkFWJEeCJpM11UriAaA" base_Constraint="_GzibUFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_M8TwYFWJEeCJpM11UriAaA" base_Constraint="_IB3PoFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_NS8HsFWJEeCJpM11UriAaA" base_Constraint="_J9BUwFWJEeCJpM11UriAaA"/>
  <CDA:ConstraintValidation xmi:id="_NojyYFWJEeCJpM11UriAaA" base_Constraint="_LRd_MFWJEeCJpM11UriAaA"/>
  <CDA:CDATemplate xmi:id="_ZzMV0MifEd6mWrHPmrIIfQ" base_Class="_SNPREMifEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.13.2.5" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_EGTWIMigEd6mWrHPmrIIfQ" base_Class="_BEcusMigEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.31" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wqukFF6Ed-Lud-5SYZhMw" base_Generalization="_DPCW8MigEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_ooeSkMigEd6mWrHPmrIIfQ" base_Class="_kKnAIMigEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.14" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wrVoFF6Ed-Lud-5SYZhMw" base_Generalization="_nplocMigEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_OvnowMihEd6mWrHPmrIIfQ" base_Class="_Kv5q4MihEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.3.16" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wr8sFF6Ed-Lud-5SYZhMw" base_Generalization="_Nt9-gMihEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_zF0wUMiiEd6mWrHPmrIIfQ" base_Class="_tY30kMiiEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.5.3.3" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wsjwFF6Ed-Lud-5SYZhMw" base_Generalization="_vuzKIMiiEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_SDC-EKsOEd-yFfcbpgNFIA" base_Class="_z__aIKsNEd-yFfcbpgNFIA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.14"/>
  <CDA:CDATemplate xmi:id="_hzU_8KsOEd-yFfcbpgNFIA" base_Class="_j6rjcKsNEd-yFfcbpgNFIA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.14" contextDependent="true"/>
  <CDA:CDATemplate xmi:id="_oVOmsKsOEd-yFfcbpgNFIA" base_Class="_pVIZ8KsNEd-yFfcbpgNFIA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.14" contextDependent="true"/>
  <CDA:CDATemplate xmi:id="_xkcAoMijEd6mWrHPmrIIfQ" base_Class="_tqabEMijEd6mWrHPmrIIfQ" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.5.3.5" assigningAuthorityName="IHE PCC"/>
  <CDA:ConformsTo xmi:id="_6wtK0FF6Ed-Lud-5SYZhMw" base_Generalization="_w6Wh0MijEd6mWrHPmrIIfQ" requiresParentId="true"/>
  <CDA:CDATemplate xmi:id="_AbOxUMwUEd-iJaPtkyVyKg" base_Class="_5GSkEMwTEd-iJaPtkyVyKg" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.20.2.3" assigningAuthorityName="IHE PCC"/>
  <CDA:CDATemplate xmi:id="_qO57wO0SEd-dJvThfIiQuA" base_Class="_oidBAO0SEd-dJvThfIiQuA" templateId="1.3.6.1.4.1.19376.1.5.3.1.1.5.3.4"/>
  <CDA:CDATemplate xmi:id="_Bo9PUO2rEd-dJvThfIiQuA" base_Class="_0UCcoO2qEd-dJvThfIiQuA" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.13.5"/>
  <Ecore:EPackage xmi:id="_Ft68ACWbEeGCz74CaMtvdQ" base_Package="_qQyD8jxVEd6JwqSGecoePg" packageName="ihe" nsPrefix="ihe" nsURI="http://www.openhealthtools.org/mdht/uml/cda/ihe" basePackage="org.openhealthtools.mdht.uml.cda" prefix="IHE">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation registryDelegate='IHERegistryDelegate'</annotation>
  </Ecore:EPackage>
  <Ecore:EClass xmi:id="_FuEtAiWbEeGCz74CaMtvdQ" base_Class="_ZEjk4Mf0Ed6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='IHEImmunizationsSectionTemplateId IHEImmunizationsSectionImmunization' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.23'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FuOeAiWbEeGCz74CaMtvdQ" base_Class="_quPDQMfyEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.21' constraints.validation.error='MedicationsAdministeredSectionTemplateId MedicationsAdministeredSectionCode' code.displayName='MEDICATION ADMINISTERED' code.codeSystem='2.16.840.1.113883.6.1' code.code='18610-6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FuXn9CWbEeGCz74CaMtvdQ" base_Class="_GgvgUDxbEd6JwqSGecoePg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ConcernEntryTemplateId ConcernEntryEffectiveTimeLowHigh ConcernEntryHasRelatedObservations ConcernEntryRelatedObservationsTypeCode ConcernEntryHasRelatedReferencesTypeCode ConcernEntryEffectiveTime' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.5.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FwKXsiWbEeGCz74CaMtvdQ" base_Class="_wDMM0GEHEd6bFO5yxRh3Nw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.1' constraints.validation.error='MedicalDocumentTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FwThoCWbEeGCz74CaMtvdQ" base_Class="_vz5koGGsEd6bFO5yxRh3Nw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ActiveProblemsSectionTemplateId ActiveProblemsSectionProblemConcernEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FwThoyWbEeGCz74CaMtvdQ" base_Class="_wSnPAGaQEd6Hk_bPOfEjYA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ProblemConcernEntryTemplateId ProblemConcernEntryProblemEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.5.2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FwThpiWbEeGCz74CaMtvdQ" base_Class="_3ZiEwGdIEd6Hk_bPOfEjYA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.5' constraints.validation.error='ProblemEntryTemplateId ProblemEntryHasTextReference ProblemEntryCommentInversionInd ProblemEntryId ProblemEntryText ProblemEntryValue' constraints.validation.info='ProblemEntrySeverity ProblemEntryProblemStatusObservation ProblemEntryHealthStatusObservation ProblemEntryComment' code.codeSystem='2.16.840.1.113883.6.96' constraints.validation.warning='ProblemEntryCode ProblemEntryEffectiveTime'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FyZMViWbEeGCz74CaMtvdQ" base_Class="_sFGZUHGfEd6bf47ZOcft4w">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.7' constraints.validation.error='MedicationTemplateId MedicationHasDosing MedicationDosingRelationship MedicationHasDescriptionNoMedNotKnown MedicationReasonClassMood MedicationHasProductEntry MedicationHasIntructionsInversion MedicationProductName MedicationHasSupplyEntryInversion MedicationCode MedicationStatusCode MedicationEffectiveTime' constraints.validation.info='MedicationPreconditionReference MedicationApproachSiteCode' code.codeSystem='2.16.840.1.113883.6.96' constraints.validation.warning='MedicationProductStrength MedicationHasFillNumber MedicationDoseQuantity MedicationRateQuantity'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_Fy_pRiWbEeGCz74CaMtvdQ" base_Class="_8YbB4HomEd6WAZ28-5wkSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='IHEMedicationsSectionTemplateId IHEMedicationsSectionMedication' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.19'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FzIzMiWbEeGCz74CaMtvdQ" base_Class="_pOtQsHrDEd68l9lQ-TLEBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='AllergyIntoleranceConcernTemplateId AllergyIntoleranceConcernAllergyIntolerance' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.5.3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FzIzNSWbEeGCz74CaMtvdQ" base_Class="_gkbLsHrEEd68l9lQ-TLEBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='ObservationIntoleranceType' constraints.validation.info='AllergyIntoleranceAllergySubstance AllergyIntoleranceAllergySubstanceParticipantRole AllergyIntoleranceAllergySubstancePlayingEntity AllergyIntoleranceProblemEntryReactionObservationContainer AllergyIntoleranceSeverity AllergyIntoleranceProblemStatusObservation AllergyIntoleranceComment' constraints.validation.error='AllergyIntoleranceTemplateId AllergyIntoleranceCodeCodeSystemRequired AllergyIntoleranceAllergySubstanceTypeCode AllergyIntoleranceAllergySubstanceParticipantRoleClassCode AllergyIntoleranceAllergySubstancePlayingEntityClassCode AllergyIntoleranceAllergySubstancePlayingEntityCode AllergyIntolerancePlayingEntityCodeReference ProblemEntryCode AllergyIntoleranceValue' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.6' code.codeSystem='2.16.840.1.113883.5.4' constraints.validation.warning='AllergyIntoleranceDisplayNameCodeName'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FzlfJCWbEeGCz74CaMtvdQ" base_Class="_O7-UAHrUEd68l9lQ-TLEBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='AllergiesReactionsSectionTemplateId AllergiesReactionsSectionAllergyIntoleranceConcern' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.13'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FzvQICWbEeGCz74CaMtvdQ" base_Class="__HPx4HySEd6FS-4xbA1fBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='NormalDoseTemplateId NormalDoseNoSubordinateSubstanceAdministration' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.7.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FzvQIyWbEeGCz74CaMtvdQ" base_Class="_OCqBQHyTEd6FS-4xbA1fBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='TaperedDoseTemplateId TaperedDoseTaperedDosingSubstanceAdministration' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.8'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_FzvQJiWbEeGCz74CaMtvdQ" base_Class="_OY9BYHyTEd6FS-4xbA1fBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='SplitDoseTemplateId SplitDoseSplitDosingSubstanceAdministration' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.9'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_Fz4aEiWbEeGCz74CaMtvdQ" base_Class="_OeXF0HyTEd6FS-4xbA1fBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ConditionalDoseTemplateId ConditionalDoseConditionalDosingSubstanceAdministration' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.10'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_Fz4aFSWbEeGCz74CaMtvdQ" base_Class="_QDIEMHyTEd6FS-4xbA1fBQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='CombinationMedicationTemplateId CombinationMedicationSubstanceAdministration' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.11'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F0VGCSWbEeGCz74CaMtvdQ" base_Class="_iFB1EK4EEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.25' constraints.validation.error='IHEVitalSignsSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F0e3AiWbEeGCz74CaMtvdQ" base_Class="_5k1R8K4FEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='CodedVitalSignsSectionTemplateId CodedVitalSignsSectionVitalSignsOrganizer' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.5.3.2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F0e3BSWbEeGCz74CaMtvdQ" base_Class="_LriUcK4NEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13.2' constraints.validation.error='VitalSignObservationTemplateId ResultObservationCode VitalSignObservationValue' constraints.validation.info='VitalSignObservationInterpretationCode VitalSignObservationMethodCode VitalSignObservationTargetSiteCode' code.codeSystem='2.16.840.1.113883.6.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F0xx8iWbEeGCz74CaMtvdQ" base_Class="_dLvb0K4NEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='SimpleObservationTemplateId SimpleObservationId SimpleObservationStatusCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13' statusCode.code='completed'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F07i8iWbEeGCz74CaMtvdQ" base_Class="_hVMdIK4QEd6_ioDelDcPPg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation classCode='CLUSTER' code.codeSystemName='SNOMEDCT' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13.1' constraints.validation.error='IHEVitalSignsOrganizerTemplateId IHEVitalSignsOrganizerRequireResultsOrganizerTemplateID IHEVitalSignsOrganizerClassCode ResultOrganizerCode IHEVitalSignsOrganizerEffectiveTime ResultOrganizerStatusCode IHEVitalSignsOrganizerId IHEVitalSignsOrganizerVitalSignObservation' code.displayName='Vital signs' statusCode.code='completed' code.codeSystem='2.16.840.1.113883.6.96' code.code='46680005'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F1hY2SWbEeGCz74CaMtvdQ" base_Class="_ynU6sMfXEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='IHEPayersSectionTemplateId' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.5.3.7' constraints.validation.warning='IHEPayersSectionCoverageEntry'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F1hY3CWbEeGCz74CaMtvdQ" base_Class="_QD0tkMfbEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.8' constraints.validation.error='HistoryOfPastIllnessSectionTemplateId HistoryOfPastIllnessSectionCode' code.displayName='HISTORY OF PAST ILLNESS' code.codeSystem='2.16.840.1.113883.6.1' code.code='11348-0'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F1rJ1CWbEeGCz74CaMtvdQ" base_Class="_iVB-oMfcEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.13.2.1' constraints.validation.error='ChiefComplaintSectionTemplateId ChiefComplaintSectionCode' code.displayName='CHIEF COMPLAINT' code.codeSystem='2.16.840.1.113883.6.1' code.code='10154-3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F10TwiWbEeGCz74CaMtvdQ" base_Class="_XicJUMfdEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.1' constraints.validation.error='ReasonForReferralSectionTemplateId ReasonForReferralSectionCode' code.displayName='REASON FOR REFERRAL' code.codeSystem='2.16.840.1.113883.6.1' code.code='42349-1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F1-EwiWbEeGCz74CaMtvdQ" base_Class="_jWj60MfhEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.4' constraints.validation.error='HistoryOfPresentIllnessTemplateId HistoryOfPresentIllnessCode' code.displayName='HISTORY OF PRESENT ILLNESS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10164-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2H1wCWbEeGCz74CaMtvdQ" base_Class="_jgutAMftEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.11' constraints.validation.error='SurgeriesSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2H1wyWbEeGCz74CaMtvdQ" base_Class="_9fsJYMftEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.12' constraints.validation.error='CodedSurgeriesSectionTemplateId CodedSurgeriesSectionProcedureEntryProcedureActivityProcedure' constraints.validation.warning='CodedSurgeriesSectionExternalReference'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2H1xiWbEeGCz74CaMtvdQ" base_Class="_MvxLwMfvEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.error='HospitalAdmissionDiagnosisSectionTemplateId HospitalAdmissionDiagnosisSectionCode HospitalAdmissionDiagnosisSectionProblemConcernEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.3' code.displayName='HOSPITAL ADMISSION DX' code.codeSystem='2.16.840.1.113883.6.1' code.code='46241-6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2Q_siWbEeGCz74CaMtvdQ" base_Class="_3ov5QMfvEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.error='DischargeDiagnosisSectionTemplateId DischargeDiagnosisSectionCode DischargeDiagnosisSectionProblemConcernEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.7' code.displayName='HOSPITAL DISCHARGE DX' code.codeSystem='2.16.840.1.113883.6.1' code.code='11535-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2awsiWbEeGCz74CaMtvdQ" base_Class="_3Se44MfwEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.20' constraints.validation.error='AdmissionMedicationHistorySectionTemplateId AdmissionMedicationHistorySectionCode' code.displayName='MEDICATIONS ON ADMISSION' code.codeSystem='2.16.840.1.113883.6.1' code.code='42346-7'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2khsCWbEeGCz74CaMtvdQ" base_Class="_JAhygMfyEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.error='HospitalDischargeMedicationsSectionTemplateId HospitalDischargeMedicationsSectionCode HospitalDischargeMedicationsSectionMedication' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.22' code.displayName='HOSPITAL DISCHARGE MEDICATIONS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10183-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2khtSWbEeGCz74CaMtvdQ" base_Class="_bSHeEMfzEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='CodedAdvanceDirectivesSectionTemplateId' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.35' constraints.validation.warning='CodedAdvanceDirectivesSectionAdvanceDirectivesObservation'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2troiWbEeGCz74CaMtvdQ" base_Class="_fc6DgMfzEd6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.34' constraints.validation.error='IHEAdvanceDirectivesSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F2trpSWbEeGCz74CaMtvdQ" base_Class="_IAGv8Mf1Ed6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.24' constraints.validation.error='PhysicalExamNarrativeSectionTemplateId PhysicalExamNarrativeSectionCode' code.displayName='PHYSICAL EXAMINATION' code.codeSystem='2.16.840.1.113883.6.1' code.code='29545-1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F23coiWbEeGCz74CaMtvdQ" base_Class="_LGf5IMf1Ed6VjLXh4DcWSg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='PhysicalExamSectionVitalSignsSection PhysicalExamSectionGeneralAppearanceSection PhysicalExamSectionVisibleImplantedMedicalDevicesSection PhysicalExamSectionIntegumentarySystemSection PhysicalExamSectionHeadSection PhysicalExamSectionEyesSection PhysicalExamSectionEarsNoseMouthThroatSection PhysicalExamSectionEarsSection PhysicalExamSectionNoseSection PhysicalExamSectionMouthThroatTeethSection PhysicalExamSectionNeckSection PhysicalExamSectionEndocrineSystemSection PhysicalExamSectionThoraxLungsSection PhysicalExamSectionChestWallSection PhysicalExamSectionBreastSection PhysicalExamSectionHeartSection PhysicalExamSectionRespiratorySystemSection PhysicalExamSectionAbdomenSection PhysicalExamSectionLymphaticSection PhysicalExamSectionVesselsSection PhysicalExamSectionMusculoskeletalSystemSection PhysicalExamSectionNeurologicSystemSection PhysicalExamSectionGenitaliaSection PhysicalExamSectionRectumSection PhysicalExamSectionExtremitiesSection' constraints.validation.error='PhysicalExamSectionTemplateId' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.15'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F23cpSWbEeGCz74CaMtvdQ" base_Class="_6fSusMiWEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.18' constraints.validation.error='ReviewOfSystemsSectionTemplateId ReviewOfSystemsSectionCode' code.displayName='REVIEW OF SYSTEMS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10187-3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3AmlCWbEeGCz74CaMtvdQ" base_Class="_DO0b4MidEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.5' constraints.validation.error='HospitalCourseSectionTemplateId HospitalCourseSectionCode' code.displayName='HOSPITAL COURSE' code.codeSystem='2.16.840.1.113883.6.1' code.code='8648-8'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3KXlCWbEeGCz74CaMtvdQ" base_Class="_-OeSAMidEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='CodedResultsSectionSimpleObservation' constraints.validation.error='CodedResultsSectionTemplateId CodedResultsSectionCode CodedResultsSectionProcedureEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.28' code.displayName='STUDIES SUMMARY' code.codeSystem='2.16.840.1.113883.6.1' code.code='30954-2' constraints.validation.warning='CodedResultsSectionExternalReference'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3UIkiWbEeGCz74CaMtvdQ" base_Class="_SNPREMifEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.13.2.5' constraints.validation.error='AssessmentAndPlanSectionTemplateId AssessmentAndPlanSectionCode' code.displayName='ASSESSMENT AND PLAN' code.codeSystem='2.16.840.1.113883.6.1' code.code='51847-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3dSgSWbEeGCz74CaMtvdQ" base_Class="_BEcusMigEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.31' constraints.validation.error='CarePlanSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3dShCWbEeGCz74CaMtvdQ" base_Class="_kKnAIMigEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.14' constraints.validation.error='FamilyMedicalHistorySectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3dShyWbEeGCz74CaMtvdQ" base_Class="_Kv5q4MihEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.16' constraints.validation.error='IHESocialHistorySectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3nDgiWbEeGCz74CaMtvdQ" base_Class="_tY30kMiiEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='EncounterHistorySectionTemplateId EncounterHistorySectionEncounterEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.5.3.3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3nDhSWbEeGCz74CaMtvdQ" base_Class="_tqabEMijEd6mWrHPmrIIfQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.5.3.5' constraints.validation.error='MedicalDevicesSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3nDiCWbEeGCz74CaMtvdQ" base_Class="_-uU7kDOtEd-5f4Yngl7nkw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.2.1' constraints.validation.error='IHELanguageCommunicationTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F3w0gCWbEeGCz74CaMtvdQ" base_Class="_fp-n0DOvEd-5f4Yngl7nkw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.error='MedicalSummaryTemplateId MedicalSummaryProblemConcernEntry MedicalSummaryAllergyConcernEntry MedicalSummaryMedications GeneralHeaderConstraintsCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.2' code.codeSystem='2.16.840.1.113883.6.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F35-ciWbEeGCz74CaMtvdQ" base_Class="_yq8-YDOvEd-5f4Yngl7nkw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.error='DischargeSummaryTemplateId GeneralHeaderConstraintsCode DischargeSummaryActiveProblemsSection' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.4' code.codeSystem='2.16.840.1.113883.6.1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F4DveSWbEeGCz74CaMtvdQ" base_Class="_PMrjADXgEd-gpLhSMS7jpQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='CoverageEntryTemplateId CoverageEntryPayerEntry' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.17'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F4M5ZyWbEeGCz74CaMtvdQ" base_Class="_4hu_kDuGEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.2.3' constraints.validation.error='HealthcareProvidersPharmaciesTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F4M5aiWbEeGCz74CaMtvdQ" base_Class="_aFDTUDuJEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation moodCode='EVN' code.codeSystemName='HL7ActCode' constraints.validation.error='ImmunizationTemplateId ImmunizationComments ImmunizationCode ImmunizationStatusCode ImmunizationMoodCode ImmunizationEffectiveTime' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.12' code.codeSystem='2.16.840.1.113883.5.4' code.code='IMMUNIZ'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F4gbaSWbEeGCz74CaMtvdQ" base_Class="_Q-mPsDuKEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.20.3.1' constraints.validation.error='ObservationRequestEntryTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F4gbbCWbEeGCz74CaMtvdQ" base_Class="_jZMQ0DuMEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.7.2' constraints.validation.error='ProductEntryTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F4plUCWbEeGCz74CaMtvdQ" base_Class="_uP4tkDuMEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation contextDependent='true' classCode='PROC' constraints.validation.info='ProcedureEntryApproachSiteCode ProcedureEntryInternalReference ProcedureEntryInternalReferenceReason' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.19' constraints.validation.error='ProcedureEntryTemplateId ProcedureEntryMoodCode ProcedureEntryHasTextReference ProcedureEntryPriorityCode ProcedureEntryHasInversionIndForEncounter ProcedureEntryClassCode ProcedureEntryText'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F5GRQiWbEeGCz74CaMtvdQ" base_Class="_9xEuEDuNEd-B8KE6Jx0UNQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation moodCode='INT' constraints.validation.error='ProcedureEntryPlanOfCareActivityProcedureMoodCode'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_F5GRRSWbEeGCz74CaMtvdQ" base_Generalization="_R_vjsEvdEd-GNbUQBie2ig"/>
  <Ecore:EClass xmi:id="_F5GRSCWbEeGCz74CaMtvdQ" base_Class="_R_uVkEvdEd-GNbUQBie2ig">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='IHECommentTemplateId IHECommentHasTextReference IHECommentEffectiveTimeWhenAuthorPresent IHECommentHasAuthorId IHECommentHasAuthorOrganization IHECommentStatusCode IHECommentText' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.2' statusCode.code='completed'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_F7L78iWbEeGCz74CaMtvdQ" base_Generalization="_8M5ZwVIvEd-4TsxSz4jnfg"/>
  <Ecore:EClass xmi:id="_F7L79SWbEeGCz74CaMtvdQ" base_Class="_8M5ZwFIvEd-4TsxSz4jnfg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.18' constraints.validation.error='PayerEntryTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F7Vs8iWbEeGCz74CaMtvdQ" base_Class="_5_3IwJvhEd-L4qx175J3dg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.5' constraints.validation.error='PHRExtractTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F7Vs9SWbEeGCz74CaMtvdQ" base_Class="_-P-6IJvhEd-L4qx175J3dg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.6' constraints.validation.error='PHRUpdateTemplateId'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_F7Vs9iWbEeGCz74CaMtvdQ" base_Generalization="_5BDgQKsNEd-yFfcbpgNFIA"/>
  <Ecore:EClass xmi:id="_F7e24CWbEeGCz74CaMtvdQ" base_Class="_j6rjcKsNEd-yFfcbpgNFIA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation contextDependent='true' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.14' constraints.validation.error='EncounterActivityTemplateId'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_F7e24SWbEeGCz74CaMtvdQ" base_Generalization="_882AYKsNEd-yFfcbpgNFIA"/>
  <Ecore:EClass xmi:id="_F7e25CWbEeGCz74CaMtvdQ" base_Class="_pVIZ8KsNEd-yFfcbpgNFIA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation contextDependent='true' constraints.validation.error='EncounterPlanOfCareTemplateId EncounterPlanOfCareMoodCodeValue' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.14'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F7e25yWbEeGCz74CaMtvdQ" base_Class="_z__aIKsNEd-yFfcbpgNFIA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation classCode='ENC' code.codeSystemName='ActEncounterCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.14' constraints.validation.error='EncounterEntryTemplateId EncounterEntryClassCode EncounterEntryId EncounterEntryText' code.codeSystem='2.16.840.1.113883.5.4' constraints.validation.warning='EncounterEntryCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F77i0CWbEeGCz74CaMtvdQ" base_Class="_5GSkEMwTEd-iJaPtkyVyKg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.20.2.3' constraints.validation.error='IntakeOutputSectionTemplateId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F77i2iWbEeGCz74CaMtvdQ" base_Class="_e2pkwOw7Ed-HcKrkbxroPA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.7.3' constraints.validation.error='SupplyEntryTemplateId SupplyEntryHasAuthorTime SupplyEntryHasAssignedAuthor SupplyEntryHasAssignedAuthorPersonOrOrg SupplyEntryHasPerformerTimeEvent SupplyEntryHasPerformerAssignedEntity SupplyEntryHasPerformerEntityPersonOrOrg SupplyEntryQuantityHasValue' constraints.validation.info='SupplyEntryHasIntentAuthor SupplyEntryMedicationFullfillmentInstructions' constraints.validation.warning='SupplyEntryHasAssignedAuthorID SupplyEntryHasPerformerTimeIntent SupplyEntryHasPerformerAssignedEntityID SupplyEntryQuantity SupplyEntryRepeatNumber'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F8YOxCWbEeGCz74CaMtvdQ" base_Class="_oidBAO0SEd-dJvThfIiQuA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.error='PregnancyHistorySectionTemplateId PregnancyHistorySectionCode PregnancyHistorySectionPregnancyObservation' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.5.3.4' code.displayName='HISTORY OF PREGNANCIES' code.codeSystem='2.16.840.1.113883.6.1' code.code='10162-6'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_F8h_wCWbEeGCz74CaMtvdQ" base_Generalization="_0UDDsO2qEd-dJvThfIiQuA"/>
  <Ecore:EClass xmi:id="_F8h_wyWbEeGCz74CaMtvdQ" base_Class="_0UCcoO2qEd-dJvThfIiQuA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13.5' constraints.validation.error='PregnancyObservationTemplateId PregnancyObservationCode PregnancyObservationInterpretationCode PregnancyObservationMethodCode PregnancyObservationRepeatNumber PregnancyObservationTargetSiteCode PregnancyObservationValue'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F806uSWbEeGCz74CaMtvdQ" base_Class="_NaTwIO3wEd-dJvThfIiQuA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation contextDependent='true' classCode='GUAR' code.codeSystemName='RoleCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.2.4' constraints.validation.error='PatientContactGuardianTemplateId PatientContactGuardianClassCode PatientContactGuardianCode' code.codeSystem='2.16.840.1.113883.5.111' constraints.validation.warning='PatientContactGuardianAddr PatientContactGuardianTelecom'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F9H1pCWbEeGCz74CaMtvdQ" base_Class="_ZY0wkO3wEd-dJvThfIiQuA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation contextDependent='true' typeCode='IND' constraints.validation.info='PatientContactParticipantTime' constraints.validation.error='PatientContactParticipantTemplateId PatientContactParticipantTypeCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.2.4'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F9RmpCWbEeGCz74CaMtvdQ" base_Class="_g76sEPG1Ed-FxO0PukiqhA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ScannedDocumentTemplateId ScannedDocumentTypeIdFixed ScannedDocumentHasOneRecordTarget ScannedDocumentHasAssignedAuthor ScannedDocumentPatientRoleId ScannedDocumentHasPatientRoleAddress ScannedDocumentHasPatientName ScannedDocumentHasPatientGenderCode ScannedDocumentHasPatientBirthYear ScannedDocumentHasScanningDevice ScannedDocumentHasScanDataEnterer ScannedDocumentHasRepresentedCustodianOrganizationName ScannedDocumentHasRepresentedCustodianOrganizationAddr ScannedDocumentLegalAuthenticatorAssignedEntityId ScannedDocumentHasNonXMLBody ScannedDocumentHasNonXMLBodyBinaryText ScannedDocumentHasNonXMLBodyTextMediaType ScannedDocumentHasNonXMLBodyTextRepresentation ScannedDocumentCode ScannedDocumentConfidentialityCode ScannedDocumentEffectiveTime ScannedDocumentId ScannedDocumentLanguageCode ScannedDocumentTypeId' templateId.root='1.3.6.1.4.1.19376.1.2.20' constraints.validation.warning='ScannedDocumentHasOriginalAuthor ScannedDocumentTitle'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F-BNhiWbEeGCz74CaMtvdQ" base_Class="_DVyVoPdQEd-aZohBEt6atA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.2.20.1' constraints.validation.error='ScanOriginalAuthorTemplateId' constraints.validation.warning='ScanOriginalAuthorHasAssignedAuthorId ScanOriginalAuthorHasAssignedAuthorRepresentedOrganizationId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F-KXciWbEeGCz74CaMtvdQ" base_Class="_QUckcPdQEd-aZohBEt6atA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.2.20.2' constraints.validation.error='ScanningDeviceTemplateId ScanningDeviceTimeEqualsDocumentEffectiveTime ScanningDeviceHasAssignedAuthorId ScanningDeviceHasAssignedAuthoringDeviceCode ScanningDeviceHasDeviceManufacturerModelName ScanningDeviceHasDeviceSoftwareName ScanningDeviceHasAssignedAuthorRepresentedOrganizationId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F-d5ciWbEeGCz74CaMtvdQ" base_Class="_f-SDcPd5Ed-I-P0qO6j1fA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='ScanDataEntererTemplateId ScanDataEntererTimeEqualsDocumentEffectiveTime ScanDataEntererHasAssignedEntityId ScanDataEntererTime' templateId.root='1.3.6.1.4.1.19376.1.2.20.3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F-w0YiWbEeGCz74CaMtvdQ" base_Class="_hBLMcBj6EeCf9aMNaCAtDQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation moodCode='EVN' classCode='ACT' constraints.validation.error='ExternalReferenceTemplateId ExternalReferenceHasNoCode ExternalReferenceHasReference ExternalReferenceHasReferenceExternalDocument ExternalReferenceHasReferenceExternalDocumentID ExternalReferenceHasReferenceExternalDocumentText ExternalReferenceClassCode ExternalReferenceMoodCode ExternalReferenceId ExternalReferenceText' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.4'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F_NgUCWbEeGCz74CaMtvdQ" base_Class="_MIoHYCQKEeCxCon8a79rfA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SeverityObservation' value.codeSystem='2.16.840.1.113883.5.1063' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.1' constraints.validation.error='SeverityTemplateId SeverityHasTextReference SeverityText SeverityObservationValue'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F_WqSSWbEeGCz74CaMtvdQ" base_Class="_s7LQECQNEeCxCon8a79rfA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SNOMEDCT' value.codeSystem='2.16.840.1.113883.6.96' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.1.1' constraints.validation.error='IHEProblemStatusObservationTemplateId IHEProblemStatusObservationHasTextReference IHEProblemStatusObservationText StatusObservationValue'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_F_qMSSWbEeGCz74CaMtvdQ" base_Class="_R7NF0CQREeCxCon8a79rfA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SNOMEDCT' value.codeSystem='2.16.840.1.113883.6.96' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.1.2' constraints.validation.error='HealthStatusObservationTemplateId HealthStatusObservationHasTextReference HealthStatusObservationText StatusObservationValue'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GAG4MCWbEeGCz74CaMtvdQ" base_Class="_nzLQYEqtEeCJlNjgFmcEiA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation classCode='ACT' code.codeSystemName='IHEActCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.3' constraints.validation.error='PatientMedicalInstructionsTemplateId PatientMedicalInstructionsClassCode PatientMedicalInstructionsCode PatientMedicalInstructionsStatusCode PatientMedicalInstructionsText' code.codeSystem='1.3.6.1.4.1.19376.1.5.3.2' code.code='PINSTRUCT'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GAQCJiWbEeGCz74CaMtvdQ" base_Class="_0TsKoEqtEeCJlNjgFmcEiA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.4.1' constraints.validation.error='InternalReferenceTemplateId InternalReferenceCode InternalReferenceId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GAZzLiWbEeGCz74CaMtvdQ" base_Class="_MD_HEEteEeCAK_Z5vqvtzg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='IHEActCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.3.1' constraints.validation.error='MedicationFullfillmentInstructionsTemplateId MedicationFullfillmentInstructionsCode MedicationFullfillmentInstructionsStatusCode MedicationFullfillmentInstructionsText' code.codeSystem='1.3.6.1.4.1.19376.1.5.3.2' code.code='FINSTRUCT'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GBJaByWbEeGCz74CaMtvdQ" base_Class="_nwrzcL4kEeCPGaGuS9U6tg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.33' constraints.validation.error='DischargeDietTemplateId DischargeDietCode' code.displayName='Discharge Diet' code.codeSystem='2.16.840.1.113883.6.1' code.code='42344-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GBTLASWbEeGCz74CaMtvdQ" base_Class="_dw0bkL4lEeCPGaGuS9U6tg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.26' constraints.validation.error='HospitalDischargePhysicalTemplateId HospitalDischargePhysicalCode' code.displayName='Hospital Discharge Physical' code.codeSystem='2.16.840.1.113883.6.1' code.code='10184-0'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GBcU_iWbEeGCz74CaMtvdQ" base_Class="_cSezgMgkEeCHk-lvWGDTdA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='CodedFamilyMedicalHistorySectionTemplateId CodedFamilyMedicalHistorySectionFamilyHistoryOrganizer' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.15'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GBmF8iWbEeGCz74CaMtvdQ" base_Class="_oapRoMhEEeCHk-lvWGDTdA">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='IHESocialHistoryObservationValue' constraints.validation.error='IHESocialHistoryObservationTemplateId' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13.4' constraints.validation.warning='IHESocialHistoryObservationNoRepeatNumber IHESocialHistoryObservationNoInterpretationCode IHESocialHistoryObservationNoMethodCode IHESocialHistoryObservationNoTargetSiteCode'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GBvP5CWbEeGCz74CaMtvdQ" base_Class="_7wLKkMkCEeChgrgmBsw26A">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='RoleCode' constraints.validation.info='IHEFamilyHistoryOrganizerHasParticipant' constraints.validation.error='IHEFamilyHistoryOrganizerTemplateId IHEFamilyHistoryOrganizerHasParticipantParticipantRole IHEFamilyHistoryOrganizerHasParticipantRoleCode IHEFamilyHistoryOrganizerHasParticipantRolePlayingEntity IHEFamilyHistoryOrganizerCode IHEFamilyHistoryOrganizerFamilyHistoryObservation' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.15' code.codeSystem='2.16.840.1.113883.5.111'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_GB5A4iWbEeGCz74CaMtvdQ" base_Generalization="_IOqkMckGEeChgrgmBsw26A"/>
  <Ecore:EClass xmi:id="_GCCx4SWbEeGCz74CaMtvdQ" base_Class="_IOqkMMkGEeChgrgmBsw26A">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' constraints.validation.error='IHEFamilyHistoryObservationTemplateId IHEFamilyHistoryObservationCode IHEFamilyHistoryObservationValue' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13.3' code.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GCL74CWbEeGCz74CaMtvdQ" base_Class="_JkYOEMzkEeCvbrjDQpuvkw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='SNOMEDCT' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.13.7' constraints.validation.error='IHEAdvanceDirectiveObservationTemplateId AdvanceDirectiveObservationCode IHEAdvanceDirectiveObservationRepeatNumber IHEAdvanceDirectiveObservationInterpretationCode IHEAdvanceDirectiveObservationTargetSiteCode' constraints.validation.info='IHEAdvanceDirectiveObservationHasExternalReference' code.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GConySWbEeGCz74CaMtvdQ" base_Class="_b0JLIM9KEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='1.3.6.1.4.1.19376.1.5.3.1.3.2' constraints.validation.error='CodedReasonForReferralSectionTemplateId CodedReasonForReferralSectionSimpleObservation CodedReasonForReferralSectionProblemEntry'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GCyYziWbEeGCz74CaMtvdQ" base_Class="_NwEIMM9REeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='GeneralAppearanceSectionProblemEntry' constraints.validation.error='GeneralAppearanceSectionTemplateId GeneralAppearanceSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.16' code.displayName='GENERAL STATUS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10210-3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GC7iuSWbEeGCz74CaMtvdQ" base_Class="_j2TmkM9REeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='VisibleImplantedMedicalDevicesSectionProblemEntry' constraints.validation.error='VisibleImplantedMedicalDevicesSectionTemplateId VisibleImplantedMedicalDevicesSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.48' code.displayName='Visible implanted medical devices' code.codeSystem='2.16.840.1.113883.6.1' code.code='XX-VisibleImplantedDevices'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GDFTuyWbEeGCz74CaMtvdQ" base_Class="_KhAVwM9SEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='IntegumentarySystemSectionProblemEntry' constraints.validation.error='IntegumentarySystemSectionTemplateId IntegumentarySystemSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.17' code.displayName='INTEGUMENTARY SYSTEM' code.codeSystem='2.16.840.1.113883.6.1' code.code='29302-7'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GDPEuyWbEeGCz74CaMtvdQ" base_Class="_tvofUM9VEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='HeadSectionProblemEntry' constraints.validation.error='HeadSectionTemplateId HeadSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.18' code.displayName='HEAD' code.codeSystem='2.16.840.1.113883.6.1' code.code='10199-8'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GDh_oCWbEeGCz74CaMtvdQ" base_Class="_AieTQM9WEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='EyesSectionProblemEntry' constraints.validation.error='EyesSectionTemplateId EyesSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.19' code.displayName='EYE' code.codeSystem='2.16.840.1.113883.6.1' code.code='10197-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GDrwoiWbEeGCz74CaMtvdQ" base_Class="_X4APQM9WEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='EarsNoseMouthThroatSectionProblemEntry' constraints.validation.error='EarsNoseMouthThroatSectionTemplateId EarsNoseMouthThroatSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.20' code.displayName='EARS and NOSE and MOUTH and THROAT' code.codeSystem='2.16.840.1.113883.6.1' code.code='11393-6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GD06lyWbEeGCz74CaMtvdQ" base_Class="_stnMMM9WEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='EarsSectionProblemEntry' constraints.validation.error='EarsSectionTemplateId EarsSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.21' code.displayName='EAR' code.codeSystem='2.16.840.1.113883.6.1' code.code='10195-6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GD-rmSWbEeGCz74CaMtvdQ" base_Class="_9L0rEM9WEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='NoseSectionProblemEntry' constraints.validation.error='NoseSectionTemplateId NoseSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.22' code.displayName='NOSE' code.codeSystem='2.16.840.1.113883.6.1' code.code='10203-8'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GEH1iSWbEeGCz74CaMtvdQ" base_Class="_UwOwkM9XEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='MouthThroatTeethSectionProblemEntry' constraints.validation.error='MouthThroatTeethSectionTemplateId MouthThroatTeethSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.23' code.displayName='MOUTH and THROAT and TEETH' code.codeSystem='2.16.840.1.113883.6.1' code.code='10201-2'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GERmiSWbEeGCz74CaMtvdQ" base_Class="_mMLqEM9XEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='NeckSectionProblemEntry' constraints.validation.error='NeckSectionTemplateId NeckSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.24' code.displayName='NECK' code.codeSystem='2.16.840.1.113883.6.1' code.code='11411-6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GEbXiyWbEeGCz74CaMtvdQ" base_Class="_zCJ28M9XEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='EndocrineSystemSectionProblemEntry' constraints.validation.error='EndocrineSystemSectionTemplateId EndocrineSystemSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.25' code.displayName='ENDOCRINE SYSTEM' code.codeSystem='2.16.840.1.113883.6.1' code.code='29307-6'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GEkheyWbEeGCz74CaMtvdQ" base_Class="_DAYOMM9YEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='ThoraxLungsSectionProblemEntry' constraints.validation.error='ThoraxLungsSectionTemplateId ThoraxLungsSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.26' code.displayName='THORAX+LUNGS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10207-9'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GEuSeyWbEeGCz74CaMtvdQ" base_Class="_IXiqsM9ZEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='ChestWallSectionProblemEntry' constraints.validation.error='ChestWallSectionTemplateId ChestWallSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.27' code.displayName='CHEST WALL' code.codeSystem='2.16.840.1.113883.6.1' code.code='11392-8'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GFBNYCWbEeGCz74CaMtvdQ" base_Class="_U4Y8IM9ZEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.28' constraints.validation.error='BreastSectionTemplateId BreastSectionCode' code.displayName='BREASTS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10193-1'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GFBNZSWbEeGCz74CaMtvdQ" base_Class="_deZvsM9ZEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='HeartSectionProblemEntry' constraints.validation.error='HeartSectionTemplateId HeartSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.29' code.displayName='HEART' code.codeSystem='2.16.840.1.113883.6.1' code.code='10200-4'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GFK-ayWbEeGCz74CaMtvdQ" base_Class="_C17m0M9aEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='RespiratorySystemSectionProblemEntry' constraints.validation.error='RespiratorySystemSectionTemplateId RespiratorySystemSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.30' code.displayName='RESPIRATORY SYSTEM' code.codeSystem='2.16.840.1.113883.6.1' code.code='11412-4'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GFUIWyWbEeGCz74CaMtvdQ" base_Class="_VnlH8M9aEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='AbdomenSectionProblemEntry' constraints.validation.error='AbdomenSectionTemplateId AbdomenSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.31' code.displayName='ABDOMEN' code.codeSystem='2.16.840.1.113883.6.1' code.code='10191-5'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GFd5WyWbEeGCz74CaMtvdQ" base_Class="_CbVgEM9bEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='LymphaticSectionProblemEntry' constraints.validation.error='LymphaticSectionTemplateId LymphaticSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.32' code.displayName='HEMATOLOGIC+LYMPHATIC+IMMUNOLOGIC SYSTEM' code.codeSystem='2.16.840.1.113883.6.1' code.code='11447-0'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GFw0QCWbEeGCz74CaMtvdQ" base_Class="_Rb0csM9bEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='VesselsSectionProblemEntry' constraints.validation.error='VesselsSectionTemplateId VesselsSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.33' code.displayName='VESSELS' code.codeSystem='2.16.840.1.113883.6.1' code.code='10208-7'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GF6lQiWbEeGCz74CaMtvdQ" base_Class="_fkNTsM9bEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='MusculoskeletalSystemSectionProblemEntry' constraints.validation.error='MusculoskeletalSystemSectionTemplateId MusculoskeletalSystemSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.34' code.displayName='MUSCULOSKELETAL SYSTEM' code.codeSystem='2.16.840.1.113883.6.1' code.code='11410-8'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GGEWRSWbEeGCz74CaMtvdQ" base_Class="_WMKJwM9cEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='NeurologicSystemSectionProblemEntry' constraints.validation.error='NeurologicSystemSectionTemplateId NeurologicSystemSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.35' code.displayName='NEUROLOGIC SYSTEM' code.codeSystem='2.16.840.1.113883.6.1' code.code='10202-0'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GGNgNyWbEeGCz74CaMtvdQ" base_Class="_iIjqUM9cEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='GenitaliaSectionProblemEntry' constraints.validation.error='GenitaliaSectionTemplateId GenitaliaSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.36' code.displayName='GENITALIA' code.codeSystem='2.16.840.1.113883.6.1' code.code='11400-9'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GGXRNyWbEeGCz74CaMtvdQ" base_Class="_ttJH0M9cEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='RectumSectionProblemEntry' constraints.validation.error='RectumSectionTemplateId RectumSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.9.37' code.displayName='RECTUM' code.codeSystem='2.16.840.1.113883.6.1' code.code='10205-3'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_GGgbKSWbEeGCz74CaMtvdQ" base_Class="_53FVIM9cEeCBIMy4xFlonQ">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystemName='LOINC' constraints.validation.info='ExtremitiesSectionProblemEntry' constraints.validation.error='ExtremitiesSectionTemplateId ExtremitiesSectionCode' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.1.16.2.1' code.displayName='EXTREMITIES' code.codeSystem='2.16.840.1.113883.6.1' code.code='10196-4'</annotation>
  </Ecore:EClass>
</xmi:XMI>
