Search in sources :

Example 1 with ODM

use of org.cdisc.ns.odm.v130_api.ODM in project OpenClinica by OpenClinica.

the class OdmController method getODM.

private ODM getODM(String studyOID, String subjectKey) {
    ODM odm = new ODM();
    String ssoid = subjectKey;
    if (ssoid == null) {
        return null;
    }
    CRFVersionDAO versionDAO = new CRFVersionDAO(dataSource);
    StudyDAO studyDAO = new StudyDAO(dataSource);
    StudySubjectDAO studySubjectDAO = new StudySubjectDAO(dataSource);
    EventCRFDAO eventCRFDAO = new EventCRFDAO(dataSource);
    ItemDataDAO itemDataDAO = new ItemDataDAO(dataSource);
    CRFDAO crfDAO = new CRFDAO(dataSource);
    List<ODMcomplexTypeDefinitionFormData> formDatas = new ArrayList<>();
    try {
        // Retrieve crfs for next event
        StudySubjectBean studySubjectBean = studySubjectDAO.findByOid(ssoid);
        ParticipantEventService participantEventService = new ParticipantEventService(dataSource);
        StudyEventBean nextEvent = participantEventService.getNextParticipantEvent(studySubjectBean);
        if (nextEvent != null) {
            logger.debug("Found event: " + nextEvent.getName() + " - ID: " + nextEvent.getId());
            List<EventCRFBean> eventCrfs = eventCRFDAO.findAllByStudyEvent(nextEvent);
            StudyBean study = studyDAO.findByOid(studyOID);
            if (!mayProceed(studyOID, studySubjectBean))
                return odm;
            List<EventDefinitionCRFBean> eventDefCrfs = participantEventService.getEventDefCrfsForStudyEvent(studySubjectBean, nextEvent);
            for (EventDefinitionCRFBean eventDefCrf : eventDefCrfs) {
                if (eventDefCrf.isParticipantForm()) {
                    EventCRFBean eventCRF = participantEventService.getExistingEventCRF(studySubjectBean, nextEvent, eventDefCrf);
                    boolean itemDataExists = false;
                    boolean validStatus = true;
                    CRFVersionBean crfVersion = null;
                    if (eventCRF != null) {
                        if (eventCRF.getStatus().getId() != 1 && eventCRF.getStatus().getId() != 2)
                            validStatus = false;
                        if (itemDataDAO.findAllByEventCRFId(eventCRF.getId()).size() > 0)
                            itemDataExists = true;
                        crfVersion = (CRFVersionBean) versionDAO.findByPK(eventCRF.getCRFVersionId());
                    } else
                        crfVersion = (CRFVersionBean) versionDAO.findByPK(eventDefCrf.getDefaultVersionId());
                    if (validStatus) {
                        String formUrl = null;
                        if (!itemDataExists)
                            formUrl = createEnketoUrl(studyOID, crfVersion, nextEvent, ssoid);
                        else
                            formUrl = createEditUrl(studyOID, crfVersion, nextEvent, ssoid);
                        formDatas.add(getFormDataPerCrf(crfVersion, nextEvent, eventCrfs, crfDAO, formUrl, itemDataExists));
                    }
                }
            }
            return createOdm(study, studySubjectBean, nextEvent, formDatas);
        } else {
            logger.debug("Unable to find next event for subject.");
        }
    } catch (Exception e) {
        logger.error(e.getMessage());
        logger.error(ExceptionUtils.getStackTrace(e));
    }
    return odm;
}
Also used : EventCRFDAO(org.akaza.openclinica.dao.submit.EventCRFDAO) CRFDAO(org.akaza.openclinica.dao.admin.CRFDAO) CRFVersionDAO(org.akaza.openclinica.dao.submit.CRFVersionDAO) ParticipantEventService(org.akaza.openclinica.service.ParticipantEventService) StudyBean(org.akaza.openclinica.bean.managestudy.StudyBean) ArrayList(java.util.ArrayList) StudyEventBean(org.akaza.openclinica.bean.managestudy.StudyEventBean) StudySubjectDAO(org.akaza.openclinica.dao.managestudy.StudySubjectDAO) ItemDataDAO(org.akaza.openclinica.dao.submit.ItemDataDAO) ODMcomplexTypeDefinitionFormData(org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionFormData) EventCRFBean(org.akaza.openclinica.bean.submit.EventCRFBean) StudySubjectBean(org.akaza.openclinica.bean.managestudy.StudySubjectBean) ODM(org.cdisc.ns.odm.v130_api.ODM) CRFVersionBean(org.akaza.openclinica.bean.submit.CRFVersionBean) EventDefinitionCRFBean(org.akaza.openclinica.bean.managestudy.EventDefinitionCRFBean) StudyDAO(org.akaza.openclinica.dao.managestudy.StudyDAO) EventCRFDAO(org.akaza.openclinica.dao.submit.EventCRFDAO)

