Skip to content

Commit e01e85b

Browse files
Merge pull request #1579 from CMSgov/QPPA_11011
QPPA-11011: revert ssp work
2 parents 55aa7bc + c4a1693 commit e01e85b

15 files changed

Lines changed: 16 additions & 1357 deletions

File tree

ERROR_MESSAGES.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,3 @@ Any text in the following format `(Example)` are considered variables to be fill
5858
* 53 : CT - The QRDA III file must contain one Category Section v5 with the extension 2020-12-01
5959
* 54 : CT - The APM to TIN/NPI Combination file is missing.
6060
* 55 : CT - The Promoting Interoperability section cannot contain PI_HIE_5 with PI_HIE_1, PI_LVOTC_1, PI_HIE_4, or PI_LVITC_2
61-
* 56 : CT - Review the Clinical Document for program `(program name)`. Only the Promoting Interoperability (PI) measure category is permitted; found `(provided category)`.

commons/src/main/java/gov/cms/qpp/conversion/model/error/ProblemCode.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,7 @@ public enum ProblemCode implements LocalizedProblem {
121121
MEASURE_SECTION_V5_REQUIRES_CATEGORY_SECTION(95, "The QRDA III file must contain one Category Section v5 with the extension 2020-12-01"),
122122
MISSING_API_TIN_NPI_FILE(96, "The APM to TIN/NPI Combination file is missing."),
123123
PI_RESTRICTED_MEASURES(102, "The Promoting Interoperability section cannot contain "
124-
+ "PI_HIE_5 with PI_HIE_1, PI_LVOTC_1, PI_HIE_4, or PI_LVITC_2", false),
125-
SSP_PI_ONLY_MEASURE_CATEGORY(109, "Review the Clinical Document for program `(program name)`. "
126-
+ "Only the Promoting Interoperability (PI) measure category is permitted; "
127-
+ "found `(provided category)`.", true);
124+
+ "PI_HIE_5 with PI_HIE_1, PI_LVOTC_1, PI_HIE_4, or PI_LVITC_2", false);
128125

129126
private static final Map<Integer, ProblemCode> CODE_TO_VALUE = Arrays.stream(values())
130127
.collect(Collectors.toMap(ProblemCode::getCode, Function.identity()));

