3232import org .apache .commons .lang .math .NumberUtils ;
3333import org .apache .logging .log4j .Logger ;
3434import org .apache .struts2 .ServletActionContext ;
35+ import org .apache .struts2 .interceptor .SessionAware ;
3536import org .oscarehr .PMmodule .dao .ProgramProviderDAO ;
3637import org .oscarehr .PMmodule .dao .ProviderDao ;
3738import org .oscarehr .PMmodule .model .Program ;
8990import java .text .SimpleDateFormat ;
9091import 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 *
0 commit comments