<?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:uml="http://www.eclipse.org/uml2/4.0.0/UML" xsi:schemaLocation="http://www.eclipse.org/uml2/schemas/Ecore/5 pathmap://UML_PROFILES/Ecore.profile.uml#_z1OFcHjqEdy8S4Cr8Rc_NA">
  <uml:Class xmi:id="_2JKvgBSVEeGGzu7fmW9pXw" name="SocialHistorySection">
    <ownedComment xmi:id="_LJ4sMDyWEeGOm9opnDhYAQ">
      <body>This section contains data defining the patient's occupational, personal (e.g. lifestyle), social, and environmental history and health risk factors, as well as administrative data such as marital status, race, ethnicity and religious affiliation. Social history can have significant influence on a patient's physical, psychological and emotional health and wellbeing so should be considered in the development of a complete record.</body>
    </ownedComment>
    <ownedRule xmi:id="_jChXULTBEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jChXUbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCjzkLTBEeWEoeeTdrbyVw" name="SocialHistorySectionCode" constrainedElement="_2JL9oBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCjzkbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CE) and 
let value : datatypes::CE = self.code.oclAsType(datatypes::CE) in 
value.code = '29762-2' and value.codeSystem = '2.16.840.1.113883.6.1'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCm24LTBEeWEoeeTdrbyVw" name="SocialHistorySectionCodeP" constrainedElement="_2JL9oBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCm24bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCp6MLTBEeWEoeeTdrbyVw" name="SocialHistorySectionTitle" constrainedElement="_2JNLwBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCp6MbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.title.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCrvYLTBEeWEoeeTdrbyVw" name="SocialHistorySectionText" constrainedElement="_2JNy0BSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCrvYbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.text.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_naCxMLTBEeWEoeeTdrbyVw" name="SocialHistorySectionEntry">
      <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrPbU7S3EeWpm8PSOGz-9g"/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_naCxMbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.nullFlavor &lt;> vocab::NullFlavor::NI implies entry->one(entry : cda::Entry | not entry.oclIsUndefined() and entry.oclIsKindOf(consol::SocialHistorySection::SocialHistoryObservationEntry))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_ncMGQLTBEeWEoeeTdrbyVw" name="SocialHistorySectionEntry">
      <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrR3k7S3EeWpm8PSOGz-9g"/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_ncMGQbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.nullFlavor &lt;> vocab::NullFlavor::NI implies entry->one(entry : cda::Entry | not entry.oclIsUndefined() and entry.oclIsKindOf(consol::SocialHistorySection::PregnancyObservationEntry))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_neHY4LTBEeWEoeeTdrbyVw" name="SocialHistorySectionEntry">
      <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrUT07S3EeWpm8PSOGz-9g"/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_neHY4bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.nullFlavor &lt;> vocab::NullFlavor::NI implies entry->one(entry : cda::Entry | not entry.oclIsUndefined() and entry.oclIsKindOf(consol::SocialHistorySection::SmokingStatusObservationEntry))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_ngEgsLTBEeWEoeeTdrbyVw" name="SocialHistorySectionEntry">
      <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrWwE7S3EeWpm8PSOGz-9g"/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_ngEgsbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.nullFlavor &lt;> vocab::NullFlavor::NI implies entry->one(entry : cda::Entry | not entry.oclIsUndefined() and entry.oclIsKindOf(consol::SocialHistorySection::TobaccoUseEntry))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_wm_B4LTBEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_wm_o8LTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_-a3ogLTBEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_-a4PkLTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_BmLt8LTCEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_BmLt8bTCEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_b3NKsLTCEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_b3NxwLTCEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_DNU1cLTDEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_DNVcgLTDEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_3SovoLTDEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_3SovobTDEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_PkETMLTEEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_PkE6QLTEEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_JelwcLTJEeWEoeeTdrbyVw" name="SocialHistorySectionTemplateId" constrainedElement="_2JKvgBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_JelwcbTJEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.2.17')</body>
      </specification>
    </ownedRule>
    <generalization xmi:id="_2Jrs4hSVEeGGzu7fmW9pXw">
      <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_qIf_wDxXEd6JwqSGecoePg"/>
    </generalization>
    <ownedAttribute xmi:id="_2JL9oBSVEeGGzu7fmW9pXw" name="code" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_Z1EGIDxaEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_FBiOcRrXEeGJ_KU17uNyeA" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_FBiOcBrXEeGJ_KU17uNyeA" value="1"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JNLwBSVEeGGzu7fmW9pXw" name="title" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_EaTNsDxaEd6JwqSGecoePg"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JNy0BSVEeGGzu7fmW9pXw" name="text" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_0jvq8E8AEd6ohP_YEXs4Wg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2JNy0hSVEeGGzu7fmW9pXw" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2JNy0RSVEeGGzu7fmW9pXw" value="1"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_wrPbVLS3EeWpm8PSOGz-9g" name="entry" type="_wrPbULS3EeWpm8PSOGz-9g" isReadOnly="true" aggregation="composite">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrQCYLS3EeWpm8PSOGz-9g" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrQCYbS3EeWpm8PSOGz-9g" value="1"/>
      <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_SvZ88DxYEd6JwqSGecoePg"/>
      <association href="../consol.uml#_wrPbU7S3EeWpm8PSOGz-9g"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_wrR3lLS3EeWpm8PSOGz-9g" name="entry" type="_wrR3kLS3EeWpm8PSOGz-9g" isReadOnly="true" aggregation="composite">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrSeoLS3EeWpm8PSOGz-9g" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrSeobS3EeWpm8PSOGz-9g" value="1"/>
      <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_SvZ88DxYEd6JwqSGecoePg"/>
      <association href="../consol.uml#_wrR3k7S3EeWpm8PSOGz-9g"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_wrU64LS3EeWpm8PSOGz-9g" name="entry" type="_wrUT0LS3EeWpm8PSOGz-9g" isReadOnly="true" aggregation="composite">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrU64bS3EeWpm8PSOGz-9g" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrU64rS3EeWpm8PSOGz-9g" value="1"/>
      <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_SvZ88DxYEd6JwqSGecoePg"/>
      <association href="../consol.uml#_wrUT07S3EeWpm8PSOGz-9g"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_wrXXILS3EeWpm8PSOGz-9g" name="entry" type="_wrWwELS3EeWpm8PSOGz-9g" isReadOnly="true" aggregation="composite">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrXXIbS3EeWpm8PSOGz-9g" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrXXIrS3EeWpm8PSOGz-9g" value="1"/>
      <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_SvZ88DxYEd6JwqSGecoePg"/>
      <association href="../consol.uml#_wrWwE7S3EeWpm8PSOGz-9g"/>
    </ownedAttribute>
    <nestedClassifier xmi:type="uml:Class" xmi:id="_wrPbULS3EeWpm8PSOGz-9g" name="SocialHistoryObservationEntry">
      <ownedRule xmi:id="_nbAagLTBEeWEoeeTdrbyVw" name="SocialHistorySectionSocialHistoryObservationEntrySocialHistoryObservation">
        <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrQpcLS3EeWpm8PSOGz-9g"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_nbAagbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body>self.observation->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(consol::SocialHistoryObservation))->size() >= 0</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_wrPbUbS3EeWpm8PSOGz-9g">
        <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_r0FX0DxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedAttribute xmi:id="_wrQpcbS3EeWpm8PSOGz-9g" name="socialHistoryObservation" type="_2JOZ4BSVEeGGzu7fmW9pXw" isReadOnly="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrQpcrS3EeWpm8PSOGz-9g"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrQpc7S3EeWpm8PSOGz-9g" value="*"/>
        <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_k2RbsTxYEd6JwqSGecoePg"/>
        <association href="../consol.uml#_wrQpcLS3EeWpm8PSOGz-9g"/>
      </ownedAttribute>
    </nestedClassifier>
    <nestedClassifier xmi:type="uml:Class" xmi:id="_wrR3kLS3EeWpm8PSOGz-9g" name="PregnancyObservationEntry">
      <ownedRule xmi:id="_ndGsQLTBEeWEoeeTdrbyVw" name="SocialHistorySectionPregnancyObservationEntryPregnancyObservation">
        <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrTFsLS3EeWpm8PSOGz-9g"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ndGsQbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body>self.observation->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(consol::PregnancyObservation))->size() >= 0</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_wrR3kbS3EeWpm8PSOGz-9g">
        <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_r0FX0DxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedAttribute xmi:id="_wrTFsbS3EeWpm8PSOGz-9g" name="pregnancyObservation" type="_2N6soBSVEeGGzu7fmW9pXw" isReadOnly="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrTFsrS3EeWpm8PSOGz-9g"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrTFs7S3EeWpm8PSOGz-9g" value="*"/>
        <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_k2RbsTxYEd6JwqSGecoePg"/>
        <association href="../consol.uml#_wrTFsLS3EeWpm8PSOGz-9g"/>
      </ownedAttribute>
    </nestedClassifier>
    <nestedClassifier xmi:type="uml:Class" xmi:id="_wrUT0LS3EeWpm8PSOGz-9g" name="SmokingStatusObservationEntry">
      <ownedRule xmi:id="_nfDNALTBEeWEoeeTdrbyVw" name="SocialHistorySectionSmokingStatusObservationEntrySmokingStatusObservation">
        <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrVh8LS3EeWpm8PSOGz-9g"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_nfDNAbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body>self.observation->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(consol::SmokingStatusObservation))->size() >= 0</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_wrUT0bS3EeWpm8PSOGz-9g">
        <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_r0FX0DxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedAttribute xmi:id="_wrVh8bS3EeWpm8PSOGz-9g" name="smokingStatusObservation" type="_RYJj0OWQEeGKmvzED_He2w" isReadOnly="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrVh8rS3EeWpm8PSOGz-9g"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrVh87S3EeWpm8PSOGz-9g" value="*"/>
        <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_k2RbsTxYEd6JwqSGecoePg"/>
        <association href="../consol.uml#_wrVh8LS3EeWpm8PSOGz-9g"/>
      </ownedAttribute>
    </nestedClassifier>
    <nestedClassifier xmi:type="uml:Class" xmi:id="_wrWwELS3EeWpm8PSOGz-9g" name="TobaccoUseEntry">
      <ownedRule xmi:id="_ng_GsLTBEeWEoeeTdrbyVw" name="SocialHistorySectionTobaccoUseEntryTobaccoUse">
        <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wrX-MLS3EeWpm8PSOGz-9g"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_ng_GsbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body>self.observation->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(consol::TobaccoUse))->size() >= 0</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_wrWwEbS3EeWpm8PSOGz-9g">
        <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_r0FX0DxXEd6JwqSGecoePg"/>
      </generalization>
      <ownedAttribute xmi:id="_wrX-MbS3EeWpm8PSOGz-9g" name="tobaccoUse" type="_gIH_QOWQEeGKmvzED_He2w" isReadOnly="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wrX-MrS3EeWpm8PSOGz-9g"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wrX-M7S3EeWpm8PSOGz-9g" value="*"/>
        <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_k2RbsTxYEd6JwqSGecoePg"/>
        <association href="../consol.uml#_wrX-MLS3EeWpm8PSOGz-9g"/>
      </ownedAttribute>
    </nestedClassifier>
  </uml:Class>
  <uml:Association xmi:id="_2JLWkRSVEeGGzu7fmW9pXw" memberEnd="_2JLWkhSVEeGGzu7fmW9pXw">
    <ownedEnd xmi:id="_2JLWkhSVEeGGzu7fmW9pXw" type="_2JKvgBSVEeGGzu7fmW9pXw" isReadOnly="true" association="_2JLWkRSVEeGGzu7fmW9pXw"/>
  </uml:Association>
  <uml:Association xmi:id="__3ADghVVEeGbmN_W114JUw" memberEnd="__3ADgxVVEeGbmN_W114JUw">
    <ownedEnd xmi:id="__3ADgxVVEeGbmN_W114JUw" type="_2JKvgBSVEeGGzu7fmW9pXw" isReadOnly="true" association="__3ADghVVEeGbmN_W114JUw"/>
  </uml:Association>
  <CDA:CDATemplate xmi:id="_2JKvhhSVEeGGzu7fmW9pXw" base_Class="_2JKvgBSVEeGGzu7fmW9pXw" templateId="2.16.840.1.113883.10.20.22.2.17">
    <ruleId>CONF:7936</ruleId>
    <ruleId>CONF:10449</ruleId>
  </CDA:CDATemplate>
  <CDA:CodeSystemConstraint xmi:id="_2JL9oRSVEeGGzu7fmW9pXw" code="29762-2" displayName="Social history" base_Property="_2JL9oBSVEeGGzu7fmW9pXw">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_3-cwsCWrEd-iTYfpNb4PkQ"/>
    <ruleId>CONF:14820</ruleId>
  </CDA:CodeSystemConstraint>
  <CDA:TextValue xmi:id="_2JNLwRSVEeGGzu7fmW9pXw" base_Property="_2JNLwBSVEeGGzu7fmW9pXw">
    <ruleId>CONF:7938</ruleId>
  </CDA:TextValue>
  <CDA:PropertyValidation xmi:id="_2JNy0xSVEeGGzu7fmW9pXw" base_Property="_2JNy0BSVEeGGzu7fmW9pXw">
    <ruleId>CONF:7939</ruleId>
  </CDA:PropertyValidation>
  <CDA:AssociationValidation xmi:id="_2JLWkxSVEeGGzu7fmW9pXw" severity="INFO" base_Association="_2JLWkRSVEeGGzu7fmW9pXw">
    <ruleId>CONF:7953</ruleId>
    <ruleId>CONF:7954</ruleId>
  </CDA:AssociationValidation>
  <CDA:AssociationValidation xmi:id="_DRdYMBVWEeGbmN_W114JUw" severity="INFO" base_Association="__3ADghVVEeGbmN_W114JUw">
    <ruleId>CONF:9132</ruleId>
    <ruleId>CONF:9133</ruleId>
  </CDA:AssociationValidation>
  <uml:Class xmi:id="_2JOZ4BSVEeGGzu7fmW9pXw" name="SocialHistoryObservation">
    <ownedComment xmi:id="_fG0UsDyWEeGOm9opnDhYAQ">
      <body>This Social History Observation defines the patient's occupational, personal (e.g., lifestyle), social, and environmental history and health risk factors, as well as administrative data such as marital status, race, ethnicity, and religious affiliation.</body>
    </ownedComment>
    <ownedRule xmi:id="_L9YKgBtsEeGT89b80j3MTg" name="SocialHistoryObservationOriginalText" constrainedElement="_2JOZ4BSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_nzLzwBtsEeGT89b80j3MTg">
        <language>Analysis</language>
        <language>OCL</language>
        <body>code, if present, SHOULD contain zero or one [0..1] originalText</body>
        <body>not self.code.oclIsUndefined() implies not self.code.originalText.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_4G8WIBtsEeGT89b80j3MTg" name="SocialHistoryObservationReference" constrainedElement="_2JOZ4BSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_79Cd8BtsEeGT89b80j3MTg">
        <language>Analysis</language>
        <language>OCL</language>
        <body>originalText, if present, SHOULD contain zero or one [0..1] reference/@value.</body>
        <body>not self.code.originalText.oclIsUndefined() implies not self.code.originalText.reference.value.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_O-ANcBttEeGT89b80j3MTg" name="SocialHistoryObservationReferenceValue" constrainedElement="_2JOZ4BSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_aUIYMBttEeGT89b80j3MTg">
        <language>Analysis</language>
        <language>OCL</language>
        <body>reference/@value SHALL begin with a '#' and SHALL point to its corresponding narrative (using the approach defined in CDA Release 2, section 4.3.5.1) (CONF:8895).</body>
        <body>not self.code.originalText.reference.value.oclIsUndefined() implies not self.getSection().text.getText(self.code.originalText.reference.value.substring(2, self.code.originalText.reference.value.size())).oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCuLoLTBEeWEoeeTdrbyVw" name="SocialHistoryObservationTemplateId" constrainedElement="_2JOZ4BSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCuLobTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.4.38')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCx2ALTBEeWEoeeTdrbyVw" name="SocialHistoryObservationClassCode" constrainedElement="_2JSEQBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCx2AbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.classCode=vocab::ActClassObservation::OBS</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jCzEILTBEeWEoeeTdrbyVw" name="SocialHistoryObservationMoodCode" constrainedElement="_2JSEQhSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jCzrMLTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jC05ULTBEeWEoeeTdrbyVw" name="SocialHistoryObservationId" constrainedElement="_2JSrURSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jC05UbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.id->isEmpty()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jDQXILTBEeWEoeeTdrbyVw" name="SocialHistoryObservationCodeP" constrainedElement="_2JOZ4hSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jDQ-MLTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>((not self.code.oclIsUndefined()) and self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined())</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jC3VkLTBEeWEoeeTdrbyVw" name="SocialHistoryObservationCode" constrainedElement="_2JOZ4hSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jC3VkbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>((not self.code.oclIsUndefined()) and self.code.isNullFlavorUndefined()) implies (not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in 
