public void deleteData(String siteInformationId, String currentUserId) throws LIMSRuntimeException { try { AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); SiteInformation oldData = readSiteInformation(siteInformationId); SiteInformation newData = new SiteInformation(); auditDAO.saveHistory( newData, oldData, currentUserId, IActionConstants.AUDIT_TRAIL_DELETE, "SITE_INFORMATION"); } catch (Exception e) { LogEvent.logError("SiteInformationDAOImpl", "AuditTrail deleteData()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation AuditTrail deleteData()", e); } try { SiteInformation siteInformation = readSiteInformation(siteInformationId); HibernateUtil.getSession().delete(siteInformation); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { LogEvent.logError("SiteInformationsDAOImpl", "deleteData()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation deleteData()", e); } }
public void updateData(SiteInformation siteInformation) throws LIMSRuntimeException { SiteInformation oldData = readSiteInformation(siteInformation.getId()); SiteInformation newData = siteInformation; try { AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); auditDAO.saveHistory( newData, oldData, siteInformation.getSysUserId(), IActionConstants.AUDIT_TRAIL_UPDATE, "SITE_INFORMATION"); } catch (Exception e) { LogEvent.logError("SiteInformationDAOImpl", "AuditTrail updateData()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation AuditTrail updateData()", e); } try { HibernateUtil.getSession().merge(siteInformation); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); HibernateUtil.getSession().evict(siteInformation); HibernateUtil.getSession().refresh(siteInformation); } catch (Exception e) { LogEvent.logError("SiteInformationsDAOImpl", "updateData()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation updateData()", e); } }
public void updateData(SampleHuman sampleHuman) throws LIMSRuntimeException { SampleHuman oldData = readSampleHuman(sampleHuman.getId()); SampleHuman newData = sampleHuman; // add to audit trail try { AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); String sysUserId = sampleHuman.getSysUserId(); String event = IActionConstants.AUDIT_TRAIL_UPDATE; String tableName = "SAMPLE_HUMAN"; auditDAO.saveHistory(newData, oldData, sysUserId, event, tableName); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "updateData()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman AuditTrail updateData()", e); } try { HibernateUtil.getSession().merge(sampleHuman); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); HibernateUtil.getSession().evict(sampleHuman); HibernateUtil.getSession().refresh(sampleHuman); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "updateData()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman updateData()", e); } }
public void updateData(ReferenceTables referenceTables) throws LIMSRuntimeException { // bugzilla 1482 throw Exception if record already exists // String isHl7Encoded; // String keepHistory; boolean isNew = false; /*isHl7Encoded = referencetables.getIsHl7Encoded(); System.out.println ("Yi isH17Encodded is " + isHl7Encoded); if (StringUtil.isNullorNill(isHl7Encoded) || "0".equals(isHl7Encoded)) { referencetables.setIsHl7Encoded ("N"); } keepHistory = referencetables.getKeepHistory(); System.out.println ("Yi isH17Encodded is " + keepHistory); if (StringUtil.isNullorNill(keepHistory) || "0".equals(keepHistory)) { referencetables.setKeepHistory ("N"); }*/ try { if (duplicateReferenceTablesExists(referenceTables, isNew)) { throw new LIMSDuplicateRecordException( "Duplicate record exists for " + referenceTables.getTableName()); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "updateData()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables updateData()", e); } // System.out.println("This is name from updateData " + referencetables.getTableName()); ReferenceTables oldData = (ReferenceTables) readReferenceTables(referenceTables.getId()); ReferenceTables newData = referenceTables; // System.out.println("updateDate " + newData.getTableName() + " " + oldData.getTableName()); // add to audit trail try { AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); String sysUserId = referenceTables.getSysUserId(); String event = IActionConstants.AUDIT_TRAIL_UPDATE; String tableName = "REFERENCE_TABLES"; auditDAO.saveHistory(newData, oldData, sysUserId, event, tableName); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "AuditTrail updateData()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables AuditTrail updateData()", e); } try { HibernateUtil.getSession().merge(referenceTables); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); HibernateUtil.getSession().evict(referenceTables); HibernateUtil.getSession().refresh(referenceTables); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "updateData()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables updateData()", e); } }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = FWD_SUCCESS; DynaActionForm dynaForm = (DynaActionForm) form; // get selected qaEvents String[] selectedIDs = (String[]) dynaForm.get("selectedIDs"); // get sysUserId from login module UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA); String sysUserId = String.valueOf(usd.getSystemUserId()); List qaEvents = new ArrayList(); for (int i = 0; i < selectedIDs.length; i++) { QaEvent qaEvent = new QaEvent(); qaEvent.setId(selectedIDs[i]); qaEvent.setSysUserId(sysUserId); qaEvents.add(qaEvent); } ActionMessages errors = null; try { QaEventDAO qaEventDAO = new QaEventDAOImpl(); qaEventDAO.deleteData(qaEvents); // System.out.println("Just deleted QaEvent"); // initialize the form dynaForm.initialize(mapping); } catch (LIMSRuntimeException lre) { // bugzilla 2154 LogEvent.logError("QaEventDeleteAction", "performAction()", lre.toString()); request.setAttribute(IActionConstants.REQUEST_FAILED, true); errors = new ActionMessages(); ActionError error = null; if (lre.getException() instanceof org.hibernate.StaleObjectStateException) { error = new ActionError("errors.OptimisticLockException", null, null); } else { error = new ActionError("errors.DeleteException", null, null); } errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); forward = FWD_FAIL; } if (forward.equals(FWD_FAIL)) return mapping.findForward(forward); if ("true".equalsIgnoreCase(request.getParameter("close"))) { forward = FWD_CLOSE; } request.setAttribute("menuDefinition", "QaEventMenuDefinition"); return mapping.findForward(forward); }
// bugzilla 1427 public List getPreviousRecord(String id, String table, Class clazz) throws LIMSRuntimeException { int currentId = (Integer.valueOf(id)).intValue(); String tablePrefix = getTablePrefix(table); List list = new Vector(); // bugzilla 1908 int rrn = 0; try { // bugzilla 1908 cannot use named query for postgres because of oracle ROWNUM // instead get the list in this sortorder and determine the index of record with id = // currentId String sql = "select r.id from ReferenceTables r order by r.tableName"; org.hibernate.Query query = HibernateUtil.getSession().createQuery(sql); list = query.list(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); rrn = list.indexOf(String.valueOf(currentId)); list = HibernateUtil.getSession() .getNamedQuery(tablePrefix + "getPrevious") .setFirstResult(rrn - 1) .setMaxResults(2) .list(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "getPreviousRecord()", e.toString()); throw new LIMSRuntimeException("Error in getPreviousRecord() for " + table, e); } return list; }
public void deleteData(List referenceTableses) throws LIMSRuntimeException { // add to audit trail try { AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); for (int i = 0; i < referenceTableses.size(); i++) { ReferenceTables data = (ReferenceTables) referenceTableses.get(i); ReferenceTables oldData = (ReferenceTables) readReferenceTables(data.getId()); ReferenceTables newData = new ReferenceTables(); String sysUserId = data.getSysUserId(); String event = IActionConstants.AUDIT_TRAIL_DELETE; String tableName = "REFERENCE_TABLES"; auditDAO.saveHistory(newData, oldData, sysUserId, event, tableName); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "AuditTrail deleteData()", e.toString()); throw new LIMSRuntimeException("Error in ReferenceTables AuditTrail deleteData()", e); } try { for (int i = 0; i < referenceTableses.size(); i++) { ReferenceTables data = (ReferenceTables) referenceTableses.get(i); // bugzilla 2206 data = (ReferenceTables) readReferenceTables(data.getId()); HibernateUtil.getSession().delete(data); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "deleteData()", e.toString()); throw new LIMSRuntimeException("Error in ReferenceTables deleteData()", e); } }
public SampleHuman readSampleHuman(String idString) { SampleHuman sh = null; try { sh = (SampleHuman) HibernateUtil.getSession().get(SampleHuman.class, idString); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "readSampleHuman()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman readSampleHuman()", e); } return sh; }
public SiteInformation readSiteInformation(String idString) { SiteInformation recoveredSiteInformation = null; try { recoveredSiteInformation = (SiteInformation) HibernateUtil.getSession().get(SiteInformation.class, idString); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { LogEvent.logError("SiteInformationDAOImpl", "readSiteInformation()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation readSiteInformation()", e); } return recoveredSiteInformation; }
public void deleteData(List sampleHumans) throws LIMSRuntimeException { // add to audit trail try { AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); for (int i = 0; i < sampleHumans.size(); i++) { SampleHuman data = (SampleHuman) sampleHumans.get(i); SampleHuman oldData = (SampleHuman) readSampleHuman(data.getId()); SampleHuman newData = new SampleHuman(); String sysUserId = data.getSysUserId(); String event = IActionConstants.AUDIT_TRAIL_DELETE; String tableName = "SAMPLE_HUMAN"; auditDAO.saveHistory(newData, oldData, sysUserId, event, tableName); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "AuditTrail deleteData()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman AuditTrail deleteData()", e); } try { for (int i = 0; i < sampleHumans.size(); i++) { SampleHuman data = (SampleHuman) sampleHumans.get(i); // bugzilla 2206 data = (SampleHuman) readSampleHuman(data.getId()); HibernateUtil.getSession().delete(data); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "deleteData()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman deleteData()", e); } }
public ReferenceTables readReferenceTables(String idString) { ReferenceTables referenceTables = null; try { referenceTables = (ReferenceTables) HibernateUtil.getSession().get(ReferenceTables.class, idString); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "readReferenceTables()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables readReferenceTables(idString)", e); } return referenceTables; }
// bugzilla 1482 private boolean duplicateReferenceTablesExists(ReferenceTables referenceTables, boolean isNew) throws LIMSRuntimeException { try { List list = new ArrayList(); String sql; // not case sensitive hemolysis and Hemolysis are considered // duplicates if (isNew) { sql = "from ReferenceTables t where trim(lower(t.tableName)) = :param"; } else { sql = "from ReferenceTables t where trim(lower(t.tableName)) = :param and id != :param2"; } // System.out.println("Yi in duplicateReferencetables sql is " + sql); org.hibernate.Query query = HibernateUtil.getSession().createQuery(sql); // System.out.println("duplicateReferencetables sql is " + sql); query.setParameter("param", referenceTables.getTableName().toLowerCase().trim()); // initialize with 0 (for new records where no id has been generated // yet String referenceTablesId = "0"; if (!StringUtil.isNullorNill(referenceTables.getId())) { referenceTablesId = referenceTables.getId(); } if (!isNew) { query.setParameter("param2", referenceTablesId); } list = query.list(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); if (list.size() > 0) { return true; } else { return false; } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "duplicateReferenceTablesExists()", e.toString()); throw new LIMSRuntimeException("Error in duplicateReferenceTablesExists()", e); } }
public void getData(SampleHuman sampleHuman) throws LIMSRuntimeException { try { SampleHuman sampHuman = (SampleHuman) HibernateUtil.getSession().get(SampleHuman.class, sampleHuman.getId()); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); if (sampHuman != null) { PropertyUtils.copyProperties(sampleHuman, sampHuman); } else { sampleHuman.setId(null); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "getData()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman getData()", e); } }
public void getData(SiteInformation siteInformation) throws LIMSRuntimeException { try { SiteInformation tmpSiteInformation = (SiteInformation) HibernateUtil.getSession().get(SiteInformation.class, siteInformation.getId()); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); if (tmpSiteInformation != null) { PropertyUtils.copyProperties(siteInformation, tmpSiteInformation); } else { siteInformation.setId(null); } } catch (Exception e) { LogEvent.logError("SiteInformationsDAOImpl", "getData()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation getData()", e); } }
public void getData(ReferenceTables referenceTables) throws LIMSRuntimeException { try { ReferenceTables reftbl = (ReferenceTables) HibernateUtil.getSession().get(ReferenceTables.class, referenceTables.getId()); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); if (reftbl != null) { PropertyUtils.copyProperties(referenceTables, reftbl); } else { referenceTables.setId(null); } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "getData()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables getData()", e); } }
public List getAllReferenceTables() throws LIMSRuntimeException { List list = new Vector(); try { String sql = "from ReferenceTables"; org.hibernate.Query query = HibernateUtil.getSession().createQuery(sql); // query.setMaxResults(10); // query.setFirstResult(3); list = query.list(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "getAllReferenceTables()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables getAllReferenceTables()", e); } return list; }
public Patient getPatientForSample(Sample sample) throws LIMSRuntimeException { Patient patient = null; try { String sql = "select patient from Patient as patient, SampleHuman as sampleHuman where sampleHuman.patientId = patient.id and sampleHuman.sampleId = :sId"; Query query = HibernateUtil.getSession().createQuery(sql); query.setInteger("sId", Integer.parseInt(sample.getId())); patient = (Patient) query.uniqueResult(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (HibernateException he) { LogEvent.logError("SampleHumanDAOImpl", "getPatientForSample()", he.toString()); throw new LIMSRuntimeException("Error in SampleHuman getPatientForSample()", he); } return patient; }
public void getDataBySample(SampleHuman sampleHuman) throws LIMSRuntimeException { try { String sql = "from SampleHuman sh where samp_id = :param"; Query query = HibernateUtil.getSession().createQuery(sql); query.setInteger("param", Integer.parseInt(sampleHuman.getSampleId())); List list = query.list(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); SampleHuman sh = null; if (list.size() > 0) { sh = (SampleHuman) list.get(0); PropertyUtils.copyProperties(sampleHuman, sh); } } catch (Exception e) { LogEvent.logError("SampleHumanDAOImpl", "getDataBySample()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman getDataBySample()", e); } }
public boolean insertData(SiteInformation siteInformation) throws LIMSRuntimeException { try { String id = (String) HibernateUtil.getSession().save(siteInformation); siteInformation.setId(id); AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); auditDAO.saveNewHistory(siteInformation, siteInformation.getSysUserId(), "SITE_INFORMATION"); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { LogEvent.logError("SiteInformationDAOImpl", "insertData()", e.toString()); throw new LIMSRuntimeException("Error in SiteInformation insertData()", e); } return true; }
public boolean insertData(ReferenceTables referenceTables) throws LIMSRuntimeException { // String isHl7Encoded; // String keepHistory; boolean isNew = true; /*isHl7Encoded = referencetables.getIsHl7Encoded(); if (StringUtil.isNullorNill(isHl7Encoded) || "0".equals(isHl7Encoded)) { referencetables.setIsHl7Encoded ("N"); } keepHistory = referencetables.getKeepHistory(); if (StringUtil.isNullorNill(keepHistory) || "0".equals(keepHistory)) { referencetables.setKeepHistory ("N"); }*/ try { // bugzilla 1482 throw Exception if record already exists if (duplicateReferenceTablesExists(referenceTables, isNew)) { throw new LIMSDuplicateRecordException( "Duplicate record exists for " + referenceTables.getTableName()); } // System.out.println("This is ID from insert referencetables " + referencetables.getId()); String id = (String) HibernateUtil.getSession().save(referenceTables); referenceTables.setId(id); // bugzilla 1824 inserts will be logged in history table AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); String sysUserId = referenceTables.getSysUserId(); String tableName = "REFERENCE_TABLES"; auditDAO.saveNewHistory(referenceTables, sysUserId, tableName); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "insertData()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables insertData()", e); } return true; }
@SuppressWarnings("unchecked") public List<Sample> getCollectedSamplesForPatient(String patientID) throws LIMSRuntimeException { List<Sample> samples; try { String sql = "select sample from Sample as sample, SampleHuman as sampleHuman where sampleHuman.sampleId = sample.id and sampleHuman.patientId = :patientId and sample.accessionNumber is not null order by sample.id"; Query query = HibernateUtil.getSession().createQuery(sql); query.setInteger("patientId", Integer.parseInt(patientID)); samples = query.list(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (HibernateException he) { LogEvent.logError("SampleHumanDAOImpl", "getSamplesForPatient()", he.toString()); throw new LIMSRuntimeException("Error in SampleHuman getSamplesForPatient()", he); } return samples; }
public boolean insertData(SampleHuman sampleHuman) throws LIMSRuntimeException { try { String id = (String) HibernateUtil.getSession().save(sampleHuman); sampleHuman.setId(id); // bugzilla 1824 inserts will be logged in history table AuditTrailDAO auditDAO = new AuditTrailDAOImpl(); String sysUserId = sampleHuman.getSysUserId(); String tableName = "SAMPLE_HUMAN"; auditDAO.saveNewHistory(sampleHuman, sysUserId, tableName); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("SampleHumanDAOImpl", "insertData()", e.toString()); throw new LIMSRuntimeException("Error in SampleHuman insertData()", e); } return true; }
public List getPageOfReferenceTables(int startingRecNo) throws LIMSRuntimeException { List list = new Vector(); try { // calculate maxRow to be one more than the page size int endingRecNo = startingRecNo + (SystemConfiguration.getInstance().getDefaultPageSize() + 1); String sql = "from ReferenceTables r order by r.tableName"; org.hibernate.Query query = HibernateUtil.getSession().createQuery(sql); query.setFirstResult(startingRecNo - 1); query.setMaxResults(endingRecNo - 1); // query.setCacheMode(org.hibernate.CacheMode.REFRESH); list = query.list(); HibernateUtil.getSession().flush(); HibernateUtil.getSession().clear(); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ReferenceTablesDAOImpl", "getPageOfReferenceTables()", e.toString()); throw new LIMSRuntimeException("Error in Referencetables getPageOfReferenceTables()", e); } return list; }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // The first job is to determine if we are coming to this action with an // ID parameter in the request. If there is no parameter, we are // creating a new Analyte. // If there is a parameter present, we should bring up an existing // Analyte to edit. String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "true"); request.setAttribute(PREVIOUS_DISABLED, "false"); request.setAttribute(NEXT_DISABLED, "false"); String id = request.getParameter(ID); if (StringUtil.isNullorNill(id) || "0".equals(id)) { isNew = true; } else { isNew = false; } BaseActionForm dynaForm = (BaseActionForm) form; String start = (String) request.getParameter("startingRecNo"); String direction = (String) request.getParameter("direction"); // System.out.println("This is ID from request " + id); Panel panel = new Panel(); panel.setId(id); try { PanelDAO panelDAO = new PanelDAOImpl(); // retrieve analyte by id since the name may have changed panelDAO.getData(panel); if (FWD_NEXT.equals(direction)) { // bugzilla 1427 pass in name not id List panels = panelDAO.getNextPanelRecord(panel.getPanelName()); if (panels != null && panels.size() > 0) { panel = (Panel) panels.get(0); panelDAO.getData(panel); if (panels.size() < 2) { // disable next button request.setAttribute(NEXT_DISABLED, "true"); } id = panel.getId(); } else { // just disable next button request.setAttribute(NEXT_DISABLED, "true"); } } if (FWD_PREVIOUS.equals(direction)) { // bugzilla 1427 pass in name not id List panels = panelDAO.getPreviousPanelRecord(panel.getPanelName()); if (panels != null && panels.size() > 0) { panel = (Panel) panels.get(0); panelDAO.getData(panel); if (panels.size() < 2) { // disable previous button request.setAttribute(PREVIOUS_DISABLED, "true"); } id = panel.getId(); } else { // just disable next button request.setAttribute(PREVIOUS_DISABLED, "true"); } } } catch (LIMSRuntimeException lre) { // bugzilla 2154 LogEvent.logError("PanelNextPreviousAction", "performAction()", lre.toString()); request.setAttribute(ALLOW_EDITS_KEY, "false"); // disable previous and next request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); forward = FWD_FAIL; } if (forward.equals(FWD_FAIL)) return mapping.findForward(forward); if (panel.getId() != null && !panel.getId().equals("0")) { request.setAttribute(ID, panel.getId()); } return getForward(mapping.findForward(forward), id, start); }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "true"); BaseActionForm dynaForm = (BaseActionForm) form; ActionMessages errors = dynaForm.validate(mapping, request); String accessionNumber = (String) dynaForm.get("accessionNumber"); String birthWeight = (String) dynaForm.get("birthWeight"); Patient patient = new Patient(); Person person = new Person(); Sample sample = new Sample(); SampleHuman sampleHuman = new SampleHuman(); SampleNewborn sampleNewborn = new SampleNewborn(); UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA); String sysUserId = String.valueOf(usd.getSystemUserId()); // populate valueholder from form PropertyUtils.copyProperties(sample, dynaForm); PropertyUtils.copyProperties(person, dynaForm); PropertyUtils.copyProperties(sampleHuman, dynaForm); PropertyUtils.copyProperties(sampleNewborn, dynaForm); String birthDate = dynaForm.getString("birthDateForDisplay"); String birthTime = dynaForm.getString("birthTimeForDisplay"); String format = "MM/dd/yyyy"; if ((birthDate != null) && (birthDate.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); java.sql.Timestamp dob = new java.sql.Timestamp(f.parse(birthDate).getTime()); if ((birthTime != null) && (birthTime.length() > 0)) { Calendar cal = Calendar.getInstance(); cal.setTime(dob); cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(birthTime.substring(0, 2)).intValue()); cal.set(Calendar.MINUTE, Integer.valueOf(birthTime.substring(3, 5)).intValue()); dob = new java.sql.Timestamp(cal.getTimeInMillis()); } patient.setBirthDate(dob); } String collectionDate = dynaForm.getString("collectionDateForDisplay"); String collectionTime = dynaForm.getString("collectionTimeForDisplay"); java.sql.Timestamp collDate = null; if ((collectionDate != null) && (collectionDate.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); collDate = new java.sql.Timestamp(f.parse(collectionDate).getTime()); if ((collectionTime != null) && (collectionTime.length() > 0)) { Calendar cal = Calendar.getInstance(); cal.setTime(collDate); cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(collectionTime.substring(0, 2)).intValue()); cal.set(Calendar.MINUTE, Integer.valueOf(collectionTime.substring(3, 5)).intValue()); collDate = new java.sql.Timestamp(cal.getTimeInMillis()); } } SampleDAO sampleDAO = new SampleDAOImpl(); PersonDAO personDAO = new PersonDAOImpl(); PatientDAO patientDAO = new PatientDAOImpl(); SampleHumanDAO sampleHumanDAO = new SampleHumanDAOImpl(); SampleNewbornDAO sampleNewbornDAO = new SampleNewbornDAOImpl(); try { sample.setSysUserId(sysUserId); sample.setAccessionNumber(accessionNumber); sampleDAO.getSampleByAccessionNumber(sample); sample.setStatus(SystemConfiguration.getInstance().getSampleStatusEntry1Complete()); sample.setCollectionDate(collDate); sampleDAO.updateData(sample); person.setSysUserId(sysUserId); patient.setSysUserId(sysUserId); personDAO.insertData(person); patient.setPerson(person); patientDAO.insertData(patient); sampleHuman.setSysUserId(sysUserId); sampleHuman.setSampleId(sample.getId()); sampleHuman.setPatientId(patient.getId()); sampleHumanDAO.insertData(sampleHuman); sampleNewborn.setSysUserId(sysUserId); sampleNewborn.setId(sampleHuman.getId()); sampleNewborn.setWeight(birthWeight); sampleNewbornDAO.insertData(sampleNewborn); } catch (LIMSRuntimeException lre) { LogEvent.logError("NewbornSampleOneUpdateAction", "performAction()", lre.toString()); request.setAttribute(IActionConstants.REQUEST_FAILED, true); errors = new ActionMessages(); ActionError error = null; if (lre.getException() instanceof org.hibernate.StaleObjectStateException) { error = new ActionError("errors.OptimisticLockException", null, null); } else { error = new ActionError("errors.UpdateException", null, null); } errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); request.setAttribute(ALLOW_EDITS_KEY, "false"); forward = FWD_FAIL; } if (forward.equals(FWD_FAIL)) return mapping.findForward(forward); return mapping.findForward(FWD_SUCCESS); }
// modified for efficiency bugzilla 1367 public String validate(String targetId) throws LIMSRuntimeException { StringBuffer s = new StringBuffer(); // bgm added StringUtil to check against a space being entered. if (!StringUtil.isNullorNill(targetId)) { ProjectDAO projectDAO = new ProjectDAOImpl(); Project project = new Project(); try { int i = Integer.parseInt(targetId); // bugzilla 2438 project.setLocalAbbreviation(targetId.trim()); } catch (NumberFormatException nfe) { // bugzilla 2154 LogEvent.logError("ProjectIdOrNameValidationProvider", "validate()", nfe.toString()); // if the id was not a number project = null; } if (project != null) { // bugzilla 2438 project = projectDAO.getProjectByLocalAbbreviation(project, true); } // bugzilla 2112 try { if (null != project) { // bugzilla 1978 if (project.getIsActive().equals(YES)) { // This is particular to projId validation for HSE1 and HSE2: // the message appended to VALID is the projectName that // can then be displayed when User enters valid Project Id // (see humanSampleOne.jsp, humanSampleTwo.jsp) // bgm - bugzilla 1535 commented out s.append(project.getProjectName()); to check first if (null != project.getProjectName()) { s.append(VALID); s.append(project.getProjectName()); } else s.append(INVALID); } else { s.append(INVALID); } } else { project = new Project(); project.setId(""); project.setProjectName(targetId.trim()); project = projectDAO.getProjectByName(project, true, true); if (project != null) { s.append(VALID); // bugzilla 2438 s.append(project.getLocalAbbreviation()); } else { s.append(INVALID); } } } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ProjectIdOrNameValidationProvider", "validate()", e.toString()); s.append(INVALID); } } else { // bugzilla 1697 s.append(VALID); } /* * System.out.println("I am in projIdValidator returning " + * s.toString() + " targetId " + targetId); */ return s.toString(); }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = FWD_SUCCESS; BaseActionForm dynaForm = (BaseActionForm) form; ActionMessages errors = null; request.setAttribute(ALLOW_EDITS_KEY, "false"); request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); String accessionNumber = (String) dynaForm.getString("accessionNumber"); SampleXmlHelper sampleXmlHelper = new SampleXmlHelper(); if (!StringUtil.isNullorNill(accessionNumber)) { Sample sample = new Sample(); SampleDAO sampleDAO = new SampleDAOImpl(); sample.setAccessionNumber(accessionNumber); List testTestAnalytes = new ArrayList(); try { sampleDAO.getSampleByAccessionNumber(sample); if (!StringUtil.isNullorNill(sample.getStatus()) && sample .getStatus() .equals(SystemConfiguration.getInstance().getSampleStatusLabelPrinted())) { dynaForm.set("accessionNumber", accessionNumber); request.setAttribute(ALLOW_EDITS_KEY, "false"); return mapping.findForward(FWD_FAIL); } } catch (LIMSRuntimeException lre) { LogEvent.logError( "AuditTrailReportBySampleProcessAction", "performAction()", lre.toString()); errors = new ActionMessages(); ActionError error = null; error = new ActionError("errors.GetException", null, null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); request.setAttribute(ALLOW_EDITS_KEY, "false"); return mapping.findForward(FWD_FAIL); } String domain = sample.getDomain(); String humanDomain = SystemConfiguration.getInstance().getHumanDomain(); String animalDomain = SystemConfiguration.getInstance().getAnimalDomain(); if (domain != null && domain.equals(humanDomain)) { // go to human view Patient patient = new Patient(); Person patientPerson = new Person(); Provider provider = new Provider(); Person providerPerson = new Person(); SampleHuman sampleHuman = new SampleHuman(); SampleOrganization sampleOrganization = new SampleOrganization(); Organization organization = new Organization(); List sampleProjects = new ArrayList(); Project project = new Project(); Project project2 = new Project(); SampleItem sampleItem = new SampleItem(); try { PatientDAO patientDAO = new PatientDAOImpl(); ProviderDAO providerDAO = new ProviderDAOImpl(); SampleItemDAO sampleItemDAO = new SampleItemDAOImpl(); SampleHumanDAO sampleHumanDAO = new SampleHumanDAOImpl(); SampleOrganizationDAO sampleOrganizationDAO = new SampleOrganizationDAOImpl(); AuditTrailDAO auditTrailDAO = new AuditTrailDAOImpl(); SystemUserDAO systemUserDAO = new SystemUserDAOImpl(); if (!StringUtil.isNullorNill(sample.getId())) { sampleHuman.setSampleId(sample.getId()); sampleHumanDAO.getDataBySample(sampleHuman); sampleOrganization.setSampleId(sample.getId()); sampleOrganizationDAO.getDataBySample(sampleOrganization); sampleItem.setSample(sample); sampleItemDAO.getDataBySample(sampleItem); if (sampleHuman != null) { if (sampleHuman.getPatientId() != null) { patient.setId(sampleHuman.getPatientId()); patientDAO.getData(patient); patientPerson = patient.getPerson(); provider.setId(sampleHuman.getProviderId()); providerDAO.getData(provider); providerPerson = provider.getPerson(); } } } organization = (Organization) sampleOrganization.getOrganization(); sampleProjects = sample.getSampleProjects(); if (sampleProjects != null && sampleProjects.size() > 0) { SampleProject sampleProject = (SampleProject) sampleProjects.get(0); project = sampleProject.getProject(); if (sampleProjects.size() > 1) { SampleProject sampleProject2 = (SampleProject) sampleProjects.get(1); project2 = sampleProject2.getProject(); } } String tableName = "SAMPLE"; ReferenceTablesDAO referenceTablesDAO = new ReferenceTablesDAOImpl(); ReferenceTables referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); ReferenceTables rt = referenceTablesDAO.getReferenceTableByName(referenceTables); PropertyUtils.copyProperties(sampleXmlHelper, sample); // String data = auditTrailDAO.retrieveBlobData(sample.getId()); // String data = auditTrailDAO.retrieveBlobData("9446"); History history = new History(); history.setReferenceId(sample.getId()); history.setReferenceTable(rt.getId()); List historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); List sampleHistoryRecords = populateHistoryList(request, historyRecords, "sample", "sampleHistoryMapping.xsl"); sampleXmlHelper.setHistoryRecords((ArrayList) sampleHistoryRecords); tableName = "SAMPLE_ITEM"; referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); rt = referenceTablesDAO.getReferenceTableByName(referenceTables); history = new History(); history.setReferenceId(sampleItem.getId()); history.setReferenceTable(rt.getId()); historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); List sampleItemHistoryRecords = populateHistoryList( request, historyRecords, "sampleItem", "sampleItemHistoryMapping.xsl"); sampleXmlHelper.addHistoryRecords((ArrayList) sampleItemHistoryRecords); tableName = "PATIENT"; referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); rt = referenceTablesDAO.getReferenceTableByName(referenceTables); history = new History(); history.setReferenceId(patient.getId()); history.setReferenceTable(rt.getId()); historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); List patientHistoryRecords = populateHistoryList(request, historyRecords, "patient", "patientHistoryMapping.xsl"); sampleXmlHelper.addHistoryRecords((ArrayList) patientHistoryRecords); tableName = "PERSON"; referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); rt = referenceTablesDAO.getReferenceTableByName(referenceTables); history = new History(); history.setReferenceId(patientPerson.getId()); history.setReferenceTable(rt.getId()); historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); // List patientPersonHistoryRecords = populateHistoryList(request, historyRecords, // "person", "personHistoryMapping.xsl"); // sampleXmlHelper.addHistoryRecords((ArrayList)patientPersonHistoryRecords); tableName = "PERSON"; referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); rt = referenceTablesDAO.getReferenceTableByName(referenceTables); history = new History(); history.setReferenceId(providerPerson.getId()); history.setReferenceTable(rt.getId()); historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); // List providerPersonHistoryRecords = populateHistoryList(request, historyRecords, // "person", "personHistoryMapping.xsl"); // sampleXmlHelper.addHistoryRecords((ArrayList)providerPersonHistoryRecords); tableName = "SAMPLE_PROJECTS"; referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); rt = referenceTablesDAO.getReferenceTableByName(referenceTables); history = new History(); history.setReferenceId(providerPerson.getId()); history.setReferenceTable(rt.getId()); historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); List sampleProjectHistoryRecords = populateHistoryList( request, historyRecords, "sampleProject", "sampleProjectHistoryMapping.xsl"); sampleXmlHelper.addHistoryRecords((ArrayList) sampleProjectHistoryRecords); // initialize the form dynaForm.initialize(mapping); tableName = "SAMPLE_ORGANIZATION"; referenceTables = new ReferenceTables(); referenceTables.setTableName(tableName); rt = referenceTablesDAO.getReferenceTableByName(referenceTables); history = new History(); history.setReferenceId(sampleOrganization.getId()); history.setReferenceTable(rt.getId()); historyRecords = auditTrailDAO.getHistoryByRefIdAndRefTableId(history); List sampleOrganizationHistoryRecords = populateHistoryList( request, historyRecords, "sampleOrganization", "sampleOrganizationHistoryMapping.xsl"); sampleXmlHelper.addHistoryRecords((ArrayList) sampleOrganizationHistoryRecords); List historyRecordsForSorting = sampleXmlHelper.getHistoryRecords(); Collections.sort(historyRecordsForSorting, HistoryComparator.NAME_COMPARATOR); String savedUserName = ""; List dateSortList = new ArrayList(); List finalList = new ArrayList(); // now within name sort by date desc for (int i = 0; i < historyRecordsForSorting.size(); i++) { // break down into chunks by name HistoryXmlHelper hist = (HistoryXmlHelper) historyRecordsForSorting.get(i); if (i > 0 && !hist.getUserName().equals(savedUserName)) { // now sort chunk so far Collections.sort(dateSortList, HistoryComparator.DATE_COMPARATOR); finalList.addAll(dateSortList); dateSortList.clear(); } dateSortList.add(hist); savedUserName = hist.getUserName(); } if (dateSortList != null && dateSortList.size() > 0) { Collections.sort(dateSortList, HistoryComparator.DATE_COMPARATOR); finalList.addAll(dateSortList); dateSortList.clear(); } sampleXmlHelper.setHistoryRecords((ArrayList) finalList); // initialize the form dynaForm.initialize(mapping); } catch (LIMSRuntimeException lre) { // if error then forward to fail and don't update to blank // page // = false // bugzilla 2154 LogEvent.logError("ResultsEntryViewAction", "performAction()", lre.toString()); errors = new ActionMessages(); ActionError error = null; error = new ActionError("errors.GetException", null, null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); request.setAttribute(ALLOW_EDITS_KEY, "false"); return mapping.findForward(FWD_FAIL); } // populate form from valueholder // PropertyUtils.setProperty(dynaForm, "sampleLastupdated", sample // .getLastupdated()); PropertyUtils.setProperty(dynaForm, "patientFirstName", patientPerson.getFirstName()); PropertyUtils.setProperty(dynaForm, "patientLastName", patientPerson.getLastName()); PropertyUtils.setProperty(dynaForm, "patientId", patient.getExternalId()); PropertyUtils.setProperty(dynaForm, "gender", patient.getGender()); PropertyUtils.setProperty(dynaForm, "chartNumber", patient.getChartNumber()); PropertyUtils.setProperty( dynaForm, "birthDateForDisplay", (String) patient.getBirthDateForDisplay()); TypeOfSample typeOfSample = sampleItem.getTypeOfSample(); SourceOfSample sourceOfSample = sampleItem.getSourceOfSample(); if (typeOfSample == null) { PropertyUtils.setProperty(dynaForm, "typeOfSample", new TypeOfSample()); } else { PropertyUtils.setProperty(dynaForm, "typeOfSample", typeOfSample); } if (sourceOfSample == null) { PropertyUtils.setProperty(dynaForm, "sourceOfSample", new SourceOfSample()); } else { PropertyUtils.setProperty(dynaForm, "sourceOfSample", sourceOfSample); } PropertyUtils.setProperty(dynaForm, "sourceOther", sampleItem.getSourceOther()); PropertyUtils.setProperty( dynaForm, "receivedDateForDisplay", (String) sample.getReceivedDateForDisplay()); PropertyUtils.setProperty( dynaForm, "collectionDateForDisplay", (String) sample.getCollectionDateForDisplay()); PropertyUtils.setProperty( dynaForm, "collectionTimeForDisplay", (String) sample.getCollectionTimeForDisplay()); PropertyUtils.setProperty( dynaForm, "referredCultureFlag", (String) sample.getReferredCultureFlag()); PropertyUtils.setProperty( dynaForm, "stickerReceivedFlag", (String) sample.getStickerReceivedFlag()); if (organization == null) { PropertyUtils.setProperty(dynaForm, "organization", new Organization()); } else { PropertyUtils.setProperty(dynaForm, "organization", organization); } if (project == null) { PropertyUtils.setProperty(dynaForm, "project", new Project()); } else { PropertyUtils.setProperty(dynaForm, "project", project); } if (project2 == null) { PropertyUtils.setProperty(dynaForm, "project2", new Project()); } else { PropertyUtils.setProperty(dynaForm, "project2", project2); } // reload accession number PropertyUtils.setProperty(dynaForm, "accessionNumber", accessionNumber); PropertyUtils.setProperty(dynaForm, "domain", domain); PropertyUtils.setProperty(dynaForm, "sampleXmlHelper", sampleXmlHelper); forward = FWD_SUCCESS_HUMAN; } else if (domain != null && domain.equals(animalDomain)) { // go to animal view // System.out.println("Going to animal view"); forward = FWD_SUCCESS_ANIMAL; } else { forward = FWD_SUCCESS; } } return mapping.findForward(forward); }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // The first job is to determine if we are coming to this action with an // ID parameter in the request. If there is no parameter, we are // creating a new Scriptlet. // If there is a parameter present, we should bring up an existing // Scriptlet to edit. String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "true"); request.setAttribute(PREVIOUS_DISABLED, "false"); request.setAttribute(NEXT_DISABLED, "false"); String id = request.getParameter(ID); if (StringUtil.isNullorNill(id) || "0".equals(id)) { isNew = true; } else { isNew = false; } BaseActionForm dynaForm = (BaseActionForm) form; // server-side validation (validation.xml) ActionMessages errors = dynaForm.validate(mapping, request); if (errors != null && errors.size() > 0) { saveErrors(request, errors); // since we forward to jsp - not Action we don't need to repopulate // the lists here return mapping.findForward(FWD_FAIL); } String start = (String) request.getParameter("startingRecNo"); String direction = (String) request.getParameter("direction"); Scriptlet scriptlet = new Scriptlet(); // get sysUserId from login module UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA); String sysUserId = String.valueOf(usd.getSystemUserId()); scriptlet.setSysUserId(sysUserId); // populate valueholder from form PropertyUtils.copyProperties(scriptlet, dynaForm); try { ScriptletDAO scriptletDAO = new ScriptletDAOImpl(); if (!isNew) { // UPDATE scriptletDAO.updateData(scriptlet); } else { // INSERT scriptletDAO.insertData(scriptlet); } } catch (LIMSRuntimeException lre) { // bugzilla 2154 LogEvent.logError("ScriptletUpdateAction", "performAction()", lre.toString()); request.setAttribute(IActionConstants.REQUEST_FAILED, true); errors = new ActionMessages(); java.util.Locale locale = (java.util.Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE"); ActionError error = null; if (lre.getException() instanceof org.hibernate.StaleObjectStateException) { // how can I get popup instead of struts error at the top of // page? // ActionMessages errors = dynaForm.validate(mapping, request); error = new ActionError("errors.OptimisticLockException", null, null); } else { // bugzilla 1482 if (lre.getException() instanceof LIMSDuplicateRecordException) { String messageKey = "scriptlet.scriptletName"; String msg = ResourceLocator.getInstance().getMessageResources().getMessage(locale, messageKey); error = new ActionError("errors.DuplicateRecord", msg, null); } else { error = new ActionError("errors.UpdateException", null, null); } } errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); // bugzilla 1485: allow change and try updating again (enable save button) // request.setAttribute(IActionConstants.ALLOW_EDITS_KEY, "false"); // disable previous and next request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); forward = FWD_FAIL; } if (forward.equals(FWD_FAIL)) return mapping.findForward(forward); // initialize the form dynaForm.initialize(mapping); // repopulate the form from valueholder PropertyUtils.copyProperties(dynaForm, scriptlet); if ("true".equalsIgnoreCase(request.getParameter("close"))) { forward = FWD_CLOSE; } if (scriptlet.getId() != null && !scriptlet.getId().equals("0")) { request.setAttribute(ID, scriptlet.getId()); } // bugzilla 1400 if (isNew) forward = FWD_SUCCESS_INSERT; // bugzilla 1467 added direction for redirect to NextPreviousAction return getForward(mapping.findForward(forward), scriptlet.getId(), start, direction); }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "true"); BaseActionForm dynaForm = (BaseActionForm) form; // server-side validation (validation.xml) ActionMessages errors = dynaForm.validate(mapping, request); // bugzilla 2614 allow for NB domain samples String selectedTestId = ""; String referenceTableId = SystemConfiguration.getInstance().getResultReferenceTableId(); String refId = (String) dynaForm.get("noteRefId"); String noteIds = (String) dynaForm.get("noteIds"); String noteSubjects = (String) dynaForm.get("noteSubjects"); String noteTexts = (String) dynaForm.get("noteTexts"); String noteTypes = (String) dynaForm.get("noteTypes"); String noteLastupdateds = (String) dynaForm.get("noteLastupdateds"); List noteIdList = new ArrayList(); List noteSubjectList = new ArrayList(); List noteTextList = new ArrayList(); List noteTypeList = new ArrayList(); List noteLastupdatedList = new ArrayList(); String textSeparator = SystemConfiguration.getInstance().getDefaultTextSeparator(); NoteDAO noteDAO = new NoteDAOImpl(); SystemUserDAO systemUserDAO = new SystemUserDAOImpl(); // bugzilla 2571 go through ReferenceTablesDAO to get reference tables info ReferenceTablesDAO referenceTablesDAO = new ReferenceTablesDAOImpl(); // get sysUserId from login module UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA); String sysUserId = String.valueOf(usd.getSystemUserId()); org.hibernate.Transaction tx = HibernateUtil.getSession().beginTransaction(); try { textSeparator = StringUtil.convertStringToRegEx(textSeparator); SystemUser systemUser = new SystemUser(); systemUser.setId(sysUserId); systemUserDAO.getData(systemUser); // get all the data required to forward to correct page // get analysis id from result ResultDAO resultDAO = new ResultDAOImpl(); Result result = new Result(); result.setId(refId); resultDAO.getData(result); String analysisId = result.getAnalysis().getId(); AnalysisDAO analysisDAO = new AnalysisDAOImpl(); Analysis analysis = new Analysis(); analysis.setId(analysisId); analysisDAO.getData(analysis); // get test id from analysis selectedTestId = analysis.getTest().getId(); // get domain from sample SampleItemDAO sampleItemDAO = new SampleItemDAOImpl(); SampleItem sampleItem = new SampleItem(); sampleItem.setId(analysis.getSampleItem().getId()); sampleItemDAO.getData(sampleItem); SampleDAO sampleDAO = new SampleDAOImpl(); Sample sample = new Sample(); // bugzilla 1773 need to store sample not sampleId for use in sorting sample.setId(sampleItem.getSample().getId()); sampleDAO.getData(sample); // bugzilla 2614 allow for NB domain samples // now that we have the domain (for forwarding to correct fail page) // validate note popup form data! try { // bugzilla 2254 moved loadListFromStringOfElements to StringUtil noteIdList = StringUtil.loadListFromStringOfElements(noteIds, textSeparator, false); noteLastupdatedList = StringUtil.loadListFromStringOfElements(noteLastupdateds, textSeparator, false); // these three need to be validated for empty strings noteSubjectList = StringUtil.loadListFromStringOfElements(noteSubjects, textSeparator, true); noteTextList = StringUtil.loadListFromStringOfElements(noteTexts, textSeparator, true); noteTypeList = StringUtil.loadListFromStringOfElements(noteTypes, textSeparator, true); } catch (Exception e) { // bugzilla 2154 LogEvent.logError("ResultsEntryNotesUpdateAction", "performAction()", e.toString()); String messageKey = "note.note"; ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); forward = FWD_FAIL; return mapping.findForward(forward); } for (int i = 0; i < noteIdList.size(); i++) { Note note = new Note(); String noteId = (String) noteIdList.get(i); note.setReferenceId(refId); // bugzilla 1922 // bugzilla 2571 go through ReferenceTablesDAO to get reference tables info ReferenceTables referenceTables = new ReferenceTables(); referenceTables.setId(referenceTableId); // bugzilla 2571 referenceTablesDAO.getData(referenceTables); note.setReferenceTables(referenceTables); note.setSystemUser(systemUser); note.setSystemUserId(sysUserId); // 1926 for audit trail note.setSysUserId(sysUserId); if (noteId != null && !noteId.equals("0")) { note.setId((String) noteIdList.get(i)); note.setSubject((String) noteSubjectList.get(i)); note.setText((String) noteTextList.get(i)); note.setNoteType((String) noteTypeList.get(i)); Timestamp noteTimestamp = null; if (!StringUtil.isNullorNill((String) noteLastupdatedList.get(i))) { noteTimestamp = DateUtil.formatStringToTimestamp((String) noteLastupdatedList.get(i)); } note.setLastupdated(noteTimestamp); // UPDATE noteDAO.updateData(note); // } } else { // this is a new note note.setSubject((String) noteSubjectList.get(i)); note.setText((String) noteTextList.get(i)); note.setNoteType((String) noteTypeList.get(i)); // INSERT noteDAO.insertData(note); } } tx.commit(); return getForward(mapping.findForward(forward), selectedTestId, analysisId); } catch (LIMSRuntimeException lre) { // bugzilla 2154 LogEvent.logError("ResultsEntryNotesUpdateAction", "performAction()", lre.toString()); tx.rollback(); errors = new ActionMessages(); ActionError error = null; if (lre.getException() instanceof org.hibernate.StaleObjectStateException) { error = new ActionError("errors.OptimisticLockException", null, null); } else { if (lre.getException() instanceof LIMSDuplicateRecordException) { java.util.Locale locale = (java.util.Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE"); String messageKey = "note.note"; String msg = ResourceLocator.getInstance().getMessageResources().getMessage(locale, messageKey); error = new ActionError("errors.DuplicateRecord", msg, null); } else { error = new ActionError("errors.UpdateException", null, null); } } errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); // disable previous and next request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); // default forward fail forward = FWD_FAIL; } finally { HibernateUtil.closeSession(); } if (forward.equals(FWD_FAIL) || forward.equals(FWD_FAIL_HUMAN) || forward.equals(FWD_FAIL_ANIMAL)) return mapping.findForward(forward); // initialize the form dynaForm.initialize(mapping); // we need this for subsequent actions to // get data related to note parent for forwarding to next page request.setAttribute("refId", refId); request.setAttribute(SELECTED_TEST_ID, selectedTestId); return mapping.findForward(forward); }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, TRUE); BaseActionForm dynaForm = (BaseActionForm) form; ActionMessages errors = dynaForm.validate(mapping, request); UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA); String sysUserId = String.valueOf(usd.getSystemUserId()); String birthDateForDisplay = dynaForm.getString("birthDateForDisplay"); String birthTimeForDisplay = dynaForm.getString("birthTimeForDisplay"); String format = "MM/dd/yyyy"; java.sql.Timestamp dob = null; if ((birthDateForDisplay != null) && (birthDateForDisplay.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); dob = new java.sql.Timestamp(f.parse(birthDateForDisplay).getTime()); if ((birthTimeForDisplay != null) && (birthTimeForDisplay.length() > 0)) { Calendar cal = Calendar.getInstance(); cal.setTime(dob); cal.set( Calendar.HOUR_OF_DAY, Integer.valueOf(birthTimeForDisplay.substring(0, 2)).intValue()); cal.set(Calendar.MINUTE, Integer.valueOf(birthTimeForDisplay.substring(3, 5)).intValue()); dob = new java.sql.Timestamp(cal.getTimeInMillis()); } } String dateFirstFeedingForDisplay = dynaForm.getString("dateFirstFeedingForDisplay"); String timeFirstFeedingForDisplay = dynaForm.getString("timeFirstFeedingForDisplay"); java.sql.Timestamp dateFirstFeeding = null; if ((dateFirstFeedingForDisplay != null) && (dateFirstFeedingForDisplay.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); dateFirstFeeding = new java.sql.Timestamp(f.parse(dateFirstFeedingForDisplay).getTime()); if ((timeFirstFeedingForDisplay != null) && (timeFirstFeedingForDisplay.length() > 0)) { Calendar cal = Calendar.getInstance(); cal.setTime(dob); cal.set( Calendar.HOUR_OF_DAY, Integer.valueOf(timeFirstFeedingForDisplay.substring(0, 2)).intValue()); cal.set( Calendar.MINUTE, Integer.valueOf(timeFirstFeedingForDisplay.substring(3, 5)).intValue()); dateFirstFeeding = new java.sql.Timestamp(cal.getTimeInMillis()); } } String collectionDateForDisplay = dynaForm.getString("collectionDateForDisplay"); String collectionTimeForDisplay = dynaForm.getString("collectionTimeForDisplay"); java.sql.Timestamp collDate = null; if ((collectionDateForDisplay != null) && (collectionDateForDisplay.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); collDate = new java.sql.Timestamp(f.parse(collectionDateForDisplay).getTime()); if ((collectionTimeForDisplay != null) && (collectionTimeForDisplay.length() > 0)) { Calendar cal = Calendar.getInstance(); cal.setTime(collDate); cal.set( Calendar.HOUR_OF_DAY, Integer.valueOf(collectionTimeForDisplay.substring(0, 2)).intValue()); cal.set( Calendar.MINUTE, Integer.valueOf(collectionTimeForDisplay.substring(3, 5)).intValue()); collDate = new java.sql.Timestamp(cal.getTimeInMillis()); } } String dateTransfutionForDisplay = (String) dynaForm.getString("dateTransfutionForDisplay"); java.sql.Timestamp dateTransfution = null; if ((dateTransfutionForDisplay != null) && (dateTransfutionForDisplay.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); dateTransfution = new java.sql.Timestamp(f.parse(dateTransfutionForDisplay).getTime()); } String motherBirthDateForDisplay = (String) dynaForm.get("motherBirthDateForDisplay"); java.sql.Timestamp motherBirthDate = null; if ((motherBirthDateForDisplay != null) && (motherBirthDateForDisplay.length() > 0)) { java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format); motherBirthDate = new java.sql.Timestamp(f.parse(motherBirthDateForDisplay).getTime()); } org.hibernate.Transaction tx = HibernateUtil.getSession().beginTransaction(); String accessionNumber = (String) dynaForm.get("accessionNumber"); try { // Sample Sample sample = new Sample(); SampleDAO sampleDAO = new SampleDAOImpl(); sample.setSysUserId(sysUserId); sample.setAccessionNumber(accessionNumber); sampleDAO.getSampleByAccessionNumber(sample); sample.setBarCode((String) dynaForm.get("barcode")); sample.setStatus(SystemConfiguration.getInstance().getSampleStatusEntry2Complete()); sample.setCollectionDate(collDate); sampleDAO.updateData(sample); // SampleHuman SampleHumanDAO sampleHumanDAO = new SampleHumanDAOImpl(); SampleHuman sampleHuman = new SampleHuman(); sampleHuman.setSampleId(sample.getId()); sampleHumanDAO.getDataBySample(sampleHuman); // Patient - child Patient childPatient = new Patient(); PatientDAO patientDAO = new PatientDAOImpl(); Person childPerson = new Person(); childPatient.setId(sampleHuman.getPatientId()); patientDAO.getData(childPatient); // Person - child PersonDAO personDAO = new PersonDAOImpl(); childPerson = childPatient.getPerson(); personDAO.getData(childPerson); childPerson.setSysUserId(sysUserId); childPerson.setLastName((String) dynaForm.get("lastName")); childPerson.setFirstName((String) dynaForm.get("firstName")); personDAO.updateData(childPerson); childPatient.setSysUserId(sysUserId); childPatient.setBirthDate(dob); childPatient.setGender((String) dynaForm.get("gender")); patientDAO.updateData(childPatient); // PatientRelation PatientRelation patientRelation = new PatientRelation(); PatientRelationDAO patientRelationDAO = new PatientRelationDAOImpl(); patientRelation.setPatientIdSource(childPatient.getId()); patientRelation = patientRelationDAO.getPatientRelationByChildId(patientRelation); Person motherPerson = new Person(); Patient motherPatient = new Patient(); if (!StringUtil.isNullorNill(patientRelation.getId())) { motherPatient.setId(patientRelation.getPatientId()); patientDAO.getData(motherPatient); motherPerson = motherPatient.getPerson(); personDAO.getData(motherPerson); } motherPerson.setLastName((String) dynaForm.get("motherLastName")); motherPerson.setFirstName((String) dynaForm.get("motherFirstName")); String motherHomePhone = (String) dynaForm.get("motherPhoneNumber"); if ((motherHomePhone != null) && (motherHomePhone.length() > 0)) motherHomePhone = StringUtil.formatPhone(motherHomePhone, null); motherPerson.setHomePhone(motherHomePhone); motherPerson.setStreetAddress((String) dynaForm.get("motherStreetAddress")); motherPerson.setCity((String) dynaForm.get("city")); motherPerson.setState((String) dynaForm.get("state")); motherPerson.setZipCode((String) dynaForm.get("zipCode")); motherPerson.setSysUserId(sysUserId); if (!StringUtil.isNullorNill(motherPerson.getId())) personDAO.updateData(motherPerson); else personDAO.insertData(motherPerson); motherPatient.setBirthDate(motherBirthDate); motherPatient.setPerson(motherPerson); motherPatient.setSysUserId(sysUserId); if (!StringUtil.isNullorNill(motherPatient.getId())) patientDAO.updateData(motherPatient); else patientDAO.insertData(motherPatient); patientRelation.setSysUserId(sysUserId); patientRelation.setPatientId(motherPatient.getId()); String motherRelation = SystemConfiguration.getInstance().getNewbornPatientRelation(); patientRelation.setRelation(motherRelation); if (!StringUtil.isNullorNill(patientRelation.getId())) patientRelationDAO.updateData(patientRelation); else patientRelationDAO.insertData(patientRelation); // SampleNewborn SampleNewborn sampleNewborn = new SampleNewborn(); SampleNewbornDAO sampleNewbornDAO = new SampleNewbornDAOImpl(); sampleNewborn.setId(sampleHuman.getId()); sampleNewbornDAO.getData(sampleNewborn); sampleNewborn.setSysUserId(sysUserId); sampleNewborn.setMedicalRecordNumber((String) dynaForm.get("medicalRecordNumber")); sampleNewborn.setYnumber((String) dynaForm.get("ynumber")); sampleNewborn.setYellowCard((String) dynaForm.get("yellowCard")); sampleNewborn.setWeight((String) dynaForm.get("birthWeight")); sampleNewborn.setMultiBirth((String) dynaForm.get("multipleBirth")); sampleNewborn.setBirthOrder((String) dynaForm.get("birthOrder")); sampleNewborn.setGestationalWeek((Double) dynaForm.get("gestationalWeek")); sampleNewborn.setDateFirstFeeding(dateFirstFeeding); sampleNewborn.setBreast((String) dynaForm.get("breast")); sampleNewborn.setTpn((String) dynaForm.get("tpn")); sampleNewborn.setFormula((String) dynaForm.get("formula")); sampleNewborn.setMilk((String) dynaForm.get("milk")); sampleNewborn.setSoy((String) dynaForm.get("soy")); sampleNewborn.setJaundice((String) dynaForm.get("jaundice")); sampleNewborn.setAntibiotic((String) dynaForm.get("antibiotic")); sampleNewborn.setTransfused((String) dynaForm.get("transfused")); sampleNewborn.setNicu((String) dynaForm.get("nicuPatient")); sampleNewborn.setBirthDefect((String) dynaForm.get("birthDefect")); sampleNewborn.setPregnancyComplication((String) dynaForm.get("pregnancyComplication")); sampleNewborn.setDeceasedSibling((String) dynaForm.get("deceasedSibling")); sampleNewborn.setCauseOfDeath((String) dynaForm.get("causeOfDeath")); sampleNewborn.setFamilyHistory((String) dynaForm.get("familyHistory")); sampleNewborn.setOther((String) dynaForm.get("other")); sampleNewborn.setDateTransfution(dateTransfution); if (!StringUtil.isNullorNill(sampleNewborn.getId())) sampleNewbornDAO.updateData(sampleNewborn); else { sampleNewborn.setId(sampleHuman.getId()); sampleNewbornDAO.insertData(sampleNewborn); } // Provider Provider provider = new Provider(); Person providerPerson = new Person(); ProviderDAO providerDAO = new ProviderDAOImpl(); if (!StringUtil.isNullorNill(sampleHuman.getProviderId())) { provider.setId(sampleHuman.getProviderId()); providerDAO.getData(provider); } if (!StringUtil.isNullorNill(sampleHuman.getProviderId())) { provider.setId(sampleHuman.getProviderId()); providerDAO.getData(provider); providerPerson = (Person) provider.getPerson(); } // SampleOrganization Organization o = new Organization(); OrganizationDAO organizationDAO = new OrganizationDAOImpl(); o.setOrganizationLocalAbbreviation((String) dynaForm.get("submitterNumber")); o = organizationDAO.getOrganizationByLocalAbbreviation(o, true); SampleOrganization sampleOrganization = new SampleOrganization(); SampleOrganizationDAO sampleOrganizationDAO = new SampleOrganizationDAOImpl(); sampleOrganizationDAO.getDataBySample(sampleOrganization); sampleOrganization.setSample(sample); sampleOrganization.setOrganization(o); sampleOrganization.setSysUserId(sysUserId); if (!StringUtil.isNullorNill(sampleOrganization.getId())) sampleOrganizationDAO.updateData(sampleOrganization); else sampleOrganizationDAO.insertData(sampleOrganization); // Person - provider providerPerson.setSysUserId(sysUserId); providerPerson.setFirstName((String) dynaForm.get("physicianFirstName")); providerPerson.setLastName((String) dynaForm.get("physicianLastName")); String providerHomePhone = (String) dynaForm.get("physicianPhoneNumber"); if ((providerHomePhone != null) && (providerHomePhone.length() > 0)) providerHomePhone = StringUtil.formatPhone(providerHomePhone, null); providerPerson.setHomePhone(providerHomePhone); if (!StringUtil.isNullorNill(providerPerson.getId())) personDAO.updateData(providerPerson); else personDAO.insertData(providerPerson); provider.setPerson(providerPerson); provider.setExternalId(BLANK); provider.setSysUserId(sysUserId); if (!StringUtil.isNullorNill(provider.getId())) providerDAO.updateData(provider); else providerDAO.insertData(provider); sampleHuman.setProviderId(provider.getId()); sampleHuman.setSysUserId(sysUserId); sampleHumanDAO.updateData(sampleHuman); tx.commit(); } catch (LIMSRuntimeException lre) { LogEvent.logError("NewbornSampleFullUpdateAction", "performAction()", lre.toString()); tx.rollback(); errors = new ActionMessages(); ActionError error = null; if (lre.getException() instanceof org.hibernate.StaleObjectStateException) { error = new ActionError("errors.OptimisticLockException", null, null); } else { error = new ActionError("errors.UpdateException", null, null); } errors.add(ActionMessages.GLOBAL_MESSAGE, error); saveErrors(request, errors); request.setAttribute(Globals.ERROR_KEY, errors); request.setAttribute(ALLOW_EDITS_KEY, "false"); forward = FWD_FAIL; } finally { HibernateUtil.closeSession(); } if (forward.equals(FWD_FAIL)) return mapping.findForward(forward); // Trigger QA if birthWeight < 200 grams int birthWeight = Integer.parseInt((String) dynaForm.get("birthWeight")); if ((birthWeight > 0) && (birthWeight < 200)) { forward = FWD_SUCCESS_QA_EVENTS_ENTRY; return getForward(mapping.findForward(forward), accessionNumber); } return mapping.findForward(FWD_SUCCESS); }