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

Measure: Atrius CMS122 Measure (Experimental)

Official URL: https://atrius.in/fhir/r4/atrius-in/Measure/AtriusCMS122DiabetesAssessGT9Pct Version: 0.1.0
Draft as of 2026-09-21 Computable Name: AtriusCMS122DiabetesAssessGT9Pct
Other Identifiers: UUID:babcc365-49df-5b17-988c-656c11cde8f9 (use: official, ), UUID:655fe76d-924c-5ad6-8be8-a4b15f90990b (use: official, ), Short Name (use: usual, ), https://atrius.in/fhir/r4/atrius-in#AtriusInCanonical#AtriusCMS122DiabetesAssessGT9Pct (use: official, ), OID:1.3.6.1.4.1.66219.1.29.3

Proportion measure: adults 18–75 with diabetes and a qualifying outpatient encounter whose most recent glycemic status is >9%, missing, or unresulted. CMS labels this intermediate-outcome; THO measure-type 3.0.1 has no such code, so type is outcome. Improvement is decrease.

Metadata
Title Diabetes: HbA1c Poor Control >9% (Atrius CMS122)
Version 0.1.0
Short Name CMS122
GUID (Version Independent) urn:uuid:babcc365-49df-5b17-988c-656c11cde8f9
GUID (Version Specific) urn:uuid:655fe76d-924c-5ad6-8be8-a4b15f90990b
Identifier AtriusCMS122DiabetesAssessGT9Pct
Identifier urn:oid:1.3.6.1.4.1.66219.1.29.3
Status Draft
Experimental true
Steward (Publisher) Atrius
Steward Contact Atrius
Description

Proportion measure: adults 18–75 with diabetes and a qualifying outpatient encounter whose most recent glycemic status is >9%, missing, or unresulted. CMS labels this intermediate-outcome; THO measure-type 3.0.1 has no such code, so type is outcome. Improvement is decrease.

Measure Basis boolean
Measure Scoring proportion from http://terminology.hl7.org/CodeSystem/measure-scoring
Improvement Notation decrease from http://terminology.hl7.org/CodeSystem/measure-improvement-notation
Measure Type outcome from http://terminology.hl7.org/CodeSystem/measure-type
Dependency Description: Atrius CMS122 CQL Library
Resource: Atrius CMS122 Diabetes HbA1c Poor Control CQL version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusCMS122DiabetesAssessGT9Pct|0.1.0
Measure Group (Rate) (ID: group-1)

SDE Sex uses Patient.gender mapped to the same SNOMED Male/Female findings as CMS. SDE Payer uses AtriusIn coverage payer type (PM-JAY, ESIS, private, public, self-pay). SDE Residence (state/district) and SDE Urban Rural replace US Core race and ethnicity and are not US-comparable. Direct CPT/HCPCS nutrition-therapy encounter codes are omitted; Nutrition Services ValueSet carries that intent.

