diff --git a/src/main/java/com/divudi/bean/inward/InpatientClinicalDataController.java b/src/main/java/com/divudi/bean/inward/InpatientClinicalDataController.java index 51edf87b59c..14954dde305 100644 --- a/src/main/java/com/divudi/bean/inward/InpatientClinicalDataController.java +++ b/src/main/java/com/divudi/bean/inward/InpatientClinicalDataController.java @@ -10,6 +10,7 @@ import com.divudi.bean.clinical.*; import com.divudi.bean.common.BillController; +import com.divudi.bean.common.ConfigOptionApplicationController; import com.divudi.bean.common.SearchController; import com.divudi.bean.common.SessionController; @@ -143,6 +144,9 @@ public class InpatientClinicalDataController implements Serializable { @Inject private FavouriteController favouriteController; + @Inject + private ConfigOptionApplicationController configOptionApplicationController; + private Patient patient; private List userDocumentTemplates; @@ -227,6 +231,11 @@ public class InpatientClinicalDataController implements Serializable { private Upload selectedDiagnosisCardTemplate; private Upload selectedDiagnosisCard; + + // Diagnosis card types - Ward Admission and Local Surgery + private String wardAdmissionDiagnosisCardHtml; + private String localSurgeryDiagnosisCardHtml; + private String selectedDiagnosisCardTypeHtml; @Deprecated public void calculateBmi() { @@ -481,6 +490,55 @@ public Upload findAndReplaceText(Upload upload, Map replacements return upload; } + /** + * Load and display Ward Admission Diagnosis Card with variable replacement + */ + public void loadWardAdmissionDiagnosisCard() { + if (current == null) { + JsfUtil.addErrorMessage("No patient encounter selected"); + return; + } + String templateHtml = configOptionApplicationController.getLongTextValueByKey("Ward Admission Diagnosis Card Template", ""); + if (templateHtml == null || templateHtml.isEmpty()) { + JsfUtil.addErrorMessage("Ward Admission Diagnosis Card template not configured"); + return; + } + Map replacements = createReplacementsMap(current); + wardAdmissionDiagnosisCardHtml = replaceVariablesInHtml(templateHtml, replacements); + selectedDiagnosisCardTypeHtml = wardAdmissionDiagnosisCardHtml; + } + + /** + * Load and display Local Surgery Diagnosis Card with variable replacement + */ + public void loadLocalSurgeryDiagnosisCard() { + if (current == null) { + JsfUtil.addErrorMessage("No patient encounter selected"); + return; + } + String templateHtml = configOptionApplicationController.getLongTextValueByKey("Local Surgery Diagnosis Card Template", ""); + if (templateHtml == null || templateHtml.isEmpty()) { + JsfUtil.addErrorMessage("Local Surgery Diagnosis Card template not configured"); + return; + } + Map replacements = createReplacementsMap(current); + localSurgeryDiagnosisCardHtml = replaceVariablesInHtml(templateHtml, replacements); + selectedDiagnosisCardTypeHtml = localSurgeryDiagnosisCardHtml; + } + + /** + * Replace variables in HTML with actual values using the replacements map + */ + public String replaceVariablesInHtml(String htmlTemplate, Map replacements) { + String result = htmlTemplate; + for (Map.Entry replacement : replacements.entrySet()) { + if (replacement.getValue() != null) { + result = result.replace("{{" + replacement.getKey().substring(1, replacement.getKey().length() - 1) + "}}", replacement.getValue()); + } + } + return result; + } + public String generateDocumentFromTemplate(DocumentTemplate t, PatientEncounter e) { if (t == null) { @@ -3189,6 +3247,30 @@ public Upload getSelectedDiagnosisCard() { return selectedDiagnosisCard; } + public String getWardAdmissionDiagnosisCardHtml() { + return wardAdmissionDiagnosisCardHtml; + } + + public void setWardAdmissionDiagnosisCardHtml(String wardAdmissionDiagnosisCardHtml) { + this.wardAdmissionDiagnosisCardHtml = wardAdmissionDiagnosisCardHtml; + } + + public String getLocalSurgeryDiagnosisCardHtml() { + return localSurgeryDiagnosisCardHtml; + } + + public void setLocalSurgeryDiagnosisCardHtml(String localSurgeryDiagnosisCardHtml) { + this.localSurgeryDiagnosisCardHtml = localSurgeryDiagnosisCardHtml; + } + + public String getSelectedDiagnosisCardTypeHtml() { + return selectedDiagnosisCardTypeHtml; + } + + public void setSelectedDiagnosisCardTypeHtml(String selectedDiagnosisCardTypeHtml) { + this.selectedDiagnosisCardTypeHtml = selectedDiagnosisCardTypeHtml; + } + public void setSelectedDiagnosisCard(Upload selectedDiagnosisCard) { this.selectedDiagnosisCard = selectedDiagnosisCard; } diff --git a/src/main/webapp/inward/admission_profile.xhtml b/src/main/webapp/inward/admission_profile.xhtml index 6cac7790549..b272ed02b6b 100644 --- a/src/main/webapp/inward/admission_profile.xhtml +++ b/src/main/webapp/inward/admission_profile.xhtml @@ -345,12 +345,32 @@ class="w-100"> + + + + @@ -525,6 +545,64 @@ + + + +
+
+ +
+ +
+
+
+ + + + +
+
+ +
+ +
+
+
+ + + + + diff --git a/src/main/webapp/inward/clinical_data.xhtml b/src/main/webapp/inward/clinical_data.xhtml index 5249d83686d..e2d96575d30 100644 --- a/src/main/webapp/inward/clinical_data.xhtml +++ b/src/main/webapp/inward/clinical_data.xhtml @@ -56,6 +56,29 @@ + + + + + + +
@@ -600,21 +623,96 @@ value="#{inpatientClinicalDataController.selectedDiagnosisCard.comments}"> - - - + +
+
+ +
+
+
+
+ + +
+
+ + +
+
+
+
- - - - - - - - - + + + +
+
+ +
+ +
+
+
+ + + + +
+
+ +
+ +
+
+