Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update config #1874

Merged
merged 5 commits into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ gem 'mustache'
gem 'os'

gem 'cqm-models', '~> 4.2.0'
gem 'cqm-parsers', git: 'https://github.com/projecttacoma/cqm-parsers', branch: 'mongoid8'
gem 'cqm-parsers', '~> 4.1.1.0'
gem 'cqm-reports', '~> 4.1.0'
gem 'cqm-validators', '~> 4.0.5'

Expand Down
50 changes: 23 additions & 27 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,6 @@ GIT
jquery-ui-rails (7.0.0)
railties (>= 3.2.16)

GIT
remote: https://github.com/projecttacoma/cqm-parsers
revision: 2c4642e363417ec1995ced80aa1cdaf19f982b47
branch: mongoid8
specs:
cqm-parsers (4.1.0.2)
activesupport (> 5.0)
builder (~> 3.1)
cqm-models (> 3.0.0)
erubis (~> 2.7.0)
highline (~> 1.7.0)
log4r (~> 1.1.10)
memoist (~> 0.9.1)
mongoid (> 6.0.5, < 9.0.0)
mongoid-tree (~> 2.2.0)
mustache
nokogiri (>= 1.16.2)
rubyzip (~> 1.3)
typhoeus
uuid (~> 2.3.7)
zip-zip (~> 0.3)