Measure Logic
Primary Library Atrius CMS122 Diabetes HbA1c Poor Control CQL version: 0.1.0
Contents Population Criteria
Logic Definitions
Terminology
Dependencies
Data Requirements
Parameters
Population Criteria
Measure Group (Rate) (ID: group-1)
Logic Definitions
Logic Definition Library Name: AtriusHospice
define "Has Hospice Services":
  exists ( ( ( [Encounter: "Encounter Inpatient"] ).isEncounterPerformed() ) InpatientEncounter
      where FHIRHelpers.ToConcept(InpatientEncounter.hospitalization.dischargeDisposition) ~ "Hospice (HL7 discharge)"
        and FHIRHelpers.ToInterval(InpatientEncounter.period as FHIR.Period) ends during day of "Measurement Period"
  )
    or exists ( ( ( [Encounter: "Hospice Encounter"] ).isEncounterPerformed() ) HospiceEncounter
        where FHIRHelpers.ToInterval(HospiceEncounter.period as FHIR.Period) overlaps day of "Measurement Period"
    )
    or exists ( ( ( [ObservationGeneralAssessment: "Hospice care [Minimum Data Set]"] ).isAssessmentPerformed() ) HospiceAssessment
        where FHIRHelpers.ToConcept(HospiceAssessment.value as FHIR.CodeableConcept) ~ "Yes (qualifier value)"
          and HospiceAssessment.effective.toObservationEffectiveInterval() overlaps day of "Measurement Period"
    )
    or exists ( ( ( [ServiceRequest: "Hospice Care Ambulatory"] ).isInterventionOrder() ) HospiceOrder
        where FHIRHelpers.ToDateTime(HospiceOrder.authoredOn) during day of "Measurement Period"
    )
    or exists ( ( ( [Procedure: "Hospice Care Ambulatory"] ).isInterventionPerformed() ) HospicePerformed
        where HospicePerformed.performed.toPerformedInterval() overlaps day of "Measurement Period"
    )
    or exists ( ( (
        [ConditionProblemsHealthConcerns: "Hospice Diagnosis"]
          union [ConditionEncounterDiagnosis: "Hospice Diagnosis"]
    ).verified() ) HospiceCareDiagnosis
        where HospiceCareDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
    )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Is Age 66 or Older Living Long Term in a Nursing Home":
  AgeInYearsAt(date from end of "Measurement Period") >= 66
    and (
      (
        Last(
          [Observation: "Housing status"] HousingStatus
            where HousingStatus.status in { 'final', 'amended', 'corrected' }
              and end of HousingStatus.observationEffectiveInterval() on or before day of end of "Measurement Period"
               sort by end of observationEffectiveInterval() asc
        )
      ) LastHousingStatus
        where LastHousingStatus.value is FHIR.CodeableConcept
          and FHIRHelpers.ToConcept(LastHousingStatus.value as FHIR.CodeableConcept) ~ "Lives in nursing home (finding)"
    ) is not null
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Frailty Device Order":
  exists (
    [DeviceRequest: "Frailty Device"] FrailtyDeviceOrder
      where FrailtyDeviceOrder.status in { 'active', 'completed' }
        and FrailtyDeviceOrder.intent in {
          'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order'
        }
        and Interval[
          FHIRHelpers.ToDateTime(FrailtyDeviceOrder.authoredOn),
          FHIRHelpers.ToDateTime(FrailtyDeviceOrder.authoredOn)
        ] during day of "Measurement Period"
  )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Frailty Equipment Observation":
  exists (
    [Observation: "Medical equipment used"] EquipmentUsed
      where EquipmentUsed.status in { 'final', 'amended', 'corrected' }
        and EquipmentUsed.value is FHIR.CodeableConcept
        and FHIRHelpers.ToConcept(EquipmentUsed.value as FHIR.CodeableConcept) in "Frailty Device"
        and end of EquipmentUsed.observationEffectiveInterval() during day of "Measurement Period"
  )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Frailty Diagnosis":
  exists (
    [ConditionProblemsHealthConcerns: "Frailty Diagnosis"] FrailtyProblem
      where (
        FrailtyProblem.verificationStatus is null
          or FHIRHelpers.ToConcept(FrailtyProblem.verificationStatus) ~ "confirmed"
          or FHIRHelpers.ToConcept(FrailtyProblem.verificationStatus) ~ "unconfirmed"
          or FHIRHelpers.ToConcept(FrailtyProblem.verificationStatus) ~ "provisional"
          or FHIRHelpers.ToConcept(FrailtyProblem.verificationStatus) ~ "differential"
      )
        and FrailtyProblem.prevalenceInterval() overlaps day of "Measurement Period"
  )
    or exists (
      [ConditionEncounterDiagnosis: "Frailty Diagnosis"] FrailtyEncounterDiagnosis
        where (
          FrailtyEncounterDiagnosis.verificationStatus is null
            or FHIRHelpers.ToConcept(FrailtyEncounterDiagnosis.verificationStatus) ~ "confirmed"
            or FHIRHelpers.ToConcept(FrailtyEncounterDiagnosis.verificationStatus) ~ "unconfirmed"
            or FHIRHelpers.ToConcept(FrailtyEncounterDiagnosis.verificationStatus) ~ "provisional"
            or FHIRHelpers.ToConcept(FrailtyEncounterDiagnosis.verificationStatus) ~ "differential"
        )
          and FrailtyEncounterDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
    )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Frailty Encounter":
  exists (
    [Encounter: "Frailty Encounter"] FrailtyEncounter
      where FrailtyEncounter.status = 'finished'
        and FHIRHelpers.ToInterval(FrailtyEncounter.period as FHIR.Period) overlaps day of "Measurement Period"
  )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Frailty Symptom Observation":
  exists (
    [Observation: "Frailty Symptom"] FrailtySymptom
      where FrailtySymptom.status in { 'preliminary', 'final', 'amended', 'corrected' }
        and FrailtySymptom.observationEffectiveInterval() overlaps day of "Measurement Period"
  )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Criteria Indicating Frailty":
  "Has Frailty Device Order"
    or "Has Frailty Equipment Observation"
    or "Has Frailty Diagnosis"
    or "Has Frailty Encounter"
    or "Has Frailty Symptom Observation"
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Advanced Illness in Year Before or During Measurement Period":
  exists (
    [ConditionProblemsHealthConcerns: "Advanced Illness"] AdvancedIllnessProblem
      where (
        AdvancedIllnessProblem.verificationStatus is null
          or FHIRHelpers.ToConcept(AdvancedIllnessProblem.verificationStatus) ~ "confirmed"
          or FHIRHelpers.ToConcept(AdvancedIllnessProblem.verificationStatus) ~ "unconfirmed"
          or FHIRHelpers.ToConcept(AdvancedIllnessProblem.verificationStatus) ~ "provisional"
          or FHIRHelpers.ToConcept(AdvancedIllnessProblem.verificationStatus) ~ "differential"
      )
        and start of AdvancedIllnessProblem.prevalenceInterval() during day of Interval[
          start of "Measurement Period" - 1 year,
          end of "Measurement Period"
        ]
  )
    or exists (
      [ConditionEncounterDiagnosis: "Advanced Illness"] AdvancedIllnessEncounterDiagnosis
        where (
          AdvancedIllnessEncounterDiagnosis.verificationStatus is null
            or FHIRHelpers.ToConcept(AdvancedIllnessEncounterDiagnosis.verificationStatus) ~ "confirmed"
            or FHIRHelpers.ToConcept(AdvancedIllnessEncounterDiagnosis.verificationStatus) ~ "unconfirmed"
            or FHIRHelpers.ToConcept(AdvancedIllnessEncounterDiagnosis.verificationStatus) ~ "provisional"
            or FHIRHelpers.ToConcept(AdvancedIllnessEncounterDiagnosis.verificationStatus) ~ "differential"
        )
          and start of AdvancedIllnessEncounterDiagnosis.prevalenceInterval() during day of Interval[
            start of "Measurement Period" - 1 year,
            end of "Measurement Period"
          ]
    )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Has Dementia Medications in Year Before or During Measurement Period":
  exists (
    [MedicationRequest: "Dementia Medications"] DementiaMedication
      where DementiaMedication.status = 'active'
        and DementiaMedication.intent in {
          'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order'
        }
        and DementiaMedication.medicationRequestPeriod() overlaps day of Interval[
          start of "Measurement Period" - 1 year,
          end of "Measurement Period"
        ]
  )
