Example usage for org.apache.commons.beanutils PropertyUtils copyProperties

List of usage examples for org.apache.commons.beanutils PropertyUtils copyProperties

Introduction

In this page you can find the example usage for org.apache.commons.beanutils PropertyUtils copyProperties.

Prototype

public static void copyProperties(Object dest, Object orig)
        throws IllegalAccessException, InvocationTargetException, NoSuchMethodException 

Source Link

Document

Copy property values from the "origin" bean to the "destination" bean for all cases where the property names are the same (even though the actual getter and setter methods might have been customized via BeanInfo classes).

For more details see PropertyUtilsBean.

Usage

From source file:us.mn.state.health.lims.sample.action.NewbornSampleOneUpdateAction.java

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);//  w w w  . ja  va 2 s .c  om
            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();

    org.hibernate.Transaction tx = HibernateUtil.getSession().beginTransaction();
    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);

        tx.commit();
    } catch (LIMSRuntimeException lre) {
        LogEvent.logError("NewbornSampleOneUpdateAction", "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);

    return mapping.findForward(FWD_SUCCESS);

}

From source file:us.mn.state.health.lims.sample.action.NewbornSampleTwoUpdateAction.java

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");

    UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA);
    String sysUserId = String.valueOf(usd.getSystemUserId());

    String birthDate = dynaForm.getString("birthDateForDisplay");
    String birthTime = dynaForm.getString("birthTimeForDisplay");
    String format = "MM/dd/yyyy";
    java.sql.Timestamp dob = null;
    if ((birthDate != null) && (birthDate.length() > 0)) {
        java.text.SimpleDateFormat f = new java.text.SimpleDateFormat(format);
        dob = new java.sql.Timestamp(f.parse(birthDate).getTime());

        if ((birthTime != null) && (birthTime.length() > 0)) {
            Calendar cal = Calendar.getInstance();
            cal.setTime(dob);/*from   w  w w .ja va 2s .  c o m*/
            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());
        }
    }

    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());
        }
    }

    Patient patient = new Patient();
    Person person = new Person();
    Sample sample = new Sample();
    SampleHuman sampleHuman = new SampleHuman();
    SampleNewborn sampleNewborn = new SampleNewborn();

    SampleDAO sampleDAO = new SampleDAOImpl();
    PersonDAO personDAO = new PersonDAOImpl();
    PatientDAO patientDAO = new PatientDAOImpl();
    SampleHumanDAO sampleHumanDAO = new SampleHumanDAOImpl();
    SampleNewbornDAO sampleNewbornDAO = new SampleNewbornDAOImpl();

    org.hibernate.Transaction tx = HibernateUtil.getSession().beginTransaction();
    try {
        sample.setSysUserId(sysUserId);
        sample.setAccessionNumber(accessionNumber);
        sampleDAO.getSampleByAccessionNumber(sample);
        sample.setStatus(SystemConfiguration.getInstance().getSampleStatusEntry2Complete());
        if (collDate != null)
            sample.setCollectionDate(collDate);
        sampleDAO.updateData(sample);

        sampleHuman.setSampleId(sample.getId());
        sampleHumanDAO.getDataBySample(sampleHuman);

        patient.setId(sampleHuman.getPatientId());
        patientDAO.getData(patient);

        person = patient.getPerson();
        personDAO.getData(person);
        person.setSysUserId(sysUserId);
        PropertyUtils.copyProperties(person, dynaForm);
        personDAO.updateData(person);

        patient.setSysUserId(sysUserId);
        patient.setBirthDate(dob);
        patientDAO.updateData(patient);

        sampleNewborn.setId(sampleHuman.getId());
        sampleNewbornDAO.getData(sampleNewborn);
        sampleNewborn.setSysUserId(sysUserId);
        sampleNewborn.setWeight(birthWeight);
        sampleNewbornDAO.updateData(sampleNewborn);

        tx.commit();
    } catch (LIMSRuntimeException lre) {
        LogEvent.logError("NewbornSampleTwoUpdateAction", "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);

    return mapping.findForward(FWD_SUCCESS);

}

From source file:us.mn.state.health.lims.sample.action.QuickEntryAction.java

protected ActionForward performAction(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {
    // This is a new quick entry sample
    String forward = "success";
    request.setAttribute(ALLOW_EDITS_KEY, "false");

    HttpSession session = request.getSession();
    ArrayList selectedTestIds = new ArrayList();
    session.setAttribute("selectedTestIds", selectedTestIds);

    BaseActionForm dynaForm = (BaseActionForm) form;

    // Initialize the form.
    dynaForm.initialize(mapping);/*from ww w .  jav  a2 s.  c  o m*/

    Sample sample = new Sample();

    // Set received date and entered date to today's date
    Date today = Calendar.getInstance().getTime();
    Locale locale = (Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE");
    String dateAsText = DateUtil.formatDateAsText(today, locale);

    SystemConfiguration sysConfig = SystemConfiguration.getInstance();

    sample.setReceivedDateForDisplay(dateAsText);
    sample.setEnteredDateForDisplay(dateAsText);
    sample.setReferredCultureFlag(sysConfig.getQuickEntryDefaultReferredCultureFlag());
    sample.setStickerReceivedFlag(sysConfig.getQuickEntryDefaultStickerReceivedFlag());

    // default nextItemSequence to 1 (for clinical - always 1)
    sample.setNextItemSequence(sysConfig.getQuickEntryDefaultNextItemSequence());

    // revision is set to 0 on insert
    sample.setRevision(sysConfig.getQuickEntryDefaultRevision());

    sample.setCollectionTimeForDisplay(sysConfig.getQuickEntryDefaultCollectionTimeForDisplay());

    if (sample.getId() != null && !sample.getId().equals("0")) {
        request.setAttribute(ID, sample.getId());
    }

    // populate form from valueholder
    PropertyUtils.copyProperties(form, sample);

    PropertyUtils.setProperty(form, "currentDate", dateAsText);
    request.setAttribute("menuDefinition", "QuickEntryDefinition");
    return mapping.findForward(forward);
}

From source file:us.mn.state.health.lims.sample.action.QuickEntryPopulateNewbornTestAction.java

protected ActionForward performAction(ActionMapping mapping, ActionForm form, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    String forward = FWD_SUCCESS;
    request.setAttribute(ALLOW_EDITS_KEY, "false");

    HttpSession session = request.getSession();
    ArrayList selectedTestIds = new ArrayList();
    session.setAttribute("selectedTestIds", selectedTestIds);

    BaseActionForm dynaForm = (BaseActionForm) form;

    String accessionNumber = dynaForm.getString("accessionNumber");
    String accessionNumber2 = dynaForm.getString("accessionNumber2");
    PropertyUtils.setProperty(form, "accessionNumber2", accessionNumber2);
    String sourceOfSampleDesc = dynaForm.getString("sourceOfSampleDesc");
    PropertyUtils.setProperty(form, "sourceOfSampleDesc", sourceOfSampleDesc);
    String sourceOfSampleId = dynaForm.getString("sourceOfSampleId");
    PropertyUtils.setProperty(form, "sourceOfSampleId", sourceOfSampleId);
    String sourceOther = dynaForm.getString("sourceOther");
    PropertyUtils.setProperty(form, "sourceOther", sourceOther);

    TestDAO testDAO = new TestDAOImpl();
    String newbornTestPanelName = SystemConfiguration.getInstance().getNewbornTestPanelName();

    PanelDAO panelDAO = new PanelDAOImpl();
    Panel panel = new Panel();
    panel.setPanelName(newbornTestPanelName);
    panel = panelDAO.getPanelByName(panel);

    PanelItemDAO panelItemDAO = new PanelItemDAOImpl();
    List panelItemsList = panelItemDAO.getPanelItemByPanel(panel, true);

    String idSeparator = SystemConfiguration.getInstance().getDefaultIdSeparator();
    String testIds = "";
    String testNames = "";
    for (int i = 0; i < panelItemsList.size(); i++) {
        PanelItem currentPanelitem = (PanelItem) panelItemsList.get(i);
        String testName = currentPanelitem.getTestName();
        Test panelItemTest = new Test();
        panelItemTest.setTestName(testName);
        panelItemTest = testDAO.getTestByName(panelItemTest);
        testIds += idSeparator + panelItemTest.getId();
        testNames += idSeparator + panelItemTest.getName();
    }/*from ww w. ja  v  a 2  s .  c  o  m*/
    PropertyUtils.setProperty(form, "selectedTestIds", testIds);
    PropertyUtils.setProperty(form, "selectedTestNames", testNames);

    Sample sample = new Sample();

    // Set received date and entered date to today's date
    Date today = Calendar.getInstance().getTime();
    Locale locale = (Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE");
    String dateAsText = DateUtil.formatDateAsText(today, locale);

    SystemConfiguration sysConfig = SystemConfiguration.getInstance();

    sample.setReceivedDateForDisplay(dateAsText);
    sample.setEnteredDateForDisplay(dateAsText);
    sample.setReferredCultureFlag(sysConfig.getQuickEntryDefaultReferredCultureFlag());
    sample.setStickerReceivedFlag(sysConfig.getQuickEntryDefaultStickerReceivedFlag());
    sample.setAccessionNumber(accessionNumber);
    // default nextItemSequence to 1 (for clinical - always 1)
    sample.setNextItemSequence(sysConfig.getQuickEntryDefaultNextItemSequence());

    // revision is set to 0 on insert
    sample.setRevision(sysConfig.getQuickEntryDefaultRevision());

    sample.setCollectionTimeForDisplay(sysConfig.getQuickEntryDefaultCollectionTimeForDisplay());

    if (sample.getId() != null && !sample.getId().equals("0")) {
        request.setAttribute(ID, sample.getId());
    }

    // populate form from valueholder
    PropertyUtils.copyProperties(form, sample);

    PropertyUtils.setProperty(form, "currentDate", dateAsText);
    request.setAttribute("menuDefinition", "QuickEntryDefinition");
    return mapping.findForward(forward);
}

From source file:us.mn.state.health.lims.sample.action.QuickEntryUpdateAction.java

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;

    // Perform server-side validation (validation.xml)
    ActionMessages errors = dynaForm.validate(mapping, request);
    try {//  ww  w. j ava2 s .  c om
        errors = validateAll(request, errors, dynaForm);
    } catch (Exception e) {
        //bugzilla 2154
        LogEvent.logError("QuickEntryUpdateAction", "performAction()", e.toString());
        ActionError error = new ActionError("errors.ValidationException", null, null);
        errors.add(ActionMessages.GLOBAL_MESSAGE, error);
    }
    if ((errors != null) && (errors.size() > 0)) {
        saveErrors(request, errors);
        return mapping.findForward(FWD_FAIL);
    }

    String accessionNumber = (String) dynaForm.get("accessionNumber");
    String accessionNumber2 = (String) dynaForm.get("accessionNumber2");
    String receivedDate = (String) dynaForm.get("receivedDateForDisplay");
    String typeOfSample = (String) dynaForm.get("typeOfSampleDesc");
    String sourceOfSample = (String) dynaForm.get("sourceOfSampleDesc");
    //bugzilla 1778
    String sourceOther = (String) dynaForm.get("sourceOther");
    String stringOfTestIds = (String) dynaForm.get("selectedTestIds");

    Sample sample = null;
    List accessionNumbers = populateAccessionNumberList(accessionNumber, accessionNumber2, null);

    SampleItem sampleItem = new SampleItem();
    sampleItem.setStatusId(StatusService.getInstance().getStatusID(SampleStatus.Entered));
    // 1926 get sysUserId from login module
    UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA);
    String sysUserId = String.valueOf(usd.getSystemUserId());
    Transaction tx = HibernateUtil.getSession().beginTransaction();
    try {
        SampleDAO sampleDAO = new SampleDAOImpl();
        SampleItemDAO sampleItemDAO = new SampleItemDAOImpl();
        AnalysisDAO analysisDAO = new AnalysisDAOImpl();
        TypeOfSampleDAO typeOfSampleDAO = new TypeOfSampleDAOImpl();
        SourceOfSampleDAO sourceOfSampleDAO = new SourceOfSampleDAOImpl();
        AnalysisQaEventDAO analysisQaEventDAO = new AnalysisQaEventDAOImpl();
        QaEventDAO qaEventDAO = new QaEventDAOImpl();

        for (int j = 0; j < accessionNumbers.size(); j++) {

            sample = new Sample();
            sample.setAccessionNumber((String) accessionNumbers.get(j));
            sampleDAO.getSampleByAccessionNumber(sample);

            // if we are in batch mode we need to make
            // sure that the samples being updated are
            // in the correct status
            if (SystemConfiguration.getInstance().getSampleStatusLabelPrinted().equals(sample.getStatus())) {

                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();
                        Test test = new Test();
                        String testId = (String) listOfTestIds[i];
                        test.setId(testId);

                        TestDAO testDAO = new TestDAOImpl();
                        testDAO.getData(test);
                        analysis.setTest(test);
                        // bgm - bugzilla 1495 setting analysis status here
                        // from
                        // above
                        analysis.setStatus(SystemConfiguration.getInstance().getAnalysisStatusAssigned());
                        //bugzilla 1942
                        analysis.setIsReportable(test.getIsReportable());

                        /** TODO: need to populate this with actual data!!! */
                        analysis.setAnalysisType("TEST");
                        analyses.add(analysis);
                    }
                }

                sample.setAccessionNumber((String) accessionNumbers.get(j));
                sample.setStatus(SystemConfiguration.getInstance().getSampleStatusQuickEntryComplete());
                sample.setReceivedDateForDisplay(receivedDate);
                sample.setCollectionTimeForDisplay("00:00");
                // Set entered date to today's date
                Date today = Calendar.getInstance().getTime();
                Locale locale = (Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE");
                String dateAsText = DateUtil.formatDateAsText(today, locale);
                sample.setEnteredDateForDisplay(dateAsText);

                //bugzilla 2528
                String newbornTypeOfSample = SystemConfiguration.getInstance().getNewbornTypeOfSample();
                if (typeOfSample.equals(newbornTypeOfSample))
                    sample.setDomain(SystemConfiguration.getInstance().getNewbornDomain());
                else
                    sample.setDomain(SystemConfiguration.getInstance().getHumanDomain());

                sampleItem.setSortOrder("1");
                if (!StringUtil.isNullorNill(typeOfSample)) {
                    TypeOfSample typeOfSamp = new TypeOfSample();
                    typeOfSamp.setDescription(typeOfSample);
                    typeOfSamp.setDomain(SystemConfiguration.getInstance().getHumanDomain());
                    typeOfSamp = typeOfSampleDAO.getTypeOfSampleByDescriptionAndDomain(typeOfSamp, true);
                    sampleItem.setTypeOfSample(typeOfSamp);
                }

                if (!StringUtil.isNullorNill(sourceOfSample)) {
                    SourceOfSample sourceOfSamp = new SourceOfSample();
                    sourceOfSamp.setDescription(sourceOfSample);

                    //bugzilla 2528
                    if (typeOfSample.equals(newbornTypeOfSample))
                        sourceOfSamp.setDomain(SystemConfiguration.getInstance().getNewbornDomain());
                    else
                        sourceOfSamp.setDomain(SystemConfiguration.getInstance().getHumanDomain());

                    String sourceOfSampleId = dynaForm.getString("sourceOfSampleId");
                    sourceOfSamp = sourceOfSampleDAO.getSourceOfSampleByDescriptionAndDomain(sourceOfSamp,
                            true);
                    sampleItem.setSourceOfSampleId(sourceOfSampleId);
                }

                //bugzilla 1778
                if (!StringUtil.isNullorNill(sourceOther)) {
                    sampleItem.setSourceOther(sourceOther);
                }

                // bugzilla 1926
                sample.setSysUserId(sysUserId);
                sampleItem.setSysUserId(sysUserId);
                if (!StringUtil.isNullorNill(sample.getId())) {
                    // Now update
                    sampleDAO.updateData(sample);
                    // bugzilla 1773 need to store sample not sampleId for
                    // use in sorting
                    sampleItem.setSample(sample);
                } else {

                    sampleDAO.insertDataWithAccessionNumber(sample);
                    // bugzilla 1773 need to store sample not sampleId for
                    // use in sorting
                    sampleItem.setSample(sample);
                }

                sampleItemDAO.insertData(sampleItem);

                // Analysis table
                for (int i = 0; i < analyses.size(); i++) {
                    Analysis analysis = (Analysis) analyses.get(i);
                    analysis.setSampleItem(sampleItem);
                    // bugizlla 1926
                    analysis.setSysUserId(sysUserId);
                    //bugzilla 2064
                    analysis.setRevision(SystemConfiguration.getInstance().getAnalysisDefaultRevision());

                    //bugzilla 2013 added duplicateCheck parameter
                    analysisDAO.insertData(analysis, false);

                    //bugzilla 2028: If Sample Type NOT GIVE then create ANALYSIS_QA_EVENT for each added test
                    if (typeOfSample.equals(SAMPLE_TYPE_NOT_GIVEN)) {
                        QaEvent qaEvent = new QaEvent();
                        qaEvent.setQaEventName(
                                SystemConfiguration.getInstance().getQaEventCodeForRequestNoSampleType());
                        qaEvent = qaEventDAO.getQaEventByName(qaEvent);
                        AnalysisQaEvent analysisQaEvent = new AnalysisQaEvent();
                        analysisQaEvent.setAnalysis(analysis);
                        analysisQaEvent.setQaEvent(qaEvent);
                        analysisQaEvent.setCompletedDate(null);
                        analysisQaEvent.setSysUserId(sysUserId);
                        analysisQaEventDAO.insertData(analysisQaEvent);
                    }
                }
            }
        }

        tx.commit();

    } catch (LIMSRuntimeException lre) {
        //bugzilla 2154
        LogEvent.logError("QuickEntryUpdateAction", "performAction()", lre.toString());
        tx.rollback();
        errors = new ActionMessages();
        ActionError error = null;
        if (lre.getException() instanceof StaleObjectStateException) {
            error = new ActionError("errors.OptimisticLockException", null, null);
        } else {
            //bugzilla 2154
            LogEvent.logError("QuickEntryUpdateAction", "performAction()", lre.toString());
            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");
        return mapping.findForward(FWD_FAIL);

    } finally {
        HibernateUtil.closeSession();
    }

    // initialize the form
    dynaForm.initialize(mapping);
    PropertyUtils.copyProperties(dynaForm, sample);
    dynaForm.set("accessionNumber", accessionNumber);
    dynaForm.set("accessionNumber2", accessionNumber2);
    // PropertyUtils.setProperty(dynaForm, "sysUsers", sysUsers);

    if ("true".equalsIgnoreCase(request.getParameter("close"))) {
        forward = FWD_CLOSE;
    }
    if (forward.equals(FWD_SUCCESS)) {
        request.setAttribute("menuDefinition", "default");
    }

    return mapping.findForward(forward);
}

From source file:us.mn.state.health.lims.sample.action.SampleAction.java

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 id = request.getParameter(ID);

    String forward = FWD_SUCCESS;
    request.setAttribute(ALLOW_EDITS_KEY, "true");
    request.setAttribute(PREVIOUS_DISABLED, "true");
    request.setAttribute(NEXT_DISABLED, "true");

    DynaActionForm dynaForm = (DynaActionForm) form;

    // initialize the form
    dynaForm.initialize(mapping);/*from ww  w .jav a  2  s  .com*/

    Sample sample = new Sample();
    //System.out.println("I am in SampleAction and this is id " + id);
    if ((id != null) && (!"0".equals(id))) { // this is an existing
        // sample

        sample.setId(id);
        SampleDAO sampleDAO = new SampleDAOImpl();
        sampleDAO.getData(sample);

        // initialize sysUserId
        if (sample.getSystemUser() != null) {
            sample.setSysUserId(sample.getSystemUser().getId());
        }

        isNew = false; // this is to set correct page title

        // do we need to enable next or previous?
        List samples = sampleDAO.getNextSampleRecord(sample.getId());
        if (samples.size() > 0) {
            // enable next button
            request.setAttribute(NEXT_DISABLED, "false");
        }
        samples = sampleDAO.getPreviousSampleRecord(sample.getId());
        if (samples.size() > 0) {
            // enable next button
            request.setAttribute(PREVIOUS_DISABLED, "false");
        }
        // end of logic to enable next or previous button

    } else { // this is a new sample
        // default received date and entered date to today's date
        Date today = Calendar.getInstance().getTime();
        Locale locale = (Locale) request.getSession().getAttribute("org.apache.struts.action.LOCALE");

        String dateAsText = DateUtil.formatDateAsText(today, locale);

        sample.setReceivedDateForDisplay(dateAsText);
        sample.setEnteredDateForDisplay(dateAsText);

        // default referredCultureFlag to 'N'
        sample.setReferredCultureFlag("S");

        // default stickerReceivedFlag to 'N'
        sample.setStickerReceivedFlag(NO);

        // default nextItemSequence to 1 (for clinical - always 1)
        sample.setNextItemSequence("1");

        // revision is set to 0 on insert
        sample.setRevision("0");

        isNew = true; // this is to set correct page title

    }

    if (sample.getId() != null && !sample.getId().equals("0")) {
        request.setAttribute(ID, sample.getId());
    }

    // populate form from valueholder
    PropertyUtils.copyProperties(form, sample);

    //SampleDAO sampleDAO = new SampleDAOImpl();
    SystemUserDAO sysUserDAO = new SystemUserDAOImpl();
    SampleDomainDAO sampleDomainDAO = new SampleDomainDAOImpl();

    //List samples = sampleDAO.getAllSamples();
    List sysUsers = sysUserDAO.getAllSystemUsers();
    List sampleDomains = sampleDomainDAO.getAllSampleDomains();

    //PropertyUtils.setProperty(form, "parentSamples", samples);
    PropertyUtils.setProperty(form, "sysUsers", sysUsers);
    PropertyUtils.setProperty(form, "sampleDomains", sampleDomains);

    //System.out.println("I am in SampleAction this is forward " + forward);

    return mapping.findForward(forward);
}

From source file:us.mn.state.health.lims.sample.action.SampleUpdateAction.java

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");
    request.setAttribute(PREVIOUS_DISABLED, "false");
    request.setAttribute(NEXT_DISABLED, "false");

    String id = request.getParameter(ID);

    if (StringUtil.isNullorNill(id) || "0".equals(id)) {
        isNew = true;//from ww  w  .  j  a  v  a 2  s.co m
    } 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");

    Sample sample = new Sample();
    //get sysUserId from login module
    UserSessionData usd = (UserSessionData) request.getSession().getAttribute(USER_SESSION_DATA);
    String sysUserId1 = String.valueOf(usd.getSystemUserId());
    sample.setSysUserId(sysUserId1);
    org.hibernate.Transaction tx = HibernateUtil.getSession().beginTransaction();

    String sysUserId = (String) dynaForm.get("sysUserId");
    //String sampleIdRelatesTo = (String) dynaForm.get("sampleIdRelatesTo");

    List sysUsers = new ArrayList();
    //List samps = new ArrayList();
    List sampleDomains = new ArrayList();

    if (dynaForm.get("sysUsers") != null) {
        sysUsers = (List) dynaForm.get("sysUsers");
    } else {
        SystemUserDAO sysUserDAO = new SystemUserDAOImpl();
        sysUsers = sysUserDAO.getAllSystemUsers();
    }
    if (dynaForm.get("sampleDomains") != null) {
        sampleDomains = (List) dynaForm.get("sampleDomains");
    } else {
        SampleDomainDAO sampleDomainDAO = new SampleDomainDAOImpl();
        sampleDomains = sampleDomainDAO.getAllSampleDomains();
    }

    SystemUser sysUser = null;

    for (int i = 0; i < sysUsers.size(); i++) {
        SystemUser su = (SystemUser) sysUsers.get(i);
        if (su.getId().equals(sysUserId)) {
            sysUser = su;
            break;
        }
    }

    // populate valueholder from form
    PropertyUtils.copyProperties(sample, dynaForm);

    // set the system user
    sample.setSystemUser(sysUser);

    // set collection time
    String time = (String) dynaForm.get("collectionTimeForDisplay");

    if (StringUtil.isNullorNill(time)) {
        time = "00:00";
    }
    sample.setCollectionTimeForDisplay(time);

    Timestamp d = sample.getCollectionDate();
    if (time.indexOf(":") > 0) {
        //bugzilla 1857 deprecated stuff
        Calendar cal = Calendar.getInstance();
        cal.setTime(d);
        cal.set(Calendar.HOUR_OF_DAY, Integer.valueOf(time.substring(0, 2)).intValue());
        cal.set(Calendar.MINUTE, Integer.valueOf(time.substring(3, 5)).intValue());
        //d.setHours(Integer.valueOf(time.substring(0, 2)).intValue());
        //d.setMinutes(Integer.valueOf(time.substring(3, 5)).intValue());
        d = new Timestamp(cal.getTimeInMillis());
        sample.setCollectionDate(d);
    }

    try {

        SampleDAO sampleDAO = new SampleDAOImpl();

        if (!isNew) {
            // UPDATE
            sampleDAO.updateData(sample);
            if (FWD_NEXT.equals(direction)) {
                List samples = sampleDAO.getNextSampleRecord(sample.getId());
                if (samples != null && samples.size() > 0) {
                    sample = (Sample) samples.get(0);
                    sampleDAO.getData(sample);
                    if (samples.size() < 2) {
                        // disable next button
                        request.setAttribute(NEXT_DISABLED, "true");
                    }
                    id = sample.getId();
                } else {
                    // disable next button
                    request.setAttribute(NEXT_DISABLED, "true");
                }
                forward = FWD_NEXT;
            }

            if (FWD_PREVIOUS.equals(direction)) {
                List samples = sampleDAO.getPreviousSampleRecord(sample.getId());
                if (samples != null && samples.size() > 0) {
                    sample = (Sample) samples.get(0);
                    sampleDAO.getData(sample);
                    if (samples.size() < 2) {
                        // disable previous button
                        request.setAttribute(PREVIOUS_DISABLED, "true");
                    }
                    id = sample.getId();
                } else {
                    // disable previous button
                    request.setAttribute(PREVIOUS_DISABLED, "true");
                }
                forward = FWD_PREVIOUS;
            }
        } else {
            // INSERT

            sampleDAO.insertData(sample);
        }
        tx.commit();
    } catch (LIMSRuntimeException lre) {
        //bugzilla 2154
        LogEvent.logError("SampleUpdateAction", "performAction()", lre.toString());
        tx.rollback();
        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);
        } 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");
        // disable previous and next
        request.setAttribute(PREVIOUS_DISABLED, "true");
        request.setAttribute(NEXT_DISABLED, "true");
        forward = FWD_FAIL;

    } finally {
        HibernateUtil.closeSession();
    }
    if (forward.equals(FWD_FAIL))
        return mapping.findForward(forward);

    // initialize the form
    dynaForm.initialize(mapping);
    // repopulate the form from valueholder
    PropertyUtils.copyProperties(dynaForm, sample);

    // need to repopulate in case of FWD_FAIL?
    PropertyUtils.setProperty(dynaForm, "sysUsers", sysUsers);
    PropertyUtils.setProperty(dynaForm, "sampleDomains", sampleDomains);

    if ("true".equalsIgnoreCase(request.getParameter("close"))) {
        forward = FWD_CLOSE;
    }

    if (sample.getId() != null && !sample.getId().equals("0")) {
        request.setAttribute(ID, sample.getId());

    }

    //bugzilla 1400
    if (isNew)
        forward = FWD_SUCCESS_INSERT;
    return getForward(mapping.findForward(forward), id, start);

}

