Skip to content

Commit a0c09b2

Browse files
RESTWS-950:Encounter search handler supporting visits parameter (#616)
1 parent a788bfa commit a0c09b2

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

omod-2.0/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/search/openmrs2_0/EncounterSearchHandler2_0.java

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,12 @@
99
*/
1010
package org.openmrs.module.webservices.rest.web.v1_0.search.openmrs2_0;
1111

12-
import java.util.Arrays;
13-
import java.util.Collections;
14-
import java.util.Date;
15-
import java.util.List;
12+
import java.util.*;
1613

1714
import org.openmrs.Encounter;
1815
import org.openmrs.EncounterType;
1916
import org.openmrs.Patient;
17+
import org.openmrs.Visit;
2018
import org.openmrs.api.context.Context;
2119
import org.openmrs.module.webservices.rest.web.ConversionUtil;
2220
import org.openmrs.module.webservices.rest.web.RequestContext;
@@ -31,6 +29,7 @@
3129
import org.openmrs.module.webservices.rest.web.response.ResponseException;
3230
import org.openmrs.module.webservices.rest.web.v1_0.resource.openmrs1_8.EncounterTypeResource1_8;
3331
import org.openmrs.module.webservices.rest.web.v1_0.resource.openmrs1_8.PatientResource1_8;
32+
import org.openmrs.module.webservices.rest.web.v1_0.resource.openmrs1_9.VisitResource1_9;
3433
import org.openmrs.parameter.EncounterSearchCriteria;
3534
import org.openmrs.parameter.EncounterSearchCriteriaBuilder;
3635
import org.springframework.stereotype.Component;
@@ -58,7 +57,8 @@ public SearchConfig getSearchConfig() {
5857
public PageableResult search(RequestContext context) throws ResponseException {
5958
String patientUuid = context.getRequest().getParameter("patient");
6059
String encounterTypeUuid = context.getRequest().getParameter("encounterType");
61-
60+
String[] visitsUuid=context.getRequest().getParameter("visits").split(",");
61+
6262
String dateFrom = context.getRequest().getParameter(DATE_FROM);
6363
String dateTo = context.getRequest().getParameter(DATE_TO);
6464

@@ -69,13 +69,24 @@ public PageableResult search(RequestContext context) throws ResponseException {
6969
Patient.class)).getByUniqueId(patientUuid);
7070
EncounterType encounterType = ((EncounterTypeResource1_8) Context.getService(RestService.class)
7171
.getResourceBySupportedClass(EncounterType.class)).getByUniqueId(encounterTypeUuid);
72+
73+
Collection<Visit> visits = new ArrayList<>();
74+
if(visitsUuid.length>0) {
75+
76+
for (String uuid : visitsUuid) {
77+
Visit visit = ((VisitResource1_9) Context.getService(RestService.class).getResourceBySupportedClass(Visit.class)).getByUniqueId(uuid);
78+
visits.add(visit);
79+
}
80+
}
7281
if (patient != null) {
7382
EncounterSearchCriteriaBuilder encounterSearchCriteriaBuilder = new EncounterSearchCriteriaBuilder()
7483
.setPatient(patient).setFromDate(fromDate).setToDate(toDate).setIncludeVoided(false);
7584
if (encounterType != null) {
7685
encounterSearchCriteriaBuilder.setEncounterTypes(Arrays.asList(encounterType));
7786
}
78-
87+
if (!visits.isEmpty()){
88+
encounterSearchCriteriaBuilder.setVisits(visits);
89+
}
7990
EncounterSearchCriteria encounterSearchCriteria = encounterSearchCriteriaBuilder.createEncounterSearchCriteria();
8091

8192
List<Encounter> encounters = Context.getEncounterService().getEncounters(encounterSearchCriteria);

0 commit comments

Comments
 (0)