Logic Definition Library Name: AtriusAdvancedIllnessAndFrailty
define "Is Age 66 or Older with Advanced Illness and Frailty":
  AgeInYearsAt(date from end of "Measurement Period") >= 66
    and "Has Criteria Indicating Frailty"
    and (
      "Has Advanced Illness in Year Before or During Measurement Period"
        or "Has Dementia Medications in Year Before or During Measurement Period"
    )
Logic Definition Library Name: AtriusPalliativeCare
define "Has Palliative Care in the Measurement Period":
  exists (
    [ObservationGeneralAssessment: "Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)"] PalliativeAssessment
      where PalliativeAssessment.status in { 'final', 'amended', 'corrected' }
        and PalliativeAssessment.effective.toObservationEffectiveInterval() overlaps day of "Measurement Period"
  )
    or exists (
      [ConditionProblemsHealthConcerns: "Palliative Care Diagnosis"] PalliativeProblem
        where (
          PalliativeProblem.verificationStatus is null
            or FHIRHelpers.ToConcept(PalliativeProblem.verificationStatus) ~ "confirmed"
            or FHIRHelpers.ToConcept(PalliativeProblem.verificationStatus) ~ "unconfirmed"
            or FHIRHelpers.ToConcept(PalliativeProblem.verificationStatus) ~ "provisional"
            or FHIRHelpers.ToConcept(PalliativeProblem.verificationStatus) ~ "differential"
        )
          and PalliativeProblem.prevalenceInterval() overlaps day of "Measurement Period"
    )
    or exists (
      [ConditionEncounterDiagnosis: "Palliative Care Diagnosis"] PalliativeEncounterDiagnosis
        where (
          PalliativeEncounterDiagnosis.verificationStatus is null
            or FHIRHelpers.ToConcept(PalliativeEncounterDiagnosis.verificationStatus) ~ "confirmed"
            or FHIRHelpers.ToConcept(PalliativeEncounterDiagnosis.verificationStatus) ~ "unconfirmed"
            or FHIRHelpers.ToConcept(PalliativeEncounterDiagnosis.verificationStatus) ~ "provisional"
            or FHIRHelpers.ToConcept(PalliativeEncounterDiagnosis.verificationStatus) ~ "differential"
        )
          and PalliativeEncounterDiagnosis.prevalenceInterval() overlaps day of "Measurement Period"
    )
    or exists (
      [Encounter: "Palliative Care Encounter"] PalliativeEncounter
        where PalliativeEncounter.status = 'finished'
          and FHIRHelpers.ToInterval(PalliativeEncounter.period as FHIR.Period) overlaps day of "Measurement Period"
    )
    or exists (
      [Procedure: "Palliative Care Intervention"] PalliativeIntervention
        where PalliativeIntervention.status = 'completed'
          and PalliativeIntervention.performed.toPerformedInterval() overlaps day of "Measurement Period"
    )
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Glycemic Status Assessment":
  ( [Observation: "HbA1c Laboratory Test"]
      union [Observation: "Glucose management indicator"]
  ) GlycemicStatus
    where GlycemicStatus.status in { 'final', 'amended', 'corrected' }
      and GlycemicStatus.effective.toObservationEffectiveInterval ( ) during day of "Measurement Period"
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Most Recent Glycemic Status Date":
  Last(("Glycemic Status Assessment" QualifyingGlycemicStatus
      return date from end of QualifyingGlycemicStatus.effective.toObservationEffectiveInterval ( )) QualifyingGlycemicStatus
      sort asc
  )
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Lowest Glycemic Status Assessment Reading on Most Recent Day":
  First("Glycemic Status Assessment" QualifyingGlycemicStatus
      where end of QualifyingGlycemicStatus.effective.toObservationEffectiveInterval ( ) same day as "Most Recent Glycemic Status Date"
      return {
        QualifyingGlycemicStatusValue: QualifyingGlycemicStatus.value as Quantity,
        QualifyingGlycemicStatus: QualifyingGlycemicStatus
      }
      sort by QualifyingGlycemicStatusValue
  ).QualifyingGlycemicStatus
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Has Most Recent Glycemic Status Assessment Without Result":
  "Lowest Glycemic Status Assessment Reading on Most Recent Day" is not null
    and "Lowest Glycemic Status Assessment Reading on Most Recent Day".value is null
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Has Most Recent Elevated Glycemic Status Assessment":
  "Lowest Glycemic Status Assessment Reading on Most Recent Day".value > 9 '%'
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Has No Record Of Glycemic Status Assessment":
  not exists "Glycemic Status Assessment"
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Numerator":
  "Has Most Recent Glycemic Status Assessment Without Result"
    or "Has Most Recent Elevated Glycemic Status Assessment"
    or "Has No Record Of Glycemic Status Assessment"
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Qualifying Encounters":
  ( ( [Encounter: "Office Visit"]
      union [Encounter: "Annual Wellness Visit"]
      union [Encounter: "Preventive Care Services Established Office Visit, 18 and Up"]
      union [Encounter: "Preventive Care Services Initial Office Visit, 18 and Up"]
      union [Encounter: "Home Healthcare Services"]
      union [Encounter: "Nutrition Services"]
      union [Encounter: "Telephone Visits"]
  ).isEncounterPerformed ( ) ) ValidEncounters
    where ValidEncounters.period during day of "Measurement Period"
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Initial Population":
  AgeInYearsAt(date from
    end of "Measurement Period"
  ) in Interval[18, 75]
    and exists "Qualifying Encounters"
    and exists ( ( ( [ConditionEncounterDiagnosis: "Diabetes"] ).verified ( ) ) DiabetesDiagnosis
        where DiabetesDiagnosis.prevalenceInterval ( ) overlaps day of "Measurement Period"
    )
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Denominator":
  "Initial Population"
