Skip to content

Commit

Permalink
Merge branch 'release/6.0.17'
Browse files Browse the repository at this point in the history
  • Loading branch information
ckawell-sb committed Oct 16, 2023
2 parents e1194de + ea8e1d5 commit e5fedf2
Show file tree
Hide file tree
Showing 23 changed files with 32,612 additions and 27 deletions.
34 changes: 34 additions & 0 deletions benchmarks/2023/benchmarks-exclusion-reasons-schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
$id: https://github.com/CMSgov/qpp-measures-data/versions/0.0.1/benchmarks-exclusion-reasons-schema.yaml
$schema: http://json-schema.org/schema#
type: array
items: { $ref: '#/definitions/benchmark-exclusion-reasons' }

definitions:
benchmark:
type: object
properties:
measureId:
description: Corresponds to the measures data JSON ID.
type: string
submissionMethod:
description: The method used to submit. measureID and submissionMethod make up the unique identifier for a benchmark.
type: string
performanceYear:
description: When the performance data was submitted for scoring.
type: number
benchmarkYear:
description: When this benchmark was generated. For historical benchmarks, it will be different than performanceYear.
For performance year benchmarks, it will be the same.
type: number
reasonCodes:
description: Machine-readable codes for why the benchmark could not be created. Positions in array match reasonDescriptions.
type: array
items:
type: [string]
minItems: 1
reasonDescriptions:
description: Human-readable descriptions for why the benchmark could not be created. Positions in array match reasonCodes.
type: array
items:
type: [string]
minItems: 1
88 changes: 88 additions & 0 deletions clinical-clusters/2023/clinical-clusters.json
Original file line number Diff line number Diff line change
Expand Up @@ -1226,6 +1226,14 @@
"396",
"397"
]
},
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397"
]
}
]
},
Expand Down Expand Up @@ -1256,6 +1264,14 @@
"396",
"397"
]
},
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397"
]
}
]
},
Expand Down Expand Up @@ -1317,6 +1333,14 @@
"397"
]
},
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397"
]
},
{
"name": "pathologySkinCancer",
"measureIds": [
Expand Down Expand Up @@ -1721,6 +1745,15 @@
"396",
"397"
]
},
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397",
"491"
]
}
]
},
Expand Down Expand Up @@ -1832,6 +1865,15 @@
"396",
"397"
]
},
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397",
"491"
]
}
]
},
Expand Down Expand Up @@ -1868,6 +1910,15 @@
"396",
"397"
]
},
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397",
"491"
]
}
]
},
Expand All @@ -1889,6 +1940,23 @@
}
]
},
{
"measureId": "164",
"submissionMethod": "registry",
"firstPerformanceYear": 2017,
"lastPerformanceYear": null,
"clinicalClusters": [
{
"name": "cabgCare",
"measureIds": [
"164",
"167",
"168",
"445"
]
}
]
},
{
"measureId": "167",
"submissionMethod": "registry",
Expand All @@ -1898,6 +1966,7 @@
{
"name": "cabgCare",
"measureIds": [
"164",
"167",
"168",
"445"
Expand All @@ -1914,13 +1983,31 @@
{
"name": "cabgCare",
"measureIds": [
"164",
"167",
"168",
"445"
]
}
]
},
{
"measureId": "491",
"submissionMethod": "registry",
"firstPerformanceYear": 2023,
"lastPerformanceYear": null,
"clinicalClusters": [
{
"name": "pathology2",
"measureIds": [
"249",
"395",
"397",
"491"
]
}
]
},
{
"measureId": "445",
"submissionMethod": "registry",
Expand All @@ -1930,6 +2017,7 @@
{
"name": "cabgCare",
"measureIds": [
"164",
"167",
"168",
"445"
Expand Down
26 changes: 17 additions & 9 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
const fs = require('fs');
const path = require('path');
const YAML = require('yamljs');
const uniq = require('lodash/uniq');
const _ = require('lodash');

const yearRegEx = /^[0-9]{4}/;
const benchmarkJsonFileRegEx = /^[0-9]{4}\.json$/;
Expand Down Expand Up @@ -194,6 +194,8 @@ exports.createMVPDataFile = function(performanceYear) {
mvp[item.enrichedMeasureKey] = [];
this.populateMeasuresforMVPs(mvp, mvpData, measuresData, item.measureIdKey, item.enrichedMeasureKey);
});

mvp.hasOutcomeAdminClaims = !_.isEmpty(mvp.administrativeClaimsMeasureIds);
});

mvpData.forEach(mvp => {
Expand All @@ -208,19 +210,25 @@ exports.createMVPDataFile = function(performanceYear) {
return mvpData;
};

exports.populateMeasuresforMVPs = function(mvpDataItem, mvpDataArray, measuresData, measureIdKey, enrichedMeasureKey) {
mvpDataItem[measureIdKey].forEach(measureId => {
const measure = measuresData.find(m => m.measureId === measureId);
exports.populateMeasuresforMVPs = function(currentMvp, allMvps, measuresData, measureIdKey, enrichedMeasureKey) {
currentMvp[measureIdKey].forEach(measureId => {
const measure = measuresData.find(measure => measure.measureId === measureId);

if (measure) {
mvpDataArray.forEach(m => {
if (m[measureIdKey].includes(measureId)) {
measure.allowedPrograms.push(m.mvpId);
allMvps.forEach(mvp => {
// update measuresData with MVP programNames.
if (mvp[measureIdKey].includes(measureId)) {
measure.allowedPrograms.push(mvp.mvpId);
}
});
measure.allowedPrograms = _.uniq(measure.allowedPrograms);

if (measure.measureId === '321') {
currentMvp.hasCahps = true;
}

measure.allowedPrograms = uniq(measure.allowedPrograms);
mvpDataItem[enrichedMeasureKey].push(measure);
// update mvp-data with measures.
currentMvp[enrichedMeasureKey].push(measure);
}
});
};
Expand Down
15 changes: 13 additions & 2 deletions measures/2023/measures-data.json
Original file line number Diff line number Diff line change
Expand Up @@ -8881,7 +8881,7 @@
"isClinicalGuidelineChanged": false,
"isIcdImpacted": false,
"clinicalGuidelineChanged": [],
"metricType": "singlePerformanceRate",
"metricType": "multiPerformanceRate",
"allowedPrograms": [
"mips",
"pcf",
Expand All @@ -8896,7 +8896,18 @@
],
"measureSpecification": {
"registry": "http://qpp.cms.gov/docs/QPP_quality_measure_specifications/CQM-Measures/2023_Measure_409_MIPSCQM.pdf"
}
},
"overallAlgorithm": "split",
"strata": [
{
"name": "reporting",
"description": "Percentage of patients with mRS score assessed at 90 days following endovascular stroke intervention"
},
{
"name": "performance",
"description": "Percentage of patients with mRS score of 0 to 2 assessed at 90 days following endovascular stroke intervention"
}
]
},
{
"title": "Psoriasis: Clinical Response to Systemic Medications",
Expand Down
2 changes: 1 addition & 1 deletion measures/2023/measures-schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ definitions:
default: false
overallAlgorithm:
description: Formula to determine the overall performance rate, given multiple strata of performance rates. Only applicable to multiPerformanceRate measures.
enum: [simpleAverage, weightedAverage, sumNumerators, overallStratumOnly]
enum: [simpleAverage, weightedAverage, sumNumerators, overallStratumOnly, split]
strata:
description: Population segments for which the measure requires reporting data. Only applicable to multiPerformanceRate measures.
type: array
Expand Down
Loading

0 comments on commit e5fedf2

Please sign in to comment.