From b425d575fa07d467f4c6e8f485f78febd95d3413 Mon Sep 17 00:00:00 2001 From: Lubwama Samuel Date: Fri, 17 May 2024 13:30:07 +0300 Subject: [PATCH] U4X-574: Add check on accession api for sample id to be required. (#516) --- .../web/resource/AccessionOrderResource.java | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/ugandaemr/web/resource/AccessionOrderResource.java b/omod/src/main/java/org/openmrs/module/ugandaemr/web/resource/AccessionOrderResource.java index 182e44bab..80527e492 100644 --- a/omod/src/main/java/org/openmrs/module/ugandaemr/web/resource/AccessionOrderResource.java +++ b/omod/src/main/java/org/openmrs/module/ugandaemr/web/resource/AccessionOrderResource.java @@ -1,9 +1,5 @@ package org.openmrs.module.ugandaemr.web.resource; -import org.json.JSONObject; -import org.openmrs.Encounter; -import org.openmrs.Order; -import org.openmrs.Patient; import org.openmrs.TestOrder; import org.openmrs.api.OrderService; import org.openmrs.api.context.Context; @@ -53,24 +49,27 @@ public Object update(String uuid, SimpleObject propertiesToUpdate, RequestContex OrderService orderService = Context.getOrderService(); UgandaEMRService ugandaEMRService = Context.getService(UgandaEMRService.class); PatientQueueingService patientQueueingService = Context.getService(PatientQueueingService.class); - TestOrder testOrder = ugandaEMRService.accessionLabTest(uuid, propertiesToUpdate.get("sampleId").toString(), propertiesToUpdate.get("specimenSourceId").toString(), propertiesToUpdate.get("referenceLab").toString()); - - if (propertiesToUpdate.get("unProcessedOrders").toString().equals(1)) { - patientQueueingService.completePatientQueue(patientQueueingService.getPatientQueueByUuid(propertiesToUpdate.get("patientQueueId").toString())); - } - - AccessionOrder delegate = new AccessionOrder(); - - delegate.setOrder(testOrder); - - ValidateUtil.validate(delegate); - SimpleObject ret = (SimpleObject) ConversionUtil.convertToRepresentation(testOrder, context.getRepresentation()); - // add the 'type' discriminator if we support subclasses - if (hasTypesDefined()) { - ret.add(RestConstants.PROPERTY_FOR_TYPE, getTypeName(delegate)); + if (propertiesToUpdate.get("sampleId") != null || propertiesToUpdate.get("sampleId") != "null" || propertiesToUpdate.get("sampleId") != "") { + TestOrder testOrder = ugandaEMRService.accessionLabTest(uuid, propertiesToUpdate.get("sampleId").toString(), propertiesToUpdate.get("specimenSourceId").toString(), propertiesToUpdate.get("referenceLab").toString()); + + if (propertiesToUpdate.get("unProcessedOrders").toString().equals(1)) { + patientQueueingService.completePatientQueue(patientQueueingService.getPatientQueueByUuid(propertiesToUpdate.get("patientQueueId").toString())); + } + + AccessionOrder delegate = new AccessionOrder(); + + delegate.setOrder(testOrder); + + ValidateUtil.validate(delegate); + SimpleObject ret = (SimpleObject) ConversionUtil.convertToRepresentation(testOrder, context.getRepresentation()); + // add the 'type' discriminator if we support subclasses + if (hasTypesDefined()) { + ret.add(RestConstants.PROPERTY_FOR_TYPE, getTypeName(delegate)); + } + return ret; + }else { + throw new ResourceDoesNotSupportOperationException("The accession number or the barcode or the sample id is required"); } - - return ret; } @Override