Skip to content

Commit fade27e

Browse files
committed
get display for all snomed inputs
also clean up unused method
1 parent 59d40cd commit fade27e

4 files changed

Lines changed: 37 additions & 36 deletions

File tree

backend/src/main/java/gov/cdc/usds/simplereport/api/Translators.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import java.util.UUID;
3232
import java.util.stream.Collectors;
3333
import java.util.stream.IntStream;
34+
import java.util.stream.Stream;
3435
import org.apache.commons.lang3.StringUtils;
3536
import org.json.JSONObject;
3637

@@ -542,6 +543,9 @@ public static PersonName consolidateNameArguments(
542543
"125154007",
543544
new SnomedConceptRecord(
544545
"Specimen unsatisfactory for evaluation", "125154007", TestResult.UNDETERMINED)));
546+
public static final Map<String, SnomedConceptRecord> ALL_ACCEPTED_RESULT_SNOMED_RECORDS =
547+
Stream.concat(ABNORMAL_SNOMEDS.entrySet().stream(), NORMAL_SNOMEDS.entrySet().stream())
548+
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
545549

546550
public static final SnomedConceptRecord DETECTED_SNOMED_CONCEPT =
547551
ABNORMAL_SNOMEDS.get(DETECTED_SNOMED);
@@ -571,15 +575,6 @@ public static Optional<String> toOptional(String str) {
571575
}
572576
}
573577

