use of org.springframework.ws.server.endpoint.annotation.PayloadRoot in project OpenClinica by OpenClinica.
the class StudySubjectEndpoint method createStudySubject.
/**
* Use this method to create new study subjects in OpenClinica.
*
* @param subject
* @return Source
* @throws Exception
*/
@PayloadRoot(localPart = "createRequest", namespace = NAMESPACE_URI_V1)
public Source createStudySubject(@XPathParam("//studySubject:studySubject") NodeList subject) throws Exception {
Errors errors = null;
try {
ResourceBundleProvider.updateLocale(locale);
Element subjectElement = (Element) subject.item(0);
SubjectTransferBean subjectTransferBean = unMarshallToSubjectTransfer(subjectElement);
DataBinder dataBinder = new DataBinder((subjectTransferBean));
errors = dataBinder.getBindingResult();
subjectTransferBean.setOwner(getUserAccount());
SubjectTransferValidator subjectTransferValidator = new SubjectTransferValidator(dataSource);
subjectTransferValidator.validate((subjectTransferBean), errors);
if (!errors.hasErrors()) {
String label = create(subjectTransferBean);
return new DOMSource(mapConfirmation(messages.getMessage("studySubjectEndpoint.success", null, "Success", locale), label, errors));
} else {
return new DOMSource(mapConfirmation(messages.getMessage("studySubjectEndpoint.fail", null, "Fail", locale), null, errors));
}
} catch (NullPointerException npe) {
npe.printStackTrace();
return new DOMSource(mapConfirmation(messages.getMessage("studySubjectEndpoint.fail", null, "Null Pointer Exception", locale), null, errors));
} catch (Exception e) {
List<String> error_messages = new ArrayList<String>();
error_messages.add(e.getMessage());
return new DOMSource(mapConfirmation(messages.getMessage("studySubjectEndpoint.fail", null, "Fail", locale), null, errors, "label", error_messages));
}
}
use of org.springframework.ws.server.endpoint.annotation.PayloadRoot in project OpenClinica by OpenClinica.
the class StudySubjectEndpoint method isStudySubject.
/**
* Use this method to find if studysubject exists by study/site/subject lable.
*
* @param requestElement
* @return studySubjectOID
* @throws Exception
*/
@PayloadRoot(localPart = "isStudySubjectRequest", namespace = NAMESPACE_URI_V1)
public Source isStudySubject(@XPathParam("//studySubject:studySubject") NodeList subject) throws Exception {
ResourceBundleProvider.updateLocale(locale);
Element subjectElement = (Element) subject.item(0);
// Element studyElement = (Element) study.item(0);
// ,studyElement);
SubjectStudyDefinitionBean subjectStudyBean = unMarshallToSubjectStudy(subjectElement);
DataBinder dataBinder = new DataBinder((subjectStudyBean));
Errors errors = dataBinder.getBindingResult();
SubjectTransferValidator subjectTransferValidator = new SubjectTransferValidator(dataSource);
subjectTransferValidator.validateIsSubjectExists((subjectStudyBean), errors);
if (subjectStudyBean.getSubjectOIDId() == null) {
// case for core misfunction
errors.reject("studySubjectEndpoint.fail");
}
if (!errors.hasErrors()) {
return new DOMSource(mapConfirmation(messages.getMessage("studySubjectEndpoint.success", null, "Success", locale), subjectStudyBean.getSubjectOIDId(), errors, "subjectOID"));
} else {
return new DOMSource(mapConfirmation(messages.getMessage("studySubjectEndpoint.fail", null, "Fail", locale), null, errors));
}
}
Aggregations