diff --git a/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GenerateCumulativeSummary.java b/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GenerateCumulativeSummary.java index 5f54304..065165e 100644 --- a/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GenerateCumulativeSummary.java +++ b/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GenerateCumulativeSummary.java @@ -5,12 +5,12 @@ public class GenerateCumulativeSummary { - public static Map> generateCumulativeSummary(List dates, Date startDate, - Date endDate) { + public static Map> generateCumulativeSummary(List dates, Date startDate, Date endDate, + int totalPatients) { String[] months = new String[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; - // Step 1: Calculate the monthly summary for the given dates + // Step 1: Organize patients into their correct month/year Map> yearMonthSummary = new TreeMap<>(); for (Date date : dates) { @@ -37,12 +37,17 @@ public static Map> generateCumulativeSummary(List> generateCumulativeSummary(List> summary = new HashMap<>(); summary.put("groupYear", filteredCumulativeSummary); diff --git a/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GetPatientRegimens.java b/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GetPatientRegimens.java index 05ab644..d1ed0ab 100644 --- a/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GetPatientRegimens.java +++ b/omod/src/main/java/org/openmrs/module/ssemrws/web/constants/GetPatientRegimens.java @@ -106,4 +106,24 @@ private Map prepareResults(Map regimenCounts) { results.put("results", regimenList); return results; } + + public static Date[] getStartAndEndDate(String qStartDate, String qEndDate, SimpleDateFormat dateTimeFormatter) + throws ParseException { + Date endDate = (qEndDate != null) ? dateTimeFormatter.parse(qEndDate) : new Date(); + + // Extend endDate to 23:59:59 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(endDate); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + calendar.set(Calendar.MILLISECOND, 999); + endDate = calendar.getTime(); + + // Set startDate correctly + calendar.set(Calendar.DAY_OF_MONTH, 1); + Date startDate = (qStartDate != null) ? dateTimeFormatter.parse(qStartDate) : calendar.getTime(); + + return new Date[] { startDate, endDate }; + } } diff --git a/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/SSEMRWebServicesController.java b/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/SSEMRWebServicesController.java index d379393..7aba98a 100755 --- a/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/SSEMRWebServicesController.java +++ b/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/SSEMRWebServicesController.java @@ -505,6 +505,12 @@ public Object getPatientsOnAdultRegimenTreatment(HttpServletRequest request, Date startDate = dateTimeFormatter.parse(qStartDate); Date endDate = dateTimeFormatter.parse(qEndDate); + // Add 23 hours to endDate + Calendar calendar = Calendar.getInstance(); + calendar.setTime(endDate); + calendar.add(Calendar.HOUR_OF_DAY, 23); + endDate = calendar.getTime(); + // Get txCurrPatients within the date range List txCurrPatients = getTxCurrMain.getTxCurrPatients(startDate, endDate); @@ -516,9 +522,7 @@ public Object getPatientsOnAdultRegimenTreatment(HttpServletRequest request, Arrays.asList(regimen_4A, regimen_4B, regimen_4C, regimen_4D, regimen_4E, regimen_4F, regimen_4G, regimen_4H, regimen_4I, regimen_4J, regimen_4K, regimen_4L, regimen_5A, regimen_5B, regimen_5C, regimen_5D, regimen_5E, regimen_5F, regimen_5G, regimen_5H, regimen_5I, regimen_5J), - // regimens - ACTIVE_REGIMEN_CONCEPT_UUID, txCurrPatients, true - ); + ACTIVE_REGIMEN_CONCEPT_UUID, txCurrPatients, true); } @RequestMapping(method = RequestMethod.GET, value = "/dashboard/childRegimenTreatment") @@ -531,6 +535,12 @@ public Object getPatientsOnChildRegimenTreatment(HttpServletRequest request, Date startDate = dateTimeFormatter.parse(qStartDate); Date endDate = dateTimeFormatter.parse(qEndDate); + // Add 23 hours to endDate + Calendar calendar = Calendar.getInstance(); + calendar.setTime(endDate); + calendar.add(Calendar.HOUR_OF_DAY, 23); + endDate = calendar.getTime(); + // Get txCurrPatients within the date range List txCurrPatients = getTxCurrMain.getTxCurrPatients(startDate, endDate); @@ -542,9 +552,7 @@ public Object getPatientsOnChildRegimenTreatment(HttpServletRequest request, Arrays.asList(regimen_4A, regimen_4B, regimen_4C, regimen_4D, regimen_4E, regimen_4F, regimen_4G, regimen_4H, regimen_4I, regimen_4J, regimen_4K, regimen_4L, regimen_5A, regimen_5B, regimen_5C, regimen_5D, regimen_5E, regimen_5F, regimen_5G, regimen_5H, regimen_5I, regimen_5J), - // regimens - ACTIVE_REGIMEN_CONCEPT_UUID, txCurrPatients, false - ); + ACTIVE_REGIMEN_CONCEPT_UUID, txCurrPatients, false); } /** diff --git a/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/TxCurrController.java b/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/TxCurrController.java index 5755c38..6ee621d 100644 --- a/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/TxCurrController.java +++ b/omod/src/main/java/org/openmrs/module/ssemrws/web/controller/TxCurrController.java @@ -68,7 +68,7 @@ private Object paginateAndGenerateSummaryForTxCurr(ArrayList GenerateCumulativeSummary.generateCumulativeSummary(enrollmentDates, startDate, endDate)); + totalCount, startDate, endDate, filterCategory, (enrollmentDates) -> GenerateCumulativeSummary + .generateCumulativeSummary(enrollmentDates, startDate, endDate, totalCount)); } }