diff --git a/Controllers/HL7Controller.cs b/Controllers/HL7Controller.cs index 99c1941..f01a0c1 100644 --- a/Controllers/HL7Controller.cs +++ b/Controllers/HL7Controller.cs @@ -11,8 +11,8 @@ namespace SimpleLIS.Controllers; [Route("api/hl7")] public class HL7Controller : ControllerBase { - private readonly MessageService _messageService; - private readonly PatientService _patientService; + private readonly MessageService msgService; + private readonly PatientService ptService; private readonly IMapper _mapper; public HL7Controller( @@ -20,8 +20,8 @@ public class HL7Controller : ControllerBase PatientService patientService, IMapper mapper) { - _messageService = messageService; - _patientService = patientService; + msgService = messageService; + ptService = patientService; _mapper = mapper; } @@ -30,7 +30,6 @@ public async Task ProcessHL7Message([FromBody] JsonElement payloa { try { - // Create Patient var patient = new Patient { HL7PatientId = payload.GetProperty("hl7PatientId").GetString(), @@ -41,20 +40,17 @@ public async Task ProcessHL7Message([FromBody] JsonElement payloa Messages = new List() }; - // Check for existing patient - var existingPatient = await _patientService.GetPatientByNameAndDOB( + var existingPatient = await ptService.GetPatientByNameAndDOB( patient.FirstName!, patient.LastName!, patient.DateOfBirth ); - patient = existingPatient ?? await _patientService.CreatePatientAsync(patient); - - // Create Message + patient = existingPatient ?? await ptService.CreatePatientAsync(patient); var message = new Message { - ControlId = payload.GetProperty("controlId").GetString(), - MessageType = payload.GetProperty("messageType").GetString(), + ControlId = payload.GetProperty("controlId").GetString() ?? string.Empty, + MessageType = payload.GetProperty("messageType").GetString()?? string.Empty, SendingApp = payload.GetProperty("sendingApp").GetString(), SendingFacility = payload.GetProperty("sendingFacility").GetString(), ReceivingApp = payload.GetProperty("receivingApp").GetString(), @@ -66,14 +62,13 @@ public async Task ProcessHL7Message([FromBody] JsonElement payloa Observations = new List() }; - // Create Observations var observationsArray = payload.GetProperty("observations"); foreach (var obsElement in observationsArray.EnumerateArray()) { var observation = new Observation { - ObservationCode = obsElement.GetProperty("ObservationCode").GetString(), - ObservationValue = obsElement.GetProperty("ObservationValue").GetString(), + ObservationCode = obsElement.GetProperty("ObservationCode").GetString()?? string.Empty, + ObservationValue = obsElement.GetProperty("ObservationValue").GetString()?? string.Empty, Units = obsElement.GetProperty("Units").GetString(), AbnormalFlag = obsElement.GetProperty("AbnormalFlag").GetString(), ResultStatus = obsElement.GetProperty("ResultStatus").GetString() ?? "F", @@ -82,7 +77,7 @@ public async Task ProcessHL7Message([FromBody] JsonElement payloa message.Observations.Add(observation); } - var createdMessage = await _messageService.CreateMessageAsync(message); + var createdMessage = await msgService.CreateMessageAsync(message); return Ok(new { message = _mapper.Map(createdMessage), diff --git a/hl7.db-shm b/hl7.db-shm index 597eee2..499e34d 100644 Binary files a/hl7.db-shm and b/hl7.db-shm differ diff --git a/hl7.db-wal b/hl7.db-wal index dbd2e34..231643f 100644 Binary files a/hl7.db-wal and b/hl7.db-wal differ