Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update ANC profile #217

Merged
merged 8 commits into from
May 21, 2020
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
VERSION_NAME=1.2.3-SNAPSHOT
VERSION_NAME=1.2.4-SNAPSHOT
VERSION_CODE=1
GROUP=org.smartregister
POM_SETTING_DESCRIPTION=OpenSRP Client Chw Core Library
Expand Down
2 changes: 1 addition & 1 deletion opensrp-chw-core/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ dependencies {
exclude group: 'com.github.lecho', module: 'hellocharts-android'
}

api('org.smartregister:opensrp-client-chw-anc:0.1.57-SNAPSHOT@aar') {
api('org.smartregister:opensrp-client-chw-anc:0.1.59-SNAPSHOT@aar') {
transitive = true
exclude group: 'org.smartregister', module: 'opensrp-client-core'
exclude group: 'com.android.support', module: 'appcompat-v7'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,7 @@ public static MemberObject getMember(String baseEntityID) {
String sql = "select f.landmark, f.gps, m.base_entity_id , m.unique_id , m.relational_id , m.dob , m.first_name , m.middle_name , m.last_name , m.gender , " +
"m.phone_number , m.other_phone_number , f.first_name family_name , f.primary_caregiver , f.family_head , " +
"fh.first_name family_head_first_name , fh.middle_name family_head_middle_name, fh.last_name family_head_last_name, " +
"fh.phone_number family_head_phone_number , ar.confirmed_visits , f.village_town , ar.last_interacted_with , " +
"ar.last_contact_visit , ar.visit_not_done , ar.last_menstrual_period , al.date_created , ar.* " +
"fh.phone_number family_head_phone_number , ar.confirmed_visits , f.village_town, ar.* " +
"from ec_family_member m " +
"inner join ec_family f on m.relational_id = f.base_entity_id " +
"inner join ec_anc_register ar on ar.base_entity_id = m.base_entity_id " +
Expand All @@ -48,6 +47,7 @@ public static MemberObject getMember(String baseEntityID) {
DataMap<MemberObject> dataMap = cursor -> {
MemberObject memberObject = new MemberObject();
memberObject.setLastMenstrualPeriod(getCursorValue(cursor, "last_menstrual_period"));
memberObject.setGravida(getCursorValue(cursor, "gravida"));
memberObject.setChwMemberId(getCursorValue(cursor, "unique_id", ""));
memberObject.setBaseEntityId(getCursorValue(cursor, "base_entity_id", ""));
memberObject.setFamilyBaseEntityId(getCursorValue(cursor, "relational_id", ""));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,21 @@ public static boolean memberHasVaccineCard(String baseEntityID) {
return Integer.valueOf(values.get(0)) > 0;
}

public static String getMemberPregnancyRiskLevel(String baseEntityID) {
String sql = String.format("select details, max(visit_date) \n" +
" from visit_details d \n" +
" inner join visits v on v.visit_id = d.visit_id COLLATE NOCASE \n" +
" where base_entity_id = '%s' COLLATE NOCASE \n" +
" and visit_key in ('preg_risk')", baseEntityID);

DataMap<String> dataMap = c -> getCursorValue(c, "details");
List<String> values = AbstractDao.readData(sql, dataMap);
if (values == null || values.size() == 0)
return null;

return values.get(0);
}

public static boolean memberHasVisits(String baseEntityID) {
String sql = "select count(*) total from visits where base_entity_id = '" + baseEntityID + "' AND visit_type IN ('ANC Home Visit', 'PNC Home Visit')";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import org.smartregister.chw.core.contract.AncMemberProfileContract;
import org.smartregister.chw.core.dao.AncDao;
import org.smartregister.chw.core.dao.ChwNotificationDao;
import org.smartregister.chw.core.dao.VisitDao;
import org.smartregister.chw.core.repository.ChwTaskRepository;
import org.smartregister.chw.core.utils.CoreConstants;
import org.smartregister.chw.core.utils.CoreReferralUtils;
Expand Down Expand Up @@ -66,6 +67,12 @@ public MemberObject getMemberClient(String memberID) {
return AncDao.getMember(memberID);
}

@Override
protected MemberObject getEmergencyTransportDetails(MemberObject memberObject) {
memberObject.setPregnancyRiskLevel(VisitDao.getMemberPregnancyRiskLevel(memberObject.getBaseEntityId()));
return memberObject;
}

protected Date getLastVisitDate(MemberObject memberObject) {
Date lastVisitDate = null;
Visit lastVisit = AncLibrary.getInstance().visitRepository().getLatestVisit(memberObject.getBaseEntityId(), Constants.EVENT_TYPE.ANC_HOME_VISIT);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,19 @@ public void testGetVisitSummary() {
Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
}

@Test
public void canQueryPregnancyRiskLevel() {
Mockito.doReturn(database).when(repository).getReadableDatabase();

MatrixCursor matrixCursor = new MatrixCursor(new String[]{"details", "max(visit_date)"});
matrixCursor.addRow(new Object[]{"Low", "1588982400000"});
Mockito.doReturn(matrixCursor).when(database).rawQuery(Mockito.any(), Mockito.any());

VisitDao.getMemberPregnancyRiskLevel("base-ID-123456");

Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
}

@Test
public void testGetChildDateCreated() throws ParseException {
Mockito.doReturn(database).when(repository).getReadableDatabase();
Expand Down