value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '229819007' or value.code = '256235009' or value.code = '160573003' or value.code = '364393001' or value.code = '364703007' or value.code = '425400000' or value.code = '363908000' or value.code = '228272008' or value.code = '105421008'))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jDtDELTBEeWEoeeTdrbyVw" name="SocialHistoryObservationStatusCodeP" constrainedElement="_2JTSYBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jDtDEbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>true</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jDrN4LTBEeWEoeeTdrbyVw" name="SocialHistoryObservationStatusCode" constrainedElement="_2JTSYBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jDrN4bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined() and self.statusCode.oclIsKindOf(datatypes::CS) and 
let value : datatypes::CS = self.statusCode.oclAsType(datatypes::CS) in 
value.code = 'completed'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jDu4QLTBEeWEoeeTdrbyVw" name="SocialHistoryObservationValue" constrainedElement="_2JUggBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jDu4QbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>((not self.value->isEmpty()) and self.value->exists(element | element.isNullFlavorUndefined())) implies (self.value->size() &lt;= 1)</body>
      </specification>
    </ownedRule>
    <generalization xmi:id="_2Jii8hSVEeGGzu7fmW9pXw">
      <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
    </generalization>
    <ownedAttribute xmi:id="_2JSEQBSVEeGGzu7fmW9pXw" name="classCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_RBmX4BukEeG0YIoJCEsKqA" value="OBS"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JSEQhSVEeGGzu7fmW9pXw" name="moodCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_AhhbUBulEeG0YIoJCEsKqA" value="EVN"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JSrURSVEeGGzu7fmW9pXw" name="id" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_culQ8DxaEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2JSrUxSVEeGGzu7fmW9pXw" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2JSrUhSVEeGGzu7fmW9pXw" value="*"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JOZ4hSVEeGGzu7fmW9pXw" name="code" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_xpt90RrZEeGJ_KU17uNyeA"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_xpt90BrZEeGJ_KU17uNyeA" value="1"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JTSYBSVEeGGzu7fmW9pXw" name="statusCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2JUggBSVEeGGzu7fmW9pXw" name="value" visibility="private" isReadOnly="true" aggregation="composite">
      <ownedComment xmi:id="_2JUggRSVEeGGzu7fmW9pXw">
        <body>Observation/value can be any data type. Where Observation/value is a physical quantity, the unit of measure SHALL be expressed using a valid Unified Code for Units of Measure (UCUM) expression.</body>
      </ownedComment>
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#__I8BwDxZEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_hQO8ARrbEeGJ_KU17uNyeA"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_hQO8ABrbEeGJ_KU17uNyeA" value="1"/>
    </ownedAttribute>
  </uml:Class>
  <CDA:CDATemplate xmi:id="_2JOZ6xSVEeGGzu7fmW9pXw" base_Class="_2JOZ4BSVEeGGzu7fmW9pXw" templateId="2.16.840.1.113883.10.20.22.4.38">
    <ruleId>CONF:8550</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_2JgtwhSVEeGGzu7fmW9pXw" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_2JhU0hSVEeGGzu7fmW9pXw" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_2Jh74hSVEeGGzu7fmW9pXw" severity="WARNING"/>
  <CDA:ConstraintValidation xmi:id="_2Jii8BSVEeGGzu7fmW9pXw" severity="WARNING"/>
  <CDA:PropertyValidation xmi:id="_2JSrVBSVEeGGzu7fmW9pXw" base_Property="_2JSrURSVEeGGzu7fmW9pXw">
    <ruleId>CONF:8551</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_2JPoABSVEeGGzu7fmW9pXw" severity="WARNING" base_Property="_2JOZ4hSVEeGGzu7fmW9pXw">
    <ruleId>CONF:8558</ruleId>
  </CDA:PropertyValidation>
  <CDA:ValueSetConstraint xmi:id="_2JPoARSVEeGGzu7fmW9pXw" severity="WARNING" base_Property="_2JOZ4hSVEeGGzu7fmW9pXw">
    <ruleId>CONF:8896</ruleId>
    <reference href="../consol-vocab.uml#_2JjKCRSVEeGGzu7fmW9pXw"/>
  </CDA:ValueSetConstraint>
  <CDA:TextValue xmi:id="_2JRdMBSVEeGGzu7fmW9pXw"/>
  <CDA:CodeSystemConstraint xmi:id="_2JTSYRSVEeGGzu7fmW9pXw" code="completed" base_Property="_2JTSYBSVEeGGzu7fmW9pXw">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_e8ZEoCWvEd-iTYfpNb4PkQ"/>
    <ruleId>CONF:8553</ruleId>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_2JQ2IBSVEeGGzu7fmW9pXw" severity="WARNING"/>
  <CDA:PropertyValidation xmi:id="_2JUghBSVEeGGzu7fmW9pXw" severity="WARNING" base_Property="_2JUggBSVEeGGzu7fmW9pXw">
    <ruleId>CONF:8559</ruleId>
  </CDA:PropertyValidation>
  <uml:Class xmi:id="_2N6soBSVEeGGzu7fmW9pXw" name="PregnancyObservation">
    <ownedComment xmi:id="_9RKMYDyWEeGOm9opnDhYAQ">
      <body>This clinical statement represents current and/or prior pregnancy dates enabling investigators to determine if the subject of the case report was pregnant during the course of a condition.</body>
    </ownedComment>
    <ownedRule xmi:id="_jWIP0LTBEeWEoeeTdrbyVw" name="PregnancyObservationTemplateId" constrainedElement="_2N6soBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWIP0bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.15.3.8')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWKFALTBEeWEoeeTdrbyVw" name="PregnancyObservationClassCode" constrainedElement="_2N6svBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWKFAbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.classCode=vocab::ActClassObservation::OBS</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWLTILTBEeWEoeeTdrbyVw" name="PregnancyObservationMoodCode" constrainedElement="_2N6svhSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWLTIbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWQLoLTBEeWEoeeTdrbyVw" name="PregnancyObservationCodeP" constrainedElement="_2N6soxSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWQLobTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWNvYLTBEeWEoeeTdrbyVw" name="PregnancyObservationCode" constrainedElement="_2N6soxSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWNvYbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in 
