Search in sources :

Example 41 with ItemBean

use of org.akaza.openclinica.bean.submit.ItemBean in project OpenClinica by OpenClinica.

the class DataEntryServlet method loadFormValueForItemGroup.

/**
     * This methods will create an array of DisplayItemGroupBean, which contains multiple rows for an item group on the data entry form.
     *
     * @param digb
     *            The Item group which has multiple data rows
     * @param dbGroups
     *            The original array got from DB which contains multiple data rows
     * @param formGroups
     *            The new array got from front end which contains multiple data rows
     * @param request TODO
     * @return new constructed formGroups, compare to dbGroups, some rows are update, some new ones are added and some are removed
     */
protected List<DisplayItemGroupBean> loadFormValueForItemGroup(DisplayItemGroupBean digb, List<DisplayItemGroupBean> dbGroups, List<DisplayItemGroupBean> formGroups, int eventDefCRFId, HttpServletRequest request) {
    SectionBean sb = (SectionBean) request.getAttribute(SECTION_BEAN);
    int repeatMax = digb.getGroupMetaBean().getRepeatMax();
    FormProcessor fp = new FormProcessor(request);
    ItemDAO idao = new ItemDAO(getDataSource());
    List<ItemBean> itBeans = idao.findAllItemsByGroupId(digb.getItemGroupBean().getId(), sb.getCRFVersionId());
    LOGGER.debug("+++ starting to review groups: " + repeatMax);
    long timeCheck = System.currentTimeMillis();
    EventCRFBean ecb = (EventCRFBean) request.getAttribute(INPUT_EVENT_CRF);
    // adding this code from below, since we want to pass a null values list
    // in all cases of getDisplayBeansFromItems().
    // For adding null values to display items
    FormBeanUtil formBeanUtil = new FormBeanUtil();
    List<String> nullValuesList = new ArrayList<String>();
    // BWP>> Get a List<String> of any null values such as NA or NI
    // method returns null values as a List<String>
    nullValuesList = formBeanUtil.getNullValuesByEventCRFDefId(eventDefCRFId, getDataSource());
    // >>BWP
    // logger.trace("+++ starting to review groups 2: " + repeatMax);
    long two = System.currentTimeMillis() - timeCheck;
    // logger.trace("time 2: " + two + "ms");
    // >>TBH below dual for loops need a breaker to avoid a performance hit
    int firstLoopBreak = 0;
    int secondLoopBreak = 0;
    ItemDataDAO iddao = new ItemDataDAO(getDataSource(), locale);
    int maxOrdinal = iddao.getMaxOrdinalForGroup(ecb, sb, digb.getItemGroupBean());
    repeatMax = (repeatMax < maxOrdinal) ? maxOrdinal : repeatMax;
    for (int i = 0; i < repeatMax; i++) {
        DisplayItemGroupBean formGroup = new DisplayItemGroupBean();
        formGroup.setItemGroupBean(digb.getItemGroupBean());
        formGroup.setGroupMetaBean(runDynamicsCheck(digb.getGroupMetaBean(), request));
        ItemGroupBean igb = digb.getItemGroupBean();
        // want to do deep copy here, so always get a fresh copy for items,
        // may use other better way to do, like clone
        List<DisplayItemBean> dibs = FormBeanUtil.getDisplayBeansFromItems(itBeans, getDataSource(), ecb, sb.getId(), nullValuesList, getServletContext());
        // and then get newly created rows later, tbh 01/2010
        if (fp.getStartsWith(igb.getOid() + "_manual" + i + "input")) {
            formGroup.setOrdinal(i);
            formGroup.setFormInputOrdinal(i);
            formGroup.setAuto(false);
            formGroup.setInputId(igb.getOid() + "_manual" + i);
            LOGGER.debug("1: set auto to false for " + igb.getOid() + " " + i);
            dibs = processInputForGroupItem(fp, dibs, i, digb, false);
            formGroup.setItems(dibs);
            formGroups.add(formGroup);
        } else if (!StringUtil.isBlank(fp.getString(igb.getOid() + "_manual" + i + ".newRow"))) {
            // ||
            // (fp.getStartsWith(igb.getOid() + "_manual" + i + "input"))) {
            // the ordinal is the number got from [ ] and submitted by
            // repetition javascript
            formGroup.setOrdinal(i);
            formGroup.setFormInputOrdinal(i);
            formGroup.setInputId(igb.getOid() + "_manual" + i + ".newRow");
            formGroup.setAuto(false);
            LOGGER.debug("2: set auto to false for " + igb.getOid() + " " + i);
            dibs = processInputForGroupItem(fp, dibs, i, digb, false);
            formGroup.setItems(dibs);
            formGroups.add(formGroup);
        } else {
            firstLoopBreak++;
        }
        if (firstLoopBreak > 14) {
            LOGGER.debug("break first loop");
            break;
        }
    }
    // end of for (int i = 0; i < repeatMax; i++)
    // >>TBH remove the above eventually, repeat some work here?
    LOGGER.trace("+++ starting to review groups 3: " + repeatMax);
    two = System.currentTimeMillis() - timeCheck;
    LOGGER.trace("time 3: " + two + "ms");
    // had the call to form bean utils here, tbh
    for (int i = 0; i < repeatMax; i++) {
        DisplayItemGroupBean formGroup = new DisplayItemGroupBean();
        formGroup.setItemGroupBean(digb.getItemGroupBean());
        //            try {
        //                // set isShown here, tbh 04/2010
        //                boolean showGroup = getItemMetadataService().isGroupShown(digb.getGroupMetaBean().getId(), ecb);
        //                logger.debug("found show group for group meta bean " + digb.getGroupMetaBean().getId() + ": " + showGroup);
        //                if (showGroup) {
        //                    digb.getGroupMetaBean().setShowGroup(showGroup);
        //                    // we are only hiding, not showing (for now) tbh
        //                }
        //                // << tbh 04/2010
        //            } catch (OpenClinicaException oce) {
        //                // do nothing for right now, just store the bean
        //                logger.debug("throws an OCE for " + digb.getGroupMetaBean().getId());
        //            }
        formGroup.setGroupMetaBean(runDynamicsCheck(digb.getGroupMetaBean(), request));
        ItemGroupBean igb = digb.getItemGroupBean();
        // adding this code from below, since we want to pass a null values
        // list
        // in all cases of getDisplayBeansFromItems().
        // For adding null values to display items
        // FormBeanUtil formBeanUtil = new FormBeanUtil();
        // List<String> nullValuesList = new ArrayList<String>();
        // BWP>> Get a List<String> of any null values such as NA or NI
        // method returns null values as a List<String>
        // >>BWP
        // want to do deep copy here, so always get a fresh copy for items,
        // may use other better way to do, like clone
        // moved it back down here to fix another bug, tbh 12-3-2007
        List<DisplayItemBean> dibs = FormBeanUtil.getDisplayBeansFromItems(itBeans, getDataSource(), ecb, sb.getId(), nullValuesList, getServletContext());
        LOGGER.trace("+++count for dibs after deep copy: " + dibs.size());
        two = System.currentTimeMillis() - timeCheck;
        // created by rep model(add button)
        if (fp.getStartsWith(igb.getOid() + "_" + i + "input")) {
            formGroup.setInputId(igb.getOid() + "_" + i);
            if (i == 0) {
                // ordinal that will be saved into
                formGroup.setOrdinal(i);
            // DB
            } else {
                // from 0 again, the
                formGroup.setFormInputOrdinal(i);
            // ordinal from front
            // end page, needs to be
            // reprocessed
            }
            formGroup.setAuto(true);
            LOGGER.debug("1: set auto to TRUE for " + igb.getOid() + " " + i);
            dibs = processInputForGroupItem(fp, dibs, i, digb, true);
            LOGGER.trace("+++ group ordinal: " + i + " igb name " + igb.getName());
            formGroup.setItems(dibs);
            formGroups.add(formGroup);
        } else if (!StringUtil.isBlank(fp.getString(igb.getOid() + "_" + i + ".newRow"))) {
            // || (fp.getStartsWith(igb.getOid() + "_" + i + "input"))) {
            // the ordinal is the number got from [ ] and submitted by
            // repetition javascript
            formGroup.setInputId(igb.getOid() + "_" + i);
            if (i == 0) {
                // ordinal that will be saved into
                formGroup.setOrdinal(i);
            // DB
            } else {
                // from 0 again, the
                formGroup.setFormInputOrdinal(i);
            // ordinal from front
            // end page, needs to be
            // reprocessed
            }
            // String fieldName = igb.getOid() + "_" + i + this.getInputName(dib);
            // if (!StringUtil.isBlank(fp.getString(fieldName))) {
            // if (i != repeatMax) {
            // formGroup.setAuto(false);
            // logger.debug("set auto to false for " + igb.getOid() + " " + i);
            // } else {
            formGroup.setAuto(true);
            LOGGER.debug("2: set auto to TRUE for " + igb.getOid() + " " + i);
            dibs = processInputForGroupItem(fp, dibs, i, digb, true);
            LOGGER.trace("+++ group ordinal: " + i + " igb name " + igb.getName());
            formGroup.setItems(dibs);
            formGroups.add(formGroup);
        } else {
            secondLoopBreak++;
        }
        if (secondLoopBreak > 14) {
            LOGGER.debug("break second loop");
            break;
        }
    }
    // end of for (int i = 0; i < repeatMax; i++)
    LOGGER.debug("first loop: " + firstLoopBreak);
    LOGGER.debug("second loop: " + secondLoopBreak);
    LOGGER.trace("+++ starting to review groups 4: " + repeatMax);
    two = System.currentTimeMillis() - timeCheck;
    LOGGER.trace("time 4: " + two + "ms");
    // checks how many rows are manually created, not added by repetition
    // model
    int manualRows = getManualRows(formGroups);
    // for (int j = 0; j < formGroups.size(); j++) {
    // DisplayItemGroupBean formItemGroup = formGroups.get(j);
    // // logger.trace("begin formGroup Ordinal:" +
    // // formItemGroup.getOrdinal());
    // if (formItemGroup.isAuto() == false) {
    // manualRows = manualRows + 1;
    // }
    // }
    LOGGER.debug(" manual rows " + manualRows + " formGroup size " + formGroups.size());
    request.setAttribute("manualRows", new Integer(manualRows));
    // reset ordinal for the auto-created rows except for the first row
    for (int j = 0; j < formGroups.size(); j++) {
        DisplayItemGroupBean formItemGroup = formGroups.get(j);
        if (formItemGroup.isAuto() && formItemGroup.getFormInputOrdinal() > 0) {
            LOGGER.trace("+++ formInputOrdinal() " + formItemGroup.getFormInputOrdinal());
            // rows included in the model: first row, last existing row and
            // new rows
            // the rows in between are manually added
            // set the correct ordinal that will be saved into DB
            // the rows generated by model starts from 0, need to add the
            // number of manual rows to
            // get the correct ordinals, otherwise, we will have duplicate
            // ordinals like two ordinal 0
            formItemGroup.setOrdinal(formItemGroup.getFormInputOrdinal() + manualRows);
        }
    }
    LOGGER.trace("+++ starting to review groups 5: " + repeatMax);
    two = System.currentTimeMillis() - timeCheck;
    LOGGER.trace("time 5: " + two + "ms");
    // sort all the rows by ordinal
    Collections.sort(formGroups);
    LOGGER.trace("group row size:" + formGroups.size());
    // suppose we have 3 rows of data from db, the orginal order is 0,1,2,
    // repetition model will submit row number in [ ] like the following:
    // 0,1,2.. consecutive numbers, means no row removed in between
    // 0,1,3,4.. the 2rd row is removed, 3 and 4 are new rows
    int previous = -1;
    for (int j = 0; j < formGroups.size(); j++) {
        DisplayItemGroupBean formItemGroup = formGroups.get(j);
        LOGGER.trace("formGroup Ordinal:" + formItemGroup.getOrdinal());
        // tbh 08/2009
        if (formItemGroup.getOrdinal() == previous) {
            LOGGER.debug("found a match btw previous and ordinal");
            formItemGroup.setEditFlag("edit");
            formItemGroup.setOrdinal(previous + 1);
        // dbGroups.get(j).setEditFlag("edit");
        }
        // << tbh 08/2009
        if (formItemGroup.getOrdinal() > dbGroups.size() - 1) {
            formItemGroup.setEditFlag("add");
        } else {
            for (int i = 0; i < dbGroups.size(); i++) {
                DisplayItemGroupBean dbItemGroup = dbGroups.get(i);
                if (formItemGroup.getOrdinal() == i) {
                    // display, so need to insert this row, not update
                    if ("initial".equalsIgnoreCase(dbItemGroup.getEditFlag())) {
                        formItemGroup.setEditFlag("add");
                    } else {
                        dbItemGroup.setEditFlag("edit");
                        // need to set up item data id in order to update
                        for (DisplayItemBean dib : dbItemGroup.getItems()) {
                            ItemDataBean data = dib.getData();
                            for (DisplayItemBean formDib : formItemGroup.getItems()) {
                                if (formDib.getItem().getId() == dib.getItem().getId()) {
                                    formDib.getData().setId(data.getId());
                                    // this will save the data from IDE
                                    // complete, used only for DDE
                                    formDib.setDbData(dib.getData());
                                    // tbh removed below line so as not to
                                    // log so much, 112007
                                    LOGGER.debug("+++ +++ form dib get data set id " + data.getId());
                                    break;
                                }
                            }
                        }
                        formItemGroup.setEditFlag("edit");
                    }
                    // else
                    break;
                }
            }
        }
        // else
        previous = formItemGroup.getOrdinal();
    }
    LOGGER.trace("+++ === DB group row:" + dbGroups.size());
    LOGGER.trace("+++ === DB group contents: " + dbGroups.toString());
    // cannot get it.-jxu
    for (int i = 0; i < dbGroups.size(); i++) {
        DisplayItemGroupBean dbItemGroup = dbGroups.get(i);
        LOGGER.trace("+++ found edit flag of " + dbItemGroup.getEditFlag() + " for #" + dbItemGroup.getOrdinal());
        // logger.debug("+++ found edit flag of " + dbItemGroup.getEditFlag() + " for #" + dbItemGroup.getOrdinal() + ": " + i);
        if (!"edit".equalsIgnoreCase(dbItemGroup.getEditFlag()) && !"initial".equalsIgnoreCase(dbItemGroup.getEditFlag())) {
            // >> tbh if the group is not shown, we should not touch it 05/2010
            if (dbItemGroup.getGroupMetaBean().isShowGroup()) {
                LOGGER.trace("+++ one row removed, edit flag was " + dbItemGroup.getEditFlag());
                LOGGER.debug("+++ one row removed, edit flag was " + dbItemGroup.getEditFlag());
                dbItemGroup.setEditFlag("remove");
            }
        // << tbh
        }
    }
    LOGGER.debug("+++ about to return form groups: " + formGroups.toString());
    for (int j = 0; j < formGroups.size(); j++) {
        DisplayItemGroupBean formGroup = formGroups.get(j);
        formGroup.setIndex(j);
    }
    return formGroups;
}
Also used : DisplayItemGroupBean(org.akaza.openclinica.bean.submit.DisplayItemGroupBean) DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) ItemDAO(org.akaza.openclinica.dao.submit.ItemDAO) FormBeanUtil(org.akaza.openclinica.view.form.FormBeanUtil) FormProcessor(org.akaza.openclinica.control.form.FormProcessor) ArrayList(java.util.ArrayList) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) SectionBean(org.akaza.openclinica.bean.submit.SectionBean) DisplaySectionBean(org.akaza.openclinica.bean.submit.DisplaySectionBean) EventCRFBean(org.akaza.openclinica.bean.submit.EventCRFBean) ItemDataBean(org.akaza.openclinica.bean.submit.ItemDataBean) DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemGroupBean(org.akaza.openclinica.bean.submit.ItemGroupBean) DisplayItemGroupBean(org.akaza.openclinica.bean.submit.DisplayItemGroupBean)

