Skip to content

Commit 0356fd4

Browse files
committed
code and test refactoring
1 parent 399a7a7 commit 0356fd4

File tree

2 files changed

+14
-32
lines changed

2 files changed

+14
-32
lines changed

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

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535

3636
import uk.nhs.adaptors.gp2gp.common.service.ConfidentialityService;
3737
import uk.nhs.adaptors.gp2gp.common.service.RandomIdGeneratorService;
38-
import uk.nhs.adaptors.gp2gp.ehr.exception.EhrMapperException;
3938
import uk.nhs.adaptors.gp2gp.ehr.mapper.CommentType;
4039
import uk.nhs.adaptors.gp2gp.ehr.mapper.IdMapper;
4140
import uk.nhs.adaptors.gp2gp.ehr.mapper.MessageContext;
@@ -169,25 +168,26 @@ private boolean hasObservationsWithoutSpecimen(List<Observation> observations) {
169168
/**
170169
* For correct display in EMIS, any observation without a specimen must be assigned a dummy specimen.
171170
*/
172-
List<Observation> assignDummySpecimensToObservationsWithNoSpecimen(
173-
List<Observation> observations, List<Specimen> specimens) {
171+
List<Observation> assignDummySpecimensToObservationsWithNoSpecimen(List<Observation> observations, List<Specimen> specimens) {
174172

175173
List<Observation> filingComments = getFilingComments(observations);
176174
List<Observation> nonFilingObservations = new ArrayList<>(stripFilingComments(observations));
177175

178-
if (hasObservationsWithoutSpecimen(nonFilingObservations)) {
179-
Specimen dummySpecimen = specimens.stream()
180-
.filter(specimen -> specimen.getId().contains(NOT_PRESENT_SPECIMEN_ID_PREFIX))
181-
.findFirst()
182-
.orElseThrow(() -> new EhrMapperException(
183-
"No not present specimen found with prefix: " + NOT_PRESENT_SPECIMEN_ID_PREFIX));
176+
if (!hasObservationsWithoutSpecimen(nonFilingObservations)) {
177+
nonFilingObservations.addAll(filingComments);
178+
return nonFilingObservations;
179+
}
184180

185-
Reference dummySpecimenReference = new Reference(dummySpecimen.getId());
181+
// The assumption was made that all test results without a specimen will have the same dummy specimen referenced
182+
Specimen dummySpecimen = specimens.stream()
183+
.filter(specimen -> specimen.getId().contains(NOT_PRESENT_SPECIMEN_ID_PREFIX))
184+
.toList().getFirst();
186185

187-
nonFilingObservations.stream()
188-
.filter(obs -> !obs.hasSpecimen())
189-
.forEach(obs -> obs.setSpecimen(dummySpecimenReference));
190-
}
186+
Reference dummySpecimenReference = new Reference(dummySpecimen.getId());
187+
188+
nonFilingObservations.stream()
189+
.filter(obs -> !obs.hasSpecimen() && !isFilingComment(obs))
190+
.forEach(obs -> obs.setSpecimen(dummySpecimenReference));
191191

192192
nonFilingObservations.addAll(filingComments);
193193
return nonFilingObservations;

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

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package uk.nhs.adaptors.gp2gp.ehr.mapper.diagnosticreport;
22

33
import static org.assertj.core.api.Assertions.assertThat;
4-
import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy;
54
import static org.junit.jupiter.api.Assertions.assertAll;
65
import static org.mockito.ArgumentMatchers.any;
76
import static org.mockito.Mockito.when;
@@ -32,7 +31,6 @@
3231
import org.mockito.quality.Strictness;
3332
import org.mockito.stubbing.Answer;
3433

35-
import uk.nhs.adaptors.gp2gp.ehr.exception.EhrMapperException;
3634
import uk.nhs.adaptors.gp2gp.ehr.mapper.AgentDirectory;
3735
import uk.nhs.adaptors.gp2gp.ehr.mapper.CodeableConceptCdMapper;
3836
import uk.nhs.adaptors.gp2gp.ehr.mapper.IdMapper;
@@ -154,22 +152,6 @@ void shouldAssignDummySpecimenToObservationsWithoutSpecimen() {
154152
assertThat(result.get(1).getSpecimen().getReference()).contains("real-specimen");
155153
}
156154

157-
@Test
158-
void shouldThrowIfNoDummySpecimenFound() {
159-
160-
Observation obsWithoutSpecimen = new Observation();
161-
List<Observation> observations = List.of(obsWithoutSpecimen);
162-
163-
Specimen realSpecimen = new Specimen();
164-
realSpecimen.setId("real-specimen");
165-
List<Specimen> specimens = List.of(realSpecimen);
166-
167-
assertThatThrownBy(() ->
168-
mapper.assignDummySpecimensToObservationsWithNoSpecimen(observations, specimens))
169-
.isInstanceOf(EhrMapperException.class)
170-
.hasMessageContaining(NOT_PRESENT_SPECIMEN_ID_PREFIX);
171-
}
172-
173155
@ParameterizedTest
174156
@MethodSource("resourceFileParams")
175157
void When_MappingDiagnosticReportJson_Expect_CompoundStatementXmlOutput(String inputJson, String outputXml) {

0 commit comments

Comments
 (0)