dQM QICore Content Implementation Guide
2025.0.0 - CI Build

dQM QICore Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-qicore-2025/ and changes regularly. See the Directory of published versions

Measure: Discharged on Antithrombotic TherapyFHIR

Official URL: https://madie.cms.gov/Measure/CMS104FHIRSTKDCAntithrombotic Version: 1.0.000
Active as of 2025-08-25 Responsible: The Joint Commission Computable Name: CMS104FHIRSTKDCAntithrombotic
Other Identifiers: Short Name: CMS104FHIR (use: usual, ), UUID:4f57e4a2-097b-45f8-9c85-91b35ea92dc1 (use: official, ), UUID:dc8991f8-9dd2-4c45-8310-7fefc9abada8 (use: official, ), Publisher: 104FHIR (use: official, )

Copyright/Legal: Measure specifications are in the Public Domain LOINC(R) copyright 2004-2024 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2024 International Health Terminology Standards Development Organisation. ICD-10 copyright 2024 World Health Organization. All Rights Reserved.

Ischemic stroke patients prescribed or continuing to take antithrombotic therapy at hospital discharge

Metadata
Title Discharged on Antithrombotic TherapyFHIR
Version 1.0.000
Short Name CMS104FHIR
GUID (Version Independent) urn:uuid:4f57e4a2-097b-45f8-9c85-91b35ea92dc1
GUID (Version Specific) urn:uuid:dc8991f8-9dd2-4c45-8310-7fefc9abada8
CMS Identifier 104FHIR
Effective Period 2026-01-01 through 2026-12-31
Steward (Publisher) The Joint Commission
Developer The Joint Commission
Description

Ischemic stroke patients prescribed or continuing to take antithrombotic therapy at hospital discharge