Logic Definition Library Name: AtriusCMS122DiabetesAssessGT9Pct
define "Denominator Exclusions":
  Hospice."Has Hospice Services"
    or AIFrailLTCF."Is Age 66 or Older Living Long Term in a Nursing Home"
    or AIFrailLTCF."Is Age 66 or Older with Advanced Illness and Frailty"
    or PalliativeCare."Has Palliative Care in the Measurement Period"
Logic Definition Library Name: AtriusStatus
define fluent function isEncounterPerformed(Enc List<Encounter>):
  Enc E
    where E.status = 'finished'
Logic Definition Library Name: AtriusStatus
define fluent function verified(
  conditions List<Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>>
):
  conditions C
    where C.verificationStatus is not null implies (
      FHIRHelpers.ToConcept(C.verificationStatus) ~ "confirmed"
        or FHIRHelpers.ToConcept(C.verificationStatus) ~ "unconfirmed"
        or FHIRHelpers.ToConcept(C.verificationStatus) ~ "provisional"
        or FHIRHelpers.ToConcept(C.verificationStatus) ~ "differential"
    )
Logic Definition Library Name: AtriusStatus
define fluent function isAssessmentPerformed(Obs List<Observation>):
  Obs O
    where O.status in { 'final', 'amended', 'corrected' }
Logic Definition Library Name: AtriusStatus
define fluent function isInterventionOrder(ServiceRequest List<ServiceRequest>):
  ServiceRequest S
    where S.status in { 'active', 'completed' }
      and S.intent in {
        'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order'
      }
Logic Definition Library Name: AtriusStatus
define fluent function isInterventionPerformed(Proc List<Procedure>):
  Proc P
    where P.status = 'completed'
Logic Definition Library Name: FHIRHelpers
define function ToString(value ObservationStatus): value.value
Logic Definition Library Name: FHIRHelpers
/*
@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: ' & quantity.unit.value & ' (' & quantity.system.value & '|' & quantity.code.value & ')')
    end
Logic Definition Library Name: FHIRHelpers
/*
@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
Logic Definition Library Name: FHIRHelpers
define function ToString(value EncounterStatus): value.value
Logic Definition Library Name: FHIRHelpers
/*
@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."start" is null then
            Interval(period."start".value, period."end".value]
        else
            Interval[period."start".value, period."end".value]
Logic Definition Library Name: FHIRHelpers
/*
@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
        }
Logic Definition Library Name: FHIRHelpers
/*
@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
        }
Logic Definition Library Name: FHIRHelpers
define function ToString(value ServiceRequestStatus): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value ServiceRequestIntent): value.value
Logic Definition Library Name: FHIRHelpers
define function ToDateTime(value dateTime): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value ProcedureStatus): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value DeviceRequestStatus): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value RequestIntent): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value string): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value MedicationRequestStatus): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value MedicationRequestIntent): value.value
Logic Definition Library Name: FHIRHelpers
define function ToString(value UnitsOfTime): value.value
Logic Definition Library Name: AtriusCumulativeMedicationDuration
/*
Now that we have a ToDaily function, we can approach calculation of the
duration of medication for an order. First, consider the definitions
for each element:
* 1 and only 1 dosageInstruction
* 1 and only 1 doseAndRate
* 1 timing with 1 repeat
* frequency, frequencyMax, defaulting to 1
* period, periodUnit, defaulting to 1 'd'
* doseQuantity or doseRange
* timeOfDay
* authoredOn: The date the prescription was written
* dispenseRequest.validityPeriod: Time period supply is authorized for
* dispenseRequest.quantity: amount of medication supplied per dispense
* dispenseRequest.numberOfRepeatsAllowed: number of refills authorized
* dispenseRequest.expectedSupplyDuration: number of days supply per dispense
* dosageInstruction.timing.repeat.boundsDuration: total duration of the repeat
* dosageInstruction.timing.repeat.boundsRange: range of durations of the repeat
* dosageInstruction.timing.repeat.boundsPeriod: period bounds of the repeat
* dosageInstruction.timing.repeat.count: number of times to repeat
* dosageInstruction.timing.repeat.countMax: maximum number of times to repeat
* dosageInstruction.timing.repeat.frequency: event occurs frequency times per period
* dosageInstruction.timing.repeat.frequencyMax: event occurs up to frequencyMax times per period
* dosageInstruction.timing.repeat.period: event occurs frequency times per period
* dosageInstruction.timing.repeat.periodMax: upper limit of period
* dosageInstruction.timing.repeat.periodUnit: period duration (s | min | h | d | wk | mo | a)
* dosageInstruction.timing.repeat.timeOfDay: time of day for the event (0..*)
* dosageInstruction.timing.repeat.when: event timing (HS | WAKE | C | CM | CD | CV | AC | ACM...)
* dosageInstruction.timing.code: BID | TID | QID | AM | PM | QD | QOD...
* dosageInstruction.asNeeded
* dosageInstruction.doseAndRate.doseQuantity
* dosageInstruction.doseAndRate.doseRange
If expectedSupplyDuration is present, then the duration is
    expectedSupplyDuration * (1 + numberOfRepeatsAllowed)
If expectedSupplyDuration is not present, then it must be calculated based on the quantity, dosage, and frequency:
    (quantity / (dosage * frequency)) * (1 + numberOfRepeatsAllowed)
    dosage: Coalesce(end of doseAndRate.doseRange, doseAndRate.doseQuantity)
    frequency: Coalesce(frequencyMax, frequency)
    period: Quantity(period, periodUnit)
If expectedSupplyDuration is not present and cannot be calculated, and the boundsPeriod is present (and completely specified), we can use that directly
    dosage.timing.repeat.boundsPeriod
This calculation results in a number of days, which can then be turned into a period by anchoring that to the
start of the validityPeriod or the authoredOn:
    Interval[earliestDispensable, earliestDispensable + expectedSupplyDuration - 1]
    earliestDispensable: Coalesce(start of validityPeriod, authoredOn)
The following function illustrates this completely:
*/