Example 42 with ItemBean

use of org.akaza.openclinica.bean.submit.ItemBean in project OpenClinica by OpenClinica.

the class DataEntryServlet method getSectionFirstFieldId.

/*
     * locale = LocaleResolver.getLocale(request); //< resmessage = ResourceBundle.getBundle("org.akaza.openclinica.i18n.page_messages" ,locale); //< restext =
     * ResourceBundle.getBundle("org.akaza.openclinica.i18n.notes",locale); //< resexception =ResourceBundle.getBundle("org.akaza.openclinica.i18n.exceptions"
     * ,locale);
     */
/*
     * (non-Javadoc)
     * @see org.akaza.openclinica.control.core.SecureController#processRequest()
     */
private String getSectionFirstFieldId(int sectionId) {
    ItemDAO itemDAO = new ItemDAO(getDataSource());
    List<ItemBean> items = itemDAO.findAllBySectionId(sectionId);
    if (!items.isEmpty()) {
        return new Integer(items.get(0).getId()).toString();
    }
    return "";
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) ItemDAO(org.akaza.openclinica.dao.submit.ItemDAO)

Example 43 with ItemBean

use of org.akaza.openclinica.bean.submit.ItemBean in project OpenClinica by OpenClinica.

the class DataEntryServlet method saveItemsToMarkComplete.

