Search in sources :

Example 76 with DisplayItemBean

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

the class FormBeanUtil method getDisplayBeansFromItems.

/**
     * Create a List of DisplayItemBeans from a List of Items.
     * 
     * @param itemBeans
     *            A List of ItemBeans that will provide the source of each
     *            DisplayItemBean
     * @param dataSource
     *            A DataSource for the DAO classes.
     * @param crfVersionId
     *            The CRF version Id for fetching associated
     *            ItemFormMetadataBeans.
     * @param sectionId
     *            The section ID associated with the Items.
     * @param nullValuesList
     *            A List of Strings containing "null values" such as "not
     *            applicable" or NA.
     * @return A List of DisplayItemBeans.
     */
public static List<DisplayItemBean> getDisplayBeansFromItems(List<ItemBean> itemBeans, DataSource dataSource, EventCRFBean eventCrfBean, int sectionId, List<String> nullValuesList, ServletContext context) {
    // logger = LoggerFactory.getLogger(getClass().getName());
    List<DisplayItemBean> disBeans = new ArrayList<DisplayItemBean>();
    if (itemBeans == null || itemBeans.isEmpty())
        return disBeans;
    ItemFormMetadataDAO metaDao = new ItemFormMetadataDAO(dataSource);
    ItemDataDAO itemDataDAO = new ItemDataDAO(dataSource);
    DisplayItemBean displayBean;
    ItemFormMetadataBean meta;
    // Add any null values to checks or radios
    String responseName;
    List<ResponseOptionBean> respOptions;
    ResponseOptionBean respBean;
    boolean hasNullValues = nullValuesList != null && !nullValuesList.isEmpty();
    String tmpVal = "";
    // findByItemIdAndCRFVersionId
    for (ItemBean iBean : itemBeans) {
        displayBean = new DisplayItemBean();
        //TODO: eventcrfBean is not valid??
        meta = metaDao.findByItemIdAndCRFVersionId(iBean.getId(), eventCrfBean.getCRFVersionId());
        // Only include Items that belong to the associated section
        if (meta.getSectionId() == sectionId) {
            displayBean.setItem(iBean);
            //findByItemIdAndEventCRFIdAndOrdinal(iBean.getId(), eventCrfBean.getId(), ordinal)
            ItemDataBean itemDataBean = itemDataDAO.findByItemIdAndEventCRFId(iBean.getId(), eventCrfBean.getId());
            // null values is set by adding the event def. crf bean, but
            // here we have taken a different approach, tbh
            // displayBean.setEventDefinitionCRF();
            displayBean.setMetadata(runDynamicsCheck(meta, eventCrfBean, itemDataBean, context));
            displayBean.setData(itemDataBean);
            displayBean.setDbData(itemDataBean);
            // System.out.println("just set: " + itemDataBean.getValue() + " from " + itemDataBean.getItemId());
            responseName = displayBean.getMetadata().getResponseSet().getResponseType().getName();
            respOptions = displayBean.getMetadata().getResponseSet().getOptions();
            if (hasNullValues && respOptions != null && ("checkbox".equalsIgnoreCase(responseName) || "radio".equalsIgnoreCase(responseName) || "single-select".equalsIgnoreCase(responseName) || "multi-select".equalsIgnoreCase(responseName))) {
                for (String val : nullValuesList) {
                    respBean = new ResponseOptionBean();
                    // BWP>> set text to the extended version, "not
                    // applicable"?
                    tmpVal = DataEntryInputGenerator.NULL_VALUES_LONGVERSION.get(val);
                    if (tmpVal != null && tmpVal.length() > 0) {
                        respBean.setText(tmpVal);
                    } else {
                        respBean.setText(val);
                    }
                    respBean.setValue(val);
                    respOptions.add(respBean);
                }
            }
            disBeans.add(displayBean);
        // logger.info("### respOptions size
        // "+respOptions.size()+" of item name "+iBean.getName());
        }
    // logger.info("### found name "+iBean.getName()+" and found
    // response size: "+
    // displayBean.getMetadata().getResponseSet().getOptions().size());
    }
    // sort the List of DisplayItemBeans on their ordinal
    Collections.sort(disBeans);
    return disBeans;
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) ItemDataBean(org.akaza.openclinica.bean.submit.ItemDataBean) ArrayList(java.util.ArrayList) DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ResponseOptionBean(org.akaza.openclinica.bean.submit.ResponseOptionBean) ItemFormMetadataDAO(org.akaza.openclinica.dao.submit.ItemFormMetadataDAO) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) ItemFormMetadataBean(org.akaza.openclinica.bean.submit.ItemFormMetadataBean)