GIT
remote: https://github.com/turbolinks/turbolinks-classic
revision: 80216ce9d89920bf073709405e3fce6d0a3ccd9a
Expand Down Expand Up @@ -182,6 +160,22 @@ GEM
coffee-script-source (1.12.2)
concurrent-ruby (1.2.3)
cqm-models (4.2.0)
cqm-parsers (4.1.1.0)
activesupport (> 5.0)
builder (~> 3.1)
cqm-models (> 3.0.0)
erubis (~> 2.7.0)
highline (~> 1.7.0)
log4r (~> 1.1.10)
memoist (~> 0.9.1)
mongoid (> 6.0.5, < 9.0.0)
mongoid-tree (~> 2.2.0)
mustache
nokogiri (>= 1.16.2)
rubyzip (~> 1.3)
typhoeus
uuid (~> 2.3.7)
zip-zip (~> 0.3)
cqm-reports (4.1.1)
cqm-models (~> 4.0)
cqm-validators (~> 4.0)
Expand Down Expand Up @@ -334,7 +328,7 @@ GEM
mime-types-data (3.2023.1205)
mini_magick (4.12.0)
mini_mime (1.1.5)
mini_portile2 (2.8.5)
mini_portile2 (2.8.6)
minitest (5.22.3)
minitest-rails (7.0.0)
minitest (~> 5.10)
Expand Down Expand Up @@ -375,7 +369,7 @@ GEM
netrc (0.11.0)
newrelic_rpm (8.15.0)
nio4r (2.7.0)
nokogiri (1.16.2)
nokogiri (1.16.5)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
orm_adapter (0.5.0)
Expand All @@ -397,7 +391,7 @@ GEM
pry-nav (1.0.0)
pry (>= 0.9.10, < 0.15)
public_suffix (5.0.5)
racc (1.7.3)
racc (1.8.0)
rack (2.2.8.1)
rack-test (2.1.0)
rack (>= 1.3)
Expand Down Expand Up @@ -462,7 +456,8 @@ GEM
http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0)
netrc (~> 0.8)
rexml (3.2.5)
rexml (3.2.8)
strscan (>= 3.0.9)
roar (1.1.1)
representable (~> 3.0)
roar-rails (1.1.0)
Expand Down Expand Up @@ -530,6 +525,7 @@ GEM
activesupport (>= 5.2)
sprockets (>= 3.0.0)
ssrf_filter (1.1.2)
strscan (3.1.0)
sys-uname (1.2.2)
ffi (~> 1.1)
systemu (2.6.5)
Expand Down Expand Up @@ -611,7 +607,7 @@ DEPENDENCIES
carrierwave-mongoid
codecov
cqm-models (~> 4.2.0)
cqm-parsers!
cqm-parsers (~> 4.1.1.0)
cqm-reports (~> 4.1.0)
cqm-validators (~> 4.0.5)
cucumber-rails
Expand Down
4 changes: 2 additions & 2 deletions app/views/products/_product_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -129,13 +129,13 @@
<% end %>
<div id="simple_measures_errors_container"></div>
<%= f.form_group :measure_selection, help: "Indicate the clinical quality measures Cypress should use to certify this product. Testing will be performed on a measure-by-measure basis. Click 'Custom' to specify individual measures." do %>
<%= f.radio_button :measure_selection, "eh", label: "Eligible Hospital eCQMs (Including Pre-Rulemaking)", label_class: "btn btn-checkbox", disabled: !product.new_record?, data: {
<%= f.radio_button :measure_selection, "eh", label: "Eligible Hospital eCQMs (Including Program Candidate/Pre-Rulemaking)", label_class: "btn btn-checkbox", disabled: !product.new_record?, data: {
'parsley-required': '',
'parsley-trigger': 'blur change focusout',
'parsley-class-handler': "#measures_options",
'parsley-error-message': 'Must select measures.',
'parsley-errors-container': "#simple_measures_errors_container" } %>
<%= f.radio_button :measure_selection, "ep", label: "Eligible Clinician eCQMs (Including Pre-Rulemaking)", label_class: "btn btn-checkbox", disabled: !product.new_record? %>
<%= f.radio_button :measure_selection, "ep", label: "Eligible Clinician eCQMs (Including Program Candidate/Pre-Rulemaking)", label_class: "btn btn-checkbox", disabled: !product.new_record? %>
<%= f.radio_button :measure_selection, "all", label: "All eCQMs (Excluding Retried)", label_class: "btn btn-checkbox", disabled: !product.new_record? %>
<%= f.radio_button :measure_selection, "custom", label: "Custom...", label_class: "btn btn-checkbox", disabled: !product.new_record? %>
<% end %>
Expand Down
5 changes: 5 additions & 0 deletions config/cms_ig.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,11 @@ CMS Programs:
- HQR_IQR
- HQR_PI_IQR
- HQR_OQR
'2024':
- HQR_PI
- HQR_IQR
- HQR_PI_IQR
- HQR_OQR
Program Specific Measures:
PCF:
# CMS122v9, CMS130v9, CMS165v9
Expand Down
47 changes: 31 additions & 16 deletions config/cypress.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ version_config:
start_date_offset: 2
modified_population_labels:
IPP: 'IPOP'
schematron: "2023.0.0"
schematron: "2024.0.0"
qrda_version: "r5_3"
qrda_version_display_name: "STU 5.3"
qrda3_version: "r2_1"
Expand All @@ -77,6 +77,7 @@ version_config:
code: "854901"
codeSystem: "2.16.840.1.113883.6.88"
CMSQRDA3SchematronValidator_warnings:
- '2025 CMS QRDA III Implementation Guide for Eligible Clinicians is not available'
CMSQRDA1HQRSchematronValidator_warnings:

# Configuration for values to use when randomizing patients in test decks
Expand Down Expand Up @@ -368,10 +369,13 @@ measures_without_future_data:
'2C928082-82CB-A3F5-0182-CC6968E30090' ]

# CMS996v3, CMS996v4, CMS1206v1
# 2024 AU - CMS996v5, CMS1206v2
oqr_measures:
[ '2C928083-7F47-C81F-017F-79354C281550',
'2C928084-83D3-1B44-0184-77AC447D2178',
'2C928082-86DB-6718-0186-E05BA2AB0106' ]
'2C928082-86DB-6718-0186-E05BA2AB0106',
'8A6D040F-8B1E-D837-018B-8C58F1D61E33',
'8A6D044D-8DB3-0572-018D-D65FA5DC0737' ]

# These measures have specific timing constraints
timing_constraints:
Expand Down Expand Up @@ -415,6 +419,15 @@ timing_constraints:
- hqmf_id : '2C928082-86DB-6718-0186-E05C1EB0010E'
start_time : '20250101'
end_time : '20251231'
# 2024 Bundle
# CMS1017v1
- hqmf_id : '8A6D0454-8DF0-2D9F-018E-2E7228A61B05'
start_time : '20260101'
end_time : '20261231'
# CMS1218v1
- hqmf_id : '2C928083-8733-4E1B-0187-51A1B1C20477'
start_time : '20260101'
end_time : '20261231'

