use of gov.cms.bfd.model.rda.PreAdjMcsDiagnosisCode in project beneficiary-fhir-data by CMSgov.
the class McsClaimTransformerV2 method getItems.
private static List<Claim.ItemComponent> getItems(PreAdjMcsClaim claimGroup) {
return ObjectUtils.defaultIfNull(claimGroup.getDetails(), List.<PreAdjMcsDetail>of()).stream().map(detail -> {
Claim.ItemComponent item = new Claim.ItemComponent().setSequence(detail.getPriority() + 1).setProductOrService(new CodeableConcept(new Coding(BBCodingSystems.HCPCS, detail.getIdrProcCode(), null))).setServiced(new Period().setStart(localDateToDate(detail.getIdrDtlFromDate())).setEnd(localDateToDate(detail.getIdrDtlToDate()))).setModifier(getModifiers(detail));
// Set the DiagnosisSequence only if the detail Dx Code is not null and present in the
// Dx table.
Optional.ofNullable(detail.getIdrDtlPrimaryDiagCode()).ifPresent(detailDiagnosisCode -> {
Optional<PreAdjMcsDiagnosisCode> matchingCode = claimGroup.getDiagCodes().stream().filter(diagnosisCode -> codesAreEqual(diagnosisCode.getIdrDiagCode(), detailDiagnosisCode)).findFirst();
matchingCode.ifPresent(diagnosisCode -> item.setDiagnosisSequence(List.of(new PositiveIntType(diagnosisCode.getPriority() + 1))));
});
return item;
}).sorted(Comparator.comparing(Claim.ItemComponent::getSequence)).collect(Collectors.toList());
}
use of gov.cms.bfd.model.rda.PreAdjMcsDiagnosisCode in project beneficiary-fhir-data by CMSgov.
the class McsClaimTransformer method transformMessageArrays.
private void transformMessageArrays(McsClaim from, PreAdjMcsClaim to, DataTransformer transformer, Instant now, String namePrefix) {
for (short index = 0; index < from.getMcsDetailsCount(); ++index) {
final String itemNamePrefix = namePrefix + "detail" + "-" + index + "-";
final McsDetail itemFrom = from.getMcsDetails(index);
final PreAdjMcsDetail itemTo = transformMessageImpl(itemFrom, transformer, now, itemNamePrefix);
itemTo.setIdrClmHdIcn(from.getIdrClmHdIcn());
itemTo.setPriority(index);
to.getDetails().add(itemTo);
}
for (short index = 0; index < from.getMcsDiagnosisCodesCount(); ++index) {
final String itemNamePrefix = namePrefix + "diagCode" + "-" + index + "-";
final McsDiagnosisCode itemFrom = from.getMcsDiagnosisCodes(index);
final PreAdjMcsDiagnosisCode itemTo = transformMessageImpl(itemFrom, transformer, now, itemNamePrefix);
itemTo.setIdrClmHdIcn(from.getIdrClmHdIcn());
itemTo.setPriority(index);
to.getDiagCodes().add(itemTo);
}
for (short index = 0; index < from.getMcsAdjustmentsCount(); ++index) {
final String itemNamePrefix = namePrefix + "adjustment" + "-" + index + "-";
final McsAdjustment itemFrom = from.getMcsAdjustments(index);
final PreAdjMcsAdjustment itemTo = transformMessageImpl(itemFrom, transformer, now, itemNamePrefix);
itemTo.setIdrClmHdIcn(from.getIdrClmHdIcn());
itemTo.setPriority(index);
to.getAdjustments().add(itemTo);
}
for (short index = 0; index < from.getMcsAuditsCount(); ++index) {
final String itemNamePrefix = namePrefix + "audit" + "-" + index + "-";
final McsAudit itemFrom = from.getMcsAudits(index);
final PreAdjMcsAudit itemTo = transformMessageImpl(itemFrom, transformer, now, itemNamePrefix);
itemTo.setIdrClmHdIcn(from.getIdrClmHdIcn());
itemTo.setPriority(index);
to.getAudits().add(itemTo);
}
for (short index = 0; index < from.getMcsLocationsCount(); ++index) {
final String itemNamePrefix = namePrefix + "location" + "-" + index + "-";
final McsLocation itemFrom = from.getMcsLocations(index);
final PreAdjMcsLocation itemTo = transformMessageImpl(itemFrom, transformer, now, itemNamePrefix);
itemTo.setIdrClmHdIcn(from.getIdrClmHdIcn());
itemTo.setPriority(index);
to.getLocations().add(itemTo);
}
}
use of gov.cms.bfd.model.rda.PreAdjMcsDiagnosisCode in project beneficiary-fhir-data by CMSgov.
the class McsClaimTransformer method transformMessageImpl.
private PreAdjMcsDiagnosisCode transformMessageImpl(McsDiagnosisCode from, DataTransformer transformer, Instant now, String namePrefix) {
final PreAdjMcsDiagnosisCode to = new PreAdjMcsDiagnosisCode();
transformer.copyEnumAsString(namePrefix + PreAdjMcsDiagnosisCode.Fields.idrDiagIcdType, true, 1, PreAdjMcsDiagnosisCode_idrDiagIcdType_Extractor.getEnumString(from), to::setIdrDiagIcdType);
transformer.copyString(namePrefix + PreAdjMcsDiagnosisCode.Fields.idrDiagCode, false, 1, 7, from.getIdrDiagCode(), to::setIdrDiagCode);
to.setLastUpdated(now);
return to;
}
Aggregations