Example 2 with ODM

use of org.cdisc.ns.odm.v130_api.ODM in project OpenClinica by OpenClinica.

the class OdmStudySubjectController method createOdm.

private ODM createOdm(StudyBean studyBean, StudySubjectBean studySubjectBean) {
    ODM odm = new ODM();
    ODMcomplexTypeDefinitionClinicalData clinicalData = null;
    if (studyBean != null) {
        clinicalData = generateClinicalData(studyBean);
        if (studySubjectBean != null) {
            ODMcomplexTypeDefinitionSubjectData subjectData = generateSubjectData(studySubjectBean);
            clinicalData.getSubjectData().add(subjectData);
        }
        odm.getClinicalData().add(clinicalData);
    }
    return odm;
}
Also used : ODMcomplexTypeDefinitionClinicalData(org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionClinicalData) ODM(org.cdisc.ns.odm.v130_api.ODM) ODMcomplexTypeDefinitionSubjectData(org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionSubjectData)

Example 3 with ODM

use of org.cdisc.ns.odm.v130_api.ODM in project OpenClinica by OpenClinica.

the class OdmController method createOdm.

private ODM createOdm(StudyBean study, StudySubjectBean studySubjectBean, StudyEventBean nextEvent, List<ODMcomplexTypeDefinitionFormData> formDatas) {
    ODM odm = new ODM();
    ODMcomplexTypeDefinitionClinicalData clinicalData = generateClinicalData(study);
    ODMcomplexTypeDefinitionSubjectData subjectData = generateSubjectData(studySubjectBean);
    ODMcomplexTypeDefinitionStudyEventData studyEventData = generateStudyEventData(nextEvent);
    // Create the object graph
    studyEventData.getFormData().addAll(formDatas);
    subjectData.getStudyEventData().add(studyEventData);
    clinicalData.getSubjectData().add(subjectData);
    odm.getClinicalData().add(clinicalData);
    return odm;
}
Also used : ODMcomplexTypeDefinitionClinicalData(org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionClinicalData) ODM(org.cdisc.ns.odm.v130_api.ODM) ODMcomplexTypeDefinitionSubjectData(org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionSubjectData) ODMcomplexTypeDefinitionStudyEventData(org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionStudyEventData)

Aggregations

ODM (org.cdisc.ns.odm.v130_api.ODM)3 ODMcomplexTypeDefinitionClinicalData (org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionClinicalData)2 ODMcomplexTypeDefinitionSubjectData (org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionSubjectData)2 ArrayList (java.util.ArrayList)1 EventDefinitionCRFBean (org.akaza.openclinica.bean.managestudy.EventDefinitionCRFBean)1 StudyBean (org.akaza.openclinica.bean.managestudy.StudyBean)1 StudyEventBean (org.akaza.openclinica.bean.managestudy.StudyEventBean)1 StudySubjectBean (org.akaza.openclinica.bean.managestudy.StudySubjectBean)1 CRFVersionBean (org.akaza.openclinica.bean.submit.CRFVersionBean)1 EventCRFBean (org.akaza.openclinica.bean.submit.EventCRFBean)1 CRFDAO (org.akaza.openclinica.dao.admin.CRFDAO)1 StudyDAO (org.akaza.openclinica.dao.managestudy.StudyDAO)1 StudySubjectDAO (org.akaza.openclinica.dao.managestudy.StudySubjectDAO)1 CRFVersionDAO (org.akaza.openclinica.dao.submit.CRFVersionDAO)1 EventCRFDAO (org.akaza.openclinica.dao.submit.EventCRFDAO)1 ItemDataDAO (org.akaza.openclinica.dao.submit.ItemDataDAO)1 ParticipantEventService (org.akaza.openclinica.service.ParticipantEventService)1 ODMcomplexTypeDefinitionFormData (org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionFormData)1 ODMcomplexTypeDefinitionStudyEventData (org.cdisc.ns.odm.v130_api.ODMcomplexTypeDefinitionStudyEventData)1