Skip to content

Commit 8fecb61

Browse files
* Amended test for when Description extension is present with nested display extension when mapping to null flavor codeable concept, to now allow the original text to be taken from the display extension.
* Remove now unneeded function overrides and wrappers which were in place to work around this existing bug. * Refactor `findOriginalText` to use existing method to retrieve original text
1 parent 394b969 commit 8fecb61

File tree

2 files changed

+5
-16
lines changed

2 files changed

+5
-16
lines changed

service/src/main/java/uk/nhs/adaptors/gp2gp/ehr/mapper/CodeableConceptCdMapper.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import java.util.List;
55
import java.util.Optional;
66
import java.util.function.BiFunction;
7-
import java.util.function.Function;
87

98
import org.apache.commons.lang3.StringUtils;
109
import org.hl7.fhir.dstu3.model.AllergyIntolerance;
@@ -153,7 +152,7 @@ public String mapCodeableConceptToCdForBloodPressure(CodeableConcept codeableCon
153152
var mainCode = getSnomedCodeCoding(codeableConcept);
154153

155154
builder.nullFlavor(mainCode.isEmpty());
156-
var originalText = findOriginalTextUsingNestedDisplayExtension(codeableConcept, mainCode);
155+
var originalText = findOriginalText(codeableConcept, mainCode);
157156
originalText.ifPresent(builder::mainOriginalText);
158157

159158
if (mainCode.isPresent()) {
@@ -325,10 +324,7 @@ private List<Coding> getNonSnomedCodeCodings(CodeableConcept codeableConcept) {
325324
return nonSnomedCodeCodings;
326325
}
327326

328-
private Optional<String> findOriginalText(
329-
CodeableConcept codeableConcept,
330-
Optional<Coding> coding,
331-
Function<Coding, Optional<String>> findOriginalTextInDisplayExtension) {
327+
private Optional<String> findOriginalText(CodeableConcept codeableConcept, Optional<Coding> coding) {
332328

333329
if (codeableConcept.hasText()) {
334330
return Optional.ofNullable(codeableConcept.getText());
@@ -339,20 +335,12 @@ private Optional<String> findOriginalText(
339335
return getCodingDisplayName(coding.get());
340336
}
341337

342-
return findOriginalTextInDisplayExtension.apply(coding.get());
338+
return getDisplayTextFromDescriptionExtension(coding.get());
343339
}
344340

345341
return CodeableConceptMappingUtils.extractTextOrCoding(codeableConcept);
346342
}
347343

348-
private Optional<String> findOriginalText(CodeableConcept codeableConcept, Optional<Coding> coding) {
349-
return findOriginalText(codeableConcept, coding, codingParameter -> Optional.empty());
350-
}
351-
352-
private Optional<String> findOriginalTextUsingNestedDisplayExtension(CodeableConcept codeableConcept, Optional<Coding> coding) {
353-
return findOriginalText(codeableConcept, coding, this::getDisplayTextFromDescriptionExtension);
354-
}
355-
356344
private Optional<String> findOriginalTextForAllergy(
357345
CodeableConcept codeableConcept,
358346
Optional<Coding> coding,

service/src/test/java/uk/nhs/adaptors/gp2gp/ehr/mapper/CodeableConceptCdMapperTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,6 +488,7 @@ void When_WithSnomedCodingNoTextNoDisplayWithDescriptionExtensionWithDisplayExte
488488

489489
var expectedOutput = """
490490
<code nullFlavor="UNK">
491+
<originalText>Prothrombin time (observed)</originalText>
491492
</code>""";
492493
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
493494

@@ -508,7 +509,7 @@ void When_WithSnomedCodingNoTextNoDisplayWithNonDescriptionExtension_Expect_Snom
508509
"code": "852471000000107",
509510
"extension": [
510511
{
511-
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-coding-sctdescid",
512+
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-some-other",
512513
"extension": [
513514
{
514515
"url": "descriptionDisplay",

0 commit comments

Comments
 (0)