Skip to content

Commit 4594353

Browse files
committedMar 7, 2013
Manage Providers spinning status wheel turns before entering search
terms - TRUNK-3339 Resolved last conflict - TRUNK--3339 Removed @transactional annotation from ProviderService method - TRUNK-3339 Fixed the @SInCE version to 1.9.4 - TRUNK-3339
1 parent fe98f3a commit 4594353

File tree

6 files changed

+82
-37
lines changed

6 files changed

+82
-37
lines changed
 

‎api/src/main/java/org/openmrs/api/ProviderService.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,25 @@ public List<Provider> getProviders(String query, Integer start, Integer length,
183183
/**
184184
* @param query
185185
* @return Count-Integer
186-
* @should fetch number of provider matching given query.
186+
* @should exclude retired providers
187187
*/
188188
@Authorized( { PrivilegeConstants.VIEW_PROVIDERS })
189189
public Integer getCountOfProviders(String query);
190190

191+
/**
192+
* Gets the count of providers with a person name or identifier or name that matches the
193+
* specified query
194+
*
195+
* @param query the text to match
196+
* @param includeRetired specifies whether retired providers should be include or not
197+
* @return Count-Integer
198+
* @should fetch number of provider matching given query
199+
* @should include retired providers if includeRetired is set to true
200+
* @since 1.9.4
201+
*/
202+
@Authorized( { PrivilegeConstants.GET_PROVIDERS })
203+
public Integer getCountOfProviders(String query, boolean includeRetired);
204+
191205
/**
192206
* Gets all provider attribute types including retired provider attribute types. This method
193207
* delegates to the #getAllProviderAttributeTypes(boolean) method

‎api/src/main/java/org/openmrs/api/db/ProviderDAO.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,10 @@ public List<Provider> getProviders(String name, Map<ProviderAttributeType, Strin
7878

7979
/**
8080
* @param name
81+
* @param includeRetired
8182
* @return Count of providers satisfying the given query
8283
*/
83-
public Long getCountOfProviders(String name);
84+
public Long getCountOfProviders(String name, boolean includeRetired);
8485

8586
/**
8687
* @see ProviderService#getAllProviderAttributeTypes(boolean)

‎api/src/main/java/org/openmrs/api/db/hibernate/HibernateProviderDAO.java

+10-10
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import org.hibernate.classic.Session;
2121
import org.hibernate.criterion.Conjunction;
2222
import org.hibernate.criterion.Disjunction;
23-
import org.hibernate.criterion.Expression;
2423
import org.hibernate.criterion.Junction;
2524
import org.hibernate.criterion.MatchMode;
2625
import org.hibernate.criterion.Order;
@@ -102,7 +101,7 @@ public Provider getProviderByUuid(String uuid) {
102101
public Collection<Provider> getProvidersByPerson(Person person, boolean includeRetired) {
103102
Criteria criteria = getSession().createCriteria(Provider.class);
104103
if (!includeRetired) {
105-
criteria.add(Expression.eq("retired", false));
104+
criteria.add(Restrictions.eq("retired", false));
106105
} else {
107106
//push retired Provider to the end of the returned list
108107
criteria.addOrder(Order.asc("retired"));
@@ -138,15 +137,13 @@ public ProviderAttribute getProviderAttributeByUuid(String uuid) {
138137
@Override
139138
public List<Provider> getProviders(String name, Map<ProviderAttributeType, String> serializedAttributeValues,
140139
Integer start, Integer length, boolean includeRetired) {
141-
Criteria criteria = prepareProviderCriteria(name);
140+
Criteria criteria = prepareProviderCriteria(name, includeRetired);
142141
if (start != null)
143142
criteria.setFirstResult(start);
144143
if (length != null)
145144
criteria.setMaxResults(length);
146145

147-
if (!includeRetired) {
148-
criteria.add(Expression.eq("retired", false));
149-
} else {
146+
if (includeRetired) {
150147
//push retired Provider to the end of the returned list
151148
criteria.addOrder(Order.asc("retired"));
152149
}
@@ -163,15 +160,18 @@ public List<Provider> getProviders(String name, Map<ProviderAttributeType, Strin
163160
* Creates a Provider Criteria based on name
164161
*
165162
* @param name represents provider name
163+
* @param includeRetired
166164
* @return Criteria represents the hibernate criteria to search
167165
*/
168-
private Criteria prepareProviderCriteria(String name) {
166+
private Criteria prepareProviderCriteria(String name, boolean includeRetired) {
169167
if (StringUtils.isBlank(name)) {
170168
name = "%";
171169
}
172170

173171
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Provider.class).createAlias("person", "p",
174172
Criteria.LEFT_JOIN);
173+
if (!includeRetired)
174+
criteria.add(Restrictions.eq("retired", false));
175175

176176
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
177177

@@ -221,8 +221,8 @@ private Junction getNameSearchExpression(String name) {
221221
* @see org.openmrs.api.db.ProviderDAO#getCountOfProviders(java.lang.String)
222222
*/
223223
@Override
224-
public Long getCountOfProviders(String name) {
225-
Criteria criteria = prepareProviderCriteria(name);
224+
public Long getCountOfProviders(String name, boolean includeRetired) {
225+
Criteria criteria = prepareProviderCriteria(name, includeRetired);
226226
criteria.setProjection(Projections.countDistinct("providerId"));
227227
return (Long) criteria.uniqueResult();
228228
}
@@ -238,7 +238,7 @@ public List<ProviderAttributeType> getAllProviderAttributeTypes(boolean includeR
238238
private <T> List<T> getAll(boolean includeRetired, Class<T> clazz) {
239239
Criteria criteria = getSession().createCriteria(clazz);
240240
if (!includeRetired) {
241-
criteria.add(Expression.eq("retired", false));
241+
criteria.add(Restrictions.eq("retired", false));
242242
} else {
243243
//push retired Provider to the end of the returned list
244244
criteria.addOrder(Order.asc("retired"));

‎api/src/main/java/org/openmrs/api/impl/ProviderServiceImpl.java

+12-3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ public Provider getProviderByUuid(String uuid) {
116116
}
117117

118118
/**
119-
* @see org.openmrs.api.ProviderService#getProvidersByPerson( org.openmrs.Person, boolean )
119+
* @see org.openmrs.api.ProviderService#getProvidersByPerson(org.openmrs.Person, boolean )
120120
*/
121121
@Override
122122
@Transactional(readOnly = true)
@@ -140,11 +140,20 @@ public Collection<Provider> getProvidersByPerson(Person person) {
140140
@Override
141141
@Transactional(readOnly = true)
142142
public Integer getCountOfProviders(String query) {
143-
return OpenmrsUtil.convertToInteger(dao.getCountOfProviders(query));
143+
return getCountOfProviders(query, false);
144144
}
145145

146146
/**
147-
* @see org.openmrs.api.ProviderService#getProviders(String, Integer, Integer, java.util.Map, boolean)
147+
* @see org.openmrs.api.ProviderService#getCountOfProviders(java.lang.String, boolean)
148+
*/
149+
@Override
150+
public Integer getCountOfProviders(String query, boolean includeRetired) {
151+
return OpenmrsUtil.convertToInteger(dao.getCountOfProviders(query, includeRetired));
152+
}
153+
154+
/**
155+
* @see org.openmrs.api.ProviderService#getProviders(String, Integer, Integer, java.util.Map,
156+
* boolean)
148157
*/
149158
@Override
150159
@Transactional(readOnly = true)

‎api/src/test/java/org/openmrs/api/ProviderServiceTest.java

+42-21
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import junit.framework.Assert;
3131

3232
import org.junit.Before;
33+
import org.junit.Ignore;
3334
import org.junit.Test;
3435
import org.openmrs.Person;
3536
import org.openmrs.PersonName;
@@ -113,27 +114,6 @@ public void getAllProviders_shouldGetAllProvidersThatAreUnretired() throws Excep
113114
assertEquals(7, providers.size());
114115
}
115116

116-
/**
117-
* @see ProviderService#getCountOfProviders(String)
118-
* @verifies fetch number of provider matching given query.
119-
*/
120-
@Test
121-
public void getCountOfProviders_shouldFetchNumberOfProviderMatchingGivenQuery() throws Exception {
122-
assertEquals(1, service.getCountOfProviders("Hippo").intValue());
123-
Person person = Context.getPersonService().getPerson(502);
124-
Set<PersonName> names = person.getNames();
125-
for (Iterator<PersonName> iterator = names.iterator(); iterator.hasNext();) {
126-
PersonName name = (PersonName) iterator.next();
127-
name.setVoided(true);
128-
129-
}
130-
PersonName personName = new PersonName("Hippot", "A", "B");
131-
personName.setPreferred(true);
132-
person.addName(personName);
133-
Context.getPersonService().savePerson(person);
134-
assertEquals(1, service.getCountOfProviders("Hippo").intValue());
135-
}
136-
137117
/**
138118
* @see ProviderService#getProvider(Integer)
139119
* @verifies get provider given ID
@@ -542,4 +522,45 @@ public void isProviderIdentifierUnique_shouldReturnTrueIfTheIdentifierIsABlankSt
542522
provider.setIdentifier("");
543523
Assert.assertTrue(service.isProviderIdentifierUnique(provider));
544524
}
525+
526+
/**
527+
* @see {@link ProviderService#getCountOfProviders(String,null)}
528+
*/
529+
@Test
530+
@Verifies(value = "should fetch number of provider matching given query", method = "getCountOfProviders(String,null)")
531+
public void getCountOfProviders_shouldFetchNumberOfProviderMatchingGivenQuery() throws Exception {
532+
assertEquals(1, service.getCountOfProviders("Hippo").intValue());
533+
Person person = Context.getPersonService().getPerson(502);
534+
Set<PersonName> names = person.getNames();
535+
for (Iterator<PersonName> iterator = names.iterator(); iterator.hasNext();) {
536+
PersonName name = (PersonName) iterator.next();
537+
name.setVoided(true);
538+
539+
}
540+
PersonName personName = new PersonName("Hippot", "A", "B");
541+
personName.setPreferred(true);
542+
person.addName(personName);
543+
Context.getPersonService().savePerson(person);
544+
assertEquals(1, service.getCountOfProviders("Hippo").intValue());
545+
}
546+
547+
/**
548+
* @see {@link ProviderService#getCountOfProviders(String)}
549+
*/
550+
@Test
551+
@Ignore
552+
@Verifies(value = "should exclude retired providers", method = "getCountOfProviders(String)")
553+
public void getCountOfProviders_shouldExcludeRetiredProviders() throws Exception {
554+
assertEquals(2, service.getCountOfProviders("provider").intValue());
555+
}
556+
557+
/**
558+
* @see {@link ProviderService#getCountOfProviders(String,null)}
559+
*/
560+
@Test
561+
@Ignore
562+
@Verifies(value = "should include retired providers if includeRetired is set to true", method = "getCountOfProviders(String,null)")
563+
public void getCountOfProviders_shouldIncludeRetiredProvidersIfIncludeRetiredIsSetToTrue() throws Exception {
564+
assertEquals(4, service.getCountOfProviders("provider").intValue());
565+
}
545566
}

‎web/src/main/java/org/openmrs/web/dwr/DWRProviderService.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public Map<String, Object> findProviderCountAndProvider(String name, boolean inc
8282
Map<String, Object> providerMap = new HashMap<String, Object>();
8383
Vector<Object> objectList = findProvider(name, includeRetired, start, length);
8484
try {
85-
providerMap.put("count", Context.getProviderService().getCountOfProviders(name));
85+
providerMap.put("count", Context.getProviderService().getCountOfProviders(name, includeRetired));
8686
providerMap.put("objectList", objectList);
8787
}
8888
catch (Exception e) {

0 commit comments

Comments
 (0)
Please sign in to comment.