Skip to content

Commit d0ccf0d

Browse files
committed
Merge branch 'develop' into release/v2023.2.0
2 parents b15ae7d + 3a3b6f6 commit d0ccf0d

File tree

192 files changed

+762468
-4040
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

192 files changed

+762468
-4040
lines changed

.github/workflows/checkov-tf.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ jobs:
99

1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v2
12+
- uses: actions/checkout@v4
1313
- name: Set up Python 3.8
14-
uses: actions/setup-python@v1
14+
uses: actions/setup-python@v4
1515
with:
1616
python-version: 3.8
1717
- name: Test with Checkov
1818
id: checkov
1919
uses: bridgecrewio/checkov-action@master
2020
with:
2121
directory: infrastructure
22-
skip_check: CKV_AWS_18,CKV_AWS_23,CKV_AWS_115,CKV_AWS_116,CKV_AWS_117,CKV_AWS_40,CKV_AWS_50,CKV_AWS_144,CKV_AWS_145,CKV_AWS_131,CKV_AWS_103,CKV_AWS_51,CKV_AWS_136,CKV_AWS_158,CKV_AWS_173,CKV_AWS_32
22+
skip_check: CKV_AWS_316,CKV_AWS_18,CKV_AWS_23,CKV_AWS_115,CKV_AWS_116,CKV_AWS_117,CKV_AWS_40,CKV_AWS_50,CKV_AWS_144,CKV_AWS_145,CKV_AWS_131,CKV_AWS_103,CKV_AWS_51,CKV_AWS_136,CKV_AWS_158,CKV_AWS_173,CKV_AWS_32,CKV_AWS_337,CKV_AWS_272,CKV_AWS_61,CKV2_AWS_62
2323
framework: terraform

.gitignore

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,30 @@ jspm_packages
2828
# Terraform files
2929
terraform.tfstate.backup
3030
.terraform
31+
infrastructure/terraform/dev/.terraform-version
32+
infrastructure/terraform/dev/twe.initial_refresh.plan
33+
.gitignore
34+
infrastructure/terraform/dev/twe.full.plan
35+
infrastructure/terraform/dev/twe.full.plan.txt
36+
infrastructure/terraform/dev/twe.initial_refresh.plan.txt
37+
infrastructure/terraform/dev/dev.qppse1208.plan
38+
infrastructure/terraform/dev/dev.qppse1211.plan
39+
infrastructure/terraform/devpre/.terraform.lock.hcl
40+
infrastructure/terraform/devpre/devpre.qppse1211.plan
41+
infrastructure/terraform/impl/.terraform.lock.hcl
42+
infrastructure/terraform/impl/impl.qppse1211.plan
43+
infrastructure/terraform/prod/.terraform.lock.hcl
44+
infrastructure/terraform/prod/prod.qppse1211.plan
45+
infrastructure/terraform/devpre/.terraform.lock.hcl
46+
infrastructure/terraform/impl/.terraform.lock.hcl
47+
infrastructure/terraform/prod/.terraform.lock.hcl
48+
infrastructure/terraform/prod/.terraform.lock.hcl
49+
infrastructure/terraform/prod/.terraform.lock.hcl
50+
infrastructure/terraform/impl/.terraform.lock.hcl
51+
.gitignore
52+
infrastructure/terraform/dev/dev.qppse1208-v2.plan
53+
infrastructure/terraform/dev/.terraform.lock.hcl
54+
infrastructure/terraform/dev/dev.qppse1208-v3.plan
55+
infrastructure/terraform/devpre/.terraform.lock.hcl
56+
.gitignore
57+
infrastructure/terraform/prod/.terraform.lock.hcl

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
corevpc
1+
3.8

