From 25e378549c097faaa58a38eb759bc497fc32481d Mon Sep 17 00:00:00 2001 From: Cosmin Ioan Date: Tue, 19 Sep 2023 10:25:06 -0400 Subject: [PATCH 1/3] HAI-753, add warning on the patient header when HIV program location is different than the login location --- .../apploader/CustomAppLoaderConstants.java | 3 ++ .../apploader/CustomAppLoaderFactory.java | 13 ++++++ .../module/pihcore/config/Components.java | 1 + ...gramLocationWarningFragmentController.java | 41 +++++++++++++++++++ .../fragments/hiv/programLocationWarning.gsp | 4 ++ 5 files changed, 62 insertions(+) create mode 100644 omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java create mode 100644 omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp diff --git a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java index 66bf5a52a..8c397a933 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java +++ b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java @@ -267,6 +267,8 @@ public static final class Extensions { public static final String DEATH_CERTIFICATE_HEADER_EXTENSION = "pih.header.deathCertificate"; + public static final String HIV_PROGRAM_LOCATION_WARNING_HEADER_EXTENSION = "pih.header.hivProgramLocationWarning"; + public static final String REPORTING_AD_HOC_ANALYSIS = "reportingui.dataExports.adHoc"; public static final String ALLERGY_UI_VISIT_NOTE_NEXT_SUPPORT = "allergyui.allergires.visitNoteNextSupport"; @@ -295,6 +297,7 @@ public static final class ExtensionPoints { public static final String HOME_PAGE = "org.openmrs.referenceapplication.homepageLink"; public static final String PROGRAM_SUMMARY_LIST = Apps.PROGRAM_SUMMARY_LIST + ".apps"; public static final String DEATH_INFO_HEADER = "patientHeader.deathInfo"; + public static final String SECOND_LINE_HEADER = "patientHeader.secondLineFragments"; public static final String DASHBOARD_TAB = "patientDashboard.tabs"; public static final String DASHBOARD_INCLUDE_FRAGMENTS = "patientDashboard.includeFragments"; public static final String SYSTEM_ADMINISTRATION_PAGE = "systemAdministration.apps"; diff --git a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java index c30d960b8..bd090b0c1 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java +++ b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java @@ -261,6 +261,10 @@ private void loadAppsAndExtensions() throws UnsupportedEncodingException { enableDeathCertificate(); } + if (config.isComponentEnabled(Components.HIV_PROGRAM_LOCATION_WARNING)) { + enableHivProgramLocationWarning(); + } + if (config.isComponentEnabled(Components.RADIOLOGY)) { enableRadiology(); } @@ -860,6 +864,15 @@ private void enableADT() { findExtensionById(CustomAppLoaderConstants.EncounterTemplates.NO_DETAILS), "fas fa-fw fa-sign-out-alt", null, true, null, null); } + private void enableHivProgramLocationWarning() { + extensions.add(fragmentExtension(CustomAppLoaderConstants.Extensions.HIV_PROGRAM_LOCATION_WARNING_HEADER_EXTENSION, + "pihcore", + "hiv/programLocationWarning", + null, + CustomAppLoaderConstants.ExtensionPoints.SECOND_LINE_HEADER, + null)); + + } private void enableDeathCertificate() { extensions.add(overallAction(CustomAppLoaderConstants.Extensions.DEATH_CERTIFICATE_OVERALL_ACTION, diff --git a/api/src/main/java/org/openmrs/module/pihcore/config/Components.java b/api/src/main/java/org/openmrs/module/pihcore/config/Components.java index 138ab4989..a90c82001 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/config/Components.java +++ b/api/src/main/java/org/openmrs/module/pihcore/config/Components.java @@ -18,6 +18,7 @@ public class Components { public static final String NURSE_CONSULT = "nurseConsult"; public static final String ADT = "adt"; public static final String DEATH_CERTIFICATE = "deathCertificate"; + public static final String HIV_PROGRAM_LOCATION_WARNING = "hivProgramLocationWarning"; public static final String RADIOLOGY = "radiology"; public static final String DISPENSING = "dispensing"; // This is for the legacy dispensing form functionality public static final String MEDICATION_DISPENSING = "medicationDispensing"; // This is for the new dispensing MFE diff --git a/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java b/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java new file mode 100644 index 000000000..8273dedfb --- /dev/null +++ b/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java @@ -0,0 +1,41 @@ +package org.openmrs.module.pihcore.fragment.controller.hiv; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openmrs.Patient; +import org.openmrs.PatientProgram; +import org.openmrs.Program; +import org.openmrs.api.ProgramWorkflowService; +import org.openmrs.module.appui.UiSessionContext; +import org.openmrs.module.emrapi.patient.PatientDomainWrapper; +import org.openmrs.module.pihcore.PihEmrConfigConstants; +import org.openmrs.ui.framework.UiUtils; +import org.openmrs.ui.framework.annotation.FragmentParam; +import org.openmrs.ui.framework.annotation.SpringBean; +import org.openmrs.ui.framework.fragment.FragmentModel; + +import java.util.List; + +public class ProgramLocationWarningFragmentController { + + protected final Log log = LogFactory.getLog(getClass()); + + public void controller(FragmentModel model, + @FragmentParam(required = false, value="patient") Object patientObject, + @SpringBean("programWorkflowService") ProgramWorkflowService programWorkflowService, + UiSessionContext uiSessionContext, + UiUtils ui) { + + model.addAttribute("sessionLocation", uiSessionContext.getSessionLocation()); + if (patientObject != null ) { + Patient patient = ((PatientDomainWrapper) patientObject).getPatient(); + Program hivProgram = programWorkflowService.getProgramByUuid(PihEmrConfigConstants.PROGRAM_HIV_UUID); + if (patient !=null && hivProgram !=null) { + List patientPrograms = programWorkflowService.getPatientPrograms(patient, hivProgram, null, null, null, null, false); + if (patientPrograms != null && patientPrograms.size() > 0 ) { + model.addAttribute("hivProgramLocation", patientPrograms.get(0).getLocation()); + } + } + } + } +} diff --git a/omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp b/omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp new file mode 100644 index 000000000..6053d722f --- /dev/null +++ b/omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp @@ -0,0 +1,4 @@ +
+

Session Location: ${sessionLocation.name}


+

HIV Program Location: ${hivProgramLocation.name}

+
From 11e7041e0f660f6af0f8df1d3acdb2cec4aff74a Mon Sep 17 00:00:00 2001 From: Dutervil Date: Mon, 25 Sep 2023 12:43:46 -0400 Subject: [PATCH 2/3] trying to display alert message --- .../apploader/CustomAppLoaderConstants.java | 2 + .../apploader/CustomAppLoaderFactory.java | 12 ++++++ .../module/pihcore/config/Components.java | 1 + ...gramLocationWarningFragmentController.java | 41 +++++++++++++++++++ .../fragments/hiv/programLocationWarning.gsp | 4 ++ 5 files changed, 60 insertions(+) create mode 100644 omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java create mode 100644 omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp diff --git a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java index 66bf5a52a..0568d0046 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java +++ b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java @@ -236,6 +236,7 @@ public static final class Extensions { public static final String CREATE_RETROSPECTIVE_VISIT_OVERALL_ACTION = "coreapps.createRetrospectiveVisit"; public static final String MERGE_VISITS_OVERALL_ACTION = "coreapps.mergeVisits"; public static final String DEATH_CERTIFICATE_OVERALL_ACTION = "pih.haiti.deathCertificate"; + public static final String HIV_PROGRAM_LOCATION_WARNING_HEADER_EXTENSION = "pih.header.hivProgramLocationWarning"; public static final String CHART_SEARCH_OVERALL_ACTION = "chartsearch.overallAction"; public static final String PATIENT_DOCUMENTS_OVERALL_ACTION = "attachments.patientDocuments.overallAction"; public static final String ORDER_LABS_OVERALL_ACTION = "orderentryowa.orderLabs"; @@ -295,6 +296,7 @@ public static final class ExtensionPoints { public static final String HOME_PAGE = "org.openmrs.referenceapplication.homepageLink"; public static final String PROGRAM_SUMMARY_LIST = Apps.PROGRAM_SUMMARY_LIST + ".apps"; public static final String DEATH_INFO_HEADER = "patientHeader.deathInfo"; + public static final String SECOND_LINE_HEADER = "patientHeader.secondLineFragments"; public static final String DASHBOARD_TAB = "patientDashboard.tabs"; public static final String DASHBOARD_INCLUDE_FRAGMENTS = "patientDashboard.includeFragments"; public static final String SYSTEM_ADMINISTRATION_PAGE = "systemAdministration.apps"; diff --git a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java index c30d960b8..9beae8f01 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java +++ b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java @@ -260,6 +260,9 @@ private void loadAppsAndExtensions() throws UnsupportedEncodingException { if (config.isComponentEnabled(Components.DEATH_CERTIFICATE)) { enableDeathCertificate(); } + if (config.isComponentEnabled(Components.HIV_PROGRAM_LOCATION_WARNING)) { + enableHivProgramLocationWarning(); + } if (config.isComponentEnabled(Components.RADIOLOGY)) { enableRadiology(); @@ -756,6 +759,15 @@ private void enableConsult() { } } + private void enableHivProgramLocationWarning() { + extensions.add(fragmentExtension(CustomAppLoaderConstants.Extensions.HIV_PROGRAM_LOCATION_WARNING_HEADER_EXTENSION, + "pihcore", + "hiv/programLocationWarning", + null, + CustomAppLoaderConstants.ExtensionPoints.SECOND_LINE_HEADER, + null)); + + } private void enableConsultInitial() { extensions.add(visitAction(CustomAppLoaderConstants.Extensions.CONSULT_NOTE_INITIAL_VISIT_ACTION, "ui.i18n.EncounterType.name." + PihEmrConfigConstants.ENCOUNTERTYPE_CONSULTATION_INITIAL_UUID, diff --git a/api/src/main/java/org/openmrs/module/pihcore/config/Components.java b/api/src/main/java/org/openmrs/module/pihcore/config/Components.java index 138ab4989..a90c82001 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/config/Components.java +++ b/api/src/main/java/org/openmrs/module/pihcore/config/Components.java @@ -18,6 +18,7 @@ public class Components { public static final String NURSE_CONSULT = "nurseConsult"; public static final String ADT = "adt"; public static final String DEATH_CERTIFICATE = "deathCertificate"; + public static final String HIV_PROGRAM_LOCATION_WARNING = "hivProgramLocationWarning"; public static final String RADIOLOGY = "radiology"; public static final String DISPENSING = "dispensing"; // This is for the legacy dispensing form functionality public static final String MEDICATION_DISPENSING = "medicationDispensing"; // This is for the new dispensing MFE diff --git a/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java b/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java new file mode 100644 index 000000000..62a5c6d0f --- /dev/null +++ b/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java @@ -0,0 +1,41 @@ +package org.openmrs.module.pihcore.fragment.controller.hiv; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openmrs.Patient; +import org.openmrs.PatientProgram; +import org.openmrs.Program; +import org.openmrs.api.ProgramWorkflowService; +import org.openmrs.module.appui.UiSessionContext; +import org.openmrs.module.emrapi.patient.PatientDomainWrapper; +import org.openmrs.module.pihcore.PihEmrConfigConstants; +import org.openmrs.ui.framework.UiUtils; +import org.openmrs.ui.framework.annotation.FragmentParam; +import org.openmrs.ui.framework.annotation.SpringBean; +import org.openmrs.ui.framework.fragment.FragmentModel; + +import java.util.List; + +public class ProgramLocationWarningFragmentController { + + protected final Log log = LogFactory.getLog(getClass()); + + public void controller(FragmentModel model, + @FragmentParam(required = false, value="patient") Object patientObject, + @SpringBean("programWorkflowService") ProgramWorkflowService programWorkflowService, + UiSessionContext uiSessionContext, + UiUtils ui) { + + model.addAttribute("sessionLocation", uiSessionContext.getSessionLocation()); + if (patientObject != null ) { + Patient patient = ((PatientDomainWrapper) patientObject).getPatient(); + Program hivProgram = programWorkflowService.getProgramByUuid(PihEmrConfigConstants.PROGRAM_HIV_UUID); + if (patient !=null && hivProgram !=null) { + List patientPrograms = programWorkflowService.getPatientPrograms(patient, hivProgram, null, null, null, null, false); + if (patientPrograms != null && patientPrograms.size() > 0 ) { + model.addAttribute("hivProgramLocation", patientPrograms.get(0).getLocation()); + } + } + } + } +} \ No newline at end of file diff --git a/omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp b/omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp new file mode 100644 index 000000000..1e4473ff6 --- /dev/null +++ b/omod/src/main/webapp/fragments/hiv/programLocationWarning.gsp @@ -0,0 +1,4 @@ +
+

Session Location: ${sessionLocation.name}


+

HIV Program Location: ${hivProgramLocation.name}

+
\ No newline at end of file From caf2c38c682aa6b2c96b5c21d4ffdf0ea3bf6b17 Mon Sep 17 00:00:00 2001 From: Dutervil Date: Tue, 26 Sep 2023 09:58:50 -0400 Subject: [PATCH 3/3] fixing conflic --- .../pihcore/apploader/CustomAppLoaderConstants.java | 1 - .../pihcore/apploader/CustomAppLoaderFactory.java | 11 ----------- .../hiv/ProgramLocationWarningFragmentController.java | 5 ++--- 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java index 614047f8a..8c397a933 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java +++ b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderConstants.java @@ -236,7 +236,6 @@ public static final class Extensions { public static final String CREATE_RETROSPECTIVE_VISIT_OVERALL_ACTION = "coreapps.createRetrospectiveVisit"; public static final String MERGE_VISITS_OVERALL_ACTION = "coreapps.mergeVisits"; public static final String DEATH_CERTIFICATE_OVERALL_ACTION = "pih.haiti.deathCertificate"; - public static final String HIV_PROGRAM_LOCATION_WARNING_HEADER_EXTENSION = "pih.header.hivProgramLocationWarning"; public static final String CHART_SEARCH_OVERALL_ACTION = "chartsearch.overallAction"; public static final String PATIENT_DOCUMENTS_OVERALL_ACTION = "attachments.patientDocuments.overallAction"; public static final String ORDER_LABS_OVERALL_ACTION = "orderentryowa.orderLabs"; diff --git a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java index f79c8921b..338925adc 100644 --- a/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java +++ b/api/src/main/java/org/openmrs/module/pihcore/apploader/CustomAppLoaderFactory.java @@ -264,9 +264,6 @@ private void loadAppsAndExtensions() throws UnsupportedEncodingException { enableHivProgramLocationWarning(); } - if (config.isComponentEnabled(Components.HIV_PROGRAM_LOCATION_WARNING)) { - enableHivProgramLocationWarning(); - } if (config.isComponentEnabled(Components.RADIOLOGY)) { enableRadiology(); @@ -763,15 +760,7 @@ private void enableConsult() { } } - private void enableHivProgramLocationWarning() { - extensions.add(fragmentExtension(CustomAppLoaderConstants.Extensions.HIV_PROGRAM_LOCATION_WARNING_HEADER_EXTENSION, - "pihcore", - "hiv/programLocationWarning", - null, - CustomAppLoaderConstants.ExtensionPoints.SECOND_LINE_HEADER, - null)); - } private void enableConsultInitial() { extensions.add(visitAction(CustomAppLoaderConstants.Extensions.CONSULT_NOTE_INITIAL_VISIT_ACTION, "ui.i18n.EncounterType.name." + PihEmrConfigConstants.ENCOUNTERTYPE_CONSULTATION_INITIAL_UUID, diff --git a/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java b/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java index 50ab84037..bd8057966 100644 --- a/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java +++ b/omod/src/main/java/org/openmrs/module/pihcore/fragment/controller/hiv/ProgramLocationWarningFragmentController.java @@ -39,6 +39,5 @@ public void controller(FragmentModel model, } } } -======= -} ->>>>>>> 25e378549c097faaa58a38eb759bc497fc32481d + +