@Override public boolean authorizeInteraction(Patient patient) { return this.containsRequiredConsents(this.consentManager.getMissingConsentsForPatient(patient)); }
@Override public boolean isElementConsented(RecordElement element, Patient patient) { Set<Consent> missingConsents = this.consentManager.getMissingConsentsForPatient(patient); return this.isElementEnabled(element, this.getNonConsentedFieldSet(missingConsents)); }
@Override public List<RecordElement> filterForm(List<RecordElement> elements, Patient patient) { if (!this.consentsGloballyEnabled()) { return elements; } Set<Consent> missingConsents = this.consentManager.getMissingConsentsForPatient(patient); if (missingConsents == null) { // return an empty list in case of any errors return new LinkedList<>(); } if (!containsRequiredConsents(missingConsents)) { return new LinkedList<>(); } Set<String> nonConsentedFields = this.getNonConsentedFieldSet(missingConsents); List<RecordElement> updatedElements = new LinkedList<>(); for (RecordElement element : elements) { if (this.isElementEnabled(element, nonConsentedFields)) { updatedElements.add(element); } } return updatedElements; }