diff --git a/api/src/main/java/org/openmrs/module/ugandaemr/UgandaEMRConstants.java b/api/src/main/java/org/openmrs/module/ugandaemr/UgandaEMRConstants.java index 48866e57..8a384841 100644 --- a/api/src/main/java/org/openmrs/module/ugandaemr/UgandaEMRConstants.java +++ b/api/src/main/java/org/openmrs/module/ugandaemr/UgandaEMRConstants.java @@ -127,6 +127,7 @@ public class UgandaEMRConstants { public static final String PROCESSED_ORDER_WITH_RESULT_QUERY = "select orders.order_id from orders inner join test_order on (test_order.order_id=orders.order_id) inner join obs on (orders.order_id=obs.order_id) where orders.accession_number!=\"\" and specimen_source!=\"\" AND orders.date_created BETWEEN \"%s\" AND \"%s\""; + public static final String SPECIMEN_MANUAL_UPDATE_QUERY="UPDATE test_order set specimen_source=%s where order_id=%s"; public static final String PROCESSED_ORDER_WITH_RESULT_OF_ENCOUNTER_QUERY = "select orders.order_id from orders inner join test_order on (test_order.order_id=orders.order_id) inner join obs on (orders.order_id=obs.order_id) where orders.accession_number!=\"\" and fulfiller_status=\"COMPLETED\" AND orders.encounter_id=%s"; public static final String PROCESSED_ORDER_WITH_RESULT_FOR_PATIENT_QUERY = "select orders.order_id from orders inner join test_order on (test_order.order_id=orders.order_id) inner join obs on (orders.order_id=obs.order_id) where orders.fulfiller_status=\"COMPLETED\" AND orders.patient_id=%s"; diff --git a/api/src/main/java/org/openmrs/module/ugandaemr/api/impl/UgandaEMRServiceImpl.java b/api/src/main/java/org/openmrs/module/ugandaemr/api/impl/UgandaEMRServiceImpl.java index 6ed0921c..02687c9f 100644 --- a/api/src/main/java/org/openmrs/module/ugandaemr/api/impl/UgandaEMRServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/ugandaemr/api/impl/UgandaEMRServiceImpl.java @@ -2086,7 +2086,15 @@ public TestOrder accessionLabTest(String orderUuid, String accessionNumber, Stri orderService.voidOrder(order, "REVISED with new order " + testOrder.getOrderNumber()); } else { testOrder = (TestOrder) orderService.updateOrderFulfillerStatus(order, Order.FulfillerStatus.IN_PROGRESS, "To be processed", accessionNumber); + updateSpecimenSourceManually(order,specimenSourceUuid); } return testOrder; } + + private void updateSpecimenSourceManually(Order order,String specimenSourceUUID){ + Concept specimenSource=Context.getConceptService().getConceptByUuid(specimenSourceUUID); + if(specimenSource!=null) { + Context.getAdministrationService().executeSQL(String.format(SPECIMEN_MANUAL_UPDATE_QUERY,specimenSource.getConceptId(), order.getOrderId()), false); + } + } }