Copyright Measure specifications are in the Public Domain LOINC(R) copyright 2004-2024 Regenstrief Institute, Inc. This material contains SNOMED Clinical Terms(R) (SNOMED CT[R]) copyright 2004-2024 International Health Terminology Standards Development Organisation. ICD-10 copyright 2024 World Health Organization. All Rights Reserved.
Disclaimer These performance measures are not clinical guidelines, do not establish a standard of medical care, and have not been tested for all potential applications. The measures and specifications are provided without warranty.
Rationale The effectiveness of antithrombotic agents in reducing stroke mortality, stroke-related morbidity and recurrence rates has been studied in several large clinical trials. While the use of these agents for patients with acute ischemic stroke and transient ischemic attacks continues to be the subject of study, substantial evidence is available from completed studies. Data at this time suggest that antithrombotic therapy should be prescribed at discharge following acute ischemic stroke to reduce stroke mortality and morbidity if no contraindications exist. For patients with a stroke due to a cardioembolic source (e.g., atrial fibrillation, mechanical heart valve), warfarin is recommended unless contraindicated. In recent years, novel oral anticoagulant agents (NOACs) have been developed and approved by the U.S. Food and Drug Administration (FDA) for stroke prevention and may be considered as an alternative to warfarin for select patients. Anticoagulation therapy is not generally recommended for secondary stroke prevention in patients presumed to have a non-cardioembolic stroke Anticoagulants at doses to prevent venous thromboembolism are insufficient antithrombotic therapy to prevent recurrent ischemic stroke or transient ischemic attack (TIA).
Clinical Recommendation Statement Clinical trial results suggest that antithrombotic therapy should be prescribed at discharge following acute ischemic stroke to reduce stroke mortality and morbidity if no contraindications exist
Citation Adams, H. P., Jr., del Zoppo, G., Alberts, M. J., et al. (2007, May). Guidelines for the early management of adults with ischemic stroke: A guideline from the American Heart Association/American Stroke Association Stroke Council, Clinical Cardiology Council, Cardiovascular Radiology and Intervention Council, and the Atherosclerotic Peripheral Vascular Disease and Quality of Care Outcomes in Research Interdisciplinary Working Groups. Stroke, 38(5), 1655-1711.
Citation Adams, H., Adams, R., del Zoppo, G., et al. (2005, April). Guidelines for the early management of patients with ischemic stroke: 2005 guidelines update-A scientific statement from the Stroke Council of the American Heart Association/American Stroke Association. Stroke, 36(4): 916-923.
Citation Albers, G. W, Amarenco, P., Easton, J. D., et al. (2001). Antithrombotic and thrombolytic therapy for ischemic stroke. Chest, 119, 300-320.
Citation Albers, G. W., Amarenco, P., Easton, J. D., et al. (2004, September). Antithrombotic and thrombolytic therapy for ischemic stroke: The Seventh ACCP Conference on Antithrombotic and Thrombolytic Therapy. Chest, 126(3), 483S-512S.
Citation Antiplatelet Trialists' Collaboration. (1994, January 8). Collaborative overview of randomised trials of antiplatelet therapy-I: Prevention of death, myocardial infarction, and stroke by prolonged antiplatelet therapy in various categories of patients. BMJ, 308(6921), 81-106.
Citation Antithrombotic Trialists' Collaboration. (2002, January 12). Collaborative meta-analysis of randomised trials of antiplatelet therapy for prevention of death, myocardial infarction, and stroke in high-risk patients. BMJ, 324(7329), 71-86.
Citation Bhatt, D. L., Fox, K. A., Hacke, W., et al. (2006, April 20). Clopidogrel and aspirin versus aspirin alone for the prevention of atherothrombotic events. New England Journal of Medicine, 354(16), 1706-1717.
Citation Brott, T. G., Clark, W. M., Fagan, S. C., et al. (2000). Stroke: The first hours. Guidelines for acute treatment. Washington, DC: National Stroke Association.
Citation Canadian Cooperative Study Group. (1978, July 13). A randomized trial of aspirin and sulfinpyrazone in threatened stroke. New England Journal of Medicine, 299(2), 53-59.
Citation CAPRIE Steering Committee. (1996, November 16). A randomised, blinded trial of clopidogrel versus aspirin in patients at risk of ischaemic events (CAPRIE). Lancet, 348(9038), 1329-1339.
Citation Centers for Disease Control and Prevention. (2009, May 1). Prevalence and most common causes of disability among adults-United States, 2005. Morbidity and Mortality Weekly Report, 58(16), 421-426.
Citation Chen, Z. M., Sandercock, P., Pan, H. C., et al. (2000, June). Indications for early aspirin use in acute ischemic stroke: A combined analysis of 40,000 randomized patients from the Chinese Acute Stroke Trial and the International Stroke Trial. Stroke, 31(6), 1240-1249.
Citation Coull, B. M., Williams, L. S., Goldstein, L. B., et al. (2002, July). Anticoagulants and antiplatelet agents in acute ischemic stroke: Report of the Joint Stroke Guideline Development Committee of the American Academy of Neurology and the American Stroke Association (a Division of the American Heart Association). Stroke, 33(7), 1934-1942.
Citation Diener, H. C., Bogousslavsky, J., Brass, L. M., et al. (2004, July). Aspirin and lopidogrel compared with clopidogrel alone after recent ischaemic stroke or transient ischaemic attack in high-risk patients (MATCH): Randomised, double-blind, placebo-controlled trial. Lancet, 364(9431), 331-337.
Citation Dutch Tia Trial Study Group. (1991, October 31). A comparison of two doses of aspirin (30 mg vs. 283 mg a day) in patients after a transient ischemic attack or minor ischemic stroke. New England Journal of Medicine, 325(18), 1261-1266.
Citation Eccles, M., Freemantle, N., & Mason, J. (1998, April 25). North of England Evidence-Based Guideline Development Project: Guideline on the use of aspirin as secondary prophylaxis for vascular disease in primary care. BMJ, 316(7140), 1303-1309.
Citation ESPRIT Study Group, Halkes, P. H., van Gijn, J., et al. (2006, May 20). Aspirin plus dipyridamole versus aspirin alone after cerebral ischaemia of arterial origin (ESPRIT): Randomised controlled trial. Lancet, 367(9523), 1665-1673.
Citation ESPS Group. (1987, December 12). The European Stroke Prevention Study (ESPS): Principal end-points. Lancet, 2(8572), 1351-1354.
Citation Farrell, B., Godwin, J., Richards, S., et al. (1991, December). The United Kingdom Transient Ischaemic Attack (Uk-Tia) Aspirin Trial: Final results. Journal of Neurology, Neurosurgery, and Psychiatry, 54(12), 1044-1054.
Citation Gaspoz, J. M., Coxson, P. G., Goldman, P. A., et al. (2002, June 6). Cost effectiveness of aspirin, clopidogrel, or both for secondary prevention of coronary heart disease. New England Journal of Medicine, 346(23), 1800-1806.
Citation Gent, M., Blakely, J. A., Easton, J. D., et al. (1989, June 3). The Canadian American Ticlopidine Study (CATS) in thromboembolic stroke. Lancet 1(8649), 1215-1220.
Citation Gorelick, P. B., Richardson, D., Kelly, M., et al. (2003, June 11). Aspirin and ticlopidine for prevention of recurrent stroke in black patients: A randomized trial. JAMA, 289(22), 2947-2957.
Citation Guyatt, G. H., Akl, E. A., Crowther, M., et al. (2012, February). Executive summary: Antithrombotic therapy and prevention of thrombosis, 9th ed.: American College of Chest Physicians evidence-based clinical practice guidelines. Chest, 141(2 Suppl.), 7S-47S.
Citation Guyatt, G., Schunemann, H., Cook, D., et al. (2001, January). Grades of recommendation for antithrombotic agents. Chest, 119(1 Suppl.), 3S-7S.
Citation Hass, W. K., Easton, J. D., Adams, H. P., Jr., et al. (1989, August 24). Randomized trial comparing ticlopidine hydrochloride with aspirin for the prevention of stroke in high-risk patients. New England Journal of Medicine, 321(8), 501-507.
Citation International Stroke Trial Collaborative Group. (1997, May 31). The International Stroke Trial (IST): A randomised trial of aspirin, subcutaneous heparin, both, or neither among 19,435 patients with acute ischaemic stroke. Lancet, 349(9065), 1569-1581.
Citation Jauch, E. C., Saver, J. L., Adams, H. P., Jr., et al. (2013). Guidelines for the early management of patients with acute ischemic stroke: A guideline for health care professionals from the American Heart Association/American Stroke Association. Stroke, 44(3), 870-947.
Citation Johnson, E. S., Lanes, S. F., Wentworth, C. E., III, et al. (1999, June 14). A metaregression analysis of the dose-response effect of aspirin on stroke. Archives of Internal Medicine, 159(11), 1248-1253.
Citation Kennedy, J., Hill, M. D., Ryckborst, K. J., et al. (2007, November). Fast assessment of stroke and transient ischaemic attack to prevent early recurrence (FASTER): A randomised controlled pilot trial. Lancet Neurology, 6(11): 961-969.
Citation Kernan, W. N., Ovbiagele, B., Black, H. R., et al. (2014, May). Guidelines for the prevention of stroke in patients with stroke and transient ischemic attack: A guideline for health care professionals from the American Heart Association/American Stroke Association. Stroke, 45(7), 2160-2223.
Citation Kleindorfer, D. O., Towfighi, A., Chaturvedi, S., Cockroft, K. M., Gutierrez, J., Lombardi-Hill, D., ... Williams, L. S. (2021). 2021 guideline for the prevention of stroke in patients with stroke and transient ischemic attack: A guideline from the American Heart Association/American Stroke Association. Stroke, 52(7), e364-e467. https://doi.org/10.1161/STR.0000000000000375
Citation Powers, W. J., Rabinstein, A. A., Ackerson, T., et al. (2018, January). 2018 guidelines for the early management of patients with acute ischemic stroke: A guideline for health care professionals from the American Heart Association/American Stroke Association. Stroke, 49, e45-e46.
Citation Roger, V. L., Go, A. S., Lloyd-Jones, D. M., et al. (2012, January 3). Heart disease and stroke statistics-2012 update: A report from the American Heart Association. Circulation, 125(1), e2-e220.
Citation Sacco, R. L., Diener, H. C., Yusuf, S., et al. (2008, September 18). Aspirin and Extended-Release Dipyridamole Versus Clopidogrel for Recurrent Stroke. New England Journal of Medicine, 359(12), 1238-1251.
Citation SALT Collaborative Group. (1991, November 30). Swedish Aspirin Low-Dose Trial (SALT) of 75 mg aspirin as secondary prophylaxis after cerebrovascular ischaemic events. Lancet, 338(8779), 1345-1349.
Citation UK-Tia Study Group. (1988, January 30). United Kingdom Transient Ischaemic Attack (UK-Tia) Aspirin Trial: Interim results. British Medical Journal (Clinical Research Ed.), 296(6618), 316-320.
Guidance (Usage)