commons/src/main/resources/measures-data.json

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2547,7 +2547,7 @@
25472547
"isBonus": false,
25482548
"reportingCategory": "required",
25492549
"measureSpecification": {
2550-
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure Specifications/2025-MIPS-Promoting-Interoperability-Measure-Query-of-PDMP.pdf"
2550+
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure%20Specifications/2025-MIPS-Promoting-Interoperability-Measure-Query-of-PDMP-Updated-Oct2025.pdf"
25512551
},
25522552
"measureSets": [],
25532553
"exclusion": [
@@ -2606,7 +2606,9 @@
26062606
},
26072607
"measureSets": [],
26082608
"exclusion": null,
2609-
"substitutes": [],
2609+
"substitutes": [
2610+
"PI_EP_2_EX_2"
2611+
],
26102612
"allowedPrograms": [
26112613
"mips",
26122614
"app1",
@@ -2658,7 +2660,9 @@
26582660
},
26592661
"measureSets": [],
26602662
"exclusion": null,
2661-
"substitutes": [],
2663+
"substitutes": [
2664+
"PI_EP_2_EX_1"
2665+
],
26622666
"allowedPrograms": [
26632667
"mips",
26642668
"app1",
@@ -2706,7 +2710,7 @@
27062710
"isBonus": false,
27072711
"reportingCategory": "required",
27082712
"measureSpecification": {
2709-
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure Specifications/2025-MIPS-Promoting Interoperability-Measure-Electronic-Referral-Loops-by-Sending-Health-Info.pdf"
2713+
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure%20Specifications/2025-MIPS-Promoting-Interoperability-Measure-Electronic-Referral-Loops-by-Sending-Health-Info-Updated-Oct2025.pdf"
27102714
},
27112715
"measureSets": [],
27122716
"exclusion": [
@@ -2876,7 +2880,7 @@
28762880
"isBonus": false,
28772881
"reportingCategory": "required",
28782882
"measureSpecification": {
2879-
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure Specifications/2025-MIPS-Promoting-Interoperability-Measure-Enabling-Exchange-Under-TEFCA.pdf"
2883+
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure%20Specifications/2025-MIPS-Promoting-Interoperability-Measure-Enabling-Exchange-Under-TEFCA-Updated-Oct2025.pdf"
28802884
},
28812885
"measureSets": [],
28822886
"exclusion": null,
@@ -3771,7 +3775,7 @@
37713775
"category": "pi",
37723776
"measureId": "PI_PHCDRR_3",
37733777
"title": "Electronic Case Reporting",
3774-
"description": "The MIPS eligible clinician is in active engagement with a public health agency to electronically submit case reporting of reportable conditions.",
3778+
"description": "UPDATE: This measure has been suppressed for the CY 2025 performance period but is still required to be reported. To receive full credit for this measure, you’ll need to attest “Yes” or “No,” or claim an applicable exclusion. (The 25 points for this objective won’t be redistributed to another objective.)\nThe MIPS eligible clinician is in active engagement with a public health agency to electronically submit case reporting of reportable conditions.",
37753779
"metricType": "boolean",
37763780
"firstPerformanceYear": 2017,
37773781
"lastPerformanceYear": null,
@@ -3780,7 +3784,7 @@
37803784
"isBonus": false,
37813785
"reportingCategory": "required",
37823786
"measureSpecification": {
3783-
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure%20Specifications/2025-MIPS-Promoting-Interoperability-Measure-Electronic-Case-Reporting-Updated-April-2025.pdf"
3787+
"default": "https://qpp.cms.gov/docs/pi_specifications/Measure%20Specifications/2025-MIPS-Promoting-Interoperability-Measure-Electronic-Case-Reporting-Updated-Oct2025.pdf"
37843788
},
37853789
"measureSets": [],
37863790
"exclusion": [
@@ -15130,7 +15134,7 @@
1513015134
"nephrology"
1513115135
],
1513215136
"measureSpecification": {
15133-
"registry": "https://qpp.cms.gov/docs/QPP_quality_measure_specifications/CQM-Measures/2025_Measure_510_MIPSCQM.pdf"
15137+
"registry": "https://qpp.cms.gov/docs/QPP_quality_measure_specifications/CQM-Measures/2025_Measure_510_MIPSCQM_Addendum.pdf"
1513415138
},
1513515139
"isSevenPointCapRemoved": false,
1513615140
"sevenPointCapRemoved": [],

converter/src/main/java/gov/cms/qpp/conversion/decode/ClinicalDocumentDecoder.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -228,18 +228,6 @@ private Pair<String, String> getProgramNameEntityPair(String name) {
228228
pair = new ImmutablePair<>(APP_PLUS_PROGRAM_NAME, ENTITY_APM);
229229
break;
230230

231-
case SSP_PI_INDIVIDUAL:
232-
pair = new ImmutablePair<>(SSP_PROGRAM_NAME, ENTITY_INDIVIDUAL);
233-
break;
234-
235-
case SSP_PI_GROUP:
236-
pair = new ImmutablePair<>(SSP_PROGRAM_NAME, ENTITY_GROUP);
237-
break;
238-
239-
case SSP_PI_APM:
240-
pair = new ImmutablePair<>(SSP_PROGRAM_NAME, ENTITY_APM);
241-
break;
242-
243231
default:
244232
pair = new ImmutablePair<>(name.toLowerCase(Locale.ENGLISH), ENTITY_INDIVIDUAL);
245233
break;

converter/src/main/java/gov/cms/qpp/conversion/encode/ClinicalDocumentEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ private void encodeToplevel(JsonWrapper wrapper, Node thisNode) {
7575
wrapper.put(ENTITY_ID, thisNode.getValue(ENTITY_ID));
7676
}
7777

78-
if ((Program.isApp(thisNode) || Program.isMips(thisNode) || Program.isAppPlus(thisNode) || Program.isSsp(thisNode))
78+
if ((Program.isApp(thisNode) || Program.isMips(thisNode) || Program.isAppPlus(thisNode))
7979
&& ENTITY_APM.equalsIgnoreCase(entityType)) {
8080
wrapper.put(ENTITY_ID, thisNode.getValue(ENTITY_ID));
8181
}

converter/src/main/java/gov/cms/qpp/conversion/encode/PiSectionEncoder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ private void encodeTopLevelValues(JsonWrapper wrapper, Node node) {
5656
wrapper.put(SUBMISSION_METHOD, "electronicHealthRecord");
5757
Node topLevelParent = node.getParent();
5858
if ((TemplateId.PI_SECTION_V3 == node.getType() || TemplateId.MEASURE_SECTION_V5 == node.getType())
59-
&& (Program.isMips(topLevelParent) || Program.isApp(topLevelParent) || Program.isAppPlus(topLevelParent) || Program.isSsp(topLevelParent))) {
59+
&& (Program.isMips(topLevelParent) || Program.isApp(topLevelParent) || Program.isAppPlus(topLevelParent))) {
6060
wrapper.put(CEHRT, topLevelParent.getValue(CEHRT));
6161
}
6262
}

converter/src/main/java/gov/cms/qpp/conversion/model/Constants.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,6 @@ public class Constants {
6565
public static final String ENTITY_VIRTUAL_GROUP = "virtualGroup";
6666
public static final String APP_PROGRAM_NAME = "app1";
6767
public static final String APP_PLUS_PROGRAM_NAME = "appPlus";
68-
public static final String SSP_PROGRAM_NAME = "ssp";
6968
public static final String MIPS = "MIPS";
7069
public static final Set<String> MVP_ENTITIES = Set.of(ENTITY_INDIVIDUAL, ENTITY_GROUP, ENTITY_SUBGROUP, ENTITY_APM);
7170

@@ -84,9 +83,6 @@ public class Constants {
8483
public static final String APP_PLUS_INDIVIDUAL = "APP_PLUS_INDIV";
8584
public static final String APP_PLUS_GROUP = "APP_PLUS_GROUP";
8685
public static final String APP_PLUS_APM = "APP_PLUS_APMENTITY";
87-
public static final String SSP_PI_INDIVIDUAL = "SSP_PI_INDIV";
88-
public static final String SSP_PI_GROUP = "SSP_PI_GROUP";
89-
public static final String SSP_PI_APM = "SSP_PI_APMENTITY";
9086

9187
// Library utility class so the constructor is private and empty.
9288
private Constants() {}

converter/src/main/java/gov/cms/qpp/conversion/model/Program.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ public enum Program {
1616
MIPS("MIPS_GROUP", "MIPS_INDIV", "MIPS_VIRTUALGROUP", "MIPS", "MIPS_APMENTITY", "MIPS_SUBGROUP"),
1717
APP("MIPS_APP1_INDIV", "MIPS_APP1_GROUP", "MIPS_APP1_APMENTITY"),
1818
APP_PLUS("APP_PLUS_INDIV", "APP_PLUS_GROUP", "APP_PLUS_APMENTITY"),
19-
SSP("SSP_PI_INDIV", "SSP_PI_GROUP", "SSP_PI_APMENTITY"),
2019
ALL;
2120

2221
private final Set<String> aliases;
@@ -60,16 +59,6 @@ public static boolean isAppPlus(Node node) {
6059
return extractProgram(node) == Program.APP_PLUS;
6160
}
6261

63-
/**
64-
* Checks if a node is using the ssp program
65-
*
66-
* @param node
67-
* @return
68-
*/
69-
public static boolean isSsp(Node node) {
70-
return extractProgram(node) == Program.SSP;
71-
}
72-
7362
/**
7463
* Extracts a program type from a node
7564
*

converter/src/main/java/gov/cms/qpp/conversion/validate/ClinicalDocumentValidator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ protected void performValidation(final Node node) {
5353
String entityType = Optional.ofNullable(node.getValue(ENTITY_TYPE)).orElse("<missing>");
5454

5555
forceCheckErrors(node).valueIn(ProblemCode.CLINICAL_DOCUMENT_INCORRECT_PROGRAM_NAME.format(VALID_PROGRAM_NAMES, programName),
56-
PROGRAM_NAME, MIPS_PROGRAM_NAME, APP_PROGRAM_NAME, APP_PLUS_PROGRAM_NAME, SSP_PROGRAM_NAME);
56+
PROGRAM_NAME, MIPS_PROGRAM_NAME, APP_PROGRAM_NAME, APP_PLUS_PROGRAM_NAME);
5757

5858
if (ENTITY_VIRTUAL_GROUP.equals(entityType)) {
5959
forceCheckErrors(node).value(ProblemCode.VIRTUAL_GROUP_ID_REQUIRED, ENTITY_ID);

converter/src/main/java/gov/cms/qpp/conversion/validate/SspClinicalDocumentValidator.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)