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" : "CMS71FHIRSTKAnticoagAFFlutter",
"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 CMS71FHIRSTKAnticoagAFFlutter 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\ninclude TJCOverall version '9.1.000' called TJC\n\nvalueset "Anticoagulant Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.200'\nvalueset "Atrial Ablation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.203'\nvalueset "Atrial Fibrillation or Flutter": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.202'\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 "Discharged to Health Care Facility for Hospice Care": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.207'\nvalueset "Discharged to Home for Hospice Care": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.209'\nvalueset "History of Atrial Ablation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.76'\nvalueset "Left Against Medical Advice": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.308'\nvalueset "Medical Reason For Not Providing Treatment": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.473'\nvalueset "Patient Expired": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.309'\nvalueset "Patient Refusal": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.93'\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 TJC."Ischemic Stroke Encounter"\n\ndefine "Denominator":\n "Encounter With A History Of Atrial Ablation"\n union "Encounter With Prior Or Present Diagnosis Of Atrial Fibrillation Or Flutter"\n\ndefine "Encounter With A History Of Atrial Ablation":\n ( TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n where exists ( ["Procedure": "Atrial Ablation"] AtrialAblationProcedure\n where AtrialAblationProcedure.status = 'completed'\n and AtrialAblationProcedure.performed.toInterval ( ) starts before start of IschemicStrokeEncounter.period\n )\n )\n union ( TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["ConditionProblemsHealthConcerns": "History of Atrial Ablation"] AtrialAblationDiagnosis\n such that AtrialAblationDiagnosis.verificationStatus is not null implies ( AtrialAblationDiagnosis.verificationStatus !~ Status."refuted"\n and AtrialAblationDiagnosis.verificationStatus !~ Status."entered-in-error"\n )\n and AtrialAblationDiagnosis.prevalenceInterval ( ) starts before start of IschemicStrokeEncounter.period\n )\n union ( TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["SimpleObservation": "History of Atrial Ablation"] AtrialAblationObservation\n such that AtrialAblationObservation.status in { 'final', 'amended', 'corrected' }\n and AtrialAblationObservation.effective.earliest ( ) on or before end of IschemicStrokeEncounter.period\n )\n union ( TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["ConditionEncounterDiagnosis": "History of Atrial Ablation"] AtrialAblationEncDiagnosis\n such that AtrialAblationEncDiagnosis.verificationStatus is not null implies ( AtrialAblationEncDiagnosis.verificationStatus !~ Status."refuted"\n and AtrialAblationEncDiagnosis.verificationStatus !~ Status."entered-in-error"\n )\n and AtrialAblationEncDiagnosis.prevalenceInterval ( ) starts before start of IschemicStrokeEncounter.period\n )\n\ndefine "Encounter With Prior Or Present Diagnosis Of Atrial Fibrillation Or Flutter":\n ( TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n with ["ConditionProblemsHealthConcerns": "Atrial Fibrillation or Flutter"] AtrialFibrillationFlutter\n such that AtrialFibrillationFlutter.verificationStatus is not null implies ( AtrialFibrillationFlutter.verificationStatus !~ Status."refuted"\n and AtrialFibrillationFlutter.verificationStatus !~ Status."entered-in-error"\n )\n and AtrialFibrillationFlutter.prevalenceInterval ( ) starts on or before end of IschemicStrokeEncounter.period\n )\n union TJC."Ischemic Stroke Encounter" IschemicStrokeEncounter\n where exists ( ( IschemicStrokeEncounter.encounterDiagnosis ( ) ) EncounterDiagnosis\n where EncounterDiagnosis.code in "Atrial Fibrillation or Flutter"\n )\n\ndefine "Denominator Exclusions":\n ( "Denominator" Encounter\n where Encounter.status = 'finished'\n and ( Encounter.hospitalization.dischargeDisposition in "Discharge To Acute Care Facility"\n or Encounter.hospitalization.dischargeDisposition in "Left Against Medical Advice"\n or Encounter.hospitalization.dischargeDisposition in "Patient Expired"\n or Encounter.hospitalization.dischargeDisposition in "Discharged to Home for Hospice Care"\n or Encounter.hospitalization.dischargeDisposition in "Discharged to Health Care Facility for Hospice Care"\n )\n )\n union "Encounter With Comfort Measures During Hospitalization For Patients With Documented Atrial Fibrillation Or Flutter"\n\ndefine "Encounter With Comfort Measures During Hospitalization For Patients With Documented Atrial Fibrillation Or Flutter":\n "Denominator" Encounter\n with TJC."Intervention Comfort Measures" ComfortMeasure\n such that Coalesce(start of ComfortMeasure.performed.toInterval(), ComfortMeasure.authoredOn) during Encounter.hospitalizationWithObservation ( )\n\ndefine "Numerator":\n "Denominator" Encounter\n with ["MedicationRequest": "Anticoagulant Therapy"] DischargeAnticoagulant\n such that DischargeAnticoagulant.status in { 'active', 'completed' }\n and DischargeAnticoagulant.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }\n and ( DischargeAnticoagulant.isCommunity ( )\n or DischargeAnticoagulant.isDischarge ( )\n )\n and DischargeAnticoagulant.authoredOn during Encounter.period\n and not exists ( ["TaskRejected"] TaskReject\n where TaskReject.focus.references ( DischargeAnticoagulant )\n and TaskReject.code ~ USQualityCoreCommon."Fulfill"\n )\n\ndefine "Denominator Exceptions":\n "Denominator" Encounter\n with "Documented Reason For Not Giving Anticoagulant At Discharge" NoDischargeAnticoagulant\n such that NoDischargeAnticoagulant.authoredOn during Encounter.period\n\ndefine "Documented Reason For Not Giving Anticoagulant At Discharge":\n ( ["MedicationNotRequested": "Anticoagulant Therapy"] NoAnticoagulant\n where ( NoAnticoagulant.reasonCode in "Medical Reason For Not Providing Treatment"\n or NoAnticoagulant.reasonCode in "Patient Refusal"\n )\n and ( NoAnticoagulant.isCommunity ( )\n or NoAnticoagulant.isDischarge ( )\n )\n and NoAnticoagulant.status in { 'active', 'completed' }\n and NoAnticoagulant.intent in { 'order', 'original-order', 'reflex-order', 'filler-order', 'instance-order' }\n )\n union ( ["MedicationRequest": "Anticoagulant Therapy"] MedReqAntiCoagulant\n with ["TaskRejected"] TaskReject\n such that TaskReject.focus.references ( MedReqAntiCoagulant )\n and ( TaskReject.statusReason in "Medical Reason For Not Providing Treatment"\n or TaskReject.statusReason in "Patient Refusal"\n )\n and MedReqAntiCoagulant.status in { 'active', 'completed' }\n and TaskReject.code ~ USQualityCoreCommon."Fulfill"\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"</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/CMS71FHIRSTKAnticoagAFFlutter",
"version" : "1.1.000",
"name" : "CMS71FHIRSTKAnticoagAFFlutter",
"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" : "LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVM3MUZISVJTVEtBbnRpY29hZ0FGRmx1dHRlciB2ZXJzaW9uICcxLjEuMDAwJwoKdXNpbmcgVVNRdWFsaXR5Q29yZSB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJwp1c2luZyBVU0NvcmUgdmVyc2lvbiAnNi4xLjAtZGVyaXZlZCcKdXNpbmcgRkhJUiB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJyBjYWxsZWQgRkhJUkhlbHBlcnMKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkNvbW1vbiB2ZXJzaW9uICcyLjAuMCcgY2FsbGVkIEZISVJDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlQ29tbW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVFbGVtZW50cyB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVFbGVtZW50cwoKaW5jbHVkZSBDUU1Db21tb24gdmVyc2lvbiAnNS4xLjAwMCcgY2FsbGVkIENRTUNvbW1vbgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCgppbmNsdWRlIFRKQ092ZXJhbGwgdmVyc2lvbiAnOS4xLjAwMCcgY2FsbGVkIFRKQwoKdmFsdWVzZXQgIkFudGljb2FndWxhbnQgVGhlcmFweSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjAwJwp2YWx1ZXNldCAiQXRyaWFsIEFibGF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS4yMDMnCnZhbHVlc2V0ICJBdHJpYWwgRmlicmlsbGF0aW9uIG9yIEZsdXR0ZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIwMicKdmFsdWVzZXQgIkRpc2NoYXJnZSBUbyBBY3V0ZSBDYXJlIEZhY2lsaXR5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS44NycKdmFsdWVzZXQgIkRpc2NoYXJnZWQgdG8gSGVhbHRoIENhcmUgRmFjaWxpdHkgZm9yIEhvc3BpY2UgQ2FyZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMjA3Jwp2YWx1ZXNldCAiRGlzY2hhcmdlZCB0byBIb21lIGZvciBIb3NwaWNlIENhcmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIwOScKdmFsdWVzZXQgIkhpc3Rvcnkgb2YgQXRyaWFsIEFibGF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMC43NicKdmFsdWVzZXQgIkxlZnQgQWdhaW5zdCBNZWRpY2FsIEFkdmljZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuMzA4Jwp2YWx1ZXNldCAiTWVkaWNhbCBSZWFzb24gRm9yIE5vdCBQcm92aWRpbmcgVHJlYXRtZW50IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjExNy4xLjcuMS40NzMnCnZhbHVlc2V0ICJQYXRpZW50IEV4cGlyZWQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjMwOScKdmFsdWVzZXQgIlBhdGllbnQgUmVmdXNhbCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy4xMTcuMS43LjEuOTMnCgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZVRpbWU+CiAgZGVmYXVsdCBJbnRlcnZhbFtAMjAyNi0wMS0wMVQwMDowMDowMC4wMDBaLCBAMjAyNy0wMS0wMVQwMDowMDowMC4wMDBaKQoKY29udGV4dCBQYXRpZW50CgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiI6CiAgVEpDLiJJc2NoZW1pYyBTdHJva2UgRW5jb3VudGVyIgoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgIkVuY291bnRlciBXaXRoIEEgSGlzdG9yeSBPZiBBdHJpYWwgQWJsYXRpb24iCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggUHJpb3IgT3IgUHJlc2VudCBEaWFnbm9zaXMgT2YgQXRyaWFsIEZpYnJpbGxhdGlvbiBPciBGbHV0dGVyIgoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBBIEhpc3RvcnkgT2YgQXRyaWFsIEFibGF0aW9uIjoKICAoIFRKQy4iSXNjaGVtaWMgU3Ryb2tlIEVuY291bnRlciIgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIKICAgICAgd2hlcmUgZXhpc3RzICggWyJQcm9jZWR1cmUiOiAiQXRyaWFsIEFibGF0aW9uIl0gQXRyaWFsQWJsYXRpb25Qcm9jZWR1cmUKICAgICAgICAgIHdoZXJlIEF0cmlhbEFibGF0aW9uUHJvY2VkdXJlLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICAgICAgICAgIGFuZCBBdHJpYWxBYmxhdGlvblByb2NlZHVyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCAoICkgc3RhcnRzIGJlZm9yZSBzdGFydCBvZiBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5wZXJpb2QKICAgICAgKQogICkKICAgIHVuaW9uICggVEpDLiJJc2NoZW1pYyBTdHJva2UgRW5jb3VudGVyIiBJc2NoZW1pY1N0cm9rZUVuY291bnRlcgogICAgICAgIHdpdGggWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIjogIkhpc3Rvcnkgb2YgQXRyaWFsIEFibGF0aW9uIl0gQXRyaWFsQWJsYXRpb25EaWFnbm9zaXMKICAgICAgICAgIHN1Y2ggdGhhdCBBdHJpYWxBYmxhdGlvbkRpYWdub3Npcy52ZXJpZmljYXRpb25TdGF0dXMgaXMgbm90IG51bGwgaW1wbGllcyAoIEF0cmlhbEFibGF0aW9uRGlhZ25vc2lzLnZlcmlmaWNhdGlvblN0YXR1cyAhfiBTdGF0dXMuInJlZnV0ZWQiCiAgICAgICAgICAgICAgYW5kIEF0cmlhbEFibGF0aW9uRGlhZ25vc2lzLnZlcmlmaWNhdGlvblN0YXR1cyAhfiBTdGF0dXMuImVudGVyZWQtaW4tZXJyb3IiCiAgICAgICAgICApCiAgICAgICAgICAgIGFuZCBBdHJpYWxBYmxhdGlvbkRpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIHN0YXJ0cyBiZWZvcmUgc3RhcnQgb2YgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIucGVyaW9kCiAgICApCiAgICB1bmlvbiAoIFRKQy4iSXNjaGVtaWMgU3Ryb2tlIEVuY291bnRlciIgSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIKICAgICAgICB3aXRoIFsiU2ltcGxlT2JzZXJ2YXRpb24iOiAiSGlzdG9yeSBvZiBBdHJpYWwgQWJsYXRpb24iXSBBdHJpYWxBYmxhdGlvbk9ic2VydmF0aW9uCiAgICAgICAgICBzdWNoIHRoYXQgQXRyaWFsQWJsYXRpb25PYnNlcnZhdGlvbi5zdGF0dXMgaW4geyAnZmluYWwnLCAnYW1lbmRlZCcsICdjb3JyZWN0ZWQnIH0KICAgICAgICAgICAgYW5kIEF0cmlhbEFibGF0aW9uT2JzZXJ2YXRpb24uZWZmZWN0aXZlLmVhcmxpZXN0ICggKSBvbiBvciBiZWZvcmUgZW5kIG9mIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLnBlcmlvZAogICAgKQogICAgdW5pb24gKCBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyCiAgICAgICAgd2l0aCBbIkNvbmRpdGlvbkVuY291bnRlckRpYWdub3NpcyI6ICJIaXN0b3J5IG9mIEF0cmlhbCBBYmxhdGlvbiJdIEF0cmlhbEFibGF0aW9uRW5jRGlhZ25vc2lzCiAgICAgICAgICBzdWNoIHRoYXQgQXRyaWFsQWJsYXRpb25FbmNEaWFnbm9zaXMudmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBBdHJpYWxBYmxhdGlvbkVuY0RpYWdub3Npcy52ZXJpZmljYXRpb25TdGF0dXMgIX4gU3RhdHVzLiJyZWZ1dGVkIgogICAgICAgICAgICAgIGFuZCBBdHJpYWxBYmxhdGlvbkVuY0RpYWdub3Npcy52ZXJpZmljYXRpb25TdGF0dXMgIX4gU3RhdHVzLiJlbnRlcmVkLWluLWVycm9yIgogICAgICAgICAgKQogICAgICAgICAgICBhbmQgQXRyaWFsQWJsYXRpb25FbmNEaWFnbm9zaXMucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgYmVmb3JlIHN0YXJ0IG9mIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyLnBlcmlvZAogICAgKQoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBQcmlvciBPciBQcmVzZW50IERpYWdub3NpcyBPZiBBdHJpYWwgRmlicmlsbGF0aW9uIE9yIEZsdXR0ZXIiOgogICggVEpDLiJJc2NoZW1pYyBTdHJva2UgRW5jb3VudGVyIiBJc2NoZW1pY1N0cm9rZUVuY291bnRlcgogICAgICB3aXRoIFsiQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJucyI6ICJBdHJpYWwgRmlicmlsbGF0aW9uIG9yIEZsdXR0ZXIiXSBBdHJpYWxGaWJyaWxsYXRpb25GbHV0dGVyCiAgICAgICAgc3VjaCB0aGF0IEF0cmlhbEZpYnJpbGxhdGlvbkZsdXR0ZXIudmVyaWZpY2F0aW9uU3RhdHVzIGlzIG5vdCBudWxsIGltcGxpZXMgKCBBdHJpYWxGaWJyaWxsYXRpb25GbHV0dGVyLnZlcmlmaWNhdGlvblN0YXR1cyAhfiBTdGF0dXMuInJlZnV0ZWQiCiAgICAgICAgICAgIGFuZCBBdHJpYWxGaWJyaWxsYXRpb25GbHV0dGVyLnZlcmlmaWNhdGlvblN0YXR1cyAhfiBTdGF0dXMuImVudGVyZWQtaW4tZXJyb3IiCiAgICAgICAgKQogICAgICAgICAgYW5kIEF0cmlhbEZpYnJpbGxhdGlvbkZsdXR0ZXIucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgb24gb3IgYmVmb3JlIGVuZCBvZiBJc2NoZW1pY1N0cm9rZUVuY291bnRlci5wZXJpb2QKICApCiAgICB1bmlvbiBUSkMuIklzY2hlbWljIFN0cm9rZSBFbmNvdW50ZXIiIElzY2hlbWljU3Ryb2tlRW5jb3VudGVyCiAgICAgIHdoZXJlIGV4aXN0cyAoICggSXNjaGVtaWNTdHJva2VFbmNvdW50ZXIuZW5jb3VudGVyRGlhZ25vc2lzICggKSApIEVuY291bnRlckRpYWdub3NpcwogICAgICAgICAgd2hlcmUgRW5jb3VudGVyRGlhZ25vc2lzLmNvZGUgaW4gIkF0cmlhbCBGaWJyaWxsYXRpb24gb3IgRmx1dHRlciIKICAgICAgKQoKZGVmaW5lICJEZW5vbWluYXRvciBFeGNsdXNpb25zIjoKICAoICJEZW5vbWluYXRvciIgRW5jb3VudGVyCiAgICAgIHdoZXJlIEVuY291bnRlci5zdGF0dXMgPSAnZmluaXNoZWQnCiAgICAgICAgYW5kICggRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbi5kaXNjaGFyZ2VEaXNwb3NpdGlvbiBpbiAiRGlzY2hhcmdlIFRvIEFjdXRlIENhcmUgRmFjaWxpdHkiCiAgICAgICAgICAgIG9yIEVuY291bnRlci5ob3NwaXRhbGl6YXRpb24uZGlzY2hhcmdlRGlzcG9zaXRpb24gaW4gIkxlZnQgQWdhaW5zdCBNZWRpY2FsIEFkdmljZSIKICAgICAgICAgICAgb3IgRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbi5kaXNjaGFyZ2VEaXNwb3NpdGlvbiBpbiAiUGF0aWVudCBFeHBpcmVkIgogICAgICAgICAgICBvciBFbmNvdW50ZXIuaG9zcGl0YWxpemF0aW9uLmRpc2NoYXJnZURpc3Bvc2l0aW9uIGluICJEaXNjaGFyZ2VkIHRvIEhvbWUgZm9yIEhvc3BpY2UgQ2FyZSIKICAgICAgICAgICAgb3IgRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbi5kaXNjaGFyZ2VEaXNwb3NpdGlvbiBpbiAiRGlzY2hhcmdlZCB0byBIZWFsdGggQ2FyZSBGYWNpbGl0eSBmb3IgSG9zcGljZSBDYXJlIgogICAgICAgICkKICApCiAgICB1bmlvbiAiRW5jb3VudGVyIFdpdGggQ29tZm9ydCBNZWFzdXJlcyBEdXJpbmcgSG9zcGl0YWxpemF0aW9uIEZvciBQYXRpZW50cyBXaXRoIERvY3VtZW50ZWQgQXRyaWFsIEZpYnJpbGxhdGlvbiBPciBGbHV0dGVyIgoKZGVmaW5lICJFbmNvdW50ZXIgV2l0aCBDb21mb3J0IE1lYXN1cmVzIER1cmluZyBIb3NwaXRhbGl6YXRpb24gRm9yIFBhdGllbnRzIFdpdGggRG9jdW1lbnRlZCBBdHJpYWwgRmlicmlsbGF0aW9uIE9yIEZsdXR0ZXIiOgogICJEZW5vbWluYXRvciIgRW5jb3VudGVyCiAgICB3aXRoIFRKQy4iSW50ZXJ2ZW50aW9uIENvbWZvcnQgTWVhc3VyZXMiIENvbWZvcnRNZWFzdXJlCiAgICAgIHN1Y2ggdGhhdCBDb2FsZXNjZShzdGFydCBvZiBDb21mb3J0TWVhc3VyZS5wZXJmb3JtZWQudG9JbnRlcnZhbCgpLCBDb21mb3J0TWVhc3VyZS5hdXRob3JlZE9uKSBkdXJpbmcgRW5jb3VudGVyLmhvc3BpdGFsaXphdGlvbldpdGhPYnNlcnZhdGlvbiAoICkKCmRlZmluZSAiTnVtZXJhdG9yIjoKICAiRGVub21pbmF0b3IiIEVuY291bnRlcgogICAgd2l0aCBbIk1lZGljYXRpb25SZXF1ZXN0IjogIkFudGljb2FndWxhbnQgVGhlcmFweSJdIERpc2NoYXJnZUFudGljb2FndWxhbnQKICAgICAgc3VjaCB0aGF0IERpc2NoYXJnZUFudGljb2FndWxhbnQuc3RhdHVzIGluIHsgJ2FjdGl2ZScsICdjb21wbGV0ZWQnIH0KICAgICAgICBhbmQgRGlzY2hhcmdlQW50aWNvYWd1bGFudC5pbnRlbnQgaW4geyAnb3JkZXInLCAnb3JpZ2luYWwtb3JkZXInLCAncmVmbGV4LW9yZGVyJywgJ2ZpbGxlci1vcmRlcicsICdpbnN0YW5jZS1vcmRlcicgfQogICAgICAgIGFuZCAoIERpc2NoYXJnZUFudGljb2FndWxhbnQuaXNDb21tdW5pdHkgKCApCiAgICAgICAgICAgIG9yIERpc2NoYXJnZUFudGljb2FndWxhbnQuaXNEaXNjaGFyZ2UgKCApCiAgICAgICAgKQogICAgICAgIGFuZCBEaXNjaGFyZ2VBbnRpY29hZ3VsYW50LmF1dGhvcmVkT24gZHVyaW5nIEVuY291bnRlci5wZXJpb2QKICAgICAgICBhbmQgbm90IGV4aXN0cyAoIFsiVGFza1JlamVjdGVkIl0gVGFza1JlamVjdAogICAgICAgICAgICB3aGVyZSBUYXNrUmVqZWN0LmZvY3VzLnJlZmVyZW5jZXMgKCBEaXNjaGFyZ2VBbnRpY29hZ3VsYW50ICkKICAgICAgICAgICAgICBhbmQgVGFza1JlamVjdC5jb2RlIH4gVVNRdWFsaXR5Q29yZUNvbW1vbi4iRnVsZmlsbCIKICAgICAgICApCgpkZWZpbmUgIkRlbm9taW5hdG9yIEV4Y2VwdGlvbnMiOgogICJEZW5vbWluYXRvciIgRW5jb3VudGVyCiAgICB3aXRoICJEb2N1bWVudGVkIFJlYXNvbiBGb3IgTm90IEdpdmluZyBBbnRpY29hZ3VsYW50IEF0IERpc2NoYXJnZSIgTm9EaXNjaGFyZ2VBbnRpY29hZ3VsYW50CiAgICAgIHN1Y2ggdGhhdCBOb0Rpc2NoYXJnZUFudGljb2FndWxhbnQuYXV0aG9yZWRPbiBkdXJpbmcgRW5jb3VudGVyLnBlcmlvZAoKZGVmaW5lICJEb2N1bWVudGVkIFJlYXNvbiBGb3IgTm90IEdpdmluZyBBbnRpY29hZ3VsYW50IEF0IERpc2NoYXJnZSI6CiAgKCBbIk1lZGljYXRpb25Ob3RSZXF1ZXN0ZWQiOiAiQW50aWNvYWd1bGFudCBUaGVyYXB5Il0gTm9BbnRpY29hZ3VsYW50CiAgICAgIHdoZXJlICggTm9BbnRpY29hZ3VsYW50LnJlYXNvbkNvZGUgaW4gIk1lZGljYWwgUmVhc29uIEZvciBOb3QgUHJvdmlkaW5nIFRyZWF0bWVudCIKICAgICAgICAgIG9yIE5vQW50aWNvYWd1bGFudC5yZWFzb25Db2RlIGluICJQYXRpZW50IFJlZnVzYWwiCiAgICAgICkKICAgICAgICBhbmQgKCBOb0FudGljb2FndWxhbnQuaXNDb21tdW5pdHkgKCApCiAgICAgICAgICAgIG9yIE5vQW50aWNvYWd1bGFudC5pc0Rpc2NoYXJnZSAoICkKICAgICAgICApCiAgICAgICAgYW5kIE5vQW50aWNvYWd1bGFudC5zdGF0dXMgaW4geyAnYWN0aXZlJywgJ2NvbXBsZXRlZCcgfQogICAgICAgIGFuZCBOb0FudGljb2FndWxhbnQuaW50ZW50IGluIHsgJ29yZGVyJywgJ29yaWdpbmFsLW9yZGVyJywgJ3JlZmxleC1vcmRlcicsICdmaWxsZXItb3JkZXInLCAnaW5zdGFuY2Utb3JkZXInIH0KICApCiAgICB1bmlvbiAoIFsiTWVkaWNhdGlvblJlcXVlc3QiOiAiQW50aWNvYWd1bGFudCBUaGVyYXB5Il0gTWVkUmVxQW50aUNvYWd1bGFudAogICAgICAgIHdpdGggWyJUYXNrUmVqZWN0ZWQiXSBUYXNrUmVqZWN0CiAgICAgICAgICBzdWNoIHRoYXQgVGFza1JlamVjdC5mb2N1cy5yZWZlcmVuY2VzICggTWVkUmVxQW50aUNvYWd1bGFudCApCiAgICAgICAgICAgIGFuZCAoIFRhc2tSZWplY3Quc3RhdHVzUmVhc29uIGluICJNZWRpY2FsIFJlYXNvbiBGb3IgTm90IFByb3ZpZGluZyBUcmVhdG1lbnQiCiAgICAgICAgICAgICAgICBvciBUYXNrUmVqZWN0LnN0YXR1c1JlYXNvbiBpbiAiUGF0aWVudCBSZWZ1c2FsIgogICAgICAgICAgICApCiAgICAgICAgICAgIGFuZCBNZWRSZXFBbnRpQ29hZ3VsYW50LnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CiAgICAgICAgICAgIGFuZCBUYXNrUmVqZWN0LmNvZGUgfiBVU1F1YWxpdHlDb3JlQ29tbW9uLiJGdWxmaWxsIgogICAgKQoKZGVmaW5lICJTREUgRXRobmljaXR5IjoKICBTREUuIlNERSBFdGhuaWNpdHkiCgpkZWZpbmUgIlNERSBQYXllciI6CiAgU0RFLiJTREUgUGF5ZXIiCgpkZWZpbmUgIlNERSBSYWNlIjoKICBTREUuIlNERSBSYWNlIgoKZGVmaW5lICJTREUgU2V4IjoKICBTREUuIlNERSBTZXgi",
"url" : "https://madie.cms.gov/Library-CMS71FHIRSTKAnticoagAFFlutter.cql"
}
]
}