Tested on
Oscar 12.1.2
build date: May 28, 2015 11:55:34 AM
build tag: 12.1.2.68_QA_451patch2 Oscar12_1
Firefox 36.0
Linux Mint
BUG
appointmentDate URL token set to null instead of open tag (appointmentDate=&star) passed resulting in uneditable null injection into subsequent billing screens, which in turn, when the bill is saved, renders the chart inaccessible
NOTES
1) This may be due to a null date entry added to billing_on_cheader1.billing. An open tag as happens when accessed from search allows for the current date to be set for the bill.
2) This appears to be fixed in OSCAR 15 from brief testing
Steps to reproduce
1) Scan a document and attach it to a chart
2) open the document in the inbox and click [eChart]
3) a chart entry similar to [09-Jul-2015 .: Lab Results-Notes] will be formed
note the header URL has es&appointmentDate=null&star
alternately
1) Write a Oscar Message to yourself and attach a demographic
2) Open the message and click on [E] to get to the demographic linked
3) a chart entry similar to [09-Jul-2015 .: null] will be formed
note the header URL has &reason=null&appointmentDate=null&start_time
IN EITHER SCENARIO
4) click [sign save and bill] will give you an Ontario billing screen with non editable null date set.
5) try to bill a A007 799. A confirmation screen will show with the null date shown
6) ignore that too and save and get a NPE
7) now you will be unable to open the chart again
instead you get a HTTP Status 500 -
javax.servlet.ServletException: javax.servlet.ServletException: java.text.ParseException: Unparseable date: "null 00:00:00"
org.oscarehr.util.DbConnectionFilter.doFilter(DbConnectionFilter.java:68)
org.oscarehr.util.ResponseDefaultsFilter.doFilter(ResponseDefaultsFilter.java:69)
org.oscarehr.util.ProblemCheckFilter.doFilter(ProblemCheckFilter.java:188)
root cause
javax.servlet.ServletException: java.text.ParseException: Unparseable date: "null 00:00:00"
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:523)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
oscar.oscarSecurity.LoginFilter.doFilter(LoginFilter.java:127)
net.sf.cookierevolver.servlet.CRFilterImpl.doFilter(CRFilterImpl.java:60)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
org.oscarehr.util.LoggedInUserFilter.doFilter(LoggedInUserFilter.java:60)
org.oscarehr.util.DbConnectionFilter.doFilter(DbConnectionFilter.java:65)
org.oscarehr.util.ResponseDefaultsFilter.doFilter(ResponseDefaultsFilter.java:69)
org.oscarehr.util.ProblemCheckFilter.doFilter(ProblemCheckFilter.java:188)
root cause
java.text.ParseException: Unparseable date: "null 00:00:00"
java.text.DateFormat.parse(DateFormat.java:357)
org.oscarehr.casemgmt.web.CaseManagementViewAction.viewCurrentIssuesTab_newCmeNotesOpt(CaseManagementViewAction.java:2005)
org.oscarehr.casemgmt.web.CaseManagementViewAction.viewNotesOpt(CaseManagementViewAction.java:1893)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
oscar.oscarSecurity.LoginFilter.doFilter(LoginFilter.java:127)
net.sf.cookierevolver.servlet.CRFilterImpl.doFilter(CRFilterImpl.java:60)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
org.oscarehr.util.LoggedInUserFilter.doFilter(LoggedInUserFilter.java:60)
org.oscarehr.util.DbConnectionFilter.doFilter(DbConnectionFilter.java:65)
org.oscarehr.util.ResponseDefaultsFilter.doFilter(ResponseDefaultsFilter.java:69)
org.oscarehr.util.ProblemCheckFilter.doFilter(ProblemCheckFilter.java:188)
The issue appears to be resolved in Master with this commit https://source.oscartools.org:8080/#/c/6766/ for the bug [#2754].
Related
Bugs:
#2754R12_1 commit: https://source.oscartools.org:8080/#/c/12622/