From source file:us.mn.state.health.lims.sample.daoimpl.SampleDAOImpl.java

public void getData(Sample sample) throws LIMSRuntimeException {
    try {/*  w  w w  . j a va 2 s  . c  om*/
        Sample samp = (Sample) HibernateUtil.getSession().get(Sample.class, sample.getId());

        if (samp != null) {

            // set sample projects
            String sql = "from SampleProject sp where samp_id = :sampleId";
            Query query = HibernateUtil.getSession().createQuery(sql);
            query.setParameter("sampleId", Integer.parseInt(samp.getId()));
            List list = query.list();
            HibernateUtil.getSession().flush();
            HibernateUtil.getSession().clear();

            samp.setSampleProjects(list);

            PropertyUtils.copyProperties(sample, samp);
        } else {
            sample.setId(null);
        }
    } catch (Exception e) {
        //bugzilla 2154
        LogEvent.logError("SampleDAOImpl", "getData()", e.toString());
        throw new LIMSRuntimeException("Error in Sample getData()", e);
    }
}

From source file:us.mn.state.health.lims.sample.daoimpl.SampleDAOImpl.java

public void getSampleByAccessionNumber(Sample sample) throws LIMSRuntimeException {
    try {//from  ww w .  j  a va  2  s  .  co m
        String sql = "from Sample s where s.accessionNumber = :param";
        org.hibernate.Query query = HibernateUtil.getSession().createQuery(sql);
        query.setParameter("param", sample.getAccessionNumber());
        List list = query.list();
        HibernateUtil.getSession().flush();
        HibernateUtil.getSession().clear();

        Sample samp = null;
        if (list.size() > 0)
            samp = (Sample) list.get(0);

        if (samp != null) {
            // set sample projects
            sql = "from SampleProject sp where samp_id = :param";
            query = HibernateUtil.getSession().createQuery(sql);
            query.setInteger("param", Integer.parseInt(samp.getId()));
            List sp = query.list();
            HibernateUtil.getSession().flush();
            HibernateUtil.getSession().clear();
            samp.setSampleProjects(sp);

            PropertyUtils.copyProperties(sample, samp);
        } else {
            sample.setId(null);
        }
    } catch (Exception e) {
        //bugzilla 2154
        LogEvent.logError("SampleDAOImpl", "getDataByAccessionNumber()", e.toString());
        throw new LIMSRuntimeException("Error in Sample getDataByAccessionNumber()", e);
    }
}