/*
Calculates the Medication Period for a single MedicationRequest.
MedicationRequest instances provided to this function are expected
to conform to the [MMEMedicationRequest](http://build.fhir.org/ig/cqframework/opioid-mme-r4/StructureDefinition-mmemedicationrequest.html)
profile, which expects:
* 1 and only 1 dosageInstruction, multiple dosageInstruction elements will result in an error
* 1 and only 1 doseAndRate, multiple doseAndRate elements will result in an error
* 1 timing with 1 repeat, missing timing or repeat elements will result in a null
* frequency, frequencyMax, defaulting to 1
* period, periodUnit, defaulting to 1 'd'
* timeOfDay
* doseQuantity or doseRange, missing doseQuantity and doseRange will result in a null
Note that MedicationRequest status is not considered by this calculation, as the
list of MedicationRequest instances provided to this function should already have
considered appropriate statuses, depending on the use case, typically `completed`.
*/

define fluent function medicationRequestPeriod(sourceRequest "MedicationRequest"):
  sourceRequest R
    let
      dosage: singleton from R.dosageInstruction,
      doseAndRate: singleton from dosage.doseAndRate,
      timing: dosage.timing,
      frequency: Coalesce(timing.repeat.frequencyMax.value, timing.repeat.frequency.value, 1),
      period: Quantity(
        Coalesce(timing.repeat.period.value, 1.0),
        Coalesce(timing.repeat.periodUnit, 'd')
      ),
      doseChoice: doseAndRate.dose,
      dose:
        case
          when doseChoice is FHIR.Range then FHIRHelpers.ToQuantity((doseChoice as FHIR.Range).high)
          when doseChoice is FHIR.SimpleQuantity then FHIRHelpers.ToQuantity(doseChoice as FHIR.SimpleQuantity)
          else null
        end,
      dosesPerDay: Coalesce(ToDaily(frequency, period), Count(timing.repeat.timeOfDay), 1.0),
      boundsPeriod: timingBoundsToInterval(timing.repeat.bounds),
      daysSupply:
        (convert FHIRHelpers.ToQuantity(R.dispenseRequest.expectedSupplyDuration as FHIR.Duration) to days).value,
      quantity: FHIRHelpers.ToQuantity(R.dispenseRequest.quantity as FHIR.Quantity),
      refills: Coalesce(R.dispenseRequest.numberOfRepeatsAllowed.value, 0),
      startDate:
        Coalesce(
          date from start of boundsPeriod,
          date from FHIRHelpers.ToDateTime(R.authoredOn as FHIR.dateTime),
          date from start of FHIRHelpers.ToInterval(R.dispenseRequest.validityPeriod as FHIR.Period)
        ),
      totalDaysSupplied: Coalesce(daysSupply, quantity.value / (dose.value * dosesPerDay)) * (1 + refills)
    return
      if startDate is not null and totalDaysSupplied is not null then
        Interval[startDate, startDate + Quantity(totalDaysSupplied - 1, 'day') ]
      else if startDate is not null and boundsPeriod."high" is not null then
        Interval[startDate, date from end of boundsPeriod]
      else
        null
Logic Definition Library Name: AtriusCumulativeMedicationDuration
/**********************************************************************/
/* Functions in this region are copied from opioid-mme-r4             */
/**********************************************************************/

define function Quantity(value Decimal, unit String):
  if value is not null then
    System.Quantity { value: value, unit: unit }
  else
    null
Logic Definition Library Name: AtriusCumulativeMedicationDuration
/*
 Goal is to get to number of days
 Two broad approaches to the calculation:
  1) Based on supply and frequency, calculate the number of expected days the medication will cover/has covered
  2) Based on relevant period, determine a covered interval and calculate the length of that interval in days
This topic covers several use cases and illustrates how to calculate Cumulative
Medication Duration for each type of medication resource using the supply and
frequency approach.
*/

/*
  For the first approach, we need to get from frequency to a frequency/day
  So we define ToDaily
*/

/*
  Calculates daily frequency given frequency within a period
*/
define function ToDaily(frequency System.Integer, period System.Quantity):
  case period.unit
    when 'h' then frequency * (24.0 / period.value)
    when 'min' then frequency * (24.0 / period.value) * 60
    when 's' then frequency * (24.0 / period.value) * 60 * 60
    when 'd' then frequency * (24.0 / period.value) / 24
    when 'wk' then frequency * (24.0 / period.value) / (24 * 7)
    when 'mo' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
    when 'a' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
    when 'hour' then frequency * (24.0 / period.value)
    when 'minute' then frequency * (24.0 / period.value) * 60
    when 'second' then frequency * (24.0 / period.value) * 60 * 60
    when 'day' then frequency * (24.0 / period.value) / 24
    when 'week' then frequency * (24.0 / period.value) / (24 * 7)
    when 'month' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
    when 'year' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
    when 'hours' then frequency * (24.0 / period.value)
    when 'minutes' then frequency * (24.0 / period.value) * 60
    when 'seconds' then frequency * (24.0 / period.value) * 60 * 60
    when 'days' then frequency * (24.0 / period.value) / 24
    when 'weeks' then frequency * (24.0 / period.value) / (24 * 7)
    when 'months' then frequency * (24.0 / period.value) / (24 * 30) /* assuming 30 days in month */
    when 'years' then frequency * (24.0 / period.value) / (24 * 365) /* assuming 365 days in year */
    else Message(null, true, 'CMDLogic.ToDaily.UnknownUnit', ErrorLevel, 'Unknown unit ' & period.unit)
  end
