Skip to content

Commit fecb72f

Browse files
committed
fixing around message ack
Signed-off-by: Neil South <[email protected]>
1 parent 6b47b7f commit fecb72f

File tree

7 files changed

+16
-8
lines changed

7 files changed

+16
-8
lines changed

src/InformaticsGateway/Logging/Log.800.Hl7Service.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,5 +111,8 @@ public static partial class Log
111111
[LoggerMessage(EventId = 829, Level = LogLevel.Trace, Message = "HL7 config Not matching message Id {senderId} configId {configID}")]
112112
public static partial void Hl7NotMatchingConfig(this ILogger logger, string senderId, string configID);
113113

114+
[LoggerMessage(EventId = 830, Level = LogLevel.Error, Message = "Error generating HL7 acknowledgment. for message {message}")]
115+
public static partial void ErrorGeneratingHl7Acknowledgment(this ILogger logger, Exception ex, string message);
116+
114117
}
115118
}

src/InformaticsGateway/Services/HealthLevel7/MllpClient.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,12 @@ private async Task SendAcknowledgment(INetworkStream clientStream, Message messa
159159

160160
if (ShouldSendAcknowledgment(message))
161161
{
162-
var ackMessage = message.GetACK();
162+
var ackMessage = message.GetACK(true);
163+
if (ackMessage is null)
164+
{
165+
_logger.ErrorGeneratingHl7Acknowledgment(new Exception(), message.HL7Message);
166+
return;
167+
}
163168
var ackData = new ReadOnlyMemory<byte>(ackMessage.GetMLLP());
164169
try
165170
{

src/InformaticsGateway/Services/HealthLevel7/MllpExtract.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ private Message RepopulateMessage(Hl7ApplicationConfigEntity config, ExternalApp
150150
{
151151
var newMess = message.HL7Message.Replace(oldvalue, details.PatientId);
152152
message = new Message(newMess);
153-
message.ParseMessage(false);
153+
message.ParseMessage(true);
154154
}
155155
}
156156
else if (tag == DicomTag.StudyInstanceUID)
@@ -162,7 +162,7 @@ private Message RepopulateMessage(Hl7ApplicationConfigEntity config, ExternalApp
162162
{
163163
var newMess = message.HL7Message.Replace(oldvalue, details.StudyInstanceUid);
164164
message = new Message(newMess);
165-
message.ParseMessage(false);
165+
message.ParseMessage(true);
166166
}
167167
}
168168
}

src/InformaticsGateway/Services/HealthLevel7/MllpService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ private async Task EnsureAck(NetworkStream networkStream)
340340
foreach (var message in _rawHl7Messages)
341341
{
342342
var hl7Message = new Message(message);
343-
hl7Message.ParseMessage(false);
343+
hl7Message.ParseMessage(true);
344344
if (hl7Message.MessageStructure == "ACK")
345345
{
346346
return;

src/InformaticsGateway/Test/Services/Common/InputHL7DataPlugInEngineTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ public async Task GivenAnInputHL7DataPlugInEngine_WhenExecutePlugInsIsCalledWith
115115
"called");
116116

117117
var message = new HL7.Dotnetcore.Message(SampleMessage);
118-
message.ParseMessage(false);
118+
message.ParseMessage(true);
119119

120120
await Assert.ThrowsAsync<PlugInInitializationException>(async () => await pluginEngine.ExecutePlugInsAsync(message, dicomInfo, config));
121121
}
@@ -152,7 +152,7 @@ public async Task GivenAnInputHL7DataPlugInEngine_WhenExecutePlugInsIsCalled_Exp
152152
"called");
153153

154154
var message = new HL7.Dotnetcore.Message(SampleMessage);
155-
message.ParseMessage(false);
155+
message.ParseMessage(true);
156156

157157
var (Hl7Message, resultDicomInfo) = await pluginEngine.ExecutePlugInsAsync(message, dicomInfo, config);
158158

src/InformaticsGateway/Test/Services/HealthLevel7/MllpClientTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ namespace Monai.Deploy.InformaticsGateway.Test.Services.HealthLevel7
3333
{
3434
public class MllpClientTest
3535
{
36-
private const string SampleMessage = "MSH|^~\\&|MD|MD HOSPITAL|MD Test|MONAI Deploy|202207130000|SECURITY|MD^A01^ADT_A01|MSG00001|P|2.8|||<ACK>|\r\n";
36+
private const string SampleMessage = "MSH|^~\\&|MD|MD HOSPITAL|MD Test|MONAI Deploy|202207130000|SECURITY|MD^A01^ADT_A01|MSG00001|P|2.8|||<ACK>|\r";
3737

3838
private readonly Mock<ITcpClientAdapter> _tcpClient;
3939
private readonly Hl7Configuration _config;

tests/Integration.Test/StepDefinitions/Hl7StepDefinitions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,7 @@ public async Task ThenEnsureThatExportcompleteMessagesAreSentWithSuscess(string
219219
private async Task SendAcknowledgment(NetworkStream networkStream, HL7.Dotnetcore.Message message, CancellationToken cancellationToken)
220220
{
221221
if (message == null) { return; }
222-
var ackMessage = message.GetACK();
222+
var ackMessage = message.GetACK(true);
223223
var ackData = new ReadOnlyMemory<byte>(ackMessage.GetMLLP());
224224
{
225225
try

0 commit comments

Comments
 (0)