value.code = 'ASSERTION' and value.codeSystem = '2.16.840.1.113883.5.4'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWVEILTBEeWEoeeTdrbyVw" name="PregnancyObservationStatusCodeP" constrainedElement="_2N6sxBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWVEIbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>true</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWTO8LTBEeWEoeeTdrbyVw" name="PregnancyObservationStatusCode" constrainedElement="_2N6sxBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWTO8bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined() and self.statusCode.oclIsKindOf(datatypes::CS) and 
let value : datatypes::CS = self.statusCode.oclAsType(datatypes::CS) in 
value.code = 'completed'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWYHcLTBEeWEoeeTdrbyVw" name="PregnancyObservationValue" constrainedElement="_2N6ssBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWYHcbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = element.oclAsType(datatypes::CD) in 
value.code = '77386006' and value.codeSystem = '2.16.840.1.113883.6.96')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWajsLTBEeWEoeeTdrbyVw" name="PregnancyObservationValueP" constrainedElement="_2N6ssBSVEeGGzu7fmW9pXw">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWajsbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | element.oclIsTypeOf(datatypes::CD))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_jWc_8LTBEeWEoeeTdrbyVw" name="PregnancyObservationEffectiveTime" constrainedElement="_WJgwIBrkEeGJ_KU17uNyeA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_jWc_8bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>((not self.effectiveTime.oclIsUndefined()) and self.effectiveTime.isNullFlavorUndefined()) implies (not self.effectiveTime.oclIsUndefined())</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_oeGPMLTBEeWEoeeTdrbyVw" name="PregnancyObservationEntryRelationship">
      <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wtDZMLS3EeWpm8PSOGz-9g"/>
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_oeGPMbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.entryRelationship->one(entryRelationship : cda::EntryRelationship | not entryRelationship.oclIsUndefined() and entryRelationship.oclIsKindOf(consol::PregnancyObservation::EstimatedDateOfDeliveryEntryRelationship))</body>
      </specification>
    </ownedRule>
    <generalization xmi:id="_2N6sxxSVEeGGzu7fmW9pXw">
      <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
    </generalization>
    <ownedAttribute xmi:id="_2N6svBSVEeGGzu7fmW9pXw" name="classCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_foRaEBtnEeGL6omwPdOIng" value="OBS"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2N6svhSVEeGGzu7fmW9pXw" name="moodCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_SId38BtlEeGL6omwPdOIng" value="EVN"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2N6soxSVEeGGzu7fmW9pXw" name="code" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2N6sxBSVEeGGzu7fmW9pXw" name="statusCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_2N6ssBSVEeGGzu7fmW9pXw" name="value" visibility="private" isReadOnly="true" aggregation="composite">
      <ownedComment xmi:id="_2N6ssRSVEeGGzu7fmW9pXw">
        <body>The value of the observation shall be recording using a data type appropriate to the coded observation according to the table provided by IHE PCC specification.</body>
      </ownedComment>
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_20d8sRrfEeGJ_KU17uNyeA" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_20d8sBrfEeGJ_KU17uNyeA" value="1"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_WJgwIBrkEeGJ_KU17uNyeA" name="effectiveTime" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WJgwIhrkEeGJ_KU17uNyeA"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WJgwIRrkEeGJ_KU17uNyeA" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_fUQ50Eo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_wtDZMbS3EeWpm8PSOGz-9g" name="entryRelationship" type="_wtCyILS3EeWpm8PSOGz-9g" isReadOnly="true" aggregation="composite">
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wtDZMrS3EeWpm8PSOGz-9g" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wtDZM7S3EeWpm8PSOGz-9g" value="1"/>
      <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_EV7mkUxqEd6h-an5IXo-DA"/>
      <association href="../consol.uml#_wtDZMLS3EeWpm8PSOGz-9g"/>
    </ownedAttribute>
    <nestedClassifier xmi:type="uml:Class" xmi:id="_wtCyILS3EeWpm8PSOGz-9g" name="EstimatedDateOfDeliveryEntryRelationship">
      <ownedRule xmi:id="_oe12ELTBEeWEoeeTdrbyVw" name="PregnancyObservationEstimatedDateOfDeliveryEntryRelationshipEstimatedDateOfDelivery">
        <constrainedElement xmi:type="uml:Association" href="../consol.uml#_wtEAQbS3EeWpm8PSOGz-9g"/>
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_oe12EbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body>self.observation->select(observation : cda::Observation | not observation.oclIsUndefined() and observation.oclIsKindOf(consol::EstimatedDateOfDelivery))->size() &lt;= 1</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_wtCyIbS3EeWpm8PSOGz-9g">
        <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_BoxMQEcFEd6besF9iFIJkQ"/>
      </generalization>
      <ownedAttribute xmi:id="_wtEAQrS3EeWpm8PSOGz-9g" name="estimatedDateOfDelivery" type="_vBswQBtpEeGT89b80j3MTg" isReadOnly="true" aggregation="composite">
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_wtEAQ7S3EeWpm8PSOGz-9g"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_wtEnULS3EeWpm8PSOGz-9g" value="1"/>
        <subsettedProperty href="pathmap://CDA_MODEL/cda.uml#_VmlJEUcGEd6besF9iFIJkQ"/>
        <association href="../consol.uml#_wtEAQbS3EeWpm8PSOGz-9g"/>
      </ownedAttribute>
    </nestedClassifier>
  </uml:Class>
  <CDA:CDATemplate xmi:id="_aXMCcBncEeGs5a462vYX5Q" base_Class="_2N6soBSVEeGGzu7fmW9pXw" templateId="2.16.840.1.113883.10.20.15.3.8">
    <ruleId>CONF:16768</ruleId>
    <ruleId>CONF:16868</ruleId>
  </CDA:CDATemplate>
  <CDA:PropertyValidation xmi:id="_2N6swxSVEeGGzu7fmW9pXw"/>
  <CDA:CodeSystemConstraint xmi:id="_2N6sxRSVEeGGzu7fmW9pXw" code="completed" base_Property="_2N6sxBSVEeGGzu7fmW9pXw">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_e8ZEoCWvEd-iTYfpNb4PkQ"/>
    <ruleId>CONF:455</ruleId>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_2N6suBSVEeGGzu7fmW9pXw"/>
  <CDA:PropertyValidation xmi:id="_2N6sthSVEeGGzu7fmW9pXw"/>
  <CDA:PropertyValidation xmi:id="_2N6stxSVEeGGzu7fmW9pXw"/>
  <CDA:PropertyValidation xmi:id="_2N6suRSVEeGGzu7fmW9pXw"/>
  <CDA:PropertyValidation xmi:id="_fX96MBrYEeGJ_KU17uNyeA" base_Property="_2JSEQBSVEeGGzu7fmW9pXw">
    <ruleId>CONF:8548</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_EqeHYBrZEeGJ_KU17uNyeA" base_Property="_2JSEQhSVEeGGzu7fmW9pXw">
    <ruleId>CONF:8549</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_v5G0cBrcEeGJ_KU17uNyeA" base_Property="_2N6svBSVEeGGzu7fmW9pXw">
    <ruleId>CONF:451</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_9IEwIBrcEeGJ_KU17uNyeA" base_Property="_2N6svhSVEeGGzu7fmW9pXw">
    <ruleId>CONF:452</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_-exn4BrdEeGJ_KU17uNyeA" code="ASSERTION" displayName="Assertion" base_Property="_2N6soxSVEeGGzu7fmW9pXw">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_4AnRQCYWEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_hYNdMBrkEeGJ_KU17uNyeA" severity="WARNING" base_Property="_WJgwIBrkEeGJ_KU17uNyeA">
    <ruleId>CONF:2018</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_1wvtEBtnEeGL6omwPdOIng" code="77386006" displayName="Pregnant" base_Property="_2N6ssBSVEeGGzu7fmW9pXw">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_ya6aMCWsEd-iTYfpNb4PkQ"/>
    <ruleId>CONF:Pending</ruleId>
  </CDA:CodeSystemConstraint>
  <CDA:ConstraintValidation xmi:id="_oW16cBtsEeGT89b80j3MTg" severity="WARNING" base_Constraint="_L9YKgBtsEeGT89b80j3MTg">
    <ruleId>CONF:8893</ruleId>
  </CDA:ConstraintValidation>
  <CDA:ConstraintValidation xmi:id="_BbV5sBttEeGT89b80j3MTg" severity="WARNING" base_Constraint="_4G8WIBtsEeGT89b80j3MTg">
    <ruleId>CONF:8894</ruleId>
  </CDA:ConstraintValidation>
  <uml:Class xmi:id="_vBswQBtpEeGT89b80j3MTg" name="EstimatedDateOfDelivery">
    <ownedComment xmi:id="_rEXPUDyXEeGOm9opnDhYAQ">
      <body>This clinical statement represents the anticipated date when a woman will give birth.</body>
    </ownedComment>
    <ownedRule xmi:id="_j_umcLTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryTemplateId" constrainedElement="_vBswQBtpEeGT89b80j3MTg">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_umcbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.15.3.1')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_wboLTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryClassCode" constrainedElement="_ct-GIBupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_wbobTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.classCode=vocab::ActClassObservation::OBS</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_0GALTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryCodeP" constrainedElement="_lcnRQBupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_0GAbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>true</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_yQ0LTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryCode" constrainedElement="_lcnRQBupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_yQ0bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in 
