Skip to content

Commit 97d152c

Browse files
committed
address mapping mismatches
1 parent 6fa02d3 commit 97d152c

17 files changed

Lines changed: 379 additions & 514 deletions

apps/bfd-model-idr/maps/ExplanationOfBenefit-PriorAuth.map

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ group addPADecisionExpDt(source src: String, target tgt: Extension){
222222

223223
group addServiceCnts(source src: String, target tgt: Extension){
224224
src -> tgt.url = "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS" "Add extension url";
225-
src as val -> tgt.value = cast(val, "decimal") "set value";
225+
src as val -> tgt.value = cast(val, "unsignedInt") "set value";
226226
}
227227

228228
group addSvcRenderSt(source src: String, target tgt: Extension){

apps/bfd-model-idr/out/ExplanationOfBenefit-PriorAuth.json

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@
9292
"system" : "http://hl7.org/fhir/sid/us-npi",
9393
"value" : "1065725636"
9494
},
95-
"display" : "Indiana"
95+
"display" : "Practitioner"
9696
},
9797
"role" : {
9898
"coding" : [{
@@ -117,7 +117,7 @@
117117
"system" : "http://hl7.org/fhir/sid/us-npi",
118118
"value" : "2601139399"
119119
},
120-
"display" : "Jones, Gromit"
120+
"display" : "Practitioner"
121121
},
122122
"role" : {
123123
"coding" : [{
@@ -142,7 +142,7 @@
142142
"system" : "http://hl7.org/fhir/sid/us-npi",
143143
"value" : "1248968152"
144144
},
145-
"display" : "Tiana"
145+
"display" : "Practitioner"
146146
},
147147
"role" : {
148148
"coding" : [{
@@ -155,7 +155,7 @@
155155
{
156156
"sequence" : 4,
157157
"provider" : {
158-
"type" : "Organization",
158+
"type" : "Practitioner",
159159
"identifier" : {
160160
"type" : {
161161
"coding" : [{
@@ -167,7 +167,7 @@
167167
"system" : "http://hl7.org/fhir/sid/us-npi",
168168
"value" : "1118124233"
169169
},
170-
"display" : "CBS Health Corporation"
170+
"display" : "Practitioner"
171171
},
172172
"role" : {
173173
"coding" : [{
@@ -255,7 +255,7 @@
255255
},
256256
{
257257
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
258-
"valueDecimal" : 13
258+
"valueUnsignedInt" : 13
259259
},
260260
{
261261
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -266,7 +266,7 @@
266266
},
267267
{
268268
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
269-
"valueDecimal" : 43
269+
"valueUnsignedInt" : 43
270270
},
271271
{
272272
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -318,7 +318,7 @@
318318
},
319319
{
320320
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
321-
"valueDecimal" : 4
321+
"valueUnsignedInt" : 4
322322
},
323323
{
324324
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -329,7 +329,7 @@
329329
},
330330
{
331331
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
332-
"valueDecimal" : 14
332+
"valueUnsignedInt" : 14
333333
},
334334
{
335335
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -381,7 +381,7 @@
381381
},
382382
{
383383
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
384-
"valueDecimal" : 1
384+
"valueUnsignedInt" : 1
385385
},
386386
{
387387
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -392,7 +392,7 @@
392392
},
393393
{
394394
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
395-
"valueDecimal" : 94
395+
"valueUnsignedInt" : 94
396396
},
397397
{
398398
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -448,7 +448,7 @@
448448
},
449449
{
450450
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
451-
"valueDecimal" : 8
451+
"valueUnsignedInt" : 8
452452
},
453453
{
454454
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -459,7 +459,7 @@
459459
},
460460
{
461461
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
462-
"valueDecimal" : 54
462+
"valueUnsignedInt" : 54
463463
},
464464
{
465465
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -511,7 +511,7 @@
511511
},
512512
{
513513
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
514-
"valueDecimal" : 9
514+
"valueUnsignedInt" : 9
515515
},
516516
{
517517
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -522,7 +522,7 @@
522522
},
523523
{
524524
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
525-
"valueDecimal" : 45
525+
"valueUnsignedInt" : 45
526526
},
527527
{
528528
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -580,7 +580,7 @@
580580
},
581581
{
582582
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
583-
"valueDecimal" : 15
583+
"valueUnsignedInt" : 15
584584
},
585585
{
586586
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -591,7 +591,7 @@
591591
},
592592
{
593593
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
594-
"valueDecimal" : 58
594+
"valueUnsignedInt" : 58
595595
},
596596
{
597597
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -655,7 +655,7 @@
655655
},
656656
{
657657
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
658-
"valueDecimal" : 2
658+
"valueUnsignedInt" : 2
659659
},
660660
{
661661
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -666,7 +666,7 @@
666666
},
667667
{
668668
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
669-
"valueDecimal" : 74
669+
"valueUnsignedInt" : 74
670670
},
671671
{
672672
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -718,7 +718,7 @@
718718
},
719719
{
720720
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
721-
"valueDecimal" : 8
721+
"valueUnsignedInt" : 8
722722
},
723723
{
724724
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -729,7 +729,7 @@
729729
},
730730
{
731731
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
732-
"valueDecimal" : 85
732+
"valueUnsignedInt" : 85
733733
},
734734
{
735735
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -787,7 +787,7 @@
787787
},
788788
{
789789
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
790-
"valueDecimal" : 14
790+
"valueUnsignedInt" : 14
791791
},
792792
{
793793
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -798,7 +798,7 @@
798798
},
799799
{
800800
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
801-
"valueDecimal" : 11
801+
"valueUnsignedInt" : 11
802802
},
803803
{
804804
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",
@@ -850,7 +850,7 @@
850850
},
851851
{
852852
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS",
853-
"valueDecimal" : 9
853+
"valueUnsignedInt" : 9
854854
},
855855
{
856856
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/SVC-RENDER-ST",
@@ -861,7 +861,7 @@
861861
},
862862
{
863863
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND",
864-
"valueDecimal" : 1
864+
"valueUnsignedInt" : 1
865865
},
866866
{
867867
"url" : "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-ST-DT",

apps/bfd-model-idr/sushi/input/fsh/Extension-MR-COUNT-IND.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ Id: MR-COUNT-IND
55
* ^url = "https://bluebutton.cms.gov/fhir/StructureDefinition/MR-COUNT-IND"
66
* ^context[+].type = #element
77
* ^context[=].expression = "ExplanationOfBenefit.item"
8-
* value[x] only decimal
8+
* value[x] only unsignedInt
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Extension: RRB-EXCL-IND
2+
Title: "RRB Exclusion Indicator"
3+
Description: "RRB Exclusion Indicator."
4+
Id: RRB-EXCL-IND
5+
* ^url = "https://bluebutton.cms.gov/fhir/StructureDefinition/RRB-EXCL-IND"
6+
* ^context[+].type = #element
7+
* ^context[=].expression = "ExplanationOfBenefit.item"
8+
* value[x] only boolean

apps/bfd-model-idr/sushi/input/fsh/Extension-SERVICE-CNTS.fsh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ Id: SERVICE-CNTS
55
* ^url = "https://bluebutton.cms.gov/fhir/StructureDefinition/SERVICE-CNTS"
66
* ^context[+].type = #element
77
* ^context[=].expression = "ExplanationOfBenefit.item"
8-
* value[x] only decimal
8+
* value[x] only unsignedInt

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/converter/ClaimTypePriorAuthConverter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public class ClaimTypePriorAuthConverter
1111
implements AttributeConverter<Optional<ClaimTypePriorAuth>, String> {
1212
@Override
1313
public String convertToDatabaseColumn(Optional<ClaimTypePriorAuth> claimTypePriorAuth) {
14-
return claimTypePriorAuth.map(ClaimTypePriorAuth::getCode).orElse("");
14+
return claimTypePriorAuth.map(ClaimTypePriorAuth::getCmsCode).orElse("");
1515
}
1616

1717
@Override

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/ClaimAuditTrailStatusCode.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -910,6 +910,10 @@ public enum ClaimAuditTrailStatusCode {
910910
private final ClaimAuditTrailLocationCode locationCode;
911911
private final String display;
912912

913+
private String getCompositeStatusCode() {
914+
return getSource().getPrefix() + getStatusCode() + getLocationCode().getCode();
915+
}
916+
913917
private static final Map<Key, ClaimAuditTrailStatusCode> CLAIM_STATUS_LOOKUP =
914918
Arrays.stream(values())
915919
.collect(
@@ -943,6 +947,6 @@ ExplanationOfBenefit.SupportingInformationComponent toFhir(
943947
new Coding()
944948
.setSystem(SystemUrls.BLUE_BUTTON_CODE_SYSTEM_CLAIM_AUDIT_TRAIL_STATUS_CODE)
945949
.setDisplay(getDisplay())
946-
.setCode(getStatusCode())));
950+
.setCode(getCompositeStatusCode())));
947951
}
948952
}

apps/bfd-server-ng/src/main/java/gov/cms/bfd/server/ng/claim/model/ClaimTypePriorAuth.java

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,21 @@ public sealed interface ClaimTypePriorAuth
1515
*
1616
* @return the code
1717
*/
18-
String getCode();
18+
String getCmsCode();
1919

2020
/**
2121
* Gets the display value.
2222
*
2323
* @return the display
2424
*/
25-
String getDisplay();
25+
String getCode();
2626

2727
/**
2828
* Gets the CMS display value.
2929
*
3030
* @return the CMS display
3131
*/
32-
String getCmsDisplay();
32+
String getDisplay();
3333

3434
/**
3535
* Gets the insurance type value.
@@ -50,7 +50,7 @@ static Optional<ClaimTypePriorAuth> tryFromCode(String code) {
5050
}
5151
return Optional.of(
5252
Arrays.stream(ClaimTypePriorAuth.Valid.values())
53-
.filter(v -> v.code.equals(code))
53+
.filter(v -> v.cmsCode.equals(code))
5454
.map(v -> (ClaimTypePriorAuth) v)
5555
.findFirst()
5656
.orElseGet(() -> new ClaimTypePriorAuth.Invalid(code)));
@@ -68,23 +68,6 @@ default ExplanationOfBenefit.InsuranceComponent toFhirInsurance() {
6868
return insurance;
6969
}
7070

71-
/**
72-
* Maps the display type to a ClaimContext. It is temporarily being used in addCareTeam from
73-
* ProviderHistoryBase to determine the NPI type for non-prior authorization providers. This will
74-
* no longer be needed once we have separate NPI type fields for each npi in BFD-4661.
75-
*
76-
* @return a ClaimContext or an empty Optional if the display did not match
77-
*/
78-
default Optional<ClaimContext> toContext() {
79-
if (getDisplay().equals(ClaimType.INSTITUTIONAL.getCode())) {
80-
return Optional.of(ClaimContext.INSTITUTIONAL);
81-
}
82-
if (getDisplay().equals(ClaimType.PROFESSIONAL.getCode())) {
83-
return Optional.of(ClaimContext.PROFESSIONAL);
84-
}
85-
return Optional.empty();
86-
}
87-
8871
/**
8972
* Maps enum/record to FHIR spec.
9073
*
@@ -96,12 +79,12 @@ default CodeableConcept toFhir() {
9679
new Coding()
9780
.setSystem(SystemUrls.HL7_CLAIM_TYPE)
9881
.setCode(getCode())
99-
.setDisplay(getDisplay()))
82+
.setDisplay(getCode()))
10083
.addCoding(
10184
new Coding()
10285
.setSystem(SystemUrls.BLUEBUTTON_CLAIM_TYPE)
103-
.setCode(getCode())
104-
.setDisplay(getCmsDisplay()));
86+
.setCode(getCmsCode())
87+
.setDisplay(getDisplay()));
10588
}
10689

10790
/** Enum for all known, valid codes. */
@@ -122,9 +105,9 @@ enum Valid implements ClaimTypePriorAuth {
122105
/** C - institutional - Hospice - Part A. */
123106
C("C", ClaimType.INSTITUTIONAL.getCode(), "Hospice", "Part A");
124107

108+
private final String cmsCode;
125109
private final String code;
126110
private final String display;
127-
private final String cmsDisplay;
128111
private final String insuranceType;
129112
}
130113

@@ -136,17 +119,17 @@ public String getInsuranceType() {
136119
}
137120

138121
@Override
139-
public String getCmsDisplay() {
122+
public String getDisplay() {
140123
return "";
141124
}
142125

143126
@Override
144-
public String getDisplay() {
127+
public String getCode() {
145128
return "";
146129
}
147130

148131
@Override
149-
public String getCode() {
132+
public String getCmsCode() {
150133
return code;
151134
}
152135
}

0 commit comments

Comments
 (0)