Atrius India Core FHIR Implementation Guide
0.1.0 - ci-build

Atrius India Core FHIR Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: Atrius CMS165 CDS PlanDefinition

Draft as of 2026-08-30

Raw xml | Download


<PlanDefinition xmlns="http://hl7.org/fhir">
  <id value="atrius-cms165-cds"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/StructureDefinition/cdshooksserviceplandefinition|4.0.1"/>
  </meta>
  <language value="en"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><p>See <code>Library/AtriusCMS165ControllingHighBP</code> for CQL expression definitions.</p></div>
  </text>
  <contained>
    <Library>
      <id value="effective-data-requirements"/>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
          <code value="confirmed"/>
          <display value="Confirmed"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
          <code value="unconfirmed"/>
          <display value="Unconfirmed"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
          <code value="provisional"/>
          <display value="Provisional"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
          <code value="differential"/>
          <display value="Differential"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
          <code value="active"/>
          <display value="Active"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
          <code value="recurrence"/>
          <display value="Recurrence"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-directReferenceCode">
        <valueCoding>
          <system
                  value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
          <code value="relapse"/>
          <display value="Relapse"/>
        </valueCoding>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCMS165ControllingHighBP"/>
        </extension>
        <extension url="name">
          <valueString value="Essential Hypertension Diagnosis"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define &quot;Essential Hypertension Diagnosis&quot;:
  ( ( [ConditionProblemsHealthConcerns: &quot;Essential Hypertension&quot;]
      union [ConditionEncounterDiagnosis: &quot;Essential Hypertension&quot;]
  ).verified ( ) ) Hypertension
    where Hypertension.prevalenceInterval ( ) overlaps Interval[start of &quot;Measurement Period&quot;, start of &quot;Measurement Period&quot; + 6 months )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="0"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusAdultOutpatientEncounters"/>
        </extension>
        <extension url="name">
          <valueString value="Qualifying Encounters"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define &quot;Qualifying Encounters&quot;:
  (
    (
      [Encounter: &quot;Office Visit&quot;]
        union [Encounter: &quot;Annual Wellness Visit&quot;]
        union [Encounter: &quot;Preventive Care Services Established Office Visit, 18 and Up&quot;]
        union [Encounter: &quot;Preventive Care Services Initial Office Visit, 18 and Up&quot;]
        union [Encounter: &quot;Home Healthcare Services&quot;]
        union [Encounter: &quot;Virtual Encounter&quot;]
        union [Encounter: &quot;Telephone Visits&quot;]
    ).isQualifyingEncounterActive()
  ) ValidEncounter
    where FHIRHelpers.ToInterval(ValidEncounter.period as FHIR.Period) during day of &quot;Measurement Period&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="1"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCMS165ControllingHighBP"/>
        </extension>
        <extension url="name">
          <valueString value="Initial Population"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define &quot;Initial Population&quot;:
  AgeInYearsAt(end of &quot;Measurement Period&quot;) in Interval[18, 85]
    and exists &quot;Essential Hypertension Diagnosis&quot;
    and exists AdultOutpatientEncounters.&quot;Qualifying Encounters&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="2"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusStatus"/>
        </extension>
        <extension url="name">
          <valueString value="verified"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define fluent function verified(
  conditions List&lt;Choice&lt;ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns&gt;&gt;
):
  conditions C
    where C.verificationStatus is not null implies (
      FHIRHelpers.ToConcept(C.verificationStatus) ~ &quot;confirmed&quot;
        or FHIRHelpers.ToConcept(C.verificationStatus) ~ &quot;unconfirmed&quot;
        or FHIRHelpers.ToConcept(C.verificationStatus) ~ &quot;provisional&quot;
        or FHIRHelpers.ToConcept(C.verificationStatus) ~ &quot;differential&quot;
    )"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="3"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToConcept"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Converts the given FHIR [CodeableConcept](https://hl7.org/fhir/datatypes.html#CodeableConcept) value to a CQL Concept.
*/
define function ToConcept(concept FHIR.CodeableConcept):
    if concept is null then
        null
    else
        System.Concept {
            codes: concept.coding C return ToCode(C),
            display: concept.text.value
        }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="4"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToCode"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Converts the given FHIR [Coding](https://hl7.org/fhir/datatypes.html#Coding) value to a CQL Code.
*/
define function ToCode(coding FHIR.Coding):
    if coding is null then
        null
    else
        System.Code {
          code: coding.code.value,
          system: coding.system.value,
          version: coding.version.value,
          display: coding.display.value
        }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="5"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCommon"/>
        </extension>
        <extension url="name">
          <valueString value="prevalenceInterval"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
*/
define fluent function prevalenceInterval(condition Choice&lt;ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns&gt;):
  if condition.isActive() then
    Interval[start of condition.onset.toConditionTimingInterval(), end of condition.abatementInterval()]
  else
    (end of condition.abatementInterval()) abatementDate
      return if abatementDate is null then
        Interval[start of condition.onset.toConditionTimingInterval(), abatementDate)
      else
        Interval[start of condition.onset.toConditionTimingInterval(), abatementDate]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="6"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCommon"/>
        </extension>
        <extension url="name">
          <valueString value="isActive"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Returns true if the given condition has a clinical status of active, recurrence, or relapse
*/
define fluent function isActive(condition Choice&lt;ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns&gt;):
  FHIRHelpers.ToConcept(condition.clinicalStatus) ~ &quot;active&quot;
    or FHIRHelpers.ToConcept(condition.clinicalStatus) ~ &quot;recurrence&quot;
    or FHIRHelpers.ToConcept(condition.clinicalStatus) ~ &quot;relapse&quot;"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="7"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCommon"/>
        </extension>
        <extension url="name">
          <valueString value="toConditionTimingInterval"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Normalizes condition/allergy timing [x] (onset, abatement) to Interval&lt;DateTime&gt;.
@comment: Choice order matches AtriusIn modelinfo: dateTime | Age | Period | Range | string.
*/
define fluent function toConditionTimingInterval(choice Choice&lt;FHIR.dateTime, FHIR.Age, FHIR.Period, FHIR.Range, FHIR.string&gt;):
  case
    when choice is FHIR.dateTime then
      Interval[
        FHIRHelpers.ToDateTime(choice as FHIR.dateTime),
        FHIRHelpers.ToDateTime(choice as FHIR.dateTime)
      ]
    when choice is FHIR.Period then
      FHIRHelpers.ToInterval(choice as FHIR.Period)
    when choice is FHIR.Age then
      Interval[
        FHIRHelpers.ToDate(Patient.birthDate) + ToAgeQuantity(choice as FHIR.Age),
        FHIRHelpers.ToDate(Patient.birthDate) + ToAgeQuantity(choice as FHIR.Age) + 1 year
      )
    when choice is FHIR.Range then
      Interval[
        FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).low),
        FHIRHelpers.ToDate(Patient.birthDate) + FHIRHelpers.ToQuantity((choice as FHIR.Range).high) + 1 year
      ]
    else
      null as Interval&lt;DateTime&gt;
  end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="8"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToDateTime"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToDateTime(value dateTime): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="9"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToInterval"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Converts the given [Period](https://hl7.org/fhir/datatypes.html#Period)
value to a CQL DateTime Interval
@comment: If the start value of the given period is unspecified, the starting
boundary of the resulting interval will be open (meaning the start of the interval
is unknown, as opposed to interpreted as the beginning of time).
*/
define function ToInterval(period FHIR.Period):
    if period is null then
        null
    else
        if period.&quot;start&quot; is null then
            Interval(period.&quot;start&quot;.value, period.&quot;end&quot;.value]
        else
            Interval[period.&quot;start&quot;.value, period.&quot;end&quot;.value]"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="10"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToDate"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToDate(value date): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="11"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCommon"/>
        </extension>
        <extension url="name">
          <valueString value="ToAgeQuantity"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToAgeQuantity(age FHIR.Age):
  FHIRHelpers.ToQuantity(age as FHIR.Quantity)"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="12"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToQuantity"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Converts the given FHIR [Quantity](https://hl7.org/fhir/datatypes.html#Quantity) 
value to a CQL Quantity
@comment: If the given quantity has a comparator specified, a runtime error is raised. If the given quantity
has a system other than UCUM (i.e. `http://unitsofmeasure.org`) or CQL calendar units (i.e. `http://hl7.org/fhirpath/CodeSystem/calendar-units`)
an error is raised. For UCUM to calendar units, the `ToCalendarUnit` function is used.
@seealso: ToCalendarUnit
*/
define function ToQuantity(quantity FHIR.Quantity):
    case
        when quantity is null then null
        when quantity.value is null then null
        when quantity.comparator is not null then
            Message(null, true, 'FHIRHelpers.ToQuantity.ComparatorQuantityNotSupported', 'Error', 'FHIR Quantity value has a comparator and cannot be converted to a System.Quantity value.')
        when quantity.system is null or quantity.system.value = 'http://unitsofmeasure.org'
              or quantity.system.value = 'http://hl7.org/fhirpath/CodeSystem/calendar-units' then
            System.Quantity { value: quantity.value.value, unit: ToCalendarUnit(Coalesce(quantity.code.value, quantity.unit.value, '1')) }
        else
            Message(null, true, 'FHIRHelpers.ToQuantity.InvalidFHIRQuantity', 'Error', 'Invalid FHIR Quantity code: ' &amp; quantity.unit.value &amp; ' (' &amp; quantity.system.value &amp; '|' &amp; quantity.code.value &amp; ')')
    end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="13"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToCalendarUnit"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Converts a UCUM definite duration unit to a CQL calendar duration
unit using conversions specified in the [quantities](https://cql.hl7.org/02-authorsguide.html#quantities) 
topic of the CQL specification.
@comment: Note that for durations above days (or weeks), the conversion is understood to be approximate
*/
define function ToCalendarUnit(unit System.String):
    case unit
        when 'ms' then 'millisecond'
        when 's' then 'second'
        when 'min' then 'minute'
        when 'h' then 'hour'
        when 'd' then 'day'
        when 'wk' then 'week'
        when 'mo' then 'month'
        when 'a' then 'year'
        else unit
    end"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="14"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusCommon"/>
        </extension>
        <extension url="name">
          <valueString value="abatementInterval"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="/*
@description: Returns an interval representing the normalized abatement of a given Condition.
*/
define fluent function abatementInterval(condition Choice&lt;ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns&gt;):
  condition.abatement.toConditionTimingInterval()"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="15"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="AtriusAdultOutpatientEncounters"/>
        </extension>
        <extension url="name">
          <valueString value="isQualifyingEncounterActive"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define fluent function isQualifyingEncounterActive(Enc List&lt;Encounter&gt;):
  Enc E
    where FHIRHelpers.ToString(E.status) in { 'finished', 'in-progress', 'onhold', 'arrived' }"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="16"/>
        </extension>
      </extension>
      <extension
                 url="http://hl7.org/fhir/StructureDefinition/cqf-logicDefinition">
        <extension url="libraryName">
          <valueString value="FHIRHelpers"/>
        </extension>
        <extension url="name">
          <valueString value="ToString"/>
        </extension>
        <extension url="statement">
          <valueString
                       value="define function ToString(value EncounterStatus): value.value"/>
        </extension>
        <extension url="displaySequence">
          <valueInteger value="17"/>
        </extension>
      </extension>
      <name value="EffectiveDataRequirements"/>
      <status value="active"/>
      <type>
        <coding>
          <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
          <code value="module-definition"/>
        </coding>
      </type>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="AtriusIn model information"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/Library/AtriusIn-ModelInfo|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Status"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/Library/AtriusStatus|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library FHIRHelpers"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/Library/FHIRHelpers|4.4.000"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library Common"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/Library/AtriusCommon|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Library AdultOutpatientEncounters"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/Library/AtriusAdultOutpatientEncounters|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Code system ConditionVerificationStatusCodes"/>
        <resource
                  value="http://terminology.hl7.org/CodeSystem/condition-ver-status|2.0.1"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Code system ConditionClinicalStatusCodes"/>
        <resource
                  value="http://terminology.hl7.org/CodeSystem/condition-clinical|3.0.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Essential Hypertension"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-essential-hypertension|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Office Visit"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-office-visit|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Annual Wellness Visit"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-annual-wellness-visit|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Preventive Care Services Established Office Visit, 18 and Up"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-preventive-established-18up|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display
                 value="Value set Preventive Care Services Initial Office Visit, 18 and Up"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-preventive-initial-18up|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Home Healthcare Services"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-home-healthcare|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Virtual Encounter"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-virtual-encounter|0.1.0"/>
      </relatedArtifact>
      <relatedArtifact>
        <type value="depends-on"/>
        <display value="Value set Telephone Visits"/>
        <resource
                  value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-telephone-visits|0.1.0"/>
      </relatedArtifact>
      <parameter>
        <name value="Measurement Period"/>
        <use value="in"/>
        <min value="0"/>
        <max value="1"/>
        <type value="Period"/>
      </parameter>
      <parameter>
        <name value="Initial Population"/>
        <use value="out"/>
        <min value="0"/>
        <max value="1"/>
        <type value="boolean"/>
      </parameter>
      <dataRequirement>
        <type value="Patient"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Patient|4.0.1"/>
      </dataRequirement>
      <dataRequirement>
        <type value="Condition"/>
        <profile
                 value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-condition-problems-health-concerns|0.1.0"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-essential-hypertension|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Condition"/>
        <profile
                 value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-condition-encounter-diagnosis|0.1.0"/>
        <mustSupport value="code"/>
        <codeFilter>
          <path value="code"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-essential-hypertension|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-office-visit|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-annual-wellness-visit|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-preventive-established-18up|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-preventive-initial-18up|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-home-healthcare|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-virtual-encounter|0.1.0"/>
        </codeFilter>
      </dataRequirement>
      <dataRequirement>
        <type value="Encounter"/>
        <profile
                 value="http://hl7.org/fhir/StructureDefinition/Encounter|4.0.1"/>
        <mustSupport value="type"/>
        <mustSupport value="status"/>
        <mustSupport value="period"/>
        <codeFilter>
          <path value="type"/>
          <valueSet
                    value="https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-telephone-visits|0.1.0"/>
        </codeFilter>
      </dataRequirement>
    </Library>
  </contained>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-cdsHooksEndpoint">
    <valueUri
              value="https://cds.atrius.in/cds-services/atriuscms165controllinghighbp"/>
  </extension>
  <extension
             url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-effectiveDataRequirements">
    <valueCanonical value="#effective-data-requirements"/>
  </extension>
  <url
       value="https://atrius.in/fhir/r4/atrius-in/PlanDefinition/atrius-cms165-cds"/>
  <identifier>
    <use value="official"/>
    <value value="atriuscms165controllinghighbp"/>
  </identifier>
  <identifier>
    <system value="urn:ietf:rfc:3986"/>
    <value value="urn:oid:1.3.6.1.4.1.66219.1.34.6"/>
  </identifier>
  <version value="0.1.0"/>
  <name value="AtriusCMS165CDS"/>
  <title value="Atrius CMS165 Controlling High BP"/>
  <type>
    <coding>
      <system
              value="http://terminology.hl7.org/CodeSystem/plan-definition-type"/>
      <code value="eca-rule"/>
    </coding>
  </type>
  <status value="draft"/>
  <experimental value="true"/>
  <date value="2026-08-30T18:15:29+05:30"/>
  <publisher value="Atrius"/>
  <contact>
    <name value="Atrius"/>
    <telecom>
      <system value="url"/>
      <value value="https://atrius.in"/>
    </telecom>
  </contact>
  <description
               value="CDS Hooks service evaluating Initial Population from Library AtriusCMS165ControllingHighBP at patient-view."/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Atrius CMS165 Measure"/>
    <resource
              value="https://atrius.in/fhir/r4/atrius-in/Measure/AtriusCMS165ControllingHighBP|0.1.0"/>
  </relatedArtifact>
  <library
           value="https://atrius.in/fhir/r4/atrius-in/Library/AtriusCMS165ControllingHighBP|0.1.0"/>
  <action id="cds-evaluate-initial-population">
    <title value="CMS165 Initial Population"/>
    <description value="Evaluate Initial Population at patient-view hook."/>
    <trigger>
      <type value="named-event"/>
      <name value="patient-view"/>
    </trigger>
    <condition>
      <kind value="applicability"/>
      <expression>
        <language value="text/cql"/>
        <expression value="Initial Population"/>
      </expression>
    </condition>
    <input>
      <type value="Patient"/>
      <profile
               value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-patient|0.1.0"/>
    </input>
    <input>
      <type value="Condition"/>
      <profile
               value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-condition-encounter-diagnosis|0.1.0"/>
      <profile
               value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-condition-problems-health-concerns|0.1.0"/>
    </input>
    <input>
      <type value="Encounter"/>
      <profile
               value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-encounter|0.1.0"/>
    </input>
    <input>
      <type value="Observation"/>
      <profile
               value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-observation-vital-signs|0.1.0"/>
    </input>
    <input>
      <type value="Procedure"/>
      <profile
               value="https://atrius.in/fhir/r4/atrius-in/StructureDefinition/atrius-in-procedure|0.1.0"/>
    </input>
  </action>
</PlanDefinition>