telehealth_modifier_codes:
[ '95', 'GQ', 'GT' ]
Expand Down Expand Up @@ -466,18 +479,6 @@ unit_matches:
code_list_id: '2.16.840.1.113883.3.117.1.7.1.215'
units :
- 'mg/dL'
# relevant for CMS816v1+ where BloodGlucoseLab.result > 80 'mg/dL'
- hqmf_set_id : '98EE2385-0B90-40F4-859C-14F5C8D49340'
de_type : 'QDM::LaboratoryTestPerformed'
code_list_id: '2.16.840.1.113762.1.4.1045.134'
units :
- 'mg/dL'
# relevant for CMS871v1+ where BloodGlucoseLab.result >= 200 'mg/dL'
- hqmf_set_id : 'EF95493C-3F65-4440-9CCB-EAF1B9ED1210'
de_type : 'QDM::LaboratoryTestPerformed'
code_list_id: '2.16.840.1.113762.1.4.1045.134'
units :
- 'mg/dL'
# 2023 Bundle
# relevant for CMS832v1+ Creatinine Mass Per Volume
- hqmf_set_id : '2C928083-8651-08A3-0186-C7D18A711CB2'
Expand All @@ -486,17 +487,31 @@ unit_matches:
units :
- 'mg/dL'
# relevant for CMS871v3+ where BloodGlucoseLab.result >= 200 'mg/dL'
- hqmf_set_id : '2C928082-7FAC-C041-0180-1F512619243F'
- hqmf_set_id : 'EF95493C-3F65-4440-9CCB-EAF1B9ED1210'
de_type : 'QDM::LaboratoryTestPerformed'
code_list_id: '2.16.840.1.113762.1.4.1248.34'
units :
- 'mg/dL'
# relevant for CMS816v3+ where BloodGlucoseLab.result >= 200 'mg/dL'
- hqmf_set_id : '2C928084-82EA-D7C5-0183-3DA9C0411763'
- hqmf_set_id : '98EE2385-0B90-40F4-859C-14F5C8D49340'
de_type : 'QDM::LaboratoryTestPerformed'
code_list_id: '2.16.840.1.113762.1.4.1248.34'
units :
- 'mg/dL'
# relevant for CMS334"
- hqmf_set_id : 'FC52D0DE-B53D-4CCF-816E-1E527748D2D9'
de_type : 'QDM::AssessmentPerformed'
code_list_id: '2.16.840.1.113762.1.4.1045.26'
units :
- 'weeks'
- 'wk'
# relevant for CMS1028"
- hqmf_set_id : '44EB11CF-56D6-4DC2-B986-C58C72474B16'
de_type : 'QDM::AssessmentPerformed'
code_list_id: '2.16.840.1.113762.1.4.1045.26'
units :
- 'weeks'
- 'wk'

problematic_record_sample_criteria:
# CMS996v3 (2022 AU)
Expand Down
12 changes: 6 additions & 6 deletions lib/tasks/bundle_eval.rake
Original file line number Diff line number Diff line change
Expand Up @@ -155,15 +155,15 @@ namespace :bundle do
end
bp.qdmPatient.get_data_elements('encounter', 'performed').each do |encounter|
# There is only 1 principalDiagnosis, if it isn't snomed, move on.
if encounter.principalDiagnosis&.codeSystemOid == '2.16.840.1.113883.6.96'
ValueSet.where('concepts.code' => encounter.principalDiagnosis.code).each do |vs|
en_encounter_dx_vs_list << vs.oid
end
end
# if encounter.principalDiagnosis&.codeSystemOid == '2.16.840.1.113883.6.96'
# ValueSet.where('concepts.code' => encounter.principalDiagnosis.code).each do |vs|
# en_encounter_dx_vs_list << vs.oid
# end
# end
# Iterate through each encounter diagnosis
encounter.diagnoses&.each do |encounter_diagnosis|
# check if snomed
next unless encounter_diagnosis.codeSystemOid == '2.16.840.1.113883.6.96'
next unless encounter_diagnosis['system'] == '2.16.840.1.113883.6.96'

