This
page
is
part
of
the
FHIR
Specification
(v4.0.1:
R4
(v4.3.0:
R4B
-
Mixed
Normative
and
STU
)
in
it's
permanent
home
(it
will
always
be
available
at
this
URL).
).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R4B
R4
| Clinical Decision Support Work Group | Maturity Level : N/A | Standards Status : Informative | Compartments : Not linked to any defined compartments |
This is the narrative for the resource. See also the XML , JSON or Turtle format. This example conforms to the profile Library .
| Author | Kensaku Kawamoto, MD, PhD, MHS |
| Author | Bryn Rhodes |
| Author | Floyd Eisenberg, MD, MPH |
| Author | Robert McClure, MD, MPH |
| Documentation | CDC guideline for prescribing opioids for chronic pain | |
| Depends On | http://example.org/fhir/Library/opioidcds-common |
| Type: MedicationRequest | |
| Filter | Value |
| medicationCodeableConcept | In ValueSet http://example.org/fhir/ValueSet/opioids-abused-in-ambulatory-care |
| Type: Encounter |
application/elm+xml
<?xml version="1.0" encoding="UTF-8"?> <library xmlns="urn:hl7-org:elm:r1" xmlns:t="urn:hl7-org:elm-types:r1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fhir="http://hl7.org/fhir" xmlns:qdm43="urn:healthit-gov:qdm:v4_3" xmlns:qdm53="urn:healthit-gov:qdm:v5_3" xmlns:a="urn:hl7-org:cql-annotations:r1"> <annotation startLine="67" startChar="5" endLine="67" endChar="68" message="Could not resolve code path medicationCodeableConcept for the type of the retrieve FHIR.MedicationRequest." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/> <annotation startLine="67" startChar="5" endLine="67" endChar="68" message="Could not resolve membership operator for terminology target of the retrieve." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/> <annotation startLine="78" startChar="83" endLine="78" endChar="126" message="List-valued expression was demoted to a singleton." errorType="semantic" errorSeverity="warning" xsi:type="a:CqlToElmError"/> <identifier id="OpioidCDS_STU4_REC_04" version="0.1.0"/> <schemaIdentifier id="urn:hl7-org:elm" version="r1"/> <usings> <def localIdentifier="System" uri="urn:hl7-org:elm-types:r1"/> <def localIdentifier="FHIR" uri="http://hl7.org/fhir" version="3.2.0"/> </usings> <includes> <def localIdentifier="Common" path="OpioidCDS_STU4_Common" version="0.1.0"/> </includes> <parameters> <def name="ContextPrescriptions" accessLevel="Public"> <parameterTypeSpecifier xsi:type="ListTypeSpecifier"> <elementType name="fhir:MedicationRequest" xsi:type="NamedTypeSpecifier"/> </parameterTypeSpecifier> </def> </parameters> <statements> <def name="Patient" context="Patient"> <expression xsi:type="SingletonFrom"> <operand dataType="fhir:Patient" xsi:type="Retrieve"/> </expression> </def> <def name="Inclusion Period" context="Patient" accessLevel="Public"> <expression lowClosed="true" highClosed="true" xsi:type="Interval"> <low xsi:type="Subtract"> <operand xsi:type="Today"/> <operand value="91" unit="days" xsi:type="Quantity"/> </low> <high xsi:type="Subtract"> <operand xsi:type="Today"/> <operand value="1" unit="days" xsi:type="Quantity"/> </high> </expression> </def> <def name="Encounter Period" context="Patient" accessLevel="Public"> <expression lowClosed="true" highClosed="true" xsi:type="Interval"> <low xsi:type="Subtract"> <operand xsi:type="Subtract"> <operand xsi:type="Today"/> <operand value="12" unit="months" xsi:type="Quantity"/> </operand> <operand value="1" unit="days" xsi:type="Quantity"/> </low> <high xsi:type="Subtract"> <operand xsi:type="Today"/> <operand value="1" unit="days" xsi:type="Quantity"/> </high> </expression> </def> <def name="Get Trigger Event Prescriptions" context="Patient" accessLevel="Public"> <expression xsi:type="Query"> <source alias="triggerScripts"> <expression name="ContextPrescriptions" xsi:type="ParameterRef"/> </source> <let identifier="rxNormCode"> <expression name="ToCode" libraryName="Common" xsi:type="FunctionRef"> <operand xsi:type="Indexer"> <operand path="coding" xsi:type="Property"> <source path="medication" scope="triggerScripts" xsi:type="Property"/> </operand> <operand valueType="t:Integer" value="0" xsi:type="Literal"/> </operand> </expression> </let> <where xsi:type="And"> <operand name="IsOpioidWithAmbulatoryAbusePotential" libraryName="Common" xsi:type="FunctionRef"> <operand name="rxNormCode" xsi:type="QueryLetRef"/> </operand> <operand name="IsLongActingOpioid" libraryName="Common" xsi:type="FunctionRef"> <operand name="rxNormCode" xsi:type="QueryLetRef"/> </operand> </where> </expression> </def> <def name="Get Trigger Trigger Event Prescription Ids" context="Patient" accessLevel="Public"> <expression xsi:type="Query"> <source alias="triggerScripts"> <expression name="Get Trigger Event Prescriptions" xsi:type="ExpressionRef"/> </source> <let identifier="codeString"> <expression valueType="t:String" value="" xsi:type="Literal"/> </let> <return> <expression xsi:type="Concatenate"> <operand xsi:type="Concatenate"> <operand name="codeString" xsi:type="QueryLetRef"/> <operand path="value" xsi:type="Property"> <source path="id" scope="triggerScripts" xsi:type="Property"/> </operand> </operand> <operand valueType="t:String" value=" " xsi:type="Literal"/> </expression> </return> </expression> </def> <def name="Validate Trigger Event" context="Patient" accessLevel="Public"> <expression xsi:type="Exists"> <operand name="Get Trigger Event Prescriptions" xsi:type="ExpressionRef"/> </expression> </def> <def name="Opioid with Ambulatory Care Abuse Potential in Past 90 Days" context="Patient" accessLevel="Public"> <expression xsi:type="Exists"> <operand xsi:type="Query"> <source alias="orders"> <expression dataType="fhir:MedicationRequest" codeProperty="medicationCodeableConcept" xsi:type="Retrieve"> <codes name="Ambulatory Abuse Potential Opioids" libraryName="Common" xsi:type="ValueSetRef"/> </expression> </source> <where xsi:type="In"> <operand xsi:type="DateFrom"> <operand path="value" xsi:type="Property"> <source path="authoredOn" scope="orders" xsi:type="Property"/> </operand> </operand> <operand name="Inclusion Period" xsi:type="ExpressionRef"/> </where> </operand> </expression> </def> <def name="Inclusion Criteria" context="Patient" accessLevel="Public"> <expression xsi:type="And"> <operand xsi:type="And"> <operand name="Validate Trigger Event" xsi:type="ExpressionRef"/> <operand xsi:type="Not"> <operand name="Opioid with Ambulatory Care Abuse Potential in Past 90 Days" xsi:type="ExpressionRef"/> </operand> </operand> <operand xsi:type="Exists"> <operand xsi:type="Query"> <source alias="encounters"> <expression dataType="fhir:Encounter" xsi:type="Retrieve"/> </source> <where xsi:type="In"> <operand xsi:type="DateFrom"> <operand path="value" xsi:type="Property"> <source path="start" xsi:type="Property"> <source path="period" scope="encounters" xsi:type="Property"/> </source> </operand> </operand> <operand name="Encounter Period" xsi:type="ExpressionRef"/> </where> </operand> </operand> </expression> </def> <def name="Get Indicator" context="Patient" accessLevel="Public"> <expression valueType="t:String" value="warning" xsi:type="Literal"/> </def> <def name="Get Summary" context="Patient" accessLevel="Public"> <expression valueType="t:String" value="Recommend use of immediate-release opioids instead of extended release/long acting opioids when starting patient on opioids." xsi:type="Literal"/> </def> <def name="Get Detail" context="Patient" accessLevel="Public"> <expression xsi:type="Concatenate"> <operand valueType="t:String" value="The following medication requests(s) release rates should be re-evaluated: " xsi:type="Literal"/> <operand xsi:type="SingletonFrom"> <operand name="Get Trigger Trigger Event Prescription Ids" xsi:type="ExpressionRef"/> </operand> </expression> </def> </statements> </library>content :
Other
examples
that
reference
this
example:
PlanDefinition/OpioidCDSRecommendation4
Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.