private void addAnalyzerResultFromLine(List<AnalyzerResults> results, String line) { String[] fields = StringUtil.separateCSVWithMixedEmbededQuotes(line); // This insures that the row has not been truncated if (fields.length < maxViewedIndex) { return; } AnalyzerReaderUtil readerUtil = new AnalyzerReaderUtil(); String analyzerAccessionNumber = fields[Sample_ID].replace("\"", ""); analyzerAccessionNumber = StringUtil.strip(analyzerAccessionNumber, " "); String date = fields[Date_Analyzed].replace("\"", ""); // this is sort of dumb, we have the indexes we are interested in for (int i = 0; i < testNameIndex.length; i++) { if (!GenericValidator.isBlankOrNull(testNameIndex[i])) { MappedTestName mappedName = AnalyzerTestNameCache.instance() .getMappedTest(AnalyzerType.FACSCANTO, testNameIndex[i].replace("\"", "")); if (mappedName == null) { mappedName = AnalyzerTestNameCache.instance() .getEmptyMappedTestName( AnalyzerType.FACSCANTO, testNameIndex[i].replace("\"", "")); } AnalyzerResults analyzerResults = new AnalyzerResults(); analyzerResults.setAnalyzerId(mappedName.getAnalyzerId()); String result = fields[i].replace("\"", ""); result = roundTwoDigits(result); analyzerResults.setResult(result); analyzerResults.setUnits(unitsIndex[i]); analyzerResults.setCompleteDate( DateUtil.convertStringDateToTimestampWithPatternNoLocale(date, DATE_PATTERN)); // analyzerResults.setCompleteTime(DateUtil.convertStringDateToTimestamp(date)); analyzerResults.setTestId(mappedName.getTestId()); analyzerResults.setAccessionNumber(analyzerAccessionNumber); analyzerResults.setTestName(mappedName.getOpenElisTestName()); if (analyzerAccessionNumber != null) { analyzerResults.setIsControl( analyzerAccessionNumber.startsWith(CONTROL_ACCESSION_PREFIX)); } else { analyzerResults.setIsControl(false); } results.add(analyzerResults); AnalyzerResults resultFromDB = readerUtil.createAnalyzerResultFromDB(analyzerResults); if (resultFromDB != null) { results.add(resultFromDB); } } } }
protected ActionForward getForward(ActionForward forward, String accessionNumber) { ActionRedirect redirect = new ActionRedirect(forward); if (!StringUtil.isNullorNill(accessionNumber)) redirect.addParameter(ACCESSION_NUMBER, accessionNumber); return redirect; }
private void manageColumns(String line) { String[] fields = StringUtil.separateCSVWithEmbededQuotes(line); if (fields.length < 10) { fields = line.split(","); } for (int i = 0; i < fields.length; i++) { String header = fields[i].replace("\"", ""); if (SAMPLE_ID_HEADER.equals(header)) { Sample_ID = i; maxViewedIndex = Math.max(maxViewedIndex, i); } else if (DATE_ANALYZED_HEADER.equals(header)) { Date_Analyzed = i; maxViewedIndex = Math.max(maxViewedIndex, i); } else if (CD3_CD8_CD45_CD4_CD3_CD4_PER_LYMPHS_HEADER.equals(header)) { CD3_CD8_CD45_CD4_CD3_CD4_perLymphs = i; maxViewedIndex = Math.max(maxViewedIndex, i); } else if (CD3_CD8_CD45_CD4_CD3_PER_LYMPHS_HEADER.equals(header)) { CD3_CD8_CD45_CD4_CD3_perLymphs = i; maxViewedIndex = Math.max(maxViewedIndex, i); } } testNameIndex = new String[fields.length]; unitsIndex = new String[fields.length]; testNameIndex[CD3_CD8_CD45_CD4_CD3_perLymphs] = "CD3_PER"; testNameIndex[CD3_CD8_CD45_CD4_CD3_CD4_perLymphs] = "CD4_PER"; unitsIndex[CD3_CD8_CD45_CD4_CD3_perLymphs] = "%"; unitsIndex[CD3_CD8_CD45_CD4_CD3_CD4_perLymphs] = "%"; }
public static String getDisplayNormalRange( double low, double high, String significantDigits, String separator) { if ((low == Double.MIN_VALUE && high == Double.MAX_VALUE) || low == high) { return ""; } if (high == Float.POSITIVE_INFINITY) { return "> " + StringUtil.doubleWithSignificantDigits(low, significantDigits); } if (low == Float.NEGATIVE_INFINITY) { return "< " + StringUtil.doubleWithSignificantDigits(high, significantDigits); } return StringUtil.doubleWithSignificantDigits(low, significantDigits) + separator + StringUtil.doubleWithSignificantDigits(high, significantDigits); }
protected String convertToDisplayableXML(String xml) { if (!StringUtil.isNullorNill(xml)) { xml = xml.replaceAll("<", "<"); xml = xml.replaceAll(">", ">"); // the following 2 lines are for display on page (not for system // out) xml = xml.replaceAll("\n", "<br>"); xml = xml.replaceAll(" ", " "); } return xml; }
private static List<IdValuePair> createGenderList() { List<IdValuePair> genders = new ArrayList<IdValuePair>(); @SuppressWarnings("unchecked") List<Gender> genderList = new GenderDAOImpl().getAllGenders(); for (Gender gender : genderList) { genders.add( new IdValuePair( gender.getGenderType(), StringUtil.getContextualMessageForKey(gender.getNameKey()))); } return genders; }
@Override public void initializeReport(BaseActionForm dynaForm) { super.initializeReport(); errorFound = false; lowerDateRange = dynaForm.getString("lowerDateRange"); upperDateRange = dynaForm.getString("upperDateRange"); if (GenericValidator.isBlankOrNull(lowerDateRange)) { errorFound = true; ErrorMessages msgs = new ErrorMessages(); msgs.setMsgLine1(StringUtil.getMessageForKey("report.error.message.noPrintableItems")); errorMsgs.add(msgs); } if (GenericValidator.isBlankOrNull(upperDateRange)) { upperDateRange = lowerDateRange; } try { lowDate = DateUtil.convertStringDateToSqlDate(lowerDateRange); highDate = DateUtil.convertStringDateToSqlDate(upperDateRange); } catch (LIMSRuntimeException re) { errorFound = true; ErrorMessages msgs = new ErrorMessages(); msgs.setMsgLine1(StringUtil.getMessageForKey("report.error.message.date.format")); errorMsgs.add(msgs); } createReportParameters(); initializeReportItems(); setTestMapForAllTests(); setAnalysisForDateRange(); setTestAggregates(); }
@Override protected void createReportParameters() { super.createReportParameters(); reportParameters.put("activityLabel", getActivityLabel()); reportParameters.put( "accessionPrefix", AccessionNumberUtil.getAccessionNumberValidator().getPrefix()); reportParameters.put( "labNumberTitle", StringUtil.getContextualMessageForKey("quick.entry.accession.number")); reportParameters.put( "labName", ConfigurationProperties.getInstance().getPropertyValue(Property.SiteName)); reportParameters.put("siteLogo", getSiteLogo()); reportParameters.put("SUBREPORT_DIR", reportPath); reportParameters.put("startDate", dateRange.getLowDateStr()); reportParameters.put("endDate", dateRange.getHighDateStr()); reportParameters.put("isReportByTest", isReportByTest()); }
// 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); } }
private List<Result> createResultFromAnalysisItem( AnalysisItem analysisItem, AnalysisService analysisService, NoteService noteService) { ResultSaveBean bean = ResultSaveBeanAdapter.fromAnalysisItem(analysisItem); ResultSaveService resultSaveService = new ResultSaveService(analysisService.getAnalysis(), currentUserId); List<Result> results = resultSaveService.createResultsFromTestResultItem(bean, deletableList); if (analysisService.patientReportHasBeenDone() && resultSaveService.isUpdatedResult()) { analysisService.getAnalysis().setCorrectedSincePatientReport(true); noteUpdateList.add( noteService.createSavableNote( NoteType.EXTERNAL, StringUtil.getMessageForKey("note.corrected.result"), RESULT_SUBJECT, currentUserId)); } return results; }
private void createNeededNotes(AnalysisItem analysisItem, NoteService noteService) { if (analysisItem.getIsRejected()) { Note note = noteService.createSavableNote( NoteType.INTERNAL, StringUtil.getMessageForKey("validation.note.retest"), RESULT_SUBJECT, currentUserId); noteUpdateList.add(note); } if (!GenericValidator.isBlankOrNull(analysisItem.getNote())) { NoteType noteType = analysisItem.getIsAccepted() ? NoteType.EXTERNAL : NoteType.INTERNAL; Note note = noteService.createSavableNote( noteType, analysisItem.getNote(), RESULT_SUBJECT, currentUserId); noteUpdateList.add(note); } }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm dynaForm = (DynaActionForm) form; HttpSession session = request.getSession(); String forward = FWD_SUCCESS; ResultsEntryRoutingSwitchSessionHandler.switchOff( RESULTS_ENTRY_ROUTING_FROM_QAEVENTS_ENTRY_LINELISTING, session); String accessionNumber = (String) request.getParameter(ACCESSION_NUMBER); if (StringUtil.isNullorNill(accessionNumber)) { accessionNumber = (String) dynaForm.get("accessionNumber"); } return getForward(mapping.findForward(forward), accessionNumber); }
protected ActivityReportBean createActivityReportBean(Result result, boolean useTestName) { ActivityReportBean item = new ActivityReportBean(); ResultService resultService = new ResultService(result); SampleService sampleService = new SampleService(result.getAnalysis().getSampleItem().getSample()); PatientService patientService = new PatientService(sampleService.getSample()); item.setResultValue(resultService.getResultValue("\n", true, true)); item.setTechnician(resultService.getSignature()); item.setAccessionNumber(sampleService.getAccessionNumber().substring(PREFIX_LENGTH)); item.setReceivedDate(sampleService.getReceivedDateWithTwoYearDisplay()); item.setResultDate(DateUtil.convertTimestampToTwoYearStringDate(result.getLastupdated())); item.setCollectionDate( DateUtil.convertTimestampToTwoYearStringDate( result.getAnalysis().getSampleItem().getCollectionDate())); List<String> values = new ArrayList<String>(); values.add( patientService.getLastName() == null ? "" : patientService.getLastName().toUpperCase()); values.add(patientService.getNationalId()); String referringPatientId = ObservationHistoryService.getValueForSample( ObservationType.REFERRERS_PATIENT_ID, sampleService.getSample().getId()); values.add(referringPatientId == null ? "" : referringPatientId); String name = StringUtil.buildDelimitedStringFromList(values, " / ", true); if (useTestName) { item.setPatientOrTestName(resultService.getTestName()); item.setNonPrintingPatient(name); } else { item.setPatientOrTestName(name); } return item; }
protected ActionForward performAction( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "true"); request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); BaseActionForm dynaForm = (BaseActionForm) form; HttpSession session = request.getSession(); String accessionNumber = (String) request.getParameter(ACCESSION_NUMBER); String viewMode = (String) dynaForm.get("viewMode"); String fullScreenSection = (String) dynaForm.get("fullScreenSection"); String multipleSampleMode = (String) dynaForm.get("multipleSampleMode"); // bugzila 2555 initialize the form dynaForm.initialize(mapping); // initialize test management routing switch to on/initializes other switches to off QaEventRoutingSwitchSessionHandler.switchOn( QA_EVENTS_ENTRY_ROUTING_FROM_QAEVENTS_ENTRY_LINELISTING, session); // PropertyUtils.setProperty(dynaForm, "viewMode", viewMode); // PropertyUtils.setProperty(dynaForm, "fullScreenSection", fullScreenSection); session.setAttribute(QAEVENTS_ENTRY_PARAM_VIEW_MODE, viewMode); session.setAttribute(QAEVENTS_ENTRY_FULL_SCREEN_VIEW_SECTION, fullScreenSection); request.setAttribute(ACCESSION_NUMBER, accessionNumber); if (!StringUtil.isNullorNill(multipleSampleMode)) { forward = FWD_SUCCESS_MULTIPLE_SAMPLE_MODE; } 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; // 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 String getReportNameForParameterPage() { return StringUtil.getMessageForKey("reports.label.project.export") + " " + StringUtil.getContextualMessageForKey("sample.collectionDate"); }
// 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 { // 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 TestAnalyte. // If there is a parameter present, we should bring up an existing // TestAnalyte to edit. TestAnalyteTestResultActionForm dynaForm = (TestAnalyteTestResultActionForm) form; String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "false"); request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); // CHANGED // String selectedTestId = (String) request.getParameter("Test"); List methods = new ArrayList(); MethodDAO methodDAO = new MethodDAOImpl(); methods = methodDAO.getAllMethods(); // Get tests/testsections by user system id // bugzilla 2160 UserTestSectionDAO userTestSectionDAO = new UserTestSectionDAOImpl(); List testSections = userTestSectionDAO.getAllUserTestSections(request); // bugzilla 2291 List tests = userTestSectionDAO.getAllUserTests(request, false); List selectedAnalyteTypes = new ArrayList(); // bugzilla 1870 List selectedAnalyteIsReportables = new ArrayList(); List selectedAnalyteResultGroups = new ArrayList(); List selectedAnalyteIds = new ArrayList(); List selectedAnalyteNames = new ArrayList(); List selectedTestAnalyteIds = new ArrayList(); List testAnalyteLastupdatedList = new ArrayList(); List testResultResultGroups = new ArrayList(); List testResultResultGroupTypes = new ArrayList(); List testResultValueList = new ArrayList(); List dictionaryEntryIdList = new ArrayList(); List flagsList = new ArrayList(); // bugzilla 1845 add testResult sortOrder List sortList = new ArrayList(); List significantDigitsList = new ArrayList(); List quantLimitList = new ArrayList(); List testResultIdList = new ArrayList(); List testResultLastupdatedList = new ArrayList(); Test test = new Test(); // FIXED BUG - NEED TO REFRESH SELECTIONS ON GOING INTO FORM // get 3 drop down selections so we can repopulate // String selectedTestSectionId = (String) dynaForm // .get("selectedTestSectionId"); // String selectedMethodId = (String) dynaForm.get("selectedMethodId"); // String selectedTestId = (String) dynaForm.get("selectedTestId"); String selectedTestId = null; String selectedTestSectionId = null; String selectedMethodId = null; // END BUG FIX // initialize the form dynaForm.initialize(mapping); dynaForm.resetLists(); // bugzilla 1350 need to check if test has been selected so stray // components don't display if (!StringUtil.isNullorNill(selectedTestId)) { // if test is selected enable the save button request.setAttribute(ALLOW_EDITS_KEY, "true"); test.setId(selectedTestId); TestDAO testDAO = new TestDAOImpl(); testDAO.getData(test); TestAnalyteDAO testAnalyteDAO = new TestAnalyteDAOImpl(); List testAnalytes = testAnalyteDAO.getAllTestAnalytesPerTest(test); TestResultDAO testResultDAO = new TestResultDAOImpl(); List testResults = testResultDAO.getAllActiveTestResultsPerTest(test); DictionaryDAO dictDAO = new DictionaryDAOImpl(); if (testAnalytes != null && testAnalytes.size() > 0) { for (int i = 0; i < testAnalytes.size(); i++) { TestAnalyte ta = (TestAnalyte) testAnalytes.get(i); selectedAnalyteTypes.add(ta.getTestAnalyteType()); // bugzilla 1870 selectedAnalyteIsReportables.add(ta.getIsReportable()); if (ta.getResultGroup() != null) { selectedAnalyteResultGroups.add(ta.getResultGroup()); } else { selectedAnalyteResultGroups.add(""); } selectedAnalyteIds.add(ta.getAnalyte().getId()); selectedAnalyteNames.add(ta.getAnalyte().getAnalyteName()); selectedTestAnalyteIds.add(ta.getId()); } if (testResults != null && testResults.size() > 0) { for (int i = 0; i < testResults.size(); i++) { TestResult tr = (TestResult) testResults.get(i); testResultIdList.add(tr.getId()); testResultLastupdatedList.add(tr.getLastupdated()); testResultResultGroups.add(tr.getResultGroup()); testResultResultGroupTypes.add(tr.getTestResultType()); if (tr.getTestResultType() .equals(SystemConfiguration.getInstance().getDictionaryType())) { dictionaryEntryIdList.add(tr.getValue()); Dictionary dict = new Dictionary(); dict.setId(tr.getValue()); dictDAO.getData(dict); // bugzilla 1847: use dictEntryDisplayValue testResultValueList.add(dict.getDictEntryDisplayValue()); } else { dictionaryEntryIdList.add(""); testResultValueList.add(tr.getValue()); } if (tr.getFlags() == null) { flagsList.add(""); } else { flagsList.add(tr.getFlags()); } // bugzilla 1845 add testResult sortOrder if (tr.getSortOrder() == null) { sortList.add(""); } else { sortList.add(tr.getSortOrder()); } if (tr.getSignificantDigits() == null) { significantDigitsList.add(""); } else { significantDigitsList.add(tr.getSignificantDigits()); } if (tr.getQuantLimit() == null) { quantLimitList.add(""); } else { quantLimitList.add(tr.getQuantLimit()); } } } isNew = false; } else { isNew = true; } } else { isNew = true; } PropertyUtils.setProperty(dynaForm, "selectedAnalyteTypes", selectedAnalyteTypes); // bugzilla 1870 PropertyUtils.setProperty( dynaForm, "selectedAnalyteIsReportables", selectedAnalyteIsReportables); PropertyUtils.setProperty(dynaForm, "selectedAnalyteResultGroups", selectedAnalyteResultGroups); PropertyUtils.setProperty(dynaForm, "selectedAnalyteIds", selectedAnalyteIds); PropertyUtils.setProperty(dynaForm, "selectedTestAnalyteIds", selectedTestAnalyteIds); PropertyUtils.setProperty(dynaForm, "testAnalyteLastupdatedList", testAnalyteLastupdatedList); PropertyUtils.setProperty(dynaForm, "selectedAnalyteNames", selectedAnalyteNames); PropertyUtils.setProperty(dynaForm, "testResultResultGroups", testResultResultGroups); PropertyUtils.setProperty(dynaForm, "testResultResultGroupTypes", testResultResultGroupTypes); PropertyUtils.setProperty(dynaForm, "testResultValueList", testResultValueList); PropertyUtils.setProperty(dynaForm, "testResultIdList", testResultIdList); PropertyUtils.setProperty(dynaForm, "testResultLastupdatedList", testResultLastupdatedList); PropertyUtils.setProperty(dynaForm, "dictionaryEntryIdList", dictionaryEntryIdList); PropertyUtils.setProperty(dynaForm, "flagsList", flagsList); // bugzilla 1845 add testResult sortOrder PropertyUtils.setProperty(dynaForm, "sortList", sortList); PropertyUtils.setProperty(dynaForm, "significantDigitsList", significantDigitsList); PropertyUtils.setProperty(dynaForm, "quantLimitList", quantLimitList); PropertyUtils.setProperty(dynaForm, "test", (test == null ? new Test() : test)); // sort three drop down lists Collections.sort(testSections, TestSectionComparator.NAME_COMPARATOR); // bugzilla 1844 - no longer sort by name but by description Collections.sort(tests, TestComparator.DESCRIPTION_COMPARATOR); Collections.sort(methods, MethodComparator.NAME_COMPARATOR); PropertyUtils.setProperty(dynaForm, "testSections", testSections); PropertyUtils.setProperty(dynaForm, "methods", methods); PropertyUtils.setProperty(dynaForm, "tests", tests); PropertyUtils.setProperty(dynaForm, "selectedTestSectionId", selectedTestSectionId); PropertyUtils.setProperty(dynaForm, "selectedMethodId", selectedMethodId); PropertyUtils.setProperty(dynaForm, "selectedTestId", selectedTestId); return mapping.findForward(forward); }
// compares values against HashMap of HSE1 values before going to dbase to // revalidate submitted values // bugzilla 1765 changes to city state zip validation protected ActionMessages validateAll( HttpServletRequest request, ActionMessages errors, BaseActionForm dynaForm, HashMap humanSampleOneMap) throws Exception { String result; String messageKey; ProjectIdValidationProvider projIdValidator = new ProjectIdValidationProvider(); String projNum = (String) dynaForm.get("projectIdOrName"); if (!StringUtil.isNullorNill(projNum)) { // project ID validation against database (reusing ajax // validation logic) result = compareAgainstHSE1HashMap(humanSampleOneMap, projNum, "projectId"); if (result.equals(INVALID)) { result = projIdValidator.validate(projNum); messageKey = "humansampleone.projectNumber"; if (result.equals(INVALID)) { String projName = (String) dynaForm.get("projectNameOrId"); result = compareAgainstHSE1HashMap(humanSampleOneMap, projName, "projectName"); if (result.equals(INVALID)) { result = projIdValidator.validate(projName); if (result.equals(INVALID)) { ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } } } String proj2Num = (String) dynaForm.get("project2IdOrName"); if (!StringUtil.isNullorNill(proj2Num)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, proj2Num, "projectId2"); if (result.equals(INVALID)) { result = projIdValidator.validate(proj2Num); messageKey = "humansampleone.project2Number"; if (result.equals(INVALID)) { String proj2Name = (String) dynaForm.get("project2NameOrId"); result = compareAgainstHSE1HashMap(humanSampleOneMap, proj2Name, "projectName2"); if (result.equals(INVALID)) { result = projIdValidator.validate(proj2Name); if (result.equals(INVALID)) { ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } } } // accession number validation against database (reusing ajax // validation logic) String accnNum = (String) dynaForm.get("accessionNumber"); if (!StringUtil.isNullorNill(accnNum)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, accnNum, "accessionNumber"); if (result.equals(INVALID)) { errors = validateAccessionNumber(request, errors, dynaForm); } } // organization ID (submitter) validation against database (reusing ajax // validation logic) // bugzilla 2069 String organizationLocalAbbreviation = (String) dynaForm.get("organizationLocalAbbreviation"); if (!StringUtil.isNullorNill(organizationLocalAbbreviation)) { result = compareAgainstHSE1HashMap( humanSampleOneMap, organizationLocalAbbreviation, "organizationLocalAbbreviation"); if (result.equals(INVALID)) { // bugzilla 2531 OrganizationLocalAbbreviationValidationProvider organizationLocalAbbreviationValidator = new OrganizationLocalAbbreviationValidationProvider(); result = organizationLocalAbbreviationValidator.validate( (String) dynaForm.get("organizationLocalAbbreviation"), null); messageKey = "humansampleone.provider.organization.localAbbreviation"; if (result.equals(INVALID)) { ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } boolean stateValid = true; String state = (String) dynaForm.get("state"); if (!StringUtil.isNullorNill(state)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, state, "state"); if (result.equals(INVALID)) { // state validation against database (reusing ajax validation // logic StateValidationProvider stateValidator = new StateValidationProvider(); result = stateValidator.validate(state); messageKey = "person.state"; if (result.equals(INVALID)) { stateValid = false; ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } boolean cityValid = true; String city = (String) dynaForm.get("city"); if (!StringUtil.isNullorNill(city)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, city, "city"); if (result.equals(INVALID)) { // city validation against database (reusing ajax validation // logic CityValidationProvider cityValidator = new CityValidationProvider(); result = cityValidator.validate(city); messageKey = "person.city"; if (result.equals(INVALID)) { cityValid = false; ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } boolean zipValid = true; String zip = (String) dynaForm.get("zipCode"); if (!StringUtil.isNullorNill(zip)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, zip, "zipCode"); if (result.equals(INVALID)) { // zip validation against database (reusing ajax validation // logic ZipValidationProvider zipValidator = new ZipValidationProvider(); result = zipValidator.validate((String) dynaForm.get("zipCode")); messageKey = "person.zipCode"; if (result.equals(INVALID)) { zipValid = false; ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } if (stateValid && cityValid && zipValid) { String messageKey1 = "person.city"; String messageKey2 = "person.zipCode"; String messageKey3 = "person.state"; CityStateZipComboValidationProvider cityStateZipComboValidator = new CityStateZipComboValidationProvider(); result = cityStateZipComboValidator.validate( (String) dynaForm.get("city"), (String) dynaForm.get("state"), (String) dynaForm.get("zipCode")); // combination is invalid if result is invalid if ("invalid".equals(result)) { ActionError error = new ActionError( "errors.combo.3.invalid", getMessageForKey(messageKey1), getMessageForKey(messageKey2), getMessageForKey(messageKey3), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } // sample type validation against database (reusing ajax validation // logic String sampleType = (String) dynaForm.get("typeOfSampleDesc"); if (!StringUtil.isNullorNill(sampleType)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, sampleType, "typeOfSampleDesc"); if (result.equals(INVALID)) { HumanSampleTypeValidationProvider typeValidator = new HumanSampleTypeValidationProvider(); result = typeValidator.validate(sampleType); messageKey = "sampleitem.typeOfSample"; if (result.equals(INVALID)) { ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } String sampleSource = (String) dynaForm.get("sourceOfSampleDesc"); if (!StringUtil.isNullorNill(sampleSource)) { result = compareAgainstHSE1HashMap(humanSampleOneMap, sampleSource, "sourceOfSampleDesc"); // sample source validation against database (reusing ajax // validation // logic if (result.equals(INVALID)) { HumanSampleSourceValidationProvider sourceValidator = new HumanSampleSourceValidationProvider(); result = sourceValidator.validate(sampleSource); messageKey = "sampleitem.sourceOfSample"; if (result.equals(INVALID)) { ActionError error = new ActionError("errors.invalid", getMessageForKey(messageKey), null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } } } return errors; }
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); }
private HashMap populateHumanSampleOneMap( Patient patient, Person person, Provider provider, Person providerPerson, Sample sample, SampleHuman sampleHuman, SampleOrganization sampleOrganization, SampleItem sampleItem, List analyses) { HashMap humanSampleOneMap = new HashMap(); List sampleProjects = new ArrayList(); SampleProject sampleProject = null; SampleProject sampleProject2 = null; sampleProjects = sample.getSampleProjects(); if (sampleProjects != null && sampleProjects.size() > 0) { sampleProject = (SampleProject) sampleProjects.get(0); if (sampleProjects.size() > 1) { sampleProject2 = (SampleProject) sampleProjects.get(1); } } if (sample.getAccessionNumber() != null) { humanSampleOneMap.put("accessionNumber", sample.getAccessionNumber()); } else { humanSampleOneMap.put("accessionNumber", ""); } if (patient.getBirthDateForDisplay() != null) { humanSampleOneMap.put("birthDateForDisplay", patient.getBirthDateForDisplay()); } else { humanSampleOneMap.put("birthDateForDisplay", ""); } if (sample.getCollectionDateForDisplay() != null) { humanSampleOneMap.put("collectionDateForDisplay", sample.getCollectionDateForDisplay()); } else { humanSampleOneMap.put("collectionDateForDisplay", ""); } if (sample.getCollectionTimeForDisplay() != null) { humanSampleOneMap.put("collectionTimeForDisplay", sample.getCollectionTimeForDisplay()); } else { // bugzilla 1894 humanSampleOneMap.put( "collectionTimeForDisplay", SystemConfiguration.getInstance().getHumanSampleOneDefaultCollectionTimeForDisplay()); } // bugzilla 1904 if (patient.getChartNumber() != null) { humanSampleOneMap.put("chartNumber", patient.getChartNumber()); } else { humanSampleOneMap.put("chartNumber", ""); } if (person.getCity() != null) { // bugzilla 1766 humanSampleOneMap.put("city", person.getCity().toUpperCase().trim()); } else { humanSampleOneMap.put("city", ""); } if (sample.getClientReference() != null) { humanSampleOneMap.put("clientReference", sample.getClientReference()); } else { humanSampleOneMap.put("clientReference", ""); } if (patient.getExternalId() != null) { humanSampleOneMap.put("externalId", patient.getExternalId()); } else { humanSampleOneMap.put("externalId", ""); } if (person.getFirstName() != null) { humanSampleOneMap.put("firstName", person.getFirstName()); } else { humanSampleOneMap.put("firstName", ""); } if (patient.getGender() != null) { humanSampleOneMap.put("gender", patient.getGender()); } else { humanSampleOneMap.put("gender", ""); } if (person.getLastName() != null) { humanSampleOneMap.put("lastName", person.getLastName()); } else { humanSampleOneMap.put("lastName", ""); } if (person.getMiddleName() != null) { humanSampleOneMap.put("middleName", person.getMiddleName()); } else { humanSampleOneMap.put("middleName", ""); } if (person.getMultipleUnit() != null) { humanSampleOneMap.put("multipleUnit", person.getMultipleUnit()); } else { humanSampleOneMap.put("multipleUnit", ""); } if (sampleOrganization != null && sampleOrganization.getOrganization() != null) { // bugzilla 2069 humanSampleOneMap.put( "organizationLocalAbbreviation", sampleOrganization.getOrganization().getOrganizationLocalAbbreviation()); humanSampleOneMap.put( "organizationNameForDisplay", sampleOrganization.getOrganization().getOrganizationName()); } else { humanSampleOneMap.put("organizationLocalAbbreviation", ""); humanSampleOneMap.put("organizationNameForDisplay", ""); } if (sampleProject != null && sampleProject.getProject() != null) { // bugzilla 2438 humanSampleOneMap.put("projectId", sampleProject.getProject().getLocalAbbreviation()); // bugzilla 1766 since we capitolize project name do this here // for comparison purposes humanSampleOneMap.put( "projectName", sampleProject.getProject().getProjectName().toUpperCase().trim()); } else { humanSampleOneMap.put("projectId", ""); humanSampleOneMap.put("projectName", ""); } if (sampleProject2 != null && sampleProject2.getProject() != null) { // bugzilla 2438 humanSampleOneMap.put("projectId2", sampleProject2.getProject().getLocalAbbreviation()); // bugzilla 1766 since we capitolize project name do this here // for comparison purposes humanSampleOneMap.put( "projectName2", sampleProject2.getProject().getProjectName().toUpperCase().trim()); } else { humanSampleOneMap.put("projectId2", ""); humanSampleOneMap.put("projectName2", ""); } if (providerPerson.getFirstName() != null) { humanSampleOneMap.put("providerFirstName", providerPerson.getFirstName()); } else { humanSampleOneMap.put("providerFirstName", ""); } if (providerPerson.getLastName() != null) { humanSampleOneMap.put("providerLastName", providerPerson.getLastName()); } else { humanSampleOneMap.put("providerLastName", ""); } if (providerPerson.getWorkPhone() != null) { String storedResult = providerPerson.getWorkPhone(); humanSampleOneMap.put("providerWorkPhone", StringUtil.formatPhoneForDisplay(storedResult)); } else { humanSampleOneMap.put("providerWorkPhone", ""); } if (providerPerson.getWorkPhone() != null) { String storedResult = providerPerson.getWorkPhone(); // bugzilla 2442 String extension = StringUtil.formatExtensionForDisplay(storedResult); humanSampleOneMap.put("providerWorkPhoneExtension", StringUtil.trim(extension)); } else { humanSampleOneMap.put("providerWorkPhoneExtension", ""); } if (sample.getReceivedDateForDisplay() != null) { humanSampleOneMap.put("receivedDateForDisplay", sample.getReceivedDateForDisplay()); } else { humanSampleOneMap.put("receivedDateForDisplay", ""); } if (sample.getReferredCultureFlag() != null) { humanSampleOneMap.put("referredCultureFlag", sample.getReferredCultureFlag()); } else { humanSampleOneMap.put("referredCultureFlag", ""); } if (sampleItem.getSourceOfSample() != null) { SourceOfSample sos = (SourceOfSample) sampleItem.getSourceOfSample(); // bugzilla 1766 humanSampleOneMap.put("sourceOfSampleDesc", sos.getDescription().toUpperCase().trim()); // bugzilla 1465 humanSampleOneMap.put("sourceOfSampleId", sos.getId()); } else { humanSampleOneMap.put("sourceOfSampleDesc", ""); // bugzilla 1465 humanSampleOneMap.put("sourceOfSampleId", ""); } if (sampleItem.getSourceOther() != null) { humanSampleOneMap.put("sourceOther", sampleItem.getSourceOther().trim()); } else { humanSampleOneMap.put("sourceOther", ""); } if (person.getState() != null) { humanSampleOneMap.put("state", person.getState()); } else { humanSampleOneMap.put("state", ""); } if (sample.getStickerReceivedFlag() != null) { humanSampleOneMap.put("stickerReceivedFlag", sample.getStickerReceivedFlag()); } else { humanSampleOneMap.put("stickerReceivedFlag", ""); } if (person.getStreetAddress() != null) { humanSampleOneMap.put("streetAddress", person.getStreetAddress().trim()); } else { humanSampleOneMap.put("streetAddress", ""); } if (sampleItem.getTypeOfSample() != null) { TypeOfSample tos = (TypeOfSample) sampleItem.getTypeOfSample(); // bugzilla 1766 humanSampleOneMap.put("typeOfSampleDesc", tos.getDescription().toUpperCase().trim()); // bugzilla 1465 humanSampleOneMap.put("typeOfSampleId", tos.getId()); } else { humanSampleOneMap.put("typeOfSampleDesc", ""); // bugzilla 1465 humanSampleOneMap.put("typeOfSampleId", ""); } if (person.getZipCode() != null) { humanSampleOneMap.put("zipCode", person.getZipCode().trim()); } else { humanSampleOneMap.put("zipCode", ""); } return humanSampleOneMap; }
protected List createMenuList( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { // System.out.println("I am in OrganizationMenuAction createMenuList()"); List organizations = new ArrayList(); String stringStartingRecNo = (String) request.getAttribute("startingRecNo"); int startingRecNo = Integer.parseInt(stringStartingRecNo); // bugzilla 2372 String searchString = (String) request.getParameter("searchString"); String doingSearch = (String) request.getParameter("search"); OrganizationDAO organizationDAO = new OrganizationDAOImpl(); if (!StringUtil.isNullorNill(doingSearch) && doingSearch.equals(YES)) organizations = organizationDAO.getPagesOfSearchedOrganizations(startingRecNo, searchString); else organizations = organizationDAO.getPageOfOrganizations(startingRecNo); request.setAttribute("menuDefinition", "OrganizationMenuDefinition"); // bugzilla 1411 set pagination variables // bugzilla 2372 set pagination variables for searched results if (!StringUtil.isNullorNill(doingSearch) && doingSearch.equals(YES)) request.setAttribute( MENU_TOTAL_RECORDS, String.valueOf(organizationDAO.getTotalSearchedOrganizationCount(searchString))); else request.setAttribute( MENU_TOTAL_RECORDS, String.valueOf(organizationDAO.getTotalOrganizationCount())); request.setAttribute(MENU_FROM_RECORD, String.valueOf(startingRecNo)); int numOfRecs = 0; if (organizations != null) { if (organizations.size() > SystemConfiguration.getInstance().getDefaultPageSize()) { numOfRecs = SystemConfiguration.getInstance().getDefaultPageSize(); } else { numOfRecs = organizations.size(); } numOfRecs--; } int endingRecNo = startingRecNo + numOfRecs; request.setAttribute(MENU_TO_RECORD, String.valueOf(endingRecNo)); // end bugzilla 1411 // bugzilla 2372 request.setAttribute(MENU_SEARCH_BY_TABLE_COLUMN, "organization.organizationName"); // bugzilla 2372 set up a seraching mode so the next and previous action will know // what to do if (!StringUtil.isNullorNill(doingSearch) && doingSearch.equals(YES)) { request.setAttribute(IN_MENU_SELECT_LIST_HEADER_SEARCH, "true"); request.setAttribute(MENU_SELECT_LIST_HEADER_SEARCH_STRING, searchString); } return organizations; }
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 Sample. // If there is a parameter present, we should bring up an existing // Sample to edit. String forward = FWD_SUCCESS; request.setAttribute(ALLOW_EDITS_KEY, "true"); String id = request.getParameter(ID); if (StringUtil.isNullorNill(id) || "0".equals(id)) { isNew = true; } else { isNew = false; } BaseActionForm dynaForm = (BaseActionForm) form; // first get the accessionNumber and whether we are on blank page or not String accessionNumber = (String) dynaForm.get("accessionNumber"); // bugzilla 2154 LogEvent.logDebug( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", "accessionNumber coming in: " + accessionNumber); String start = (String) request.getParameter("startingRecNo"); String typeOfSample = (String) dynaForm.get("typeOfSampleDesc"); String sourceOfSample = (String) dynaForm.get("sourceOfSampleDesc"); List typeOfSamples = new ArrayList(); List sourceOfSamples = new ArrayList(); if (dynaForm.get("typeOfSamples") != null) { typeOfSamples = (List) dynaForm.get("typeOfSamples"); } else { TypeOfSampleDAO typeOfSampleDAO = new TypeOfSampleDAOImpl(); typeOfSamples = typeOfSampleDAO.getAllTypeOfSamples(); } if (dynaForm.get("sourceOfSamples") != null) { sourceOfSamples = (List) dynaForm.get("sourceOfSamples"); } else { SourceOfSampleDAO sourceOfSampleDAO = new SourceOfSampleDAOImpl(); sourceOfSamples = sourceOfSampleDAO.getAllSourceOfSamples(); } HashMap humanSampleOneMap = new HashMap(); if (dynaForm.get("humanSampleOneMap") != null) { humanSampleOneMap = (HashMap) dynaForm.get("humanSampleOneMap"); } String projectIdOrName = (String) dynaForm.get("projectIdOrName"); String project2IdOrName = (String) dynaForm.get("project2IdOrName"); String projectNameOrId = (String) dynaForm.get("projectNameOrId"); String project2NameOrId = (String) dynaForm.get("project2NameOrId"); String projectId = null; String project2Id = null; if (projectIdOrName != null && projectNameOrId != null) { try { Integer i = Integer.valueOf(projectIdOrName); projectId = projectIdOrName; } catch (NumberFormatException nfe) { // bugzilla 2154 LogEvent.logError( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", nfe.toString()); projectId = projectNameOrId; } } if (project2IdOrName != null && project2NameOrId != null) { try { Integer i = Integer.valueOf(project2IdOrName); project2Id = project2IdOrName; } catch (NumberFormatException nfe) { // bugzilla 2154 LogEvent.logError( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", nfe.toString()); project2Id = project2NameOrId; } } // bugzilla 2154 LogEvent.logDebug( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", "ProjectId is: " + projectId + " Project2Id is: " + project2Id); // set current date for validation of dates Date today = Calendar.getInstance().getTime(); Locale locale = (Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE"); String dateAsText = DateUtil.formatDateAsText(today, locale); Patient patient = new Patient(); Person person = new Person(); Provider provider = new Provider(); Person providerPerson = new Person(); Sample sample = new Sample(); SampleHuman sampleHuman = new SampleHuman(); SampleOrganization sampleOrganization = new SampleOrganization(); List sampleProjects = new ArrayList(); List updatedSampleProjects = new ArrayList(); SampleItem sampleItem = new SampleItem(); // TODO need to populate this with tests entered in HSE I List analyses = new ArrayList(); // tests are not handled in HSE II /* * String stringOfTestIds = (String) dynaForm.get("selectedTestIds"); * * String[] listOfTestIds = stringOfTestIds.split(SystemConfiguration * .getInstance().getDefaultIdSeparator(), -1); * * List analyses = new ArrayList(); for (int i = 0; i < * listOfTestIds.length; i++) { if * (!StringUtil.isNullorNill(listOfTestIds[i])) { Analysis analysis = * new Analysis(); analysis.setTestId(listOfTestIds[i]); // TODO: need * to populate this with actual data!!! * analysis.setAnalysisType("TEST"); analyses.add(analysis); } } */ ActionMessages errors = null; // validate on server-side sample accession number try { errors = new ActionMessages(); errors = validateAccessionNumber(request, errors, dynaForm); // System.out.println("Just validated accessionNumber"); } catch (Exception e) { // bugzilla 2154 LogEvent.logError( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", e.toString()); ActionError error = new ActionError("errors.ValidationException", null, null); errors.add(ActionMessages.GLOBAL_MESSAGE, error); } // System.out.println("This is errors after validation of accn Number " // + errors); if (errors != null && errors.size() > 0) { saveErrors(request, errors); // initialize the form but retain the invalid accessionNumber dynaForm.initialize(mapping); dynaForm.set("accessionNumber", accessionNumber); // repopulate lists PropertyUtils.setProperty(dynaForm, "typeOfSamples", typeOfSamples); PropertyUtils.setProperty(dynaForm, "sourceOfSamples", sourceOfSamples); request.setAttribute(ALLOW_EDITS_KEY, "false"); return mapping.findForward(FWD_FAIL); } // System.out.println("Now try to get data for accession number "); try { PatientDAO patientDAO = new PatientDAOImpl(); PersonDAO personDAO = new PersonDAOImpl(); ProviderDAO providerDAO = new ProviderDAOImpl(); SampleDAO sampleDAO = new SampleDAOImpl(); SampleItemDAO sampleItemDAO = new SampleItemDAOImpl(); SampleHumanDAO sampleHumanDAO = new SampleHumanDAOImpl(); SampleOrganizationDAO sampleOrganizationDAO = new SampleOrganizationDAOImpl(); AnalysisDAO analysisDAO = new AnalysisDAOImpl(); sample.setAccessionNumber(accessionNumber); sampleDAO.getSampleByAccessionNumber(sample); if (!StringUtil.isNullorNill(sample.getId())) { sampleHuman.setSampleId(sample.getId()); sampleHumanDAO.getDataBySample(sampleHuman); sampleOrganization.setSampleId(sample.getId()); sampleOrganizationDAO.getDataBySample(sampleOrganization); // bugzilla 1773 need to store sample not sampleId for use in // sorting sampleItem.setSample(sample); sampleItemDAO.getDataBySample(sampleItem); patient.setId(sampleHuman.getPatientId()); patientDAO.getData(patient); person = patient.getPerson(); personDAO.getData(person); provider.setId(sampleHuman.getProviderId()); providerDAO.getData(provider); providerPerson = provider.getPerson(); personDAO.getData(providerPerson); // bugzilla 2227 analyses = analysisDAO.getMaxRevisionAnalysesBySample(sampleItem); humanSampleOneMap = populateHumanSampleOneMap( patient, person, provider, providerPerson, sample, sampleHuman, sampleOrganization, sampleItem, analyses); } } catch (LIMSRuntimeException lre) { // if error then forward to fail and don't update to blank page // = false // bugzilla 2154 LogEvent.logError( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", lre.toString()); errors = new ActionMessages(); 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); // bugzilla 2154 LogEvent.logError( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", "errors.OptimisticLockException"); } else { error = new ActionError("errors.GetException", null, null); // bugzilla 2154 LogEvent.logError( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", "errors.GetException"); } 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); } // initialize the form dynaForm.initialize(mapping); // set lastupdated fields dynaForm.set("lastupdated", sample.getLastupdated()); dynaForm.set("personLastupdated", person.getLastupdated()); dynaForm.set("patientLastupdated", patient.getLastupdated()); dynaForm.set("providerPersonLastupdated", providerPerson.getLastupdated()); dynaForm.set("providerLastupdated", provider.getLastupdated()); dynaForm.set("sampleItemLastupdated", sampleItem.getLastupdated()); dynaForm.set("sampleHumanLastupdated", sampleHuman.getLastupdated()); dynaForm.set("sampleOrganizationLastupdated", sampleOrganization.getLastupdated()); if (updatedSampleProjects != null && updatedSampleProjects.size() > 0) { if (updatedSampleProjects.size() == 1) { SampleProject sp = (SampleProject) updatedSampleProjects.get(0); dynaForm.set("sampleProject1Lastupdated", sp.getLastupdated()); // bugzilla 1857 deprecated stuff // System.out.println("This is sp ts " // + StringUtil.formatDateAsText(sp.getLastupdated(), // SystemConfiguration.getInstance() // .getDefaultLocale())); } if (updatedSampleProjects.size() == 2) { SampleProject sp2 = (SampleProject) updatedSampleProjects.get(1); dynaForm.set("sampleProject2Lastupdated", sp2.getLastupdated()); // bugzilla 1857 deprecated stuff // System.out.println("This is sp2 ts " // + StringUtil.formatDateAsText(sp2.getLastupdated(), // SystemConfiguration.getInstance() // .getDefaultLocale())); } } if (dynaForm.get("sampleProject1Lastupdated") == null) { PropertyUtils.setProperty( form, "sampleProject1Lastupdated", new Timestamp(System.currentTimeMillis())); } if (dynaForm.get("sampleProject2Lastupdated") == null) { PropertyUtils.setProperty( form, "sampleProject2Lastupdated", new Timestamp(System.currentTimeMillis())); } PropertyUtils.setProperty(dynaForm, "currentDate", dateAsText); PropertyUtils.setProperty(dynaForm, "accessionNumber", sample.getAccessionNumber()); // set receivedDate PropertyUtils.setProperty( dynaForm, "receivedDateForDisplay", (String) sample.getReceivedDateForDisplay()); PropertyUtils.setProperty(dynaForm, "typeOfSamples", typeOfSamples); PropertyUtils.setProperty(dynaForm, "sourceOfSamples", sourceOfSamples); PropertyUtils.setProperty(dynaForm, "humanSampleOneMap", humanSampleOneMap); if ("true".equalsIgnoreCase(request.getParameter("close"))) { forward = FWD_CLOSE; } if (sample.getId() != null && !sample.getId().equals("0")) { request.setAttribute(ID, sample.getId()); } if (forward.equals(FWD_SUCCESS)) { request.setAttribute("menuDefinition", "default"); } // bugzilla 2154 LogEvent.logDebug( "HumanSampleTwoPopulateHashMapFromDE1Action", "performAction()", "forwarding to: " + forward); // pdf - get accession number List if (SystemConfiguration.getInstance().getEnabledSamplePdf().equals(YES)) { String status = SystemConfiguration.getInstance().getSampleStatusEntry1Complete(); // status = 2 String humanDomain = SystemConfiguration.getInstance().getHumanDomain(); UserTestSectionDAO userTestSectionDAO = new UserTestSectionDAOImpl(); List accessionNumberListTwo = userTestSectionDAO.getSamplePdfList(request, locale, status, humanDomain); PropertyUtils.setProperty(form, "accessionNumberListTwo", accessionNumberListTwo); } // return getForward(mapping.findForward(forward), id, start); return mapping.findForward(forward); }
@Override protected String getObjectName() { return StringUtil.getMessageForKey("note.note"); }
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 { // 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 List populateHistoryList( HttpServletRequest request, List historyRecords, String rootNodeName, String xslMappingFileName) throws LIMSRuntimeException { List list = new ArrayList(); try { SystemUserDAO systemUserDAO = new SystemUserDAOImpl(); AuditTrailDAO auditTrailDAO = new AuditTrailDAOImpl(); for (int i = 0; i < historyRecords.size(); i++) { History historyRecord = (History) historyRecords.get(i); Timestamp date = historyRecord.getTimestamp(); String stringLocale = SystemConfiguration.getInstance().getDefaultLocale().toString(); String dateForDisplay = DateUtil.convertTimestampToStringDateAndTime(date, stringLocale); SystemUser systemUser = new SystemUser(); systemUser.setId(historyRecord.getSysUserId()); systemUserDAO.getData(systemUser); String blob = null; if (!historyRecord.getActivity().equals(AUDIT_TRAIL_INSERT)) { blob = auditTrailDAO.retrieveBlobData(historyRecord.getId()); } // this is temporary until 2593 has been completed if (historyRecord.getActivity().equals(IActionConstants.AUDIT_TRAIL_UPDATE)) { blob = "<" + rootNodeName + ">" + blob + "</" + rootNodeName + ">"; } if (!StringUtil.isNullorNill(blob)) { HistoryXmlHelper historyXmlHelper = new HistoryXmlHelper(); historyXmlHelper.setActivity(historyRecord.getActivity()); historyXmlHelper.setUserName(systemUser.getNameForDisplay()); String media = null, title = null, charset = null, xsldata = ""; ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { // NOTE!!!! // in order to run this in oc4j I needed to do the following: // add this to OC4J startup: // -Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl // to make sure that oc4j uses correct XSL processor (else it could not handle "function // extensions" used to bring in MessageResources labels // place xalan.jar, xml-apis.jar, XercesImpl.jar into the applib folder of the oc4j // installation TransformerFactory tFactory = TransformerFactory.newInstance(); HttpSession session = request.getSession(); ServletContext context = session.getServletContext(); File xslFile = new File(context.getRealPath("/WEB-INF/transformation/" + xslMappingFileName)); Source stylesheet = new StreamSource(xslFile); Transformer transformer = tFactory.newTransformer(stylesheet); System.out.println("This is blob " + blob); transformer.transform( new StreamSource(new StringReader(blob)), new StreamResult(outputStream)); } catch (TransformerConfigurationException tce) { tce.printStackTrace(); } catch (TransformerException te) { te.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } System.out.println("This is xml " + outputStream.toString()); historyXmlHelper.setChange(outputStream.toString()); historyXmlHelper.setDate(dateForDisplay); if (!StringUtil.isNullorNill(historyXmlHelper.getChange())) { historyXmlHelper.setChange(historyXmlHelper.getChange().trim()); } if (!StringUtil.isNullorNill(historyXmlHelper.getChange())) { list.add(historyXmlHelper); } } } } catch (Exception e) { throw new LIMSRuntimeException(e); } return list; }
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); }