Skip to content

Commit 67f281f

Browse files
* Add additional test for populating original text when codeable concept has only non-snomed codes.
1 parent 831e89f commit 67f281f

File tree

1 file changed

+61
-88
lines changed

1 file changed

+61
-88
lines changed

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

Lines changed: 61 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,6 @@ void When_MappingStubbedCodeableConceptAsActiveAllergy_Expect_HL7CdObjectXml(Str
230230

231231
@Nested
232232
class WhenMappingStubbedCodeableConceptForBloodPressure {
233-
234233
@Test
235234
void When_WithoutCoding_Expect_NullFlavorCdXmlWithoutOriginalText() {
236235
var inputJson = """
@@ -247,31 +246,6 @@ void When_WithoutCoding_Expect_NullFlavorCdXmlWithoutOriginalText() {
247246
assertThat(outputMessage).isEqualToIgnoringWhitespace(expectedOutput);
248247
}
249248

250-
@Test
251-
void When_WithNonSnomedCodingWithDisplay_Expect_NullFlavorCdXmlWithOriginalText() {
252-
var inputJson = """
253-
{
254-
"resourceType": "Observation",
255-
"code": {
256-
"coding": [
257-
{
258-
"display": "Prothrombin time"
259-
}
260-
]
261-
}
262-
}""";
263-
264-
var expectedOutput = """
265-
<code nullFlavor="UNK">
266-
<originalText>Prothrombin time</originalText>
267-
</code>""";
268-
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
269-
270-
var outputMessage = codeableConceptCdMapper.mapCodeableConceptToCdForBloodPressure(codeableConcept);
271-
272-
assertThat(outputMessage).isEqualToIgnoringWhitespace(expectedOutput);
273-
}
274-
275249
@Test
276250
void When_WithSnomedCodingWithDisplay_Expect_SnomedCdXmlWithOriginalText() {
277251
var inputJson = """
@@ -298,33 +272,6 @@ void When_WithSnomedCodingWithDisplay_Expect_SnomedCdXmlWithOriginalText() {
298272
assertThat(outputMessage).isEqualToIgnoringWhitespace(expectedOutput);
299273
}
300274

301-
@Test
302-
void When_WithSnomedCodingWithoutCode_Expect_SnomedCdXmlWithOriginalTextFromText() {
303-
var inputJson = """
304-
{
305-
"resourceType": "Observation",
306-
"code": {
307-
"coding": [
308-
{
309-
"system": "http://snomed.info/sct",
310-
"display": "Prothrombin time",
311-
"code": "852471000000107"
312-
}
313-
],
314-
"text": "Prothrombin time observed"
315-
}
316-
}""";
317-
var expectedOutput = """
318-
<code code="852471000000107" codeSystem="2.16.840.1.113883.2.1.3.2.4.15" displayName="Prothrombin time">
319-
<originalText>Prothrombin time observed</originalText>
320-
</code>""";
321-
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
322-
323-
var outputMessage = codeableConceptCdMapper.mapCodeableConceptToCdForBloodPressure(codeableConcept);
324-
325-
assertThat(outputMessage).isEqualToIgnoringWhitespace(expectedOutput);
326-
}
327-
328275
@Test
329276
void When_WithSnomedCodingWithoutDisplayWithDescriptionExtensionWithoutDisplay_Expect_SnomedCdXml() {
330277
var inputJson = """
@@ -397,7 +344,7 @@ <originalText>Prothrombin time (observed)</originalText>
397344
}
398345

399346
@Test
400-
void When_WithoutSnomedCodingWithText_Expect_NullFlavorUnkCDWithOriginalTextFromText() {
347+
void When_WithNonSnomedCodingWithText_Expect_NullFlavorUnkCDWithOriginalTextFromText() {
401348
var inputJson = """
402349
{
403350
"resourceType": "Observation",
@@ -423,6 +370,33 @@ <originalText>Prothrombin time (observed)</originalText>
423370
assertThat(outputMessage).isEqualToIgnoringWhitespace(expectedOutput);
424371
}
425372

373+
@Test
374+
void When_WithNonSnomedCodingNoTextWithDisplay_Expect_NullFlavorCdXmlWithOriginalTextFromDisplay() {
375+
var inputJson = """
376+
{
377+
"resourceType": "Observation",
378+
"code": {
379+
"coding": [
380+
{
381+
"system": "http://read.info/readv2",
382+
"code": "42Q5.00",
383+
"display": "Prothrombin time"
384+
}
385+
]
386+
}
387+
}""";
388+
389+
var expectedOutput = """
390+
<code nullFlavor="UNK">
391+
<originalText>Prothrombin time</originalText>
392+
</code>""";
393+
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
394+
395+
var outputMessage = codeableConceptCdMapper.mapCodeableConceptToCdForBloodPressure(codeableConcept);
396+
397+
assertThat(outputMessage).isEqualToIgnoringWhitespace(expectedOutput);
398+
}
399+
426400
@Test
427401
void When_WithNonSnomedCodingWithDescriptionExtensionWithoutDisplay_Expect_SnomedCdXmlWithOriginalTextFromDisplay() {
428402
var inputJson = """
@@ -500,24 +474,23 @@ <originalText>Prothrombin time (observed)</originalText>
500474

501475
@Nested
502476
class WhenMappingToNullFlavorCodeableConcept {
503-
504477
@Test
505-
void When_WithNonSnomedCodingWithNoDisplayNoTextAndDescriptionExtensionNoDisplayExtension_Expect_SnomedCdXmlWithoutOriginalText() {
478+
void When_WithSnomedCodingNoTextNoDisplayWithDescriptionExtensionWithDisplayExtension_Expect_SnomedCdXmlWithoutOriginalText() {
506479
var inputJson = """
507480
{
508481
"resourceType": "Observation",
509482
"code": {
510483
"coding": [
511484
{
512-
"system": "http://read.info/readv2",
513-
"code": "42Q5.00",
485+
"system": "http://snomed.info/sct",
486+
"code": "852471000000107",
514487
"extension": [
515488
{
516489
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-coding-sctdescid",
517490
"extension": [
518491
{
519-
"url": "descriptionId",
520-
"valueString": "123456789"
492+
"url": "descriptionDisplay",
493+
"valueString": "Prothrombin time (observed)"
521494
}
522495
]
523496
}
@@ -538,7 +511,7 @@ void When_WithNonSnomedCodingWithNoDisplayNoTextAndDescriptionExtensionNoDisplay
538511
}
539512

540513
@Test
541-
void When_WithSnomedCodingNoTextNoDisplayWithDescriptionExtensionWithDisplayExtension_Expect_SnomedCdXmlWithoutOriginalText() {
514+
void When_WithSnomedCodingNoTextNoDisplayWithNonDescriptionExtension_Expect_SnomedCdXmlWithoutOriginalText() {
542515
var inputJson = """
543516
{
544517
"resourceType": "Observation",
@@ -574,33 +547,25 @@ void When_WithSnomedCodingNoTextNoDisplayWithDescriptionExtensionWithDisplayExte
574547
}
575548

576549
@Test
577-
void When_WithSnomedCodingNoTextNoDisplayWithNonDescriptionExtension_Expect_SnomedCdXmlWithoutOriginalText() {
550+
void When_WithNonSnomedCodingWithText_Expect_SnomedCdXmlWithOriginalTexFromText() {
578551
var inputJson = """
579552
{
580553
"resourceType": "Observation",
581554
"code": {
582555
"coding": [
583556
{
584-
"system": "http://snomed.info/sct",
585-
"code": "852471000000107",
586-
"extension": [
587-
{
588-
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-coding-sctdescid",
589-
"extension": [
590-
{
591-
"url": "descriptionDisplay",
592-
"valueString": "Prothrombin time (observed)"
593-
}
594-
]
595-
}
596-
]
557+
"system": "http://read.info/readv2",
558+
"code": "42Q5.00",
559+
"display": "Observed Prothrombin time"
597560
}
598-
]
561+
],
562+
"text": "Prothrombin time (observed)"
599563
}
600564
}""";
601565

602566
var expectedOutput = """
603567
<code nullFlavor="UNK">
568+
<originalText>Prothrombin time (observed)</originalText>
604569
</code>""";
605570
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
606571

@@ -610,7 +575,7 @@ void When_WithSnomedCodingNoTextNoDisplayWithNonDescriptionExtension_Expect_Snom
610575
}
611576

612577
@Test
613-
void When_WithNonSnomedCodingWithText_Expect_SnomedCdXmlWithOriginalTexFromText() {
578+
void When_WithNonSnomedCodingWithNoTextWithNonDescriptionExtension_Expect_SnomedCdXmlWithOriginalTextFromDisplay() {
614579
var inputJson = """
615580
{
616581
"resourceType": "Observation",
@@ -619,16 +584,26 @@ void When_WithNonSnomedCodingWithText_Expect_SnomedCdXmlWithOriginalTexFromText(
619584
{
620585
"system": "http://read.info/readv2",
621586
"code": "42Q5.00",
622-
"display": "Observed Prothrombin time"
587+
"display": "Observed Prothrombin time",
588+
"extension": [
589+
{
590+
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-some-otherUrl",
591+
"extension": [
592+
{
593+
"url": "descriptionDisplay",
594+
"valueString": "Prothrombin time"
595+
}
596+
]
597+
}
598+
]
623599
}
624-
],
625-
"text": "Prothrombin time (observed)"
600+
]
626601
}
627602
}""";
628603

629604
var expectedOutput = """
630605
<code nullFlavor="UNK">
631-
<originalText>Prothrombin time (observed)</originalText>
606+
<originalText>Observed Prothrombin time</originalText>
632607
</code>""";
633608
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
634609

@@ -638,7 +613,7 @@ <originalText>Prothrombin time (observed)</originalText>
638613
}
639614

640615
@Test
641-
void When_WithNonSnomedCodingWithNoTextWithNonDescriptionExtension_Expect_SnomedCdXmlWithOriginalTextFromDisplay() {
616+
void When_WithNonSnomedCodingWithNoDisplayNoTextWithDescriptionExtNoDisplayExt_Expect_SnomedCdXmlWithoutOriginalText() {
642617
var inputJson = """
643618
{
644619
"resourceType": "Observation",
@@ -647,14 +622,13 @@ void When_WithNonSnomedCodingWithNoTextWithNonDescriptionExtension_Expect_Snomed
647622
{
648623
"system": "http://read.info/readv2",
649624
"code": "42Q5.00",
650-
"display": "Observed Prothrombin time",
651625
"extension": [
652626
{
653-
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-some-otherUrl",
627+
"url": "https://fhir.nhs.uk/STU3/StructureDefinition/Extension-coding-sctdescid",
654628
"extension": [
655629
{
656-
"url": "descriptionDisplay",
657-
"valueString": "Prothrombin time"
630+
"url": "descriptionId",
631+
"valueString": "123456789"
658632
}
659633
]
660634
}
@@ -666,7 +640,6 @@ void When_WithNonSnomedCodingWithNoTextWithNonDescriptionExtension_Expect_Snomed
666640

667641
var expectedOutput = """
668642
<code nullFlavor="UNK">
669-
<originalText>Observed Prothrombin time</originalText>
670643
</code>""";
671644
var codeableConcept = fhirParseService.parseResource(inputJson, Observation.class).getCode();
672645

@@ -676,7 +649,7 @@ void When_WithNonSnomedCodingWithNoTextWithNonDescriptionExtension_Expect_Snomed
676649
}
677650

678651
@Test
679-
void When_WithNonSnomedCodingWithNoTextWithDescriptionExtensionNoDisplayExtension_Expect_SnomedCdXmlWithOriginalTextFromDisplay() {
652+
void When_WithNonSnomedCodingWithDisplayNoTextWithDescriptionExtNoDisplayExt_Expect_SnomedCdXmlWithOriginalTextFromDisplay() {
680653
var inputJson = """
681654
{
682655
"resourceType": "Observation",

0 commit comments

Comments
 (0)