Skip to content

Commit 7b67183

Browse files
RESTWS-945: Orders should allow sorting by date
1 parent 25f8d30 commit 7b67183

File tree

2 files changed

+6
-19
lines changed

2 files changed

+6
-19
lines changed

omod-1.10/src/main/java/org/openmrs/module/webservices/rest/web/v1_0/resource/openmrs1_10/OrderResource1_10.java

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ protected PageableResult doSearch(RequestContext context) throws ResponseExcepti
275275
return new NeedsPaging<Order>(sortedOrder, context);
276276
}
277277
else {
278-
List<Order> descSortedOrder = sortOrdersInDescendingOrderByDate(orders);
278+
List<Order> descSortedOrder = sortOrdersBasedOnDateActivatedOrDateStopped(orders, "DESC", status);
279279
return new NeedsPaging<Order>(descSortedOrder, context);
280280
}
281281
} else {
@@ -292,21 +292,6 @@ private static Date getUsableDate(Order order) {
292292
private static Date getActiveOrderSortDate(Order order) {
293293
return order.getDateActivated() != null ? order.getDateActivated() : order.getDateCreated();
294294
}
295-
296-
private List<Order> sortOrdersInDescendingOrderByDate(List<Order> orders) {
297-
List<Order> sortedList = new ArrayList<Order>(orders);
298-
Collections.sort(sortedList, new Comparator<Order>() {
299-
@Override
300-
public int compare(Order o1, Order o2) {
301-
return getOrderSortDate(o2).compareTo(getOrderSortDate(o1));
302-
}
303-
});
304-
return sortedList;
305-
}
306-
307-
private static Date getOrderSortDate(Order order) {
308-
return order.getDateActivated() != null ? order.getDateActivated() : order.getDateCreated();
309-
}
310295

311296
public List<Order> sortOrdersBasedOnDateActivatedOrDateStopped(List<Order> orders, final String sortOrder,
312297
final String status) {

omod-1.10/src/test/java/org/openmrs/module/webservices/rest/web/v1_0/controller/openmrs1_10/OrderController1_10Test.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ public void shouldGetTheActiveOrdersForAPatientInTheSpecifiedCareSetting() throw
413413
@Test
414414
public void shouldGetTheActiveOrdersForAPatientAsOfTheSpecifiedDate() throws Exception {
415415
SimpleObject results = deserialize(handle(newGetRequest(getURI(), new Parameter("patient", patientService
416-
.getPatient(2).getUuid()), new Parameter("asOfDate", "2007-12-10"))));
416+
.getPatient(2).getUuid()), new Parameter("status", "active"), new Parameter("asOfDate", "2007-12-10"))));
417417

418418
assertEquals(2, Util.getResultsSize(results));
419419

@@ -566,7 +566,8 @@ public void shouldGetOrdersByOrderType() throws Exception {
566566

567567
// order service should return all orders when no order type filter specified
568568
req = newGetRequest(getURI(),
569-
new Parameter("patient", PATIENT_UUID)
569+
new Parameter("patient", PATIENT_UUID),
570+
new Parameter("status", "active")
570571
);
571572
SimpleObject orders = deserialize(handle(req));
572573
ArrayList<Object> resp = (ArrayList<Object>) PropertyUtils.getProperty(orders, "results");
@@ -602,7 +603,8 @@ public void doSearch_shouldReturnExceptionIfNoPatientUuidIsSpecified() throws Ex
602603
@Test
603604
public void doSearch_shouldReturnOrdersSortedInDescendingOrderByDate() throws Exception {
604605
SimpleObject orders = deserialize(handle(newGetRequest(getURI(),
605-
new Parameter("patient", "da7f524f-27ce-4bb2-86d6-6d1d05312bd5")
606+
new Parameter("patient", "da7f524f-27ce-4bb2-86d6-6d1d05312bd5"),
607+
new Parameter("status", "active")
606608
)));
607609

608610
List<Object> resultList = Util.getResultsList(orders);

0 commit comments

Comments
 (0)