Skip to content

Commit

Permalink
Merge pull request opensrp#223 from OpenSRP/anc_issue_325
Browse files Browse the repository at this point in the history
Adds queries Gets the Test done from the home visits
  • Loading branch information
paulinembabu authored May 27, 2020
2 parents 15a57d4 + 533edf9 commit f875330
Show file tree
Hide file tree
Showing 4 changed files with 81 additions and 6 deletions.
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.8-SNAPSHOT
VERSION_NAME=1.2.9-SNAPSHOT
VERSION_CODE=1
GROUP=org.smartregister
POM_SETTING_DESCRIPTION=OpenSRP Client Chw Core Library
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import org.jetbrains.annotations.Nullable;
import org.smartregister.chw.anc.domain.MemberObject;

import java.util.ArrayList;
import java.util.List;

public class AncDao extends AlertDao {
Expand Down Expand Up @@ -97,4 +98,34 @@ public static int getAncWomenCount(String familyBaseID) {
List<Integer> res = readData(sql, dataMap);
return (res == null || res.size() < 1) ? 0 : res.get(0);
}
public static boolean showTT(String baseEntityID){
String sql = "SELECT count(*) as count\n" +
"FROM visit_details vd\n" +
"INNER JOIN visits v on v.visit_id = vd.visit_id\n" +
"WHERE vd.visit_key = 'imm_medicine_given'\n" +
"AND vd.human_readable_details = 'Tetanus toxoid (TT)'\n" +
"AND v.base_entity_id = '" + baseEntityID + "'";

DataMap<Integer> dataMap = cursor -> getCursorIntValue(cursor, "count");

List<Integer> res = readData(sql, dataMap);
return res == null || res.get(0) < 2;
}

public static List<String> getTestDone(String baseEntityID) {
String sql = "SELECT vd.human_readable_details\n" +
"FROM visit_details vd\n" +
"INNER JOIN visits v on v.visit_id = vd.visit_id\n" +
"WHERE vd.visit_key = 'tests_done'\n" +
"AND ((vd.human_readable_details != 'Haemoglobin level') AND (vd.human_readable_details != 'None') AND (vd.human_readable_details != 'Other test'))\n" +
"AND v.base_entity_id = '" + baseEntityID + "'";

DataMap<String> dataMap = c -> getCursorValue(c, "human_readable_details");

List<String> humanReadableDetails = readData(sql, dataMap);
if (humanReadableDetails != null)
return humanReadableDetails;

return new ArrayList<>();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,7 @@ public static String getEarlyChildhoodDevelopment() {
public static String getPregnancyRisk() {
return Utils.getLocalForm(PREGNANCY_RISK, locale, assetManager);
}

}

public static class PNC_HOME_VISIT {
Expand Down Expand Up @@ -928,5 +929,8 @@ public static class HfInAppUtil {
public static final String PROVIDER_TYPE = "in_app_providers";
}

public static class AncHealthFacilityVisitUtil{
public static final String TETANUS_TOXOID = "Tetanus toxoid (TT)";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
import org.smartregister.chw.anc.domain.MemberObject;
import org.smartregister.repository.Repository;

import java.util.List;

@RunWith(MockitoJUnitRunner.class)
public class AncDaoTest extends AncDao {

Expand All @@ -31,18 +33,24 @@ public void setUp() {

@Test
public void testGetAncDateCreated() {

Mockito.doReturn(database).when(repository).getReadableDatabase();
AncDao.getAncDateCreated("123456");
MatrixCursor matrixCursor = new MatrixCursor(new String[]{"date_created"});
matrixCursor.addRow(new Object[]{"2019-09-24T03:00:00.000+03:00"});
Mockito.doReturn(matrixCursor).when(database).rawQuery(Mockito.any(), Mockito.any());
String dateCreated = AncDao.getAncDateCreated("123456");
Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
Assert.assertEquals(dateCreated, "2019-09-24T03:00:00.000+03:00");
}

@Test
public void testIsANCMember() {

Mockito.doReturn(database).when(repository).getReadableDatabase();
AncDao.isANCMember("123456");
MatrixCursor matrixCursor = new MatrixCursor(new String[]{"count"});
matrixCursor.addRow(new Object[]{"1"});
Mockito.doReturn(matrixCursor).when(database).rawQuery(Mockito.any(), Mockito.any());
boolean isANC = AncDao.isANCMember("6238d8aa-6632-47f9-8a88-26bfedd942c2");
Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
Assert.assertTrue(isANC);
}

@Test
Expand All @@ -62,7 +70,39 @@ public void testGetMember() {
@Test
public void testGetAncWomenCount() {
Mockito.doReturn(database).when(repository).getReadableDatabase();
AncDao.getAncWomenCount("123456");
MatrixCursor matrixCursor = new MatrixCursor(new String[]{"count"});
matrixCursor.addRow(new Object[]{"20"});
Mockito.doReturn(matrixCursor).when(database).rawQuery(Mockito.any(), Mockito.any());
int womenCount = AncDao.getAncWomenCount("55874d8aa-6632-47f9-8a88-26bfedd942c2");
Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
Assert.assertEquals(womenCount, 20);
}

@Test
public void testShowTT() {
Mockito.doReturn(database).when(repository).getReadableDatabase();
MatrixCursor matrixCursor = new MatrixCursor(new String[]{"count"});
matrixCursor.addRow(new Object[]{"1"});
Mockito.doReturn(matrixCursor).when(database).rawQuery(Mockito.any(), Mockito.any());
boolean showTT = AncDao.showTT("623987d8aa-6632-47f9-8a88-26bfedd942c2");
Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
Assert.assertTrue(showTT);
}

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

MatrixCursor matrixCursor = new MatrixCursor(new String[]{"human_readable_details"});
matrixCursor.addRow(new Object[]{"HIV test"});
matrixCursor.addRow(new Object[]{"Malaria test"});

Mockito.doReturn(matrixCursor).when(database).rawQuery(Mockito.any(), Mockito.any());

List<String> testDone = AncDao.getTestDone("56776ef1-6679-4a86-b6d4-9d30554cb2ec");

Mockito.verify(database).rawQuery(Mockito.anyString(), Mockito.any());
Assert.assertEquals(testDone.size(), 2);
}

}

0 comments on commit f875330

Please sign in to comment.