/*
* GNU Lesser General Public License (GNU LGPL).
* For details see: http://www.openclinica.org/license
*
* OpenClinica is distributed under the
* Copyright 2003-2008 Akaza Research
*/
package org.akaza.openclinica.service.managestudy;
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.dao.managestudy.DiscrepancyNoteDAO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.sql.DataSource;
public class DiscrepancyNoteService {
protected final Logger logger = LoggerFactory.getLogger(getClass().getName());
DataSource ds;
private DiscrepancyNoteDAO discrepancyNoteDao;
public DiscrepancyNoteService(DataSource ds) {
this.ds = ds;
}
public void saveFieldNotes(String description, int entityId, String entityType, StudyBean sb, UserAccountBean ub) {
// Create a new thread each time
DiscrepancyNoteBean parent = createDiscrepancyNoteBean(description, entityId, entityType, sb, ub, null);
createDiscrepancyNoteBean(description, entityId, entityType, sb, ub, parent.getId());
}
private DiscrepancyNoteBean createDiscrepancyNoteBean(String description, int entityId, String entityType, StudyBean sb, UserAccountBean ub,
Integer parentId) {
DiscrepancyNoteBean dnb = new DiscrepancyNoteBean();
dnb.setEntityId(entityId);
dnb.setStudyId(sb.getId());
dnb.setEntityType(entityType);
dnb.setDescription(description);
dnb.setDiscrepancyNoteTypeId(1);
dnb.setResolutionStatusId(1);
dnb.setColumn("value");
dnb.setOwner(ub);
if (parentId != null) {
dnb.setParentDnId(parentId);
}
dnb = (DiscrepancyNoteBean) getDiscrepancyNoteDao().create(dnb);
getDiscrepancyNoteDao().createMapping(dnb);
return dnb;
}
private DiscrepancyNoteDAO getDiscrepancyNoteDao() {
discrepancyNoteDao = this.discrepancyNoteDao != null ? discrepancyNoteDao : new DiscrepancyNoteDAO(ds);
return discrepancyNoteDao;
}
}