value.code = '11778-8' and value.codeSystem = '2.16.840.1.113883.6.1'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_17MLTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryMoodCode" constrainedElement="_lcnRQhupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_17MbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_5lkLTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryStatusCodeP" constrainedElement="_lcnRRBupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_5lkbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>true</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_3wYLTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryStatusCode" constrainedElement="_lcnRRBupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_3wYbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined() and self.statusCode.oclIsKindOf(datatypes::CS) and 
let value : datatypes::CS = self.statusCode.oclAsType(datatypes::CS) in 
value.code = 'completed'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_j_8B0LTBEeWEoeeTdrbyVw" name="EstimatedDateOfDeliveryValue" constrainedElement="_lcxCQBupEeG0YIoJCEsKqA">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_j_8B0bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | element.oclIsTypeOf(datatypes::TS))</body>
      </specification>
    </ownedRule>
    <generalization xmi:id="_vBvzkBtpEeGT89b80j3MTg">
      <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
    </generalization>
    <ownedAttribute xmi:id="_ct-GIBupEeG0YIoJCEsKqA" name="classCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_ppceEBupEeG0YIoJCEsKqA" value="OBS"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_FcjT0EbtEd6besF9iFIJkQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_lcnRQBupEeG0YIoJCEsKqA" name="code" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_WEYp4Eo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_lcnRQhupEeG0YIoJCEsKqA" name="moodCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_HHAIQBuqEeG0YIoJCEsKqA" value="EVN"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_BLZhcEo_Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_lcnRRBupEeG0YIoJCEsKqA" name="statusCode" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WGH2IRuuEeG0YIoJCEsKqA" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WGH2IBuuEeG0YIoJCEsKqA" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_c-D3cEo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_lcxCQBupEeG0YIoJCEsKqA" name="value" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_4ysYYD59Ed6cla2oXsPtlA"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_t1-9sRuuEeG0YIoJCEsKqA" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_t1-9sBuuEeG0YIoJCEsKqA" value="1"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_vYLJMBuuEeG0YIoJCEsKqA" value="TS"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_tRpv0Eo-Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
  </uml:Class>
  <CDA:CDATemplate xmi:id="_DA2mUBtqEeGT89b80j3MTg" base_Class="_vBswQBtpEeGT89b80j3MTg" templateId="2.16.840.1.113883.10.20.15.3.1">
    <ruleId>CONF:16762</ruleId>
    <ruleId>CONF:16763</ruleId>
  </CDA:CDATemplate>
  <CDA:PropertyValidation xmi:id="_qzYhoBupEeG0YIoJCEsKqA" base_Property="_ct-GIBupEeG0YIoJCEsKqA">
    <ruleId>CONF:444</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_wHqpQBuqEeG0YIoJCEsKqA" code="11778-8" base_Property="_lcnRQBupEeG0YIoJCEsKqA">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_3-cwsCWrEd-iTYfpNb4PkQ"/>
    <ruleId>CONF:446</ruleId>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_CDRIoBuqEeG0YIoJCEsKqA" base_Property="_lcnRQhupEeG0YIoJCEsKqA">
    <ruleId>CONF:445</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_cVGWUButEeG0YIoJCEsKqA" code="completed" base_Property="_lcnRRBupEeG0YIoJCEsKqA">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_e8ZEoCWvEd-iTYfpNb4PkQ"/>
    <ruleId>CONF:448</ruleId>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_KbRYkBuuEeG0YIoJCEsKqA" base_Property="_lcxCQBupEeG0YIoJCEsKqA">
    <ruleId>CONF:450</ruleId>
  </CDA:PropertyValidation>
  <uml:Association xmi:id="_5LuUQBtpEeGT89b80j3MTg" memberEnd="_5LuUQRtpEeGT89b80j3MTg">
    <ownedEnd xmi:id="_5LuUQRtpEeGT89b80j3MTg" type="_2N6soBSVEeGGzu7fmW9pXw" isReadOnly="true" association="_5LuUQBtpEeGT89b80j3MTg"/>
  </uml:Association>
  <CDA:ConstraintValidation xmi:id="_p6vxUDyWEeGOm9opnDhYAQ" base_Constraint="_O-ANcBttEeGT89b80j3MTg">
    <ruleId>CONF:8895</ruleId>
  </CDA:ConstraintValidation>
  <uml:Class xmi:id="_gIH_QOWQEeGKmvzED_He2w" name="TobaccoUse">
    <ownedComment xmi:id="_v5_OIOWTEeGKmvzED_He2w">
      <body>This clinical statement represents a patient's tobacco use. All types of tobacco use are represented using the codes from the tobacco use and exposure - finding hierarchy in SNOMED CT.</body>
    </ownedComment>
    <ownedRule xmi:id="_gBRpAOWTEeGKmvzED_He2w" name="TobaccoUseEffectiveTimeLow" constrainedElement="_gIH_QOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_hhh60OWTEeGKmvzED_He2w">
        <language>Analysis</language>
        <language>OCL</language>
        <body>effectiveTime SHALL contain exactly one [1..1] low</body>
        <body>not self.effectiveTime.oclIsUndefined() implies not self.effectiveTime.low.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lyTXUrTBEeWEoeeTdrbyVw" name="TobaccoUseTemplateId" constrainedElement="_gIH_QOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyT-YLTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.4.85')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lyVzkLTBEeWEoeeTdrbyVw" name="TobaccoUseClassCode" constrainedElement="_kh9GQOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyVzkbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.classCode=vocab::ActClassObservation::OBS</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lyXowLTBEeWEoeeTdrbyVw" name="TobaccoUseMoodCode" constrainedElement="_kh-UY-WQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyXowbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lybTILTBEeWEoeeTdrbyVw" name="TobaccoUseCodeP" constrainedElement="_kh9tUOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lybTIbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lyZd8LTBEeWEoeeTdrbyVw" name="TobaccoUseCode" constrainedElement="_kh9tUOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyZd8bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in 
