@SuppressWarnings("unchecked")
private Consent fromXWikiConsentConfiguration(BaseObject xwikiConsent, XWikiDocument configDoc)
{
try {
String id = xwikiConsent.getStringValue("id");
String label = cleanDescription(
configDoc.display("label", RENDERING_MODE, xwikiConsent, this.contextProvider.get()), true);
if (label == null || label.length() == 0) {
label = id + " " + this.translationManager.translate("phenotips.consents.label.empty");
}
String description = cleanDescription(
configDoc.display("description", RENDERING_MODE, xwikiConsent, this.contextProvider.get()), false);
boolean required = intToBool(xwikiConsent.getIntValue("required"));
boolean affectsFields = intToBool(xwikiConsent.getIntValue("affectsFields"));
List<String> formFields = null;
List<String> dataFields = null;
if (affectsFields) {
dataFields = new LinkedList<>();
formFields = xwikiConsent.getListValue(FIELDS);
fetchConsentFields(formFields, dataFields);
}
return new DefaultConsent(id, label, description, required, dataFields, formFields);
} catch (Exception ex) {
this.logger.error("A patient consent is improperly configured: {}", ex.getMessage());
}
return null;
}