Update of /cvsroot/oscarmcmaster/oscar_mcmaster/web/WEB-INF/classes/src/oscar/dms/actions
In directory sfp-cvsdas-4.v30.ch3.sourceforge.com:/tmp/cvs-serv22960
Modified Files:
Tag: RELEASE_10_06
DmsInboxManageAction.java
Log Message:
- ID: 3104263
-add documents in queues
-update status in queue link
Index: DmsInboxManageAction.java
===================================================================
RCS file: /cvsroot/oscarmcmaster/oscar_mcmaster/web/WEB-INF/classes/src/oscar/dms/actions/DmsInboxManageAction.java,v
retrieving revision 1.2.2.5
retrieving revision 1.2.2.6
diff -C2 -d -r1.2.2.5 -r1.2.2.6
*** DmsInboxManageAction.java 22 Oct 2010 22:19:27 -0000 1.2.2.5
--- DmsInboxManageAction.java 6 Nov 2010 19:38:58 -0000 1.2.2.6
***************
*** 63,66 ****
--- 63,67 ----
import org.oscarehr.common.dao.QueueDao;
import org.oscarehr.common.model.Demographic;
+ import org.oscarehr.document.dao.DocumentDAO;
import org.oscarehr.util.MiscUtils;
import oscar.dms.EDocUtil;
***************
*** 80,83 ****
--- 81,85 ----
private SecObjectNameDao secObjectNameDao=null;
private SecUserRoleDao secUserRoleDao = (SecUserRoleDao) SpringUtils.getBean("secUserRoleDao");
+ private QueueDao queueDAO=(QueueDao)SpringUtils.getBean("queueDao");
public void setProviderInboxRoutingDAO(ProviderInboxRoutingDao providerInboxRoutingDAO){
this.providerInboxRoutingDAO = providerInboxRoutingDAO;
***************
*** 156,160 ****
queueDocs.put(queueId, EDocs);
}
! System.out.println("queueDocs="+queueDocs);
for(int i=0;i<privatedocs.size();i++){
EDoc eDoc=privatedocs.get(i);
--- 158,162 ----
queueDocs.put(queueId, EDocs);
}
! MiscUtils.getLogger().debug("queueDocs="+queueDocs);
for(int i=0;i<privatedocs.size();i++){
EDoc eDoc=privatedocs.get(i);
***************
*** 170,179 ****
Integer qidInt=qdl.getQueueId();
String qidStr=qidInt.toString();
! System.out.println("qid in link="+qidStr);
if(queueDocs.containsKey(qidStr)){
List<EDoc> EDocs=new ArrayList();
EDocs=(List<EDoc>)queueDocs.get(qidStr);
EDocs.add(eDoc);
! System.out.println("add edoc id to queue id="+eDoc.getDocId());
queueDocs.put(qidStr, EDocs);
}
--- 172,181 ----
Integer qidInt=qdl.getQueueId();
String qidStr=qidInt.toString();
! MiscUtils.getLogger().debug("qid in link="+qidStr);
if(queueDocs.containsKey(qidStr)){
List<EDoc> EDocs=new ArrayList();
EDocs=(List<EDoc>)queueDocs.get(qidStr);
EDocs.add(eDoc);
! MiscUtils.getLogger().debug("add edoc id to queue id="+eDoc.getDocId());
queueDocs.put(qidStr, EDocs);
}
***************
*** 189,192 ****
--- 191,195 ----
if(eDocs==null || eDocs.size()==0){
queueDocs.remove(queueId);
+ MiscUtils.getLogger().debug("removed queueId="+queueId);
}
}
***************
*** 274,282 ****
public ActionForward prepareForIndexPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
HttpSession session=request.getSession();
try{if(session.getAttribute("userrole") == null ) response.sendRedirect("../logout.jsp");}
! catch(Exception e){e.printStackTrace();}
//oscar.oscarMDS.data.MDSResultsData mDSData = new oscar.oscarMDS.data.MDSResultsData();
--- 277,287 ----
+
public ActionForward prepareForIndexPage(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
HttpSession session=request.getSession();
try{if(session.getAttribute("userrole") == null ) response.sendRedirect("../logout.jsp");}
! catch(Exception e){MiscUtils.getLogger().error("Error", e);}
+ //can't use userrole from session, because it changes if provider A search for provider B's documents
//oscar.oscarMDS.data.MDSResultsData mDSData = new oscar.oscarMDS.data.MDSResultsData();
***************
*** 441,444 ****
--- 446,450 ----
for(int i=0;i<labdocs.size();i++){
LabResultData data=(LabResultData)labdocs.get(i);
+
List<String> segIDs=new ArrayList();
String labPatientId=data.getLabPatientId();
***************
*** 474,478 ****
patientDocs.put(labPatientId, segIDs);
patientIdNames.put(labPatientId, data.patientName);
! patientIdNamesStr+=';'+labPatientId+'='+data.patientName;
}
docStatus.put(data.getSegmentID(), data.getAcknowledgedStatus());
--- 480,484 ----
patientDocs.put(labPatientId, segIDs);
patientIdNames.put(labPatientId, data.patientName);
! patientIdNamesStr+=";"+labPatientId+"="+data.patientName;
}
docStatus.put(data.getSegmentID(), data.getAcknowledgedStatus());
***************
*** 546,557 ****
request.setAttribute("demographicNo", demographicNo);
request.setAttribute("ackStatus",ackStatus );
-
- System.out.print("start");
- for(int i=0;i<labdocs.size();i++){
- LabResultData data=(LabResultData)labdocs.get(i);
- System.out.print("--"+data.segmentID);
- }
- System.out.println();
- System.out.println("end");
request.setAttribute("labdocs", labdocs);
request.setAttribute("patientNumDoc", patientNumDoc);
--- 552,555 ----
***************
*** 577,581 ****
}
}catch(Exception e){
! e.printStackTrace();
}
--- 575,579 ----
}
}catch(Exception e){
! MiscUtils.getLogger().error("Error", e);
}
***************
*** 586,590 ****
response.getOutputStream().write(jsonObject.toString().getBytes());
}catch(java.io.IOException ioe){
! ioe.printStackTrace();
}
return null;
--- 584,588 ----
response.getOutputStream().write(jsonObject.toString().getBytes());
}catch(java.io.IOException ioe){
! MiscUtils.getLogger().error("Error", ioe);
}
return null;
***************
*** 621,623 ****
--- 619,742 ----
}
+
+ public ActionForward updateDocStatusInQueue(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
+ String docid=request.getParameter("docid");
+ if(docid!=null){
+ if(!queueDocumentLinkDAO.setStatusInactive(Integer.parseInt(docid))){
+ MiscUtils.getLogger().error("failed to set status in queue document link to be inactive");
+ }
+ }
+ return null;
+ }
+
+ //return a hastable containing queue id to queue name, a hashtable of queue id and a list of document nos.
+ //forward to documentInQueus.jsp
+ public ActionForward getDocumentsInQueues(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
+ HttpSession session=request.getSession();
+ try{if(session.getAttribute("userrole") == null ) response.sendRedirect("../logout.jsp");}
+ catch(Exception e){MiscUtils.getLogger().error("Error", e);}
+ String providerNo = (String) session.getAttribute("user");
+ String searchProviderNo = request.getParameter("searchProviderNo");
+ String ackStatus = request.getParameter("status");
+
+
+ if ( ackStatus == null ) { ackStatus = "N"; } // default to new labs only
+ if ( providerNo == null ) { providerNo = ""; }
+ if ( searchProviderNo == null ) { searchProviderNo = providerNo; }
+
+ String patientIdNamesStr="";
+ List<QueueDocumentLink> qs=queueDocumentLinkDAO.getActiveQueueDocLink();
+ Hashtable queueDocNos=new Hashtable();
+ Hashtable docType=new Hashtable();
+ Hashtable<Integer,List> patientDocs=new Hashtable();
+ DocumentDAO documentDAO=(DocumentDAO) SpringUtils.getBean("documentDAO");
+ Demographic demo =new Demographic();
+ List docsWithPatient=new ArrayList();
+ Hashtable patientIdNames=new Hashtable();//lbData.patientName = demo.getLastName()+ ", "+demo.getFirstName();
+ List<Integer> patientIds=new ArrayList();
+ Integer demoNo;
+ Hashtable docStatus=new Hashtable();
+ String patientIdStr="";
+ StringBuffer patientIdBuf=new StringBuffer();
+ Hashtable typeDocLab=new Hashtable();
+ List ListDocIds=new ArrayList();
+ for(QueueDocumentLink q:qs){
+ int qid=q.getQueueId();
+ int docid=q.getDocId();
+ ListDocIds.add(docid);
+ docType.put(docid,"DOC");
+ demo=documentDAO.getDemoFromDocNo(Integer.toString(docid));
+ if(demo==null)
+ demoNo=-1;
+ else
+ demoNo=demo.getDemographicNo();
+ if(!patientIds.contains(demoNo))
+ patientIds.add(demoNo);
+ if(!patientIdNames.containsKey(demoNo)){
+ if(demoNo==-1){
+ patientIdNames.put(demoNo,"Not, Assigned");
+ patientIdNamesStr+=";"+demoNo+"="+"Not, Assigned";
+ }
+ else{
+ patientIdNames.put(demoNo, demo.getLastName()+", "+demo.getFirstName());
+ patientIdNamesStr+=";"+demoNo+"="+demo.getLastName()+", "+demo.getFirstName();
+ }
+
+
+ }
+ List providers=providerInboxRoutingDAO.getProvidersWithRoutingForDocument("DOC",Integer.toString(docid) );
+ if(providers.size()>0){
+ ProviderInboxItem pii=(ProviderInboxItem)providers.get(0);
+ docStatus.put(docid, pii.getStatus());
+ }
+ if(patientDocs.containsKey(demoNo)){
+ docsWithPatient=patientDocs.get(demoNo);
+ docsWithPatient.add(docid);
+ patientDocs.put(demoNo,docsWithPatient);
+ }else{
+ docsWithPatient=new ArrayList();
+ docsWithPatient.add(docid);
+ patientDocs.put(demoNo, docsWithPatient);
+ }
+ if(queueDocNos.containsKey(qid)){
+
+ List<Integer> ds= (List<Integer>)queueDocNos.get(qid);
+ ds.add(docid);
+ queueDocNos.put(qid, ds);
+
+ }else{
+ List<Integer> ds=new ArrayList();
+ ds.add(docid);
+ queueDocNos.put(qid, ds);
+ }
+ }
+ Integer dn=0;
+ for(int i=0;i<patientIds.size();i++){
+ dn=patientIds.get(i);
+ patientIdBuf.append(dn);
+ if(i!=patientIds.size()-1)
+ patientIdBuf.append(",");
+ }
+ patientIdStr=patientIdBuf.toString();
+ typeDocLab.put("DOC", ListDocIds);
+ List normals=ListDocIds;//assume all documents are normal
+ List abnormals=new ArrayList();
+ request.setAttribute("typeDocLab", typeDocLab);
+ request.setAttribute("docStatus", docStatus);
+ request.setAttribute("patientDocs",patientDocs );
+ request.setAttribute("patientIdNames",patientIdNames );
+ request.setAttribute("docType", docType);
+ request.setAttribute("patientIds", patientIds);
+ request.setAttribute("patientIdStr",patientIdStr );
+ request.setAttribute("normals", normals);
+ request.setAttribute("abnormals", abnormals);
+ request.setAttribute("queueDocNos", queueDocNos);
+ request.setAttribute("patientIdNamesStr",patientIdNamesStr);
+ request.setAttribute("queueIdNames", queueDAO.getQueuesHashtable());
+ request.setAttribute("providerNo", providerNo);
+ request.setAttribute("searchProviderNo", searchProviderNo);
+ return mapping.findForward("document_in_queues");
+
+
+ }
}
\ No newline at end of file
|