Metadata Title Recommend Immunization Version 2.0.0 Identifier urn:oid:2.16.840.1.113883.4.642.40.48.28.15 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 recommend an immunization Type logic-library from http://terminology.hl7.org/CodeSystem/library-type Dependency Description: Code System Activity Type Resource: CPG Activity Type Code System Canonical URL: http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-activity-type-cs Dependency Description: Code System Task Codes Resource: Task Codes Canonical URL: http://hl7.org/fhir/CodeSystem/task-code Data Requirement Type: Immunization Profile(s): Immunization 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 Immunization Out 0..* Immunization Immunization Not Done Out 0..* Immunization Rejected Task Out 0..* Task Immunization Proposal Out 0..* MedicationRequest Immunization Prohibited Out 0..* MedicationRequest Immunization Proposal Rejected Out 0..* MedicationRequest Is Recommendation Applicable Out 0..1 boolean Library Content CQL Content library RecommendImmunization using FHIR version '4.0.1' include FHIRHelpers version '4.0.1' codesystem "Activity Type": 'http://hl7.org/fhir/uv/cpg/CodeSystem/cpg-activity-type-cs' codesystem "Task Codes": 'http://hl7.org/fhir/CodeSystem/task-code' code "Recommend Immunization": 'immunization-recommendation' from "Activity Type" code "fulfill": 'fulfill' from "Task Codes" display 'Fulfill' context Patient /* Recommendation to immunize the patient */ /* NOTE: This recommendation is dramatically simplified to illustrate the general pattern for a positive recommendation, with the ability for users to reject the recommendation, and flexibility in how the recommendation is achieved. Specifically: * There is no terminology, any immunization request/event on any topic will do * There is no timing, any immunization request/event will do at any time * There is no reference to participants other than the patient * There is no relationship to a setting * There is no relationship to an encounter or episode * There is no relationship to a care plan These simplifications allow the example to focus exclusively on the pattern for recommending and for accepting/rejecting the proposal, as well as documenting the completion, or explicit non-performance of the communication. */ /* Positive recommendation: If the activity has not been performed If the activity has not been planned or proposed Propose the activity 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, completed 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 Immunization": [Immunization] C where C.status in { 'completed' } define "Immunization Not Done": [Immunization] C where C.status in { 'not-done' } define "Rejected Task": [Task] T where T.code ~ "fulfill" and T.status = 'rejected' define "Immunization Proposal": [MedicationRequest] MR without "Rejected Task" T such that MR.id = Last(Split(T.focus.reference, '/')) where exists ( (MR.category) C where C ~ "Recommend Immunization" ) and MR.status in { 'draft', 'active' } and MR.doNotPerform is not true define "Immunization Prohibited": [MedicationRequest] MR where exists ( (MR.category) C where C ~ "Recommend Immunization" ) and MR.status in { 'draft', 'active' } and MR.doNotPerform is true define "Immunization Proposal Rejected": [MedicationRequest] MR with "Rejected Task" T such that MR.id = Last(Split(T.focus.reference, '/')) where exists ( (MR.category) C where C ~ "Recommend Immunization" ) and MR.status = 'active' and MR.doNotPerform is not true define "Is Recommendation Applicable": "Inclusion Criteria" and not exists ( "Active or Completed Immunization" union "Immunization Not Done" ) and not exists ( "Immunization Proposal" union "Immunization Prohibited" union "Immunization Proposal 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 recommend an immunization