use of org.openclinica.ws.studysubject.v1.ListAllByStudyResponse in project OpenClinica by OpenClinica.
the class StudySubjectEndpoint method listStudySubjectsInStudy.
/**
* Use this method to list all study subjects. Scheduled event data will also be show if available.
*
* @param requestElement
* @return ListAllByStudyResponse
* @throws Exception
*/
@PayloadRoot(localPart = "listAllByStudyRequest", namespace = NAMESPACE_URI_V1)
public ListAllByStudyResponse listStudySubjectsInStudy(JAXBElement<ListStudySubjectsInStudyType> requestElement) throws Exception {
try {
ResourceBundleProvider.updateLocale(new Locale("en_US"));
ListStudySubjectsInStudyType listStudySubjectsInStudyType = requestElement.getValue();
StudyBean study = null;
try {
study = validateRequestAndReturnStudy(listStudySubjectsInStudyType.getStudyRef());
} catch (OpenClinicaSystemException e) {
e.printStackTrace();
ListAllByStudyResponse response = new ListAllByStudyResponse();
response.setResult(messages.getMessage("studySubjectEndpoint.fail", null, "Fail", locale));
response.getError().add(messages.getMessage(e.getErrorCode(), null, e.getErrorCode(), locale));
return response;
}
return mapListStudySubjectsInStudyResponse(study, messages.getMessage("studySubjectEndpoint.success", null, "Success", locale), listStudySubjectsInStudyType.getStudyRef());
} catch (Exception eee) {
eee.printStackTrace();
throw eee;
}
}
use of org.openclinica.ws.studysubject.v1.ListAllByStudyResponse in project OpenClinica by OpenClinica.
the class StudySubjectEndpoint method mapListStudySubjectsInStudyResponse.
/**
* Build the response for listStudySubjectsInStudy method
*
* @param study
* @param message
* @param studyRef
* @return ListAllByStudyResponse
* @throws Exception
*/
private ListAllByStudyResponse mapListStudySubjectsInStudyResponse(StudyBean study, String message, StudyRefType studyRef) throws Exception {
ListAllByStudyResponse response = new ListAllByStudyResponse();
response.setResult(message);
StudySubjectsType studySubjectsType = new StudySubjectsType();
response.setStudySubjects(studySubjectsType);
List<StudySubjectBean> studySubjects = this.subjectService.getStudySubject(study);
for (StudySubjectBean studySubjectBean : studySubjects) {
StudySubjectWithEventsType studySubjectType = new StudySubjectWithEventsType();
SubjectType subjectType = new SubjectType();
studySubjectType.setLabel(studySubjectBean.getLabel());
studySubjectType.setSecondaryLabel(studySubjectBean.getSecondaryLabel());
studySubjectType.setOid(studySubjectBean.getOid());
if (studySubjectBean.getEnrollmentDate() != null) {
studySubjectType.setEnrollmentDate(getXMLGregorianCalendarDate(studySubjectBean.getEnrollmentDate()));
}
SubjectBean subjectBean = (SubjectBean) getSubjectDao().findByPK(studySubjectBean.getSubjectId());
subjectType.setUniqueIdentifier(subjectBean.getUniqueIdentifier());
String genderStr = String.valueOf(subjectBean.getGender());
if (!"".equals(genderStr.trim())) {
subjectType.setGender(GenderType.fromValue(genderStr));
}
if (subjectBean.getDateOfBirth() != null) {
subjectType.setDateOfBirth(getXMLGregorianCalendarDate(subjectBean.getDateOfBirth()));
}
studySubjectType.setSubject(subjectType);
// studySubjectType.setStudyRef(studyRef);
logger.debug(studySubjectBean.getLabel());
studySubjectType.setEvents(getEvents(studySubjectBean));
studySubjectsType.getStudySubject().add(studySubjectType);
}
return response;
}
Aggregations