Example 77 with DisplayItemBean

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

the class FormBeanUtil method addNullValuesToDisplayItemWithGroupBeans.

public void addNullValuesToDisplayItemWithGroupBeans(List<DisplayItemWithGroupBean> groupBeans, List<String> nullValuesList) {
    if (nullValuesList == null || nullValuesList.isEmpty() || groupBeans == null || groupBeans.isEmpty()) {
        return;
    }
    DisplayItemGroupBean displayItemGroupBean = null;
    List<DisplayItemBean> disBeans = new ArrayList<DisplayItemBean>();
    String responseName = "";
    List<ResponseOptionBean> respOptions;
    for (DisplayItemWithGroupBean withGroupBean : groupBeans) {
        displayItemGroupBean = withGroupBean.getItemGroup();
        disBeans = displayItemGroupBean.getItems();
        for (DisplayItemBean singleBean : disBeans) {
            responseName = singleBean.getMetadata().getResponseSet().getResponseType().getName();
            respOptions = singleBean.getMetadata().getResponseSet().getOptions();
            if (respOptions != null && ("checkbox".equalsIgnoreCase(responseName) || "radio".equalsIgnoreCase(responseName) || "single-select".equalsIgnoreCase(responseName) || "multi-select".equalsIgnoreCase(responseName))) {
                this.addBeansToResponseOptions(nullValuesList, respOptions);
            }
        }
    }
}
Also used : DisplayItemGroupBean(org.akaza.openclinica.bean.submit.DisplayItemGroupBean) DisplayItemWithGroupBean(org.akaza.openclinica.bean.submit.DisplayItemWithGroupBean) ArrayList(java.util.ArrayList) DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ResponseOptionBean(org.akaza.openclinica.bean.submit.ResponseOptionBean)

Example 78 with DisplayItemBean

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

the class FormBeanUtil method getDisplayBeansFromItemsForPrint.

public static List<DisplayItemBean> getDisplayBeansFromItemsForPrint(List<ItemBean> itemBeans, DataSource dataSource, EventCRFBean eventCrfBean, int sectionId, List<String> nullValuesList, ServletContext context, int crfVersionId) {
    // logger = LoggerFactory.getLogger(getClass().getName());
    List<DisplayItemBean> disBeans = new ArrayList<DisplayItemBean>();
    if (itemBeans == null || itemBeans.isEmpty())
        return disBeans;
    ItemFormMetadataDAO metaDao = new ItemFormMetadataDAO(dataSource);
    ItemDataDAO itemDataDAO = new ItemDataDAO(dataSource);
    DisplayItemBean displayBean;
    ItemFormMetadataBean meta;
    // Add any null values to checks or radios
    String responseName;
    List<ResponseOptionBean> respOptions;
    ResponseOptionBean respBean;
    boolean hasNullValues = nullValuesList != null && !nullValuesList.isEmpty();
    String tmpVal = "";
    // findByItemIdAndCRFVersionId
    for (ItemBean iBean : itemBeans) {
        displayBean = new DisplayItemBean();
        //TODO: eventcrfBean is not valid??
        meta = metaDao.findByItemIdAndCRFVersionId(iBean.getId(), crfVersionId);
        // Only include Items that belong to the associated section
        if (meta.getSectionId() == sectionId) {
            displayBean.setItem(iBean);
            //findByItemIdAndEventCRFIdAndOrdinal(iBean.getId(), eventCrfBean.getId(), ordinal)
            ItemDataBean itemDataBean = itemDataDAO.findByItemIdAndEventCRFId(iBean.getId(), eventCrfBean.getId());
            // null values is set by adding the event def. crf bean, but
            // here we have taken a different approach, tbh
            // displayBean.setEventDefinitionCRF();
            displayBean.setMetadata(runDynamicsCheck(meta, eventCrfBean, itemDataBean, context));
            displayBean.setData(itemDataBean);
            displayBean.setDbData(itemDataBean);
            // System.out.println("just set: " + itemDataBean.getValue() + " from " + itemDataBean.getItemId());
            responseName = displayBean.getMetadata().getResponseSet().getResponseType().getName();
            respOptions = displayBean.getMetadata().getResponseSet().getOptions();
            if (hasNullValues && respOptions != null && ("checkbox".equalsIgnoreCase(responseName) || "radio".equalsIgnoreCase(responseName) || "single-select".equalsIgnoreCase(responseName) || "multi-select".equalsIgnoreCase(responseName))) {
                for (String val : nullValuesList) {
                    respBean = new ResponseOptionBean();
                    // BWP>> set text to the extended version, "not
                    // applicable"?
                    tmpVal = DataEntryInputGenerator.NULL_VALUES_LONGVERSION.get(val);
                    if (tmpVal != null && tmpVal.length() > 0) {
                        respBean.setText(tmpVal);
                    } else {
                        respBean.setText(val);
                    }
                    respBean.setValue(val);
                    respOptions.add(respBean);
                }
            }
            disBeans.add(displayBean);
        // logger.info("### respOptions size
        // "+respOptions.size()+" of item name "+iBean.getName());
        }
    // logger.info("### found name "+iBean.getName()+" and found
    // response size: "+
    // displayBean.getMetadata().getResponseSet().getOptions().size());
    }
    // sort the List of DisplayItemBeans on their ordinal
    Collections.sort(disBeans);
    return disBeans;
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean) ItemDataBean(org.akaza.openclinica.bean.submit.ItemDataBean) ArrayList(java.util.ArrayList) DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ResponseOptionBean(org.akaza.openclinica.bean.submit.ResponseOptionBean) ItemFormMetadataDAO(org.akaza.openclinica.dao.submit.ItemFormMetadataDAO) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) ItemFormMetadataBean(org.akaza.openclinica.bean.submit.ItemFormMetadataBean)

