Skip to content

Commit e483bc8

Browse files
authored
Merge pull request #372 from cc-ar-emr/bugfix/cpp-notes-save-refresh-struts2
Fix: Proper Saving and Refresh of All CPP Modules in Encounter Window
2 parents bbac35a + 1724838 commit e483bc8

7 files changed

Lines changed: 261 additions & 153 deletions

File tree

src/main/java/org/oscarehr/casemgmt/web/CaseManagementEntry2Action.java

Lines changed: 48 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import org.apache.commons.lang.math.NumberUtils;
3333
import org.apache.logging.log4j.Logger;
3434
import org.apache.struts2.ServletActionContext;
35+
import org.apache.struts2.interceptor.SessionAware;
3536
import org.oscarehr.PMmodule.dao.ProgramProviderDAO;
3637
import org.oscarehr.PMmodule.dao.ProviderDao;
3738
import org.oscarehr.PMmodule.model.Program;
@@ -89,7 +90,7 @@
8990
import java.text.SimpleDateFormat;
9091
import java.util.*;
9192

92-
public class CaseManagementEntry2Action extends ActionSupport {
93+
public class CaseManagementEntry2Action extends ActionSupport implements SessionAware {
9394

9495
HttpServletRequest request = ServletActionContext.getRequest();
9596
HttpServletResponse response = ServletActionContext.getResponse();
@@ -109,7 +110,11 @@ public String execute() throws Exception {
109110
logger.error(message);
110111
return null;
111112
}
112-
String method = request.getParameter("method");
113+
114+
restoreFromSession();
115+
116+
String method = request.getParameter("method") != null ? request.getParameter("method") : (String) request.getAttribute("method");
117+
113118
if ("setUpMainEncounter".equals(method)) {
114119
return setUpMainEncounter();
115120
} else if ("isNoteEdited".equals(method)) {
@@ -205,7 +210,8 @@ public String edit() throws Exception {
205210
return null;
206211
}
207212

208-
this.setChain("");
213+
CaseManagementEntryFormBean cform = new CaseManagementEntryFormBean();
214+
cform.setChain("");
209215
request.setAttribute("change_flag", "false");
210216
request.setAttribute("from", "casemgmt");
211217

@@ -279,7 +285,7 @@ public String edit() throws Exception {
279285
logger.debug("Get Issues and filter them " + String.valueOf(current - start));
280286
start = current;
281287

282-
this.setDemoNo(demono);
288+
cform.setDemoNo(demono);
283289
CaseManagementNote note = null;
284290

285291
String nId = request.getParameter("noteId");
@@ -411,8 +417,8 @@ else if (nId != null && !"null".equalsIgnoreCase(nId) && Integer.parseInt(nId) >
411417
start = current;
412418

413419
// put the new/retrieved not in the form object for rendering on page
414-
this.setCaseNote(note);
415-
logger.debug("note in cform " + this.getCaseNote_note());
420+
cform.setCaseNote(note);
421+
logger.debug("note in cform " + cform.getCaseNote_note());
416422
/* set issue checked list */
417423

418424
// get issues for current demographic, based on provider rights
@@ -458,11 +464,11 @@ else if (nId != null && !"null".equalsIgnoreCase(nId) && Integer.parseInt(nId) >
458464

459465
current = System.currentTimeMillis();
460466

461-
this.setIssueCheckList(checkedList);
467+
cform.setIssueCheckList(checkedList);
462468

463-
this.setSign("off");
464-
if (!note.isIncludeissue()) this.setIncludeIssue("off");
465-
else this.setIncludeIssue("on");
469+
cform.setSign("off");
470+
if (!note.isIncludeissue()) cform.setIncludeIssue("off");
471+
else cform.setIncludeIssue("on");
466472

467473
boolean passwd = caseManagementMgr.getEnabled();
468474
String chain = request.getParameter("chain");
@@ -481,15 +487,15 @@ else if (nId != null && !"null".equalsIgnoreCase(nId) && Integer.parseInt(nId) >
481487

482488
if (casemgmtNoteLock.isLocked()) {
483489
note = makeNewNote(providerNo, demono, request);
484-
this.setCaseNote(note);
490+
cform.setCaseNote(note);
485491
}
486492

487493
session.setAttribute("casemgmtNoteLock" + demono, casemgmtNoteLock);
488494

489495
String frmName = "caseManagementEntryForm" + demono;
490496
//logger.debug("Setting session form - " + frmName + " - " + String.valueOf(cform != null));
491-
logger.debug("note in cform " + this.getCaseNote_note());
492-
//session.setAttribute(frmName, cform);
497+
logger.debug("note in cform " + cform.getCaseNote_note());
498+
mySessionMap.put(frmName, cform);
493499

494500
String fwd, finalFwd = null;
495501
if (chain != null && chain.length() > 0) {
@@ -1213,6 +1219,7 @@ public String issueNoteSave() throws Exception {
12131219
return null;
12141220
}
12151221

1222+
this.setReloadUrl("/CaseManagementView.do?" + reloadUrl);
12161223
return "listCPPNotes";
12171224
}
12181225

@@ -3754,6 +3761,24 @@ public void setCPPMedicalHistory(CaseManagementCPP cpp, String providerNo, List
37543761
}
37553762
}
37563763

3764+
private Map<String, Object> mySessionMap;
3765+
3766+
@Override
3767+
public void setSession(Map<String, Object> session) {
3768+
this.mySessionMap = session;
3769+
}
3770+
3771+
private void restoreFromSession() {
3772+
if (demographicNo != null) {
3773+
String sessionName = "caseManagementEntryForm" + demographicNo;
3774+
CaseManagementEntryFormBean sessionFrm = (CaseManagementEntryFormBean) mySessionMap.get(sessionName);
3775+
if (sessionFrm != null) {
3776+
this.issueCheckList = sessionFrm.getIssueCheckList();
3777+
this.newIssueCheckList = sessionFrm.getNewIssueCheckList();
3778+
}
3779+
}
3780+
}
3781+
37573782
private CaseManagementNote caseNote;
37583783
private CaseManagementCPP cpp;
37593784
private String demoNo;
@@ -3795,6 +3820,8 @@ public void setCPPMedicalHistory(CaseManagementCPP cpp, String providerNo, List
37953820
private Integer OscarMsgType;
37963821
private Integer OscarMsgTypeLink;
37973822

3823+
private String reloadUrl;
3824+
37983825
public String getObservation_date() {
37993826
return this.observation_date;
38003827
}
@@ -4091,6 +4118,14 @@ public void setMinuteOfEncTransportationTime(Integer minuteOfEncTransportationTi
40914118
this.minuteOfEncTransportationTime = minuteOfEncTransportationTime;
40924119
}
40934120

4121+
public String getReloadUrl() {
4122+
return reloadUrl;
4123+
}
4124+
4125+
public void setReloadUrl(String reloadUrl) {
4126+
this.reloadUrl = reloadUrl;
4127+
}
4128+
40944129
/**
40954130
* @return the OscarMsgType
40964131
*

src/main/java/org/oscarehr/casemgmt/web/CaseManagementView2Action.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ public String execute() throws Exception {
119119
request.getSession().setAttribute("casemgmt_msgBeans", new ArrayList<Object>());
120120

121121

122-
String method = request.getParameter("method");
122+
String method = request.getParameter("method") != null ? request.getParameter("method") : (String) request.getAttribute("method");
123+
123124
if ("saveAndExit".equals(method)) {
124125
return saveAndExit();
125126
} else if ("save".equals(method)) {

src/main/webapp/WEB-INF/classes/struts.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2146,7 +2146,9 @@
21462146
<result name="setUpMainEncounterPage">/casemgmt/newEncounterLayout.jsp</result>
21472147
<result name="view">/casemgmt/CaseManagementEntry.jsp</result>
21482148
<result name="list">/CaseManagementView.do?method=view</result>
2149-
<result name="listCPPNotes">/CaseManagementView.do</result>
2149+
<result name="listCPPNotes" type="redirect">
2150+
<param name="location">${reloadUrl}</param>
2151+
</result>
21502152
<result name="IssueSearch">/casemgmt/IssueSearch.jsp</result>
21512153
<result name="NoDemoERR">/casemgmt/noDemo.jsp</result>
21522154
<result name="windowClose">/casemgmt/close.jsp</result>

src/main/webapp/casemgmt/ChartNotes.jsp

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -188,13 +188,6 @@
188188
</script>
189189
<div id="topContent">
190190

191-
<form name="caseManagementEntryForm" id="caseManagementEntryForm" style="display:none;">
192-
<input type="hidden" name="method" value="edit">
193-
<input type="hidden" name="note_edit" value="new">
194-
<input type="hidden" name="noteId" value="0">
195-
<input type="hidden" name="ajax" value="false">
196-
<input type="hidden" name="chain" value="list">
197-
</form>
198191
<form name="caseManagementViewForm" action="${pageContext.request.contextPath}/CaseManagementView.do" method="post">
199192
<input type="hidden" name="demographicNo" value="<%=demographicNo%>"/>
200193
<input type="hidden" name="providerNo" value="<%=provNo%>"/>
@@ -527,7 +520,7 @@
527520
String oscarMsgType = (String) request.getParameter("msgType");
528521
String OscarMsgTypeLink = (String) request.getParameter("OscarMsgTypeLink");
529522
%>
530-
<form action="<%=request.getContextPath()%>/CaseManagementEntry.do" method="post">
523+
<form name="caseManagementEntryForm" id="caseManagementEntryForm" action="<%=request.getContextPath()%>/CaseManagementEntry.do" method="post">
531524
<input type="hidden" name="demographicNo" value="<%=demographicNo%>"/>
532525
<input type="hidden" name="includeIssue" value="off"/>
533526
<input type="hidden" name="OscarMsgType" value="<%=oscarMsgType%>"/>

src/main/webapp/casemgmt/forward.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
4545
String redirectURL;
4646
if ("true".equals(useNewCaseMgmt)) {
47-
redirectURL = request.getContextPath() + "/CaseManagementEntry.do?method=setUpMainEncounter&from=casemgmt&chain=list&demographicNo=" + request.getParameter("demographicNo") + "&OscarMsgTypeLink=" + request.getParameter("OscarMsgTypeLink") + "&msgType=" + request.getParameter("msgType");
47+
redirectURL = request.getContextPath() + "/CaseManagementEntry.do?method=setUpMainEncounter&from=casemgmt&chain=list&demographicNo=" + request.getParameter("demographicNo") + "&providerNo=" + request.getParameter("providerNo") + "&OscarMsgTypeLink=" + request.getParameter("OscarMsgTypeLink") + "&msgType=" + request.getParameter("msgType");
4848
} else {
4949
redirectURL = request.getContextPath() + "/CaseManagementView.do";
5050
}

src/main/webapp/casemgmt/noteIssueList.jsp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,7 @@
398398
${issueCheckList.issueDisplay.description}
399399
</a>
400400

401-
<c:if test="${issueCheckList.issue.used == false}">
401+
<c:if test="${issueCheckList.used == false}">
402402
<c:set var="submitDelete" value="removeIssue('${winame}');document.forms['caseManagementEntryForm'].deleteId.value='${status.index}';return ajaxUpdateIssues('issueDelete', $('noteIssues').up().id);" />
403403
&nbsp;
404404
<a href="#" onclick="${submitDelete}">Delete</a>

0 commit comments

Comments
 (0)