@@ -328,43 +328,29 @@ private List<Coding> getNonSnomedCodeCodings(CodeableConcept codeableConcept) {
328328 private Optional <String > findOriginalText (
329329 CodeableConcept codeableConcept ,
330330 Optional <Coding > coding ,
331- Function <Coding , List <Extension >> getOriginalTextFromDescriptionExtension ) {
331+ Function <Coding , Optional <String >> findOriginalTextInDisplayExtension ) {
332+
333+ if (codeableConcept .hasText ()) {
334+ return Optional .ofNullable (codeableConcept .getText ());
335+ }
332336
333337 if (coding .isPresent ()) {
334- if (codeableConcept .hasText ()) {
335- return Optional .ofNullable (codeableConcept .getText ());
336- } else {
337- if (coding .get ().hasDisplay ()) {
338- return getCodingDisplayName (coding .get ());
339- } else {
340- var extension = getOriginalTextFromDescriptionExtension .apply (coding .get ());
341- return extension .stream ()
342- .filter (displayExtension -> DESCRIPTION_DISPLAY .equals (displayExtension .getUrl ()))
343- .map (extension1 -> extension1 .getValue ().toString ())
344- .findFirst ();
345- }
338+ if (coding .get ().hasDisplay ()) {
339+ return getCodingDisplayName (coding .get ());
346340 }
347- } else {
348- return CodeableConceptMappingUtils . extractTextOrCoding ( codeableConcept );
341+
342+ return findOriginalTextInDisplayExtension . apply ( coding . get () );
349343 }
344+
345+ return CodeableConceptMappingUtils .extractTextOrCoding (codeableConcept );
350346 }
351347
352348 private Optional <String > findOriginalText (CodeableConcept codeableConcept , Optional <Coding > coding ) {
353- return findOriginalText (
354- codeableConcept ,
355- coding ,
356- codingParameter -> retrieveDescriptionExtension (codingParameter ).stream ().toList ()
357- );
349+ return findOriginalText (codeableConcept , coding , codingParameter -> Optional .empty ());
358350 }
359351
360352 private Optional <String > findOriginalTextUsingNestedDisplayExtension (CodeableConcept codeableConcept , Optional <Coding > coding ) {
361- return findOriginalText (
362- codeableConcept ,
363- coding ,
364- codingParameter -> retrieveDescriptionExtension (codingParameter )
365- .map (Extension ::getExtension )
366- .orElseGet (Collections ::emptyList )
367- );
353+ return findOriginalText (codeableConcept , coding , this ::getDisplayTextFromDescriptionExtension );
368354 }
369355
370356 private Optional <String > findOriginalTextForAllergy (
@@ -377,13 +363,13 @@ private Optional<String> findOriginalTextForAllergy(
377363 }
378364
379365 if (ACTIVE_CLINICAL_STATUS .equals (allergyIntoleranceClinicalStatus .toCode ())) {
380- return getOriginalTextForActiveAllergy (coding .get ());
366+ return getDisplayTextFromDescriptionExtension (coding .get ());
381367 }
382368
383369 return CodeableConceptMappingUtils .extractTextOrCoding (codeableConcept );
384370 }
385371
386- private Optional <String > getOriginalTextForActiveAllergy (Coding coding ) {
372+ private Optional <String > getDisplayTextFromDescriptionExtension (Coding coding ) {
387373 return retrieveDescriptionExtension (coding )
388374 .flatMap (value -> value
389375 .getExtension ().stream ()
0 commit comments