Example 79 with DisplayItemBean

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

the class CellFactory method addUnits.

public Element addUnits(Element tdCell, DisplayItemBean displayBean) {
    if (displayBean == null) {
        return tdCell;
    }
    ItemBean itemBean = displayBean.getItem();
    if (itemBean == null) {
        return tdCell;
    }
    StringBuilder units = new StringBuilder(displayBean.getItem().getUnits());
    if (units.length() < 1) {
        return tdCell;
    }
    // surround units with parentheses
    units = units.insert(0, "(");
    units = units.append(")");
    tdCell.addContent(" " + units.toString());
    return tdCell;
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ItemBean(org.akaza.openclinica.bean.submit.ItemBean)

Example 80 with DisplayItemBean

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

the class FormBeanUtilDecorator method convertResponseTypes.

/**
     * Convert various response types to checkboxes for the purpose of CRF print
     * views.
     *
     * @param items
     *            A List of DisplayItemBeans.
     */
private void convertResponseTypes(List<DisplayItemBean> items) {
    if (items == null || items.isEmpty()) {
        return;
    }
    String tempStr;
    ResponseSetBean responseSetBean;
    for (DisplayItemBean displayBean : items) {
        // Get the response type name, like "checkbox"
        tempStr = displayBean.getMetadata().getResponseSet().getResponseType().getName();
        if (checkForTypes(tempStr)) {
            responseSetBean = displayBean.getMetadata().getResponseSet();
            responseSetBean.setResponseType(org.akaza.openclinica.bean.core.ResponseType.CHECKBOX);
        }
    }
}
Also used : DisplayItemBean(org.akaza.openclinica.bean.submit.DisplayItemBean) ResponseSetBean(org.akaza.openclinica.bean.submit.ResponseSetBean)

Aggregations

DisplayItemBean (org.akaza.openclinica.bean.submit.DisplayItemBean)80 ArrayList (java.util.ArrayList)44 ItemBean (org.akaza.openclinica.bean.submit.ItemBean)37 DisplayItemGroupBean (org.akaza.openclinica.bean.submit.DisplayItemGroupBean)33 ItemFormMetadataBean (org.akaza.openclinica.bean.submit.ItemFormMetadataBean)24 ItemDataBean (org.akaza.openclinica.bean.submit.ItemDataBean)22 HashMap (java.util.HashMap)19 EventCRFBean (org.akaza.openclinica.bean.submit.EventCRFBean)18 EventDefinitionCRFBean (org.akaza.openclinica.bean.managestudy.EventDefinitionCRFBean)16 ItemDAO (org.akaza.openclinica.dao.submit.ItemDAO)16 DisplaySectionBean (org.akaza.openclinica.bean.submit.DisplaySectionBean)15 ItemDataDAO (org.akaza.openclinica.dao.submit.ItemDataDAO)15 ItemGroupBean (org.akaza.openclinica.bean.submit.ItemGroupBean)12 SectionBean (org.akaza.openclinica.bean.submit.SectionBean)12 ItemFormMetadataDAO (org.akaza.openclinica.dao.submit.ItemFormMetadataDAO)12 DisplayItemWithGroupBean (org.akaza.openclinica.bean.submit.DisplayItemWithGroupBean)11 Element (org.jdom.Element)10 List (java.util.List)8 Map (java.util.Map)8 HttpSession (javax.servlet.http.HttpSession)8