Skip to content

Commit e5f2b25

Browse files
authored
Merge pull request #2022 from opensrp/update_identifier_sources
Update identifier sources
2 parents 0f40f23 + 347ef26 commit e5f2b25

File tree

6 files changed

+59
-88
lines changed

6 files changed

+59
-88
lines changed

opensrp-chw/build.gradle

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -149,9 +149,6 @@ android {
149149
minifyEnabled false
150150
zipAlignEnabled true
151151
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
152-
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '500'
153-
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '500'
154-
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
155152
buildConfigField "boolean", "TIME_CHECK", "true"
156153
buildConfigField "int", "DATA_SYNC_DURATION_MINUTES", '15'
157154
buildConfigField "int", "VACCINE_SYNC_PROCESSING_MINUTES", '30'
@@ -168,9 +165,6 @@ android {
168165
}
169166

170167
debug {
171-
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '30'
172-
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '15'
173-
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
174168
buildConfigField "boolean", "TIME_CHECK", "false"
175169
buildConfigField "int", "DATA_SYNC_DURATION_MINUTES", '15'
176170
buildConfigField "int", "VACCINE_SYNC_PROCESSING_MINUTES", '30'
@@ -238,6 +232,9 @@ android {
238232
applicationIdSuffix ".ba"
239233
versionCode 8
240234
versionName "1.0.8"
235+
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '10000'
236+
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '10000'
237+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
241238
buildConfigField "String", 'opensrp_url', '"https://boresha-afya.smartregister.org/opensrp/"'
242239
buildConfigField "String", 'guidebooks_url', '"https://opensrp.s3.amazonaws.com/media/ba/"'
243240
buildConfigField "String", 'opensrp_url_debug', '"https://boresha-afya-stage.smartregister.org/opensrp/"'
@@ -254,6 +251,9 @@ android {
254251
applicationIdSuffix ".chad"
255252
versionCode 3
256253
versionName "1.0.3"
254+
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '10000'
255+
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '10000'
256+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
257257
buildConfigField "String", 'opensrp_url', '"https://wcaro-td.smartregister.org/opensrp/"'
258258
buildConfigField "String", 'guidebooks_url', '"https://opensrp.s3.amazonaws.com/media/chad/"'
259259
buildConfigField "String", 'opensrp_url_debug', '"https://wcaro-stage.smartregister.org/opensrp/"'
@@ -272,6 +272,9 @@ android {
272272
applicationIdSuffix ".drc"
273273
versionCode 11
274274
versionName "1.0.16"
275+
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '10000'
276+
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '10000'
277+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
275278
buildConfigField "String", 'opensrp_url', '"https://wcaro-cd.smartregister.org/opensrp/"'
276279
buildConfigField "String", 'guidebooks_url', '"https://opensrp.s3.amazonaws.com/media/drc/"'
277280
buildConfigField "String", 'opensrp_url_preview', '"https://wcaro-cd-preview.smartregister.org/opensrp/"'
@@ -290,6 +293,7 @@ android {
290293
applicationIdSuffix ".guinea"
291294
versionCode 4
292295
versionName "1.0.3"
296+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
293297
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '1000'
294298
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '500'
295299
buildConfigField "String", 'opensrp_url', '"https://wcaro-guinea.smartregister.org/opensrp/"'
@@ -310,6 +314,7 @@ android {
310314
applicationIdSuffix ".togo"
311315
versionCode 26
312316
versionName "1.2.7"
317+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
313318
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '1000'
314319
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '500'
315320
buildConfigField "String", 'opensrp_url', '"https://wcaro-tg.smartregister.org/opensrp/"'
@@ -328,6 +333,9 @@ android {
328333
dimension = 'baseDimension'
329334
versionCode 8
330335
versionName "1.0.1"
336+
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '10000'
337+
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '10000'
338+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '2'
331339
buildConfigField "String", 'opensrp_url', '"https://wcaro-lr.smartregister.org/opensrp/"'
332340
buildConfigField "String", 'guidebooks_url', '"https://opensrp.s3.amazonaws.com/media/liberia/"'
333341
buildConfigField "String", 'opensrp_url_debug', '"https://wcaro-stage.smartregister.org/opensrp/"'
@@ -344,10 +352,11 @@ android {
344352
dimension = 'baseDimension'
345353
applicationIdSuffix ".lmh"
346354
versionCode 2
347-
versionName "1.1.2"
348-
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '100000'
349-
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '50000'
350-
buildConfigField "String", 'opensrp_url', '"https://lmh-liberia.smartregister.org/opensrp/"'
355+
versionName "2.0.1-rc5"
356+
buildConfigField "int", "OPENMRS_UNIQUE_ID_INITIAL_BATCH_SIZE", '10000'
357+
buildConfigField "int", "OPENMRS_UNIQUE_ID_BATCH_SIZE", '10000'
358+
buildConfigField "int", "OPENMRS_UNIQUE_ID_SOURCE", '1'
359+
buildConfigField "String", 'opensrp_url', '"https://liberiavts.smartregister.org/opensrp/"'
351360
buildConfigField "String", 'guidebooks_url', '"https://opensrp.s3.amazonaws.com/media/lmh/"'
352361
buildConfigField "String", 'opensrp_url_debug', '"https://lmh-liberia-preview.smartregister.org/opensrp/"'
353362
buildConfigField "String[]", "LOCATION_HIERACHY", '{"Country" , "County" , "District", "Clinics", "CHSS", "Village","Commune"}'

opensrp-chw/src/lmh/java/org/smartregister/chw/application/ChwApplicationFlv.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public boolean hasANC() {
99

1010
@Override
1111
public boolean syncUsingPost() {
12-
return false;
12+
return true;
1313
}
1414

1515
@Override

opensrp-chw/src/main/java/org/smartregister/chw/application/ChwSyncConfiguration.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@
1111
import org.smartregister.repository.AllSharedPreferences;
1212
import org.smartregister.view.activity.BaseLoginActivity;
1313

14+
import java.util.HashSet;
1415
import java.util.List;
16+
import java.util.Set;
1517

1618
import static org.smartregister.util.Utils.isEmptyCollection;
1719

@@ -36,9 +38,10 @@ public String getSyncFilterValue() {
3638
if(StringUtils.isBlank(locationId)) locationId = allSharedPreferences().fetchUserLocalityId(providerId);
3739

3840
List<String> locationIds = LocationHelper.getInstance().locationsFromHierarchy(true, null);
41+
3942
if (!isEmptyCollection(locationIds) && locationIds.contains(locationId)) {
4043
int index = locationIds.indexOf(locationId);
41-
List<String> subLocationIds = locationIds.subList(index, locationIds.size());
44+
Set<String> subLocationIds = new HashSet<>(locationIds.subList(index, locationIds.size()));
4245
return StringUtils.join(subLocationIds, ",");
4346
}
4447
return locationId;
@@ -115,12 +118,12 @@ public String getOauthClientSecret() {
115118

116119
@Override
117120
public int getConnectTimeout() {
118-
return BuildConfig.MAX_CONNECTION_TIMEOUT * 60000;
121+
return BuildConfig.MAX_CONNECTION_TIMEOUT * 300000;
119122
}
120123

121124
@Override
122125
public int getReadTimeout() {
123-
return BuildConfig.MAX_READ_TIMEOUT * 60000;
126+
return BuildConfig.MAX_READ_TIMEOUT * 300000;
124127
}
125128

126129
@Override
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package org.smartregister.chw.interactor;
2+
3+
import android.content.Context;
4+
5+
import org.smartregister.chw.anc.domain.MemberObject;
6+
import org.smartregister.chw.anc.model.BaseUpcomingService;
7+
import org.smartregister.chw.core.interactor.CoreChildUpcomingServiceInteractor;
8+
9+
import java.util.List;
10+
11+
public class ChildUpcomingServiceInteractor extends CoreChildUpcomingServiceInteractor {
12+
13+
public final List<BaseUpcomingService> getUpcomingServices(final MemberObject memberObject, final Context ctx){
14+
return getMemberServices(ctx, memberObject);
15+
}
16+
17+
}

opensrp-chw/src/main/java/org/smartregister/chw/presenter/FamilyProfileDuePresenter.java

Lines changed: 2 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,22 @@
33
import android.content.Context;
44
import android.util.Pair;
55

6-
import org.joda.time.DateTime;
7-
import org.joda.time.LocalDate;
8-
import org.joda.time.Months;
96
import org.smartregister.chw.anc.domain.MemberObject;
107
import org.smartregister.chw.application.ChwApplication;
11-
import org.smartregister.chw.core.application.CoreChwApplication;
128
import org.smartregister.chw.core.dao.VisitDao;
139
import org.smartregister.chw.core.utils.CoreConstants;
14-
import org.smartregister.chw.core.utils.VaccineScheduleUtil;
15-
import org.smartregister.chw.core.utils.VisitVaccineUtil;
1610
import org.smartregister.chw.dao.ChwChildDao;
1711
import org.smartregister.chw.model.FamilyKitModel;
1812
import org.smartregister.chw.model.WashCheckModel;
19-
import org.smartregister.chw.util.Constants;
13+
import org.smartregister.chw.util.UpcomingServicesUtil;
2014
import org.smartregister.dao.AbstractDao;
21-
import org.smartregister.domain.Alert;
2215
import org.smartregister.family.contract.FamilyProfileDueContract;
2316
import org.smartregister.family.presenter.BaseFamilyProfileDuePresenter;
24-
import org.smartregister.immunization.db.VaccineRepo;
25-
import org.smartregister.immunization.domain.jsonmapping.Vaccine;
26-
import org.smartregister.immunization.domain.jsonmapping.VaccineGroup;
27-
import org.smartregister.immunization.util.VaccinatorUtils;
2817

29-
import java.text.ParseException;
30-
import java.text.SimpleDateFormat;
3118
import java.util.ArrayList;
32-
import java.util.Date;
33-
import java.util.HashMap;
3419
import java.util.List;
35-
import java.util.Locale;
36-
import java.util.Map;
3720
import java.util.function.Supplier;
3821

39-
import timber.log.Timber;
40-
4122
public class FamilyProfileDuePresenter extends BaseFamilyProfileDuePresenter {
4223
private WashCheckModel washCheckModel;
4324
private FamilyKitModel familyKitModel;
@@ -97,8 +78,6 @@ private String getSelectCondition(){
9778

9879
String validMembers(){
9980
List<Pair<String, String>> familyMembers = FamilyMemberDao.getFamilyMembers(this.familyBaseEntityId);
100-
List<VaccineGroup> childVaccineGroups = VaccineScheduleUtil.getVaccineGroups(ChwApplication.getInstance().getApplicationContext(), CoreConstants.SERVICE_GROUPS.CHILD);
101-
List<Vaccine> specialVaccines = VaccinatorUtils.getSpecialVaccines(contextSupplier.get());
10281

10382
StringBuilder joiner = new StringBuilder();
10483
for (Pair<String, String> familyMemberRepr : familyMembers) {
@@ -109,7 +88,7 @@ String validMembers(){
10988

11089
boolean vaccineCardReceived = VisitDao.memberHasVaccineCard(member.getBaseEntityId());
11190

112-
if (!vaccineCardReceived || pendingImmunization(member, childVaccineGroups, specialVaccines)) {
91+
if (!vaccineCardReceived || UpcomingServicesUtil.hasUpcomingDueServices(member, contextSupplier.get())) {
11392
joiner.append(String.format("'%s'", member.getBaseEntityId()));
11493
joiner.append(",");
11594
}
@@ -121,55 +100,6 @@ String validMembers(){
121100
return joiner.toString();
122101
}
123102

124-
int immunizationCeiling(MemberObject memberObject) {
125-
String gender = ChwChildDao.getChildGender(memberObject.getBaseEntityId());
126-
127-
if (gender != null && gender.equalsIgnoreCase("Female")) {
128-
if (memberObject.getAge() >= 9 && memberObject.getAge() <= 11) {
129-
return 132;
130-
} else {
131-
return 60;
132-
}
133-
}
134-
135-
return 60;
136-
}
137-
138-
boolean pendingImmunization(MemberObject memberObject, List<VaccineGroup> vaccineGroups, List<Vaccine> specialVaccines){
139-
Date dob = null;
140-
try {
141-
dob = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).parse(memberObject.getDob());
142-
} catch (ParseException e) {
143-
Timber.e(e);
144-
}
145-
146-
int ageInMonths = Months.monthsBetween(new LocalDate(dob), new LocalDate()).getMonths();
147-
if (ageInMonths >= immunizationCeiling(memberObject)) return false;
148-
149-
List<org.smartregister.immunization.domain.Vaccine> vaccines = CoreChwApplication.getInstance().vaccineRepository()
150-
.findByEntityId(memberObject.getBaseEntityId());
151-
152-
String vaccineCategory = memberObject.getAge() > 5 ? Constants.CHILD_OVER_5 : CoreConstants.SERVICE_GROUPS.CHILD;
153-
List<VaccineRepo.Vaccine> allVacs = VaccineRepo.getVaccines(vaccineCategory);
154-
155-
Map<String, VaccineRepo.Vaccine> vaccinesRepo = new HashMap<>();
156-
for (VaccineRepo.Vaccine vaccine : allVacs) {
157-
vaccinesRepo.put(vaccine.display().toLowerCase().replace(" ", ""), vaccine);
158-
}
159-
160-
Map<VaccineGroup, List<Pair<VaccineRepo.Vaccine, Alert>>> pendingVaccines = VisitVaccineUtil.generateVisitVaccines(
161-
memberObject.getBaseEntityId(),
162-
vaccinesRepo,
163-
new DateTime(dob),
164-
vaccineGroups,
165-
specialVaccines,
166-
vaccines,
167-
null
168-
);
169-
170-
return !pendingVaccines.isEmpty();
171-
}
172-
173103
public boolean saveData(String jsonObject) {
174104
return washCheckModel.saveWashCheckEvent(jsonObject);
175105
}

opensrp-chw/src/main/java/org/smartregister/chw/util/UpcomingServicesUtil.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
import org.smartregister.chw.anc.domain.MemberObject;
1212
import org.smartregister.chw.anc.model.BaseUpcomingService;
1313
import org.smartregister.chw.application.ChwApplication;
14-
import org.smartregister.chw.core.interactor.CoreChildUpcomingServiceInteractor;
1514
import org.smartregister.chw.core.utils.CoreConstants;
1615
import org.smartregister.chw.dao.ChwChildDao;
16+
import org.smartregister.chw.interactor.ChildUpcomingServiceInteractor;
1717

1818
import java.util.ArrayList;
1919
import java.util.HashMap;
@@ -71,6 +71,18 @@ static String getDueServicesState(List<BaseUpcomingService> serviceList) {
7171
return hasDue ? CoreConstants.VISIT_STATE.DUE : null;
7272
}
7373

74+
public static boolean hasUpcomingDueServices(MemberObject memberObject, Context ctx){
75+
String childGender = ChwChildDao.getChildGender(memberObject.getBaseEntityId());
76+
int childAge = memberObject.getAge();
77+
if (!ChwApplication.getApplicationFlavor().showChildrenAboveTwoDueStatus()
78+
&& childAge >= 2
79+
&& !(childGender.equalsIgnoreCase("Female") && childAge >= 9 && childAge <= 11)){
80+
return false;
81+
}
82+
List<BaseUpcomingService> upcomingServices = new ChildUpcomingServiceInteractor().getUpcomingServices(memberObject, ctx);
83+
return getDueServicesState(upcomingServices) != null;
84+
}
85+
7486
public static void fetchUpcomingDueServicesState(MemberObject memberObject, Context ctx, Consumer<String> onDueStatusFetched) {
7587
String childGender = ChwChildDao.getChildGender(memberObject.getBaseEntityId());
7688
int childAge = memberObject.getAge();
@@ -82,7 +94,7 @@ public static void fetchUpcomingDueServicesState(MemberObject memberObject, Cont
8294
return;
8395
}
8496

85-
new CoreChildUpcomingServiceInteractor().getUpComingServices(memberObject, ctx, new BaseAncUpcomingServicesContract.InteractorCallBack() {
97+
new ChildUpcomingServiceInteractor().getUpComingServices(memberObject, ctx, new BaseAncUpcomingServicesContract.InteractorCallBack() {
8698
@Override
8799
public void onDataFetched(List<BaseUpcomingService> serviceList) {
88100
onDueStatusFetched.accept(getDueServicesState(serviceList));

0 commit comments

Comments
 (0)