/**
     * 06/13/2007- jxu Since we don't require users to review each section before mark a CRF as complete, we need to create item data in the database because
     * items will not be created unless the section which contains the items is reviewed by users
     * @param request TODO
     */
private boolean saveItemsToMarkComplete(Status completeStatus, HttpServletRequest request) throws Exception {
    EventCRFBean ecb = (EventCRFBean) request.getAttribute(INPUT_EVENT_CRF);
    SectionDAO sdao = new SectionDAO(getDataSource());
    ArrayList sections = sdao.findAllByCRFVersionId(ecb.getCRFVersionId());
    UserAccountBean ub = (UserAccountBean) request.getSession().getAttribute(USER_BEAN_NAME);
    ItemDataDAO iddao = new ItemDataDAO(getDataSource(), locale);
    ItemDAO idao = new ItemDAO(getDataSource());
    for (int i = 0; i < sections.size(); i++) {
        SectionBean sb = (SectionBean) sections.get(i);
        if (!isCreateItemReqd(sb, request)) {
            // ArrayList requiredItems =
            // idao.findAllRequiredBySectionId(sb.getId());
            // if (!requiredItems.isEmpty()) {
            // return false;
            // }
            ArrayList items = idao.findAllBySectionId(sb.getId());
            for (int j = 0; j < items.size(); j++) {
                ItemBean item = (ItemBean) items.get(j);
                ArrayList<ItemDataBean> itemBean = iddao.findAllByEventCRFIdAndItemIdNoStatus(ecb.getId(), item.getId());
                ItemDataBean idb = new ItemDataBean();
                idb.setItemId(item.getId());
                idb.setEventCRFId(ecb.getId());
                idb.setCreatedDate(new Date());
                idb.setOrdinal(1);
                idb.setOwner(ub);
                if (completeStatus != null) {
                    // to avoid null exception
                    idb.setStatus(completeStatus);
                } else {
                    idb.setStatus(Status.UNAVAILABLE);
                }
                idb.setValue("");
                boolean save = true;
                if (itemBean.size() > 0)
                    save = false;
                /* while(itemBean.iterator().hasNext())
                    {

                        ItemDataBean temp = itemBean.iterator().next();
                       if(idb.getEventCRFId()==(temp.getEventCRFId()))
                       {
                           if(idb.getItemId()==(temp.getItemId())){
                              save = false;
                           }
                       }


                    }*/
                if (save) {
                    iddao.create(idb);
                }
            }
        }
    }
    return true;
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) ItemDAO(org.akaza.openclinica.dao.submit.ItemDAO) ArrayList(java.util.ArrayList) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) Date(java.util.Date) SectionBean(org.akaza.openclinica.bean.submit.SectionBean) DisplaySectionBean(org.akaza.openclinica.bean.submit.DisplaySectionBean) EventCRFBean(org.akaza.openclinica.bean.submit.EventCRFBean) ItemDataBean(org.akaza.openclinica.bean.submit.ItemDataBean) UserAccountBean(org.akaza.openclinica.bean.login.UserAccountBean) SectionDAO(org.akaza.openclinica.dao.submit.SectionDAO)

