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" : "CMS144FHIRHFBetaBlockerForLVSD",
"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 CMS144FHIRHFBetaBlockerForLVSD 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\ninclude AHAOverall version '5.1.000' called AHA\n\ncodesystem "SNOMEDCT": 'http://snomed.info/sct'\n\nvalueset "Allergy to Beta Blocker Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1177'\nvalueset "Arrhythmia": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.366'\nvalueset "Asthma": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.362'\nvalueset "Atrioventricular Block": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.367'\nvalueset "Beta Blocker Therapy for LVSD": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1184'\nvalueset "Beta Blocker Therapy Ingredient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1493'\nvalueset "Bradycardia": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.412'\nvalueset "Cardiac Pacer": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1178.53'\nvalueset "Cardiac Pacer in Situ": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.368'\nvalueset "Hypotension": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.370'\nvalueset "Intolerance to Beta Blocker Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1178'\nvalueset "Medical Reason": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1007'\nvalueset "Patient Reason": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1008'\n\ncode "Substance with beta adrenergic receptor antagonist mechanism of action (substance)": '373254001' from "SNOMEDCT" display 'Substance with beta adrenergic receptor antagonist mechanism of action (substance)'\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 AHA."Is Adult With Two Qualifying Outpatient Encounters and One Heart Failure Outpatient Encounter During the Measurement Period"\n\ndefine "Denominator":\n "Initial Population"\n and exists AHA."Heart Failure Outpatient Encounter with History of Moderate or Severe LVSD"\n\ndefine "Denominator Exclusions":\n AHA."Has Heart Transplant"\n or AHA."Has Heart Transplant Complications"\n or AHA."Has Left Ventricular Assist Device"\n or AHA."Has Left Ventricular Assist Device Complications"\n\ndefine "Numerator":\n "Has Beta Blocker Therapy for LVSD Ordered"\n or "Is Currently Taking Beta Blocker Therapy for LVSD"\n\ndefine "Denominator Exceptions":\n "Has Consecutive Heart Rates Less than 50"\n or "Has Medical or Patient Reason for Not Ordering Beta Blocker for LVSD"\n or "Has Arrhythmia Diagnosis"\n or "Has Hypotension Diagnosis"\n or "Has Asthma Diagnosis"\n or "Has Diagnosis of Allergy or Intolerance to Beta Blocker Therapy"\n or "Has Bradycardia Diagnosis"\n or "Has Allergy or Intolerance to Beta Blocker Therapy Ingredient"\n or "Atrioventricular Block without Cardiac Pacer"\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\ndefine "Atrioventricular Block without Cardiac Pacer":\n "Has Atrioventricular Block Diagnosis"\n and not "Has Diagnosis of Cardiac Pacer in Situ"\n and not "Has Cardiac Pacer Device Implanted"\n\ndefine "Has Cardiac Pacer Device Implanted":\n exists ( [Procedure: "Cardiac Pacer"] ImplantedCardiacPacer\n with AHA."Heart Failure Outpatient Encounter with History of Moderate or Severe LVSD" ModerateOrSevereLVSDHFOutpatientEncounter\n such that ImplantedCardiacPacer.performed.toInterval ( ) starts before end of ModerateOrSevereLVSDHFOutpatientEncounter.period\n where ImplantedCardiacPacer.status = 'completed'\n )\n\ndefine "Is Currently Taking Beta Blocker Therapy for LVSD":\n exists ( ["MedicationRequest": "Beta Blocker Therapy for LVSD"] ActiveBetaBlocker\n where ActiveBetaBlocker.overlapsAfterHeartFailureOutpatientEncounter ( )\n )\n\ndefine "Has Hypotension Diagnosis":\n exists ( ( ["ConditionProblemsHealthConcerns": "Hypotension"]\n union ["ConditionEncounterDiagnosis": "Hypotension"] ) HypotensionAlias\n where HypotensionAlias.overlapsHeartFailureOutpatientEncounter ( )\n and HypotensionAlias.isVerified ( )\n )\n\ndefine "Has Diagnosis of Cardiac Pacer in Situ":\n exists ( ( ["ConditionProblemsHealthConcerns": "Cardiac Pacer in Situ"]\n union ["ConditionEncounterDiagnosis": "Cardiac Pacer in Situ"] ) CardiacPacerDiagnosis\n where CardiacPacerDiagnosis.overlapsAfterHeartFailureOutpatientEncounter ( )\n and CardiacPacerDiagnosis.isVerified ( )\n )\n\ndefine "Has Diagnosis of Allergy or Intolerance to Beta Blocker Therapy":\n exists ( ( ( ["ConditionProblemsHealthConcerns": "Allergy to Beta Blocker Therapy"]\n union ["ConditionEncounterDiagnosis": "Allergy to Beta Blocker Therapy"]\n )\n union ( ["ConditionProblemsHealthConcerns": "Intolerance to Beta Blocker Therapy"] )\n union ["ConditionEncounterDiagnosis": "Intolerance to Beta Blocker Therapy"] ) BetaBlockerAllergyOrIntoleranceDiagnosis\n where BetaBlockerAllergyOrIntoleranceDiagnosis.overlapsAfterHeartFailureOutpatientEncounter ( )\n and BetaBlockerAllergyOrIntoleranceDiagnosis.isVerified ( )\n )\n\ndefine "Has Bradycardia Diagnosis":\n exists ( ( [ConditionProblemsHealthConcerns: "Bradycardia"]\n union [ConditionEncounterDiagnosis: "Bradycardia"] ) BradycardiaAlias\n where BradycardiaAlias.overlapsHeartFailureOutpatientEncounter ( )\n and BradycardiaAlias.isVerified ( )\n )\n\ndefine "Has Consecutive Heart Rates Less than 50":\n exists ( from\n ["USCore.HeartRateProfile"] HeartRate,\n AHA."Heart Failure Outpatient Encounter with History of Moderate or Severe LVSD" ModerateOrSevereLVSDHFOutpatientEncounter\n let PriorHeartRate: Last(["USCore.HeartRateProfile"] MostRecentPriorHeartRate\n where MostRecentPriorHeartRate.effective.toInterval() during ModerateOrSevereLVSDHFOutpatientEncounter.period\n and MostRecentPriorHeartRate.effective.toInterval() before HeartRate.effective.toInterval()\n sort by start of effective.toInterval()\n )\n where HeartRate.effective.toInterval ( ) during ModerateOrSevereLVSDHFOutpatientEncounter.period\n and HeartRate.status in { 'final', 'amended', 'corrected' }\n and HeartRate.value < 50 '/min'\n and PriorHeartRate.value < 50 '/min'\n return HeartRate\n )\n\ndefine "Has Allergy or Intolerance to Beta Blocker Therapy Ingredient":\n exists ( ( [AllergyIntolerance: "Beta Blocker Therapy Ingredient"]\n union [AllergyIntolerance: "Substance with beta adrenergic receptor antagonist mechanism of action (substance)"] ) BetaBlockerAllergyIntolerance\n where BetaBlockerAllergyIntolerance.overlapsAfterHeartFailureOutpatientEncounter ( )\n and BetaBlockerAllergyIntolerance.isVerified ( )\n )\n\ndefine "Has Arrhythmia Diagnosis":\n exists ( ( [ConditionProblemsHealthConcerns: "Arrhythmia"]\n union [ConditionEncounterDiagnosis: "Arrhythmia"] ) ArrhythmiaAlias\n where ArrhythmiaAlias.overlapsHeartFailureOutpatientEncounter ( )\n and ArrhythmiaAlias.isVerified ( )\n )\n\ndefine "Has Asthma Diagnosis":\n exists ( ( [ConditionProblemsHealthConcerns: "Asthma"]\n union [ConditionEncounterDiagnosis: "Asthma"] ) AsthmaAlias\n where AsthmaAlias.overlapsHeartFailureOutpatientEncounter ( )\n and AsthmaAlias.isVerified ( )\n )\n\ndefine "Has Atrioventricular Block Diagnosis":\n exists ( ( [ConditionProblemsHealthConcerns: "Atrioventricular Block"]\n union [ConditionEncounterDiagnosis: "Atrioventricular Block"] ) AtrioventricularBlockAlias\n where AtrioventricularBlockAlias.overlapsHeartFailureOutpatientEncounter ( )\n and AtrioventricularBlockAlias.isVerified ( )\n )\n\ndefine "Has Beta Blocker Therapy for LVSD Ordered":\n exists ( [MedicationRequest: medication in "Beta Blocker Therapy for LVSD"] BetaBlockerOrdered\n where BetaBlockerOrdered.isOrderedDuringHeartFailureOutpatientEncounter ( )\n )\n\ndefine "Has Medical or Patient Reason for Not Ordering Beta Blocker for LVSD":\n exists ( ["MedicationNotRequested": medication in "Beta Blocker Therapy for LVSD"] NoBetaBlockerOrdered\n with AHA."Heart Failure Outpatient Encounter with History of Moderate or Severe LVSD" ModerateOrSevereLVSDHFOutpatientEncounter\n such that NoBetaBlockerOrdered.authoredOn during day of ModerateOrSevereLVSDHFOutpatientEncounter.period\n where ( NoBetaBlockerOrdered.reasonCode in "Medical Reason"\n or NoBetaBlockerOrdered.reasonCode in "Patient Reason"\n )\n )\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(allergyIntolerance AllergyIntolerance):\n allergyIntolerance.verificationStatus is not null implies ( allergyIntolerance.verificationStatus ~ USQualityCoreCommon."allergy-confirmed"\n or allergyIntolerance.verificationStatus ~ USQualityCoreCommon."allergy-unconfirmed"\n )\n\ndefine fluent function isVerified(condition Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>):\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/CMS144FHIRHFBetaBlockerForLVSD",
"version" : "1.1.000",
"name" : "CMS144FHIRHFBetaBlockerForLVSD",
"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" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMxNDRGSElSSEZCZXRhQmxvY2tlckZvckxWU0QgdmVyc2lvbiAnMS4xLjAwMCcKCnVzaW5nIFVTUXVhbGl0eUNvcmUgdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcKdXNpbmcgVVNDb3JlIHZlcnNpb24gJzYuMS4wLWRlcml2ZWQnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJDb21tb24gdmVyc2lvbiAnMi4wLjAnIGNhbGxlZCBGSElSQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUNvbW1vbiB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlRWxlbWVudHMgdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlRWxlbWVudHMKCmluY2x1ZGUgQ1FNQ29tbW9uIHZlcnNpb24gJzUuMS4wMDAnIGNhbGxlZCBDUU1Db21tb24KaW5jbHVkZSBVU1F1YWxpdHlDb3JlQ29tbW9uIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnIGNhbGxlZCBVU1F1YWxpdHlDb3JlQ29tbW9uCmluY2x1ZGUgU3VwcGxlbWVudGFsRGF0YUVsZW1lbnRzIHZlcnNpb24gJzYuMS4wMDAnIGNhbGxlZCBTREUKaW5jbHVkZSBTdGF0dXMgdmVyc2lvbiAnMi4xLjAwMCcgY2FsbGVkIFN0YXR1cwppbmNsdWRlIEFIQU92ZXJhbGwgdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIEFIQQoKY29kZXN5c3RlbSAiU05PTUVEQ1QiOiAnaHR0cDovL3Nub21lZC5pbmZvL3NjdCcKCnZhbHVlc2V0ICJBbGxlcmd5IHRvIEJldGEgQmxvY2tlciBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjExNzcnCnZhbHVlc2V0ICJBcnJoeXRobWlhIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjM2NicKdmFsdWVzZXQgIkFzdGhtYSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4zNjInCnZhbHVlc2V0ICJBdHJpb3ZlbnRyaWN1bGFyIEJsb2NrIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjM2NycKdmFsdWVzZXQgIkJldGEgQmxvY2tlciBUaGVyYXB5IGZvciBMVlNEIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjExODQnCnZhbHVlc2V0ICJCZXRhIEJsb2NrZXIgVGhlcmFweSBJbmdyZWRpZW50IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE0OTMnCnZhbHVlc2V0ICJCcmFkeWNhcmRpYSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy40MTInCnZhbHVlc2V0ICJDYXJkaWFjIFBhY2VyIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE3OC41MycKdmFsdWVzZXQgIkNhcmRpYWMgUGFjZXIgaW4gU2l0dSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4zNjgnCnZhbHVlc2V0ICJIeXBvdGVuc2lvbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4zNzAnCnZhbHVlc2V0ICJJbnRvbGVyYW5jZSB0byBCZXRhIEJsb2NrZXIgVGhlcmFweSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xMTc4Jwp2YWx1ZXNldCAiTWVkaWNhbCBSZWFzb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTAwNycKdmFsdWVzZXQgIlBhdGllbnQgUmVhc29uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjEwMDgnCgpjb2RlICJTdWJzdGFuY2Ugd2l0aCBiZXRhIGFkcmVuZXJnaWMgcmVjZXB0b3IgYW50YWdvbmlzdCBtZWNoYW5pc20gb2YgYWN0aW9uIChzdWJzdGFuY2UpIjogJzM3MzI1NDAwMScgZnJvbSAiU05PTUVEQ1QiIGRpc3BsYXkgJ1N1YnN0YW5jZSB3aXRoIGJldGEgYWRyZW5lcmdpYyByZWNlcHRvciBhbnRhZ29uaXN0IG1lY2hhbmlzbSBvZiBhY3Rpb24gKHN1YnN0YW5jZSknCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaLCBAMjAyNy0wMS0wMVQwMDowMDowMC4wMDBaKQoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgQUhBLiJJcyBBZHVsdCBXaXRoIFR3byBRdWFsaWZ5aW5nIE91dHBhdGllbnQgRW5jb3VudGVycyBhbmQgT25lIEhlYXJ0IEZhaWx1cmUgT3V0cGF0aWVudCBFbmNvdW50ZXIgRHVyaW5nIHRoZSBNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIkRlbm9taW5hdG9yIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIgogICAgYW5kIGV4aXN0cyBBSEEuIkhlYXJ0IEZhaWx1cmUgT3V0cGF0aWVudCBFbmNvdW50ZXIgd2l0aCBIaXN0b3J5IG9mIE1vZGVyYXRlIG9yIFNldmVyZSBMVlNEIgoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICBBSEEuIkhhcyBIZWFydCBUcmFuc3BsYW50IgogICAgb3IgQUhBLiJIYXMgSGVhcnQgVHJhbnNwbGFudCBDb21wbGljYXRpb25zIgogICAgb3IgQUhBLiJIYXMgTGVmdCBWZW50cmljdWxhciBBc3Npc3QgRGV2aWNlIgogICAgb3IgQUhBLiJIYXMgTGVmdCBWZW50cmljdWxhciBBc3Npc3QgRGV2aWNlIENvbXBsaWNhdGlvbnMiCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgIkhhcyBCZXRhIEJsb2NrZXIgVGhlcmFweSBmb3IgTFZTRCBPcmRlcmVkIgogICAgb3IgIklzIEN1cnJlbnRseSBUYWtpbmcgQmV0YSBCbG9ja2VyIFRoZXJhcHkgZm9yIExWU0QiCgpkZWZpbmUgIkRlbm9taW5hdG9yIEV4Y2VwdGlvbnMiOgogICJIYXMgQ29uc2VjdXRpdmUgSGVhcnQgUmF0ZXMgTGVzcyB0aGFuIDUwIgogICAgb3IgIkhhcyBNZWRpY2FsIG9yIFBhdGllbnQgUmVhc29uIGZvciBOb3QgT3JkZXJpbmcgQmV0YSBCbG9ja2VyIGZvciBMVlNEIgogICAgb3IgIkhhcyBBcnJoeXRobWlhIERpYWdub3NpcyIKICAgIG9yICJIYXMgSHlwb3RlbnNpb24gRGlhZ25vc2lzIgogICAgb3IgIkhhcyBBc3RobWEgRGlhZ25vc2lzIgogICAgb3IgIkhhcyBEaWFnbm9zaXMgb2YgQWxsZXJneSBvciBJbnRvbGVyYW5jZSB0byBCZXRhIEJsb2NrZXIgVGhlcmFweSIKICAgIG9yICJIYXMgQnJhZHljYXJkaWEgRGlhZ25vc2lzIgogICAgb3IgIkhhcyBBbGxlcmd5IG9yIEludG9sZXJhbmNlIHRvIEJldGEgQmxvY2tlciBUaGVyYXB5IEluZ3JlZGllbnQiCiAgICBvciAiQXRyaW92ZW50cmljdWxhciBCbG9jayB3aXRob3V0IENhcmRpYWMgUGFjZXIiCgpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOgogIFNERS4iU0RFIEV0aG5pY2l0eSIKCmRlZmluZSAiU0RFIFBheWVyIjoKICBTREUuIlNERSBQYXllciIKCmRlZmluZSAiU0RFIFJhY2UiOgogIFNERS4iU0RFIFJhY2UiCgpkZWZpbmUgIlNERSBTZXgiOgogIFNERS4iU0RFIFNleCIKCmRlZmluZSAiQXRyaW92ZW50cmljdWxhciBCbG9jayB3aXRob3V0IENhcmRpYWMgUGFjZXIiOgogICJIYXMgQXRyaW92ZW50cmljdWxhciBCbG9jayBEaWFnbm9zaXMiCiAgICBhbmQgbm90ICJIYXMgRGlhZ25vc2lzIG9mIENhcmRpYWMgUGFjZXIgaW4gU2l0dSIKICAgIGFuZCBub3QgIkhhcyBDYXJkaWFjIFBhY2VyIERldmljZSBJbXBsYW50ZWQiCgpkZWZpbmUgIkhhcyBDYXJkaWFjIFBhY2VyIERldmljZSBJbXBsYW50ZWQiOgogIGV4aXN0cyAoIFtQcm9jZWR1cmU6ICJDYXJkaWFjIFBhY2VyIl0gSW1wbGFudGVkQ2FyZGlhY1BhY2VyCiAgICAgIHdpdGggQUhBLiJIZWFydCBGYWlsdXJlIE91dHBhdGllbnQgRW5jb3VudGVyIHdpdGggSGlzdG9yeSBvZiBNb2RlcmF0ZSBvciBTZXZlcmUgTFZTRCIgTW9kZXJhdGVPclNldmVyZUxWU0RIRk91dHBhdGllbnRFbmNvdW50ZXIKICAgICAgICBzdWNoIHRoYXQgSW1wbGFudGVkQ2FyZGlhY1BhY2VyLnBlcmZvcm1lZC50b0ludGVydmFsICggKSBzdGFydHMgYmVmb3JlIGVuZCBvZiBNb2RlcmF0ZU9yU2V2ZXJlTFZTREhGT3V0cGF0aWVudEVuY291bnRlci5wZXJpb2QKICAgICAgd2hlcmUgSW1wbGFudGVkQ2FyZGlhY1BhY2VyLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgKQoKZGVmaW5lICJJcyBDdXJyZW50bHkgVGFraW5nIEJldGEgQmxvY2tlciBUaGVyYXB5IGZvciBMVlNEIjoKICBleGlzdHMgKCBbIk1lZGljYXRpb25SZXF1ZXN0IjogIkJldGEgQmxvY2tlciBUaGVyYXB5IGZvciBMVlNEIl0gQWN0aXZlQmV0YUJsb2NrZXIKICAgICAgd2hlcmUgQWN0aXZlQmV0YUJsb2NrZXIub3ZlcmxhcHNBZnRlckhlYXJ0RmFpbHVyZU91dHBhdGllbnRFbmNvdW50ZXIgKCApCiAgKQoKZGVmaW5lICJIYXMgSHlwb3RlbnNpb24gRGlhZ25vc2lzIjoKICBleGlzdHMgKCAoIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJIeXBvdGVuc2lvbiJdCiAgICAgIHVuaW9uIFsiQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzIjogIkh5cG90ZW5zaW9uIl0gKSBIeXBvdGVuc2lvbkFsaWFzCiAgICAgIHdoZXJlIEh5cG90ZW5zaW9uQWxpYXMub3ZlcmxhcHNIZWFydEZhaWx1cmVPdXRwYXRpZW50RW5jb3VudGVyICggKQogICAgICAgIGFuZCBIeXBvdGVuc2lvbkFsaWFzLmlzVmVyaWZpZWQgKCApCiAgKQoKZGVmaW5lICJIYXMgRGlhZ25vc2lzIG9mIENhcmRpYWMgUGFjZXIgaW4gU2l0dSI6CiAgZXhpc3RzICggKCBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiQ2FyZGlhYyBQYWNlciBpbiBTaXR1Il0KICAgICAgdW5pb24gWyJDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXMiOiAiQ2FyZGlhYyBQYWNlciBpbiBTaXR1Il0gKSBDYXJkaWFjUGFjZXJEaWFnbm9zaXMKICAgICAgd2hlcmUgQ2FyZGlhY1BhY2VyRGlhZ25vc2lzLm92ZXJsYXBzQWZ0ZXJIZWFydEZhaWx1cmVPdXRwYXRpZW50RW5jb3VudGVyICggKQogICAgICAgIGFuZCBDYXJkaWFjUGFjZXJEaWFnbm9zaXMuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkhhcyBEaWFnbm9zaXMgb2YgQWxsZXJneSBvciBJbnRvbGVyYW5jZSB0byBCZXRhIEJsb2NrZXIgVGhlcmFweSI6CiAgZXhpc3RzICggKCAoIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJBbGxlcmd5IHRvIEJldGEgQmxvY2tlciBUaGVyYXB5Il0KICAgICAgICB1bmlvbiBbIkNvbmRpdGlvbkVuY291bnRlckRpYWdub3NpcyI6ICJBbGxlcmd5IHRvIEJldGEgQmxvY2tlciBUaGVyYXB5Il0KICAgICkKICAgICAgdW5pb24gKCBbIkNvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnMiOiAiSW50b2xlcmFuY2UgdG8gQmV0YSBCbG9ja2VyIFRoZXJhcHkiXSApCiAgICAgIHVuaW9uIFsiQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzIjogIkludG9sZXJhbmNlIHRvIEJldGEgQmxvY2tlciBUaGVyYXB5Il0gKSBCZXRhQmxvY2tlckFsbGVyZ3lPckludG9sZXJhbmNlRGlhZ25vc2lzCiAgICAgIHdoZXJlIEJldGFCbG9ja2VyQWxsZXJneU9ySW50b2xlcmFuY2VEaWFnbm9zaXMub3ZlcmxhcHNBZnRlckhlYXJ0RmFpbHVyZU91dHBhdGllbnRFbmNvdW50ZXIgKCApCiAgICAgICAgYW5kIEJldGFCbG9ja2VyQWxsZXJneU9ySW50b2xlcmFuY2VEaWFnbm9zaXMuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkhhcyBCcmFkeWNhcmRpYSBEaWFnbm9zaXMiOgogIGV4aXN0cyAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJCcmFkeWNhcmRpYSJdCiAgICAgIHVuaW9uIFtDb25kaXRpb25FbmNvdW50ZXJEaWFnbm9zaXM6ICJCcmFkeWNhcmRpYSJdICkgQnJhZHljYXJkaWFBbGlhcwogICAgICB3aGVyZSBCcmFkeWNhcmRpYUFsaWFzLm92ZXJsYXBzSGVhcnRGYWlsdXJlT3V0cGF0aWVudEVuY291bnRlciAoICkKICAgICAgICBhbmQgQnJhZHljYXJkaWFBbGlhcy5pc1ZlcmlmaWVkICggKQogICkKCmRlZmluZSAiSGFzIENvbnNlY3V0aXZlIEhlYXJ0IFJhdGVzIExlc3MgdGhhbiA1MCI6CiAgZXhpc3RzICggZnJvbQogICAgICBbIlVTQ29yZS5IZWFydFJhdGVQcm9maWxlIl0gSGVhcnRSYXRlLAogICAgICBBSEEuIkhlYXJ0IEZhaWx1cmUgT3V0cGF0aWVudCBFbmNvdW50ZXIgd2l0aCBIaXN0b3J5IG9mIE1vZGVyYXRlIG9yIFNldmVyZSBMVlNEIiBNb2RlcmF0ZU9yU2V2ZXJlTFZTREhGT3V0cGF0aWVudEVuY291bnRlcgogICAgICBsZXQgUHJpb3JIZWFydFJhdGU6IExhc3QoWyJVU0NvcmUuSGVhcnRSYXRlUHJvZmlsZSJdIE1vc3RSZWNlbnRQcmlvckhlYXJ0UmF0ZQogICAgICAgICAgd2hlcmUgTW9zdFJlY2VudFByaW9ySGVhcnRSYXRlLmVmZmVjdGl2ZS50b0ludGVydmFsKCkgZHVyaW5nIE1vZGVyYXRlT3JTZXZlcmVMVlNESEZPdXRwYXRpZW50RW5jb3VudGVyLnBlcmlvZAogICAgICAgICAgICBhbmQgTW9zdFJlY2VudFByaW9ySGVhcnRSYXRlLmVmZmVjdGl2ZS50b0ludGVydmFsKCkgYmVmb3JlIEhlYXJ0UmF0ZS5lZmZlY3RpdmUudG9JbnRlcnZhbCgpCiAgICAgICAgICBzb3J0IGJ5IHN0YXJ0IG9mIGVmZmVjdGl2ZS50b0ludGVydmFsKCkKICAgICAgKQogICAgICB3aGVyZSBIZWFydFJhdGUuZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApIGR1cmluZyBNb2RlcmF0ZU9yU2V2ZXJlTFZTREhGT3V0cGF0aWVudEVuY291bnRlci5wZXJpb2QKICAgICAgICBhbmQgSGVhcnRSYXRlLnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcgfQogICAgICAgIGFuZCBIZWFydFJhdGUudmFsdWUgPCA1MCAnL21pbicKICAgICAgICBhbmQgUHJpb3JIZWFydFJhdGUudmFsdWUgPCA1MCAnL21pbicKICAgICAgcmV0dXJuIEhlYXJ0UmF0ZQogICkKCmRlZmluZSAiSGFzIEFsbGVyZ3kgb3IgSW50b2xlcmFuY2UgdG8gQmV0YSBCbG9ja2VyIFRoZXJhcHkgSW5ncmVkaWVudCI6CiAgZXhpc3RzICggKCBbQWxsZXJneUludG9sZXJhbmNlOiAiQmV0YSBCbG9ja2VyIFRoZXJhcHkgSW5ncmVkaWVudCJdCiAgICAgIHVuaW9uIFtBbGxlcmd5SW50b2xlcmFuY2U6ICJTdWJzdGFuY2Ugd2l0aCBiZXRhIGFkcmVuZXJnaWMgcmVjZXB0b3IgYW50YWdvbmlzdCBtZWNoYW5pc20gb2YgYWN0aW9uIChzdWJzdGFuY2UpIl0gKSBCZXRhQmxvY2tlckFsbGVyZ3lJbnRvbGVyYW5jZQogICAgICB3aGVyZSBCZXRhQmxvY2tlckFsbGVyZ3lJbnRvbGVyYW5jZS5vdmVybGFwc0FmdGVySGVhcnRGYWlsdXJlT3V0cGF0aWVudEVuY291bnRlciAoICkKICAgICAgICBhbmQgQmV0YUJsb2NrZXJBbGxlcmd5SW50b2xlcmFuY2UuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkhhcyBBcnJoeXRobWlhIERpYWdub3NpcyI6CiAgZXhpc3RzICggKCBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkFycmh5dGhtaWEiXQogICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQXJyaHl0aG1pYSJdICkgQXJyaHl0aG1pYUFsaWFzCiAgICAgIHdoZXJlIEFycmh5dGhtaWFBbGlhcy5vdmVybGFwc0hlYXJ0RmFpbHVyZU91dHBhdGllbnRFbmNvdW50ZXIgKCApCiAgICAgICAgYW5kIEFycmh5dGhtaWFBbGlhcy5pc1ZlcmlmaWVkICggKQogICkKCmRlZmluZSAiSGFzIEFzdGhtYSBEaWFnbm9zaXMiOgogIGV4aXN0cyAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJBc3RobWEiXQogICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQXN0aG1hIl0gKSBBc3RobWFBbGlhcwogICAgICB3aGVyZSBBc3RobWFBbGlhcy5vdmVybGFwc0hlYXJ0RmFpbHVyZU91dHBhdGllbnRFbmNvdW50ZXIgKCApCiAgICAgICAgYW5kIEFzdGhtYUFsaWFzLmlzVmVyaWZpZWQgKCApCiAgKQoKZGVmaW5lICJIYXMgQXRyaW92ZW50cmljdWxhciBCbG9jayBEaWFnbm9zaXMiOgogIGV4aXN0cyAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJBdHJpb3ZlbnRyaWN1bGFyIEJsb2NrIl0KICAgICAgdW5pb24gW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIkF0cmlvdmVudHJpY3VsYXIgQmxvY2siXSApIEF0cmlvdmVudHJpY3VsYXJCbG9ja0FsaWFzCiAgICAgIHdoZXJlIEF0cmlvdmVudHJpY3VsYXJCbG9ja0FsaWFzLm92ZXJsYXBzSGVhcnRGYWlsdXJlT3V0cGF0aWVudEVuY291bnRlciAoICkKICAgICAgICBhbmQgQXRyaW92ZW50cmljdWxhckJsb2NrQWxpYXMuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkhhcyBCZXRhIEJsb2NrZXIgVGhlcmFweSBmb3IgTFZTRCBPcmRlcmVkIjoKICBleGlzdHMgKCBbTWVkaWNhdGlvblJlcXVlc3Q6IG1lZGljYXRpb24gaW4gIkJldGEgQmxvY2tlciBUaGVyYXB5IGZvciBMVlNEIl0gQmV0YUJsb2NrZXJPcmRlcmVkCiAgICAgIHdoZXJlIEJldGFCbG9ja2VyT3JkZXJlZC5pc09yZGVyZWREdXJpbmdIZWFydEZhaWx1cmVPdXRwYXRpZW50RW5jb3VudGVyICggKQogICkKCmRlZmluZSAiSGFzIE1lZGljYWwgb3IgUGF0aWVudCBSZWFzb24gZm9yIE5vdCBPcmRlcmluZyBCZXRhIEJsb2NrZXIgZm9yIExWU0QiOgogIGV4aXN0cyAoIFsiTWVkaWNhdGlvbk5vdFJlcXVlc3RlZCI6IG1lZGljYXRpb24gaW4gIkJldGEgQmxvY2tlciBUaGVyYXB5IGZvciBMVlNEIl0gTm9CZXRhQmxvY2tlck9yZGVyZWQKICAgICAgd2l0aCBBSEEuIkhlYXJ0IEZhaWx1cmUgT3V0cGF0aWVudCBFbmNvdW50ZXIgd2l0aCBIaXN0b3J5IG9mIE1vZGVyYXRlIG9yIFNldmVyZSBMVlNEIiBNb2RlcmF0ZU9yU2V2ZXJlTFZTREhGT3V0cGF0aWVudEVuY291bnRlcgogICAgICAgIHN1Y2ggdGhhdCBOb0JldGFCbG9ja2VyT3JkZXJlZC5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgTW9kZXJhdGVPclNldmVyZUxWU0RIRk91dHBhdGllbnRFbmNvdW50ZXIucGVyaW9kCiAgICAgIHdoZXJlICggTm9CZXRhQmxvY2tlck9yZGVyZWQucmVhc29uQ29kZSBpbiAiTWVkaWNhbCBSZWFzb24iCiAgICAgICAgICBvciBOb0JldGFCbG9ja2VyT3JkZXJlZC5yZWFzb25Db2RlIGluICJQYXRpZW50IFJlYXNvbiIKICAgICAgKQogICkKICAKIC8qCkBkZXNjcmlwdGlvbjogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBjb25kaXRpb24gZWl0aGVyIGhhcyBubyB2ZXJpZmljYXRpb24gc3RhdHVzIG9yIGhhcyBhIHZlcmlmaWNhdGlvbiBzdGF0dXMgb2YgY29uZmlybWVkLCB1bmNvbmZpcm1lZCwgcHJvdmlzaW9uYWwsIG9yIGRpZmZlcmVudGlhbAoqLwoKCmRlZmluZSBmbHVlbnQgZnVuY3Rpb24gaXNWZXJpZmllZChhbGxlcmd5SW50b2xlcmFuY2UgQWxsZXJneUludG9sZXJhbmNlKToKICBhbGxlcmd5SW50b2xlcmFuY2UudmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBhbGxlcmd5SW50b2xlcmFuY2UudmVyaWZpY2F0aW9uU3RhdHVzIH4gVVNRdWFsaXR5Q29yZUNvbW1vbi4iYWxsZXJneS1jb25maXJtZWQiCiAgICAgIG9yIGFsbGVyZ3lJbnRvbGVyYW5jZS52ZXJpZmljYXRpb25TdGF0dXMgfiBVU1F1YWxpdHlDb3JlQ29tbW9uLiJhbGxlcmd5LXVuY29uZmlybWVkIgogICkKCmRlZmluZSBmbHVlbnQgZnVuY3Rpb24gaXNWZXJpZmllZChjb25kaXRpb24gQ2hvaWNlPENvbmRpdGlvbkVuY291bnRlckRpYWdub3NpcywgQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucz4pOgogIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgaXMgbm90IG51bGwgaW1wbGllcyAoIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgfiBTdGF0dXMuImNvbmZpcm1lZCIKICAgICAgb3IgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4idW5jb25maXJtZWQiCiAgICAgIG9yIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgfiBTdGF0dXMuInByb3Zpc2lvbmFsIgogICAgICBvciBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJkaWZmZXJlbnRpYWwiCiAgKQ==",
"url" : "https://madie.cms.gov/Library-CMS144FHIRHFBetaBlockerForLVSD.cql"
}
]
}