574-
public static TestResult convertSnomedToResult(String snomed) {
575-
SnomedConceptRecord concept =
576-
RESULTS_SNOMED_CONCEPTS.stream()
577-
.filter(snomedConcept -> snomed.equals(snomedConcept.code()))
578-
.findFirst()
579-
.orElse(INVALID_SNOMED_CONCEPT);
580-
return concept.displayName();
581-
}
582-
583578
public static String convertTestResultToSnomed(TestResult result) {
584579
SnomedConceptRecord concept =
585580
RESULTS_SNOMED_CONCEPTS.stream()
@@ -590,7 +585,7 @@ public static String convertTestResultToSnomed(TestResult result) {
590585
}
591586

592587
public static SnomedConceptRecord getSnomedConceptByCode(String snomedCode) {
593-
return RESULTS_SNOMED_CONCEPTS.stream()
588+
return ALL_ACCEPTED_RESULT_SNOMED_RECORDS.values().stream()
594589
.filter(snomedConcept -> snomedCode.equals(snomedConcept.code()))
595590
.findFirst()
596591
.orElse(null);

backend/src/main/java/gov/cdc/usds/simplereport/validators/CsvValidatorUtils.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package gov.cdc.usds.simplereport.validators;
22

3-
import static gov.cdc.usds.simplereport.api.Translators.ABNORMAL_SNOMEDS;
3+
import static gov.cdc.usds.simplereport.api.Translators.ALL_ACCEPTED_RESULT_SNOMED_RECORDS;
44
import static gov.cdc.usds.simplereport.api.Translators.CANADIAN_STATE_CODES;
55
import static gov.cdc.usds.simplereport.api.Translators.COUNTRY_CODES;
66
import static gov.cdc.usds.simplereport.api.Translators.GENDER_IDENTITIES;
7-
import static gov.cdc.usds.simplereport.api.Translators.NORMAL_SNOMEDS;
87
import static gov.cdc.usds.simplereport.api.Translators.PAST_DATE_FLEXIBLE_FORMATTER;
98
import static gov.cdc.usds.simplereport.api.Translators.STATE_CODES;
109
import static gov.cdc.usds.simplereport.api.converter.FhirConstants.DETECTED_SNOMED;
@@ -195,11 +194,10 @@ public class CsvValidatorUtils {
195194
DETECTED_LITERAL,
196195
INVALID_RESULT_LITERAL);
197196

198-
private static final Set<String> ACCEPTED_TEST_RESULT_SNOMEDS =
199-
concat(NORMAL_SNOMEDS.keySet().stream(), ABNORMAL_SNOMEDS.keySet().stream()).collect(toSet());
200-
201197
private static final Set<String> ALL_ACCEPTED_TEST_RESULT_VALUES =
202-
concat(ACCEPTED_LITERAL_TEST_RESULT_VALUES.stream(), ACCEPTED_TEST_RESULT_SNOMEDS.stream())
198+
concat(
199+
ACCEPTED_LITERAL_TEST_RESULT_VALUES.stream(),
200+
ALL_ACCEPTED_RESULT_SNOMED_RECORDS.keySet().stream())
203201
.collect(toSet());
204202
private static final Set<String> RESIDENCE_VALUES =
205203
Set.of(

backend/src/test/java/gov/cdc/usds/simplereport/api/TranslatorTest.java

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
import static gov.cdc.usds.simplereport.api.Translators.parseUUID;
1313
import static gov.cdc.usds.simplereport.api.Translators.parseUserShortDate;
1414
import static gov.cdc.usds.simplereport.api.Translators.parseYesNoUnk;
15+
import static gov.cdc.usds.simplereport.api.converter.FhirConstants.DETECTED_SNOMED;
16+
import static gov.cdc.usds.simplereport.api.converter.FhirConstants.INVALID_SNOMED;
17+
import static gov.cdc.usds.simplereport.api.converter.FhirConstants.NOT_DETECTED_SNOMED;
18+
import static gov.cdc.usds.simplereport.api.converter.FhirConstants.POSITIVE_SNOMED;
1519
import static org.assertj.core.api.Assertions.assertThat;
1620
import static org.junit.jupiter.api.Assertions.assertEquals;
1721
import static org.junit.jupiter.api.Assertions.assertNotNull;
@@ -20,6 +24,7 @@
2024

2125
import gov.cdc.usds.simplereport.api.model.errors.IllegalGraphqlArgumentException;
2226
import gov.cdc.usds.simplereport.db.model.auxiliary.PersonName;
27+
import gov.cdc.usds.simplereport.db.model.auxiliary.SnomedConceptRecord;
2328
import gov.cdc.usds.simplereport.db.model.auxiliary.TestResult;
2429
import java.time.LocalDate;
2530
import java.util.Collections;
@@ -415,24 +420,6 @@ void badOrganizationType() {
415420
assertEquals("[not-a-type] is not a valid organization type", caught.getMessage());
416421
}
417422

418-
@Test
419-
void convertsPositiveLoincToTestResult() {
420-
TestResult result = Translators.convertSnomedToResult("260373001");
421-
assertEquals(TestResult.POSITIVE, result);
422-
}
423-
424-
@Test
425-
void convertsNegativeLoincToTestResult() {
426-
TestResult result = Translators.convertSnomedToResult("260415000");
427-
assertEquals(TestResult.NEGATIVE, result);
428-
}
429-
430-
@Test
431-
void convertsUnknownLoincToTestResult() {
432-
TestResult result = Translators.convertSnomedToResult("blah");
433-
assertEquals(TestResult.UNDETERMINED, result);
434-
}
435-
436423
@Test
437424
void convertsPositiveTestResultToAppropriateLoinc() {
438425
String loinc = Translators.convertTestResultToSnomed(TestResult.POSITIVE);
@@ -451,6 +438,27 @@ void convertsUnknownTestResultToAppropriateLoinc() {
451438
assertEquals("455371000124106", loinc);
452439
}
453440

441+
@Test
442+
void convertsSnomedCodeToAppropriateSnomedConceptName() {
443+
SnomedConceptRecord result = Translators.getSnomedConceptByCode(POSITIVE_SNOMED);
444+
assertEquals("Positive", result.name());
445+
446+
result = Translators.getSnomedConceptByCode(DETECTED_SNOMED);
447+
assertEquals("Detected", result.name());
448+
449+
result = Translators.getSnomedConceptByCode(NOT_DETECTED_SNOMED);
450+
assertEquals("Not detected", result.name());
451+
452+
result = Translators.getSnomedConceptByCode(INVALID_SNOMED);
453+
assertEquals("Invalid result", result.name());
454+
455+
result = Translators.getSnomedConceptByCode("42425007");
456+
assertEquals("Equivocal", result.name());
457+
458+
result = Translators.getSnomedConceptByCode("720735008");
459+
assertEquals("Presumptive positive", result.name());
460+
}
461+
454462
static class GoodNameArgumentsProvider implements ArgumentsProvider {
455463

456464
@Override

0 commit comments

Comments
 (0)