use of org.akaza.openclinica.service.pmanage.ParticipantPortalRegistrar in project OpenClinica by OpenClinica.
the class EditFormController method mayProceed.
private boolean mayProceed(String studyOid) throws Exception {
boolean accessPermission = false;
StudyBean siteStudy = getStudy(studyOid);
StudyBean study = getParentStudy(studyOid);
StudyParameterValueDAO spvdao = new StudyParameterValueDAO(dataSource);
StudyParameterValueBean pStatus = spvdao.findByHandleAndStudy(study.getId(), "participantPortal");
participantPortalRegistrar = new ParticipantPortalRegistrar();
// ACTIVE ,
String pManageStatus = participantPortalRegistrar.getRegistrationStatus(study.getOid()).toString();
// PENDING ,
// INACTIVE
// enabled , disabled
String participateStatus = pStatus.getValue().toString();
// available , pending , frozen , locked
String studyStatus = study.getStatus().getName().toString();
// available , pending , frozen , locked
String siteStatus = siteStudy.getStatus().getName().toString();
logger.info("pManageStatus: " + pManageStatus + " participantStatus: " + participateStatus + " studyStatus: " + studyStatus + " siteStatus: " + siteStatus);
if (participateStatus.equalsIgnoreCase("enabled") && studyStatus.equalsIgnoreCase("available") && siteStatus.equalsIgnoreCase("available") && pManageStatus.equalsIgnoreCase("ACTIVE")) {
accessPermission = true;
}
return accessPermission;
}
use of org.akaza.openclinica.service.pmanage.ParticipantPortalRegistrar in project OpenClinica by OpenClinica.
the class StudyEventController method mayProceed.
private boolean mayProceed(Study study) throws Exception {
boolean accessPermission = false;
StudyParameterValue pStatus = studyParameterValueDao.findByStudyIdParameter(study.getStudyId(), "participantPortal");
ParticipantPortalRegistrar participantPortalRegistrar = new ParticipantPortalRegistrar();
// ACTIVE,PENDING,INACTIVE
String pManageStatus = participantPortalRegistrar.getRegistrationStatus(study.getOc_oid()).toString();
// enabled , disabled
String participateStatus = pStatus.getValue().toString();
// available , pending , frozen , locked
String studyStatus = study.getStatus().getName().toString();
logger.info("pManageStatus: " + pManageStatus + " participantStatus: " + participateStatus + " studyStatus: " + studyStatus);
System.out.println("pManageStatus: " + pManageStatus + " participantStatus: " + participateStatus + " studyStatus: " + studyStatus);
if (participateStatus.equalsIgnoreCase("enabled") && studyStatus.equalsIgnoreCase("available") && pManageStatus.equalsIgnoreCase("ACTIVE")) {
accessPermission = true;
}
return accessPermission;
}
use of org.akaza.openclinica.service.pmanage.ParticipantPortalRegistrar in project OpenClinica by OpenClinica.
the class OpenRosaSubmissionController method mayProceed.
private boolean mayProceed(Study childStudy, StudySubjectBean ssBean) throws Exception {
boolean accessPermission = false;
ParticipantPortalRegistrar participantPortalRegistrar = new ParticipantPortalRegistrar();
Study study = getParentStudy(childStudy);
StudyParameterValue pStatus = studyParameterValueDao.findByStudyIdParameter(study.getStudyId(), "participantPortal");
// ACTIVE, PENDING, or INACTIVE
String pManageStatus = participantPortalRegistrar.getRegistrationStatus(childStudy.getOc_oid()).toString();
// enabled or disabled
String participateStatus = pStatus.getValue().toString();
// available, pending, frozen, or locked
String studyStatus = study.getStatus().getName().toString();
if (ssBean == null) {
logger.info("pManageStatus: " + pManageStatus + " participantStatus: " + participateStatus + " studyStatus: " + studyStatus);
if (participateStatus.equalsIgnoreCase("enabled") && studyStatus.equalsIgnoreCase("available") && pManageStatus.equalsIgnoreCase("ACTIVE"))
accessPermission = true;
} else {
logger.info("pManageStatus: " + pManageStatus + " participantStatus: " + participateStatus + " studyStatus: " + studyStatus + " studySubjectStatus: " + ssBean.getStatus().getName());
// pManageStatus.equalsIgnoreCase("ACTIVE")
if (participateStatus.equalsIgnoreCase("enabled") && studyStatus.equalsIgnoreCase("available") && ssBean.getStatus() == Status.AVAILABLE)
accessPermission = true;
}
return accessPermission;
}
use of org.akaza.openclinica.service.pmanage.ParticipantPortalRegistrar in project OpenClinica by OpenClinica.
the class NotificationActionProcessor method run.
@Override
public void run() {
String hostname = "";
String url = "";
participantPortalRegistrar = new ParticipantPortalRegistrar();
try {
hostname = participantPortalRegistrar.getStudyHost(studyBean.getOid());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
url = hostname.replaceAll("login", "plogin");
message = message.replaceAll("\\$\\{participant.url}", url);
emailSubject = emailSubject.replaceAll("\\$\\{participant.url}", url);
pDTO = getParticipantInfo(uBean);
if (pDTO != null) {
String msg = null;
String eSubject = null;
msg = message.replaceAll("\\$\\{participant.accessCode}", pDTO.getAccessCode());
msg = msg.replaceAll("\\$\\{participant.firstname}", pDTO.getfName());
eSubject = emailSubject.replaceAll("\\$\\{participant.accessCode}", pDTO.getAccessCode());
eSubject = eSubject.replaceAll("\\$\\{participant.firstname}", pDTO.getfName());
String loginUrl = url + "?access_code=" + pDTO.getAccessCode() + "&auto_login=true";
msg = msg.replaceAll("\\$\\{participant.loginurl}", loginUrl);
eSubject = eSubject.replaceAll("\\$\\{participant.loginurl}", loginUrl);
msg = msg.replaceAll("\\\\n", "\n");
eSubject = eSubject.replaceAll("\\\\n", "\n");
message = message.replaceAll("\\\\n", "\n");
emailSubject = emailSubject.replaceAll("\\\\n", "\n");
pDTO.setMessage(msg);
pDTO.setEmailSubject(eSubject);
pDTO.setUrl(url);
pDTO.setOrigMessage(message);
pDTO.setOrigEmailSubject(emailSubject);
pDTO.setParticipantEmailAccount(pDTO.getEmailAccount());
} else {
pDTO = buildNewPDTO();
message = message.replaceAll("\\\\n", "\n");
emailSubject = emailSubject.replaceAll("\\\\n", "\n");
pDTO.setOrigMessage(message);
pDTO.setOrigEmailSubject(emailSubject);
}
for (String email : listOfEmails) {
if (email.trim().equals("${participant}") || participateStatus.equals("enabled")) {
if (email.trim().equals("${participant}")) {
pDTO.setEmailAccount(pDTO.getParticipantEmailAccount());
pDTO.setEncryptedEmailAccount(Boolean.TRUE);
} else {
pDTO.setEmailAccount(email.trim());
pDTO.setPhone(null);
pDTO.setEncryptedEmailAccount(Boolean.FALSE);
}
// Send Email thru Mandrill Mail Server
try {
participantPortalRegistrar.sendEmailThruMandrillViaOcui(pDTO, hostname);
} catch (Exception e) {
e.getStackTrace();
}
System.out.println(pDTO.getMessage() + " (Email Send to Participant from Mandrill : " + pDTO.getEmailAccount() + ")");
} else {
pDTO.setEmailAccount(email.trim());
// System.out.println();
// Send Email thru Local Mail Server
execute(ExecutionMode.SAVE, ruleActionBean, pDTO, email.trim());
System.out.println(pDTO.getMessage() + " (Email sent to Hard Coded email address from OC Mail Server : " + pDTO.getEmailAccount() + ")");
}
}
}
use of org.akaza.openclinica.service.pmanage.ParticipantPortalRegistrar in project OpenClinica by OpenClinica.
the class OdmImportServiceImpl method importOdmToOC.
@Transactional
public void importOdmToOC(ODM odm) {
UserAccount userAccount = getCurrentUser();
// TODO add validation to all entities
ODMcomplexTypeDefinitionStudy odmStudy = odm.getStudy().get(0);
Study study = saveOrUpdateStudy(odm, userAccount, odmStudy);
ParticipantPortalRegistrar portal = new ParticipantPortalRegistrar();
portal.registerStudy(study.getOc_oid(), study.getOc_oid(), study.getName());
StudyParameterValue spv = getStudyParameterValueDao().findByStudyIdParameter(study.getStudyId(), "participantPortal");
// Update OC Study configuration
if (spv == null) {
spv = new StudyParameterValue();
spv.setStudy(study);
}
spv.setValue("enabled");
spv = getStudyParameterValueDao().saveOrUpdate(spv);
StudyUserRole studyUserRole = null;
StudyUserRoleId studyUserRoleId = null;
Form[] fmCrfs = getAllCrfsByProtIdFromFormManager(study);
ArrayList<StudyUserRole> surRoles = getStudyUserRoleDao().findAllUserRolesByUserAccount(userAccount, study.getStudyId(), study.getStudyId());
if (surRoles.size() == 0) {
studyUserRoleId = new StudyUserRoleId();
studyUserRole = new StudyUserRole();
studyUserRole = getStudyUserRoleDao().saveOrUpdate(populateUserRole(study, userAccount, studyUserRole, studyUserRoleId));
}
StudyEventDefinition studyEventDefinition = null;
List<ODMcomplexTypeDefinitionMetaDataVersion> odmMetadataVersions = odmStudy.getMetaDataVersion();
List<ODMcomplexTypeDefinitionStudyEventDef> odmStudyEventDefs = saveOrUpdateEvent(userAccount, study, odmMetadataVersions);
CrfBean crf = null;
FormLayout formLayout = null;
saveOrUpdateCrf(userAccount, study, odmMetadataVersions, fmCrfs);
List<ODMcomplexTypeDefinitionStudyEventRef> odmStudyEventRefs = odmMetadataVersions.get(0).getProtocol().getStudyEventRef();
for (ODMcomplexTypeDefinitionStudyEventRef odmStudyEventRef : odmStudyEventRefs) {
for (ODMcomplexTypeDefinitionStudyEventDef odmStudyEventDef : odmStudyEventDefs) {
if (odmStudyEventDef.getOID().equals(odmStudyEventRef.getStudyEventOID())) {
studyEventDefinition = getStudyEventDefDao().findByOcOID(odmStudyEventDef.getOID());
studyEventDefinition.setOrdinal(odmStudyEventRef.getOrderNumber().intValue());
studyEventDefinition = getStudyEventDefDao().saveOrUpdate(studyEventDefinition);
List<EventDefinitionCrf> jsonEventDefCrfList = new ArrayList<>();
EventDefinitionCrf eventDefinitionCrf = null;
for (ODMcomplexTypeDefinitionFormRef odmFormRef : odmStudyEventDef.getFormRef()) {
crf = getCrfDao().findByOcOID(odmFormRef.getFormOID());
eventDefinitionCrf = getEventDefinitionCrfDao().findByStudyEventDefinitionIdAndCRFIdAndStudyId(studyEventDefinition.getStudyEventDefinitionId(), crf.getCrfId(), study.getStudyId());
String defaultVersionName = null;
OCodmComplexTypeDefinitionConfigurationParameters conf = odmFormRef.getConfigurationParameters();
List<OCodmComplexTypeDefinitionFormLayoutRef> formLayoutRefs = odmFormRef.getFormLayoutRef();
if (formLayoutRefs.size() == 1 && formLayoutRefs.get(0).getIsDefaultVersion() == null) {
defaultVersionName = formLayoutRefs.get(0).getOID();
} else {
for (OCodmComplexTypeDefinitionFormLayoutRef formLayoutRef : formLayoutRefs) {
if (formLayoutRef.getIsDefaultVersion().equalsIgnoreCase("Yes")) {
defaultVersionName = formLayoutRef.getOID();
}
}
}
if (defaultVersionName == null) {
defaultVersionName = formLayoutRefs.get(0).getOID();
}
formLayout = getFormLayoutDao().findByNameCrfId(defaultVersionName, crf.getCrfId());
EventDefinitionCrfDTO edcObj = new EventDefinitionCrfDTO();
edcObj.setUserAccount(userAccount);
edcObj.setConf(conf);
edcObj.setCrf(crf);
edcObj.setEventDefinitionCrf(eventDefinitionCrf);
edcObj.setOdmFormRef(odmFormRef);
edcObj.setStudy(study);
edcObj.setFormLayout(formLayout);
edcObj.setStudyEventDefinition(studyEventDefinition);
EDCTagDTO populateEDCTagParameter = new EDCTagDTO();
populateEDCTagParameter.setConf(conf);
populateEDCTagParameter.setConf(conf);
populateEDCTagParameter.setEventDefinitionCrf(eventDefinitionCrf);
populateEDCTagParameter.setUserAccount(userAccount);
eventDefinitionCrf = saveOrUpdateEventDefnCrf(new EventDefinitionCrfDTO(edcObj));
saveOrUpdateEDCTag(new EDCTagDTO(populateEDCTagParameter), studyEventDefinition, crf);
jsonEventDefCrfList.add(eventDefinitionCrf);
}
List<EventDefinitionCrf> ocEventDefCrfList = getEventDefinitionCrfDao().findAvailableByStudyEventDefStudy(studyEventDefinition.getStudyEventDefinitionId(), study.getStudyId());
for (EventDefinitionCrf ocEventDefCrf : ocEventDefCrfList) {
if (!jsonEventDefCrfList.contains(ocEventDefCrf)) {
ocEventDefCrf.setStatusId(Status.DELETED.getCode());
getEventDefinitionCrfDao().saveOrUpdate(ocEventDefCrf);
}
}
}
}
}
}
Aggregations