ERROR_MESSAGES.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,5 +89,5 @@ Any text in the following format `(Example)` are considered variables to be fill
8989
* 103 : CT - PCF Submissions must have the `(PCF Measure minimum)` following measures: `(Listing of valid measure ids)`
9090
* 105 : CT - If multiple TINs/NPIs are submitted, each must be reported within a separate performer
9191
* 106 : CT - PI submissions are not allowed within PCF
92-
* 107 : CT - NPI/TIN Warning: NPI/TIN `(npi)`-`(tin)` was active on the PCF practitioner roster for `(apm)` during the performance year but was not found in the file. Please ensure your submission contains all NPI/TIN combinations that were active on your roster at any point during the performance year. Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 2, 2022. It is therefore critical that you ensure your roster is up to date and your QRDA III file contains all NPI/TIN values that were active on your roster during the performance year. Instructions on how to update your roster are available in the PCF Practice Management Guide, available on PCF Connect (https://app.innovation.cms.gov/CMMIConnect/IDMLogin).
93-
* 108 : CT - NPI/TIN Warning: NPI/TIN `(npi)`-`(tin)` was reported in the file but does not exist at the practice or was not active on the PCF practitioner roster for `(apm)` during the performance year. Please ensure your submission only contains NPI/TIN combinations that were active on your roster at any point during the performance year. Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 2, 2022. It is therefore critical that you ensure your roster is up to date and your QRDA III file contains all NPI/TIN values that were active on your roster during the performance year. Instructions on how to update your roster are available in the PCF Practice Management Guide, available on PCF Connect (https://app.innovation.cms.gov/CMMIConnect/IDMLogin).
92+
* 107 : CT - NPI/TIN Warning: Missing NPI/TIN Combination Identified. NPI/TIN `(npi)`-`(tin)` was active on the PCF practitioner roster for `(apm)` during the performance year but was not found in the file. Please ensure your submission contains all NPI/TIN combinations that were active on your roster at any point during the performance year. Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 1, 2023. It is therefore critical that you ensure your roster is up to date and your QRDA III file contains all NPI/TIN values that were active on your roster during the performance year. Please contact your health IT vendor if your QRDA III file requires updates. Instructions on how to update your roster are available in the PCF Practice Management Guide (https://cmmi.my.salesforce.com/sfc/p/#i0000000iryR/a/t00000028RsP/dMF_romOmf5VLe7p5lUj8vch11mPmELP6ZuyI16vS.Y).
93+
* 108 : CT - NPI/TIN Warning: Unexpected NPI/TIN Combination Found. NPI/TIN `(npi)`-`(tin)` was reported in the file but does not exist at the practice or was not active on the PCF practitioner roster for `(apm)` during the performance year. Please ensure your submission only contains NPI/TIN combinations that were active on your roster at any point during the performance year. Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 1, 2023. It is therefore critical that you ensure your roster is up to date and your QRDA III file contains all NPI/TIN values that were active on your roster during the performance year. Please contact your health IT vendor if your QRDA III file requires updates. Instructions on how to update your roster are available in the PCF Practice Management Guide (https://cmmi.my.salesforce.com/sfc/p/#i0000000iryR/a/t00000028RsP/dMF_romOmf5VLe7p5lUj8vch11mPmELP6ZuyI16vS.Y).

buildspec.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: 0.2
22
env:
33
variables:
44
SLACK_CHANNEL: "p-qpp-sub-alerts"
5-
parameter-store:
5+
parameter-store:
66
AWS_ACCOUNT_ID: "/qppar-sf/account_id"
77
DOCKERHUB_USERNAME: "/qppar-sf/DOCKERHUB_USERNAME"
88
DOCKERHUB_PASS: "/qppar-sf/DOCKERHUB_PASS"
@@ -26,7 +26,7 @@ phases:
2626
- echo "Logging in to Amazon dockerHub ECR"
2727
- docker login --username $DOCKERHUB_USERNAME --password $DOCKERHUB_PASS
2828
- aws ecr get-login-password --region $AWS_DEFAULT_REGION | docker login --username AWS --password-stdin ${AWS_ACCOUNT_ID}.dkr.ecr.us-east-1.amazonaws.com
29-
29+
3030
build:
3131
commands:
3232
- REPOSITORY_URI="${AWS_ACCOUNT_ID}.dkr.ecr.us-east-1.amazonaws.com/qppsf/conversion-tool/${ENVIRONMENT}"
@@ -53,12 +53,12 @@ phases:
5353
- aws ecs wait services-stable --cluster ${ECS_CLUSTER} --services ${SERVICE_NAME}
5454

5555
post_build:
56-
commands:
56+
commands:
5757
- |
5858
if [ "$CODEBUILD_BUILD_SUCCEEDING" -eq 1 ]; then
5959
- SLACK_MSG="BUILD SUCCEEDED for Conversion Tool ${ENVIRONMENT} Environment, ${CODEBUILD_BUILD_ARN}"
6060
- curl -X POST -H 'Content-type: application/json' --data "{ \"attachments\": [{\"color\":\"good\",\"channel\":\"${SLACK_CHANNEL}\",\"username\":\"aws-codebuild\",\"text\":\"${SLACK_MSG}\",}]}" ${SLACK_WEBHOOK}
6161
else
6262
- SLACK_MSG="BUILD FAILED for Conversion Tool ${ENVIRONMENT} Environment, ${CODEBUILD_BUILD_ARN}"
6363
- curl -X POST -H 'Content-type: application/json' --data "{ \"attachments\": [{\"color\":\"danger\",\"channel\":\"${SLACK_CHANNEL}\",\"username\":\"aws-codebuild\",\"text\":\"${SLACK_MSG}\",}]}" ${SLACK_WEBHOOK}
64-
fi
64+
fi

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

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,11 @@ public enum ProblemCode implements LocalizedProblem {
139139
+ "Here is a link to the IG section on identifiers: " + DocumentationReference.IDENTIFIERS),
140140
PCF_CLINICAL_DOCUMENT_INVALID_APM(63, "The Alternative Payment Model (APM) Entity Identifier is not valid. "
141141
+ " Here is a link to the IG section on identifiers: " + DocumentationReference.IDENTIFIERS),
142-
PCF_PLUS_MISSING_SUPPLEMENTAL_CODE(66, "Missing the `(Supplemental Type)` - `(Type Qualification)` supplemental data for code "
142+
PCF_MISSING_SUPPLEMENTAL_CODE(66, "Missing the `(Supplemental Type)` - `(Type Qualification)` supplemental data for code "
143143
+ "`(Supplemental Data Code)` for the measure id `(Measure Id)`'s Sub-population `(Sub Population)`", true),
144-
PCF_PLUS_SUPPLEMENTAL_DATA_MISSING_COUNT(67, "Must have one count for Supplemental Data `(Supplemental Data Code)` "
144+
PCF_SUPPLEMENTAL_DATA_MISSING_COUNT(67, "Must have one count for Supplemental Data `(Supplemental Data Code)` "
145145
+ "on Sub-population `(Sub Population)` for the measure id `(Measure Id)`", true),
146-
PCF_PLUS_SUBMISSION_ENDED(68, "Your `(Program name)` submission was made after the `(Program name)` Measure section submission deadline of "
146+
PCF_SUBMISSION_ENDED(68, "Your `(Program name)` submission was made after the `(Program name)` Measure section submission deadline of "
147147
+ "`(Submission end date)`. Your `(Program name)` QRDA III file has not been processed. Please contact `(Program name)` Support at "
148148
+ "`(PCF+ contact email)` for assistance.", true),
149149
INVALID_PERFORMANCE_PERIOD_FORMAT(69, "`(Performance period start or end date)` is an invalid date format. "
@@ -199,18 +199,20 @@ public enum ProblemCode implements LocalizedProblem {
199199
PCF_MULTI_TIN_NPI_SINGLE_PERFORMER(105, "If multiple TINs/NPIs are submitted, each must be reported within a separate performer"),
200200
PCF_NO_PI(106, "PI submissions are not allowed within PCF"),
201201
PCF_MISSING_COMBINATION(107,
202-
"NPI/TIN Warning: NPI/TIN `(npi)`-`(tin)` was active on the PCF practitioner roster for `(apm)` during the performance year but was not found in the file. "
202+
"NPI/TIN Warning: Missing NPI/TIN Combination Identified. NPI/TIN `(npi)`-`(tin)` was active on the PCF practitioner roster for `(apm)` during the performance year but was not found in the file. "
203203
+ "Please ensure your submission contains all NPI/TIN combinations that were active on your roster at any point during the performance year. "
204-
+ "Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 2, 2022. "
204+
+ "Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 1, 2023. "
205205
+ "It is therefore critical that you ensure your roster is up to date and your QRDA III file contains all NPI/TIN values that were active on your roster during the performance year. "
206-
+ "Instructions on how to update your roster are available in the PCF Practice Management Guide, available on PCF Connect (https://app.innovation.cms.gov/CMMIConnect/IDMLogin).",
206+
+ "Please contact your health IT vendor if your QRDA III file requires updates. "
207+
+ "Instructions on how to update your roster are available in the PCF Practice Management Guide (https://cmmi.my.salesforce.com/sfc/p/#i0000000iryR/a/t00000028RsP/dMF_romOmf5VLe7p5lUj8vch11mPmELP6ZuyI16vS.Y).",
207208
true),
208209
PCF_INVALID_COMBINATION(108,
209-
"NPI/TIN Warning: NPI/TIN `(npi)`-`(tin)` was reported in the file but does not exist at the practice or was not active on the PCF practitioner roster for `(apm)` during the performance year. "
210+
"NPI/TIN Warning: Unexpected NPI/TIN Combination Found. NPI/TIN `(npi)`-`(tin)` was reported in the file but does not exist at the practice or was not active on the PCF practitioner roster for `(apm)` during the performance year. "
210211
+ "Please ensure your submission only contains NPI/TIN combinations that were active on your roster at any point during the performance year. "
211-
+ "Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 2, 2022. "
212+
+ "Your QRDA III file and/or roster may require updates. Note: The QPP website does not have access to roster updates made after December 1, 2023. "
212213
+ "It is therefore critical that you ensure your roster is up to date and your QRDA III file contains all NPI/TIN values that were active on your roster during the performance year. "
213-
+ "Instructions on how to update your roster are available in the PCF Practice Management Guide, available on PCF Connect (https://app.innovation.cms.gov/CMMIConnect/IDMLogin).",
214+
+ "Please contact your health IT vendor if your QRDA III file requires updates. "
215+
+ "Instructions on how to update your roster are available in the PCF Practice Management Guide (https://cmmi.my.salesforce.com/sfc/p/#i0000000iryR/a/t00000028RsP/dMF_romOmf5VLe7p5lUj8vch11mPmELP6ZuyI16vS.Y).",
214216
true);
215217

216218
private static final Map<Integer, ProblemCode> CODE_TO_VALUE = Arrays.stream(values())

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ private void validateCehrtId(Node node, String programName) {
191191
}
192192

193193
private boolean cehrtFormat(String requiredSubstring) {
194-
return requiredSubstring.equalsIgnoreCase("15E");
194+
return requiredSubstring.equalsIgnoreCase("15E") || requiredSubstring.equalsIgnoreCase("15C");
195195
}
196196

197197
/**
@@ -205,7 +205,7 @@ private void validateSubmissionDate(Node node) {
205205
String formatted = endDate.format(OUTPUT_END_DATE_FORMAT);
206206
String program = node.getValue(ClinicalDocumentDecoder.PROGRAM_NAME);
207207
addError(Detail.forProblemAndNode(
208-
ProblemCode.PCF_PLUS_SUBMISSION_ENDED.format(program, program, formatted, program, program,
208+
ProblemCode.PCF_SUBMISSION_ENDED.format(program, program, formatted, program, program,
209209
EnvironmentHelper.getOrDefault(CPC_PLUS_CONTACT_EMAIL, DEFAULT_CPC_PLUS_CONTACT_EMAIL)),
210210
node));
211211
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private Predicate<Node> filterDataBySupplementalCode(String code) {
111111
*/
112112
private void addSupplementalValidationError(Node node, SupplementalData supplementalData, String measureId) {
113113
LocalizedProblem error =
114-
ProblemCode.PCF_PLUS_MISSING_SUPPLEMENTAL_CODE.format(
114+
ProblemCode.PCF_MISSING_SUPPLEMENTAL_CODE.format(
115115
supplementalData.getType(), supplementalData, supplementalData.getCode(),
116116
measureId, node.getValue(MeasureDataDecoder.MEASURE_TYPE));
117117
addError(Detail.forProblemAndNode(error, node));
@@ -126,7 +126,7 @@ private void addSupplementalValidationError(Node node, SupplementalData suppleme
126126
* @return initialized {@link LocalizedProblem}
127127
*/
128128
private LocalizedProblem makeIncorrectCountSizeLocalizedError(Node node, String supplementalCode, String measureId) {
129-
return ProblemCode.PCF_PLUS_SUPPLEMENTAL_DATA_MISSING_COUNT.format(
129+
return ProblemCode.PCF_SUPPLEMENTAL_DATA_MISSING_COUNT.format(
130130
supplementalCode, node.getValue(MeasureDataDecoder.MEASURE_TYPE),
131131
measureId);
132132
}

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@
1414
public class PcfQualityMeasureSectionValidator extends NodeValidator {
1515

1616
static final String[] PCF_REQUIRED_MEASURES = {
17-
"2c928082-74c2-3313-0174-c60bd07b02a6", // 122v10
18-
"2c928082-74c2-3313-0174-daf39f2c0658", // 130v10
19-
"2c928082-7505-caf9-0175-2382d1bd06b1" // 165v10
17+
"2c928085-7b2a-eb52-017b-56761e0218d0", // 122v11
18+
"2c928083-7ace-2267-017b-11fbb9c913c4", // 130v11
19+
"2c928082-7a14-d92c-017a-67b6f9971ea8" // 165v11
2020
};
2121

2222
static final String[] PCF_MEASURE_IDS = {
23-
"122v10",
24-
"130v10",
25-
"165v10"
23+
"122v11",
24+
"130v11",
25+
"165v11"
2626
};
2727

2828
/**

converter/src/main/resources/pcf_apm_entity_ids.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)