value.code = 'ASSERTION' and value.codeSystem = '2.16.840.1.113883.5.4'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lydIULTBEeWEoeeTdrbyVw" name="TobaccoUseEffectiveTime" constrainedElement="_kh-UYOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lydIUbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.effectiveTime.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lyfkkLTBEeWEoeeTdrbyVw" name="TobaccoUseStatusCode" constrainedElement="_kh-7cOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyfkkbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined() and self.statusCode.oclIsKindOf(datatypes::CS) and 
let value : datatypes::CS = self.statusCode.oclAsType(datatypes::CS) in 
value.code = 'completed'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lyhZwLTBEeWEoeeTdrbyVw" name="TobaccoUseStatusCodeP" constrainedElement="_kh-7cOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyhZwbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lykdELTBEeWEoeeTdrbyVw" name="TobaccoUseValue" constrainedElement="_kh-7c-WQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lykdEbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = element.oclAsType(datatypes::CD) in 
value.codeSystem = '2.16.840.1.113883.6.96' and not value.code.oclIsUndefined())</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_ly-swLTBEeWEoeeTdrbyVw" name="TobaccoUseValueP" constrainedElement="_kh-7c-WQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_ly-swbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | element.oclIsTypeOf(datatypes::CD))</body>
      </specification>
    </ownedRule>
    <generalization xmi:id="_gIH_QeWQEeGKmvzED_He2w">
      <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
    </generalization>
    <ownedAttribute xmi:id="_kh9GQOWQEeGKmvzED_He2w" name="classCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_riaRQOWQEeGKmvzED_He2w" value="OBS"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_FcjT0EbtEd6besF9iFIJkQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_kh-UY-WQEeGKmvzED_He2w" name="moodCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_tj0vYOWQEeGKmvzED_He2w" value="EVN"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_BLZhcEo_Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_kh9tUOWQEeGKmvzED_He2w" name="code" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_WEYp4Eo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_kh-UYOWQEeGKmvzED_He2w" name="effectiveTime" visibility="private" isReadOnly="true" aggregation="composite">
      <ownedComment xmi:id="_ks4FQOg6EeSUlo9Nuj5Bcg">
        <body>Note: The effectiveTime represents the biologically relevant time of the observation. Thus, an observation of &quot;former smoker&quot; will have an effectiveTime defining the time during which the patient has been a former smoker; an observation of &quot;current smoker&quot; will have an effectiveTime defining the time during which the patient has been a current smoker.</body>
      </ownedComment>
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_9VrekOWQEeGKmvzED_He2w" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_9Vq3gOWQEeGKmvzED_He2w" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_fUQ50Eo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_kh-7cOWQEeGKmvzED_He2w" name="statusCode" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_2-hIMOWQEeGKmvzED_He2w" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_2-ghIOWQEeGKmvzED_He2w" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_c-D3cEo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_kh-7c-WQEeGKmvzED_He2w" name="value" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XvCGAeWTEeGKmvzED_He2w" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XvCGAOWTEeGKmvzED_He2w" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_tRpv0Eo-Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
  </uml:Class>
  <CDA:CDATemplate xmi:id="_moWLAOWQEeGKmvzED_He2w" base_Class="_gIH_QOWQEeGKmvzED_He2w" templateId="2.16.840.1.113883.10.20.22.4.85">
    <ruleId>CONF:16566</ruleId>
    <ruleId>CONF:16567</ruleId>
  </CDA:CDATemplate>
  <CDA:ConstraintValidation xmi:id="_jrvIkOWTEeGKmvzED_He2w" base_Constraint="_gBRpAOWTEeGKmvzED_He2w">
    <ruleId>CONF:16565</ruleId>
  </CDA:ConstraintValidation>
  <CDA:PropertyValidation xmi:id="_qi3f0OWQEeGKmvzED_He2w" base_Property="_kh9GQOWQEeGKmvzED_He2w">
    <ruleId>CONF:16558</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_uCirsOWQEeGKmvzED_He2w" base_Property="_kh-UY-WQEeGKmvzED_He2w">
    <ruleId>CONF:16559</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_v26zYOWQEeGKmvzED_He2w" base_Property="_kh9tUOWQEeGKmvzED_He2w">
    <ruleId>CONF:16560</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_wT_w8OWQEeGKmvzED_He2w" code="ASSERTION" displayName="Assertion" base_Property="_kh9tUOWQEeGKmvzED_He2w">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_4AnRQCYWEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_8mWTYOWQEeGKmvzED_He2w" base_Property="_kh-UYOWQEeGKmvzED_He2w">
    <ruleId>CONF:16564</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_1-cyUOWQEeGKmvzED_He2w" base_Property="_kh-7cOWQEeGKmvzED_He2w">
    <ruleId>CONF:16561</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_4hL00OWQEeGKmvzED_He2w" code="completed" displayName="Completed" base_Property="_kh-7cOWQEeGKmvzED_He2w">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_e8ZEoCWvEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:ValueSetConstraint xmi:id="_RzEd4OWTEeGKmvzED_He2w" base_Property="_kh-7c-WQEeGKmvzED_He2w">
    <ruleId>CONF:16563</ruleId>
    <reference href="../consol-vocab.uml#_EA1dEeWTEeGKmvzED_He2w"/>
  </CDA:ValueSetConstraint>
  <CDA:PropertyValidation xmi:id="_UO1VsOWTEeGKmvzED_He2w" base_Property="_kh-7c-WQEeGKmvzED_He2w">
    <ruleId>CONF:16562</ruleId>
  </CDA:PropertyValidation>
  <uml:Class xmi:id="_RYJj0OWQEeGKmvzED_He2w" name="SmokingStatusObservation">
    <ownedComment xmi:id="_0PTokOWTEeGKmvzED_He2w">
      <body>This clinical statement represents a patient's current smoking status. The vocabulary selected for this clinical statement is the best approximation of the statuses in Meaningful Use (MU) Stage 1.  &#xD;
