Skip to content

Releases: CMSgov/qpp-measures-data

v8.0.0

10 Sep 18:49
Compare
Choose a tag to compare

This update adds strongly-typed return values to our package functions. This will impact TypeScript users who reference the qpp-measures-repo getter functions. This will not impact JavaScript users or anyone who bypasses the getter functions by referencing the package JSON files directly (not recommended).

We recommend updating as soon as possible, since future data changes will be in later versions building off of these updates. Actual function return data formatting is not changing, but the addition of strict typing will likely require some changes to your code to support it.

🔴 BREAKING CHANGES 🔴

This update adds typed return values to our package functions, which means your code will start erroring if it is expecting differently-formatted responses than our new types. We recommend looking through the following table for the functions your code references and refactoring to use our new types in your code.

Return Type Format Table

Function Name Return Object/Value Return Type Interface
getValidPerformanceYears
number[]
number[]
getProgramNames
{
    "mips": "mips",
    "cpcPlus": "cpcPlus",
    "pcf": "pcf",
    "app1": "app1",
    "DEFAULT": "mips",
    "G0053": "G0053",
    "G0054": "G0054",
    "G0055": "G0055",
    "G0056": "G0056",
    "G0057": "G0057",
    "G0058": "G0058",
    "G0059": "G0059",
    "M0001": "M0001",
    "M0005": "M0005",
    "M0002": "M0002",
    "M0003": "M0003",
    "M0004": "M0004",
    "M1366": "M1366",
    "M1367": "M1367",
    "M1368": "M1368",
    "M1369": "M1369",
    "M1370": "M1370"
}

Note: The ProgramNames interface, features key-value pairs for all possible programs names. Depending on how your specific TS application is using this interface, it is possible you'll need to use the keyof operator to enforce strict typing. See documentation on keyof operator here.

ProgramNames
getBenchmarksData
{ [year: number]: {
  measureId: string;
  benchmarkYear: number;
  performanceYear: number;
  submissionMethod: string;
  isToppedOut?: boolean;
  isHighPriority?: boolean;
  isInverse?: boolean;
  metricType?: string;
  isToppedOutByProgram?: boolean;
  percentiles?: {
        "1": number;
        "10": number;
        "20": number;
        "30": number;
        "40": number;
        "50": number;
        "60": number;
        "70": number;
        "80": number;
        "90": number;
        "99": number;
    };
  deciles?: number[];
  averagePerformanceRate?: number;
}[];
}
BenchmarksData
getBenchmarksYears
number[]
number[]
getBenchmarksExclusionReasons
{
    measureId: string;
    submissionMethod: string;
    performanceYear: number;
    benchmarkYear: number;
    reasonCodes: string[];
    reasonDescriptions: string[];
}[]
BenchmarksExclusionReasons[]
getBenchmarksNationalAverages
{
    measureId: string;
    performanceYear: number;
    benchmarkYear: number;
    groupNationalAverage: number;
    individualNationalAverage: number;
}[]
CostNationalAverage
getMeasuresData

The data type is to large and branching to document here, the link included shows the entire type structure. We also expose the individual measure types to use throughout your code:
https://github.com/CMSgov/qpp-measures-data/blob/develop/util/interfaces/measure.ts

Measure
getClinicalClusterData
{
    measureId: string;
    submissionMethod: string;
    firstPerformanceYear: number;
    lastPerformanceYear: number | null;
    specialtySets?: {
        name: string;
        measureIds: string[];
    };
    clinicalClusters?: {
        name: string;
        measureIds: string[];
    };
}[]
ClinicalCluster
getMVPData
{
    mvpId: string;
    clinicalTopic: string;
    title: string;
    description: string;
    specialtiesMostApplicableTo: string[];
    clinicalTopics: string;
    hasCahps: boolean;
    hasOutcomeAdminClaims: boolean;
    qualityMeasures: QualityMeasure[];
    iaMeasures: IAMeasure[];
    costMeasures: AggregateCostMeasure[];
    foundationPiMeasures: PIMeasure[];
    foundationQualityMeasures: QualityMeasure[];
    administrativeClaimsMeasures: QualityMeasure[];
}[]
MVPData
getMVPDataSlim
{
    mvpId: string;
    clinicalTopic: string;
    title: string;
    description: string;
    specialtiesMostApplicableTo: string[];
    clinicalTopics: string;
    hasCahps: boolean;
    hasOutcomeAdminClaims: boolean;
    qualityMeasures: string[];
    iaMeasures: string[];
    costMeasures: string[];
    foundationPiMeasures: string[];
    foundationQualityMeasures: string[];
    administrativeClaimsMeasures: string[];
}[]
MVPDataSlim

Using the Types/Interfaces in Your Code

We use interfaces to define the return values. To access the new interfaces, you can use the following import path.

// to get specific interfaces.
import { ProgramNames, IAMeasure } from 'qpp-measures-data/util/interfaces/index';
// to get all interfaces.
import * as MeasuresRepoInterfaces from 'qpp-measures-data/util/interfaces/index';

📏 Measure & MVP Updates

🚀 Features

🐛 Bug Fixes

🧰 Maintenance

v7.7.2

05 Aug 20:52
Compare
Choose a tag to compare

🐛 Bug Fixes

  • QPPA-0000: add npm ignore file @ckawell-sb (#822) (This was not applied in v7.7.1)

v7.7.1

01 Aug 14:53
36a6fc3
Compare
Choose a tag to compare

🐛 Bug Fixes

v7.7.0

01 Aug 14:17
fc46470
Compare
Choose a tag to compare

Breaking Change

  • You will now need to reference the package via the * import syntax if you wish to pull in all functions. eg, import * as qppMeasuresData from 'qpp-measures-data'. Not including the * as will throw an error during compilation.

📏 Measure & MVP Updates

🚀 Features

🐛 Bug Fixes

🧰 Maintenance

v7.6.0

15 Jul 16:04
4930a9b
Compare
Choose a tag to compare

📏 Measure & MVP Updates

  • QPPA-9290: Update measure specifications for COST_NECABG_1 and COST_STEMI_1 @john-manack (#813)
  • QPPA-9168: Remove AveChg stratum from measure 503 PY 2024 @ckawell-sb (#811)

🐛 Bug Fixes

  • QPPA-9168: Remove AveChg stratum from measure 503 PY 2024 @ckawell-sb (#811)

🧰 Maintenance

v7.5.1

14 Jun 18:56
5d49b23
Compare
Choose a tag to compare

🐛 Bug Fixes

v7.5.0

14 Jun 17:11
ff00c8d
Compare
Choose a tag to compare

📍 Benchmark Updates

🚀 Features

🧰 Maintenance

v7.4.0

06 Jun 13:23
fd61eee
Compare
Choose a tag to compare

📍 Benchmark Updates

🧰 Maintenance

v7.3.0

03 Jun 16:03
1f673c4
Compare
Choose a tag to compare

📏 Measure & MVP Updates

🚀 Features

  • QPPSE-2240: Extract and Create Clinical Cluster/Specialty Set Data @sivaksb (#791)

v7.2.0

10 May 13:45
5535944
Compare
Choose a tag to compare

📏 Measure & MVP Updates

📍 Benchmark Updates

🚀 Features

  • QPPA-8973: Add Benchmarks Repo Unit Tests @ckawell-sb (#789)
  • QPPSE-2002: Update measures data with 2024 QRDA-III UUIDs @sivaksb (#788)

🐛 Bug Fixes

🧰 Maintenance