Metadata Title Order Medication Library Version 2.0.0 Identifier urn:oid:2.16.840.1.113883.4.642.40.48.28.12 Experimental true Jurisdiction World Steward (Publisher) HL7 International / Clinical Decision Support Steward Contact HL7 International / Clinical Decision Support Description Logic for an example recommendation to order a medication Type logic-library from http://terminology.hl7.org/CodeSystem/library-type Dependency Description: Code System Task Codes Resource: Task Codes Canonical URL: http://hl7.org/fhir/CodeSystem/task-code Data Requirement Type: MedicationStatement Profile(s): MedicationStatement Data Requirement Type: MedicationAdministration Profile(s): MedicationAdministration Data Requirement Type: MedicationDispense Profile(s): MedicationDispense Data Requirement Type: Task Profile(s): Task Data Requirement Type: MedicationRequest Profile(s): MedicationRequest Parameters Name Use Card. Type Documentation Patient Out 0..1 Patient Inclusion Criteria Out 0..1 boolean Active or Completed Medication Statement Out 0..* MedicationStatement Medication Statement Not Taken Out 0..* MedicationStatement Active or Completed Medication Administration Out 0..* MedicationAdministration Medication Administration Not Done Out 0..* MedicationAdministration Active or Completed Medication Dispense Out 0..* MedicationDispense Medication Dispense Not Done Out 0..* MedicationDispense Rejected Task Out 0..* Task Medication Proposal Out 0..* MedicationRequest Medication Prohibited Out 0..* MedicationRequest Medication Rejected Out 0..* MedicationRequest Is Recommendation Applicable Out 0..1 boolean Library Content CQL Content library OrderMedication using FHIR version '4.0.1' include FHIRHelpers version '4.0.1' codesystem "Task Codes": 'http://hl7.org/fhir/CodeSystem/task-code' code "fulfill": 'fulfill' from "Task Codes" display 'Fulfill' context Patient /* Recommendation to order a medication */ /* Positive recommendation: If the medication is not being taken (i.e. dispensed, administered, or documented) If the medication has not been ordered Propose the medication Given a proposal, the user can: Accept the proposal Ignore the proposal Reject the proposal without reason Reject the proposal with reason Scenario 1: No event, no plan or proposal, decision support should propose Scenario 2: No event, incomplete proposal, decision support should not propose Scenario 3: No event, rejected proposal, decision support should not propose Scenario 4: Event, no proposal, decision support should not propose Scenario 5: Event, proposal, decision support should not propose Scenario 6: Event not done, no proposal, decision support should not propose Scenario 7: Event not done, proposal, decision support should not propose */ define "Inclusion Criteria": Patient.active define "Active or Completed Medication Statement": [MedicationStatement] M where M.status in { 'active', 'completed', 'intended', 'on-hold' } define "Medication Statement Not Taken": [MedicationStatement] M where M.status in { 'not-taken', 'stopped' } // TODO: Is 'stopped' appropriate here? define "Active or Completed Medication Administration": [MedicationAdministration] M where M.status in { 'in-progress', 'on-hold', 'completed' } define "Medication Administration Not Done": [MedicationAdministration] M where M.status in { 'not-done', 'stopped' } // TODO: Is 'stopped' appropriate here? define "Active or Completed Medication Dispense": [MedicationDispense] M where M.status in { 'preparation', 'in-progress', 'on-hold', 'completed' } define "Medication Dispense Not Done": [MedicationDispense] M where M.status in { 'cancelled', 'stopped', 'declined' } // TODO: Is 'stopped' appropriate here? define "Rejected Task": [Task] T where T.code ~ "fulfill" and T.status = 'rejected' define "Medication Proposal": [MedicationRequest] M without "Rejected Task" T such that M.id = Last(Split(T.focus.reference, '/')) where M.status in { 'draft', 'active', 'on-hold', 'completed' } and M.doNotPerform is not true define "Medication Prohibited": [MedicationRequest] M where M.status in { 'cancelled', 'stopped' } and M.doNotPerform is true define "Medication Rejected": [MedicationRequest] M with "Rejected Task" T such that M.id = Last(Split(T.focus.reference, '/')) where M.status = 'active' and M.doNotPerform is not true define "Is Recommendation Applicable": "Inclusion Criteria" and not exists ( "Active or Completed Medication Statement" union "Medication Statement Not Taken" union "Active or Completed Medication Administration" union "Medication Administration Not Done" union "Active or Completed Medication Dispense" union "Medication Dispense Not Done" ) and not exists ( "Medication Proposal" union "Medication Prohibited" union "Medication Rejected" ) ELM XML Content Encoded data ELM JSON Content Encoded data Generated using version 0.5.4 of the sample-content-ig Liquid templates
HL7 International / Clinical Decision Support
Logic for an example recommendation to order a medication
Active or Completed Medication Statement
Active or Completed Medication Administration