Example 44 with ItemBean

use of org.akaza.openclinica.bean.submit.ItemBean in project OpenClinica by OpenClinica.

the class DataEntryServlet method prepareScoreItems.

protected HashMap<String, ItemBean> prepareScoreItems(HttpServletRequest request) {
    HashMap<String, ItemBean> scoreItems = new HashMap<String, ItemBean>();
    EventCRFBean ecb = (EventCRFBean) request.getAttribute(INPUT_EVENT_CRF);
    ItemDAO idao = new ItemDAO(getDataSource());
    ArrayList<ItemBean> ibs = idao.findAllItemsByVersionId(ecb.getCRFVersionId());
    for (ItemBean ib : ibs) {
        scoreItems.put(ib.getName(), ib);
    }
    return scoreItems;
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) EventCRFBean(org.akaza.openclinica.bean.submit.EventCRFBean) HashMap(java.util.HashMap) ItemDAO(org.akaza.openclinica.dao.submit.ItemDAO)

Example 45 with ItemBean

use of org.akaza.openclinica.bean.submit.ItemBean in project OpenClinica by OpenClinica.

the class DataEntryServlet method getChildrenDisplayItems.

/**
     * Get the DisplayItemBean objects corresponding to the items which are children of the specified parent.
     *
     * @param parent
     *            The item whose children are to be retrieved.
     * @param request TODO
     * @return An array of DisplayItemBean objects corresponding to the items which are children of parent, and are sorted by column number (ascending), then
     *         ordinal (ascending).
     */
