Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build
Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2025/ and changes regularly. See the Directory of published versions
| Draft as of 2026-09-19 |
{
"resourceType" : "Library",
"id" : "CMS506FHIRSafeUseofOpioids",
"text" : {
"status" : "extensions",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n <table class=\"narrative-table\">\n <tbody>\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"metadata\"> </a>Metadata</th>\n\n\n</tr>\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Version</th>\n\n\n\n<td class=\"content-container\">1.1.000</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Status</th>\n\n\n\n<td class=\"content-container\">Draft</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Type</th>\n\n\n\n<td class=\"content-container\">\n <a href=\"http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html\">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library\n\n\n</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n\n\n\n\n\n<tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\"><a name=\"parameters\"> </a>Parameters</th>\n\n\n</tr>\n\n\n<tr>\n\n\n<th scope=\"row\" class=\"row-header\">Parameter</th>\n\n\n\n<td class=\"content-container\">None</td>\n\n\n</tr>\n\n\n\n\n\n\n\n\n <tr>\n\n\n<th colspan=\"2\" scope=\"row\" class=\"row-header\">Library Content</th>\n\n\n</tr>\n \n \n <tr>\n <th scope=\"row\" class=\"row-header\">CQL Content</th>\n <td>\n <a name=\"cql-content\"> </a>\n <pre style=\"border: none;\" class=\"content-container highlight language-cql\"><code class=\"language-cql\">/*\nNOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.\n*/\nlibrary CMS506FHIRSafeUseofOpioids version '1.1.000'\n\nusing USQualityCore version '0.1.0-cibuild'\nusing USCore version '6.1.0-derived'\nusing FHIR version '4.0.1'\n\ninclude hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers\ninclude hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon\ninclude hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon\ninclude hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements\n\ninclude CQMCommon version '5.1.000' called CQMCommon\ninclude USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon\ninclude SupplementalDataElements version '6.1.000' called SDE\ninclude Status version '2.1.000' called Status\n\nvalueset "Cancer Related Pain": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.180'\nvalueset "Discharge To Acute Care Facility": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.87'\nvalueset "Hospice Care Referral or Admission": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1116.365'\nvalueset "Left Against Medical Advice": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.308'\nvalueset "Medications for Opioid Use Disorder (MOUD)": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.269'\nvalueset "Opioid Medication Assisted Treatment (MAT)": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.177'\nvalueset "Opioid Use Disorder": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.171'\nvalueset "Palliative or Hospice Care": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.600.1.1579'\nvalueset "Patient Expired": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.309'\nvalueset "Schedule II, III and IV Opioid Medications": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.241'\nvalueset "Schedule IV Benzodiazepines": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1125.1'\nvalueset "Sickle Cell Disease with and without Crisis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1111.175'\n\nparameter "Measurement Period" Interval<DateTime>\n default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)\n\ncontext Patient\n\ndefine "Initial Population":\n "Inpatient Encounters With An Opioid Or Benzodiazepine At Discharge"\n\ndefine "Denominator":\n "Initial Population"\n\ndefine "Inpatient Encounter With Age Greater Than Or Equal To 18":\n CQMCommon."Inpatient Encounter" InpatientHospitalEncounter\n where AgeInYearsAt(date from start of InpatientHospitalEncounter.period) >= 18\n \n/*\n@description: Captures encounters of patients with an opioid and/or benzodiazepine at discharge.\n*/\n\n\ndefine "Inpatient Encounters With An Opioid Or Benzodiazepine At Discharge":\n "Inpatient Encounter With Age Greater Than Or Equal To 18" InpatientEncounter\n with ( "Opioid At Discharge"\n union "Benzodiazepine At Discharge" ) OpioidOrBenzodiazepineAtDischarge\n such that OpioidOrBenzodiazepineAtDischarge.authoredOn during day of InpatientEncounter.period\n\ndefine "Benzodiazepine At Discharge":\n ["MedicationRequest": "Schedule IV Benzodiazepines"] BenzoMedications\n where ( BenzoMedications.isCommunity ( )\n or BenzoMedications.isDischarge ( )\n )\n and BenzoMedications.status in { 'active', 'completed' }\n and BenzoMedications.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }\n\ndefine "Opioid At Discharge":\n ["MedicationRequest": "Schedule II, III and IV Opioid Medications"] OpioidMedications\n where ( OpioidMedications.isCommunity ( )\n or OpioidMedications.isDischarge ( )\n )\n and OpioidMedications.status in { 'active', 'completed' }\n and OpioidMedications.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }\n \n/*\n@description: Encounters of patients prescribed two or more opioids or an opioid and benzodiazepine at discharge.\n*/\n\n\ndefine "Numerator":\n "Denominator" InpatientEncounter\n where ( Count("Opioid At Discharge" OpioidMedications\n where OpioidMedications.authoredOn during day of InpatientEncounter.period\n return distinct OpioidMedications.medication\n ) >= 2\n )\n or ( exists "Opioid At Discharge" OpioidDischargeMedications\n where OpioidDischargeMedications.authoredOn during day of InpatientEncounter.period\n and exists ( "Benzodiazepine At Discharge" BenzodiazepineDischargeMedication\n where BenzodiazepineDischargeMedication.authoredOn during day of InpatientEncounter.period\n )\n )\n\ndefine "Inpatient Encounter With Encounter Diagnosis Of Cancer Pain":\n "Denominator" QualifyingEncounter\n where QualifyingEncounter.reasonCode in "Cancer Related Pain"\n or QualifyingEncounter.encounterDiagnosis ( ).code in "Cancer Related Pain"\n\n/*\n@description: Excludes encounters of patients with cancer pain or who are receiving palliative or hospice care at the time of the encounter or who receive treatment for opioid use disorder, have sickle cell disease, or who are discharged to another inpatient care facility or discharged against medical advice, or expire during the inpatient stay.\n*/\n\n\ndefine "Denominator Exclusion":\n "Denominator" InpatientEncounter\n where exists ( ["ConditionProblemsHealthConcerns": "Cancer Related Pain"] CancerPain\n where CancerPain.prevalenceInterval ( ) overlaps day of InpatientEncounter.period\n and CancerPain.isVerified ( )\n )\n or exists ( "Inpatient Encounter With Encounter Diagnosis Of Cancer Pain" )\n or exists ( ["ConditionProblemsHealthConcerns": "Sickle Cell Disease with and without Crisis"] SickleCellDisease\n where SickleCellDisease.prevalenceInterval ( ) overlaps day of InpatientEncounter.period\n and SickleCellDisease.isVerified ( )\n )\n or exists ( "Treatment For Opioid Use Disorders" OUDTreatment\n where OUDTreatment.authoredOn during day of InpatientEncounter.period\n )\n or exists ( "Intervention Palliative Or Hospice Care" PalliativeOrHospiceCare\n where Coalesce(start of PalliativeOrHospiceCare.performed.toInterval(), PalliativeOrHospiceCare.authoredOn) during InpatientEncounter.hospitalizationWithObservation ( )\n )\n or ( InpatientEncounter.hospitalization.dischargeDisposition in "Discharge To Acute Care Facility"\n or InpatientEncounter.hospitalization.dischargeDisposition in "Hospice Care Referral or Admission"\n or InpatientEncounter.hospitalization.dischargeDisposition in "Patient Expired"\n or InpatientEncounter.hospitalization.dischargeDisposition in "Left Against Medical Advice"\n )\n\ndefine "Treatment For Opioid Use Disorders":\n ( "Medications For Opioid Use Disorder" MedicationTreatment\n with ["Procedure": "Opioid Medication Assisted Treatment (MAT)"] MAT\n such that MedicationTreatment.authoredOn during day of MAT.performed.toInterval ( )\n and MedicationTreatment.authoredOn during day of "Measurement Period"\n and MAT.status in { 'completed', 'in-progress' }\n )\n union ( "Medications For Opioid Use Disorder" MedicationTreatment\n with ["ConditionProblemsHealthConcerns": "Opioid Use Disorder"] OUD\n such that MedicationTreatment.authoredOn during day of OUD.prevalenceInterval ( )\n and OUD.prevalenceInterval ( ) overlaps day of "Measurement Period"\n and OUD.isVerified ( )\n )\n\ndefine "Medications For Opioid Use Disorder":\n ["MedicationRequest": "Medications for Opioid Use Disorder (MOUD)"] DischargeMedication\n where ( DischargeMedication.isCommunity ( )\n or DischargeMedication.isDischarge ( )\n )\n and DischargeMedication.status in { 'active', 'completed' }\n and DischargeMedication.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }\n\ndefine "Intervention Palliative Or Hospice Care":\n ( ["ServiceRequest": "Palliative or Hospice Care"] PalliativeOrHospiceCareOrder\n where PalliativeOrHospiceCareOrder.status in { 'active', 'completed', 'on-hold' }\n )\n union ( ["Procedure": "Palliative or Hospice Care"] PalliativeOrHospiceCarePerformed\n where PalliativeOrHospiceCarePerformed.status in { 'completed', 'in-progress' }\n )\n\ndefine "SDE Ethnicity":\n SDE."SDE Ethnicity"\n\ndefine "SDE Payer":\n SDE."SDE Payer"\n\ndefine "SDE Race":\n SDE."SDE Race"\n\ndefine "SDE Sex":\n SDE."SDE Sex"\n \n/*\n@description: Returns true if the given condition either has no verification status or has a verification status of confirmed, unconfirmed, provisional, or differential\n*/\n\n\ndefine fluent function isVerified(condition Choice<ConditionProblemsHealthConcerns, ConditionEncounterDiagnosis>):\n condition.verificationStatus is not null implies ( condition.verificationStatus ~ Status."confirmed"\n or condition.verificationStatus ~ Status."unconfirmed"\n or condition.verificationStatus ~ Status."provisional"\n or condition.verificationStatus ~ Status."differential"\n )</code></pre>\n </td>\n </tr>\n \n \n\n\n\n<tr>\n <th colspan=\"2\" scope=\"row\" class=\"row-header\">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>\n</tr>\n\n </tbody>\n </table>\n</div>"
},
"extension" : [
{
"url" : "http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem",
"valueReference" : {
"reference" : "Device/cqf-tooling"
}
}
],
"url" : "https://madie.cms.gov/Library/CMS506FHIRSafeUseofOpioids",
"version" : "1.1.000",
"name" : "CMS506FHIRSafeUseofOpioids",
"status" : "draft",
"type" : {
"coding" : [
{
"system" : "http://terminology.hl7.org/CodeSystem/library-type",
"code" : "logic-library"
}
]
},
"date" : "2026-09-19T16:31:14+00:00",
"content" : [
{
"contentType" : "text/cql",
"data" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVM1MDZGSElSU2FmZVVzZW9mT3Bpb2lkcyB2ZXJzaW9uICcxLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBDUU1Db21tb24gdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIENRTUNvbW1vbgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCgp2YWx1ZXNldCAiQ2FuY2VyIFJlbGF0ZWQgUGFpbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTEuMTgwJwp2YWx1ZXNldCAiRGlzY2hhcmdlIFRvIEFjdXRlIENhcmUgRmFjaWxpdHkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjg3Jwp2YWx1ZXNldCAiSG9zcGljZSBDYXJlIFJlZmVycmFsIG9yIEFkbWlzc2lvbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTYuMzY1Jwp2YWx1ZXNldCAiTGVmdCBBZ2FpbnN0IE1lZGljYWwgQWR2aWNlIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4zMDgnCnZhbHVlc2V0ICJNZWRpY2F0aW9ucyBmb3IgT3Bpb2lkIFVzZSBEaXNvcmRlciAoTU9VRCkiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ2LjI2OScKdmFsdWVzZXQgIk9waW9pZCBNZWRpY2F0aW9uIEFzc2lzdGVkIFRyZWF0bWVudCAoTUFUKSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTEuMTc3Jwp2YWx1ZXNldCAiT3Bpb2lkIFVzZSBEaXNvcmRlciI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMTEuMTcxJwp2YWx1ZXNldCAiUGFsbGlhdGl2ZSBvciBIb3NwaWNlIENhcmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNjAwLjEuMTU3OScKdmFsdWVzZXQgIlBhdGllbnQgRXhwaXJlZCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMzA5Jwp2YWx1ZXNldCAiU2NoZWR1bGUgSUksIElJSSBhbmQgSVYgT3Bpb2lkIE1lZGljYXRpb25zIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTA0Ni4yNDEnCnZhbHVlc2V0ICJTY2hlZHVsZSBJViBCZW56b2RpYXplcGluZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTI1LjEnCnZhbHVlc2V0ICJTaWNrbGUgQ2VsbCBEaXNlYXNlIHdpdGggYW5kIHdpdGhvdXQgQ3Jpc2lzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMS4xNzUnCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaLCBAMjAyNy0wMS0wMVQwMDowMDowMC4wMDBaKQoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgIklucGF0aWVudCBFbmNvdW50ZXJzIFdpdGggQW4gT3Bpb2lkIE9yIEJlbnpvZGlhemVwaW5lIEF0IERpc2NoYXJnZSIKCmRlZmluZSAiRGVub21pbmF0b3IiOgogICJJbml0aWFsIFBvcHVsYXRpb24iCgpkZWZpbmUgIklucGF0aWVudCBFbmNvdW50ZXIgV2l0aCBBZ2UgR3JlYXRlciBUaGFuIE9yIEVxdWFsIFRvIDE4IjoKICBDUU1Db21tb24uIklucGF0aWVudCBFbmNvdW50ZXIiIElucGF0aWVudEhvc3BpdGFsRW5jb3VudGVyCiAgICB3aGVyZSBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mIElucGF0aWVudEhvc3BpdGFsRW5jb3VudGVyLnBlcmlvZCkgPj0gMTgKICAgICAgICAgICAgICAgICAgCi8qCkBkZXNjcmlwdGlvbjogQ2FwdHVyZXMgZW5jb3VudGVycyBvZiBwYXRpZW50cyB3aXRoIGFuIG9waW9pZCBhbmQvb3IgYmVuem9kaWF6ZXBpbmUgYXQgZGlzY2hhcmdlLgoqLwoKCmRlZmluZSAiSW5wYXRpZW50IEVuY291bnRlcnMgV2l0aCBBbiBPcGlvaWQgT3IgQmVuem9kaWF6ZXBpbmUgQXQgRGlzY2hhcmdlIjoKICAiSW5wYXRpZW50IEVuY291bnRlciBXaXRoIEFnZSBHcmVhdGVyIFRoYW4gT3IgRXF1YWwgVG8gMTgiIElucGF0aWVudEVuY291bnRlcgogICAgd2l0aCAoICJPcGlvaWQgQXQgRGlzY2hhcmdlIgogICAgICB1bmlvbiAiQmVuem9kaWF6ZXBpbmUgQXQgRGlzY2hhcmdlIiApIE9waW9pZE9yQmVuem9kaWF6ZXBpbmVBdERpc2NoYXJnZQogICAgICBzdWNoIHRoYXQgT3Bpb2lkT3JCZW56b2RpYXplcGluZUF0RGlzY2hhcmdlLmF1dGhvcmVkT24gZHVyaW5nIGRheSBvZiBJbnBhdGllbnRFbmNvdW50ZXIucGVyaW9kCgpkZWZpbmUgIkJlbnpvZGlhemVwaW5lIEF0IERpc2NoYXJnZSI6CiAgWyJNZWRpY2F0aW9uUmVxdWVzdCI6ICJTY2hlZHVsZSBJViBCZW56b2RpYXplcGluZXMiXSBCZW56b01lZGljYXRpb25zCiAgICB3aGVyZSAoIEJlbnpvTWVkaWNhdGlvbnMuaXNDb21tdW5pdHkgKCApCiAgICAgICAgb3IgQmVuem9NZWRpY2F0aW9ucy5pc0Rpc2NoYXJnZSAoICkKICAgICkKICAgICAgYW5kIEJlbnpvTWVkaWNhdGlvbnMuc3RhdHVzIGluIHsgJ2FjdGl2ZScsICdjb21wbGV0ZWQnIH0KICAgICAgYW5kIEJlbnpvTWVkaWNhdGlvbnMuaW50ZW50IGluIHsgJ29yZGVyJywgJ29yaWdpbmFsLW9yZGVyJywgJ3JlZmxleC1vcmRlcicsICdmaWxsZXItb3JkZXInLCAnaW5zdGFuY2Utb3JkZXInIH0KCmRlZmluZSAiT3Bpb2lkIEF0IERpc2NoYXJnZSI6CiAgWyJNZWRpY2F0aW9uUmVxdWVzdCI6ICJTY2hlZHVsZSBJSSwgSUlJIGFuZCBJViBPcGlvaWQgTWVkaWNhdGlvbnMiXSBPcGlvaWRNZWRpY2F0aW9ucwogICAgd2hlcmUgKCBPcGlvaWRNZWRpY2F0aW9ucy5pc0NvbW11bml0eSAoICkKICAgICAgICBvciBPcGlvaWRNZWRpY2F0aW9ucy5pc0Rpc2NoYXJnZSAoICkKICAgICkKICAgICAgYW5kIE9waW9pZE1lZGljYXRpb25zLnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CiAgICAgIGFuZCBPcGlvaWRNZWRpY2F0aW9ucy5pbnRlbnQgaW4geyAnb3JkZXInLCAnb3JpZ2luYWwtb3JkZXInLCAncmVmbGV4LW9yZGVyJywgJ2ZpbGxlci1vcmRlcicsICdpbnN0YW5jZS1vcmRlcicgfQogICAgICAgIAovKgpAZGVzY3JpcHRpb246IEVuY291bnRlcnMgb2YgcGF0aWVudHMgcHJlc2NyaWJlZCB0d28gb3IgbW9yZSBvcGlvaWRzIG9yIGFuIG9waW9pZCBhbmQgYmVuem9kaWF6ZXBpbmUgYXQgZGlzY2hhcmdlLgoqLwoKCmRlZmluZSAiTnVtZXJhdG9yIjoKICAiRGVub21pbmF0b3IiIElucGF0aWVudEVuY291bnRlcgogICAgd2hlcmUgKCBDb3VudCgiT3Bpb2lkIEF0IERpc2NoYXJnZSIgT3Bpb2lkTWVkaWNhdGlvbnMKICAgICAgICAgIHdoZXJlIE9waW9pZE1lZGljYXRpb25zLmF1dGhvcmVkT24gZHVyaW5nIGRheSBvZiBJbnBhdGllbnRFbmNvdW50ZXIucGVyaW9kCiAgICAgICAgICByZXR1cm4gZGlzdGluY3QgT3Bpb2lkTWVkaWNhdGlvbnMubWVkaWNhdGlvbgogICAgICApID49IDIKICAgICkKICAgICAgb3IgKCBleGlzdHMgIk9waW9pZCBBdCBEaXNjaGFyZ2UiIE9waW9pZERpc2NoYXJnZU1lZGljYXRpb25zCiAgICAgICAgICB3aGVyZSBPcGlvaWREaXNjaGFyZ2VNZWRpY2F0aW9ucy5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgSW5wYXRpZW50RW5jb3VudGVyLnBlcmlvZAogICAgICAgICAgICBhbmQgZXhpc3RzICggIkJlbnpvZGlhemVwaW5lIEF0IERpc2NoYXJnZSIgQmVuem9kaWF6ZXBpbmVEaXNjaGFyZ2VNZWRpY2F0aW9uCiAgICAgICAgICAgICAgICB3aGVyZSBCZW56b2RpYXplcGluZURpc2NoYXJnZU1lZGljYXRpb24uYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mIElucGF0aWVudEVuY291bnRlci5wZXJpb2QKICAgICAgICAgICAgKQogICAgICApCgpkZWZpbmUgIklucGF0aWVudCBFbmNvdW50ZXIgV2l0aCBFbmNvdW50ZXIgRGlhZ25vc2lzIE9mIENhbmNlciBQYWluIjoKICAiRGVub21pbmF0b3IiIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgIHdoZXJlIFF1YWxpZnlpbmdFbmNvdW50ZXIucmVhc29uQ29kZSBpbiAiQ2FuY2VyIFJlbGF0ZWQgUGFpbiIKICAgICAgb3IgUXVhbGlmeWluZ0VuY291bnRlci5lbmNvdW50ZXJEaWFnbm9zaXMgKCApLmNvZGUgaW4gIkNhbmNlciBSZWxhdGVkIFBhaW4iCgovKgpAZGVzY3JpcHRpb246IEV4Y2x1ZGVzIGVuY291bnRlcnMgb2YgcGF0aWVudHMgd2l0aCBjYW5jZXIgcGFpbiBvciB3aG8gYXJlIHJlY2VpdmluZyBwYWxsaWF0aXZlIG9yIGhvc3BpY2UgY2FyZSBhdCB0aGUgdGltZSBvZiB0aGUgZW5jb3VudGVyIG9yIHdobyByZWNlaXZlIHRyZWF0bWVudCBmb3Igb3Bpb2lkIHVzZSBkaXNvcmRlciwgaGF2ZSBzaWNrbGUgY2VsbCBkaXNlYXNlLCBvciB3aG8gYXJlIGRpc2NoYXJnZWQgdG8gYW5vdGhlciBpbnBhdGllbnQgY2FyZSBmYWNpbGl0eSBvciBkaXNjaGFyZ2VkIGFnYWluc3QgbWVkaWNhbCBhZHZpY2UsIG9yIGV4cGlyZSBkdXJpbmcgdGhlIGlucGF0aWVudCBzdGF5LgoqLwoKCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9uIjoKICAiRGVub21pbmF0b3IiIElucGF0aWVudEVuY291bnRlcgogICAgd2hlcmUgZXhpc3RzICggWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkNhbmNlciBSZWxhdGVkIFBhaW4iXSBDYW5jZXJQYWluCiAgICAgICAgd2hlcmUgQ2FuY2VyUGFpbi5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIG92ZXJsYXBzIGRheSBvZiBJbnBhdGllbnRFbmNvdW50ZXIucGVyaW9kCiAgICAgICAgICBhbmQgQ2FuY2VyUGFpbi5pc1ZlcmlmaWVkICggKQogICAgKQogICAgICBvciBleGlzdHMgKCAiSW5wYXRpZW50IEVuY291bnRlciBXaXRoIEVuY291bnRlciBEaWFnbm9zaXMgT2YgQ2FuY2VyIFBhaW4iICkKICAgICAgb3IgZXhpc3RzICggWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIlNpY2tsZSBDZWxsIERpc2Vhc2Ugd2l0aCBhbmQgd2l0aG91dCBDcmlzaXMiXSBTaWNrbGVDZWxsRGlzZWFzZQogICAgICAgICAgd2hlcmUgU2lja2xlQ2VsbERpc2Vhc2UucHJldmFsZW5jZUludGVydmFsICggKSBvdmVybGFwcyBkYXkgb2YgSW5wYXRpZW50RW5jb3VudGVyLnBlcmlvZAogICAgICAgICAgICBhbmQgU2lja2xlQ2VsbERpc2Vhc2UuaXNWZXJpZmllZCAoICkKICAgICAgKQogICAgICBvciBleGlzdHMgKCAiVHJlYXRtZW50IEZvciBPcGlvaWQgVXNlIERpc29yZGVycyIgT1VEVHJlYXRtZW50CiAgICAgICAgICB3aGVyZSBPVURUcmVhdG1lbnQuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mIElucGF0aWVudEVuY291bnRlci5wZXJpb2QKICAgICAgKQogICAgICBvciBleGlzdHMgKCAiSW50ZXJ2ZW50aW9uIFBhbGxpYXRpdmUgT3IgSG9zcGljZSBDYXJlIiBQYWxsaWF0aXZlT3JIb3NwaWNlQ2FyZQogICAgICAgICAgd2hlcmUgQ29hbGVzY2Uoc3RhcnQgb2YgUGFsbGlhdGl2ZU9ySG9zcGljZUNhcmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwoKSwgUGFsbGlhdGl2ZU9ySG9zcGljZUNhcmUuYXV0aG9yZWRPbikgZHVyaW5nIElucGF0aWVudEVuY291bnRlci5ob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24gKCApCiAgICAgICkKICAgICAgb3IgKCBJbnBhdGllbnRFbmNvdW50ZXIuaG9zcGl0YWxpemF0aW9uLmRpc2NoYXJnZURpc3Bvc2l0aW9uIGluICJEaXNjaGFyZ2UgVG8gQWN1dGUgQ2FyZSBGYWNpbGl0eSIKICAgICAgICAgIG9yIElucGF0aWVudEVuY291bnRlci5ob3NwaXRhbGl6YXRpb24uZGlzY2hhcmdlRGlzcG9zaXRpb24gaW4gIkhvc3BpY2UgQ2FyZSBSZWZlcnJhbCBvciBBZG1pc3Npb24iCiAgICAgICAgICBvciBJbnBhdGllbnRFbmNvdW50ZXIuaG9zcGl0YWxpemF0aW9uLmRpc2NoYXJnZURpc3Bvc2l0aW9uIGluICJQYXRpZW50IEV4cGlyZWQiCiAgICAgICAgICBvciBJbnBhdGllbnRFbmNvdW50ZXIuaG9zcGl0YWxpemF0aW9uLmRpc2NoYXJnZURpc3Bvc2l0aW9uIGluICJMZWZ0IEFnYWluc3QgTWVkaWNhbCBBZHZpY2UiCiAgICAgICkKCmRlZmluZSAiVHJlYXRtZW50IEZvciBPcGlvaWQgVXNlIERpc29yZGVycyI6CiAgKCAiTWVkaWNhdGlvbnMgRm9yIE9waW9pZCBVc2UgRGlzb3JkZXIiIE1lZGljYXRpb25UcmVhdG1lbnQKICAgICAgd2l0aCBbIlByb2NlZHVyZSI6ICJPcGlvaWQgTWVkaWNhdGlvbiBBc3Npc3RlZCBUcmVhdG1lbnQgKE1BVCkiXSBNQVQKICAgICAgICBzdWNoIHRoYXQgTWVkaWNhdGlvblRyZWF0bWVudC5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgTUFULnBlcmZvcm1lZC50b0ludGVydmFsICggKQogICAgICAgICAgYW5kIE1lZGljYXRpb25UcmVhdG1lbnQuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgICBhbmQgTUFULnN0YXR1cyBpbiB7ICdjb21wbGV0ZWQnLCAnaW4tcHJvZ3Jlc3MnIH0KICApCiAgICB1bmlvbiAoICJNZWRpY2F0aW9ucyBGb3IgT3Bpb2lkIFVzZSBEaXNvcmRlciIgTWVkaWNhdGlvblRyZWF0bWVudAogICAgICAgIHdpdGggWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIk9waW9pZCBVc2UgRGlzb3JkZXIiXSBPVUQKICAgICAgICAgIHN1Y2ggdGhhdCBNZWRpY2F0aW9uVHJlYXRtZW50LmF1dGhvcmVkT24gZHVyaW5nIGRheSBvZiBPVUQucHJldmFsZW5jZUludGVydmFsICggKQogICAgICAgICAgICBhbmQgT1VELnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgICAgIGFuZCBPVUQuaXNWZXJpZmllZCAoICkKICAgICkKCmRlZmluZSAiTWVkaWNhdGlvbnMgRm9yIE9waW9pZCBVc2UgRGlzb3JkZXIiOgogIFsiTWVkaWNhdGlvblJlcXVlc3QiOiAiTWVkaWNhdGlvbnMgZm9yIE9waW9pZCBVc2UgRGlzb3JkZXIgKE1PVUQpIl0gRGlzY2hhcmdlTWVkaWNhdGlvbgogICAgd2hlcmUgKCBEaXNjaGFyZ2VNZWRpY2F0aW9uLmlzQ29tbXVuaXR5ICggKQogICAgICAgIG9yIERpc2NoYXJnZU1lZGljYXRpb24uaXNEaXNjaGFyZ2UgKCApCiAgICApCiAgICAgIGFuZCBEaXNjaGFyZ2VNZWRpY2F0aW9uLnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CiAgICAgIGFuZCBEaXNjaGFyZ2VNZWRpY2F0aW9uLmludGVudCBpbiB7ICdvcmRlcicsICdvcmlnaW5hbC1vcmRlcicsICdyZWZsZXgtb3JkZXInLCAnZmlsbGVyLW9yZGVyJywgJ2luc3RhbmNlLW9yZGVyJyB9CgpkZWZpbmUgIkludGVydmVudGlvbiBQYWxsaWF0aXZlIE9yIEhvc3BpY2UgQ2FyZSI6CiAgKCBbIlNlcnZpY2VSZXF1ZXN0IjogIlBhbGxpYXRpdmUgb3IgSG9zcGljZSBDYXJlIl0gUGFsbGlhdGl2ZU9ySG9zcGljZUNhcmVPcmRlcgogICAgICB3aGVyZSBQYWxsaWF0aXZlT3JIb3NwaWNlQ2FyZU9yZGVyLnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJywgJ29uLWhvbGQnIH0KICApCiAgICB1bmlvbiAoIFsiUHJvY2VkdXJlIjogIlBhbGxpYXRpdmUgb3IgSG9zcGljZSBDYXJlIl0gUGFsbGlhdGl2ZU9ySG9zcGljZUNhcmVQZXJmb3JtZWQKICAgICAgICB3aGVyZSBQYWxsaWF0aXZlT3JIb3NwaWNlQ2FyZVBlcmZvcm1lZC5zdGF0dXMgaW4geyAnY29tcGxldGVkJywgJ2luLXByb2dyZXNzJyB9CiAgICApCgpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOgogIFNERS4iU0RFIEV0aG5pY2l0eSIKCmRlZmluZSAiU0RFIFBheWVyIjoKICBTREUuIlNERSBQYXllciIKCmRlZmluZSAiU0RFIFJhY2UiOgogIFNERS4iU0RFIFJhY2UiCgpkZWZpbmUgIlNERSBTZXgiOgogIFNERS4iU0RFIFNleCIKICAKLyoKQGRlc2NyaXB0aW9uOiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGNvbmRpdGlvbiBlaXRoZXIgaGFzIG5vIHZlcmlmaWNhdGlvbiBzdGF0dXMgb3IgaGFzIGEgdmVyaWZpY2F0aW9uIHN0YXR1cyBvZiBjb25maXJtZWQsIHVuY29uZmlybWVkLCBwcm92aXNpb25hbCwgb3IgZGlmZmVyZW50aWFsCiovCgoKZGVmaW5lIGZsdWVudCBmdW5jdGlvbiBpc1ZlcmlmaWVkKGNvbmRpdGlvbiBDaG9pY2U8Q29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucywgQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzPik6CiAgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyBpcyBub3QgbnVsbCBpbXBsaWVzICggY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4iY29uZmlybWVkIgogICAgICBvciBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJ1bmNvbmZpcm1lZCIKICAgICAgb3IgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4icHJvdmlzaW9uYWwiCiAgICAgIG9yIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgfiBTdGF0dXMuImRpZmZlcmVudGlhbCIKICAp",
"url" : "https://madie.cms.gov/Library-CMS506FHIRSafeUseofOpioids.cql"
}
]
}