/*
* OpenClinica is distributed under the
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
* copyright 2003-2005 Akaza Research
*/
package org.akaza.openclinica.dao.managestudy;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import javax.sql.DataSource;
import org.akaza.openclinica.bean.core.AuditableEntityBean;
import org.akaza.openclinica.bean.core.DiscrepancyNoteType;
import org.akaza.openclinica.bean.core.EntityBean;
import org.akaza.openclinica.bean.core.ResolutionStatus;
import org.akaza.openclinica.bean.login.UserAccountBean;
import org.akaza.openclinica.bean.managestudy.DiscrepancyNoteBean;
import org.akaza.openclinica.bean.managestudy.StudyBean;
import org.akaza.openclinica.bean.managestudy.StudyEventBean;
import org.akaza.openclinica.bean.submit.EventCRFBean;
import org.akaza.openclinica.dao.core.AuditableEntityDAO;
import org.akaza.openclinica.dao.core.CoreResources;
import org.akaza.openclinica.dao.core.DAODigester;
import org.akaza.openclinica.dao.core.SQLFactory;
import org.akaza.openclinica.dao.core.TypeNames;
import org.akaza.openclinica.dao.login.UserAccountDAO;
import org.akaza.openclinica.dao.submit.EventCRFDAO;
import org.akaza.openclinica.dao.submit.ItemDataDAO;
import org.akaza.openclinica.dao.submit.SubjectDAO;
/**
* @author jxu
*
* TODO To change the template for this generated type comment go to Window - Preferences - Java - Code Style - Code Templates
*/
public class DiscrepancyNoteDAO extends AuditableEntityDAO {
// if true, we fetch the mapping along with the bean
// only applies to functions which return a single bean
private boolean fetchMapping = false;
/**
* @return Returns the fetchMapping.
*/
public boolean isFetchMapping() {
return fetchMapping;
}
/**
* @param fetchMapping
* The fetchMapping to set.
*/
public void setFetchMapping(boolean fetchMapping) {
this.fetchMapping = fetchMapping;
}
private void setQueryNames() {
findByPKAndStudyName = "findByPKAndStudy";
getCurrentPKName = "getCurrentPrimaryKey";
}
public DiscrepancyNoteDAO(DataSource ds) {
super(ds);
setQueryNames();
}
public DiscrepancyNoteDAO(DataSource ds, DAODigester digester) {
super(ds);
this.digester = digester;
setQueryNames();
}
@Override
protected void setDigesterName() {
digesterName = SQLFactory.getInstance().DAO_DISCREPANCY_NOTE;
}
@Override
public void setTypesExpected() {
// discrepancy_note_id serial NOT NULL,
// description varchar(255),
// discrepancy_note_type_id numeric,
// resolution_status_id numeric,
// detailed_notes varchar(1000),
// date_created date,
// owner_id numeric,
// parent_dn_id numeric,
// adding study id
// adding assigned user id, tbh 02/2009
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.STRING);
this.setTypeExpected(3, TypeNames.INT);
this.setTypeExpected(4, TypeNames.INT);
this.setTypeExpected(5, TypeNames.STRING);
this.setTypeExpected(6, TypeNames.DATE);
this.setTypeExpected(7, TypeNames.INT);
this.setTypeExpected(8, TypeNames.INT);
this.setTypeExpected(9, TypeNames.STRING);
this.setTypeExpected(10, TypeNames.INT);
this.setTypeExpected(11, TypeNames.INT);
}
public void setMapTypesExpected() {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.INT);
this.setTypeExpected(3, TypeNames.STRING);
}
/**
* <p>
* getEntityFromHashMap, the method that gets the object from the database query.
*/
@Override
public Object getEntityFromHashMap(HashMap hm) {
DiscrepancyNoteBean eb = new DiscrepancyNoteBean();
Date dateCreated = (Date) hm.get("date_created");
Integer ownerId = (Integer) hm.get("owner_id");
eb.setCreatedDate(dateCreated);
eb.setOwnerId(ownerId.intValue());
// discrepancy_note_id serial NOT NULL,
// description varchar(255),
// discrepancy_note_type_id numeric,
// resolution_status_id numeric,
// detailed_notes varchar(1000),
// date_created date,
// owner_id numeric,
// parent_dn_id numeric,
eb.setId(selectInt(hm, "discrepancy_note_id"));
eb.setDescription((String) hm.get("description"));
eb.setDiscrepancyNoteTypeId(((Integer) hm.get("discrepancy_note_type_id")).intValue());
eb.setResolutionStatusId(((Integer) hm.get("resolution_status_id")).intValue());
eb.setParentDnId(((Integer) hm.get("parent_dn_id")).intValue());
eb.setDetailedNotes((String) hm.get("detailed_notes"));
eb.setEntityType((String) hm.get("entity_type"));
eb.setDisType(DiscrepancyNoteType.get(eb.getDiscrepancyNoteTypeId()));
eb.setResStatus(ResolutionStatus.get(eb.getResolutionStatusId()));
eb.setStudyId(selectInt(hm, "study_id"));
eb.setAssignedUserId(selectInt(hm, "assigned_user_id"));
if (eb.getAssignedUserId() > 0) {
UserAccountDAO userAccountDAO = new UserAccountDAO(ds);
UserAccountBean assignedUser = (UserAccountBean) userAccountDAO.findByPK(eb.getAssignedUserId());
eb.setAssignedUser(assignedUser);
}
eb.setAge(selectInt(hm, "age"));
eb.setDays(selectInt(hm, "days"));
return eb;
}
@Override
public Collection findAll() {
return this.executeFindAllQuery("findAll");
}
public ArrayList findAllParentsByStudy(StudyBean study) {
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
ArrayList notes = executeFindAllQuery("findAllParentsByStudy", variables);
if (fetchMapping) {
for (int i = 0; i < notes.size(); i++) {
DiscrepancyNoteBean dnb = (DiscrepancyNoteBean) notes.get(i);
dnb = findSingleMapping(dnb);
notes.set(i, dnb);
}
}
return notes;
}
public ArrayList findAllByStudyAndParent(StudyBean study, int parentId) {
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(parentId));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(4), Integer.valueOf(study.getId()));
return this.executeFindAllQuery("findAllByStudyAndParent", variables);
}
public ArrayList<DiscrepancyNoteBean> findAllItemNotesByEventCRF(int eventCRFId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFId));
alist = this.select(digester.getQuery("findAllItemNotesByEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllParentItemNotesByEventCRF(int eventCRFId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFId));
alist = this.select(digester.getQuery("findAllParentItemNotesByEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllParentItemNotesByEventCRFWithConstraints(int eventCRFId, StringBuffer constraints) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFId));
String sql = digester.getQuery("findAllParentItemNotesByEventCRF");
String[] s = sql.split("order by");
sql = s[0] + " " + constraints.toString() + " order by " + s[1];
alist = this.select(sql, variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public Integer getSubjectDNCountWithFilter(ListNotesFilter filter, Integer currentStudyId) {
DiscrepancyNoteBean discrepancyNoteBean = new DiscrepancyNoteBean();
setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudyId);
variables.put(Integer.valueOf(2), currentStudyId);
String sql = digester.getQuery("getSubjectDNCountWithFilter");
sql += filter.execute("");
ArrayList rows = this.select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public Integer getStudySubjectDNCountWithFilter(ListNotesFilter filter, Integer currentStudyId) {
DiscrepancyNoteBean discrepancyNoteBean = new DiscrepancyNoteBean();
setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudyId);
variables.put(Integer.valueOf(2), currentStudyId);
String sql = digester.getQuery("getStudySubjectDNCountWithFilter");
sql += filter.execute("");
ArrayList rows = this.select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public Integer getStudyEventDNCountWithFilter(ListNotesFilter filter, Integer currentStudyId) {
DiscrepancyNoteBean discrepancyNoteBean = new DiscrepancyNoteBean();
setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudyId);
variables.put(Integer.valueOf(2), currentStudyId);
String sql = digester.getQuery("getStudyEventDNCountWithFilter");
sql += filter.execute("");
ArrayList rows = this.select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public Integer getEventCrfDNCountWithFilter(ListNotesFilter filter, Integer currentStudyId) {
DiscrepancyNoteBean discrepancyNoteBean = new DiscrepancyNoteBean();
setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudyId);
variables.put(Integer.valueOf(2), currentStudyId);
String sql = digester.getQuery("getEventCrfDNCountWithFilter");
sql += filter.execute("");
ArrayList rows = this.select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public Integer getItemDataDNCountWithFilter(ListNotesFilter filter, Integer currentStudyId) {
DiscrepancyNoteBean discrepancyNoteBean = new DiscrepancyNoteBean();
setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudyId);
variables.put(Integer.valueOf(2), currentStudyId);
String sql = digester.getQuery("getItemDataDNCountWithFilter");
sql += filter.execute("");
ArrayList rows = this.select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public ArrayList<DiscrepancyNoteBean> getWithFilterAndSort(StudyBean currentStudy, ListNotesFilter filter, ListNotesSort sort, int rowStart, int rowEnd) {
ArrayList<DiscrepancyNoteBean> discNotes = new ArrayList<DiscrepancyNoteBean>();
setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
String sql = digester.getQuery("getWithFilterAndSort");
sql = sql + filter.execute("");
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql += " AND rownum <= " + rowEnd + " and rownum >" + rowStart;
sql = sql + sort.execute("");
} else {
sql = sql + sort.execute("");
sql = sql + " LIMIT " + (rowEnd - rowStart) + " OFFSET " + rowStart;
}
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
while (it.hasNext()) {
DiscrepancyNoteBean discBean = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
discBean = findSingleMapping(discBean);
discNotes.add(discBean);
}
return discNotes;
}
public Integer getViewNotesCountWithFilter(ListNotesFilter filter, StudyBean currentStudy) {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
variables.put(Integer.valueOf(3), currentStudy.getId());
variables.put(Integer.valueOf(4), currentStudy.getId());
variables.put(Integer.valueOf(5), currentStudy.getId());
variables.put(Integer.valueOf(6), currentStudy.getId());
variables.put(Integer.valueOf(7), currentStudy.getId());
variables.put(Integer.valueOf(8), currentStudy.getId());
variables.put(Integer.valueOf(9), currentStudy.getId());
variables.put(Integer.valueOf(10), currentStudy.getId());
String sql = "select count(all_dn.discrepancy_note_id) as COUNT from (";
sql += digester.getQuery("findAllSubjectDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudySubjectDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudyEventDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllEventCrfDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllItemDataDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql += " ) all_dn";
} else {
sql += " ) as all_dn";
}
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public Integer getViewNotesCountWithFilter(String filter, StudyBean currentStudy) {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
variables.put(Integer.valueOf(3), currentStudy.getId());
variables.put(Integer.valueOf(4), currentStudy.getId());
variables.put(Integer.valueOf(5), currentStudy.getId());
variables.put(Integer.valueOf(6), currentStudy.getId());
variables.put(Integer.valueOf(7), currentStudy.getId());
variables.put(Integer.valueOf(8), currentStudy.getId());
variables.put(Integer.valueOf(9), currentStudy.getId());
variables.put(Integer.valueOf(10), currentStudy.getId());
String sql = "select count(all_dn.discrepancy_note_id) as COUNT from (";
sql += digester.getQuery("findAllSubjectDNByStudy");
sql += filter;
sql += " UNION ";
sql += digester.getQuery("findAllStudySubjectDNByStudy");
sql += filter;
sql += " UNION ";
sql += digester.getQuery("findAllStudyEventDNByStudy");
sql += filter;
sql += " UNION ";
sql += digester.getQuery("findAllEventCrfDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter;
sql += " UNION ";
sql += digester.getQuery("findAllItemDataDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter;
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql += " ) all_dn";
} else {
sql += " ) as all_dn";
}
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
/*
public ArrayList<DiscrepancyNoteBean> getViewNotesWithFilterAndSort(StudyBean currentStudy, ListNotesFilter filter, ListNotesSort sort, int rowStart,
int rowEnd) {
ArrayList<DiscrepancyNoteBean> discNotes = new ArrayList<DiscrepancyNoteBean>();
setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
this.setTypeExpected(13, TypeNames.INT);
this.setTypeExpected(14, TypeNames.INT);
this.setTypeExpected(15, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
variables.put(Integer.valueOf(3), currentStudy.getId());
variables.put(Integer.valueOf(4), currentStudy.getId());
variables.put(Integer.valueOf(5), currentStudy.getId());
variables.put(Integer.valueOf(6), currentStudy.getId());
variables.put(Integer.valueOf(7), currentStudy.getId());
variables.put(Integer.valueOf(8), currentStudy.getId());
variables.put(Integer.valueOf(9), currentStudy.getId());
variables.put(Integer.valueOf(10), currentStudy.getId());
String sql = "";
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql = sql + "SELECT * FROM ( SELECT x.*, ROWNUM as rnum FROM (";
}
sql = sql + digester.getQuery("findAllSubjectDNByStudy");
sql = sql + filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudySubjectDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudyEventDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllEventCrfDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllItemDataDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql += ") x ) WHERE rnum BETWEEN " + (rowStart + 1) + " and " + rowEnd;
sql += sort.execute("");
} else {
sql += sort.execute("");
sql += " LIMIT " + (rowEnd - rowStart) + " OFFSET " + rowStart;
}
// System.out.println(sql);
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
while (it.hasNext()) {
DiscrepancyNoteBean discBean = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
discBean = findSingleMapping(discBean);
discNotes.add(discBean);
}
return discNotes;
}
*/
public ArrayList<DiscrepancyNoteBean> getViewNotesWithFilterAndSort(StudyBean currentStudy, ListNotesFilter filter, ListNotesSort sort) {
ArrayList<DiscrepancyNoteBean> discNotes = new ArrayList<DiscrepancyNoteBean>();
setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
this.setTypeExpected(13, TypeNames.INT);
this.setTypeExpected(14, TypeNames.INT);
this.setTypeExpected(15, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
variables.put(Integer.valueOf(3), currentStudy.getId());
variables.put(Integer.valueOf(4), currentStudy.getId());
variables.put(Integer.valueOf(5), currentStudy.getId());
variables.put(Integer.valueOf(6), currentStudy.getId());
variables.put(Integer.valueOf(7), currentStudy.getId());
variables.put(Integer.valueOf(8), currentStudy.getId());
variables.put(Integer.valueOf(9), currentStudy.getId());
variables.put(Integer.valueOf(10), currentStudy.getId());
String sql = "";
// if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
// sql = sql + "SELECT * FROM ( SELECT x.*, ROWNUM as rnum FROM (";
// }
sql = sql + digester.getQuery("findAllSubjectDNByStudy");
sql = sql + filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudySubjectDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudyEventDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllEventCrfDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllItemDataDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
sql += sort.execute("");
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
while (it.hasNext()) {
DiscrepancyNoteBean discBean = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
discBean = findSingleMapping(discBean);
discNotes.add(discBean);
}
return discNotes;
}
public ArrayList<DiscrepancyNoteBean> findAllDiscrepancyNotesDataByStudy(StudyBean currentStudy) {
ArrayList<DiscrepancyNoteBean> discNotes = new ArrayList<DiscrepancyNoteBean>();
setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
this.setTypeExpected(13, TypeNames.INT);
this.setTypeExpected(14, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
variables.put(Integer.valueOf(3), currentStudy.getId());
variables.put(Integer.valueOf(4), currentStudy.getId());
variables.put(Integer.valueOf(5), currentStudy.getId());
variables.put(Integer.valueOf(6), currentStudy.getId());
variables.put(Integer.valueOf(7), currentStudy.getId());
variables.put(Integer.valueOf(8), currentStudy.getId());
variables.put(Integer.valueOf(9), currentStudy.getId());
variables.put(Integer.valueOf(10), currentStudy.getId());
String sql = digester.getQuery("findAllSubjectDNByStudy");
sql += " UNION ";
sql += digester.getQuery("findAllStudySubjectDNByStudy");
sql += " UNION ";
sql += digester.getQuery("findAllStudyEventDNByStudy");
sql += " UNION ";
sql += digester.getQuery("findAllEventCrfDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += " UNION ";
sql += digester.getQuery("findAllItemDataDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
while (it.hasNext()) {
DiscrepancyNoteBean discBean = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
discBean = findSingleMapping(discBean);
discNotes.add(discBean);
}
return discNotes;
}
public ArrayList<DiscrepancyNoteBean> getNotesWithFilterAndSort(StudyBean currentStudy, ListNotesFilter filter, ListNotesSort sort) {
ArrayList<DiscrepancyNoteBean> discNotes = new ArrayList<DiscrepancyNoteBean>();
setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
this.setTypeExpected(13, TypeNames.INT);
this.setTypeExpected(14, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), currentStudy.getId());
variables.put(Integer.valueOf(2), currentStudy.getId());
variables.put(Integer.valueOf(3), currentStudy.getId());
variables.put(Integer.valueOf(4), currentStudy.getId());
variables.put(Integer.valueOf(5), currentStudy.getId());
variables.put(Integer.valueOf(6), currentStudy.getId());
variables.put(Integer.valueOf(7), currentStudy.getId());
variables.put(Integer.valueOf(8), currentStudy.getId());
variables.put(Integer.valueOf(9), currentStudy.getId());
variables.put(Integer.valueOf(10), currentStudy.getId());
String sql = digester.getQuery("findAllSubjectDNByStudy");
sql = sql + filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudySubjectDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllStudyEventDNByStudy");
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllEventCrfDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
sql += " UNION ";
sql += digester.getQuery("findAllItemDataDNByStudy");
if (currentStudy.isSite(currentStudy.getParentStudyId())) {
sql += " and ec.event_crf_id not in ( " + this.findSiteHiddenEventCrfIdsString(currentStudy) + " ) ";
}
sql += filter.execute("");
sql += " order by label";
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
while (it.hasNext()) {
DiscrepancyNoteBean discBean = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
discBean = findSingleMapping(discBean);
discNotes.add(discBean);
}
return discNotes;
}
public Collection findAllByEntityAndColumn(String entityName, int entityId, String column) {
this.setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(entityId));
variables.put(Integer.valueOf(2), column);
if ("subject".equalsIgnoreCase(entityName)) {
alist = this.select(digester.getQuery("findAllBySubjectAndColumn"), variables);
} else if ("studySub".equalsIgnoreCase(entityName)) {
alist = this.select(digester.getQuery("findAllByStudySubjectAndColumn"), variables);
} else if ("eventCrf".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
alist = this.select(digester.getQuery("findAllByEventCRFAndColumn"), variables);
} else if ("studyEvent".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
alist = this.select(digester.getQuery("findAllByStudyEventAndColumn"), variables);
} else if ("itemData".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// item_name
alist = this.select(digester.getQuery("findAllByItemDataAndColumn"), variables);
}
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
if ("eventCrf".equalsIgnoreCase(entityName) || "itemData".equalsIgnoreCase(entityName)) {
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setEntityName((String) hm.get("item_name"));
} else if ("studyEvent".equalsIgnoreCase(entityName)) {
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
}
if (fetchMapping) {
eb = findSingleMapping(eb);
}
al.add(eb);
}
return al;
}
public ArrayList findAllEntityByPK(String entityName, int noteId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(noteId));
variables.put(Integer.valueOf(2), Integer.valueOf(noteId));
if ("subject".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.STRING);// column_name
alist = this.select(digester.getQuery("findAllSubjectByPK"), variables);
} else if ("studySub".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.STRING);// column_name
alist = this.select(digester.getQuery("findAllStudySubjectByPK"), variables);
} else if ("eventCrf".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// column_name
alist = this.select(digester.getQuery("findAllEventCRFByPK"), variables);
} else if ("studyEvent".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// column_name
alist = this.select(digester.getQuery("findAllStudyEventByPK"), variables);
} else if ("itemData".equalsIgnoreCase(entityName)) {
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// item_name
this.setTypeExpected(17, TypeNames.STRING);// value
// YW <<
this.setTypeExpected(18, TypeNames.INT);// item_data_id
this.setTypeExpected(19, TypeNames.INT);// item_id
// YW >>
alist = this.select(digester.getQuery("findAllItemDataByPK"), variables);
}
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
if ("subject".equalsIgnoreCase(entityName) || "studySub".equalsIgnoreCase(entityName)) {
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
} else if ("eventCrf".equalsIgnoreCase(entityName)) {
eb.setSubjectName((String) hm.get("label"));
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setColumn((String) hm.get("column_name"));
} else if ("itemData".equalsIgnoreCase(entityName)) {
eb.setSubjectName((String) hm.get("label"));
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setEntityName((String) hm.get("item_name"));
eb.setEntityValue((String) hm.get("value"));
// YW <<
eb.setEntityId(((Integer) hm.get("item_data_id")).intValue());
eb.setItemId(((Integer) hm.get("item_id")).intValue());
// YW >>
} else if ("studyEvent".equalsIgnoreCase(entityName)) {
eb.setSubjectName((String) hm.get("label"));
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setColumn((String) hm.get("column_name"));
}
if (fetchMapping) {
eb = findSingleMapping(eb);
}
al.add(eb);
}
return al;
}
public ArrayList findAllSubjectByStudy(StudyBean study) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.STRING);// column_name
this.setTypeExpected(14, TypeNames.INT);// subject_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(study.getId()));
alist = this.select(digester.getQuery("findAllSubjectByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("subject_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllSubjectByStudyAndId(StudyBean study, int subjectId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.STRING);// column_name
this.setTypeExpected(14, TypeNames.INT);// subject_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(4), Integer.valueOf(subjectId));
alist = this.select(digester.getQuery("findAllSubjectByStudyAndId"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("subject_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList findAllStudySubjectByStudy(StudyBean study) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.STRING);// column_name
this.setTypeExpected(14, TypeNames.INT);// study_subject_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
alist = this.select(digester.getQuery("findAllStudySubjectByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("study_subject_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllStudySubjectByStudyAndId(StudyBean study, int studySubjectId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.STRING);// column_name
this.setTypeExpected(14, TypeNames.INT);// study_subject_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(studySubjectId));
alist = this.select(digester.getQuery("findAllStudySubjectByStudyAndId"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("study_subject_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllStudySubjectByStudiesAndStudySubjectId(StudyBean currentStudy, StudyBean subjectStudy, int studySubjectId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.STRING);// column_name
this.setTypeExpected(14, TypeNames.INT);// study_subject_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(currentStudy.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(subjectStudy.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(subjectStudy.getId()));
variables.put(Integer.valueOf(4), Integer.valueOf(studySubjectId));
alist = this.select(digester.getQuery("findAllStudySubjectByStudiesAndStudySubjectId"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("study_subject_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllSubjectByStudiesAndSubjectId(StudyBean currentStudy, StudyBean subjectStudy, int studySubjectId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.STRING);// column_name
this.setTypeExpected(14, TypeNames.INT);// subject_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(currentStudy.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(subjectStudy.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(subjectStudy.getId()));
variables.put(Integer.valueOf(4), Integer.valueOf(currentStudy.getId()));
variables.put(Integer.valueOf(5), Integer.valueOf(subjectStudy.getId()));
variables.put(Integer.valueOf(6), Integer.valueOf(studySubjectId));
alist = this.select(digester.getQuery("findAllSubjectByStudiesAndSubjectId"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("subject_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList findAllStudyEventByStudy(StudyBean study) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// column_name
this.setTypeExpected(16, TypeNames.INT);// study_event_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
alist = this.select(digester.getQuery("findAllStudyEventByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("study_event_id")).intValue());
al.add(eb);
}
return al;
}
/**
* Find all DiscrepancyNoteBeans associated with a certain Study Subject and Study.
*
* @param study
* A StudyBean, whose id property is checked.
* @param studySubjectId
* The id of a Study Subject.
* @return An ArrayList of DiscrepancyNoteBeans.
*/
public ArrayList findAllStudyEventByStudyAndId(StudyBean study, int studySubjectId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// column_name
this.setTypeExpected(16, TypeNames.INT);// study_event_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(studySubjectId));
alist = this.select(digester.getQuery("findAllStudyEventByStudyAndId"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("study_event_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList findAllStudyEventByStudiesAndSubjectId(StudyBean currentStudy, StudyBean subjectStudy, int studySubjectId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// column_name
this.setTypeExpected(16, TypeNames.INT);// study_event_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(currentStudy.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(subjectStudy.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(currentStudy.getId()));
variables.put(Integer.valueOf(4), Integer.valueOf(studySubjectId));
alist = this.select(digester.getQuery("findAllStudyEventByStudiesAndSubjectId"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setSubjectName((String) hm.get("label"));
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("study_event_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList findAllEventCRFByStudy(StudyBean study) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// column_name
this.setTypeExpected(17, TypeNames.INT);// event_crf_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
alist = this.select(digester.getQuery("findAllEventCRFByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("event_crf_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList findAllEventCRFByStudyAndParent(StudyBean study, DiscrepancyNoteBean parent) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// column_name
this.setTypeExpected(17, TypeNames.INT);// event_crf_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(parent.getId()));
alist = this.select(digester.getQuery("findAllEventCRFByStudyAndParent"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setSubjectName((String) hm.get("label"));
eb.setColumn((String) hm.get("column_name"));
eb.setEntityId(((Integer) hm.get("event_crf_id")).intValue());
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findItemDataDNotesFromEventCRF(EventCRFBean eventCRFBean) {
this.setTypesExpected();
ArrayList dNotelist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFBean.getId()));
dNotelist = this.select(digester.getQuery("findItemDataDNotesFromEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> returnedNotelist = new ArrayList<DiscrepancyNoteBean>();
Iterator it = dNotelist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventCRFId(eventCRFBean.getId());
returnedNotelist.add(eb);
}
return returnedNotelist;
}
public ArrayList<DiscrepancyNoteBean> findParentItemDataDNotesFromEventCRF(EventCRFBean eventCRFBean) {
this.setTypesExpected();
ArrayList dNotelist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFBean.getId()));
dNotelist = this.select(digester.getQuery("findParentItemDataDNotesFromEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> returnedNotelist = new ArrayList<DiscrepancyNoteBean>();
Iterator it = dNotelist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventCRFId(eventCRFBean.getId());
returnedNotelist.add(eb);
}
return returnedNotelist;
}
public ArrayList<DiscrepancyNoteBean> findEventCRFDNotesFromEventCRF(EventCRFBean eventCRFBean) {
this.setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
ArrayList dNotelist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFBean.getId()));
dNotelist = this.select(digester.getQuery("findEventCRFDNotesFromEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> returnedNotelist = new ArrayList<DiscrepancyNoteBean>();
Iterator it = dNotelist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setColumn((String) hm.get("column_name"));
eb.setEventCRFId(eventCRFBean.getId());
returnedNotelist.add(eb);
}
return returnedNotelist;
}
public ArrayList<DiscrepancyNoteBean> findEventCRFDNotesToolTips(EventCRFBean eventCRFBean) {
this.setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
ArrayList dNotelist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(4), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(5), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(6), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(7), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(8), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(9), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(10), Integer.valueOf(eventCRFBean.getId()));
dNotelist = this.select(digester.getQuery("findEventCRFDNotesForToolTips"), variables);
ArrayList<DiscrepancyNoteBean> returnedNotelist = new ArrayList<DiscrepancyNoteBean>();
Iterator it = dNotelist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setColumn((String) hm.get("column_name"));
eb.setEventCRFId(eventCRFBean.getId());
returnedNotelist.add(eb);
}
return returnedNotelist;
}
public ArrayList<DiscrepancyNoteBean> findAllDNotesByItemNameAndEventCRF(EventCRFBean eventCRFBean, String itemName) {
this.setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFBean.getId()));
variables.put(Integer.valueOf(2), itemName);
ArrayList dNotelist = new ArrayList();
dNotelist = this.select(digester.getQuery("findAllDNotesByItemNameAndEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> returnedNotelist = new ArrayList<DiscrepancyNoteBean>();
Iterator it = dNotelist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
// eb.setColumn((String) hm.get("column_name"));
// eb.setEventCRFId(eventCRFBean.getId());
returnedNotelist.add(eb);
}
return returnedNotelist;
}
public ArrayList findAllItemDataByStudy(StudyBean study) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// item_name
this.setTypeExpected(17, TypeNames.STRING);// value
this.setTypeExpected(18, TypeNames.INT);// item_data_id
this.setTypeExpected(19, TypeNames.INT);// item_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
alist = this.select(digester.getQuery("findAllItemDataByStudy"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setSubjectName((String) hm.get("label"));
eb.setEntityName((String) hm.get("item_name"));
eb.setEntityValue((String) hm.get("value"));
// YW << change EntityId from item_id to item_data_id.
eb.setEntityId(((Integer) hm.get("item_data_id")).intValue());
eb.setItemId(((Integer) hm.get("item_id")).intValue());
// YW >>
al.add(eb);
}
return al;
}
public ArrayList findAllItemDataByStudy(StudyBean study, Set<String> hiddenCrfNames) {
this.setTypesExpected();
ArrayList al = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.INT);// sed_id
this.setTypeExpected(15, TypeNames.STRING);// sed_name
this.setTypeExpected(16, TypeNames.STRING);// crf_name
this.setTypeExpected(17, TypeNames.STRING);// item_name
this.setTypeExpected(18, TypeNames.STRING);// value
this.setTypeExpected(19, TypeNames.INT);// item_data_id
this.setTypeExpected(20, TypeNames.INT);// item_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
ArrayList alist = this.select(digester.getQuery("findAllItemDataByStudy"), variables);
Iterator it = alist.iterator();
if (hiddenCrfNames.size() > 0) {
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
Integer sedId = (Integer) hm.get("sed_id");
String crfName = (String) hm.get("crf_name");
if (!hiddenCrfNames.contains(sedId + "_" + crfName)) {
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName(crfName);
eb.setSubjectName((String) hm.get("label"));
eb.setEntityName((String) hm.get("item_name"));
eb.setEntityValue((String) hm.get("value"));
eb.setEntityId((Integer) hm.get("item_data_id"));
eb.setItemId((Integer) hm.get("item_id"));
al.add(eb);
}
}
} else {
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setSubjectName((String) hm.get("label"));
eb.setEntityName((String) hm.get("item_name"));
eb.setEntityValue((String) hm.get("value"));
eb.setEntityId((Integer) hm.get("item_data_id"));
eb.setItemId((Integer) hm.get("item_id"));
al.add(eb);
}
}
return al;
}
public Integer countAllItemDataByStudyAndUser(StudyBean study, UserAccountBean user) {
this.setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// item_name
this.setTypeExpected(17, TypeNames.STRING);// value
this.setTypeExpected(18, TypeNames.INT);// item_data_id
this.setTypeExpected(19, TypeNames.INT);// item_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(user.getId()));
ArrayList rows = this.select(digester.getQuery("countAllItemDataByStudyAndUser"), variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
public ArrayList findAllItemDataByStudyAndParent(StudyBean study, DiscrepancyNoteBean parent) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
this.setTypeExpected(12, TypeNames.STRING);// ss.label
this.setTypeExpected(13, TypeNames.DATE);// date_start
this.setTypeExpected(14, TypeNames.STRING);// sed_name
this.setTypeExpected(15, TypeNames.STRING);// crf_name
this.setTypeExpected(16, TypeNames.STRING);// item_name
this.setTypeExpected(17, TypeNames.STRING);// value
this.setTypeExpected(18, TypeNames.INT);// item_data_id
this.setTypeExpected(19, TypeNames.INT);// item_id
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(2), Integer.valueOf(study.getId()));
variables.put(Integer.valueOf(3), Integer.valueOf(parent.getId()));
alist = this.select(digester.getQuery("findAllItemDataByStudyAndParent"), variables);
ArrayList al = new ArrayList();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setEventName((String) hm.get("sed_name"));
eb.setEventStart((Date) hm.get("date_start"));
eb.setCrfName((String) hm.get("crf_name"));
eb.setSubjectName((String) hm.get("label"));
eb.setEntityName((String) hm.get("item_name"));
eb.setEntityValue((String) hm.get("value"));
// YW << change EntityId from item_id to item_data_id.
eb.setEntityId(((Integer) hm.get("item_data_id")).intValue());
eb.setItemId(((Integer) hm.get("item_id")).intValue());
// YW >>
al.add(eb);
}
return al;
}
@Override
public Collection findAll(String strOrderByColumn, boolean blnAscendingSort, String strSearchPhrase) {
ArrayList al = new ArrayList();
return al;
}
@Override
public EntityBean findByPK(int ID) {
DiscrepancyNoteBean eb = new DiscrepancyNoteBean();
this.setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(ID));
String sql = digester.getQuery("findByPK");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
eb = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
}
if (fetchMapping) {
eb = findSingleMapping(eb);
}
return eb;
}
/**
* Creates a new discrepancy note
*/
@Override
public EntityBean create(EntityBean eb) {
DiscrepancyNoteBean sb = (DiscrepancyNoteBean) eb;
HashMap variables = new HashMap();
HashMap nullVars = new HashMap();
// INSERT INTO discrepancy_note
// (description, discrepancy_note_type_id ,
// resolution_status_id , detailed_notes , date_created,
// owner_id, parent_dn_id)
// VALUES (?,?,?,?,now(),?,?)
variables.put(Integer.valueOf(1), sb.getDescription());
variables.put(Integer.valueOf(2), Integer.valueOf(sb.getDiscrepancyNoteTypeId()));
variables.put(Integer.valueOf(3), Integer.valueOf(sb.getResolutionStatusId()));
variables.put(Integer.valueOf(4), sb.getDetailedNotes());
variables.put(Integer.valueOf(5), Integer.valueOf(sb.getOwner().getId()));
if (sb.getParentDnId() == 0) {
nullVars.put(Integer.valueOf(6), Integer.valueOf(Types.INTEGER));
variables.put(Integer.valueOf(6), null);
} else {
variables.put(Integer.valueOf(6), Integer.valueOf(sb.getParentDnId()));
}
variables.put(Integer.valueOf(7), sb.getEntityType());
variables.put(Integer.valueOf(8), Integer.valueOf(sb.getStudyId()));
if (sb.getAssignedUserId() == 0) {
nullVars.put(Integer.valueOf(9), Integer.valueOf(Types.INTEGER));
variables.put(Integer.valueOf(9), null);
} else {
variables.put(Integer.valueOf(9), Integer.valueOf(sb.getAssignedUserId()));
}
// variables.put(Integer.valueOf(9), Integer.valueOf(sb.getAssignedUserId()));
this.executeWithPK(digester.getQuery("create"), variables, nullVars);
if (isQuerySuccessful()) {
sb.setId(getLatestPK());
}
return sb;
}
/**
* Creates a new discrepancy note map
*/
public void createMapping(DiscrepancyNoteBean eb) {
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eb.getEntityId()));
variables.put(Integer.valueOf(2), Integer.valueOf(eb.getId()));
variables.put(Integer.valueOf(3), eb.getColumn());
String entityType = eb.getEntityType();
if ("subject".equalsIgnoreCase(entityType)) {
this.execute(digester.getQuery("createSubjectMap"), variables);
} else if ("studySub".equalsIgnoreCase(entityType)) {
this.execute(digester.getQuery("createStudySubjectMap"), variables);
} else if ("eventCrf".equalsIgnoreCase(entityType)) {
this.execute(digester.getQuery("createEventCRFMap"), variables);
} else if ("studyEvent".equalsIgnoreCase(entityType)) {
this.execute(digester.getQuery("createStudyEventMap"), variables);
} else if ("itemData".equalsIgnoreCase(entityType)) {
variables.put(Integer.valueOf(4), eb.isActivated());
this.execute(digester.getQuery("createItemDataMap"), variables);
}
}
/**
* Updates a Study event
*/
@Override
public EntityBean update(EntityBean eb) {
// update discrepancy_note set
// description =?,
// discrepancy_note_type_id =? ,
// resolution_status_id =? ,
// detailed_notes =?
// where discrepancy_note_id=?
DiscrepancyNoteBean dnb = (DiscrepancyNoteBean) eb;
dnb.setActive(false);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), dnb.getDescription());
variables.put(Integer.valueOf(2), Integer.valueOf(dnb.getDiscrepancyNoteTypeId()));
variables.put(Integer.valueOf(3), Integer.valueOf(dnb.getResolutionStatusId()));
variables.put(Integer.valueOf(4), dnb.getDetailedNotes());
variables.put(Integer.valueOf(5), Integer.valueOf(dnb.getId()));
this.execute(digester.getQuery("update"), variables);
if (isQuerySuccessful()) {
dnb.setActive(true);
}
return dnb;
}
public EntityBean updateAssignedUser(EntityBean eb) {
// update discrepancy_note set
// assigned_user_id = ?
// where discrepancy_note_id=?
DiscrepancyNoteBean dnb = (DiscrepancyNoteBean) eb;
dnb.setActive(false);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), dnb.getAssignedUserId());
variables.put(Integer.valueOf(2), Integer.valueOf(dnb.getId()));
this.execute(digester.getQuery("updateAssignedUser"), variables);
if (isQuerySuccessful()) {
dnb.setActive(true);
}
return dnb;
}
public EntityBean updateDnMapActivation(EntityBean eb) {
// update discrepancy_note set
// assigned_user_id = ?
// where discrepancy_note_id=?
DiscrepancyNoteBean dnb = (DiscrepancyNoteBean) eb;
dnb.setActive(false);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), dnb.isActivated());
variables.put(Integer.valueOf(2), dnb.getEntityId());
this.execute(digester.getQuery("updateDnMapActivation"), variables);
if (isQuerySuccessful()) {
dnb.setActive(true);
}
return dnb;
}
public EntityBean updateAssignedUserToNull(EntityBean eb) {
// update discrepancy_note set
// assigned_user_id = null
// where discrepancy_note_id=?
DiscrepancyNoteBean dnb = (DiscrepancyNoteBean) eb;
dnb.setActive(false);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(dnb.getId()));
this.execute(digester.getQuery("updateAssignedUserToNull"), variables);
if (isQuerySuccessful()) {
dnb.setActive(true);
}
return dnb;
}
public void deleteNotes(int id) {
HashMap<Integer, Comparable> variables = new HashMap<Integer, Comparable>();
variables.put(Integer.valueOf(1), Integer.valueOf(id));
this.execute(digester.getQuery("deleteNotes"), variables);
return;
}
@Override
public Collection findAllByPermission(Object objCurrentUser, int intActionType, String strOrderByColumn, boolean blnAscendingSort, String strSearchPhrase) {
ArrayList al = new ArrayList();
return al;
}
@Override
public Collection findAllByPermission(Object objCurrentUser, int intActionType) {
ArrayList al = new ArrayList();
return al;
}
@Override
public int getCurrentPK() {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
int pk = 0;
ArrayList al = select(digester.getQuery("getCurrentPrimaryKey"));
if (al.size() > 0) {
HashMap h = (HashMap) al.get(0);
pk = ((Integer) h.get("key")).intValue();
}
return pk;
}
public ArrayList findAllByParent(DiscrepancyNoteBean parent) {
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(parent.getId()));
return this.executeFindAllQuery("findAllByParent", variables);
}
public ArrayList findAllByStudyEvent(StudyEventBean studyEvent) {
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(studyEvent.getId()));
return this.executeFindAllQuery("findByStudyEvent", variables);
}
public ArrayList findAllByStudyEventWithConstraints(StudyEventBean studyEvent, StringBuffer constraints) {
this.setTypesExpected();
ArrayList answer = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(studyEvent.getId()));
String sql = digester.getQuery("findByStudyEvent");
sql += constraints.toString();
Iterator it = this.select(sql, variables).iterator();
while (it.hasNext()) {
answer.add(this.getEntityFromHashMap((HashMap) it.next()));
}
return answer;
}
public HashMap<ResolutionStatus, Integer> findAllByStudyEventWithConstraints(StudyEventBean studyEvent, StringBuffer constraints, boolean isSite) {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.INT);
// ArrayList answer = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(studyEvent.getId()));
String sql = digester.getQuery("findByStudyEvent");
sql += constraints.toString();
if (isSite) {
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql +=
" AND ec.crf_version_id not in (select cv.crf_version_id from crf_version cv where cv.crf_id in ("
+ "select edc.crf_id from event_definition_crf edc, study_event se where se.study_event_id = " + studyEvent.getId()
+ " AND edc.study_event_definition_id = se.study_event_definition_id AND edc.hide_crf = 1"
+ " AND edc.event_definition_crf_id not in ("
+ "select parent_id from event_definition_crf where study_event_definition_id = se.study_event_definition_id and parent_id > 0)) )";
} else {
sql +=
" AND ec.crf_version_id not in (select cv.crf_version_id from crf_version cv where cv.crf_id in ("
+ "select edc.crf_id from event_definition_crf edc, study_event se where se.study_event_id = " + studyEvent.getId()
+ " AND edc.study_event_definition_id = se.study_event_definition_id AND edc.hide_crf = 'true'"
+ " AND edc.event_definition_crf_id not in ("
+ "select parent_id from event_definition_crf where study_event_definition_id = se.study_event_definition_id and parent_id > 0)) )";
}
}
sql += " group By dn.resolution_status_id ";
Iterator it = this.select(sql, variables).iterator();
HashMap<ResolutionStatus, Integer> discCounts = new HashMap<ResolutionStatus, Integer>();
while (it.hasNext()) {
HashMap h = (HashMap) it.next();
Integer resolutionStatusId = (Integer) h.get("resolution_status_id");
Integer count = (Integer) h.get("count");
discCounts.put(ResolutionStatus.get(resolutionStatusId), count);
}
return discCounts;
}
public HashMap<ResolutionStatus, Integer> countByEntityTypeAndStudyEventWithConstraints(String entityType, StudyEventBean studyEvent,
StringBuffer constraints, boolean isSite) {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.INT);
// ArrayList answer = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(studyEvent.getId()));
String sql = "";
String temp = "";
if ("itemData".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("findByStudyEvent");
temp = " and (dn.entity_type='itemData' or dn.entity_type='ItemData') ";
if (isSite) {
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
temp +=
" AND ec.crf_version_id not in (select cv.crf_version_id from crf_version cv where cv.crf_id in ("
+ "select edc.crf_id from event_definition_crf edc, study_event se where se.study_event_id = " + studyEvent.getId()
+ " AND edc.study_event_definition_id = se.study_event_definition_id AND edc.hide_crf = 1"
+ " AND edc.event_definition_crf_id not in ("
+ "select parent_id from event_definition_crf where study_event_definition_id = se.study_event_definition_id and parent_id > 0)) )";
} else {
temp +=
" AND ec.crf_version_id not in (select cv.crf_version_id from crf_version cv where cv.crf_id in ("
+ "select edc.crf_id from event_definition_crf edc, study_event se where se.study_event_id = " + studyEvent.getId()
+ " AND edc.study_event_definition_id = se.study_event_definition_id AND edc.hide_crf = 'true'"
+ " AND edc.event_definition_crf_id not in ("
+ "select parent_id from event_definition_crf where study_event_definition_id = se.study_event_definition_id and parent_id > 0)) )";
}
}
} else if ("eventCrf".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("countByEventCrfTypeAndStudyEvent");
temp = " and dn.entity_type='eventCrf' ";
if (isSite) {
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
temp +=
" AND ec.crf_version_id not in (select cv.crf_version_id from crf_version cv where cv.crf_id in ("
+ "select edc.crf_id from event_definition_crf edc, study_event se where se.study_event_id = " + studyEvent.getId()
+ " AND edc.study_event_definition_id = se.study_event_definition_id AND edc.hide_crf = 1"
+ " AND edc.event_definition_crf_id not in ("
+ "select parent_id from event_definition_crf where study_event_definition_id = se.study_event_definition_id and parent_id > 0)) )";
} else {
temp +=
" AND ec.crf_version_id not in (select cv.crf_version_id from crf_version cv where cv.crf_id in ("
+ "select edc.crf_id from event_definition_crf edc, study_event se where se.study_event_id = " + studyEvent.getId()
+ " AND edc.study_event_definition_id = se.study_event_definition_id AND edc.hide_crf = 'true'"
+ " AND edc.event_definition_crf_id not in ("
+ "select parent_id from event_definition_crf where study_event_definition_id = se.study_event_definition_id and parent_id > 0)) )";
}
}
} else if ("studyEvent".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("countByStudyEventTypeAndStudyEvent");
temp = " and dn.entity_type='studyEvent' ";
} else if ("studySub".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("countByStudySubjectTypeAndStudyEvent");
temp = " and dn.entity_type='studySub' ";
} else if ("subject".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("countBySubjectTypeAndStudyEvent");
temp = " and dn.entity_type='subject' ";
}
sql += temp;
sql += constraints.toString();
sql += " group By dn.resolution_status_id ";
Iterator it = this.select(sql, variables).iterator();
HashMap<ResolutionStatus, Integer> discCounts = new HashMap<ResolutionStatus, Integer>();
while (it.hasNext()) {
HashMap h = (HashMap) it.next();
Integer resolutionStatusId = (Integer) h.get("resolution_status_id");
Integer count = (Integer) h.get("count");
discCounts.put(ResolutionStatus.get(resolutionStatusId), count);
}
return discCounts;
}
private DiscrepancyNoteBean findSingleMapping(DiscrepancyNoteBean note) {
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(note.getId()));
setMapTypesExpected();
String entityType = note.getEntityType();
String sql = "";
if ("subject".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("findSubjectMapByDNId");
} else if ("studySub".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("findStudySubjectMapByDNId");
} else if ("eventCrf".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("findEventCRFMapByDNId");
} else if ("studyEvent".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("findStudyEventMapByDNId");
} else if ("itemData".equalsIgnoreCase(entityType)) {
sql = digester.getQuery("findItemDataMapByDNId");
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
this.setTypeExpected(2, TypeNames.INT);
this.setTypeExpected(3, TypeNames.STRING);
this.setTypeExpected(4, TypeNames.INT);
}
ArrayList hms = select(sql, variables);
if (hms.size() > 0) {
HashMap hm = (HashMap) hms.get(0);
note = getMappingFromHashMap(hm, note);
}
return note;
}
private DiscrepancyNoteBean getMappingFromHashMap(HashMap hm, DiscrepancyNoteBean note) {
String entityType = note.getEntityType();
String entityIDColumn = getEntityIDColumn(entityType);
if (!entityIDColumn.equals("")) {
note.setEntityId(selectInt(hm, entityIDColumn));
}
note.setColumn(selectString(hm, "column_name"));
return note;
}
public static String getEntityIDColumn(String entityType) {
String entityIDColumn = "";
if ("subject".equalsIgnoreCase(entityType)) {
entityIDColumn = "subject_id";
} else if ("studySub".equalsIgnoreCase(entityType)) {
entityIDColumn = "study_subject_id";
} else if ("eventCrf".equalsIgnoreCase(entityType)) {
entityIDColumn = "event_crf_id";
} else if ("studyEvent".equalsIgnoreCase(entityType)) {
entityIDColumn = "study_event_id";
} else if ("itemData".equalsIgnoreCase(entityType)) {
entityIDColumn = "item_data_id";
}
return entityIDColumn;
}
public AuditableEntityBean findEntity(DiscrepancyNoteBean note) {
AuditableEntityDAO aedao = getAEDAO(note, ds);
try {
if (aedao != null) {
AuditableEntityBean aeb = (AuditableEntityBean) aedao.findByPK(note.getEntityId());
return aeb;
}
} catch (Exception e) {
}
return null;
}
public static AuditableEntityDAO getAEDAO(DiscrepancyNoteBean note, DataSource ds) {
String entityType = note.getEntityType();
if ("subject".equalsIgnoreCase(entityType)) {
return new SubjectDAO(ds);
} else if ("studySub".equalsIgnoreCase(entityType)) {
return new StudySubjectDAO(ds);
} else if ("eventCrf".equalsIgnoreCase(entityType)) {
return new EventCRFDAO(ds);
} else if ("studyEvent".equalsIgnoreCase(entityType)) {
return new StudyEventDAO(ds);
} else if ("itemData".equalsIgnoreCase(entityType)) {
return new ItemDataDAO(ds);
}
return null;
}
public int findNumExistingNotesForItem(int itemDataId) {
unsetTypeExpected();
setTypeExpected(1, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(itemDataId));
String sql = digester.getQuery("findNumExistingNotesForItem");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
HashMap hm = (HashMap) it.next();
try {
Integer i = (Integer) hm.get("num");
return i.intValue();
} catch (Exception e) {
}
}
return 0;
}
public int findNumOfActiveExistingNotesForItemData(int itemDataId) {
unsetTypeExpected();
setTypeExpected(1, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(itemDataId));
String sql = digester.getQuery("findNumOfActiveExistingNotesForItemData");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
HashMap hm = (HashMap) it.next();
try {
Integer i = (Integer) hm.get("num");
return i.intValue();
} catch (Exception e) {
}
}
return 0;
}
public ArrayList findExistingNotesForItemData(int itemDataId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(itemDataId));
alist = this.select(digester.getQuery("findExistingNotesForItemData"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public ArrayList findExistingNotesForToolTip(int itemDataId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(itemDataId));
variables.put(Integer.valueOf(2), Integer.valueOf(itemDataId));
variables.put(Integer.valueOf(3), Integer.valueOf(itemDataId));
variables.put(Integer.valueOf(4), Integer.valueOf(itemDataId));
alist = this.select(digester.getQuery("findExistingNotesForToolTip"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
// alist = this.select(digester.getQuery("findParentNotesForToolTip"), variables);
// it = alist.iterator();
// while (it.hasNext()) {
// HashMap hm = (HashMap) it.next();
// DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
// al.add(eb);
// }
return al;
}
public ArrayList findParentNotesForToolTip(int itemDataId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(itemDataId));
variables.put(Integer.valueOf(2), Integer.valueOf(itemDataId));
alist = this.select(digester.getQuery("findParentNotesForToolTip"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findParentNotesOnlyByItemData(int itemDataId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(itemDataId));
alist = this.select(digester.getQuery("findParentNotesOnlyByItemData"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findAllTopNotesByEventCRF(int eventCRFId) {
this.setTypesExpected();
ArrayList alist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFId));
alist = this.select(digester.getQuery("findAllTopNotesByEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> al = new ArrayList<DiscrepancyNoteBean>();
Iterator it = alist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
al.add(eb);
}
return al;
}
public ArrayList<DiscrepancyNoteBean> findOnlyParentEventCRFDNotesFromEventCRF(EventCRFBean eventCRFBean) {
this.setTypesExpected();
this.setTypeExpected(12, TypeNames.STRING);
ArrayList dNotelist = new ArrayList();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(eventCRFBean.getId()));
dNotelist = this.select(digester.getQuery("findOnlyParentEventCRFDNotesFromEventCRF"), variables);
ArrayList<DiscrepancyNoteBean> returnedNotelist = new ArrayList<DiscrepancyNoteBean>();
Iterator it = dNotelist.iterator();
while (it.hasNext()) {
HashMap hm = (HashMap) it.next();
DiscrepancyNoteBean eb = (DiscrepancyNoteBean) this.getEntityFromHashMap(hm);
eb.setColumn((String) hm.get("column_name"));
eb.setEventCRFId(eventCRFBean.getId());
returnedNotelist.add(eb);
}
return returnedNotelist;
}
public String findSiteHiddenEventCrfIdsString(StudyBean site) {
String sql = "";
if ("oracle".equalsIgnoreCase(CoreResources.getDBName())) {
sql =
"select ec.event_crf_id from event_crf ec, study_event se, crf_version cv, " + "(select edc.study_event_definition_id, edc.crf_id, crf.name "
+ "from event_definition_crf edc, crf, study s " + "where s.study_id=" + site.getId()
+ " and (edc.study_id = s.study_id or edc.study_id = s.parent_study_id)" + " and edc.event_definition_crf_id not in ( "
+ " select parent_id from event_definition_crf where study_id=s.study_id) "
+ " and edc.status_id=1 and edc.hide_crf = 1 and edc.crf_id = crf.crf_id) sedc "
+ "where ec.study_event_id = se.study_event_id " + "and se.study_event_definition_id = sedc.study_event_definition_id "
+ "and ec.crf_version_id = cv.crf_version_id and cv.crf_id = sedc.crf_id";
} else {
sql =
"select ec.event_crf_id from event_crf ec, study_event se, crf_version cv, " + "(select edc.study_event_definition_id, edc.crf_id, crf.name "
+ "from event_definition_crf edc, crf, study s " + "where s.study_id=" + site.getId()
+ " and (edc.study_id = s.study_id or edc.study_id = s.parent_study_id)" + " and edc.event_definition_crf_id not in ( "
+ " select parent_id from event_definition_crf where study_id=s.study_id) "
+ " and edc.status_id=1 and edc.hide_crf = 'true' and edc.crf_id = crf.crf_id) as sedc "
+ "where ec.study_event_id = se.study_event_id " + "and se.study_event_definition_id = sedc.study_event_definition_id "
+ "and ec.crf_version_id = cv.crf_version_id and cv.crf_id = sedc.crf_id";
}
return sql;
}
public EntityBean findLatestChildByParent(int parentId) {
DiscrepancyNoteBean eb = new DiscrepancyNoteBean();
this.setTypesExpected();
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(parentId));
variables.put(Integer.valueOf(2), Integer.valueOf(parentId));
String sql = digester.getQuery("findLatestChildByParent");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
eb = (DiscrepancyNoteBean) this.getEntityFromHashMap((HashMap) it.next());
}
return eb;
}
public int getResolutionStatusIdForSubjectDNFlag(int subjectId, String column) {
int id = 0;
unsetTypeExpected();
setTypeExpected(1, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), Integer.valueOf(subjectId));
variables.put(Integer.valueOf(2), new String(column));
String sql = digester.getQuery("getResolutionStatusIdForSubjectDNFlag");
ArrayList alist = this.select(sql, variables);
Iterator it = alist.iterator();
if (it.hasNext()) {
HashMap hm = (HashMap) it.next();
try {
id = ((Integer) hm.get("resolution_status_id")).intValue();
} catch (Exception e) {
}
}
return id;
}
//Yufang code, addded by Jamuna
public Integer getViewNotesCountWithFilter(Integer assignedUserId, Integer studyId) {
this.unsetTypeExpected();
this.setTypeExpected(1, TypeNames.INT);
HashMap variables = new HashMap();
variables.put(Integer.valueOf(1), assignedUserId);
variables.put(Integer.valueOf(2), studyId);
variables.put(Integer.valueOf(3), studyId);
String sql = digester.getQuery("countViewNotesForAssignedUserInStudy");
ArrayList rows = select(sql, variables);
Iterator it = rows.iterator();
if (it.hasNext()) {
Integer count = (Integer) ((HashMap) it.next()).get("count");
return count;
} else {
return null;
}
}
}