Summary Table
| Categories |
Total Count |
| PII |
0 |
| URL |
0 |
| DNS |
0 |
| EKL |
0 |
| IP |
0 |
| PORT |
0 |
| VsID |
0 |
| CF |
0 |
| AI |
0 |
| VPD |
0 |
| PL |
0 |
| Other |
0 |
File Content
package gov.va.vamf.scheduling.varutility.domain;
import com.agilex.healthcare.utility.NullChecker;
import gov.va.vamf.scheduling.varutility.exception.BasicValidationException;
import org.springframework.data.mongodb.core.mapping.Document;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
import static gov.va.vamf.scheduling.varutility.utils.VarUtilityConstants.REQUEST_SCHEDULING_METHOD;
@Document
@XmlAccessorType(value = XmlAccessType.NONE)
@XmlRootElement(namespace = Namespace.VarUtility)
public class RequestEligibilityCriteria extends DomainBaseObject {
@XmlElement
private CoreSettings requestSettings;
@XmlElement
private CustomRequestSettings customRequestSettings;
public CoreSettings getRequestSettings() {
return requestSettings;
}
public void setRequestSettings(CoreSettings requestSettings) {
this.requestSettings = requestSettings;
}
public CustomRequestSettings getCustomRequestSettings() {
return customRequestSettings;
}
public void setCustomRequestSettings(CustomRequestSettings customRequestSettings) {
this.customRequestSettings = customRequestSettings;
}
public void validate(String siteCode, List<ClinicalServices> requestServices, List<ClinicalServices> customRequestServices) {
ValidationErrors<RequestEligibilityCriteria> errors = new ValidationErrors<RequestEligibilityCriteria>();
if(NullChecker.isNullish(getId())) {
errors.add(new ValidationError("id", "id is required."));
} else if(! getId().equals(siteCode)) {
errors.add(new ValidationError("id", "id must match Site Code."));
}
ArrayList<ValidationError> requestSettingsErrors = getRequestSettings().validate(requestServices, REQUEST_SCHEDULING_METHOD);
ArrayList<ValidationError> customRequestSettingsErrors = getCustomRequestSettings().validate(customRequestServices);
errors.addAll(requestSettingsErrors);
errors.addAll(customRequestSettingsErrors);
if(errors.size() > 0) {
errors.setRequestObject(this);
throw new BasicValidationException(errors);
}
}
public void cleanupDataForSave() {
for(CoreSetting cs : this.getRequestSettings()) {
if(agilex.commons.NullChecker.isNullish(cs.getPatientHistoryRequired()) || cs.getPatientHistoryRequired().equals("No")) {
cs.setPatientHistoryDuration(0);
}
if (agilex.commons.NullChecker.isNullish(cs.getPatientHistoryRequired())) {
cs.setSubmittedRequestLimit(0);
}
cs.setCanCancel(null);
}
for (CustomRequestSetting crs: this.getCustomRequestSettings()) {
if (crs.getSupported().equals(false)) {
crs.setSubmittedRequestLimit(0);
}
}
}
}