This page is part of the Quality Measure STU2 for FHIR R4 Implementation Guide (v1.0.0: STU 1) based on FHIR R3. The current version which supercedes this version is 3.0.0. For a full list of available versions, see the Directory of published versions
Measure Title | Venous Thromboembolism Prophylaxis | Measure ID | VTE_1_FHIR |
Description | |||
Measurement Period | January 1 - December 31 | ||
Copyright and Disclaimer Notice | |||
Clinical Recommendation Statement | |||
References | |||
Characteristics | |||
Scoring | Proportion | ||
Type | Process | ||
Improvement Notation | A higher rate indicates better performance. | ||
Guidance | |||
Definitions | |||
Numerator | |||
Denominator | |||
Initial Population | |||
Denominator Exclusion |
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions"
"VTE Prophylaxis Received on Day of or Day After Admission or Procedure" union ( "Medication Oral Factor Xa Inhibitor Administered on Day of or Day After Admission or Procedure" intersect ( "Encounter With Prior or Present Diagnosis of Atrial Fibrillation or VTE" union "Encounter With Prior or Present Procedure of Hip or Knee Replacement Surgery" ) ) union "Low Risk for VTE or Anticoagulant Administered" union "No VTE Prophylaxis Due to Medical Reason" union "No VTE Prophylaxis Due to Patient Refusal"
"Initial Population"
"Encounter Less Than 2 Days" union "Encounter With ICU Location Stay 1 Day or More" union "Encounter With Principal Diagnosis of Mental Disorder or Stroke" union "Encounter With Principal Procedure of SCIP VTE Selected Surgery" union "Intervention Comfort Measures on Day of or Day After Start of Hospitalization" union "Intervention Comfort Measures on Day of or Day After Procedure"
(Global."Inpatient Encounter" InpatientEncounter where not (Global.EncounterDiagnosis(InpatientEncounter).code in "Obstetrics" or Global.EncounterDiagnosis(InpatientEncounter).code in "Venous Thromboembolism" or Global.EncounterDiagnosis(InpatientEncounter).code in "Obstetrics VTE" ) ) intersect (Global."Inpatient Encounter" InpatientEncounter without ( ["Condition": code in "Obstetrics"] union ["Condition": code in "Venous Thromboembolism"] union ["Condition": code in "Obstetrics VTE"]) Diagnosis such that Diagnosis.clinicalStatus = 'active' and Diagnosis.verificationStatus = 'confirmed' and Global."Normalize Onset"(Diagnosis.onset) during Global."Hospitalization"(InpatientEncounter) )
"Initial Population"
"Encounter Less Than 2 Days" union "Encounter With ICU Location Stay 1 Day or More" union "Encounter With Principal Diagnosis of Mental Disorder or Stroke" union "Encounter With Principal Procedure of SCIP VTE Selected Surgery" union "Intervention Comfort Measures on Day of or Day After Start of Hospitalization" union "Intervention Comfort Measures on Day of or Day After Procedure"
["Encounter": type in "Emergency Department Visit"] EDVisit where EDVisit.status = 'finished'
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter where Global."LengthInDays"(FHIRHelpers.ToInterval(QualifyingEncounter.period))< 2
( Global."Inpatient Encounter" InpatientEncounter with ["Patient"] BirthDate such that Global."CalendarAgeInYearsAt"(ToDateTime(BirthDate.birthDate), start of FHIRHelpers.ToInterval(InpatientEncounter.period)) >= 18 ) intersect "Admission Without VTE or Obstetrical Conditions"
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter where exists ( QualifyingEncounter.location Location where Global.GetLocation(Location.location).type in "Intensive Care Unit" and Global."LengthInDays"(Location.period)>= 1 and Location.period starts during VTEICU."CalendarDayOfOrDayAfter"(start of FHIRHelpers.ToInterval(QualifyingEncounter.period)) )
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter where Global."PrincipalDiagnosis"(QualifyingEncounter).code in "Mental Health Diagnoses" or Global."PrincipalDiagnosis"(QualifyingEncounter).code in "Hemorrhagic Stroke" or Global."PrincipalDiagnosis"(QualifyingEncounter).code in "Ischemic Stroke"
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter with ( "SCIP VTE Selected Surgery" Procedure where GetExtension(Procedure.extension, 'http://example.org/StructureDefinition/ordinality').value ~ "Principal" ) SelectedProcedure such that SelectedProcedure.performed during FHIRHelpers.ToInterval( QualifyingEncounter.period)
( "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter with ["Condition": code in "Atrial Fibrillation/Flutter"] AtrialFibrillation such that AtrialFibrillation.clinicalStatus = 'active' and AtrialFibrillation.verificationStatus = 'confirmed' and Global."Normalize Onset"(AtrialFibrillation.onset) on or before end of FHIRHelpers.ToInterval(QualifyingEncounter.period) ) union ( "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter where Global.EncounterDiagnosis(QualifyingEncounter).code in "Atrial Fibrillation/Flutter" ) union ( "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter with ["Condition": code in "Venous Thromboembolism"] VTEDiagnosis such that VTEDiagnosis.clinicalStatus in { 'inactive', 'remission', 'resolved' } and VTEDiagnosis.verificationStatus = 'confirmed' and Global."Normalize Onset"(VTEDiagnosis.onset) before start of FHIRHelpers.ToInterval(QualifyingEncounter.period) )
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter with ( ["Procedure": "Hip Replacement Surgery"] union ["Procedure": "Knee Replacement Surgery"] ) HipKneeProcedure such that HipKneeProcedure.status = 'completed' and HipKneeProcedure.performed starts on or before end of FHIRHelpers.ToInterval(QualifyingEncounter.period)
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions"
(["ProcedureRequest": "Comfort Measures"] P where P.intent = 'order') union (["Procedure": "Comfort Measures"] IntervetionPerformed where IntervetionPerformed.status = 'completed')
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, "Intervention Comfort Measures" ComfortMeasure where AnesthesiaProcedure.status = 'completed' and AnesthesiaProcedure.performed ends 1 day after day of start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and Coalesce(ComfortMeasure.authoredOn, start of ComfortMeasure.performed) 1 day or less on or after day of end of AnesthesiaProcedure.performed
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter with "Intervention Comfort Measures" ComfortMeasure // TODO: Profile of procedure to ensure performed is a Period such that Coalesce(ComfortMeasure.authoredOn, start of ComfortMeasure.performed) 1 day or less on or after day of start of Global."Hospitalization"(QualifyingEncounter)
( ["Observation": "Risk for venous thromboembolism"] VTERiskAssessment where VTERiskAssessment.value in "Low Risk" )
"Low Risk for VTE or Anticoagulant Administered During ED Visit" union "Low Risk for VTE or Anticoagulant Administered on Day of or Day After Admission" union "Low Risk for VTE or Anticoagulant Administered on Day of or Day After Procedure"
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "ED Visit" EDVisit, "Is In Low Risk for VTE or On Anticoagulant" VTERiskAssessment where FHIRHelpers.ToInterval(EDVisit.period) ends 1 hour or less on or before start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and VTERiskAssessment.issued during FHIRHelpers.ToInterval(EDVisit.period) return QualifyingEncounter
"Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter with "Is In Low Risk for VTE or On Anticoagulant" VTERiskAssessment such that VTERiskAssessment.issued during VTEICU."CalendarDayOfOrDayAfter"(start of FHIRHelpers.ToInterval(QualifyingEncounter.period))
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, "Is In Low Risk for VTE or On Anticoagulant" VTERiskAssessment where AnesthesiaProcedure.performed ends 1 day after day of start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and VTERiskAssessment.issued during VTEICU."CalendarDayOfOrDayAfter"(end of FHIRHelpers.ToInterval(AnesthesiaProcedure.performed)) return QualifyingEncounter
( from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["MedicationAdministration": medication in "Oral Factor Xa Inhibitor for VTE Prophylaxis or VTE Treatment"] FactorXaMedication where FactorXaMedication.effective starts during VTEICU."CalendarDayOfOrDayAfter"(start of FHIRHelpers.ToInterval(QualifyingEncounter.period)) return QualifyingEncounter ) union ( from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, ["MedicationAdministration": medication in "Oral Factor Xa Inhibitor for VTE Prophylaxis or VTE Treatment"] FactorXaMedication where AnesthesiaProcedure.status = 'completed' and AnesthesiaProcedure.performed ends 1 day after day of start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and FactorXaMedication.effective starts during VTEICU."CalendarDayOfOrDayAfter"(end of AnesthesiaProcedure.performed) return QualifyingEncounter )
// NOTE: Should be using device.code, but that requires CQL 1.4 ((["DeviceUseStatement": code in "Venous foot pumps (VFP)"] union ["DeviceUseStatement": code in "Intermittent pneumatic compression devices (IPC)"] union ["DeviceUseStatement": code in "Graduated compression stockings (GCS)"] ) D where GetExtension(D.extension, 'http://example.org/fhir/extensions/notDone').value is true //where D.notDone is true // Needs a QI-Core extension to support ) union (( ["DeviceRequest": code in "Venous foot pumps (VFP)"] union ["DeviceRequest": code in "Intermittent pneumatic compression devices (IPC)"] union ["DeviceRequest": code in "Graduated compression stockings (GCS)"] ) D where D.intent ~ ToConcept("Order") and GetExtension(D.extension, 'http://example.org/fhir/extensions/doNotPerform').value is true //where D.doNotPerform is true // Needs a QI-Core extension to support )
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "ED Visit" EDVisit, "No VTE Prophylaxis Device Applied or Ordered" NoVTEDevice where FHIRHelpers.ToInterval(EDVisit.period) ends 1 hour or less on or before start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and (singleton from NoVTEDevice.reasonCode in "Medical Reason") and Coalesce(NoVTEDevice.authoredOn, NoVTEDevice.recordedOn) during FHIRHelpers.ToInterval(EDVisit.period)
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "No VTE Prophylaxis Device Applied or Ordered" NoVTEDevice where (singleton from NoVTEDevice.reasonCode in "Medical Reason") and Coalesce(NoVTEDevice.authoredOn, NoVTEDevice.recordedOn) during VTEICU."CalendarDayOfOrDayAfter"(start of FHIRHelpers.ToInterval(QualifyingEncounter.period))
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, "No VTE Prophylaxis Device Applied or Ordered" NoVTEDevice where NoVTEDevice.reasonCode in "Medical Reason" and AnesthesiaProcedure.status = 'completed' // TODO: Profile of procedure to ensure performed is a Period and AnesthesiaProcedure.performed ends 1 day after day of start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and Coalesce(NoVTEDevice.authoredOn, NoVTEDevice.recordedOn) during VTEICU."CalendarDayOfOrDayAfter"(end of AnesthesiaProcedure.performed) return QualifyingEncounter
( "No VTE Prophylaxis Medication Due to Medical Reason During ED Visit" intersect "No VTE Prophylaxis Device Due to Medical Reason During ED Visit" ) union ( "No VTE Prophylaxis Medication Due to Medical Reason on Day of or Day After Admission" intersect "No VTE Prophylaxis Device Due to Medical Reason on Day of or Day After Admission" ) union ( "No VTE Prophylaxis Medication Due to Medical Reason on Day of or Day After Procedure" intersect "No VTE Prophylaxis Device Due to Medical Reason on Day of or Day After Procedure" )
"No VTE Prophylaxis Due to Patient Refusal During ED Visit" union "No VTE Prophylaxis Due to Patient Refusal on Day of or Day After Admission" union "No VTE Prophylaxis Due to Patient Refusal on Day of or Day After Procedure"
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "ED Visit" EDVisit, "No VTE Prophylaxis Medication or Device Due to Patient Refusal" PatientRefusal where EDVisit.period ends 1 hour or less on or before start of QualifyingEncounter.period and Coalesce(PatientRefusal.effective, PatientRefusal.authoredOn, PatientRefusal.recordedOn) during EDVisit.period return QualifyingEncounter
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "No VTE Prophylaxis Medication or Device Due to Patient Refusal" PatientRefusal where Coalesce(start of PatientRefusal.effective, PatientRefusal.authoredOn, PatientRefusal.recordedOn) during VTEICU."CalendarDayOfOrDayAfter"(start of QualifyingEncounter.period) return QualifyingEncounter
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, "No VTE Prophylaxis Medication or Device Due to Patient Refusal" PatientRefusal where AnesthesiaProcedure.performed ends 1 day after day of start of QualifyingEncounter.period and Coalesce(start of PatientRefusal.effective, PatientRefusal.authoredOn, PatientRefusal.recordedOn) during VTEICU."CalendarDayOfOrDayAfter"(end of AnesthesiaProcedure.performed) return QualifyingEncounter
(( ["MedicationAdministration": medication in "Low Dose Unfractionated Heparin for VTE Prophylaxis"] union ["MedicationAdministration": medication in "Low Molecular Weight Heparin for VTE Prophylaxis"] union ["MedicationAdministration": medication in "Injectable Factor Xa Inhibitor for VTE Prophylaxis"] union ["MedicationAdministration": medication in "Warfarin"] ) MedicationAdm where MedicationAdm.notGiven is true ) union // TODO: Tracker for QI-core to add doNotPerform extension for MedicationRequest and suggest to the base Resource (( ["MedicationRequest": medication in "Low Dose Unfractionated Heparin for VTE Prophylaxis"] union ["MedicationRequest": medication in "Low Molecular Weight Heparin for VTE Prophylaxis"] union ["MedicationRequest": medication in "Injectable Factor Xa Inhibitor for VTE Prophylaxis"] union ["MedicationRequest": medication in "Warfarin"] ) MedicationOrder where MedicationOrder.intent = 'order' and GetExtension(MedicationOrder.extension, 'http://example.org/fhir/extensions/doNotPerform').value is true //MedicationOrder.doNotPerform is true // Needs a QI-Core extension to support )
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "ED Visit" EDVisit, "No VTE Prophylaxis Medication Administered or Ordered" NoVTEMedication where FHIRHelpers.ToInterval(EDVisit.period) ends 1 hour or less on or before start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and (singleton from NoVTEMedication.reasonCode in "Medical Reason") // TODO: Profile of MedicationAdministration to ensure effective is a Period and Coalesce(NoVTEMedication.authoredOn, start of NoVTEMedication.effective) during FHIRHelpers.ToInterval(EDVisit.period) return QualifyingEncounter
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "No VTE Prophylaxis Medication Administered or Ordered" NoVTEMedication where (singleton from NoVTEMedication.reasonCode in "Medical Reason") and Coalesce(NoVTEMedication.authoredOn, start of NoVTEMedication.effective) during VTEICU."CalendarDayOfOrDayAfter"(start of FHIRHelpers.ToInterval(QualifyingEncounter.period)) return QualifyingEncounter
from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, "No VTE Prophylaxis Medication Administered or Ordered" NoVTEMedication where NoVTEMedication.reasonCode in "Medical Reason" and AnesthesiaProcedure.status = 'completed' and AnesthesiaProcedure.performed ends 1 day after day of start of FHIRHelpers.ToInterval(QualifyingEncounter.period) // TODO: Profile of MedicationAdministration to ensure effective is a Period and Coalesce(NoVTEMedication.authoredOn, start of NoVTEMedication.effective) during VTEICU."CalendarDayOfOrDayAfter"(end of AnesthesiaProcedure.performed) return QualifyingEncounter
( "No VTE Prophylaxis Medication Administered or Ordered" union "No VTE Prophylaxis Device Applied or Ordered" ) NoVTEProphylaxis where GetExtension(NoVTEProphylaxis.extension, 'http://example.org/StructureDefinition/notDoneReason').value in "Patient Refusal"
"VTE Prophylaxis Received on Day of or Day After Admission or Procedure" union ( "Medication Oral Factor Xa Inhibitor Administered on Day of or Day After Admission or Procedure" intersect ( "Encounter With Prior or Present Diagnosis of Atrial Fibrillation or VTE" union "Encounter With Prior or Present Procedure of Hip or Knee Replacement Surgery" ) ) union "Low Risk for VTE or Anticoagulant Administered" union "No VTE Prophylaxis Due to Medical Reason" union "No VTE Prophylaxis Due to Patient Refusal"
( ["Procedure": "General Surgery"] union ["Procedure": "Gynecological Surgery"] union ["Procedure": "Hip Fracture Surgery"] union ["Procedure": "Hip Replacement Surgery"] union ["Procedure": "Intracranial Neurosurgery"] union ["Procedure": "Knee Replacement Surgery"] union ["Procedure": "Urological Surgery"] ) P where P.status = 'completed'
SDE."SDE Ethnicity"
SDE."SDE Payer"
SDE."SDE Race"
SDE."SDE Sex"
( ["MedicationAdministration": medication in "Low Dose Unfractionated Heparin for VTE Prophylaxis"] VTEMedication where VTEMedication.status = 'completed' and VTEMedication.dosage.route in "Subcutaneous route" ) union ["MedicationAdministration": medication in "Low Molecular Weight Heparin for VTE Prophylaxis"] union ["MedicationAdministration": medication in "Injectable Factor Xa Inhibitor for VTE Prophylaxis"] union ["MedicationAdministration": medication in "Warfarin"] union (( ["DeviceUseStatement": code in "Intermittent pneumatic compression devices (IPC)"] union ["DeviceUseStatement": code in "Venous foot pumps (VFP)"] union ["DeviceUseStatement": code in "Graduated compression stockings (GCS)"] ) DeviceApplied where DeviceApplied.status = 'completed' )
( from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, "VTE Prophylaxis by Medication Administered or Device Applied" HasVTEProphylaxis // TODO: Profile of MedicationAdministration to ensure effective is a Period where Coalesce(HasVTEProphylaxis.recordedOn, start of HasVTEProphylaxis.effective) during VTEICU."CalendarDayOfOrDayAfter"(start of FHIRHelpers.ToInterval(QualifyingEncounter.period)) return QualifyingEncounter ) union ( from "Encounter With Age Range and Without VTE Diagnosis or Obstetrical Conditions" QualifyingEncounter, ["Procedure": "General or Neuraxial Anesthesia"] AnesthesiaProcedure, "VTE Prophylaxis by Medication Administered or Device Applied" HasVTEProphylaxis where AnesthesiaProcedure.performed ends 1 day after day of start of FHIRHelpers.ToInterval(QualifyingEncounter.period) and Coalesce(HasVTEProphylaxis.recordedOn, start of HasVTEProphylaxis.effective) during VTEICU."CalendarDayOfOrDayAfter"(end of AnesthesiaProcedure.performed) return QualifyingEncounter )
define function GetExtension(Extensions List<Extension>, URL String): singleton from (Extensions E where E.url = URL return E)
SDE."SDE Ethnicity"
SDE."SDE Payer"
SDE."SDE Race"
SDE."SDE Sex"