If the patient is a smoker (77176002), the effectiveTime/low element must be present. If the patient is an ex-smoker (8517006), both the effectiveTime/low and effectiveTime/high element must be present.&#xD;
The smoking status value set includes a special code to communicate if the smoking status is unknown which is different from how Consolidated CDA generally communicates unknown information.</body>
    </ownedComment>
    <ownedRule xmi:id="_lxPAULTBEeWEoeeTdrbyVw" name="SmokingStatusObservationTemplateId" constrainedElement="_RYJj0OWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxPAUbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.templateId->exists(id : datatypes::II | id.root = '2.16.840.1.113883.10.20.22.4.78')</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxQ1gLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationClassCode" constrainedElement="_YzzdEOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxQ1gbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.classCode=vocab::ActClassObservation::OBS</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxSDoLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationMoodCode" constrainedElement="_Yz0rMOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxSDobTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.moodCode=vocab::x_ActMoodDocumentObservation::EVN</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxWVELTBEeWEoeeTdrbyVw" name="SmokingStatusObservationCodeP" constrainedElement="_Yz0EIOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxWVEbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxT40LTBEeWEoeeTdrbyVw" name="SmokingStatusObservationCode" constrainedElement="_Yz0EIOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxT40bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.code.oclIsUndefined() and self.code.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = self.code.oclAsType(datatypes::CD) in 
