Skip to content

Commit

Permalink
Bulk upload fhir mapping bugfix (#7807)
Browse files Browse the repository at this point in the history
* bandaid for bulk upload mapping failures for observation descriptions

* correcting regression and updating method name to reflect refactor

* removing redundant method call
  • Loading branch information
DanielSass authored Jun 17, 2024
1 parent e3f33ff commit 3277f2f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -487,12 +487,10 @@ public static String convertTestResultToSnomed(TestResult result) {
return concept.code();
}

public static String convertConceptCodeToConceptName(String snomedCode) {
SnomedConceptRecord concept =
RESULTS_SNOMED_CONCEPTS.stream()
.filter(snomedConcept -> snomedCode.equals(snomedConcept.code()))
.findFirst()
.orElse(INVALID_SNOMED_CONCEPT);
return concept.name();
public static SnomedConceptRecord getSnomedConceptByCode(String snomedCode) {
return RESULTS_SNOMED_CONCEPTS.stream()
.filter(snomedConcept -> snomedCode.equals(snomedConcept.code()))
.findFirst()
.orElse(null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@
import gov.cdc.usds.simplereport.db.model.auxiliary.AskOnEntrySurvey;
import gov.cdc.usds.simplereport.db.model.auxiliary.PersonName;
import gov.cdc.usds.simplereport.db.model.auxiliary.PhoneType;
import gov.cdc.usds.simplereport.db.model.auxiliary.SnomedConceptRecord;
import gov.cdc.usds.simplereport.db.model.auxiliary.StreetAddress;
import gov.cdc.usds.simplereport.db.model.auxiliary.TestCorrectionStatus;
import gov.cdc.usds.simplereport.service.TestOrderService;
Expand Down Expand Up @@ -698,6 +699,9 @@ public Observation convertToObservation(
Date resultDate) {
if (result != null && result.getDisease() != null) {

SnomedConceptRecord resultConceptRecord =
Translators.getSnomedConceptByCode(result.getResultSNOMED());

return convertToObservation(
ConvertToObservationProps.builder()
.testPerformedLoinc(deviceTypeDisease.getTestPerformedLoincCode())
Expand All @@ -706,8 +710,7 @@ public Observation convertToObservation(
.correctionStatus(correctionStatus)
.correctionReason(correctionReason)
.id(result.getInternalId().toString())
.resultDescription(
Translators.convertConceptCodeToConceptName(result.getResultSNOMED()))
.resultDescription(resultConceptRecord == null ? null : resultConceptRecord.name())
.testkitNameId(testkitNameId)
.deviceModel(deviceModel)
.issued(resultDate)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import gov.cdc.usds.simplereport.db.model.auxiliary.FHIRBundleRecord;
import gov.cdc.usds.simplereport.db.model.auxiliary.PersonName;
import gov.cdc.usds.simplereport.db.model.auxiliary.PhoneType;
import gov.cdc.usds.simplereport.db.model.auxiliary.SnomedConceptRecord;
import gov.cdc.usds.simplereport.db.model.auxiliary.StreetAddress;
import gov.cdc.usds.simplereport.service.ResultsUploaderCachingService;
import java.io.InputStream;
Expand Down Expand Up @@ -415,20 +416,22 @@ private Bundle convertRowToFhirBundle(TestResultRow row, UUID orgId) {
.receivedTime(testingLabSpecimenReceivedDate)
.build());

String testResultSnomed = getTestResultSnomed(row.getTestResult().getValue());
SnomedConceptRecord resultConceptRecord = Translators.getSnomedConceptByCode(testResultSnomed);

var resultObservation =
List.of(
fhirConverter.convertToObservation(
ConvertToObservationProps.builder()
.testPerformedLoinc(row.getTestPerformedCode().getValue())
.diseaseName(diseaseName)
.resultCode(getTestResultSnomed(row.getTestResult().getValue()))
.resultCode(testResultSnomed)
.correctionStatus(
mapTestResultStatusToSRValue(row.getTestResultStatus().getValue()))
.correctionReason(null)
.id(uuidGenerator.randomUUID().toString())
.resultDescription(
Translators.convertConceptCodeToConceptName(
getTestResultSnomed(row.getTestResult().getValue())))
resultConceptRecord == null ? null : resultConceptRecord.name())
.testkitNameId(testKitNameId)
.deviceModel(row.getEquipmentModelName().getValue())
.issued(Date.from(testResultDate.toInstant()))
Expand Down

0 comments on commit 3277f2f

Please sign in to comment.