The "Nonelective Inpatient Encounter" value set intends to capture all non-scheduled hospitalizations. This value set is a subset of the "Inpatient encounter" value set, excluding concepts that specifically refer to elective hospital admissions. Non-elective admissions include emergency, urgent and unplanned admissions.

New or continuing antithrombotic medications are included with the use of the MedicationRequest QI-Core Profile. The Profile's community and discharge category codes indicate that the medications should be taken by or given to the patient after being discharged.

The denominator population includes patients with inpatient hospitalizations and patients from Acute Hospital Care at Home programs, who are treated and billed as inpatients but receive care in their home.

This dQM is an episode-based measure. An episode is defined as each inpatient hospitalization or encounter that ends during the measurement period. This FHIR-based measure has been derived from the QDM-based measure: CMS104v14. Please refer to the HL7 QI-Core Implementation Guide (https://hl7.org/fhir/us/qicore/STU6/) for more information on QI-Core and mapping recommendations from QDM to QI-Core STU 6. (https://hl7.org/fhir/us/qicore/STU6/qdm-to-qicore.html).

Measure Group (Rate) (ID: Group_1)
Basis Encounter
Scoring [http://terminology.hl7.org/CodeSystem/measure-scoring#proportion: 'Proportion']
Type [http://terminology.hl7.org/CodeSystem/measure-type#process: 'Process']
Rate Aggregation None
Improvement Notation [http://terminology.hl7.org/CodeSystem/measure-improvement-notation#increase: 'Increased score indicates improvement']
Initial Population ID: InitialPopulation_1
Description:

Inpatient hospitalizations (non-elective admissions) for patients age 18 and older, discharged from inpatient care with a principal diagnosis of ischemic stroke, ending during the measurement period

Logic Definition: Initial Population
Denominator ID: Denominator_1
Description:

Equals Initial Population

Logic Definition: Denominator
Denominator Exclusion ID: DenominatorExclusion_1
Description:

  • Inpatient hospitalizations for patients admitted for elective carotid intervention. This exclusion is implicitly modeled by only including non-elective hospitalizations.

  • Inpatient hospitalizations for patients discharged to another hospital

  • Inpatient hospitalizations for patients who left against medical advice

  • Inpatient hospitalizations for patients who expired

  • Inpatient hospitalizations for patients discharged to home for hospice care

  • Inpatient hospitalizations for patients discharged to a health care facility for hospice care

  • Inpatient hospitalizations for patients with comfort measures documented

Logic Definition: Denominator Exclusions
Numerator ID: Numerator_1
Description:

Inpatient hospitalizations for patients prescribed or continuing to take antithrombotic therapy at hospital discharge

Logic Definition: Numerator
Denominator Exception ID: DenominatorException_1
Description:

  • Inpatient hospitalizations for patients with a documented reason for not prescribing antithrombotic therapy at discharge

  • Inpatient hospitalizations for patients who receive Prasugrel as an antithrombotic therapy at discharge

Logic Definition: Denominator Exceptions
Supplemental Data Guidance

For every patient evaluated by this measure also identify payer, race, ethnicity and sex

Supplemental Data Elements
Supplemental Data Element ID: sde-ethnicity
Usage Code: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]
Description: SDE Ethnicity
Logic Definition: SDE Ethnicity
Supplemental Data Element ID: sde-payer
Usage Code: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]
Description: SDE Payer
Logic Definition: SDE Payer
Supplemental Data Element ID: sde-race
Usage Code: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]
Description: SDE Race
Logic Definition: SDE Race
Supplemental Data Element ID: sde-sex
Usage Code: [http://terminology.hl7.org/CodeSystem/measure-data-usage#supplemental-data]
Description: SDE Sex
Logic Definition: SDE Sex
Measure Logic
Primary Library https://madie.cms.gov/Library/CMS104FHIRSTKDCAntithrombotic
Contents Population Criteria
Logic Definitions
Terminology
Dependencies
Data Requirements
Population Criteria
Measure Group (Rate) (ID: Group_1)
Initial Population
define "Initial Population":
  TJC."Ischemic Stroke Encounter"
Denominator
define "Denominator":
  "Initial Population"
Denominator Exclusion
define "Denominator Exclusions":
  TJC."Ischemic Stroke Encounters With Discharge Disposition"
    union TJC."Encounter With Comfort Measures During Hospitalization"
Numerator
define "Numerator":
  TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter
    with ["MedicationRequest": "Antithrombotic Therapy for Ischemic Stroke"] DischargeAntithrombotic
      such that DischargeAntithrombotic.status in { 'active', 'completed' }
        and DischargeAntithrombotic.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
        and ( DischargeAntithrombotic.isCommunity ( )
            or DischargeAntithrombotic.isDischarge ( )
        )
        and DischargeAntithrombotic.authoredOn during IschemicStrokeEncounter.period
        and not exists ( ["TaskRejected"] TaskReject
            where TaskReject.focus.references ( DischargeAntithrombotic )
              and TaskReject.code ~ QICoreCommon."Fulfill"
        )
Denominator Exception
define "Denominator Exceptions":
  "Encounter With Documented Reason For No Antithrombotic At Discharge"
    union "Encounter With Pharmacological Contraindications For Antithrombotic Therapy At Discharge"
Logic Definitions
Logic Definition Library Name: TJCOverall
define "Non Elective Inpatient Encounter With Age":
  ["Encounter": "Nonelective Inpatient Encounter"] NonElectiveEncounter
        where AgeInYearsAt(date from start of NonElectiveEncounter.period ) >= 18
         and NonElectiveEncounter.period ends during day of "Measurement Period"
Logic Definition Library Name: TJCOverall
define "Ischemic Stroke Encounter":
  "Non Elective Inpatient Encounter With Age" NonElectiveEncounterWithAge
   where NonElectiveEncounterWithAge.hasPrincipalDiagnosisOf("Ischemic Stroke" )
Logic Definition Library Name: TJCOverall
define "Ischemic Stroke Encounters With Discharge Disposition":
  "Ischemic Stroke Encounter" IschemicStrokeEncounter
  let DischDisp: IschemicStrokeEncounter.hospitalization.dischargeDisposition
  	where  DischDisp in "Discharge To Acute Care Facility"
		or DischDisp in "Left Against Medical Advice"
		or DischDisp in "Patient Expired"
		or DischDisp in "Discharged to Home for Hospice Care"
		or DischDisp in "Discharged to Health Care Facility for Hospice Care"
Logic Definition Library Name: TJCOverall
define "Intervention Comfort Measures":
  ( ["ServiceRequest": "Comfort Measures"] ComfortCare
    where ComfortCare.status in { 'active', 'completed', 'on-hold' }
      and ComfortCare.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
  )  
  union ( ["Procedure": "Comfort Measures"] ComfortCarePerformed
        where ComfortCarePerformed.status in { 'completed', 'in-progress' }
  )
Logic Definition Library Name: TJCOverall
define "Encounter With Comfort Measures During Hospitalization":
  "Ischemic Stroke Encounter" IschemicStrokeEncounter
    with "Intervention Comfort Measures" ComfortMeasure
     such that Coalesce(start of ComfortMeasure.performed.toInterval(), ComfortMeasure.authoredOn) during IschemicStrokeEncounter.hospitalizationWithObservation()
Logic Definition Library Name: SupplementalDataElements
define "SDE Sex":
  case
    when Patient.sex = '248153007' then "Male (finding)"
    when Patient.sex = '248152002' then "Female (finding)"
    else null
  end
Logic Definition Library Name: SupplementalDataElements
define "SDE Payer":
  [Coverage: type in "Payer Type"] Payer
    return {
      code: Payer.type,
      period: Payer.period
    }
Logic Definition Library Name: SupplementalDataElements
define "SDE Ethnicity":
  Patient.ethnicity E
    return Tuple {
      codes: { E.ombCategory } union E.detailed,
      display: E.text
    }
Logic Definition Library Name: SupplementalDataElements
define "SDE Race":
  Patient.race R
    return Tuple {
      codes: R.ombCategory union R.detailed,
      display: R.text
    }
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "SDE Sex":
  SDE."SDE Sex"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Numerator":
  TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter
    with ["MedicationRequest": "Antithrombotic Therapy for Ischemic Stroke"] DischargeAntithrombotic
      such that DischargeAntithrombotic.status in { 'active', 'completed' }
        and DischargeAntithrombotic.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
        and ( DischargeAntithrombotic.isCommunity ( )
            or DischargeAntithrombotic.isDischarge ( )
        )
        and DischargeAntithrombotic.authoredOn during IschemicStrokeEncounter.period
        and not exists ( ["TaskRejected"] TaskReject
            where TaskReject.focus.references ( DischargeAntithrombotic )
              and TaskReject.code ~ QICoreCommon."Fulfill"
        )
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Initial Population":
  TJC."Ischemic Stroke Encounter"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Denominator":
  "Initial Population"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "SDE Payer":
  SDE."SDE Payer"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "SDE Ethnicity":
  SDE."SDE Ethnicity"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Denominator Exclusions":
  TJC."Ischemic Stroke Encounters With Discharge Disposition"
    union TJC."Encounter With Comfort Measures During Hospitalization"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "SDE Race":
  SDE."SDE Race"
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Reason For Not Giving Antithrombotic At Discharge":
  ( ["MedicationNotRequested": "Antithrombotic Therapy for Ischemic Stroke"] NoAntithromboticDischarge
      where ( NoAntithromboticDischarge.reasonCode in "Medical Reason For Not Providing Treatment"
          or NoAntithromboticDischarge.reasonCode in "Patient Refusal"
      )
        and ( NoAntithromboticDischarge.isCommunity ( )
            or NoAntithromboticDischarge.isDischarge ( )
        )
        and NoAntithromboticDischarge.status in { 'active', 'completed' }
        and NoAntithromboticDischarge.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
  )
    union ( ["MedicationRequest": "Antithrombotic Therapy for Ischemic Stroke"] MedReqAntithrombotic
        with ["TaskRejected"] TaskReject
          such that TaskReject.focus.references ( MedReqAntithrombotic )
            and ( TaskReject.statusReason in "Medical Reason For Not Providing Treatment"
                or TaskReject.statusReason in "Patient Refusal"
            )
            and MedReqAntithrombotic.status in { 'active', 'completed' }
            and TaskReject.code ~ QICoreCommon."Fulfill"
    )
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Encounter With Documented Reason For No Antithrombotic At Discharge":
  TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter
    with "Reason For Not Giving Antithrombotic At Discharge" NoDischargeAntithrombotic
      such that NoDischargeAntithrombotic.authoredOn during IschemicStrokeEncounter.period
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Pharmacological Contraindications For Antithrombotic Therapy At Discharge":
  ["MedicationRequest": "Pharmacological Contraindications For Antithrombotic Therapy"] PharmacologicalContraindications
    where ( PharmacologicalContraindications.isCommunity ( )
        or PharmacologicalContraindications.isDischarge ( )
    )
      and PharmacologicalContraindications.status in { 'active', 'completed' }
      and PharmacologicalContraindications.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Encounter With Pharmacological Contraindications For Antithrombotic Therapy At Discharge":
  TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter
    with "Pharmacological Contraindications For Antithrombotic Therapy At Discharge" DischargePharmacological
      such that DischargePharmacological.authoredOn during IschemicStrokeEncounter.period
Logic Definition Library Name: CMS104FHIRSTKDCAntithrombotic
define "Denominator Exceptions":
  "Encounter With Documented Reason For No Antithrombotic At Discharge"
    union "Encounter With Pharmacological Contraindications For Antithrombotic Therapy At Discharge"
Logic Definition Library Name: FHIRHelpers
define function ToString(value uri): 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: QICoreCommon
/*
@description: Returns true if any of the given references are to the given resource
@comment: Returns true if the `id` element of the given resource exactly equals the tail of any of the given references.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(references List<Reference>, resource Resource):
  exists (references R where R.references(resource))
Logic Definition Library Name: QICoreCommon
/*
@description: Returns true if the given reference is to the given resource
@comment: Returns true if the `id` element of the given resource exactly equals the tail of the given reference.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(reference Reference, resource Resource):
  resource.id = Last(Split(reference.reference, '/'))
Logic Definition Library Name: QICoreCommon
/*
@description: Returns true if the given code is in the given codeList
@comment: Returns true if the `code` is equivalent to any of the codes in the given `codeList`, false otherwise.
*/
define fluent function includesCode(codeList List<Concept>, code Code):
  exists (codeList C where C ~ code)
Logic Definition Library Name: QICoreCommon
/*
@description: Returns true if the given reference is to the given resourceId
@comment: Returns true if the `resourceId` parameter exactly equals the tail of the given reference.
NOTE: This function assumes resources from the same source server.
*/
define fluent function references(reference Reference, resourceId String):
  resourceId = Last(Split(reference.reference, '/'))
Logic Definition Library Name: QICoreCommon
/*
@description: Returns true if the given MedicationRequest has a category of Community
*/
define fluent function isCommunity(medicationRequest Choice<MedicationRequest, MedicationNotRequested>):
  exists (medicationRequest.category C
    where C ~ Community
  )
Logic Definition Library Name: QICoreCommon
/*
@description: Returns true if the given MedicationRequest has a category of Discharge
*/
define fluent function isDischarge(medicationRequest Choice<MedicationRequest, MedicationNotRequested>):
  exists (medicationRequest.category C
    where C ~ Discharge
  )
Logic Definition Library Name: QICoreCommon
/*
@description: Normalizes a value that is a choice of timing-valued types to an equivalent interval
@comment: Normalizes a choice type of DateTime, Quanitty, Interval<DateTime>, or Interval<Quantity> types
to an equivalent interval. This selection of choice types is a superset of the majority of choice types that are used as possible
representations for timing-valued elements in QICore, allowing this function to be used across any resource.
The input can be provided as a DateTime, Quantity, Interval<DateTime> or Interval<Quantity>.
The intent of this function is to provide a clear and concise mechanism to treat single
elements that have multiple possible representations as intervals so that logic doesn't have to account
for the variability. More complex calculations (such as medication request period or dispense period
calculation) need specific guidance and consideration. That guidance may make use of this function, but
the focus of this function is on single element calculations where the semantics are unambiguous.
If the input is a DateTime, the result a DateTime Interval beginning and ending on that DateTime.
If the input is a Quantity, the quantity is expected to be a calendar-duration interpreted as an Age,
and the result is a DateTime Interval beginning on the Date the patient turned that age and ending immediately before one year later.
If the input is a DateTime Interval, the result is the input.
If the input is a Quantity Interval, the quantities are expected to be calendar-durations interpreted as an Age, and the result
is a DateTime Interval beginning on the date the patient turned the age given as the start of the quantity interval, and ending
immediately before one year later than the date the patient turned the age given as the end of the quantity interval.
If the input is a Timing, an error will be thrown indicating that Timing calculations are not implemented. Any other input will reslt in a null DateTime Interval
*/
define fluent function toInterval(choice Choice<DateTime, Quantity, Interval<DateTime>, Interval<Quantity>, Timing>):
  case
	  when choice is DateTime then
    	Interval[choice as DateTime, choice as DateTime]
		when choice is Interval<DateTime> then
  		choice as Interval<DateTime>
		when choice is Quantity then
		  Interval[Patient.birthDate + (choice as Quantity),
			  Patient.birthDate + (choice as Quantity) + 1 year)
		when choice is Interval<Quantity> then
		  Interval[Patient.birthDate + (choice.low as Quantity),
			  Patient.birthDate + (choice.high as Quantity) + 1 year)
		when choice is Timing then
      Message(null, true, 'NOT_IMPLEMENTED', 'Error', 'Calculation of an interval from a Timing value is not supported') as Interval<DateTime>
		else
			null as Interval<DateTime>
	end
Logic Definition Library Name: CQMCommon
/*
 @description: Returns the condition that is specified as the principal diagnosis for the encounter and has a code in the given valueSet.
 @comment: See the QICore 6 Authoring Patterns discussion on [Principal Diagnosis and Present on Admission](https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Authoring-Patterns-QICore-v6.0.0#conditions-present-on-admission-and-principal-diagnoses) for more information
 */
 define fluent function hasPrincipalDiagnosisOf(encounter Encounter, valueSet ValueSet):
   (encounter.principalDiagnosis()) PD
     return PD.diagnosis in valueSet
       or PD.diagnosis.getCondition().code in valueSet
Logic Definition Library Name: CQMCommon
/*
@description: Returns the claim diagnosis element that is specified as the principal diagnosis for the encounter
 @comment: See the QICore 6 Authoring Patterns discussion on [Principal Diagnosis and Present on Admission](https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Authoring-Patterns-QICore-v6.0.0#conditions-present-on-admission-and-principal-diagnoses) for more information
*/
define fluent function principalDiagnosis(encounter Encounter):
singleton from (
     (encounter.claimDiagnosis()) CD
       where CD.type.includesCode("Principal Diagnosis")
   )
Logic Definition Library Name: CQMCommon
/*
@description: Returns the claim diagnosis elements for the given encounter
@comment: See the QICore 6 Authoring Patterns discussion on [Principal Diagnosis and Present on Admission](https://github.com/cqframework/CQL-Formatting-and-Usage-Wiki/wiki/Authoring-Patterns-QICore-v6.0.0#conditions-present-on-admission-and-principal-diagnoses) for more information
*/
define fluent function claimDiagnosis(encounter Encounter):
  encounter E
    let 
      claim: ([Claim] C where C.status = 'active' and C.use = 'claim' and exists (C.item I where I.encounter.references(E))),
      claimItem: (claim.item I where I.encounter.references(E))
    return claim.diagnosis D where D.sequence in claimItem.diagnosisSequence
Logic Definition Library Name: CQMCommon
/*
@description: Returns the Condition resource for the given reference
*/
define fluent function getCondition(reference Reference):
  singleton from (([ConditionEncounterDiagnosis] union [ConditionProblemsHealthConcerns]) C where reference.references(C.id))
Logic Definition Library Name: CQMCommon
/*
@description: Hospitalization with Observation returns the total interval from the start of any immediately prior emergency department visit through the observation visit to the discharge of the given encounter
*/
define fluent function hospitalizationWithObservation(TheEncounter Encounter ):
  TheEncounter Visit
  		let ObsVisit: Last([Encounter: "Observation Services"] LastObs
  				where LastObs.status = 'finished'
            and LastObs.period ends 1 hour or less on or before start of Visit.period
  				sort by end of period
  			),
  			VisitStart: Coalesce(start of ObsVisit.period, start of Visit.period),
  			EDVisit: Last([Encounter: "Emergency Department Visit"] LastED
  				where LastED.status = 'finished'
            and LastED.period ends 1 hour or less on or before VisitStart
  				sort by end of period
  			)
  		return Interval[Coalesce(start of EDVisit.period, VisitStart), end of Visit.period]
Terminology
Code System Description: Code system SNOMEDCT
Resource: http://snomed.info/sct
Canonical URL: http://snomed.info/sct
Code System Description: Code system Diagnosis Type
Resource: http://terminology.hl7.org/CodeSystem/ex-diagnosistype
Canonical URL: http://terminology.hl7.org/CodeSystem/ex-diagnosistype
Code System Description: Code system MedicationRequestCategory
Resource: http://terminology.hl7.org/CodeSystem/medicationrequest-category
Canonical URL: http://terminology.hl7.org/CodeSystem/medicationrequest-category
Code System Description: Code system TaskCodeSystem
Resource: http://hl7.org/fhir/CodeSystem/task-code
Canonical URL: http://hl7.org/fhir/CodeSystem/task-code
Value Set Description: Value set Nonelective Inpatient Encounter
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.424
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.424
Value Set Description: Value set Ischemic Stroke
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.247
Value Set Description: Value set Antithrombotic Therapy for Ischemic Stroke
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.62
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.62
Value Set Description: Value set Payer Type
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591
Value Set Description: Value set Discharge To Acute Care Facility
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87
Value Set Description: Value set Left Against Medical Advice
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.308
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.308
Value Set Description: Value set Patient Expired
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.309
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.309
Value Set Description: Value set Discharged to Home for Hospice Care
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.209
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.209
Value Set Description: Value set Discharged to Health Care Facility for Hospice Care
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.207
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.207
Value Set Description: Value set Comfort Measures
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45
Value Set Description: Value set Observation Services
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143
Value Set Description: Value set Emergency Department Visit
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292
Value Set Description: Value set Medical Reason For Not Providing Treatment
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473
Value Set Description: Value set Patient Refusal
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93
Value Set Description: Value set Pharmacological Contraindications For Antithrombotic Therapy
Resource: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.52
Canonical URL: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.52
Direct Reference Code Display: Male (finding)
Code: 248153007
System: http://snomed.info/sct
Direct Reference Code Display: Female (finding)
Code: 248152002
System: http://snomed.info/sct
Direct Reference Code Display: Principal Diagnosis
Code: principal
System: http://terminology.hl7.org/CodeSystem/ex-diagnosistype
Direct Reference Code Display: Community
Code: community
System: http://terminology.hl7.org/CodeSystem/medicationrequest-category
Direct Reference Code Display: Discharge
Code: discharge
System: http://terminology.hl7.org/CodeSystem/medicationrequest-category
Direct Reference Code Display: Fulfill
Code: fulfill
System: http://hl7.org/fhir/CodeSystem/task-code
Dependencies
Dependency Description: QICore model information
Resource: http://hl7.org/fhir/Library/QICore-ModelInfo
Canonical URL: http://hl7.org/fhir/Library/QICore-ModelInfo
Dependency Description: Library SDE
Resource: https://madie.cms.gov/Library/SupplementalDataElements|5.1.000
Canonical URL: https://madie.cms.gov/Library/SupplementalDataElements|5.1.000
Dependency Description: Library FHIRHelpers
Resource: https://madie.cms.gov/Library/FHIRHelpers|4.4.000
Canonical URL: https://madie.cms.gov/Library/FHIRHelpers|4.4.000
Dependency Description: Library TJC
Resource: https://madie.cms.gov/Library/TJCOverall|8.25.000
Canonical URL: https://madie.cms.gov/Library/TJCOverall|8.25.000
Dependency Description: Library CQMCommon
Resource: https://madie.cms.gov/Library/CQMCommon|4.1.000
Canonical URL: https://madie.cms.gov/Library/CQMCommon|4.1.000
Dependency Description: Library QICoreCommon
Resource: https://madie.cms.gov/Library/QICoreCommon|4.0.000
Canonical URL: https://madie.cms.gov/Library/QICoreCommon|4.0.000
Data Requirements
Data Requirement Type: Patient
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-patient
Must Support Elements: extension, url, birthDate, birthDate.value
Data Requirement Type: Encounter
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
Must Support Elements: type, status, status.value, period, diagnosis, diagnosis.code
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.143
Data Requirement Type: Encounter
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
Must Support Elements: type, status, status.value, period, diagnosis, diagnosis.code
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.292
Data Requirement Type: Encounter
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-encounter
Must Support Elements: type, period, diagnosis, diagnosis.code, hospitalization, hospitalization.dischargeDisposition
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.424
Data Requirement Type: Resource
Profile(s): http://hl7.org/fhir/StructureDefinition/Resource
Must Support Elements: id, id.value
Data Requirement Type: Claim
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-claim
Must Support Elements: status, status.value, use, use.value, item
Data Requirement Type: Condition
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-encounter-diagnosis
Data Requirement Type: Condition
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-condition-problems-health-concerns
Data Requirement Type: MedicationRequest
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest
Must Support Elements: medication, status, status.value, intent, intent.value, authoredOn, authoredOn.value
Code Filter(s):
Path: medication
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.62
Data Requirement Type: MedicationRequest
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest
Must Support Elements: medication, status, status.value, intent, intent.value, authoredOn, authoredOn.value
Code Filter(s):
Path: medication
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.52
Data Requirement Type: MedicationRequest
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationrequest
Must Support Elements: medication.reference.value, status, status.value, intent, intent.value, authoredOn, authoredOn.value
Data Requirement Type: Medication
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medication
Must Support Elements: id.value, code
Data Requirement Type: Task
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-taskrejected
Must Support Elements: focus, code, statusReason
Data Requirement Type: Coverage
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-coverage
Must Support Elements: type, period
Code Filter(s):
Path: type
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.114222.4.11.3591
Data Requirement Type: ServiceRequest
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-servicerequest
Must Support Elements: code, status, status.value, intent, intent.value
Code Filter(s):
Path: code
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45
Data Requirement Type: Procedure
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-procedure
Must Support Elements: code, status, status.value
Code Filter(s):
Path: code
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/1.3.6.1.4.1.33895.1.3.0.45
Data Requirement Type: MedicationRequest
Profile(s): http://hl7.org/fhir/us/qicore/StructureDefinition/qicore-medicationnotrequested
Must Support Elements: medication, reasonCode, status, status.value, intent, intent.value
Code Filter(s):
Path: medication
ValueSet: http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.62
Generated using version 0.4.8 of the sample-content-ig Liquid templates