Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions pages/cql/in-progress/fhir4/Hospice_FHIR4-1.0.000.cql
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,28 @@ valueset "Hospice care ambulatory": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.8
code "Discharge to healthcare facility for hospice care (procedure)": '428371000124100' from "SNOMEDCT:2017-09" display 'Discharge to healthcare facility for hospice care (procedure)'
code "Discharge to home for hospice care (procedure)": '428361000124107' from "SNOMEDCT:2017-09" display 'Discharge to home for hospice care (procedure)'

parameter "Measurement Period" Interval<DateTime>
default Interval[@2019-01-01T00:00:00.0, @2020-01-01T00:00:00.0)

context Patient

define function "Has Hospice"(MeasurementPeriod Interval<DateTime>):
define "Has Hospice":
exists (
[Encounter: "Encounter Inpatient"] DischargeHospice
where DischargeHospice.status = 'finished'
and (
FHIRHelpers.ToConcept(DischargeHospice.hospitalization.dischargeDisposition).codes[0] ~ "Discharge to home for hospice care (procedure)"
or FHIRHelpers.ToConcept(DischargeHospice.hospitalization.dischargeDisposition).codes[0] ~ "Discharge to healthcare facility for hospice care (procedure)"
)
and DischargeHospice.period ends during day of MeasurementPeriod
and DischargeHospice.period ends during "Measurement Period"
)
or exists (
[ServiceRequest: "Hospice care ambulatory"] HospiceOrder
where HospiceOrder.intent = 'order'
and FHIRHelpers.ToDateTime(HospiceOrder.authoredOn) in day of MeasurementPeriod
and FHIRHelpers.ToDateTime(HospiceOrder.authoredOn) in "Measurement Period"
)
or exists (
[Procedure: "Hospice care ambulatory"] HospicePerformed
where HospicePerformed.status = 'completed'
and Global."Normalize Interval"(HospicePerformed.performed) overlaps MeasurementPeriod
where HospicePerformed.status in { 'completed','on-hold','in-progress','stopped' }
and Global."Normalize Interval"(HospicePerformed.performed) overlaps "Measurement Period"
)