From source file:us.mn.state.health.lims.sampledomain.action.SampleDomainAction.java

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 SampleDomain.
    // If there is a parameter present, we should bring up an existing
    // SampleDomain to edit.

    String id = request.getParameter(ID);

    String forward = FWD_SUCCESS;
    request.setAttribute(ALLOW_EDITS_KEY, "true");
    request.setAttribute(PREVIOUS_DISABLED, "true");
    request.setAttribute(NEXT_DISABLED, "true");

    DynaActionForm dynaForm = (DynaActionForm) form;

    // initialize the form
    dynaForm.initialize(mapping);//from  w ww . jav a 2 s. com

    SampleDomain sampleDomain = new SampleDomain();

    //System.out.println("I am in SampleDomainAction and this is id " + id);
    if ((id != null) && (!"0".equals(id))) { // this is an existing
        // sampleDomain

        sampleDomain.setId(id);
        SampleDomainDAO sampleDomainDAO = new SampleDomainDAOImpl();
        sampleDomainDAO.getData(sampleDomain);
        isNew = false; // this is to set correct page title

        // do we need to enable next or previous?
        //bugzilla 1427 pass in desc not id
        List sampleDomains = sampleDomainDAO.getNextSampleDomainRecord(sampleDomain.getDescription());
        if (sampleDomains.size() > 0) {
            // enable next button
            request.setAttribute(NEXT_DISABLED, "false");
        }
        //bugzilla 1427 pass in desc not id
        sampleDomains = sampleDomainDAO.getPreviousSampleDomainRecord(sampleDomain.getDescription());
        if (sampleDomains.size() > 0) {
            // enable next button
            request.setAttribute(PREVIOUS_DISABLED, "false");
        }
        // end of logic to enable next or previous button
    } else { // this is a new sampleDomain
        isNew = true; // this is to set correct page title
    }

    if (sampleDomain.getId() != null && !sampleDomain.getId().equals("0")) {
        request.setAttribute(ID, sampleDomain.getId());
    }

    // populate form from valueholder
    PropertyUtils.copyProperties(form, sampleDomain);

    return mapping.findForward(forward);
}