Logic Definition Library Name: AtriusCumulativeMedicationDuration
/*
@description: Normalizes Timing.repeat.bounds (Duration | Range | Period) to Interval<DateTime>.
@deprecated: Use AtriusCommon.toTimingBoundsInterval(); retained for include compatibility.
*/
define function timingBoundsToInterval(bounds Choice<FHIR.Duration, FHIR.Range, FHIR.Period>):
  bounds.toTimingBoundsInterval()
Logic Definition Library Name: AtriusCommon
define fluent function toObservationEffectiveInterval(choice Choice<FHIR.dateTime, FHIR.Period, FHIR.Timing, FHIR.instant>):
  choice.toInterval()
Logic Definition Library Name: AtriusCommon
/*
@description: Returns an interval representing the normalized prevalence period of a given Condition.
*/
define fluent function prevalenceInterval(condition Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>):
  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]
Logic Definition Library Name: AtriusCommon
/*
@description: Returns true if the given condition has a clinical status of active, recurrence, or relapse
*/
define fluent function isActive(condition Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>):
  FHIRHelpers.ToConcept(condition.clinicalStatus) ~ "active"
    or FHIRHelpers.ToConcept(condition.clinicalStatus) ~ "recurrence"
    or FHIRHelpers.ToConcept(condition.clinicalStatus) ~ "relapse"
Logic Definition Library Name: AtriusCommon
define fluent function toConditionTimingInterval(choice Choice<FHIR.dateTime, FHIR.Age, FHIR.Period, FHIR.Range, FHIR.string>):
  choice.toInterval()
Logic Definition Library Name: AtriusCommon
/*
@description: Returns an interval representing the normalized abatement of a given Condition.
*/
define fluent function abatementInterval(condition Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>):
  condition.abatement.toConditionTimingInterval()
Logic Definition Library Name: AtriusCommon
define fluent function toPerformedInterval(performed Choice<FHIR.dateTime, FHIR.Period, FHIR.string, FHIR.Age, FHIR.Range>):
  performed.toInterval()
Logic Definition Library Name: AtriusCommon
/*
@description: Normalizes Observation.effective[x] for any Observation retrieve.
*/
define fluent function observationEffectiveInterval(observation Observation):
  observation.effective.toObservationEffectiveInterval()
Logic Definition Library Name: AtriusCommon
define fluent function toTimingBoundsInterval(bounds Choice<FHIR.Duration, FHIR.Range, FHIR.Period>):
  bounds.toInterval()
