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