/** * The contents of this file are subject to the OpenMRS Public License * Version 1.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://license.openmrs.org * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations * under the License. * * Copyright (C) OpenMRS, LLC. All Rights Reserved. */ package org.openmrs.reporting; import org.openmrs.Cohort; import org.openmrs.Person; import org.openmrs.RelationshipType; import org.openmrs.report.EvaluationContext; /** * */ public class RelationshipPatientFilter extends CachingPatientFilter { private Person person; private RelationshipType relationshipType; private boolean includeAtoB = true; private boolean includeBtoA = true; public RelationshipPatientFilter() { } /** * @see org.openmrs.reporting.CachingPatientFilter#filterImpl(org.openmrs.report.EvaluationContext) */ @Override public Cohort filterImpl(EvaluationContext context) { // TODO Auto-generated method stub return null; } /** * @see org.openmrs.reporting.AbstractReportObject#getDescription() */ @Override public String getDescription() { StringBuilder sb = new StringBuilder(); sb.append("Patients "); RelationshipType relType = getRelationshipType(); if (relType != null) { if (includeAtoB && includeBtoA) { sb.append("who are either " + relType.getaIsToB() + " or " + relType.getbIsToA() + " of "); } else { if (includeAtoB) sb.append("who are " + relType.getaIsToB() + " to " + relType.getbIsToA() + " "); if (includeBtoA) sb.append("who are " + relType.getbIsToA() + " to " + relType.getaIsToB() + " "); } } else { sb.append("with any relationship to "); } if (getPerson() != null) sb.append(getPerson().toString()); else sb.append("anyone"); return sb.toString(); } /** * @see org.openmrs.reporting.CachingPatientFilter#getCacheKey() */ @Override public String getCacheKey() { StringBuilder sb = new StringBuilder(); if (getRelationshipType() != null) { sb.append("t" + getRelationshipType().getRelationshipTypeId() + "."); sb.append(includeAtoB + "."); sb.append(includeBtoA + "."); } if (getPerson() != null) sb.append("p" + getPerson().getPersonId() + "."); return sb.toString(); } /** * @see org.openmrs.reporting.CachingPatientFilter#isReadyToRun() */ @Override public boolean isReadyToRun() { // TODO Auto-generated method stub return true; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } public RelationshipType getRelationshipType() { return relationshipType; } public void setRelationshipType(RelationshipType relationshipType) { this.relationshipType = relationshipType; } public boolean isIncludeAtoB() { return includeAtoB; } public void setIncludeAtoB(boolean includeAtoB) { this.includeAtoB = includeAtoB; } public boolean isIncludeBtoA() { return includeBtoA; } public void setIncludeBtoA(boolean includeBtoA) { this.includeBtoA = includeBtoA; } }