private ArrayList getChildrenDisplayItems(DisplayItemBean parent, EventDefinitionCRFBean edcb, HttpServletRequest request) {
    ArrayList answer = new ArrayList();
    EventCRFBean ecb = (EventCRFBean) request.getAttribute(INPUT_EVENT_CRF);
    int parentId = parent.getItem().getId();
    ItemDAO idao = new ItemDAO(getDataSource());
    ArrayList childItemBeans = idao.findAllByParentIdAndCRFVersionId(parentId, ecb.getCRFVersionId());
    ItemDataDAO iddao = new ItemDataDAO(getDataSource(), locale);
    ItemFormMetadataDAO ifmdao = new ItemFormMetadataDAO(getDataSource());
    for (int i = 0; i < childItemBeans.size(); i++) {
        ItemBean child = (ItemBean) childItemBeans.get(i);
        ItemDataBean data = iddao.findByItemIdAndEventCRFId(child.getId(), ecb.getId());
        ItemFormMetadataBean metadata = ifmdao.findByItemIdAndCRFVersionId(child.getId(), ecb.getCRFVersionId());
        DisplayItemBean dib = new DisplayItemBean();
        dib.setEventDefinitionCRF(edcb);
        dib.setItem(child);
        // tbh
        if (!getServletPage(request).equals(Page.DOUBLE_DATA_ENTRY_SERVLET)) {
            dib.setData(data);
        }
        // <<tbh 07/2009, bug #3883
        // ItemDataBean dbData = iddao.findByItemIdAndEventCRFIdAndOrdinal(itemId, eventCRFId, ordinal)
        dib.setDbData(data);
        boolean showItem = getItemMetadataService().isShown(metadata.getItemId(), ecb, data);
        if (getServletPage(request).equals(Page.DOUBLE_DATA_ENTRY_SERVLET)) {
            showItem = getItemMetadataService().hasPassedDDE(metadata, ecb, data);
        }
        // boolean passedDDE = getItemMetadataService().hasPassedDDE(data);
        if (showItem) {
            LOGGER.debug("set show item: " + metadata.getItemId() + " data " + data.getId());
            // metadata.setShowItem(showItem);
            metadata.setShowItem(true);
        }
        // logger.debug("did not catch NPE");
        dib.setMetadata(metadata);
        if (shouldLoadDBValues(dib)) {
            LOGGER.trace("should load db values is true, set value");
            dib.loadDBValue();
            LOGGER.trace("just loaded the child value: " + dib.getData().getValue());
        }
        answer.add(dib);
    }
    // this is a pretty slow and memory intensive way to sort... see if we
    // can
    // have the db do this instead
    Collections.sort(answer);
    return answer;
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) EventCRFBean(org.akaza.openclinica.bean.submit.EventCRFBean) ItemDAO(org.akaza.openclinica.dao.submit.ItemDAO) ItemDataBean(org.akaza.openclinica.bean.submit.ItemDataBean) ArrayList(java.util.ArrayList) DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) ItemFormMetadataDAO(org.akaza.openclinica.dao.submit.ItemFormMetadataDAO) DynamicsItemFormMetadataBean(org.akaza.openclinica.domain.crfdata.DynamicsItemFormMetadataBean) ItemFormMetadataBean(org.akaza.openclinica.bean.submit.ItemFormMetadataBean)

