diff --git a/CHANGELOG.md b/CHANGELOG.md index 206def87f..ec0fc64bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +### Fixed + +* Updated skeleton processing to recognise `RCMR_IN030000UK07` as a valid full-message skeleton type in addition to + `RCMR_IN030000UK06`, ensuring the service correctly replaces the inbound payload when a UK07 skeleton is received. + * Add Spring retry to MHS queue consumer to facilitate a more reasonable retry delay. ## [3.3.2] - 2026-08-19 diff --git a/gp2gp-translator/src/main/java/uk/nhs/adaptors/pss/translator/service/SkeletonProcessingService.java b/gp2gp-translator/src/main/java/uk/nhs/adaptors/pss/translator/service/SkeletonProcessingService.java index deabc99d7..84157ef50 100644 --- a/gp2gp-translator/src/main/java/uk/nhs/adaptors/pss/translator/service/SkeletonProcessingService.java +++ b/gp2gp-translator/src/main/java/uk/nhs/adaptors/pss/translator/service/SkeletonProcessingService.java @@ -28,12 +28,12 @@ public class SkeletonProcessingService { public InboundMessage updateInboundMessageWithSkeleton(PatientAttachmentLog skeletonLog, - InboundMessage inboundMessage, String conversationId) - throws SAXException, TransformerException { + InboundMessage inboundMessage, + String conversationId) + throws SAXException, TransformerException { // merge skeleton message into original payload - var skeletonAttachment = attachmentHandlerService.getAttachment( - skeletonLog.getFilename(), conversationId); + var skeletonAttachment = attachmentHandlerService.getAttachment(skeletonLog.getFilename(), conversationId); var skeletonFileAsString = new String(skeletonAttachment, StandardCharsets.UTF_8); try { @@ -72,7 +72,9 @@ private String normalizeSkeletonXml(String skeletonFileAsString) { } private boolean isEntireRcmrSkeleton(String normalizedSkeleton) { - return normalizedSkeleton != null && normalizedSkeleton.startsWith(" patientAttachmentLogCaptor; + @Test + public void When_SkeletonStartsWithEhrExtractVersion07_Expect_RecogniseAsWholeMessageSkeleton() throws Exception { + var service = new SkeletonProcessingService( + Mockito.mock(AttachmentHandlerService.class), + Mockito.mock(XmlParseUtilService.class), + Mockito.mock(XPathService.class) + ); + + var method = SkeletonProcessingService.class.getDeclaredMethod("isEntireRcmrSkeleton", String.class); + method.setAccessible(true); + + var result = (boolean) method.invoke(service, "