value.code = 'ASSERTION' and value.codeSystem = '2.16.840.1.113883.5.4'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxYKQLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationEffectiveTime" constrainedElement="_Yz0EIeWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxYKQbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.effectiveTime.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxZYYLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationStatusCode" constrainedElement="_Yz0rMeWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxZYYbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined() and self.statusCode.oclIsKindOf(datatypes::CS) and 
let value : datatypes::CS = self.statusCode.oclAsType(datatypes::CS) in 
value.code = 'completed'</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxb0oLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationStatusCodeP" constrainedElement="_Yz0rMeWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxb0obTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>not self.statusCode.oclIsUndefined()</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lxe38LTBEeWEoeeTdrbyVw" name="SmokingStatusObservationValue" constrainedElement="_Yz0rNOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lxe38bTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | not element.oclIsUndefined() and element.oclIsKindOf(datatypes::CD) and 
let value : datatypes::CD = element.oclAsType(datatypes::CD) in 
value.codeSystem = '2.16.840.1.113883.6.96' and (value.code = '449868002' or value.code = '428041000124106' or value.code = '8517006' or value.code = '266919005' or value.code = '77176002' or value.code = '266927001'))</body>
      </specification>
    </ownedRule>
    <ownedRule xmi:id="_lx35gLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationValueP" constrainedElement="_Yz0rNOWQEeGKmvzED_He2w">
      <specification xmi:type="uml:OpaqueExpression" xmi:id="_lx35gbTBEeWEoeeTdrbyVw">
        <language>OCL</language>
        <body>self.value->size() = 1 and self.value->forAll(element | element.oclIsTypeOf(datatypes::CD))</body>
      </specification>
    </ownedRule>
    <generalization xmi:id="_reIG0OWTEeGKmvzED_He2w">
      <general xmi:type="uml:Class" href="pathmap://CDA_MODEL/cda.uml#_bJyIQDxYEd6JwqSGecoePg"/>
    </generalization>
    <ownedAttribute xmi:id="_YzzdEOWQEeGKmvzED_He2w" name="classCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__yVecEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_4hWFgOWTEeGKmvzED_He2w" value="OBS"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_FcjT0EbtEd6besF9iFIJkQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_Yz0rMOWQEeGKmvzED_He2w" name="moodCode" visibility="private" isReadOnly="true">
      <type xmi:type="uml:Enumeration" href="pathmap://VOCAB_MODEL/vocab.uml#__zOoCEDcEd6xYZuu1VKCVw"/>
      <defaultValue xmi:type="uml:LiteralString" xmi:id="_8EXgUOWTEeGKmvzED_He2w" value="EVN"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_BLZhcEo_Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_Yz0EIOWQEeGKmvzED_He2w" name="code" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_WEYp4Eo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_Yz0EIeWQEeGKmvzED_He2w" name="effectiveTime" visibility="private" type="_W3DfwOq9EeSZr99IhXi9Zw" isReadOnly="true" aggregation="composite">
      <ownedComment xmi:id="_GDwm4Og6EeSUlo9Nuj5Bcg">
        <body>Note: This template represents a &quot;snapshot in time&quot; observation, simply reflecting what the patient's current smoking status is at the time of the observation. As a result, the effectiveTime is constrained to just a time stamp, and will approximately correspond with the author/time.</body>
      </ownedComment>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Pipd8OWUEeGKmvzED_He2w" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Pifs8OWUEeGKmvzED_He2w" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_fUQ50Eo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_Yz0rMeWQEeGKmvzED_He2w" name="statusCode" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_iYn74D55Ed6cla2oXsPtlA"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_PN0dceWUEeGKmvzED_He2w" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_PN0dcOWUEeGKmvzED_He2w" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_c-D3cEo8Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <ownedAttribute xmi:id="_Yz0rNOWQEeGKmvzED_He2w" name="value" visibility="private" isReadOnly="true" aggregation="composite">
      <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_VKl7EDxaEd6JwqSGecoePg"/>
      <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_WF5IgeWUEeGKmvzED_He2w" value="1"/>
      <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_WF5IgOWUEeGKmvzED_He2w" value="1"/>
      <redefinedProperty href="pathmap://CDA_MODEL/cda.uml#_tRpv0Eo-Ed6c3qsAxlFHaQ"/>
    </ownedAttribute>
    <nestedClassifier xmi:type="uml:Class" xmi:id="_W3DfwOq9EeSZr99IhXi9Zw" name="IVLTS">
      <ownedComment xmi:id="_bqDX4OrBEeSinuKq_KdHtQ">
        <body>INLINE</body>
      </ownedComment>
      <ownedRule xmi:id="_lyRiILTBEeWEoeeTdrbyVw" name="SmokingStatusObservationIVLTSCenter" constrainedElement="_eUgIwOq9EeSZr99IhXi9Zw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyRiIbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body> ( self.isNullFlavorUndefined() implies ((not ((not self.center.oclIsUndefined()) and self.center.isNullFlavorUndefined())) ))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_lySJMLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationIVLTSHigh" constrainedElement="_eUgIw-q9EeSZr99IhXi9Zw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_lySJMbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body> ( self.isNullFlavorUndefined() implies ((not ((not self.high.oclIsUndefined()) and self.high.isNullFlavorUndefined())) ))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_lySwQLTBEeWEoeeTdrbyVw" name="SmokingStatusObservationIVLTSLow" constrainedElement="_eUgIxuq9EeSZr99IhXi9Zw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_lySwQbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body> ( self.isNullFlavorUndefined() implies ((not ((not self.low.oclIsUndefined()) and self.low.isNullFlavorUndefined())) ))</body>
        </specification>
      </ownedRule>
      <ownedRule xmi:id="_lyTXULTBEeWEoeeTdrbyVw" name="SmokingStatusObservationIVLTSWidth" constrainedElement="_eUgIyeq9EeSZr99IhXi9Zw">
        <specification xmi:type="uml:OpaqueExpression" xmi:id="_lyTXUbTBEeWEoeeTdrbyVw">
          <language>OCL</language>
          <body> ( self.isNullFlavorUndefined() implies ((not ((not self.width.oclIsUndefined()) and self.width.isNullFlavorUndefined())) ))</body>
        </specification>
      </ownedRule>
      <generalization xmi:id="_W3Dfweq9EeSZr99IhXi9Zw">
        <general xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_QYeW4D5-Ed6cla2oXsPtlA"/>
      </generalization>
      <ownedAttribute xmi:id="_eUgIwOq9EeSZr99IhXi9Zw" name="center" visibility="private" isReadOnly="true" aggregation="composite">
        <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_4ysYYD59Ed6cla2oXsPtlA"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_XT1s8eq-EeSZr99IhXi9Zw"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_XT1s8Oq-EeSZr99IhXi9Zw"/>
        <redefinedProperty href="pathmap://DATATYPES_MODEL/datatypes.uml#_imjmAD6AEd6cla2oXsPtlA"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="_eUgIw-q9EeSZr99IhXi9Zw" name="high" visibility="private" isReadOnly="true" aggregation="composite">
        <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_BY5uUD6AEd6cla2oXsPtlA"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_YJ7nceq-EeSZr99IhXi9Zw"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_YJ7ncOq-EeSZr99IhXi9Zw"/>
        <redefinedProperty href="pathmap://DATATYPES_MODEL/datatypes.uml#_jfCGID6AEd6cla2oXsPtlA"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="_eUgIxuq9EeSZr99IhXi9Zw" name="low" visibility="private" isReadOnly="true" aggregation="composite">
        <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_BY5uUD6AEd6cla2oXsPtlA"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_Yz-C8eq-EeSZr99IhXi9Zw"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_Yz-C8Oq-EeSZr99IhXi9Zw"/>
        <redefinedProperty href="pathmap://DATATYPES_MODEL/datatypes.uml#_fmxbID6AEd6cla2oXsPtlA"/>
      </ownedAttribute>
      <ownedAttribute xmi:id="_eUgIyeq9EeSZr99IhXi9Zw" name="width" visibility="private" isReadOnly="true" aggregation="composite">
        <type xmi:type="uml:Class" href="pathmap://DATATYPES_MODEL/datatypes.uml#_3mPzYD59Ed6cla2oXsPtlA"/>
        <lowerValue xmi:type="uml:LiteralInteger" xmi:id="_ZeSyUeq-EeSZr99IhXi9Zw"/>
        <upperValue xmi:type="uml:LiteralUnlimitedNatural" xmi:id="_ZeSyUOq-EeSZr99IhXi9Zw"/>
        <redefinedProperty href="pathmap://DATATYPES_MODEL/datatypes.uml#_kXgmQD6AEd6cla2oXsPtlA"/>
      </ownedAttribute>
    </nestedClassifier>
  </uml:Class>
  <CDA:CDATemplate xmi:id="_93hgAOWTEeGKmvzED_He2w" base_Class="_RYJj0OWQEeGKmvzED_He2w" templateId="2.16.840.1.113883.10.20.22.4.78">
    <ruleId>CONF:14815</ruleId>
    <ruleId>CONF:14816</ruleId>
  </CDA:CDATemplate>
  <CDA:PropertyValidation xmi:id="_48H9AOWTEeGKmvzED_He2w" base_Property="_YzzdEOWQEeGKmvzED_He2w">
    <ruleId>CONF:14806</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_8arukOWTEeGKmvzED_He2w" base_Property="_Yz0rMOWQEeGKmvzED_He2w">
    <ruleId>CONF:14807</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_BYK8QOWUEeGKmvzED_He2w" base_Property="_Yz0EIOWQEeGKmvzED_He2w">
    <ruleId>CONF:14808</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_CSfPcOWUEeGKmvzED_He2w" code="ASSERTION" displayName="Assertion" base_Property="_Yz0EIOWQEeGKmvzED_He2w">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_4AnRQCYWEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_R6jJcOWUEeGKmvzED_He2w" message="Consol Smoking Status Observation SHALL contain exactly one [1..1] effectiveTime with @xsi:type=&quot;TS&quot; (CONF:14814)" base_Property="_Yz0EIeWQEeGKmvzED_He2w">
    <ruleId>CONF:14814</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_GdsEkOWUEeGKmvzED_He2w" base_Property="_Yz0rMeWQEeGKmvzED_He2w">
    <ruleId>CONF:14809</ruleId>
  </CDA:PropertyValidation>
  <CDA:CodeSystemConstraint xmi:id="_G4ULEOWUEeGKmvzED_He2w" code="completed" displayName="Completed" base_Property="_Yz0rMeWQEeGKmvzED_He2w">
    <reference href="pathmap://TERM_MODEL/CodeSystems.uml#_e8ZEoCWvEd-iTYfpNb4PkQ"/>
  </CDA:CodeSystemConstraint>
  <CDA:PropertyValidation xmi:id="_UsxZcOWUEeGKmvzED_He2w" base_Property="_Yz0rNOWQEeGKmvzED_He2w">
    <ruleId>CONF:14810</ruleId>
  </CDA:PropertyValidation>
  <CDA:ValueSetConstraint xmi:id="_Zp9sMOWUEeGKmvzED_He2w" base_Property="_Yz0rNOWQEeGKmvzED_He2w">
    <ruleId>CONF:14817</ruleId>
    <reference href="../consol-vocab.uml#_bgrWMOWUEeGKmvzED_He2w"/>
  </CDA:ValueSetConstraint>
  <CDA:PropertyValidation xmi:id="_Muzn4OWVEeGKmvzED_He2w" base_Property="_2JL9oBSVEeGGzu7fmW9pXw">
    <ruleId>CONF:14819</ruleId>
  </CDA:PropertyValidation>
  <uml:Association xmi:id="_VdJ4EuWVEeGKmvzED_He2w" memberEnd="_VdJ4E-WVEeGKmvzED_He2w">
    <ownedEnd xmi:id="_VdJ4E-WVEeGKmvzED_He2w" type="_2JKvgBSVEeGGzu7fmW9pXw" isReadOnly="true" association="_VdJ4EuWVEeGKmvzED_He2w"/>
  </uml:Association>
  <CDA:AssociationValidation xmi:id="_3fKvcOWWEeGKmvzED_He2w" severity="WARNING" base_Association="_VdJ4EuWVEeGKmvzED_He2w">
    <ruleId>CONF:14823</ruleId>
    <ruleId>CONF:14824</ruleId>
  </CDA:AssociationValidation>
  <uml:Association xmi:id="_nxV5wuWYEeGKmvzED_He2w" memberEnd="_nxV5w-WYEeGKmvzED_He2w">
    <ownedEnd xmi:id="_nxV5w-WYEeGKmvzED_He2w" type="_2JKvgBSVEeGGzu7fmW9pXw" isReadOnly="true" association="_nxV5wuWYEeGKmvzED_He2w"/>
  </uml:Association>
  <CDA:AssociationValidation xmi:id="_pxHZIOWYEeGKmvzED_He2w" severity="INFO" base_Association="_nxV5wuWYEeGKmvzED_He2w">
    <ruleId>CONF:16816</ruleId>
    <ruleId>CONF:16817</ruleId>
  </CDA:AssociationValidation>
  <CDA:PropertyValidation xmi:id="_2xQ1sOWYEeGKmvzED_He2w" base_Property="_2N6soxSVEeGGzu7fmW9pXw">
    <ruleId>CONF:454</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_mMh3UGRREeOD5bEp3nNX5w" base_Property="_2N6ssBSVEeGGzu7fmW9pXw">
    <ruleId>CONF:457</ruleId>
  </CDA:PropertyValidation>
  <CDA:PropertyValidation xmi:id="_TXiPcOq-EeSZr99IhXi9Zw" message="effectiveTime of type TS cannot include a center" base_Property="_eUgIwOq9EeSZr99IhXi9Zw"/>
  <CDA:PropertyValidation xmi:id="_TqWdwOq-EeSZr99IhXi9Zw" message="effectiveTime of type TS cannot include a high" base_Property="_eUgIw-q9EeSZr99IhXi9Zw"/>
  <CDA:PropertyValidation xmi:id="_T8eIgOq-EeSZr99IhXi9Zw" message="effectiveTime of type TS cannot include a low" base_Property="_eUgIxuq9EeSZr99IhXi9Zw"/>
  <CDA:PropertyValidation xmi:id="_UO5VQOq-EeSZr99IhXi9Zw" message="effectiveTime of type TS cannot include a width" base_Property="_eUgIyeq9EeSZr99IhXi9Zw"/>
  <CDA:Inline xmi:id="_wrPbUrS3EeWpm8PSOGz-9g" base_Class="_wrPbULS3EeWpm8PSOGz-9g"/>
  <CDA:Inline xmi:id="_wrR3krS3EeWpm8PSOGz-9g" base_Class="_wrR3kLS3EeWpm8PSOGz-9g"/>
  <CDA:Inline xmi:id="_wrUT0rS3EeWpm8PSOGz-9g" base_Class="_wrUT0LS3EeWpm8PSOGz-9g"/>
  <CDA:Inline xmi:id="_wrWwErS3EeWpm8PSOGz-9g" base_Class="_wrWwELS3EeWpm8PSOGz-9g"/>
  <CDA:Inline xmi:id="_wtCyIrS3EeWpm8PSOGz-9g" base_Class="_wtCyILS3EeWpm8PSOGz-9g"/>
  <Ecore:EClass xmi:id="_jCh-YLTBEeWEoeeTdrbyVw" base_Class="_2JKvgBSVEeGGzu7fmW9pXw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='SocialHistorySectionTemplateId SocialHistorySectionCode SocialHistorySectionCodeP SocialHistorySectionTitle SocialHistorySectionText SocialHistorySectionEntry' templateId.root='2.16.840.1.113883.10.20.22.2.17' code.code='29762-2' code.codeSystem='2.16.840.1.113883.6.1' code.codeSystemName='LOINC' code.displayName='Social history'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_jCuysLTBEeWEoeeTdrbyVw" base_Class="_2JOZ4BSVEeGGzu7fmW9pXw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='SocialHistoryObservationTemplateId SocialHistoryObservationReferenceValue SocialHistoryObservationClassCode SocialHistoryObservationMoodCode SocialHistoryObservationId SocialHistoryObservationStatusCode SocialHistoryObservationStatusCodeP' templateId.root='2.16.840.1.113883.10.20.22.4.38' constraints.validation.warning='SocialHistoryObservationOriginalText SocialHistoryObservationReference SocialHistoryObservationCode SocialHistoryObservationCodeP SocialHistoryObservationValue' classCode='OBS' moodCode='EVN' code.codeSystem='2.16.840.1.113883.6.96' code.codeSystemName='SNOMEDCT' constraints.validation.dependOn.SocialHistoryObservationCode='SocialHistoryObservationCodeP' statusCode.code='completed' constraints.validation.dependOn.SocialHistoryObservationStatusCode='SocialHistoryObservationStatusCodeP'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_jWI24LTBEeWEoeeTdrbyVw" base_Class="_2N6soBSVEeGGzu7fmW9pXw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='PregnancyObservationTemplateId PregnancyObservationClassCode PregnancyObservationMoodCode PregnancyObservationCode PregnancyObservationCodeP PregnancyObservationStatusCode PregnancyObservationStatusCodeP PregnancyObservationValue PregnancyObservationValueP PregnancyObservationEntryRelationship' templateId.root='2.16.840.1.113883.10.20.15.3.8' classCode='OBS' moodCode='EVN' code.code='ASSERTION' code.codeSystem='2.16.840.1.113883.5.4' code.codeSystemName='HL7ActCode' code.displayName='Assertion' constraints.validation.dependOn.PregnancyObservationCode='PregnancyObservationCodeP' statusCode.code='completed' constraints.validation.dependOn.PregnancyObservationStatusCode='PregnancyObservationStatusCodeP' value.code='77386006' value.codeSystem='2.16.840.1.113883.6.96' value.codeSystemName='SNOMEDCT' value.displayName='Pregnant' constraints.validation.warning='PregnancyObservationEffectiveTime'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_j_vNgLTBEeWEoeeTdrbyVw" base_Class="_vBswQBtpEeGT89b80j3MTg">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='EstimatedDateOfDeliveryTemplateId EstimatedDateOfDeliveryClassCode EstimatedDateOfDeliveryCode EstimatedDateOfDeliveryCodeP EstimatedDateOfDeliveryMoodCode EstimatedDateOfDeliveryStatusCode EstimatedDateOfDeliveryStatusCodeP EstimatedDateOfDeliveryValue' templateId.root='2.16.840.1.113883.10.20.15.3.1' classCode='OBS' code.code='11778-8' code.codeSystem='2.16.840.1.113883.6.1' code.codeSystemName='LOINC' constraints.validation.dependOn.EstimatedDateOfDeliveryCode='EstimatedDateOfDeliveryCodeP' moodCode='EVN' statusCode.code='completed' constraints.validation.dependOn.EstimatedDateOfDeliveryStatusCode='EstimatedDateOfDeliveryStatusCodeP'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_lxPnYLTBEeWEoeeTdrbyVw" base_Class="_RYJj0OWQEeGKmvzED_He2w">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='SmokingStatusObservationTemplateId SmokingStatusObservationClassCode SmokingStatusObservationMoodCode SmokingStatusObservationCode SmokingStatusObservationCodeP SmokingStatusObservationEffectiveTime SmokingStatusObservationStatusCode SmokingStatusObservationStatusCodeP SmokingStatusObservationValue SmokingStatusObservationValueP' templateId.root='2.16.840.1.113883.10.20.22.4.78' classCode='OBS' moodCode='EVN' code.code='ASSERTION' code.codeSystem='2.16.840.1.113883.5.4' code.codeSystemName='HL7ActCode' code.displayName='Assertion' constraints.validation.dependOn.SmokingStatusObservationCode='SmokingStatusObservationCodeP' statusCode.code='completed' value.codeSystem='2.16.840.1.113883.6.96' value.codeSystemName='SNOMEDCT'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_lyRiIrTBEeWEoeeTdrbyVw" base_Class="_W3DfwOq9EeSZr99IhXi9Zw">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='SmokingStatusObservationIVLTSCenter SmokingStatusObservationIVLTSHigh SmokingStatusObservationIVLTSLow SmokingStatusObservationIVLTSWidth'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_lyUlcLTBEeWEoeeTdrbyVw" base_Class="_gIH_QOWQEeGKmvzED_He2w">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.error='TobaccoUseTemplateId TobaccoUseEffectiveTimeLow TobaccoUseClassCode TobaccoUseMoodCode TobaccoUseCode TobaccoUseCodeP TobaccoUseEffectiveTime TobaccoUseStatusCode TobaccoUseStatusCodeP TobaccoUseValue TobaccoUseValueP' templateId.root='2.16.840.1.113883.10.20.22.4.85' classCode='OBS' moodCode='EVN' code.code='ASSERTION' code.codeSystem='2.16.840.1.113883.5.4' code.codeSystemName='HL7ActCode' code.displayName='Assertion' constraints.validation.dependOn.TobaccoUseCode='TobaccoUseCodeP' statusCode.code='completed' value.codeSystem='2.16.840.1.113883.6.96' value.codeSystemName='SNOMEDCT'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_ncLfMLTBEeWEoeeTdrbyVw" base_Class="_wrPbULS3EeWpm8PSOGz-9g">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='SocialHistorySectionSocialHistoryObservationEntrySocialHistoryObservation'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_neGKwLTBEeWEoeeTdrbyVw" base_Class="_wrR3kLS3EeWpm8PSOGz-9g">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='SocialHistorySectionPregnancyObservationEntryPregnancyObservation'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_ngDSkLTBEeWEoeeTdrbyVw" base_Class="_wrUT0LS3EeWpm8PSOGz-9g">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.warning='SocialHistorySectionSmokingStatusObservationEntrySmokingStatusObservation'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_nh660LTBEeWEoeeTdrbyVw" base_Class="_wrWwELS3EeWpm8PSOGz-9g">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='SocialHistorySectionTobaccoUseEntryTobaccoUse'</annotation>
  </Ecore:EClass>
  <Ecore:EClass xmi:id="_ofk14LTBEeWEoeeTdrbyVw" base_Class="_wtCyILS3EeWpm8PSOGz-9g">
    <annotation>http://www.openhealthtools.org/mdht/uml/cda/annotation constraints.validation.info='PregnancyObservationEstimatedDateOfDeliveryEntryRelationshipEstimatedDateOfDelivery'</annotation>
  </Ecore:EClass>
</xmi:XMI>
