<?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="apitest">
    <packageImport xmi:id="_JCoH8FccEeCzOKs2Ez1M5w">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_ii81kjxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_UbYI4FccEeCzOKs2Ez1M5w">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_qQyD8jxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_Y1gK0FccEeCzOKs2Ez1M5w">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_qQyD8jxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_eqGmsFccEeCzOKs2Ez1M5w">
      <importedPackage href="../../org.openhealthtools.mdht.uml.cda.hitsp.model/model/hitsp.uml#_qQyD8jxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_O-ELoFccEeCzOKs2Ez1M5w">
      <importedPackage href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_XgMSwzxVEd6JwqSGecoePg"/>
    </packageImport>
    <packageImport xmi:id="_R7HyoFccEeCzOKs2Ez1M5w">
      <importedPackage href="../../org.openhealthtools.mdht.uml.term.models/model/CodeSystems.uml#_KnCD4CFjEd-3s7f6mWX-3A"/>
    </packageImport>
    <packagedElement xmi:type="uml:Class" xmi:id="_CQJZEGCUEeCVapLQyCJtvg" name="StatusObservation">
      <ownedRule xmi:id="_CQJZFWCUEeCVapLQyCJtvg" name="StatusObservationNoAdditionalParticipants" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_CQJZFmCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.participant->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EZK7EmCUEeCVapLQyCJtvg" name="StatusObservationHasTextReference">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_MIoHYCQKEeCxCon8a79rfA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EZK7E2CUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIOVMGtdEeC-BPsUkomSRQ" name="StatusObservationTemplateId" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIOVMWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.1.57')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rITNsGtdEeC-BPsUkomSRQ" name="StatusObservationClassCode" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rITNsWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.classCode=vocab::ActClassObservation::OBS</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIVC4GtdEeC-BPsUkomSRQ" name="StatusObservationMoodCode" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIVC4WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIXfIGtdEeC-BPsUkomSRQ" name="StatusObservationStatusCode" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIXfIWtdEeC-BPsUkomSRQ">
          <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="_rIbJgGtdEeC-BPsUkomSRQ" name="StatusObservationValue" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIbJgWtdEeC-BPsUkomSRQ">
          <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::CE)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIeM0GtdEeC-BPsUkomSRQ" name="StatusObservationText" constrainedElement="_CQJZEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIeM0WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_CQcUAGCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EXNMMGCUEeCVapLQyCJtvg" name="Condition">
      <ownedComment xmi:id="_EaM10GCUEeCVapLQyCJtvg">
        <body>A problem is a clinical statement that a clinician is particularly concerned about and wants to track. It has important patient management use cases (e.g. health records often present the problem list as a way of summarizing a patient's medical history).</body>
      </ownedComment>
      <ownedRule xmi:id="_EaFhE2CUEeCVapLQyCJtvg" name="ConditionEntryRelationshipRequired">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaFhFGCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.entryRelationship->isEmpty()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaHWQGCUEeCVapLQyCJtvg" name="ConditionSubjectOfTarget">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaHWQWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.getEntryRelationshipTargets(vocab::x_ActRelationshipEntryRelationship::SUBJ, cda::ClinicalStatement)->forAll(target : cda::ClinicalStatement | not target.oclIsUndefined() and &#xD;&#xA;  (target.oclIsKindOf(ccd::ProblemObservation) or target.oclIsKindOf(ccd::AlertObservation)))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaH9UGCUEeCVapLQyCJtvg" name="ConditionContainsProblemObservation">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaH9UWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.getSection().oclIsKindOf(ccd::ProblemSection) implies self.getObservations()&#xD;&#xA;   ->exists(obs : cda::Observation | obs.oclIsKindOf(ccd::ProblemObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaIkYGCUEeCVapLQyCJtvg" name="ConditionContainsAlertObservation">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaIkYWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.getSection().oclIsKindOf(ccd::AlertsSection) implies self.getObservations()&#xD;&#xA;   ->exists(obs : cda::Observation | obs.oclIsKindOf(ccd::AlertObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaJLcGCUEeCVapLQyCJtvg" name="ConditionContainsPatientAwareness">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaJLcWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.participant->one(partic : cda::Participant2 | partic.oclIsKindOf(ccd::PatientAwareness))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaKZkGCUEeCVapLQyCJtvg" name="ConditionEffectiveTimeLowHigh">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_GgvgUDxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaKZkWCUEeCVapLQyCJtvg">
          <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="_EXNMNWCUEeCVapLQyCJtvg" name="ConditionHasProviderTreatmentTime" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EXNMNmCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.performer->exists(p : cda::Performer2 | p.time.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIgCBWtdEeC-BPsUkomSRQ" name="ConditionTemplateId" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIgpEGtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.7')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIpL8GtdEeC-BPsUkomSRQ" name="ConditionClassCode" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIpzAGtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.classCode=vocab::x_ActClassDocumentEntryAct::ACT</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIroMGtdEeC-BPsUkomSRQ" name="ConditionMoodCode" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIroMWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_DocumentActMood::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rIuEcGtdEeC-BPsUkomSRQ" name="ConditionId" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIuEcWtdEeC-BPsUkomSRQ">
          <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="_rIyV4GtdEeC-BPsUkomSRQ" name="ConditionCodeNullFlavor" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rIyV4WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.code.oclIsUndefined() or self.code.isNullFlavorUndefined()) implies (self.code.nullFlavor = vocab::NullFlavor::NA)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rI4cgGtdEeC-BPsUkomSRQ" name="ConditionEffectiveTime" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rI4cgWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJSsMGtdEeC-BPsUkomSRQ" name="ConditionEpisodeObservation" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJSsMWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(apitest::EpisodeObservation))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLfroGtdEeC-BPsUkomSRQ" name="ConditionTreatingProvider" constrainedElement="_EXNMMGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLfroWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.performer->one(performer : cda::Performer2 | not performer.assignedEntity.oclIsUndefined() and performer.assignedEntity.oclIsKindOf(cda::AssignedEntity))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_EaNc4GCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_YiANsDxYEd6JwqSGecoePg"/>
      </generalization>
      <nestedClassifier xmi:type="uml:Class" xmi:id="_ncJSMGEvEeCE87GgfH3r_A" name="TreatingProvider">
        <ownedRule xmi:id="_rI98EGtdEeC-BPsUkomSRQ" name="TreatingProviderId" constrainedElement="_ncJSMGEvEeCE87GgfH3r_A">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rI98EWtdEeC-BPsUkomSRQ">
            <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="_ncJSMWEvEeCE87GgfH3r_A">
          <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_6qmVsEcDEd6besF9iFIJkQ"/>
        </generalization>
      </nestedClassifier>
      <ownedOperation xmi:id="_rJT6UGtdEeC-BPsUkomSRQ" name="getEpisodeObservation" isQuery="true" bodyCondition="_rJT6U2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rJT6U2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rJT6UGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJT6VGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::EpisodeObservation))->asSequence()->first().oclAsType(apitest::EpisodeObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rJT6UWtdEeC-BPsUkomSRQ" type="_EYCSoGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJT6UmtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rLS3VWtdEeC-BPsUkomSRQ" name="getConditionEntries" isQuery="true" bodyCondition="_rLTeYmtdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLTeYmtdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLS3VWtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLTeY2tdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::ConditionEntry)).oclAsType(apitest::ConditionEntry)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLTeYGtdEeC-BPsUkomSRQ" type="_EYQVEGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLTeYWtdEeC-BPsUkomSRQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rLhg0GtdEeC-BPsUkomSRQ" name="getTreatingProvider" isQuery="true" bodyCondition="_rLhg02tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLhg02tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLhg0GtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLhg1GtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getAssignedEntities()->select(assignedEntity : cda::AssignedEntity | not assignedEntity.oclIsUndefined() and assignedEntity.oclIsKindOf(cda::AssignedEntity))->asSequence()->first().oclAsType(cda::AssignedEntity)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLhg0WtdEeC-BPsUkomSRQ" direction="return">
          <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_6qmVsEcDEd6besF9iFIJkQ"/>
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLhg0mtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EYCSoGCUEeCVapLQyCJtvg" name="EpisodeObservation">
      <ownedComment xmi:id="_EYCSoWCUEeCVapLQyCJtvg">
        <body>Episode observations are used to distinguish among multiple occurrences of a problem or social history item. An episode observation is used to indicate that a problem act represents a new episode, distinct from other episodes of a similar concern.</body>
      </ownedComment>
      <ownedRule xmi:id="_EYCSpGCUEeCVapLQyCJtvg" name="EpisodeObservationOneEntryRelationshipSUBJ" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EYCSpWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.getEntryRelationshipTargets(vocab::x_ActRelationshipEntryRelationship::SUBJ, ccd::ProblemAct)->size() = 1&#xD;&#xA;  or self.getEntryRelationshipTargets(vocab::x_ActRelationshipEntryRelationship::SUBJ, ccd::SocialHistoryObservation)->size() = 1</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EYCSpmCUEeCVapLQyCJtvg" name="EpisodeObservationExistsEntryRelationshipSAS" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EYCSp2CUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.getEntryRelationshipTargets(vocab::x_ActRelationshipEntryRelationship::SAS, ccd::ProblemAct)->size() >0&#xD;&#xA;  or self.getEntryRelationshipTargets(vocab::x_ActRelationshipEntryRelationship::SAS, ccd::SocialHistoryObservation)->size() > 0</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rI_KM2tdEeC-BPsUkomSRQ" name="EpisodeObservationTemplateId" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rI_KNGtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.1.41')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJDboGtdEeC-BPsUkomSRQ" name="EpisodeObservationClassCode" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJDboWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.classCode=vocab::ActClassObservation::OBS</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJFQ0GtdEeC-BPsUkomSRQ" name="EpisodeObservationMoodCode" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJFQ0WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJI7MGtdEeC-BPsUkomSRQ" name="EpisodeObservationCode" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJJiQGtdEeC-BPsUkomSRQ">
          <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 = 'ASSERTION' and value.codeSystem = '2.16.840.1.113883.5.4'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJMlkGtdEeC-BPsUkomSRQ" name="EpisodeObservationStatusCode" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJMlkWtdEeC-BPsUkomSRQ">
          <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="_rJQ3AGtdEeC-BPsUkomSRQ" name="EpisodeObservationValue" constrainedElement="_EYCSoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJQ3AWtdEeC-BPsUkomSRQ">
          <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.code = '404684003' and value.codeSystem = '2.16.840.1.113883.6.96'))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_EYN40GCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EYQVEGCUEeCVapLQyCJtvg" name="ConditionEntry">
      <ownedComment xmi:id="_EaE6AGCUEeCVapLQyCJtvg">
        <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="_EaBPoGCUEeCVapLQyCJtvg" name="ConditionEntryInformationSource">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_IjIO0DxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaBPoWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.informant->isEmpty() &#xD;&#xA;or not self.getSection().informant->isEmpty()&#xD;&#xA;or not self.getClinicalDocument().informant->isEmpty()&#xD;&#xA;or self.reference->exists(ref : cda::Reference | ref.typeCode = vocab::x_ActRelationshipExternalReference::XCRPT)&#xD;&#xA;or (self.entryRelationship->exists(rel : cda::EntryRelationship | &#xD;&#xA;   rel.typeCode = vocab::x_ActRelationshipEntryRelationship::REFR&#xD;&#xA;   and rel.observation.code.code = '48766-0'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaB2sGCUEeCVapLQyCJtvg" name="ConditionEntryContainsPatientAwareness">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ccd/model/ccd_Ecore.uml#_IjIO0DxbEd6JwqSGecoePg"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaB2sWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>self.participant->one(partic : cda::Participant2 | partic.oclIsKindOf(ccd::PatientAwareness))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaDE0GCUEeCVapLQyCJtvg" name="ConditionEntryHasTextReference">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_MIoHYCQKEeCxCon8a79rfA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaDE0WCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EaDr4GCUEeCVapLQyCJtvg" name="ConditionEntryCommentInversionInd">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_3ZiEwGdIEd6Hk_bPOfEjYA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EaDr4WCUEeCVapLQyCJtvg">
          <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="_EYQVEmCUEeCVapLQyCJtvg" name="ConditionEntryHasOnsetDate" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EYQVE2CUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.effectiveTime.low.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EYQVFGCUEeCVapLQyCJtvg" name="ConditionEntryHasResolutionDate" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EYQVFWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.effectiveTime.high.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EYQVFmCUEeCVapLQyCJtvg" name="ConditionEntryHasUnknownResolutionDate" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EYQVF2CUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.effectiveTime.high.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJUhY2tdEeC-BPsUkomSRQ" name="ConditionEntryTemplateId" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJUhZGtdEeC-BPsUkomSRQ">
          <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="_rJdEQGtdEeC-BPsUkomSRQ" name="ConditionEntryMoodCode" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJdEQWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJgHkGtdEeC-BPsUkomSRQ" name="ConditionEntryId" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJgHkWtdEeC-BPsUkomSRQ">
          <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="_rJkZAGtdEeC-BPsUkomSRQ" name="ConditionEntryCode" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJkZAWtdEeC-BPsUkomSRQ">
          <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="_rJncUGtdEeC-BPsUkomSRQ" name="ConditionEntryText" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJncUWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJqfoGtdEeC-BPsUkomSRQ" name="ConditionEntryStatusCode" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJqfoWtdEeC-BPsUkomSRQ">
          <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="_rJti8GtdEeC-BPsUkomSRQ" name="ConditionEntryEffectiveTime" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJti8WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.effectiveTime.oclIsUndefined() or self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJx0YGtdEeC-BPsUkomSRQ" name="ConditionEntryValue" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJx0YWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (self.value->size() = 1 and self.value->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and &#xD;&#xA;let value : datatypes::CD = element.oclAsType(datatypes::CD) in &#xD;&#xA;value.codeSystem = '2.16.840.1.113883.6.96' and not value.code.oclIsUndefined()))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKK18GtdEeC-BPsUkomSRQ" name="ConditionEntryAgeObservation" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKK18WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(apitest::AgeObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKhbQGtdEeC-BPsUkomSRQ" name="ConditionEntrySeverity" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKhbQWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(apitest::Severity))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKuPkGtdEeC-BPsUkomSRQ" name="ConditionEntryProblemStatusObservation" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKuPkWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(apitest::ProblemStatusObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::REFR)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rK6c0GtdEeC-BPsUkomSRQ" name="ConditionEntryHealthStatusObservation" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rK6c0WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(apitest::HealthStatusObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::REFR)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLRCIGtdEeC-BPsUkomSRQ" name="ConditionEntryComment" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLRpMGtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->exists(entryRelationship : cda::EntryRelationship | not entryRelationship.act.oclIsUndefined() and entryRelationship.act.oclIsKindOf(apitest::Comment) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::SUBJ)</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLwKUGtdEeC-BPsUkomSRQ" name="ConditionEntryCauseOfDeathObservation" constrainedElement="_EYQVEGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLwKUWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.observation.oclIsUndefined() and entryRelationship.observation.oclIsKindOf(apitest::CauseOfDeathObservation) and entryRelationship.typeCode = vocab::x_ActRelationshipEntryRelationship::CAUS)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_EaE6AWCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_rKMEEGtdEeC-BPsUkomSRQ" name="getAgeObservation" isQuery="true" bodyCondition="_rKMEE2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rKMEE2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rKMEEGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKMEFGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::AgeObservation))->asSequence()->first().oclAsType(apitest::AgeObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rKMEEWtdEeC-BPsUkomSRQ" type="_EYoIgGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKMEEmtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rKipYGtdEeC-BPsUkomSRQ" name="getSeverity" isQuery="true" bodyCondition="_rKipY2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rKipY2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rKipYGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKipZGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::Severity))->asSequence()->first().oclAsType(apitest::Severity)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rKipYWtdEeC-BPsUkomSRQ" type="_EY6cYGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKipYmtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rKvdsGtdEeC-BPsUkomSRQ" name="getProblemStatusObservation" isQuery="true" bodyCondition="_rKvds2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rKvds2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rKvdsGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKvdtGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::ProblemStatusObservation))->asSequence()->first().oclAsType(apitest::ProblemStatusObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rKvdsWtdEeC-BPsUkomSRQ" type="_EZK7EGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKvdsmtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rK7q8GtdEeC-BPsUkomSRQ" name="getHealthStatusObservation" isQuery="true" bodyCondition="_rK7q82tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rK7q82tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rK7q8GtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rK8SAGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::HealthStatusObservation))->asSequence()->first().oclAsType(apitest::HealthStatusObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rK7q8WtdEeC-BPsUkomSRQ" type="_EZXvYmCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rK7q8mtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rLS3UGtdEeC-BPsUkomSRQ" name="getComments" isQuery="true" bodyCondition="_rLS3U2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLS3U2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLS3UGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLS3VGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(apitest::Comment)).oclAsType(apitest::Comment)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLS3UWtdEeC-BPsUkomSRQ" type="_EZttoGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLS3UmtdEeC-BPsUkomSRQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
      <ownedOperation xmi:id="_rLxYcGtdEeC-BPsUkomSRQ" name="getCauseOfDeathObservation" isQuery="true" bodyCondition="_rLxYc2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLxYc2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLxYcGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLxYdGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::CauseOfDeathObservation))->asSequence()->first().oclAsType(apitest::CauseOfDeathObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLxYcWtdEeC-BPsUkomSRQ" type="_vBHtcGFZEeCE87GgfH3r_A" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLxYcmtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EYoIgGCUEeCVapLQyCJtvg" name="AgeObservation">
      <ownedComment xmi:id="_EYoIgWCUEeCVapLQyCJtvg">
        <body>A common scenario is that a patient will know the age of a relative when they had a certain condition or when they died, but will not know the actual year (e.g. &quot;grandpa died of a heart attack at the age of 50&quot;). Often times, neither precise dates nor ages are known (e.g. &quot;cousin died of congenital heart disease as an infant&quot;). In all cases, dates and times and ages can be expressed in narrative.</body>
      </ownedComment>
      <ownedRule xmi:id="_EYoIgmCUEeCVapLQyCJtvg" name="AgeObservationRelatedSubjectBirthTime" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EYoIg2CUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.subject.relatedSubject.subject.birthTime.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJ5JJGtdEeC-BPsUkomSRQ" name="AgeObservationTemplateId" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJ5wMGtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.1.38')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rJ-osGtdEeC-BPsUkomSRQ" name="AgeObservationClassCode" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rJ-osWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.classCode=vocab::ActClassObservation::OBS</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKAd4GtdEeC-BPsUkomSRQ" name="AgeObservationMoodCode" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKAd4WtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKC6IGtdEeC-BPsUkomSRQ" name="AgeObservationCode" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKC6IWtdEeC-BPsUkomSRQ">
          <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 = '397659008' and value.codeSystem = '2.16.840.1.113883.6.96'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKF9cGtdEeC-BPsUkomSRQ" name="AgeObservationStatusCode" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKF9cWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.statusCode.oclIsUndefined() or self.statusCode.isNullFlavorUndefined()) implies (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="_rKJAwGtdEeC-BPsUkomSRQ" name="AgeObservationValue" constrainedElement="_EYoIgGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKJAwWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.value->isEmpty() or self.value->exists(element | element.isNullFlavorUndefined())) implies (self.value->size() = 1)</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_EY4nMGCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EY6cYGCUEeCVapLQyCJtvg" name="Severity">
      <ownedComment xmi:id="_EY6cYWCUEeCVapLQyCJtvg">
        <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="_EY6cYmCUEeCVapLQyCJtvg" name="SeverityHasTextReference" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EY6cY2CUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKMrIGtdEeC-BPsUkomSRQ" name="SeverityTemplateId" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKMrIWtdEeC-BPsUkomSRQ">
          <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="_rKPHYGtdEeC-BPsUkomSRQ" name="SeverityClassCode" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKPHYWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.classCode=vocab::ActClassObservation::OBS</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKQ8kGtdEeC-BPsUkomSRQ" name="SeverityMoodCode" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKQ8kWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKTY0GtdEeC-BPsUkomSRQ" name="SeverityCode" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKTY0WtdEeC-BPsUkomSRQ">
          <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 = 'SEV' and value.codeSystem = '2.16.840.1.113883.5.4'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKXDMGtdEeC-BPsUkomSRQ" name="SeverityText" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKXDMWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKaGgGtdEeC-BPsUkomSRQ" name="SeverityStatusCode" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKaGgWtdEeC-BPsUkomSRQ">
          <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="_rKe_AGtdEeC-BPsUkomSRQ" name="SeverityValue" constrainedElement="_EY6cYGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKe_AWtdEeC-BPsUkomSRQ">
          <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="_EZJF4GCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EZK7EGCUEeCVapLQyCJtvg" name="ProblemStatusObservation">
      <ownedComment xmi:id="_EZK7EWCUEeCVapLQyCJtvg">
        <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="_rKj3gGtdEeC-BPsUkomSRQ" name="StatusObservationTemplateId" constrainedElement="_EZK7EGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKj3gWtdEeC-BPsUkomSRQ">
          <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="_rKm60GtdEeC-BPsUkomSRQ" name="ProblemStatusObservationCode" constrainedElement="_EZK7EGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKm60WtdEeC-BPsUkomSRQ">
          <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 = '33999-4' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rKrzUGtdEeC-BPsUkomSRQ" name="StatusObservationValue" constrainedElement="_EZK7EGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKrzUWtdEeC-BPsUkomSRQ">
          <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="_EZWhQGCUEeCVapLQyCJtvg" general="_CQJZEGCUEeCVapLQyCJtvg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EZXvYmCUEeCVapLQyCJtvg" name="HealthStatusObservation">
      <ownedComment xmi:id="_EZXvY2CUEeCVapLQyCJtvg">
        <body>The health status observation records information about the current health status of the patient.</body>
      </ownedComment>
      <ownedRule xmi:id="_rKwr0GtdEeC-BPsUkomSRQ" name="StatusObservationTemplateId" constrainedElement="_EZXvYmCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKwr0WtdEeC-BPsUkomSRQ">
          <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="_rKzIEGtdEeC-BPsUkomSRQ" name="HealthStatusObservationCode" constrainedElement="_EZXvYmCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rKzIEWtdEeC-BPsUkomSRQ">
          <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 = '11323-3' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rK4noGtdEeC-BPsUkomSRQ" name="StatusObservationValue" constrainedElement="_EZXvYmCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rK4noWtdEeC-BPsUkomSRQ">
          <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="_EZr4cGCUEeCVapLQyCJtvg" general="_CQJZEGCUEeCVapLQyCJtvg"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EZttoGCUEeCVapLQyCJtvg" name="Comment">
      <ownedComment xmi:id="_EaABgWCUEeCVapLQyCJtvg">
        <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></body>
      </ownedComment>
      <ownedRule xmi:id="_EZ8-MGCUEeCVapLQyCJtvg" name="CommentHasTextReference">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_MIoHYCQKEeCxCon8a79rfA"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EZ8-MWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.text.reference.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_EZ9lQGCUEeCVapLQyCJtvg" name="CommentEffectiveTimeWhenAuthorPresent">
        <constrainedElement xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda.ihe/model/ihe_Ecore.uml#_R_uVkEvdEd-GNbUQBie2ig"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_EZ9lQWCUEeCVapLQyCJtvg">
          <language>OCL</language>
          <body>not self.author->isEmpty() implies not self.effectiveTime.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rK8SBWtdEeC-BPsUkomSRQ" name="CommentTemplateId" constrainedElement="_EZttoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rK8SBmtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.11')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLCYoGtdEeC-BPsUkomSRQ" name="CommentClassCode" constrainedElement="_EZttoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLCYoWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.classCode=vocab::x_ActClassDocumentEntryAct::ACT</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLDmwGtdEeC-BPsUkomSRQ" name="CommentMoodCode" constrainedElement="_EZttoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLDmwWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.moodCode=vocab::x_DocumentActMood::EVN</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLGqEGtdEeC-BPsUkomSRQ" name="CommentCode" constrainedElement="_EZttoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLGqEWtdEeC-BPsUkomSRQ">
          <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 = '48767-8' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLKUcGtdEeC-BPsUkomSRQ" name="CommentText" constrainedElement="_EZttoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLKUcWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.text.oclIsUndefined() or self.text.isNullFlavorUndefined()) implies (not self.text.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLMwsGtdEeC-BPsUkomSRQ" name="CommentStatusCode" constrainedElement="_EZttoGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLNXwGtdEeC-BPsUkomSRQ">
          <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="_EaABgmCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_YiANsDxYEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_EaOrAGCUEeCVapLQyCJtvg" name="ProblemListSection">
      <ownedComment xmi:id="_EaYcAGCUEeCVapLQyCJtvg">
        <body>This section lists and describes all relevant clinical problems at the time the summary is generated. At a minimum, all pertinent current and historical problems should be listed. CDA R2 represents problems as Observations.</body>
      </ownedComment>
      <ownedRule xmi:id="_rLUFcGtdEeC-BPsUkomSRQ" name="ProblemListSectionTemplateId" constrainedElement="_EaOrAGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLUFcWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.3.88.11.83.103')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLXIwGtdEeC-BPsUkomSRQ" name="ProblemListSectionCode" constrainedElement="_EaOrAGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLXIwWtdEeC-BPsUkomSRQ">
          <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 = '11450-4' and value.codeSystem = '2.16.840.1.113883.6.1'))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLaMEGtdEeC-BPsUkomSRQ" name="ProblemListSectionTitle" constrainedElement="_EaOrAGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLaMEWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>(self.title.oclIsUndefined() or self.title.isNullFlavorUndefined()) implies (not self.title.oclIsUndefined())</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLcoUGtdEeC-BPsUkomSRQ" name="ProblemListSectionText" constrainedElement="_EaOrAGCUEeCVapLQyCJtvg">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLcoUWtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>not self.text.oclIsUndefined()</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_EaYcAmCUEeCVapLQyCJtvg">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_rLfEkGtdEeC-BPsUkomSRQ" name="getConditions" isQuery="true" bodyCondition="_rLfEk2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLfEk2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLfEkGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLfElGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getActs()->select(act : cda::Act | not act.oclIsUndefined() and act.oclIsKindOf(apitest::Condition)).oclAsType(apitest::Condition)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLfEkWtdEeC-BPsUkomSRQ" type="_EXNMMGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLfEkmtdEeC-BPsUkomSRQ" value="*"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_szdjEGFZEeCE87GgfH3r_A" name="FamilyHistoryObservation">
      <ownedRule xmi:id="_rLiH4WtdEeC-BPsUkomSRQ" name="FamilyHistoryObservationTemplateId" constrainedElement="_szdjEGFZEeCE87GgfH3r_A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLiH4mtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.1.22')</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_rLmZUGtdEeC-BPsUkomSRQ" name="FamilyHistoryObservationId" constrainedElement="_szdjEGFZEeCE87GgfH3r_A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLmZUWtdEeC-BPsUkomSRQ">
          <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="_rLqDsGtdEeC-BPsUkomSRQ" name="FamilyHistoryObservationStatusCode" constrainedElement="_szdjEGFZEeCE87GgfH3r_A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLqDsWtdEeC-BPsUkomSRQ">
          <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="_szk30GFZEeCE87GgfH3r_A">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
      </generalization>
      <ownedOperation xmi:id="_rLsf8GtdEeC-BPsUkomSRQ" name="getAgeObservation" isQuery="true" bodyCondition="_rLsf82tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLsf82tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLsf8GtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLsf9GtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::AgeObservation))->asSequence()->first().oclAsType(apitest::AgeObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLsf8WtdEeC-BPsUkomSRQ" type="_EYoIgGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLsf8mtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_vBHtcGFZEeCE87GgfH3r_A" name="CauseOfDeathObservation">
      <ownedRule xmi:id="_rLtHAWtdEeC-BPsUkomSRQ" name="FamilyHistoryObservationTemplateId" constrainedElement="_vBHtcGFZEeCE87GgfH3r_A">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLtHAmtdEeC-BPsUkomSRQ">
          <language>OCL</language>
          <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.1.42')</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_vBJioGFZEeCE87GgfH3r_A" general="_szdjEGFZEeCE87GgfH3r_A"/>
      <ownedOperation xmi:id="_rLx_gGtdEeC-BPsUkomSRQ" name="getAPITestAgeObservation" isQuery="true" bodyCondition="_rLx_g2tdEeC-BPsUkomSRQ">
        <ownedRule xmi:id="_rLx_g2tdEeC-BPsUkomSRQ" name="body" constrainedElement="_rLx_gGtdEeC-BPsUkomSRQ">
          <specification xmi:type="uml:OpaqueExpression" xmi:id="_rLx_hGtdEeC-BPsUkomSRQ">
            <language>OCL</language>
            <body>self.getObservations()->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(apitest::AgeObservation))->asSequence()->first().oclAsType(apitest::AgeObservation)</body>
          </specification>
        </ownedRule>
        <ownedParameter xmi:id="_rLx_gWtdEeC-BPsUkomSRQ" type="_EYoIgGCUEeCVapLQyCJtvg" direction="return">
          <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLx_gmtdEeC-BPsUkomSRQ" value="1"/>
        </ownedParameter>
      </ownedOperation>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_QBOBkGFrEeCrVK9xDfPNKw" name="PatientSummary">
      <generalization xmi:id="_QBOBkWFrEeCrVK9xDfPNKw" general="_YVCR4GFrEeCrVK9xDfPNKw"/>
    </packagedElement>
    <packagedElement xmi:type="uml:Class" xmi:id="_YVCR4GFrEeCrVK9xDfPNKw" name="GeneralHeaderConstraints">
      <generalization xmi:id="_YVC48GFrEeCrVK9xDfPNKw">
        <general xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_S9OzADxXEd6JwqSGecoePg"/>
      </generalization>
    </packagedElement>
    <packagedElement xmi:type="uml:Package" xmi:id="_rINuIGtdEeC-BPsUkomSRQ" name="domain">
      <packagedElement xmi:type="uml:Interface" xmi:id="_rINuIWtdEeC-BPsUkomSRQ" name="StatusObservation">
        <ownedComment xmi:id="_rINuImtdEeC-BPsUkomSRQ" annotatedElement="_rINuIWtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rINuI2tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rINuJGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rIZ7YGtdEeC-BPsUkomSRQ" name="getValue" isQuery="true">
          <ownedParameter xmi:id="_rIZ7YWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rIZ7YmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rIZ7Y2tdEeC-BPsUkomSRQ" name="setValue">
          <ownedComment xmi:id="_rIaicWtdEeC-BPsUkomSRQ" annotatedElement="_rIZ7Y2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt>, where its data type is CE (CONF-516)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rIZ7ZGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rIaicGtdEeC-BPsUkomSRQ" type="_rINuIWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rIc-sGtdEeC-BPsUkomSRQ" name="getText" isQuery="true">
          <ownedParameter xmi:id="_rIc-sWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rIc-smtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rIc-s2tdEeC-BPsUkomSRQ" name="setText">
          <ownedComment xmi:id="_rIc-tmtdEeC-BPsUkomSRQ" annotatedElement="_rIc-s2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>text&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rIc-tGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rIc-tWtdEeC-BPsUkomSRQ" type="_rINuIWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rIgCAGtdEeC-BPsUkomSRQ" name="Condition">
        <ownedComment xmi:id="_rIgCAWtdEeC-BPsUkomSRQ" annotatedElement="_rIgCAGtdEeC-BPsUkomSRQ">
          <body>A problem is a clinical statement that a clinician is particularly concerned about and wants to track. It has important patient management use cases (e.g. health records often present the problem list as a way of summarizing a patient's medical history).</body>
        </ownedComment>
        <ownedComment xmi:id="_rIgCAmtdEeC-BPsUkomSRQ" annotatedElement="_rIgCAGtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rIgCA2tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rIgCBGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_YiANsDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rIs2UGtdEeC-BPsUkomSRQ" name="getIds" isQuery="true">
          <ownedParameter xmi:id="_rIs2UWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rIs2UmtdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rIs2U2tdEeC-BPsUkomSRQ" name="addId">
          <ownedComment xmi:id="_rItdYmtdEeC-BPsUkomSRQ" annotatedElement="_rIs2U2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain at least one [1..*] &lt;tt>&lt;b>id&lt;/b>&lt;/tt> (CONF-148)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rItdYGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rItdYWtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rIvSkGtdEeC-BPsUkomSRQ" name="getCode" isQuery="true">
          <ownedParameter xmi:id="_rIv5oGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rIv5oWtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rIv5omtdEeC-BPsUkomSRQ" name="setCode">
          <ownedComment xmi:id="_rIv5pWtdEeC-BPsUkomSRQ" annotatedElement="_rIv5omtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>code&lt;/b>&lt;/tt>&lt;tt>/@nullFlavor&lt;/tt> = &quot;NA&quot; &lt;i>NA (not applicable)&lt;/i> (CONF-149)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rIv5o2tdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rIv5pGtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rI0LEGtdEeC-BPsUkomSRQ" name="getStatusCode" isQuery="true">
          <ownedComment xmi:id="_rI0LE2tdEeC-BPsUkomSRQ" annotatedElement="_rI0LEGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&#xD;
The statusCode associated with any concern must be one of the following values:&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
&lt;b>active&lt;/b>: A concern that is still being tracked.&#xD;
&lt;b>suspended&lt;/b>: A concern that is active, but which may be set aside. For example, this value might be used to suspend concern&#xD;
about a patient problem after some period of remission, but before assumption that the concern has been resolved.&#xD;
&lt;b>aborted&lt;/b>: A concern that is no longer actively being tracked, but for reasons other than because the problem was resolved.&#xD;
This value might be used to mark a concern as being aborted after a patient leaves care against medical advice.&#xD;
&lt;b>completed&lt;/b>:&#xD;
The problem, allergy or medical state has been resolved and the concern no longer needs to be tracked except for&#xD;
historical purposes.&#xD;
&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI0LEWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rI0LEmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI0yIGtdEeC-BPsUkomSRQ" name="setStatusCode">
          <ownedComment xmi:id="_rI0yI2tdEeC-BPsUkomSRQ" annotatedElement="_rI0yIGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>statusCode&lt;/b>&lt;/tt>, which &lt;b>SHALL&lt;/b> be selected from ValueSet&lt;tt> ConcernEntryStatus&lt;/tt>&lt;b> STATIC&lt;/b>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI0yIWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rI0yImtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rI3OYGtdEeC-BPsUkomSRQ" name="getEffectiveTime" isQuery="true">
          <ownedComment xmi:id="_rI3OY2tdEeC-BPsUkomSRQ" annotatedElement="_rI3OYGtdEeC-BPsUkomSRQ">
            <body>The effectiveTime element records the starting and ending times during which the concern was active.</body>
          </ownedComment>
          <ownedParameter xmi:id="_rI3OYWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rI3OYmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI3OZGtdEeC-BPsUkomSRQ" name="setEffectiveTime">
          <ownedComment xmi:id="_rI31cWtdEeC-BPsUkomSRQ" annotatedElement="_rI3OZGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>effectiveTime&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI3OZWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rI31cGtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rI5qoWtdEeC-BPsUkomSRQ" name="getEpisodeObservation" isQuery="true">
          <ownedParameter xmi:id="_rI5qomtdEeC-BPsUkomSRQ" type="_rI5qoGtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rI5qo2tdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI5qpGtdEeC-BPsUkomSRQ" name="setEpisodeObservation">
          <ownedComment xmi:id="_rI6RsGtdEeC-BPsUkomSRQ" annotatedElement="_rI5qpGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt> (CONF-168), such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI5qpWtdEeC-BPsUkomSRQ" name="value" type="_rI5qoGtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rI5qpmtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rI6RsmtdEeC-BPsUkomSRQ" name="getProblemEntries" isQuery="true">
          <ownedParameter xmi:id="_rI6Rs2tdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rI64wGtdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI64wWtdEeC-BPsUkomSRQ" name="addProblemEntry">
          <ownedComment xmi:id="_rI64xGtdEeC-BPsUkomSRQ" annotatedElement="_rI64wWtdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains at least one [1..*] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI64wmtdEeC-BPsUkomSRQ" name="value" type="_rI6RsWtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rI64w2tdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rI7f0GtdEeC-BPsUkomSRQ" name="getTreatingProvider" isQuery="true">
          <ownedParameter xmi:id="_rI7f0WtdEeC-BPsUkomSRQ" type="_rI64xWtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rI7f0mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI7f02tdEeC-BPsUkomSRQ" name="setTreatingProvider">
          <ownedComment xmi:id="_rI7f1mtdEeC-BPsUkomSRQ" annotatedElement="_rI7f02tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>performer&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI7f1GtdEeC-BPsUkomSRQ" name="value" type="_rI64xWtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rI7f1WtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rI5qoGtdEeC-BPsUkomSRQ" name="EpisodeObservation">
        <ownedComment xmi:id="_rI-jIWtdEeC-BPsUkomSRQ" annotatedElement="_rI5qoGtdEeC-BPsUkomSRQ">
          <body>Episode observations are used to distinguish among multiple occurrences of a problem or social history item. An episode observation is used to indicate that a problem act represents a new episode, distinct from other episodes of a similar concern.</body>
        </ownedComment>
        <ownedComment xmi:id="_rI_KMGtdEeC-BPsUkomSRQ" annotatedElement="_rI5qoGtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rI_KMWtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rI_KMmtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJGe8GtdEeC-BPsUkomSRQ" name="getCode" isQuery="true">
          <ownedParameter xmi:id="_rJGe8WtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJGe8mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJHGAGtdEeC-BPsUkomSRQ" name="setCode">
          <ownedComment xmi:id="_rJHGA2tdEeC-BPsUkomSRQ" annotatedElement="_rJHGAGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHOULD&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>code&lt;/b>&lt;/tt>&lt;tt>&lt;b>/@code&lt;/b>=&quot;ASSERTION&quot; &lt;/tt> (CodeSystem:&lt;tt> 2.16.840.1.113883.5.4 HL7ActCode&lt;/tt>) (CONF-174)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJHGAWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJHGAmtdEeC-BPsUkomSRQ" type="_rI5qoGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJOawGtdEeC-BPsUkomSRQ" name="getValue" isQuery="true">
          <ownedParameter xmi:id="_rJOawWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJOawmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJOaw2tdEeC-BPsUkomSRQ" name="setValue">
          <ownedComment xmi:id="_rJOaxmtdEeC-BPsUkomSRQ" annotatedElement="_rJOaw2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHOULD&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt>&lt;tt>&lt;b>/@code&lt;/b>=&quot;404684003&quot; &lt;/tt>&lt;i>Clinical finding&lt;/i> (CodeSystem:&lt;tt> 2.16.840.1.113883.6.96 SNOMEDCT&lt;/tt>), where its data type is CD (CONF-175)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJOaxGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJOaxWtdEeC-BPsUkomSRQ" type="_rI5qoGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rI6RsWtdEeC-BPsUkomSRQ" name="ConditionEntry">
        <ownedComment xmi:id="_rJT6VWtdEeC-BPsUkomSRQ" annotatedElement="_rI6RsWtdEeC-BPsUkomSRQ">
          <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>
        <ownedComment xmi:id="_rJUhYGtdEeC-BPsUkomSRQ" annotatedElement="_rI6RsWtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rJUhYWtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rJUhYmtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJbPEGtdEeC-BPsUkomSRQ" name="getClassCode" isQuery="true">
          <ownedParameter xmi:id="_rJbPEWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Enumeration" href="../../org.openhealthtools.mdht.uml.hl7.vocab/model/vocab.uml#__yVdYEDcEd6xYZuu1VKCVw"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJb2IGtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJb2IWtdEeC-BPsUkomSRQ" name="setClassCode">
          <ownedComment xmi:id="_rJb2JGtdEeC-BPsUkomSRQ" annotatedElement="_rJb2IWtdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains exactly one [1..1] &lt;tt>&lt;b>@classCode&lt;/b>=&quot;OBS&quot; &lt;/tt>&lt;i>Observation&lt;/i> (CodeSystem:&lt;tt> 2.16.840.1.113883.5.6 HL7ActClass&lt;/tt>)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJb2ImtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Enumeration" href="../../org.openhealthtools.mdht.uml.hl7.vocab/model/vocab.uml#__yVdYEDcEd6xYZuu1VKCVw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJb2I2tdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJe5cGtdEeC-BPsUkomSRQ" name="getIds" isQuery="true">
          <ownedComment xmi:id="_rJe5c2tdEeC-BPsUkomSRQ" annotatedElement="_rJe5cGtdEeC-BPsUkomSRQ">
            <body>The specific observation being recorded must have an identifier (&amp;lt;id>) that shall be provided for tracking purposes. If the source EMR does not or cannot supply an intrinsic identifier, then a GUID shall be provided as the root, with no extension (e.g., &amp;lt;id root='CE1215CD-69EC-4C7B-805F-569233C5E159'/>). At least one identifier must be present, more than one may appear.</body>
          </ownedComment>
          <ownedParameter xmi:id="_rJe5cWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJe5cmtdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJe5dGtdEeC-BPsUkomSRQ" name="addId">
          <ownedComment xmi:id="_rJe5d2tdEeC-BPsUkomSRQ" annotatedElement="_rJe5dGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain at least one [1..*] &lt;tt>&lt;b>id&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJe5dWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJe5dmtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJhVsGtdEeC-BPsUkomSRQ" name="getProblemType" isQuery="true">
          <ownedParameter xmi:id="_rJhVsWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJhVsmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJhVs2tdEeC-BPsUkomSRQ" name="setProblemType">
          <ownedComment xmi:id="_rJh8wGtdEeC-BPsUkomSRQ" annotatedElement="_rJhVs2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHOULD&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>code&lt;/b>&lt;/tt>, which &lt;b>SHOULD&lt;/b> be selected from ValueSet&lt;tt> 2.16.840.1.113883.3.88.12.3221.7.2 Problem Type&lt;/tt>&lt;b> STATIC&lt;/b> 1&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJhVtGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJhVtWtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJmOMGtdEeC-BPsUkomSRQ" name="getProblemName" isQuery="true">
          <ownedComment xmi:id="_rJmOM2tdEeC-BPsUkomSRQ" annotatedElement="_rJmOMGtdEeC-BPsUkomSRQ">
            <body>The &amp;lt;text> element is required and points to the text describing the problem being recorded; including any dates, comments, et cetera. The &amp;lt;reference> contains a URI in value attribute. This URI points to the free text description of the problem in the document that is being described.</body>
          </ownedComment>
          <ownedParameter xmi:id="_rJmOMWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJmOMmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJmONGtdEeC-BPsUkomSRQ" name="setProblemName">
          <ownedComment xmi:id="_rJm1QmtdEeC-BPsUkomSRQ" annotatedElement="_rJmONGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>text&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJm1QGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJm1QWtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJrtwGtdEeC-BPsUkomSRQ" name="getProblemDate" isQuery="true">
          <ownedComment xmi:id="_rJsU0mtdEeC-BPsUkomSRQ" annotatedElement="_rJrtwGtdEeC-BPsUkomSRQ">
            <body>The &amp;lt;effectiveTime> of this &amp;lt;observation> is the time interval over which the &amp;lt;observation> is known to be true. The &amp;lt;low> and &amp;lt;high> values should be no more precise than known, but as precise as possible. While CDA allows for multiple mechanisms to record this time interval (e.g., by low and high values, low and width, high and width, or center point and width), we are constraining Medical summaries to use only the low/high form. The &amp;lt;low> value is the earliest point for which the condition is known to have existed. The &amp;lt;high> value, when present, indicates the time at which the observation was no longer known to be true. Thus, the implication is made that if the &amp;lt;high> value is specified, that the observation was no longer seen after this time, and it thus represents the date of resolution of the problem. Similarly, the &amp;lt;low> value may seem to represent onset of the problem. Neither of these statements is necessarily precise, as the &amp;lt;low> and &amp;lt;high> values may represent only an approximation of the true onset and resolution (respectively) times. For example, it may be the case that onset occurred prior to the &amp;lt;low> value, but no observation may have been possible before that time to discern whether the condition existed prior to that time. The &amp;lt;low> value should normally be present. There are exceptions, such as for the case where the patient may be able to report that they had chicken pox, but are unsure when. In this case, the &amp;lt;effectiveTime> element shall have a &amp;lt;low> element with a nullFlavor attribute set to 'UNK'. The &amp;lt;high> value need not be present when the observation is about a state of the patient that is unlikely to change (e.g., the diagnosis of an incurable disease).</body>
          </ownedComment>
          <ownedParameter xmi:id="_rJsU0GtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJsU0WtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJsU02tdEeC-BPsUkomSRQ" name="setProblemDate">
          <ownedComment xmi:id="_rJsU1mtdEeC-BPsUkomSRQ" annotatedElement="_rJsU02tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHOULD&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>effectiveTime&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJsU1GtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJsU1WtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJuxEGtdEeC-BPsUkomSRQ" name="getProblemCode" isQuery="true">
          <ownedParameter xmi:id="_rJuxEWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJuxEmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJvYIGtdEeC-BPsUkomSRQ" name="setProblemCode">
          <ownedComment xmi:id="_rJvYI2tdEeC-BPsUkomSRQ" annotatedElement="_rJvYIGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt>, which &lt;b>SHALL&lt;/b> be selected from ValueSet&lt;tt> 2.16.840.1.113883.3.88.12.3221.7.4 Problem&lt;/tt>&lt;b> STATIC&lt;/b> 1, where its data type is CD&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJvYIWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rJvYImtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJzpkWtdEeC-BPsUkomSRQ" name="getAgeAtOnset" isQuery="true">
          <ownedParameter xmi:id="_rJzpkmtdEeC-BPsUkomSRQ" type="_rJzpkGtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJzpk2tdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJzplGtdEeC-BPsUkomSRQ" name="setAgeAtOnset">
          <ownedComment xmi:id="_rJ0QomtdEeC-BPsUkomSRQ" annotatedElement="_rJzplGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt> (CONF-160), such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJ0QoGtdEeC-BPsUkomSRQ" name="value" type="_rJzpkGtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rJ0QoWtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ03sGtdEeC-BPsUkomSRQ" name="getSeverity" isQuery="true">
          <ownedParameter xmi:id="_rJ03sWtdEeC-BPsUkomSRQ" type="_rJ0Qo2tdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJ03smtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ03s2tdEeC-BPsUkomSRQ" name="setSeverity">
          <ownedComment xmi:id="_rJ1ewmtdEeC-BPsUkomSRQ" annotatedElement="_rJ03s2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJ1ewGtdEeC-BPsUkomSRQ" name="value" type="_rJ0Qo2tdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rJ1ewWtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ2F0GtdEeC-BPsUkomSRQ" name="getProblemStatus" isQuery="true">
          <ownedParameter xmi:id="_rJ2F0WtdEeC-BPsUkomSRQ" type="_rJ1ew2tdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJ2F0mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ2F02tdEeC-BPsUkomSRQ" name="setProblemStatus">
          <ownedComment xmi:id="_rJ2F1mtdEeC-BPsUkomSRQ" annotatedElement="_rJ2F02tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJ2F1GtdEeC-BPsUkomSRQ" name="value" type="_rJ1ew2tdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rJ2F1WtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ2s4WtdEeC-BPsUkomSRQ" name="getHealthStatusObservation" isQuery="true">
          <ownedParameter xmi:id="_rJ2s4mtdEeC-BPsUkomSRQ" type="_rJ2s4GtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJ2s42tdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ2s5GtdEeC-BPsUkomSRQ" name="setHealthStatusObservation">
          <ownedComment xmi:id="_rJ2s52tdEeC-BPsUkomSRQ" annotatedElement="_rJ2s5GtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJ2s5WtdEeC-BPsUkomSRQ" name="value" type="_rJ2s4GtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rJ2s5mtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ3T8WtdEeC-BPsUkomSRQ" name="getComments" isQuery="true">
          <ownedParameter xmi:id="_rJ3T8mtdEeC-BPsUkomSRQ" type="_rJ3T8GtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJ3T82tdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ37AGtdEeC-BPsUkomSRQ" name="addComment">
          <ownedComment xmi:id="_rJ37A2tdEeC-BPsUkomSRQ" annotatedElement="_rJ37AGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or more [0..*] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJ37AWtdEeC-BPsUkomSRQ" name="value" type="_rJ3T8GtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rJ37AmtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ4iEWtdEeC-BPsUkomSRQ" name="getCauseOfDeath" isQuery="true">
          <ownedParameter xmi:id="_rJ4iEmtdEeC-BPsUkomSRQ" type="_rJ4iEGtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rJ4iE2tdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rJ4iFGtdEeC-BPsUkomSRQ" name="setCauseOfDeath">
          <ownedComment xmi:id="_rJ4iF2tdEeC-BPsUkomSRQ" annotatedElement="_rJ4iFGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rJ4iFWtdEeC-BPsUkomSRQ" name="value" type="_rJ4iEGtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rJ4iFmtdEeC-BPsUkomSRQ" type="_rI6RsWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rI64xWtdEeC-BPsUkomSRQ" name="TreatingProvider">
        <ownedComment xmi:id="_rI8G4GtdEeC-BPsUkomSRQ" annotatedElement="_rI64xWtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rI8G4WtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rI8G4mtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_6qmVsEcDEd6besF9iFIJkQ"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI8t8GtdEeC-BPsUkomSRQ" name="getTreatingProviderIDs" isQuery="true">
          <ownedComment xmi:id="_rI8t82tdEeC-BPsUkomSRQ" annotatedElement="_rI8t8GtdEeC-BPsUkomSRQ">
            <body>This identifier SHALL be the identifier of one of the providers listed in the healthcare providers module.</body>
          </ownedComment>
          <ownedParameter xmi:id="_rI8t8WtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rI8t8mtdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rI8t9GtdEeC-BPsUkomSRQ" name="addTreatingProviderID">
          <ownedComment xmi:id="_rI9VAGtdEeC-BPsUkomSRQ" annotatedElement="_rI8t9GtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain at least one [1..*] &lt;tt>&lt;b>id&lt;/b>&lt;/tt> (C83-[DE-7.05-CDA-2])&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rI8t9WtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rI8t9mtdEeC-BPsUkomSRQ" type="_rI64xWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rJzpkGtdEeC-BPsUkomSRQ" name="AgeObservation">
        <ownedComment xmi:id="_rJ5JIGtdEeC-BPsUkomSRQ" annotatedElement="_rJzpkGtdEeC-BPsUkomSRQ">
          <body>A common scenario is that a patient will know the age of a relative when they had a certain condition or when they died, but will not know the actual year (e.g. &quot;grandpa died of a heart attack at the age of 50&quot;). Often times, neither precise dates nor ages are known (e.g. &quot;cousin died of congenital heart disease as an infant&quot;). In all cases, dates and times and ages can be expressed in narrative.</body>
        </ownedComment>
        <ownedComment xmi:id="_rJ5JIWtdEeC-BPsUkomSRQ" annotatedElement="_rJzpkGtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rJ5JImtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rJ5JI2tdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKHyoGtdEeC-BPsUkomSRQ" name="getValue" isQuery="true">
          <ownedComment xmi:id="_rKHyo2tdEeC-BPsUkomSRQ" annotatedElement="_rKHyoGtdEeC-BPsUkomSRQ">
            <body>Valued using appropriate datatype.</body>
          </ownedComment>
          <ownedParameter xmi:id="_rKHyoWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#__I8BwDxZEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKHyomtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKIZsGtdEeC-BPsUkomSRQ" name="setValue">
          <ownedComment xmi:id="_rKIZs2tdEeC-BPsUkomSRQ" annotatedElement="_rKIZsGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt> (CONF-231)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rKIZsWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#__I8BwDxZEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rKIZsmtdEeC-BPsUkomSRQ" type="_rJzpkGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rJ0Qo2tdEeC-BPsUkomSRQ" name="Severity">
        <ownedComment xmi:id="_rKMEFWtdEeC-BPsUkomSRQ" annotatedElement="_rJ0Qo2tdEeC-BPsUkomSRQ">
          <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>
        <ownedComment xmi:id="_rKMEFmtdEeC-BPsUkomSRQ" annotatedElement="_rJ0Qo2tdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rKMEF2tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rKMEGGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKVOAGtdEeC-BPsUkomSRQ" name="getText" isQuery="true">
          <ownedParameter xmi:id="_rKVOAWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKV1EGtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKV1EWtdEeC-BPsUkomSRQ" name="setText">
          <ownedComment xmi:id="_rKV1FGtdEeC-BPsUkomSRQ" annotatedElement="_rKV1EWtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>text&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rKV1EmtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rKV1E2tdEeC-BPsUkomSRQ" type="_rJ0Qo2tdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rKb7sGtdEeC-BPsUkomSRQ" name="getValue" isQuery="true">
          <ownedComment xmi:id="_rKb7s2tdEeC-BPsUkomSRQ" annotatedElement="_rKb7sGtdEeC-BPsUkomSRQ">
            <body>Value code representing high, moderate and low severity depending upon whether the severity is life threatening, presents noticeable adverse consequences, or is unlikely substantially effect the situation of the subject.</body>
          </ownedComment>
          <ownedParameter xmi:id="_rKb7sWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKb7smtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKciwGtdEeC-BPsUkomSRQ" name="setValue">
          <ownedComment xmi:id="_rKciw2tdEeC-BPsUkomSRQ" annotatedElement="_rKciwGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt>, which &lt;b>SHALL&lt;/b> be selected from ValueSet&lt;tt> SeverityObservation&lt;/tt>&lt;b> STATIC&lt;/b>, where its data type is CD&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rKciwWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rKciwmtdEeC-BPsUkomSRQ" type="_rJ0Qo2tdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rJ1ew2tdEeC-BPsUkomSRQ" name="ProblemStatusObservation">
        <ownedComment xmi:id="_rKipZWtdEeC-BPsUkomSRQ" annotatedElement="_rJ1ew2tdEeC-BPsUkomSRQ">
          <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>
        <ownedComment xmi:id="_rKipZmtdEeC-BPsUkomSRQ" annotatedElement="_rJ1ew2tdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <generalization xmi:id="_rKipZ2tdEeC-BPsUkomSRQ" general="_rINuIWtdEeC-BPsUkomSRQ"/>
        <ownedOperation xmi:id="_rKjQcGtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rKjQcWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKowAGtdEeC-BPsUkomSRQ" name="getValue" isQuery="true">
          <ownedParameter xmi:id="_rKowAWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rKowAmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rKowA2tdEeC-BPsUkomSRQ" name="setValue">
          <ownedComment xmi:id="_rKpXEWtdEeC-BPsUkomSRQ" annotatedElement="_rKowA2tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt>, which &lt;b>SHALL&lt;/b> be selected from ValueSet&lt;tt> ProblemStatusValue&lt;/tt>&lt;b> STATIC&lt;/b>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rKowBGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rKpXEGtdEeC-BPsUkomSRQ" type="_rJ1ew2tdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rJ2s4GtdEeC-BPsUkomSRQ" name="HealthStatusObservation">
        <ownedComment xmi:id="_rKvdtWtdEeC-BPsUkomSRQ" annotatedElement="_rJ2s4GtdEeC-BPsUkomSRQ">
          <body>The health status observation records information about the current health status of the patient.</body>
        </ownedComment>
        <ownedComment xmi:id="_rKvdtmtdEeC-BPsUkomSRQ" annotatedElement="_rJ2s4GtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <generalization xmi:id="_rKvdt2tdEeC-BPsUkomSRQ" general="_rINuIWtdEeC-BPsUkomSRQ"/>
        <ownedOperation xmi:id="_rKwEwGtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rKwEwWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rK09QGtdEeC-BPsUkomSRQ" name="getValue" isQuery="true">
          <ownedParameter xmi:id="_rK1kUGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rK1kUWtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rK1kUmtdEeC-BPsUkomSRQ" name="setValue">
          <ownedComment xmi:id="_rK1kVWtdEeC-BPsUkomSRQ" annotatedElement="_rK1kUmtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>value&lt;/b>&lt;/tt>, which &lt;b>SHALL&lt;/b> be selected from ValueSet&lt;tt> HealthStatusValue&lt;/tt>&lt;b> STATIC&lt;/b>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rK1kU2tdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rK1kVGtdEeC-BPsUkomSRQ" type="_rJ2s4GtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rJ3T8GtdEeC-BPsUkomSRQ" name="Comment">
        <ownedComment xmi:id="_rK8SAWtdEeC-BPsUkomSRQ" annotatedElement="_rJ3T8GtdEeC-BPsUkomSRQ">
          <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></body>
        </ownedComment>
        <ownedComment xmi:id="_rK8SAmtdEeC-BPsUkomSRQ" annotatedElement="_rJ3T8GtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rK8SA2tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rK8SBGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_YiANsDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLIfQGtdEeC-BPsUkomSRQ" name="getText" isQuery="true">
          <ownedParameter xmi:id="_rLIfQWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLIfQmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLJGUGtdEeC-BPsUkomSRQ" name="setText">
          <ownedComment xmi:id="_rLJGU2tdEeC-BPsUkomSRQ" annotatedElement="_rLJGUGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>text&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLJGUWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_CowXkDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLJGUmtdEeC-BPsUkomSRQ" type="_rJ3T8GtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLOl4GtdEeC-BPsUkomSRQ" name="getAuthor" isQuery="true">
          <ownedParameter xmi:id="_rLOl4WtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_ChEisEcEEd6besF9iFIJkQ"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLOl4mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLPM8GtdEeC-BPsUkomSRQ" name="setAuthor">
          <ownedComment xmi:id="_rLPM82tdEeC-BPsUkomSRQ" annotatedElement="_rLPM8GtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>MAY&lt;/b> contain zero or one [0..1] &lt;tt>&lt;b>author&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLPM8WtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_ChEisEcEEd6besF9iFIJkQ"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLPM8mtdEeC-BPsUkomSRQ" type="_rJ3T8GtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rJ4iEGtdEeC-BPsUkomSRQ" name="CauseOfDeathObservation">
        <ownedComment xmi:id="_rLsf9WtdEeC-BPsUkomSRQ" annotatedElement="_rJ4iEGtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <generalization xmi:id="_rLsf9mtdEeC-BPsUkomSRQ" general="_rLhg1WtdEeC-BPsUkomSRQ"/>
        <ownedOperation xmi:id="_rLsf92tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rLsf-GtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLuVIGtdEeC-BPsUkomSRQ" name="getTimeOfDeath" isQuery="true">
          <ownedParameter xmi:id="_rLuVIWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLu8MGtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLu8MWtdEeC-BPsUkomSRQ" name="setTimeOfDeath">
          <ownedComment xmi:id="_rLu8NGtdEeC-BPsUkomSRQ" annotatedElement="_rLu8MWtdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains zero or one [0..1] &lt;tt>&lt;b>effectiveTime&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLu8MmtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLu8M2tdEeC-BPsUkomSRQ" type="_rJ4iEGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLvjQGtdEeC-BPsUkomSRQ" name="getAgeAtDeath" isQuery="true">
          <ownedParameter xmi:id="_rLvjQWtdEeC-BPsUkomSRQ" type="_rJzpkGtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLvjQmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLvjQ2tdEeC-BPsUkomSRQ" name="setAgeAtDeath">
          <ownedComment xmi:id="_rLvjRmtdEeC-BPsUkomSRQ" annotatedElement="_rLvjQ2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLvjRGtdEeC-BPsUkomSRQ" name="value" type="_rJzpkGtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rLvjRWtdEeC-BPsUkomSRQ" type="_rJ4iEGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rLTeZGtdEeC-BPsUkomSRQ" name="ProblemListSection">
        <ownedComment xmi:id="_rLTeZWtdEeC-BPsUkomSRQ" annotatedElement="_rLTeZGtdEeC-BPsUkomSRQ">
          <body>This section lists and describes all relevant clinical problems at the time the summary is generated. At a minimum, all pertinent current and historical problems should be listed. CDA R2 represents problems as Observations.</body>
        </ownedComment>
        <ownedComment xmi:id="_rLTeZmtdEeC-BPsUkomSRQ" annotatedElement="_rLTeZGtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rLTeZ2tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rLTeaGtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLY98GtdEeC-BPsUkomSRQ" name="getTitle" isQuery="true">
          <ownedParameter xmi:id="_rLY98WtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_EaTNsDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLY98mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLY982tdEeC-BPsUkomSRQ" name="setTitle">
          <ownedComment xmi:id="_rLZlAGtdEeC-BPsUkomSRQ" annotatedElement="_rLY982tdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>title&lt;/b>&lt;/tt> (CONF-143)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLY99GtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_EaTNsDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLY99WtdEeC-BPsUkomSRQ" type="_rLTeZGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLbaMGtdEeC-BPsUkomSRQ" name="getText" isQuery="true">
          <ownedParameter xmi:id="_rLbaMWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_0jvq8E8AEd6ohP_YEXs4Wg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLbaMmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLcBQGtdEeC-BPsUkomSRQ" name="setText">
          <ownedComment xmi:id="_rLcBQ2tdEeC-BPsUkomSRQ" annotatedElement="_rLcBQGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain exactly one [1..1] &lt;tt>&lt;b>text&lt;/b>&lt;/tt> (CONF-140)&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLcBQWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_0jvq8E8AEd6ohP_YEXs4Wg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLcBQmtdEeC-BPsUkomSRQ" type="_rLTeZGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLd2cGtdEeC-BPsUkomSRQ" name="getConditions" isQuery="true">
          <ownedParameter xmi:id="_rLd2cWtdEeC-BPsUkomSRQ" type="_rIgCAGtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLd2cmtdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLedgGtdEeC-BPsUkomSRQ" name="addCondition">
          <ownedComment xmi:id="_rLedg2tdEeC-BPsUkomSRQ" annotatedElement="_rLedgGtdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains at least one [1..*] &lt;tt>&lt;b>entry&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLedgWtdEeC-BPsUkomSRQ" name="value" type="_rIgCAGtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rLedgmtdEeC-BPsUkomSRQ" type="_rLTeZGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rLhg1WtdEeC-BPsUkomSRQ" name="FamilyHistoryObservation">
        <ownedComment xmi:id="_rLhg1mtdEeC-BPsUkomSRQ" annotatedElement="_rLhg1WtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rLhg12tdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rLiH4GtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLj9EGtdEeC-BPsUkomSRQ" name="getClassCode" isQuery="true">
          <ownedParameter xmi:id="_rLj9EWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Enumeration" href="../../org.openhealthtools.mdht.uml.hl7.vocab/model/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLj9EmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLj9E2tdEeC-BPsUkomSRQ" name="setClassCode">
          <ownedComment xmi:id="_rLj9FmtdEeC-BPsUkomSRQ" annotatedElement="_rLj9E2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains exactly one [1..1] &lt;tt>&lt;b>@classCode&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLj9FGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Enumeration" href="../../org.openhealthtools.mdht.uml.hl7.vocab/model/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLj9FWtdEeC-BPsUkomSRQ" type="_rLhg1WtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLkkIGtdEeC-BPsUkomSRQ" name="getMoodCode" isQuery="true">
          <ownedParameter xmi:id="_rLkkIWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Enumeration" href="../../org.openhealthtools.mdht.uml.hl7.vocab/model/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLkkImtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLkkI2tdEeC-BPsUkomSRQ" name="setMoodCode">
          <ownedComment xmi:id="_rLkkJmtdEeC-BPsUkomSRQ" annotatedElement="_rLkkI2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains exactly one [1..1] &lt;tt>&lt;b>@moodCode&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLkkJGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Enumeration" href="../../org.openhealthtools.mdht.uml.hl7.vocab/model/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLkkJWtdEeC-BPsUkomSRQ" type="_rLhg1WtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLlLMGtdEeC-BPsUkomSRQ" name="getIds" isQuery="true">
          <ownedParameter xmi:id="_rLlLMWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLlLMmtdEeC-BPsUkomSRQ" value="*"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLlyQGtdEeC-BPsUkomSRQ" name="addId">
          <ownedComment xmi:id="_rLlyQ2tdEeC-BPsUkomSRQ" annotatedElement="_rLlyQGtdEeC-BPsUkomSRQ">
            <body>&lt;p>&lt;b>SHALL&lt;/b> contain at least one [1..*] &lt;tt>&lt;b>id&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLlyQWtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLlyQmtdEeC-BPsUkomSRQ" type="_rLhg1WtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLnncGtdEeC-BPsUkomSRQ" name="getCode" isQuery="true">
          <ownedParameter xmi:id="_rLnncWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLnncmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLnnc2tdEeC-BPsUkomSRQ" name="setCode">
          <ownedComment xmi:id="_rLoOgWtdEeC-BPsUkomSRQ" annotatedElement="_rLnnc2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains exactly one [1..1] &lt;tt>&lt;b>code&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLnndGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLoOgGtdEeC-BPsUkomSRQ" type="_rLhg1WtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rLrR0GtdEeC-BPsUkomSRQ" name="getAgeObservation" isQuery="true">
          <ownedParameter xmi:id="_rLrR0WtdEeC-BPsUkomSRQ" type="_rJzpkGtdEeC-BPsUkomSRQ" direction="return">
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLrR0mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLrR02tdEeC-BPsUkomSRQ" name="setAgeObservation">
          <ownedComment xmi:id="_rLr44mtdEeC-BPsUkomSRQ" annotatedElement="_rLrR02tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains zero or one [0..1] &lt;tt>&lt;b>entryRelationship&lt;/b>&lt;/tt>, such that&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLr44GtdEeC-BPsUkomSRQ" name="value" type="_rJzpkGtdEeC-BPsUkomSRQ"/>
          <ownedParameter xmi:id="_rLr44WtdEeC-BPsUkomSRQ" type="_rLhg1WtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rLx_hWtdEeC-BPsUkomSRQ" name="PatientSummary">
        <ownedComment xmi:id="_rLx_hmtdEeC-BPsUkomSRQ" annotatedElement="_rLx_hWtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <generalization xmi:id="_rLymkWtdEeC-BPsUkomSRQ" general="_rLymkGtdEeC-BPsUkomSRQ"/>
        <ownedOperation xmi:id="_rLymkmtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rLymk2tdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_S9OzADxXEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLymlGtdEeC-BPsUkomSRQ" name="getCode" isQuery="true">
          <ownedParameter xmi:id="_rLymlWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLymlmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLyml2tdEeC-BPsUkomSRQ" name="setCode">
          <ownedComment xmi:id="_rLzNomtdEeC-BPsUkomSRQ" annotatedElement="_rLyml2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains exactly one [1..1] &lt;tt>&lt;b>code&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLzNoGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLzNoWtdEeC-BPsUkomSRQ" type="_rLx_hWtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
      <packagedElement xmi:type="uml:Interface" xmi:id="_rLymkGtdEeC-BPsUkomSRQ" name="GeneralHeaderConstraints">
        <ownedComment xmi:id="_rLzNo2tdEeC-BPsUkomSRQ" annotatedElement="_rLymkGtdEeC-BPsUkomSRQ">
          <body>&lt;p>Refer to full implementation guide &lt;a href=&quot;http://www.cdatools.org/infocenter/index.jsp&quot;/>specification&lt;/a>.&lt;/p></body>
        </ownedComment>
        <ownedOperation xmi:id="_rLzNpGtdEeC-BPsUkomSRQ" name="toCDAType" isQuery="true">
          <ownedParameter xmi:id="_rLzNpWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.cda/model/cda.uml#_S9OzADxXEd6JwqSGecoePg"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLz0sGtdEeC-BPsUkomSRQ" name="getLanguageCode" isQuery="true">
          <ownedParameter xmi:id="_rLz0sWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rLz0smtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rLz0s2tdEeC-BPsUkomSRQ" name="setLanguageCode">
          <ownedComment xmi:id="_rLz0tmtdEeC-BPsUkomSRQ" annotatedElement="_rLz0s2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains zero or one [0..1] &lt;tt>&lt;b>languageCode&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rLz0tGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rLz0tWtdEeC-BPsUkomSRQ" type="_rLymkGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rL0bwGtdEeC-BPsUkomSRQ" name="getSetId" isQuery="true">
          <ownedParameter xmi:id="_rL0bwWtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rL0bwmtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rL0bw2tdEeC-BPsUkomSRQ" name="setSetId">
          <ownedComment xmi:id="_rL0bxmtdEeC-BPsUkomSRQ" annotatedElement="_rL0bw2tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains zero or one [0..1] &lt;tt>&lt;b>setId&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rL0bxGtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rL0bxWtdEeC-BPsUkomSRQ" type="_rLymkGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
        <ownedOperation xmi:id="_rL1C0GtdEeC-BPsUkomSRQ" name="getTitle" isQuery="true">
          <ownedParameter xmi:id="_rL1C0WtdEeC-BPsUkomSRQ" direction="return">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_EaTNsDxaEd6JwqSGecoePg"/>
            <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_rL1C0mtdEeC-BPsUkomSRQ" value="1"/>
          </ownedParameter>
        </ownedOperation>
        <ownedOperation xmi:id="_rL1C02tdEeC-BPsUkomSRQ" name="setTitle">
          <ownedComment xmi:id="_rL1p4GtdEeC-BPsUkomSRQ" annotatedElement="_rL1C02tdEeC-BPsUkomSRQ">
            <body>&lt;p>Contains zero or one [0..1] &lt;tt>&lt;b>title&lt;/b>&lt;/tt>&lt;/p></body>
          </ownedComment>
          <ownedParameter xmi:id="_rL1C1GtdEeC-BPsUkomSRQ" name="value">
            <type xmi:type="uml:Class" href="../../org.openhealthtools.mdht.uml.hl7.datatypes/model/datatypes.uml#_EaTNsDxaEd6JwqSGecoePg"/>
          </ownedParameter>
          <ownedParameter xmi:id="_rL1C1WtdEeC-BPsUkomSRQ" type="_rLymkGtdEeC-BPsUkomSRQ" direction="return"/>
        </ownedOperation>
      </packagedElement>
    </packagedElement>
    <profileApplication xmi:id="_SMdMMJmzEd6BO7rW3XxHIA">
      <eAnnotations xmi:id="_SMdzQJmzEd6BO7rW3XxHIA" 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="_rIGZYGtdEeC-BPsUkomSRQ">
      <eAnnotations xmi:id="_rIGZYWtdEeC-BPsUkomSRQ" 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:CodegenSupport xmi:id="_THvvwJmzEd6BO7rW3XxHIA" basePackage="org.openhealthtools.mdht.uml.cda" nsPrefix="apitest" nsURI="http://www.openhealthtools.org/mdht/uml/cda/apitest" packageName="apitest" prefix="APITest" base_Namespace="_qQyD8jxVEd6JwqSGecoePg"/>
  <CDA:CDATemplate xmi:id="_CQNDcGCUEeCVapLQyCJtvg" base_Class="_CQJZEGCUEeCVapLQyCJtvg" templateId="2.16.840.1.113883.10.20.1.57" assigningAuthorityName="CCD"/>
  <CDA:ConstraintValidation xmi:id="_CQWNYGCUEeCVapLQyCJtvg" base_Constraint="_CQJZFWCUEeCVapLQyCJtvg">
    <ruleId>CONF-518</ruleId>
  </CDA:ConstraintValidation>
  <uml:Association xmi:id="_EZ7wEGCUEeCVapLQyCJtvg"/>
  <CDA:CDATemplate xmi:id="_EZttqWCUEeCVapLQyCJtvg" base_Class="_EZttoGCUEeCVapLQyCJtvg" templateId="2.16.840.1.113883.3.88.11.83.11">
    <ruleId>C83-[DE-10-CDA-2]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_EZ8-MmCUEeCVapLQyCJtvg" base_Constraint="_EZ8-MGCUEeCVapLQyCJtvg">
    <ruleId>CONF-6.3.4.6.7</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EZ9lQmCUEeCVapLQyCJtvg" base_Constraint="_EZ9lQGCUEeCVapLQyCJtvg">
    <ruleId>CONF-6.3.4.6.10</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_EXNMPWCUEeCVapLQyCJtvg" base_Class="_EXNMMGCUEeCVapLQyCJtvg" templateId="2.16.840.1.113883.3.88.11.83.7">
    <ruleId>C83-[DE-7-CDA-1]</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_EaGIIGCUEeCVapLQyCJtvg" base_Constraint="_EaFhE2CUEeCVapLQyCJtvg">
    <ruleId>CONF-151</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaHWQmCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EaHWQGCUEeCVapLQyCJtvg">
    <ruleId>CONF-153</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaH9UmCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EaH9UGCUEeCVapLQyCJtvg">
    <ruleId>CONF-140</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaIkYmCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EaIkYGCUEeCVapLQyCJtvg">
    <ruleId>CONF-256</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaJygGCUEeCVapLQyCJtvg" severity="INFO" base_Constraint="_EaJLcGCUEeCVapLQyCJtvg">
    <ruleId>CONF-179</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaKZkmCUEeCVapLQyCJtvg" base_Constraint="_EaKZkGCUEeCVapLQyCJtvg"/>
  <CDA:ConstraintValidation xmi:id="_EXOaUGCUEeCVapLQyCJtvg">
    <ruleId>C83-[DE-7.05-CDA-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EXaAgGCUEeCVapLQyCJtvg">
    <ruleId>C83-[DE-7.05-CDA-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EXankGCUEeCVapLQyCJtvg" severity="INFO" base_Constraint="_EXNMNWCUEeCVapLQyCJtvg">
    <ruleId>C83-[DE-7.05-CDA-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_EaFhEGCUEeCVapLQyCJtvg" base_Class="_EYQVEGCUEeCVapLQyCJtvg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.5"/>
  <CDA:ConstraintValidation xmi:id="_EaBPomCUEeCVapLQyCJtvg" base_Constraint="_EaBPoGCUEeCVapLQyCJtvg">
    <ruleId>CONF-161</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaB2smCUEeCVapLQyCJtvg" severity="INFO" base_Constraint="_EaB2sGCUEeCVapLQyCJtvg">
    <ruleId>CONF-180</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EaDE0mCUEeCVapLQyCJtvg" base_Constraint="_EaDE0GCUEeCVapLQyCJtvg"/>
  <CDA:ConstraintValidation xmi:id="_EaDr4mCUEeCVapLQyCJtvg" base_Constraint="_EaDr4GCUEeCVapLQyCJtvg"/>
  <CDA:ConstraintValidation xmi:id="_EYT_cGCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EYQVEmCUEeCVapLQyCJtvg">
    <ruleId>C83-[DE-7.01-1]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EYUmgGCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EYQVFGCUEeCVapLQyCJtvg">
    <ruleId>C83-[DE-7.01-2]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EYVNkGCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EYQVFmCUEeCVapLQyCJtvg">
    <ruleId>C83-[DE-7.01-3]</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_EYC5sGCUEeCVapLQyCJtvg" base_Class="_EYCSoGCUEeCVapLQyCJtvg" templateId="2.16.840.1.113883.10.20.1.41" assigningAuthorityName="CCD"/>
  <CDA:ConstraintValidation xmi:id="_EYKOcGCUEeCVapLQyCJtvg" base_Constraint="_EYCSpGCUEeCVapLQyCJtvg">
    <ruleId>CONF-176</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_EYK1gGCUEeCVapLQyCJtvg" severity="INFO" base_Constraint="_EYCSpmCUEeCVapLQyCJtvg">
    <ruleId>CONF-177</ruleId>
  </CDA:ConstraintValidation>
  <CDA:CDATemplate xmi:id="_EZYWcGCUEeCVapLQyCJtvg" base_Class="_EZXvYmCUEeCVapLQyCJtvg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.1.2"/>
  <CDA:ConstraintValidation xmi:id="_EZfrMGCUEeCVapLQyCJtvg"/>
  <CDA:TextValue xmi:id="_EZY9gGCUEeCVapLQyCJtvg"/>
  <CDA:CDATemplate xmi:id="_EaOrBmCUEeCVapLQyCJtvg" base_Class="_EaOrAGCUEeCVapLQyCJtvg" templateId="2.16.840.1.113883.3.88.11.83.103" assigningAuthorityName="HITSP C83"/>
  <CDA:CDATemplate xmi:id="_EZK7GWCUEeCVapLQyCJtvg" base_Class="_EZK7EGCUEeCVapLQyCJtvg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.1.1"/>
  <CDA:ConstraintValidation xmi:id="_EZPMgGCUEeCVapLQyCJtvg" base_Constraint="_EZK7EmCUEeCVapLQyCJtvg"/>
  <CDA:CDATemplate xmi:id="_EY7DcGCUEeCVapLQyCJtvg" base_Class="_EY6cYGCUEeCVapLQyCJtvg" templateId="1.3.6.1.4.1.19376.1.5.3.1.4.1"/>
  <CDA:ConstraintValidation xmi:id="_EY-t0GCUEeCVapLQyCJtvg" base_Constraint="_EY6cYmCUEeCVapLQyCJtvg"/>
  <CDA:CDATemplate xmi:id="_szdjGGFZEeCE87GgfH3r_A" base_Class="_szdjEGFZEeCE87GgfH3r_A" templateId="2.16.840.1.113883.10.20.1.22" assigningAuthorityName="CCD"/>
  <CDA:CDATemplate xmi:id="_vBIUgGFZEeCE87GgfH3r_A" base_Class="_vBHtcGFZEeCE87GgfH3r_A" templateId="2.16.840.1.113883.10.20.1.42" assigningAuthorityName="CCD"/>
  <CDA:CDATemplate xmi:id="_EYoImWCUEeCVapLQyCJtvg" base_Class="_EYoIgGCUEeCVapLQyCJtvg" templateId="2.16.840.1.113883.10.20.1.38" assigningAuthorityName="CCD"/>
  <CDA:ConstraintValidation xmi:id="_EYuPIWCUEeCVapLQyCJtvg" severity="WARNING" base_Constraint="_EYoIgmCUEeCVapLQyCJtvg">
    <ruleId>CONF-219</ruleId>
  </CDA:ConstraintValidation>
  <Ecore:EPackage xmi:id="_rINHEGtdEeC-BPsUkomSRQ" base_Package="_qQyD8jxVEd6JwqSGecoePg" packageName="apitest" nsPrefix="apitest" nsURI="http://www.openhealthtools.org/mdht/uml/cda/apitest" basePackage="org.openhealthtools.mdht.uml.cda" prefix="APITest"/>
  <Ecore:EClass xmi:id="_rIO8QGtdEeC-BPsUkomSRQ" base_Class="_CQJZEGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation statusCode.code='completed' templateId.root='2.16.840.1.113883.10.20.1.57' constraints.validation.error='StatusObservationTemplateId StatusObservationNoAdditionalParticipants StatusObservationHasTextReference StatusObservationClassCode StatusObservationMoodCode StatusObservationStatusCode StatusObservationValue StatusObservationText' classCode='OBS' moodCode='EVN'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rIhQIGtdEeC-BPsUkomSRQ" base_Class="_EXNMMGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.3.88.11.83.7' code.nullFlavor='NA' constraints.validation.error='ConditionTemplateId ConditionEntryRelationshipRequired ConditionEffectiveTimeLowHigh ConditionClassCode ConditionMoodCode ConditionId ConditionCodeNullFlavor ConditionEffectiveTime ConditionTreatingProvider' constraints.validation.warning='ConditionSubjectOfTarget ConditionContainsProblemObservation ConditionContainsAlertObservation' classCode='ACT' constraints.validation.info='ConditionContainsPatientAwareness ConditionHasProviderTreatmentTime ConditionEpisodeObservation' moodCode='EVN'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rI-jIGtdEeC-BPsUkomSRQ" base_Class="_ncJSMGEvEeCE87GgfH3r_A">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='TreatingProviderId'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rJAYUGtdEeC-BPsUkomSRQ" base_Class="_EYCSoGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SNOMEDCT' code.codeSystem='2.16.840.1.113883.5.4' templateId.root='2.16.840.1.113883.10.20.1.41' constraints.validation.error='EpisodeObservationTemplateId EpisodeObservationOneEntryRelationshipSUBJ EpisodeObservationClassCode EpisodeObservationMoodCode EpisodeObservationStatusCode' code.code='ASSERTION' constraints.validation.info='EpisodeObservationExistsEntryRelationshipSAS' value.displayName='Clinical finding' statusCode.code='completed' value.code='404684003' code.codeSystemName='HL7ActCode' constraints.validation.warning='EpisodeObservationCode EpisodeObservationValue' classCode='OBS' moodCode='EVN' value.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rJVIcGtdEeC-BPsUkomSRQ" base_Class="_EYQVEGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation statusCode.code='completed' value.codeSystemName='SNOMEDCT' code.codeSystem='2.16.840.1.113883.6.96' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.5' constraints.validation.error='ConditionEntryTemplateId ConditionEntryInformationSource ConditionEntryHasTextReference ConditionEntryCommentInversionInd ConditionEntryMoodCode ConditionEntryId ConditionEntryText ConditionEntryStatusCode ConditionEntryValue' code.codeSystemName='SNOMEDCT' constraints.validation.warning='ConditionEntryHasOnsetDate ConditionEntryHasResolutionDate ConditionEntryHasUnknownResolutionDate ConditionEntryCode ConditionEntryEffectiveTime' classCode='OBS' moodCode='EVN' constraints.validation.info='ConditionEntryContainsPatientAwareness ConditionEntryAgeObservation ConditionEntrySeverity ConditionEntryProblemStatusObservation ConditionEntryHealthStatusObservation ConditionEntryComment ConditionEntryCauseOfDeathObservation' value.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rJ6XQGtdEeC-BPsUkomSRQ" base_Class="_EYoIgGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation statusCode.code='completed' code.codeSystem='2.16.840.1.113883.6.96' code.displayName='Age' templateId.root='2.16.840.1.113883.10.20.1.38' constraints.validation.error='AgeObservationTemplateId AgeObservationClassCode AgeObservationMoodCode AgeObservationCode AgeObservationStatusCode AgeObservationValue' code.codeSystemName='SNOMEDCT' classCode='OBS' constraints.validation.warning='AgeObservationRelatedSubjectBirthTime' code.code='397659008' moodCode='EVN'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rKNSMGtdEeC-BPsUkomSRQ" base_Class="_EY6cYGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation statusCode.code='completed' value.codeSystemName='SeverityObservation' code.codeSystem='2.16.840.1.113883.5.4' code.displayName='Severity observation' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.1' constraints.validation.error='SeverityTemplateId SeverityHasTextReference SeverityClassCode SeverityMoodCode SeverityCode SeverityText SeverityStatusCode SeverityValue' code.codeSystemName='HL7ActCode' classCode='OBS' code.code='SEV' moodCode='EVN' value.codeSystem='2.16.840.1.113883.5.1063'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_rKjQcmtdEeC-BPsUkomSRQ" base_Generalization="_EZWhQGCUEeCVapLQyCJtvg"/>
  <Ecore:EClass xmi:id="_rKkekGtdEeC-BPsUkomSRQ" base_Class="_EZK7EGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SNOMEDCT' code.codeSystem='2.16.840.1.113883.6.1' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.1.1' code.displayName='Status' constraints.validation.error='ProblemStatusObservationTemplateId ProblemStatusObservationCode StatusObservationValue' code.codeSystemName='LOINC' code.code='33999-4' value.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_rKwEwmtdEeC-BPsUkomSRQ" base_Generalization="_EZr4cGCUEeCVapLQyCJtvg"/>
  <Ecore:EClass xmi:id="_rKxS4GtdEeC-BPsUkomSRQ" base_Class="_EZXvYmCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation value.codeSystemName='SNOMEDCT' code.codeSystem='2.16.840.1.113883.6.1' templateId.root='1.3.6.1.4.1.19376.1.5.3.1.4.1.2' code.displayName='Health status' constraints.validation.error='HealthStatusObservationTemplateId HealthStatusObservationCode StatusObservationValue' code.codeSystemName='LOINC' code.code='11323-3' value.codeSystem='2.16.840.1.113883.6.96'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rK9gIGtdEeC-BPsUkomSRQ" base_Class="_EZttoGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation statusCode.code='completed' code.codeSystem='2.16.840.1.113883.6.1' code.displayName='Annotation comment' templateId.root='2.16.840.1.113883.3.88.11.83.11' constraints.validation.error='CommentTemplateId CommentHasTextReference CommentEffectiveTimeWhenAuthorPresent CommentClassCode CommentMoodCode CommentCode CommentText CommentStatusCode' code.codeSystemName='LOINC' classCode='ACT' code.code='48767-8' moodCode='EVN'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rLUsgGtdEeC-BPsUkomSRQ" base_Class="_EaOrAGCUEeCVapLQyCJtvg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation code.codeSystem='2.16.840.1.113883.6.1' templateId.root='2.16.840.1.113883.3.88.11.83.103' code.displayName='Problem list' constraints.validation.error='ProblemListSectionTemplateId ProblemListSectionCode ProblemListSectionTitle ProblemListSectionText' code.codeSystemName='LOINC' code.code='11450-4'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_rLiu8GtdEeC-BPsUkomSRQ" base_Class="_szdjEGFZEeCE87GgfH3r_A">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation statusCode.code='completed' templateId.root='2.16.840.1.113883.10.20.1.22' constraints.validation.error='FamilyHistoryObservationTemplateId FamilyHistoryObservationId FamilyHistoryObservationStatusCode'</annotation>
  </Ecore:EClass>
  <CDA:ConformsTo xmi:id="_rLtHAGtdEeC-BPsUkomSRQ" base_Generalization="_vBJioGFZEeCE87GgfH3r_A"/>
  <Ecore:EClass xmi:id="_rLtuEGtdEeC-BPsUkomSRQ" base_Class="_vBHtcGFZEeCE87GgfH3r_A">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation templateId.root='2.16.840.1.113883.10.20.1.42' constraints.validation.error='CauseOfDeathObservationTemplateId'</annotation>
  </Ecore:EClass>
</xmi:XMI>