Terminology
Code System Description: Code system LOINC
Resource: Logical Observation Identifiers, Names and Codes (LOINC)
Canonical URL: http://loinc.org
Code System Description: Code system ConditionVerificationStatusCodes
Resource: ConditionVerificationStatus version: 2.0.1
Canonical URL: http://terminology.hl7.org/CodeSystem/condition-ver-status|2.0.1
Code System Description: Code system ConditionClinicalStatusCodes
Resource: Condition Clinical Status Codes version: 3.0.0
Canonical URL: http://terminology.hl7.org/CodeSystem/condition-clinical|3.0.0
Code System Description: Code system DischargeDisposition
Resource: Discharge disposition version: 1.0.1
Canonical URL: http://terminology.hl7.org/CodeSystem/discharge-disposition|1.0.1
Code System Description: Code system SNOMEDCT
Resource: SNOMED CT (all versions)
Canonical URL: http://snomed.info/sct
Value Set Description: Value set HbA1c Laboratory Test
Resource: Atrius HbA1c Laboratory Test version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-hba1c-laboratory-test|0.1.0
Value Set Description: Value set Office Visit
Resource: Atrius Office Visit version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-office-visit|0.1.0
Value Set Description: Value set Annual Wellness Visit
Resource: Atrius Annual Wellness Visit version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-annual-wellness-visit|0.1.0
Value Set Description: Value set Preventive Care Services Established Office Visit, 18 and Up
Resource: Atrius Preventive Care Services Established Office Visit, 18 and Up version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-preventive-established-18up|0.1.0
Value Set Description: Value set Preventive Care Services Initial Office Visit, 18 and Up
Resource: Atrius Preventive Care Services Initial Office Visit, 18 and Up version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-preventive-initial-18up|0.1.0
Value Set Description: Value set Home Healthcare Services
Resource: Atrius Home Healthcare Services version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-home-healthcare|0.1.0
Value Set Description: Value set Nutrition Services
Resource: Atrius Nutrition Services version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-nutrition-services|0.1.0
Value Set Description: Value set Telephone Visits
Resource: Atrius Telephone Visits version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-telephone-visits|0.1.0
Value Set Description: Value set Diabetes
Resource: Atrius Diabetes version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-diabetes|0.1.0
Value Set Description: Value set Encounter Inpatient
Resource: Atrius Encounter Inpatient version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-encounter-inpatient|0.1.0
Value Set Description: Value set Hospice Encounter
Resource: Atrius Hospice Encounter version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-hospice-encounter|0.1.0
Value Set Description: Value set Hospice Care Ambulatory
Resource: Atrius Hospice Care Ambulatory version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-hospice-care-ambulatory|0.1.0
Value Set Description: Value set Hospice Diagnosis
Resource: Atrius Hospice Diagnosis version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-hospice-diagnosis|0.1.0
Value Set Description: Value set Frailty Device
Resource: Atrius Frailty Device version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-frailty-device|0.1.0
Value Set Description: Value set Frailty Diagnosis
Resource: Atrius Frailty Diagnosis version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-frailty-diagnosis|0.1.0
Value Set Description: Value set Frailty Encounter
Resource: Atrius Frailty Encounter version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-frailty-encounter|0.1.0
Value Set Description: Value set Frailty Symptom
Resource: Atrius Frailty Symptom version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-frailty-symptom|0.1.0
Value Set Description: Value set Advanced Illness
Resource: Atrius Advanced Illness version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-advanced-illness|0.1.0
Value Set Description: Value set Dementia Medications
Resource: Atrius Dementia Medications version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-dementia-medications|0.1.0
Value Set Description: Value set Palliative Care Diagnosis
Resource: Atrius Palliative Care Diagnosis version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-palliative-care-diagnosis|0.1.0
Value Set Description: Value set Palliative Care Encounter
Resource: Atrius Palliative Care Encounter version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-palliative-care-encounter|0.1.0
Value Set Description: Value set Palliative Care Intervention
Resource: Atrius Palliative Care Intervention version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/ValueSet/atrius-vs-palliative-care-intervention|0.1.0
Direct Reference Code Display: Glucose management indicator
Code: 97506-0
System: http://loinc.org
Direct Reference Code Display: Confirmed
Code: confirmed
System: http://terminology.hl7.org/CodeSystem/condition-ver-status
Direct Reference Code Display: Unconfirmed
Code: unconfirmed
System: http://terminology.hl7.org/CodeSystem/condition-ver-status
Direct Reference Code Display: Provisional
Code: provisional
System: http://terminology.hl7.org/CodeSystem/condition-ver-status
Direct Reference Code Display: Differential
Code: differential
System: http://terminology.hl7.org/CodeSystem/condition-ver-status
Direct Reference Code Display: Active
Code: active
System: http://terminology.hl7.org/CodeSystem/condition-clinical
Direct Reference Code Display: Recurrence
Code: recurrence
System: http://terminology.hl7.org/CodeSystem/condition-clinical
Direct Reference Code Display: Relapse
Code: relapse
System: http://terminology.hl7.org/CodeSystem/condition-clinical
Direct Reference Code Display: Hospice
Code: hosp
System: http://terminology.hl7.org/CodeSystem/discharge-disposition
Direct Reference Code Display: Hospice care [Minimum Data Set]
Code: 45755-6
System: http://loinc.org
Direct Reference Code Display: Yes
Code: 373066001
System: http://snomed.info/sct
Direct Reference Code Display: Housing status
Code: 71802-3
System: http://loinc.org
Direct Reference Code Display: Lives in a nursing home
Code: 160734000
System: http://snomed.info/sct
Direct Reference Code Display: Medical equipment used
Code: 98181-1
System: http://loinc.org
Direct Reference Code Display: Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal)
Code: 71007-9
System: http://loinc.org
Dependencies
Dependency Description: AtriusIn model information
Resource: Atrius India Core Model Definition version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusIn-ModelInfo|0.1.0
Dependency Description: Library FHIRHelpers
Resource: https://atrius.in/fhir/r4/atrius-in/Library/FHIRHelpers|4.4.000
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/FHIRHelpers|4.4.000
Dependency Description: Library QICoreCommon
Resource: Atrius Common CQL version: 0.1.0
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusCommon|0.1.0
Dependency Description: Library Status
Resource: https://atrius.in/fhir/r4/atrius-in/Library/AtriusStatus|1.15.000
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusStatus|1.15.000
Dependency Description: Library Hospice
Resource: https://atrius.in/fhir/r4/atrius-in/Library/AtriusHospice|6.18.000
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusHospice|6.18.000
Dependency Description: Library AIFrailLTCF
Resource: https://atrius.in/fhir/r4/atrius-in/Library/AtriusAdvancedIllnessAndFrailty|1.27.000
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusAdvancedIllnessAndFrailty|1.27.000
Dependency Description: Library AtriusCumulativeMedicationDuration
Resource: https://atrius.in/fhir/r4/atrius-in/Library/AtriusCumulativeMedicationDuration|6.0.000
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusCumulativeMedicationDuration|6.0.000
Dependency Description: Library PalliativeCare
Resource: https://atrius.in/fhir/r4/atrius-in/Library/AtriusPalliativeCare|1.18.000
Canonical URL: https://atrius.in/fhir/r4/atrius-in/Library/AtriusPalliativeCare|1.18.000
Data Requirements
Data Requirement Type: Observation
Profile(s): Observation version: 4.0.1
Must Support Elements: code, status, effective, value
Code Filter(s):
Path: code
ValueSet: Atrius HbA1c Laboratory Test version: 0.1.0
Data Requirement Type: Observation
Profile(s): Observation version: 4.0.1
Must Support Elements: code, status, effective, value
Code Filter(s):
Path: code
Code(s): LOINC: 97506-0 (Glucose management indicator)
Data Requirement Type: Observation
Profile(s): Observation version: 4.0.1
Must Support Elements: code, status, effective, value
Code Filter(s):
Path: code
Code(s): LOINC: 71802-3 (Housing status)
Data Requirement Type: Observation
Profile(s): Observation version: 4.0.1
Must Support Elements: code, status, value, effective
Code Filter(s):
Path: code
Code(s): LOINC: 71802-3 (Housing status)
Path: value
Data Requirement Type: Observation
Profile(s): Observation version: 4.0.1
Must Support Elements: code, status, value, effective
Code Filter(s):
Path: code
Code(s): LOINC: 98181-1 (Medical equipment used)
Path: value
ValueSet: Atrius Frailty Device version: 0.1.0
Data Requirement Type: Observation
Profile(s): Observation version: 4.0.1
Must Support Elements: code, status, effective, value
Code Filter(s):
Path: code
ValueSet: Atrius Frailty Symptom version: 0.1.0
Data Requirement Type: Patient
Profile(s): Patient version: 4.0.1
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Office Visit version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Annual Wellness Visit version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Preventive Care Services Established Office Visit, 18 and Up version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Preventive Care Services Initial Office Visit, 18 and Up version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Home Healthcare Services version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Nutrition Services version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Telephone Visits version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, hospitalization, hospitalization.dischargeDisposition, period, status
Code Filter(s):
Path: type
ValueSet: Atrius Encounter Inpatient version: 0.1.0
Path: hospitalization.dischargeDisposition
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, period, status
Code Filter(s):
Path: type
ValueSet: Atrius Hospice Encounter version: 0.1.0
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Frailty Encounter version: 0.1.0
Path: status
Code(s): [not stated]: finished (finished)
Data Requirement Type: Encounter
Profile(s): Encounter version: 4.0.1
Must Support Elements: type, status, period
Code Filter(s):
Path: type
ValueSet: Atrius Palliative Care Encounter version: 0.1.0
Path: status
Code(s): [not stated]: finished (finished)
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Encounter Diagnosis version: 0.1.0
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Atrius Diabetes version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Encounter Diagnosis version: 0.1.0
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Atrius Hospice Diagnosis version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Encounter Diagnosis version: 0.1.0
Must Support Elements: code, verificationStatus
Code Filter(s):
Path: code
ValueSet: Atrius Frailty Diagnosis version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Encounter Diagnosis version: 0.1.0
Must Support Elements: code, verificationStatus
Code Filter(s):
Path: code
ValueSet: Atrius Advanced Illness version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Encounter Diagnosis version: 0.1.0
Must Support Elements: code, verificationStatus
Code Filter(s):
Path: code
ValueSet: Atrius Palliative Care Diagnosis version: 0.1.0
Data Requirement Type: Observation
Profile(s): Atrius India Core Observation General Assessment version: 0.1.0
Must Support Elements: code, value, effective
Code Filter(s):
Path: code
Code(s): LOINC: 45755-6 (Hospice care [Minimum Data Set])
Path: value
Data Requirement Type: Observation
Profile(s): Atrius India Core Observation General Assessment version: 0.1.0
Must Support Elements: code, status, effective
Code Filter(s):
Path: code
Code(s): LOINC: 71007-9 (Functional Assessment of Chronic Illness Therapy - Palliative Care Questionnaire (FACIT-Pal))
Data Requirement Type: ServiceRequest
Profile(s): ServiceRequest version: 4.0.1
Must Support Elements: code, authoredOn, status, intent
Code Filter(s):
Path: code
ValueSet: Atrius Hospice Care Ambulatory version: 0.1.0
Data Requirement Type: Procedure
Profile(s): Procedure version: 4.0.1
Must Support Elements: code, performed, status
Code Filter(s):
Path: code
ValueSet: Atrius Hospice Care Ambulatory version: 0.1.0
Data Requirement Type: Procedure
Profile(s): Procedure version: 4.0.1
Must Support Elements: code, status, performed
Code Filter(s):
Path: code
ValueSet: Atrius Palliative Care Intervention version: 0.1.0
Path: status
Code(s): [not stated]: completed (completed)
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Problems Health Concerns version: 0.1.0
Must Support Elements: code
Code Filter(s):
Path: code
ValueSet: Atrius Hospice Diagnosis version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Problems Health Concerns version: 0.1.0
Must Support Elements: code, verificationStatus
Code Filter(s):
Path: code
ValueSet: Atrius Frailty Diagnosis version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Problems Health Concerns version: 0.1.0
Must Support Elements: code, verificationStatus
Code Filter(s):
Path: code
ValueSet: Atrius Advanced Illness version: 0.1.0
Data Requirement Type: Condition
Profile(s): Atrius India Core Condition Problems Health Concerns version: 0.1.0
Must Support Elements: code, verificationStatus
Code Filter(s):
Path: code
ValueSet: Atrius Palliative Care Diagnosis version: 0.1.0
Data Requirement Type: DeviceRequest
Profile(s): DeviceRequest version: 4.0.1
Must Support Elements: code, status, intent, authoredOn
Code Filter(s):
Path: code
ValueSet: Atrius Frailty Device version: 0.1.0
Data Requirement Type: Medication
Profile(s): Medication version: 4.0.1
Must Support Elements: id, code
Code Filter(s):
Path: code
ValueSet: Atrius Dementia Medications version: 0.1.0
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest version: 4.0.1
Must Support Elements: medication.reference, dosageInstruction, dispenseRequest, dispenseRequest.expectedSupplyDuration, dispenseRequest.quantity, dispenseRequest.numberOfRepeatsAllowed, dispenseRequest.numberOfRepeatsAllowed.value, authoredOn, dispenseRequest.validityPeriod, status, intent
Data Requirement Type: MedicationRequest
Profile(s): MedicationRequest version: 4.0.1
Must Support Elements: medication, dosageInstruction, dispenseRequest, dispenseRequest.expectedSupplyDuration, dispenseRequest.quantity, dispenseRequest.numberOfRepeatsAllowed, dispenseRequest.numberOfRepeatsAllowed.value, authoredOn, dispenseRequest.validityPeriod, status, intent
Code Filter(s):
Path: medication
ValueSet: Atrius Dementia Medications version: 0.1.0
Parameters
Name Use Card. Type Documentation
Measurement Period In 0..1 Period
ErrorLevel In 0..1 string
Numerator Out 0..1 boolean
Denominator Out 0..1 boolean
Initial Population Out 0..1 boolean
Denominator Exclusions Out 0..1 boolean
Generated using version 0.5.4 of the sample-content-ig Liquid templates