From b36c5a6eb630ada556bb38aeb8e9e91f49c78f9c Mon Sep 17 00:00:00 2001 From: Rahul Ramesh Date: Tue, 13 Aug 2024 08:54:32 +0530 Subject: [PATCH 1/5] [Rahul] | BAH-4061 | Refactor. Change Medication Administration Status Type As VarChar --- .../ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java | 8 ++++---- .../ipd/contract/MedicationAdministrationResponse.java | 2 +- .../controller/IPDMedicationAdministrationController.java | 3 +++ .../ipd/factory/MedicationAdministrationFactory.java | 8 ++++++-- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java b/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java index 231d5b2..002ece8 100644 --- a/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java +++ b/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java @@ -285,12 +285,12 @@ public void shouldGetTheSavedSlotsForPatientByAdministeredTime() { MedicationAdministration medicationAdministration=new MedicationAdministration(); - medicationAdministration.setStatus(testConcept); + medicationAdministration.setStatus("UNKNOWN"); medicationAdministration.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime)); MedicationAdministration savedMedicationAdministration= medicationAdministrationDao.createOrUpdate(medicationAdministration); MedicationAdministration medicationAdministration2=new MedicationAdministration(); - medicationAdministration2.setStatus(testConcept); + medicationAdministration2.setStatus("UNKNOWN"); medicationAdministration2.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime2)); MedicationAdministration savedMedicationAdministration2= medicationAdministrationDao.createOrUpdate(medicationAdministration2); @@ -376,12 +376,12 @@ public void shouldGetTheSavedSlotsForPatientBySubjectReferenceAndAGivenTimeFrame MedicationAdministration medicationAdministration=new MedicationAdministration(); - medicationAdministration.setStatus(testConcept); + medicationAdministration.setStatus("UNKNOWN"); medicationAdministration.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime)); MedicationAdministration savedMedicationAdministration= medicationAdministrationDao.createOrUpdate(medicationAdministration); MedicationAdministration medicationAdministration2=new MedicationAdministration(); - medicationAdministration2.setStatus(testConcept); + medicationAdministration2.setStatus("UNKNOWN"); medicationAdministration2.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime2)); MedicationAdministration savedMedicationAdministration2= medicationAdministrationDao.createOrUpdate(medicationAdministration2); diff --git a/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java b/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java index 4857b4e..1dda1bc 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java +++ b/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java @@ -38,7 +38,7 @@ public static MedicationAdministrationResponse createFrom(org.openmrs.module.ipd if (openmrsMedicationAdministration == null) { return null; } - String status = openmrsMedicationAdministration.getStatus() != null ? openmrsMedicationAdministration.getStatus().getShortNameInLocale(Context.getLocale()).getName() : null; + String status = openmrsMedicationAdministration.getStatus() != null ? openmrsMedicationAdministration.getStatus() : null; String statusReason = openmrsMedicationAdministration.getStatusReason() != null ? openmrsMedicationAdministration.getStatusReason().getDisplayString() : null; String patientUuid = openmrsMedicationAdministration.getPatient() != null ? openmrsMedicationAdministration.getPatient().getUuid() : null; String encounterUuid = openmrsMedicationAdministration.getEncounter() != null ? openmrsMedicationAdministration.getEncounter().getUuid() : null; diff --git a/omod/src/main/java/org/openmrs/module/ipd/controller/IPDMedicationAdministrationController.java b/omod/src/main/java/org/openmrs/module/ipd/controller/IPDMedicationAdministrationController.java index ef626fc..8caa639 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/controller/IPDMedicationAdministrationController.java +++ b/omod/src/main/java/org/openmrs/module/ipd/controller/IPDMedicationAdministrationController.java @@ -13,6 +13,8 @@ import org.openmrs.module.webservices.rest.web.RestConstants; import org.openmrs.module.webservices.rest.web.RestUtil; import org.openmrs.module.webservices.rest.web.v1_0.controller.BaseRestController; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; @@ -30,6 +32,7 @@ public class IPDMedicationAdministrationController extends BaseRestController { private final IPDMedicationAdministrationService ipdMedicationAdministrationService; private final MedicationAdministrationFactory medicationAdministrationFactory; + private static final Logger log = LoggerFactory.getLogger(IPDMedicationAdministrationController.class); @Autowired public IPDMedicationAdministrationController(IPDMedicationAdministrationService ipdMedicationAdministrationService, diff --git a/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java b/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java index 7573ac6..364fc98 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java +++ b/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java @@ -12,7 +12,6 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; -import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -35,7 +34,12 @@ public MedicationAdministration mapRequestToMedicationAdministration(MedicationA MedicationAdministration medicationAdministration = new MedicationAdministration(); if (existingMedicationAdministration ==null || existingMedicationAdministration.getId() == null) { medicationAdministration.setAdministeredDateTime(request.getAdministeredDateTimeAsLocaltime()); - medicationAdministration.setStatus(medicationAdministrationStatusTranslator.toOpenmrsType(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode(request.getStatus()))); + String status = request.getStatus(); + org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus medicationAdministrationStatus = + org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode(status); + + medicationAdministrationStatus = (medicationAdministrationStatus != null) ? medicationAdministrationStatus : org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode("unknown"); + medicationAdministration.setStatus(medicationAdministrationStatusTranslator.toOpenmrsType(medicationAdministrationStatus)); medicationAdministration.setPatient(Context.getPatientService().getPatientByUuid(request.getPatientUuid())); medicationAdministration.setEncounter(Context.getEncounterService().getEncounterByUuid(request.getEncounterUuid())); medicationAdministration.setDrugOrder((DrugOrder) Context.getOrderService().getOrderByUuid(request.getOrderUuid())); From 164e0d8802ad556174cc2ea032e4aab282ce9207 Mon Sep 17 00:00:00 2001 From: Rahul Ramesh Date: Thu, 22 Aug 2024 08:43:56 +0530 Subject: [PATCH 2/5] [Rahul] | BAH-4061 | Refactor. Remove Unused Dependencies --- .../contract/MedicationAdministrationResponse.java | 2 +- .../factory/MedicationAdministrationFactory.java | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java b/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java index 1dda1bc..856a047 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java +++ b/omod/src/main/java/org/openmrs/module/ipd/contract/MedicationAdministrationResponse.java @@ -38,7 +38,7 @@ public static MedicationAdministrationResponse createFrom(org.openmrs.module.ipd if (openmrsMedicationAdministration == null) { return null; } - String status = openmrsMedicationAdministration.getStatus() != null ? openmrsMedicationAdministration.getStatus() : null; + String status = openmrsMedicationAdministration.getStatus().toCode() != null ? openmrsMedicationAdministration.getStatus().toCode() : null; String statusReason = openmrsMedicationAdministration.getStatusReason() != null ? openmrsMedicationAdministration.getStatusReason().getDisplayString() : null; String patientUuid = openmrsMedicationAdministration.getPatient() != null ? openmrsMedicationAdministration.getPatient().getUuid() : null; String encounterUuid = openmrsMedicationAdministration.getEncounter() != null ? openmrsMedicationAdministration.getEncounter().getUuid() : null; diff --git a/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java b/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java index 364fc98..7d08f79 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java +++ b/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java @@ -2,7 +2,6 @@ import org.openmrs.DrugOrder; import org.openmrs.api.context.Context; -import org.openmrs.module.fhir2.apiext.translators.MedicationAdministrationStatusTranslator; import org.openmrs.module.fhir2.apiext.translators.MedicationAdministrationTranslator; import org.openmrs.module.ipd.api.model.MedicationAdministration; import org.openmrs.module.ipd.api.model.MedicationAdministrationNote; @@ -20,13 +19,10 @@ public class MedicationAdministrationFactory { private MedicationAdministrationTranslator medicationAdministrationTranslator; - private MedicationAdministrationStatusTranslator medicationAdministrationStatusTranslator; @Autowired - public MedicationAdministrationFactory(MedicationAdministrationTranslator medicationAdministrationTranslator, - MedicationAdministrationStatusTranslator medicationAdministrationStatusTranslator) { + public MedicationAdministrationFactory(MedicationAdministrationTranslator medicationAdministrationTranslator) { this.medicationAdministrationTranslator = medicationAdministrationTranslator; - this.medicationAdministrationStatusTranslator = medicationAdministrationStatusTranslator; } public MedicationAdministration mapRequestToMedicationAdministration(MedicationAdministrationRequest request, MedicationAdministration existingMedicationAdministration) { @@ -34,12 +30,9 @@ public MedicationAdministration mapRequestToMedicationAdministration(MedicationA MedicationAdministration medicationAdministration = new MedicationAdministration(); if (existingMedicationAdministration ==null || existingMedicationAdministration.getId() == null) { medicationAdministration.setAdministeredDateTime(request.getAdministeredDateTimeAsLocaltime()); - String status = request.getStatus(); - org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus medicationAdministrationStatus = - org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode(status); - + org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus medicationAdministrationStatus = org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode(request.getStatus()); medicationAdministrationStatus = (medicationAdministrationStatus != null) ? medicationAdministrationStatus : org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode("unknown"); - medicationAdministration.setStatus(medicationAdministrationStatusTranslator.toOpenmrsType(medicationAdministrationStatus)); + medicationAdministration.setStatus(medicationAdministrationStatus); medicationAdministration.setPatient(Context.getPatientService().getPatientByUuid(request.getPatientUuid())); medicationAdministration.setEncounter(Context.getEncounterService().getEncounterByUuid(request.getEncounterUuid())); medicationAdministration.setDrugOrder((DrugOrder) Context.getOrderService().getOrderByUuid(request.getOrderUuid())); From 48846e0c2378250b1a2456c2b801768147c2a8a2 Mon Sep 17 00:00:00 2001 From: Rahul Ramesh Date: Thu, 22 Aug 2024 08:44:17 +0530 Subject: [PATCH 3/5] [Rahul] | BAH-4061 | Refactor. Change Status Value In Test --- .../ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java b/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java index 002ece8..e815391 100644 --- a/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java +++ b/api/src/test/java/org/openmrs/module/ipd/api/dao/impl/HibernateSlotDAOIntegrationTest.java @@ -285,12 +285,12 @@ public void shouldGetTheSavedSlotsForPatientByAdministeredTime() { MedicationAdministration medicationAdministration=new MedicationAdministration(); - medicationAdministration.setStatus("UNKNOWN"); + medicationAdministration.setStatus(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.COMPLETED); medicationAdministration.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime)); MedicationAdministration savedMedicationAdministration= medicationAdministrationDao.createOrUpdate(medicationAdministration); MedicationAdministration medicationAdministration2=new MedicationAdministration(); - medicationAdministration2.setStatus("UNKNOWN"); + medicationAdministration2.setStatus(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.COMPLETED); medicationAdministration2.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime2)); MedicationAdministration savedMedicationAdministration2= medicationAdministrationDao.createOrUpdate(medicationAdministration2); @@ -376,12 +376,12 @@ public void shouldGetTheSavedSlotsForPatientBySubjectReferenceAndAGivenTimeFrame MedicationAdministration medicationAdministration=new MedicationAdministration(); - medicationAdministration.setStatus("UNKNOWN"); + medicationAdministration.setStatus(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.COMPLETED); medicationAdministration.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime)); MedicationAdministration savedMedicationAdministration= medicationAdministrationDao.createOrUpdate(medicationAdministration); MedicationAdministration medicationAdministration2=new MedicationAdministration(); - medicationAdministration2.setStatus("UNKNOWN"); + medicationAdministration2.setStatus(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.COMPLETED); medicationAdministration2.setAdministeredDateTime(DateTimeUtil.convertLocalDateTimeDate(medicationAdministeredTime2)); MedicationAdministration savedMedicationAdministration2= medicationAdministrationDao.createOrUpdate(medicationAdministration2); From 668da65f45e7f4f1a2838e8d5c79d3096fe648e8 Mon Sep 17 00:00:00 2001 From: Rahul Ramesh Date: Thu, 22 Aug 2024 11:59:45 +0530 Subject: [PATCH 4/5] [Rahul] | BAH-4061 | Refactor. Remove MedicationAdministration Status Null Check --- .../module/ipd/factory/MedicationAdministrationFactory.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java b/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java index 7d08f79..06bb312 100644 --- a/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java +++ b/omod/src/main/java/org/openmrs/module/ipd/factory/MedicationAdministrationFactory.java @@ -30,9 +30,7 @@ public MedicationAdministration mapRequestToMedicationAdministration(MedicationA MedicationAdministration medicationAdministration = new MedicationAdministration(); if (existingMedicationAdministration ==null || existingMedicationAdministration.getId() == null) { medicationAdministration.setAdministeredDateTime(request.getAdministeredDateTimeAsLocaltime()); - org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus medicationAdministrationStatus = org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode(request.getStatus()); - medicationAdministrationStatus = (medicationAdministrationStatus != null) ? medicationAdministrationStatus : org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode("unknown"); - medicationAdministration.setStatus(medicationAdministrationStatus); + medicationAdministration.setStatus(org.hl7.fhir.r4.model.MedicationAdministration.MedicationAdministrationStatus.fromCode(request.getStatus())); medicationAdministration.setPatient(Context.getPatientService().getPatientByUuid(request.getPatientUuid())); medicationAdministration.setEncounter(Context.getEncounterService().getEncounterByUuid(request.getEncounterUuid())); medicationAdministration.setDrugOrder((DrugOrder) Context.getOrderService().getOrderByUuid(request.getOrderUuid())); From e5cd7e384109d395d0351c959557e81d43c4af95 Mon Sep 17 00:00:00 2001 From: Rahul Ramesh Date: Fri, 23 Aug 2024 16:54:00 +0530 Subject: [PATCH 5/5] [Rahul] | BAH-4061 | Fix. MedicationAdministrationStatus Test Data --- api/src/test/resources/scheduleMedicationsTestData.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/test/resources/scheduleMedicationsTestData.xml b/api/src/test/resources/scheduleMedicationsTestData.xml index 920b1d3..f43448c 100644 --- a/api/src/test/resources/scheduleMedicationsTestData.xml +++ b/api/src/test/resources/scheduleMedicationsTestData.xml @@ -29,8 +29,8 @@ - - + +