/** * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. * * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ package org.openmrs.parameter; import java.util.Collection; import java.util.Date; import org.openmrs.EncounterType; import org.openmrs.Form; import org.openmrs.Location; import org.openmrs.Patient; import org.openmrs.Provider; import org.openmrs.Visit; import org.openmrs.VisitType; /** * The search parameter object for encounters. A convenience interface for building * instances is provided by {@link EncounterSearchCriteriaBuilder}. * * @since 1.12 * @see EncounterSearchCriteriaBuilder */ public class EncounterSearchCriteria { private Patient patient; private Location location; private Date fromDate; private Date toDate; private Date dateChanged; private Collection<Form> enteredViaForms; private Collection<EncounterType> encounterTypes; private Collection<Provider> providers; private Collection<VisitType> visitTypes; private Collection<Visit> visits; private boolean includeVoided; /** * Instead of calling this constructor directly, it is recommended to use {@link EncounterSearchCriteriaBuilder}. * @param patient the patient the encounter is for * @param location the location this encounter took place * @param fromDate the minimum date (inclusive) the encounter took place * @param toDate the maximum date (exclusive) the encounter took place * @param dateChanged the minimum date the encounter was changed * @param enteredViaForms the form that entered this encounter must be in this collection * @param encounterTypes the type of the encounter must be in this collection * @param providers the provider of the encounter must be in this collection * @param visitTypes the visit types of the encounter must be in this collection * @param visits the visits of the encounter must be in this collection * @param includeVoided whether to include the voided encounters or not */ public EncounterSearchCriteria(Patient patient, Location location, Date fromDate, Date toDate, Date dateChanged, Collection<Form> enteredViaForms, Collection<EncounterType> encounterTypes, Collection<Provider> providers, Collection<VisitType> visitTypes, Collection<Visit> visits, boolean includeVoided) { this.patient = patient; this.location = location; this.fromDate = fromDate; this.toDate = toDate; this.dateChanged = dateChanged; this.enteredViaForms = enteredViaForms; this.encounterTypes = encounterTypes; this.providers = providers; this.visitTypes = visitTypes; this.visits = visits; this.includeVoided = includeVoided; } /** * @return the patient the encounter is for */ public Patient getPatient() { return patient; } /** * @return the location this encounter took place */ public Location getLocation() { return location; } /** * @return the minimum date (inclusive) this encounter took place */ public Date getFromDate() { return fromDate; } /** * @return the maximum date (exclusive) this encounter took place */ public Date getToDate() { return toDate; } /** * @return the minimum date this encounter was changed */ public Date getDateChanged() { return dateChanged; } /** * @return the form that entered this encounter must be in this collection */ public Collection<Form> getEnteredViaForms() { return enteredViaForms; } /** * @return the type of encounter must be in this list */ public Collection<EncounterType> getEncounterTypes() { return encounterTypes; } /** * @return the provider of this encounter must be in this list */ public Collection<Provider> getProviders() { return providers; } /** * @return the visit types of this encounter must be in this list */ public Collection<VisitType> getVisitTypes() { return visitTypes; } /** * @return the visits of this encounter must be in this list */ public Collection<Visit> getVisits() { return visits; } /** * @return whether to include the voided encounters or not */ public boolean getIncludeVoided() { return includeVoided; } }