ValueSet.where('concepts.code' => encounter_diagnosis.code).each do |vs|
en_encounter_dx_vs_list << vs.oid
Expand Down
8 changes: 5 additions & 3 deletions resources/schematron/2022.0.0/EP/EP_CAT_III.sch
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,9 @@ Version 1.1
Changes made for the 2023 CMS QRDA Category III Schematron version 1.1:

Document-level template:
- QRDA Category III Report CMS V8 additions for MIPS MVP and Subgroup reporting
(Note: V8 in v1.1 supplants V7 from v1.0)
- QRDA Category III Report CMS V8 (Note: V8 in v1.1 supplants V7 from v1.0)
- 12-07-2022 Additions for MIPS MVP and Subgroup reporting
- 01-10-2023 Fixed a misplaced parenthesis in the assertion test for a-4526-18177_C01-error

voc.xml
- The companion vocabulary file for this schematron is updated to include the MIPS_SUBGROUP CMS program name.
Expand Down Expand Up @@ -147,7 +148,7 @@ Version 1.1
NOTE: Schematrons may be updated after initial publication to address stakeholder or policy requirements.
Be sure to revisit the eCQI Resource Center (https://ecqi.healthit.gov/) for updated resources prior to use.

Fri Dec 09 11:36:27 MST 2022
Tue Jan 10 16:38:59 MST 2023
-->
<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" xmlns="urn:hl7-org:v3" xmlns:cda="urn:hl7-org:v3" xmlns:sdtc="urn:hl7-org:sdtc" xmlns:svs="urn:ihe:iti:svs:2008" xmlns:voc="http://www.lantanagroup.com/voc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<sch:ns prefix="voc" uri="http://www.lantanagroup.com/voc" />
Expand Down Expand Up @@ -521,6 +522,7 @@ Fri Dec 09 11:36:27 MST 2022
<!-- Schematron variable 'intendedRecipient-DocOf' is set at the beginning of this pattern -->
<sch:rule id="QRDA_Category_III_CMS-documentationOf-serviceEvent-performer-assignedEntity-errors" context="cda:ClinicalDocument[cda:templateId[@root='2.16.840.1.113883.10.20.27.1.2'][@extension='2022-12-01']]/cda:documentationOf/cda:serviceEvent/cda:performer/cda:assignedEntity">
<!-- There are some specific rules about how non-NPI ids should be formatted, depending on reporting type. -->
<!-- 01-10-2023 Fixed a misplaced parenthesis in the assertion test for a-4526-18177_C01-error -->
<sch:assert id="a-4526-18177_C01-error" test="count(cda:id[@root='2.16.840.1.113883.4.6'])=1">This assignedEntity SHALL contain exactly one [1..1] id (CONF:4526-18177_C01) such that it SHALL contain exactly one [1..1] @root="2.16.840.1.113883.4.6" National Provider ID (CONF:4526-18178_C01).</sch:assert>
<sch:assert id="a-4526-18177_C01-MIPSAPMENTITY-NPI-format-error" test="$intendedRecipient-DocOf != 'MIPS_APMENTITY' or ($intendedRecipient-DocOf='MIPS_APMENTITY' and count(cda:id[@root='2.16.840.1.113883.4.6'][@nullFlavor='NA'][not(@extension)])=1)">For MIPS APM Entity reporting, id/@root=' 2.16.840.1.113883.4.6' is coupled with @nullFlavor="NA", and @extension shall be omitted.(CONF:4526-18177_C01).</sch:assert>
<sch:assert id="a-4526-18177_C01-MIPSGROUP-NPI-format-error" test="$intendedRecipient-DocOf != 'MIPS_GROUP' or ($intendedRecipient-DocOf='MIPS_GROUP' and count(cda:id[@root='2.16.840.1.113883.4.6'][@nullFlavor='NA'][not(@extension)])=1)">For MIPS group reporting, id/@root=' 2.16.840.1.113883.4.6' is coupled with @nullFlavor="NA", and @extension shall be omitted.(CONF:4526-18177_C01).</sch:assert>
Expand Down
Loading
Loading