-
Last Updated: 08/31/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Tutorial: Add and update data via API
In the we covered how to create a measurement set and retrieve the score in two different API requests. We're now going to build on the previous tutorial by adding another measure to the measurement set we created in the previous tutorial. All of these examples serve to illustrate how the Submissions API can make it easier to react to and fix issues that arise.
diff --git a/src/app/components/guides/basic-tutorial.tsx b/src/app/components/guides/basic-tutorial.tsx
index 2f68ccca..8a5d1c24 100644
--- a/src/app/components/guides/basic-tutorial.tsx
+++ b/src/app/components/guides/basic-tutorial.tsx
@@ -6,7 +6,7 @@ import { DocPageProps } from '../../../shared/types';
const BasicTutorial: React.FC = ({dataTestId}: DocPageProps) => {
return (
-
Last Updated: 08/31/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Tutorial: Create and Score Data via API
The Submissions API is an easy way to manage your performance data with CMS. Performance data is organized into submissions, which can have many measurements. Measurements within a submission are also grouped by category (e.g. quality) and submission method (e.g. registry) and program name (e.g. mips) into measurement sets.
diff --git a/src/app/components/guides/data.ts b/src/app/components/guides/data.ts
index 2966f971..aac89d1c 100644
--- a/src/app/components/guides/data.ts
+++ b/src/app/components/guides/data.ts
@@ -27,8 +27,8 @@ export const steps: ISteps = {
}
}
],
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31"
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31"
}`,
},
{
@@ -38,8 +38,8 @@ export const steps: ISteps = {
"data": {
"measurementSet": {
"id": "086dad28-907a-4e88-af73-5c7ed2e6764e",
- "createdAt": "2023-08-17T11:18:00Z",
- "updatedAt": "2023-08-17T11:32:15Z",
+ "createdAt": "2024-08-17T11:18:00Z",
+ "updatedAt": "2024-08-17T11:32:15Z",
"submissionId": "086dad28-0477-4b41-8c05-77dd98d41d6f",
"category": "quality",
"submissionMethod": "registry",
@@ -52,8 +52,8 @@ export const steps: ISteps = {
"cehrtId": "",
"suppressed": false,
"source": null,
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31",
"measurements": [
{
"id": "086dad28-4bcb-4649-a4fd-04ad8426df77",
@@ -298,13 +298,13 @@ export const steps: ISteps = {
code: `{
"category": "quality",
"submissionMethod": "registry",
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31",
"programName": "mips",
"submission": {
"entityType": "group",
"taxpayerIdentificationNumber": "000000002",
- "performanceYear": 2023
+ "performanceYear": "< performanceYearToBeReported >"
},
"measurements": [
{
@@ -328,8 +328,8 @@ export const steps: ISteps = {
"data": {
"measurementSet": {
"id": "086dad28-907a-4e88-af73-5c7ed2e6764e",
- "createdAt": "2023-08-17T11:18:19Z",
- "updatedAt": "2023-08-17T11:18:19Z",
+ "createdAt": "2024-08-17T11:18:19Z",
+ "updatedAt": "2024-08-17T11:18:19Z",
"submissionId": "086dad28-0477-4b41-8c05-77dd98d41d6f",
"category": "quality",
"submissionMethod": "registry",
@@ -342,8 +342,8 @@ export const steps: ISteps = {
"cehrtId": "",
"suppressed": false,
"source": null,
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31",
"measurements": [
{
"id": "086dad28-4bcb-4649-a4fd-04ad8426df77",
@@ -432,8 +432,8 @@ export const steps: ISteps = {
"toppedOut": false,
"isGhost": false,
"programName": "mips",
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31",
"isCpcPlus": false,
"isPcf": false,
"skippedDuplicate": false,
@@ -633,10 +633,10 @@ export const apiExamples: IApiExamples = {
row: ['Submission Method', 'Registry'],
},
{
- row: ['Performance Start', '2023-01-01'],
+ row: ['Performance Start', '2024-01-01'],
},
{
- row: ['Performance End', '2023-12-31'],
+ row: ['Performance End', '2024-12-31'],
},
{
row: ['Measurements'],
@@ -674,7 +674,7 @@ export const apiExamples: IApiExamples = {
row: ['Taxpayer Identification Number', '000000002'],
},
{
- row: ['Performance Year', '2023'],
+ row: ['Performance Year', '2024'],
},
],
},
diff --git a/src/app/components/references/benchmarks.tsx b/src/app/components/references/benchmarks.tsx
index 9b970c6e..18fede4a 100644
--- a/src/app/components/references/benchmarks.tsx
+++ b/src/app/components/references/benchmarks.tsx
@@ -7,18 +7,19 @@ import { DocPageProps } from '../../../shared/types';
const Benchmarks: React.FC = ({dataTestId}: DocPageProps) => {
return (
-
Last Updated: 08/31/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Benchmarks
Benchmarks serve as the reference points for measurements and are used to score submissions. Each benchmark is unique based upon its combination of measureId, submissionMethod, and performanceYear, and each has a list of 9 data points.
- Please see the for more information on MIPS Quality Benchmarks.
+ Please see the for more information on MIPS Quality Benchmarks.
You can view the benchmarks for a Performance Year using the publicly accessible .
+
diff --git a/src/app/components/references/data.ts b/src/app/components/references/data.ts
index da855e20..58497fff 100644
--- a/src/app/components/references/data.ts
+++ b/src/app/components/references/data.ts
@@ -360,8 +360,8 @@ export const submissionsFields: IFields = {
{ name: 'id', value: 'string', description: 'The id of the submission.', notes: ' ' },
{ name: 'createdAt', value: 'datetime', description: 'The creation time of the submission in
RFC 3339 format.', notes: ' ' },
{ name: 'updatedAt', value: 'datetime', description: 'The modification time of the submission in
RFC 3339 format.', notes: ' ' },
- { name: 'entityType', value: 'string', description: 'Acceptable values are
"apm",
"group",
"individual",
"virtualGroup"', notes: 'writable, required' },
- { name: 'entityId', value: 'string', description: 'The unique identifier for the virtual group or APM associated with the submission.', notes: 'writable, required if entityType is "apm" or "virtualGroup" ' },
+ { name: 'entityType', value: 'string', description: 'Acceptable values are
"apm",
"group",
"individual",
"virtualGroup" "subgroup"', notes: 'writable, required' },
+ { name: 'entityId', value: 'string', description: 'The unique identifier for the virtual group, subgroup or APM associated with the submission.', notes: 'writable, required if entityType is "apm", "virtualGroup" or "subgroup"' },
{ name: 'taxpayerIdentificationNumber', value: 'string', description: 'The 9-digit identifier of the provider associated with the submission.', notes: 'writable if entityType is "individual" or "group"' },
{ name: 'nationalProviderIdentifier', value: 'string', description: 'The 10-digit identifier of the provider associated with the submission.', notes: 'writable only if entityType is "individual"' },
{ name: 'performanceYear', value: 'integer', description: 'The year in which performance data for the submission was collected.', notes: 'writable, required' },
@@ -392,11 +392,13 @@ export const benchmarksFields: IFields = {
fields: [
{ name: 'benchmarkYear', value: 'integer', description: 'The performance year\'s data from which the benchmark deciles are calculated. ', notes: ' ' },
{ name: 'performanceYear', value: 'integer', description: 'The year in which the benchmark applies. ', notes: ' ' },
- { name: 'percentiles', value: 'object', description: 'List of values for the 1st through 99th percentiles.', notes: ' ' },
+ { name: 'metricType', value: 'string', description: 'Indicates the type of measurement. ', notes: ' ' },
{ name: 'status', value: 'string', description: 'Indicates if the benchmark is based on historical data, current performance period data, or if there was insufficient data to calculate a benchmark.', notes: ' ' },
+ { name: 'isInverse', value: 'boolean', description: 'Indicates if better performance is indicated by a lower performance rate. ', notes: ' ' },
{ name: 'isToppedOut', value: 'boolean', description: 'Indicates if the benchmark is topped out for the current Performance Year ', notes: ' ' },
{ name: 'isToppedOutByProgram', value: 'boolean', description: 'Indicates if the benchmark is topped out for 2 consecutive years. This results in a 7 point cap applied to the measure for scoring. ', notes: ' ' },
{ name: 'isHighPriority', value: 'boolean', description: 'Indicates the measure is a high priority measure within the program. ', notes: ' ' },
+ { name: 'percentiles', value: 'object', description: 'List of values for the 1st through 99th percentiles.', notes: ' ' },
{ name: 'submissionMethod', value: 'string', description: 'The submissionMethod for which the benchmark is applicable. ', notes: ' ' },
{ name: 'measureId', value: 'string', description: 'The id of the measurement. ', notes: ' ' },
],
@@ -408,14 +410,16 @@ export const benchmarksTabs: ITabs = {
tab: 'Sample JSON',
code: `{
"benchmarkYear": 2021,
- "performanceYear": 2023,
- "percentiles": {...},
+ "performanceYear": 2024,
+ "metricType": "singlePerformanceRate",
"status": "historical",
+ "isInverse": true,
"isToppedOut": false,
"isToppedOutByProgram": false,
"isHighPriority": true,
+ "percentiles": {...},
"submissionMethod": "registry",
- "measureId": "001"
+ "measureId": "001",
}`,
},
],
diff --git a/src/app/components/references/json/submission-example-aci.json b/src/app/components/references/json/submission-example-aci.json
index 87d11227..d52596ac 100644
--- a/src/app/components/references/json/submission-example-aci.json
+++ b/src/app/components/references/json/submission-example-aci.json
@@ -2,13 +2,13 @@
"entityType": "individual",
"taxpayerIdentificationNumber": "000456789",
"nationalProviderIdentifier": "9876543210",
- "performanceYear": 2023,
+ "performanceYear": "< performanceYearToBeReported >",
"measurementSets": [{
"category": "pi",
"submissionMethod": "electronicHealthRecord",
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31",
- "cehrtId": "XX15EXXXXXXXXXX",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31",
+ "cehrtId": "XX15CXXXXXXXXXX",
"measurements": [{
"measureId": "PI_INFBLO_1",
"value": true
diff --git a/src/app/components/references/json/submission-example-ia.json b/src/app/components/references/json/submission-example-ia.json
index bba0272f..d44486e4 100644
--- a/src/app/components/references/json/submission-example-ia.json
+++ b/src/app/components/references/json/submission-example-ia.json
@@ -2,13 +2,13 @@
"entityType": "individual",
"taxpayerIdentificationNumber": "000456789",
"nationalProviderIdentifier": "9876543210",
- "performanceYear": 2023,
+ "performanceYear": "< performanceYearToBeReported >",
"measurementSets": [
{
"category": "ia",
"submissionMethod": "registry",
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-06-01",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-06-01",
"measurements": [
{
"measureId": "IA_EPA_4",
diff --git a/src/app/components/references/json/submission-example-quality.json b/src/app/components/references/json/submission-example-quality.json
index 7559a14a..38bea4db 100644
--- a/src/app/components/references/json/submission-example-quality.json
+++ b/src/app/components/references/json/submission-example-quality.json
@@ -2,14 +2,14 @@
"entityType": "individual",
"taxpayerIdentificationNumber": "000456789",
"nationalProviderIdentifier": "9876543210",
- "performanceYear": 2023,
+ "performanceYear": "< performanceYearToBeReported >",
"measurementSets": [{
"category": "quality",
"submissionMethod": "registry",
- "performanceStart": "2023-01-01",
- "performanceEnd": "2023-12-31",
+ "performanceStart": "< performanceYearToBeReported >-01-01",
+ "performanceEnd": "< performanceYearToBeReported >-12-31",
"measurements": [{
- "measureId": "226",
+ "measureId": "305",
"value": {
"strata": [{
"eligiblePopulationExclusion": 0,
@@ -17,7 +17,7 @@
"performanceMet": 47,
"eligiblePopulationException": 0,
"performanceNotMet": 13,
- "stratum": "screenedForUse"
+ "stratum": "14days"
},
{
"eligiblePopulationExclusion": 0,
@@ -25,22 +25,14 @@
"performanceMet": 121,
"eligiblePopulationException": 0,
"performanceNotMet": 26,
- "stratum": "overall"
- },
- {
- "eligiblePopulationExclusion": 0,
- "eligiblePopulation": 86,
- "performanceMet": 73,
- "eligiblePopulationException": 0,
- "performanceNotMet": 13,
- "stratum": "tobacco"
+ "stratum": "34days"
}
],
"isEndToEndReported": true
}
},
{
- "measureId": "112",
+ "measureId": "102",
"value": {
"eligiblePopulationExclusion": 0,
"eligiblePopulation": 562,
diff --git a/src/app/components/references/scoring.tsx b/src/app/components/references/scoring.tsx
index ff33647a..2040f769 100644
--- a/src/app/components/references/scoring.tsx
+++ b/src/app/components/references/scoring.tsx
@@ -39,7 +39,7 @@ const textAndId: ITextAndId = {
const Scoring: React.FC
= ({dataTestId}: DocPageProps) => {
return (
-
Last Updated: 08/31/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Scoring
The scoring engine is responsible for interpreting submissions and outputting a score. Each category score is utilized to create the QPP score object.
@@ -94,10 +94,9 @@ const Scoring: React.FC = ({dataTestId}: DocPageProps) => {
- Utilization of 2015 CEHRT and the reporting of the corresponding CMS CEHRT ID in the submission
- - XX15EXXXXXXXXXX
- XX15CXXXXXXXXXX
- - Minimum 90 day performance period
+ - Minimum 180 day performance period
- Completion of Required Attestation Statements
- Completion of All Required Measures
- Bonus Measures
@@ -146,7 +145,7 @@ const Scoring: React.FC = ({dataTestId}: DocPageProps) => {
- In the sample below, measure 226 is a multi-strata, 110 is a single performance measure, ACRAD15 is a non-proportion measure.
+ In the sample below, measure 305 is a multi-strata performance measure, 102 is a single performance measure, ACRAD15 is a non-proportion measure.
diff --git a/src/app/components/references/submissions.tsx b/src/app/components/references/submissions.tsx
index 6f3bf14c..8da10023 100644
--- a/src/app/components/references/submissions.tsx
+++ b/src/app/components/references/submissions.tsx
@@ -6,7 +6,7 @@ import { DocPageProps } from '../../../shared/types';
const Submissions: React.FC = ({dataTestId}: DocPageProps) => {
return (
-
Last Updated: 08/31/2022
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Submissions
The Submissions resource represents one year of performance data for a given individual or group. Submissions contain MeasurementSets which can be accessed both via Submissions methods and MeasurementSets methods.
diff --git a/src/app/components/resources-and-support/frequently-asked-questions.tsx b/src/app/components/resources-and-support/frequently-asked-questions.tsx
index ba47841c..224cc653 100644
--- a/src/app/components/resources-and-support/frequently-asked-questions.tsx
+++ b/src/app/components/resources-and-support/frequently-asked-questions.tsx
@@ -28,13 +28,12 @@ const tableData1 = {
`,
'How do I report SubGroups?': `SubGroups are available for testing in DevPre as of 9/29/23. See the tutorial here QPP Developer Preview Documentation`,
- 'Score-preview endpoint returns a score for a MVP submission for a non-MVP registered entity.': 'Resolved as of 09/12/2023',
};
const FrequentlyAskedQuestions: React.FC = ({dataTestId}: DocPageProps) => {
return (
-
Last Updated: 09/29/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Frequently Asked Questions
General and Developer Preview
@@ -61,7 +60,7 @@ const FrequentlyAskedQuestions: React.FC
= ({dataTestId}: DocPageP
)}
- PY23 Questions and Known Issues
+ PY24 Questions and Known Issues
diff --git a/src/app/components/topics/announcements.tsx b/src/app/components/topics/announcements.tsx
index 5cbcdae8..f280af79 100644
--- a/src/app/components/topics/announcements.tsx
+++ b/src/app/components/topics/announcements.tsx
@@ -5,7 +5,7 @@ import { DocPageProps } from '../../../shared/types';
const Announcements: React.FC = ({dataTestId}: DocPageProps) => {
return (
-
Last Updated: 08/31/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Announcements
General
@@ -16,10 +16,10 @@ const Announcements: React.FC
= ({dataTestId}: DocPageProps) => {
Submission API
-
- Updates for traditional MIPS submissions and scoring for PY 2023 are now available.
+ Updates for traditional MIPS submissions and scoring for PY 2024 are now available.
-
- For APM participants only, APP submissions and scoring rules for PY 2023 are now available.
+ For APM participants only, APP submissions and scoring rules for PY 2024 are now available.
-
The Submissions API has received infastructure updates with minor changes to end users.
@@ -32,10 +32,10 @@ const Announcements: React.FC = ({dataTestId}: DocPageProps) => {
Measures Repository
-
- 2023 Measures are published and available here:
+ 2024 Measures are published and available here:
-
- 2023 MVP Measures are published and available here:
+ 2024 MVP Measures are published and available here:
diff --git a/src/app/components/topics/change-log.tsx b/src/app/components/topics/change-log.tsx
index 341a8c5e..f1ab0215 100644
--- a/src/app/components/topics/change-log.tsx
+++ b/src/app/components/topics/change-log.tsx
@@ -2,6 +2,12 @@ import envConfig from '../../../envConfig';
import { DocPageProps } from '../../../shared/types';
const submissionChangesTable = [
+ ['08/28/2024', `Updates to Developer Documentation for Performance Year 2024`, `
+
+ `],
['08/31/2023', `Updates to Developer Documentation for Performance Year 2023`, `
`],
];
const measuresChangeTable = [
+ ['08/01/24', `companionMeasureId is added to all quality Measures.`, `For category: "quality", companionMeasureId is added to list the corresponding CQM or Medicare CQM measure id.`],
['8/15/21', `allowedPrograms is added to all quality Measures.`, `For category: "quality", allowedPrograms is added to list the programs to which the measure can be submitted.`],
['8/15/21', `requiredForPrograms is added to all quality Measures.`, `For category: "quality", requiredForPrograms is added to list the programs to which the measure must be submitted.`],
['8/15/21', `allowedVendors is added to all QCDR Measures.`, `For QCDR Measures (isRegistryMeasure = true), allowedVendors is added to list the VendorIDs that are allowed to submit that measure.`],
@@ -216,7 +223,7 @@ const buildTableBody = (data: string[][]) =>
const ChangeLog: React.FC = ({dataTestId}: DocPageProps) =>{
return (
-
Last Updated: 08/31/2023
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
+
Last Updated: 08/28/2024
{/* IMPORTANT: update this Last-Updated value if you have made any changes to this page's content. */}
Change Log
The Change log is updated with each significant change to the API with the details that you need to be aware of.