Aggregations

ItemBean (org.akaza.openclinica.bean.submit.ItemBean)132 ArrayList (java.util.ArrayList)77 DisplayItemBean (org.akaza.openclinica.bean.submit.DisplayItemBean)56 HashMap (java.util.HashMap)50 ItemDAO (org.akaza.openclinica.dao.submit.ItemDAO)43 ItemDataBean (org.akaza.openclinica.bean.submit.ItemDataBean)42 ItemFormMetadataBean (org.akaza.openclinica.bean.submit.ItemFormMetadataBean)36 ItemGroupBean (org.akaza.openclinica.bean.submit.ItemGroupBean)26 EventCRFBean (org.akaza.openclinica.bean.submit.EventCRFBean)25 Iterator (java.util.Iterator)23 CRFBean (org.akaza.openclinica.bean.admin.CRFBean)22 ItemDataDAO (org.akaza.openclinica.dao.submit.ItemDataDAO)22 StudyEventDefinitionBean (org.akaza.openclinica.bean.managestudy.StudyEventDefinitionBean)21 ItemFormMetadataDAO (org.akaza.openclinica.dao.submit.ItemFormMetadataDAO)20 CRFVersionBean (org.akaza.openclinica.bean.submit.CRFVersionBean)15 SectionBean (org.akaza.openclinica.bean.submit.SectionBean)15 FormProcessor (org.akaza.openclinica.control.form.FormProcessor)15 StudyEventBean (org.akaza.openclinica.bean.managestudy.StudyEventBean)13 StudySubjectBean (org.akaza.openclinica.bean.managestudy.StudySubjectBean)13 DisplayItemGroupBean (org.akaza.openclinica.bean.submit.DisplayItemGroupBean)13