diff --git a/src/main/java/org/sharedhealth/datasense/handler/DeathNoteHandler.java b/src/main/java/org/sharedhealth/datasense/handler/DeathNoteHandler.java
index 95fa5d4..2d2ca57 100644
--- a/src/main/java/org/sharedhealth/datasense/handler/DeathNoteHandler.java
+++ b/src/main/java/org/sharedhealth/datasense/handler/DeathNoteHandler.java
@@ -17,7 +17,6 @@
import java.util.Date;
import java.util.List;
-import static org.sharedhealth.datasense.util.DateUtil.*;
import static org.sharedhealth.datasense.util.TrUrl.isConceptUrl;
import static org.sharedhealth.datasense.util.TrUrl.isReferenceTermUrl;
@@ -95,9 +94,6 @@ private void mapDateOfDeathAndPatientAge(PatientDeathDetails patientDeathDetails
Observation dateOfDeathObs = findObservation(composition, deathNoteObservation, datasenseProperties.getDateOfDeathUuid());
Date dateOfDeath = getDateValue(encounter, dateOfDeathObs);
patientDeathDetails.setDateOfDeath(dateOfDeath);
- patientDeathDetails.setPatientAgeInYears(getYears(patientDeathDetails.getPatient().getDateOfBirth(), dateOfDeath));
- patientDeathDetails.setPatientAgeInMonths(getMonths(patientDeathDetails.getPatient().getDateOfBirth(), dateOfDeath));
- patientDeathDetails.setPatientAgeInDays(getDays(patientDeathDetails.getPatient().getDateOfBirth(), dateOfDeath));
}
private Date getDateValue(Encounter encounter, Observation dateOfDeathObs) {
diff --git a/src/main/java/org/sharedhealth/datasense/model/Encounter.java b/src/main/java/org/sharedhealth/datasense/model/Encounter.java
index 696cc76..062ab85 100644
--- a/src/main/java/org/sharedhealth/datasense/model/Encounter.java
+++ b/src/main/java/org/sharedhealth/datasense/model/Encounter.java
@@ -12,9 +12,6 @@ public class Encounter {
private Patient patient;
private Date encounterDateTime;
private String locationCode;
- private int patientAgeInYears;
- private int patientAgeInMonths;
- private int patientAgeInDays;
public void setEncounterType(String encounterType) {
this.encounterType = encounterType;
@@ -69,30 +66,6 @@ public String getLocationCode() {
return null;
}
- public int getPatientAgeInYears() {
- return patientAgeInYears;
- }
-
- public void setPatientAgeInYears(int patientAgeInYears) {
- this.patientAgeInYears = patientAgeInYears;
- }
-
- public int getPatientAgeInMonths() {
- return patientAgeInMonths;
- }
-
- public void setPatientAgeInMonths(int patientAgeInMonths) {
- this.patientAgeInMonths = patientAgeInMonths;
- }
-
- public int getPatientAgeInDays() {
- return patientAgeInDays;
- }
-
- public void setPatientAgeInDays(int patientAgeInDays) {
- this.patientAgeInDays = patientAgeInDays;
- }
-
public String getEncounterId() {
return encounterId;
}
diff --git a/src/main/java/org/sharedhealth/datasense/model/PatientDeathDetails.java b/src/main/java/org/sharedhealth/datasense/model/PatientDeathDetails.java
index 9b0a420..a5021af 100644
--- a/src/main/java/org/sharedhealth/datasense/model/PatientDeathDetails.java
+++ b/src/main/java/org/sharedhealth/datasense/model/PatientDeathDetails.java
@@ -6,9 +6,6 @@ public class PatientDeathDetails extends BaseResource {
private Patient patient;
private Encounter encounter;
private Date dateOfDeath;
- private int patientAgeInYears;
- private int patientAgeInMonths;
- private int patientAgeInDays;
private String circumstancesOfDeath;
private String causeOfDeathCode;
private String causeOfDeathConceptUuid;
@@ -38,30 +35,6 @@ public void setDateOfDeath(Date dateOfDeath) {
this.dateOfDeath = dateOfDeath;
}
- public int getPatientAgeInYears() {
- return patientAgeInYears;
- }
-
- public void setPatientAgeInYears(int patientAgeInYears) {
- this.patientAgeInYears = patientAgeInYears;
- }
-
- public int getPatientAgeInMonths() {
- return patientAgeInMonths;
- }
-
- public void setPatientAgeInMonths(int patientAgeInMonths) {
- this.patientAgeInMonths = patientAgeInMonths;
- }
-
- public int getPatientAgeInDays() {
- return patientAgeInDays;
- }
-
- public void setPatientAgeInDays(int patientAgeInDays) {
- this.patientAgeInDays = patientAgeInDays;
- }
-
public String getCircumstancesOfDeath() {
return circumstancesOfDeath;
}
diff --git a/src/main/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessor.java b/src/main/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessor.java
index 8b2be8f..316f77d 100644
--- a/src/main/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessor.java
+++ b/src/main/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessor.java
@@ -13,8 +13,6 @@
import java.util.Date;
-import static org.sharedhealth.datasense.util.DateUtil.*;
-
@Component("clinicalEncounterProcessor")
public class ClinicalEncounterProcessor implements ResourceProcessor {
private EncounterDao encounterDao;
@@ -57,7 +55,6 @@ private Encounter mapEncounterFields(org.hl7.fhir.instance.model.Encounter fhirE
String encounterDate = composition.getComposition().getDateSimple().toString();
Date encounterDateTime = DateUtil.parseDate(encounterDate);
encounter.setEncounterDateTime(encounterDateTime);
- setPatientAge(patient.getDateOfBirth(), encounterDateTime, encounter);
return encounter;
}
@@ -66,9 +63,4 @@ public void setNext(ResourceProcessor nextProcessor) {
this.nextProcessor = nextProcessor;
}
- public void setPatientAge(Date birthDate, Date encounterDate, Encounter encounter) {
- encounter.setPatientAgeInYears(getYears(birthDate, encounterDate));
- encounter.setPatientAgeInMonths(getMonths(birthDate, encounterDate));
- encounter.setPatientAgeInDays(getDays(birthDate, encounterDate));
- }
}
diff --git a/src/main/java/org/sharedhealth/datasense/repository/EncounterDao.java b/src/main/java/org/sharedhealth/datasense/repository/EncounterDao.java
index 526a8ba..a40ab4a 100644
--- a/src/main/java/org/sharedhealth/datasense/repository/EncounterDao.java
+++ b/src/main/java/org/sharedhealth/datasense/repository/EncounterDao.java
@@ -21,17 +21,12 @@ public void save(Encounter encounter) {
map.put("encounter_type", encounter.getEncounterType());
map.put("visit_type", encounter.getEncounterVisitType());
map.put("patient_hid", encounter.getPatient().getHid());
- map.put("patient_age_years", encounter.getPatientAgeInYears());
- map.put("patient_age_months", encounter.getPatientAgeInMonths());
- map.put("patient_age_days", encounter.getPatientAgeInDays());
map.put("location_id", encounter.getLocationCode());
map.put("facility_id", encounter.getFacility().getFacilityId());
jdbcTemplate.update("insert into encounter (encounter_id, encounter_datetime, encounter_type, visit_type, " +
- "patient_hid, " +
- "patient_age_years, patient_age_months, patient_age_days, encounter_location_id, facility_id) " +
+ "patient_hid, encounter_location_id, facility_id) " +
"values(:encounter_id, :encounter_datetime, :encounter_type , :visit_type , :patient_hid, " +
- ":patient_age_years, :patient_age_months," +
- " :patient_age_days , :location_id, :facility_id)", map);
+ ":location_id, :facility_id)", map);
}
public void deleteExisting(String healthId, String encounterId){
diff --git a/src/main/java/org/sharedhealth/datasense/repository/PatientDeathDetailsDao.java b/src/main/java/org/sharedhealth/datasense/repository/PatientDeathDetailsDao.java
index 4fb0e31..5c9ce47 100644
--- a/src/main/java/org/sharedhealth/datasense/repository/PatientDeathDetailsDao.java
+++ b/src/main/java/org/sharedhealth/datasense/repository/PatientDeathDetailsDao.java
@@ -23,19 +23,16 @@ public void save(PatientDeathDetails patientDeathDetails) {
map.put("patient_hid", patientDeathDetails.getPatient().getHid());
map.put("encounter_id", patientDeathDetails.getEncounter().getEncounterId());
map.put("date_of_death", patientDeathDetails.getDateOfDeath());
- map.put("patient_age_years", patientDeathDetails.getPatientAgeInYears());
- map.put("patient_age_months", patientDeathDetails.getPatientAgeInMonths());
- map.put("patient_age_days", patientDeathDetails.getPatientAgeInDays());
map.put("circumstances_of_death", patientDeathDetails.getCircumstancesOfDeath());
map.put("cause_concept_uuid", patientDeathDetails.getCauseOfDeathConceptUuid());
map.put("cause_code", patientDeathDetails.getCauseOfDeathCode());
map.put("uuid", patientDeathDetails.getUuid());
- String sql = "insert into patient_death_details (patient_hid, encounter_id, date_of_death, patient_age_years, patient_age_months, patient_age_days," +
+ String sql = "insert into patient_death_details (patient_hid, encounter_id, date_of_death, " +
"circumstances_of_death, cause_concept_uuid, cause_code, uuid) " +
- "values(:patient_hid, :encounter_id, :date_of_death, :patient_age_years, :patient_age_months, :patient_age_days, " +
- " :circumstances_of_death, :cause_concept_uuid, :cause_code, :uuid)";
+ "values(:patient_hid, :encounter_id, :date_of_death, " +
+ ":circumstances_of_death, :cause_concept_uuid, :cause_code, :uuid)";
jdbcTemplate.update(sql, map);
}
diff --git a/src/main/resources/db/changelog/db-changelog.xml b/src/main/resources/db/changelog/db-changelog.xml
index 41d557f..08d34b2 100644
--- a/src/main/resources/db/changelog/db-changelog.xml
+++ b/src/main/resources/db/changelog/db-changelog.xml
@@ -668,4 +668,16 @@
+
+ Dropping patient age columns in encounter table
+
+
+
+
+
+ Dropping patient age columns in encounter table
+
+
+
+
\ No newline at end of file
diff --git a/src/test/java/org/sharedhealth/datasense/aqs/AqsExecutorIntegrationTest.java b/src/test/java/org/sharedhealth/datasense/aqs/AqsExecutorIntegrationTest.java
index 9ca4525..f2738a9 100644
--- a/src/test/java/org/sharedhealth/datasense/aqs/AqsExecutorIntegrationTest.java
+++ b/src/test/java/org/sharedhealth/datasense/aqs/AqsExecutorIntegrationTest.java
@@ -33,11 +33,11 @@ public class AqsExecutorIntegrationTest {
public void shouldExecuteMultipleQueriesAndReturnResults() throws ExecutionException, InterruptedException {
QueryDefinition admissionsMale = new QueryDefinition();
admissionsMale.setQueryName("ipd_male_0_to_4");
- admissionsMale.setQueryString("select count(distinct e.patient_hid) as v1 from encounter e, patient p where facility_id=':paramFacilityId:' and e.patient_hid=p.patient_hid and e.patient_age_years >= 0 and e.patient_age_years < 5 and p.gender='M' and LOWER(e.visit_type)='inpatient' and e.encounter_datetime =':paramStartDate:';");
+ admissionsMale.setQueryString("select count(distinct e.patient_hid) as v1 from encounter e, patient p where facility_id=':paramFacilityId:' and e.patient_hid=p.patient_hid and TIMESTAMPDIFF(YEAR, p.dob, e.encounter_datetime) between 0 and 5 and p.gender='M' and LOWER(e.visit_type)='inpatient' and e.encounter_datetime =':paramStartDate:';");
QueryDefinition emergencyVisitsFemale = new QueryDefinition();
emergencyVisitsFemale.setQueryName("emergency_female_15_to_24");
- emergencyVisitsFemale.setQueryString("select count(distinct e.patient_hid) as v1 from encounter e, patient p where facility_id=':paramFacilityId:' and e.patient_hid=p.patient_hid and e.patient_age_years >= 15 and e.patient_age_years < 25 and p.gender='F' and LOWER(e.visit_type)='emergency' and e.encounter_datetime=':paramStartDate:';");
+ emergencyVisitsFemale.setQueryString("select count(distinct e.patient_hid) as v1 from encounter e, patient p where facility_id=':paramFacilityId:' and e.patient_hid=p.patient_hid and TIMESTAMPDIFF(YEAR, p.dob, e.encounter_datetime) between 15 and 25 and p.gender='F' and LOWER(e.visit_type)='emergency' and e.encounter_datetime=':paramStartDate:';");
Map params = new HashMap() {{
diff --git a/src/test/java/org/sharedhealth/datasense/handler/DeathNoteHandlerIT.java b/src/test/java/org/sharedhealth/datasense/handler/DeathNoteHandlerIT.java
index 67f8eaf..3404808 100644
--- a/src/test/java/org/sharedhealth/datasense/handler/DeathNoteHandlerIT.java
+++ b/src/test/java/org/sharedhealth/datasense/handler/DeathNoteHandlerIT.java
@@ -90,15 +90,6 @@ public void shouldSaveDateOfDeathFromDateOfDeathObservationResource() {
assertEquals(DateUtil.parseDate("2014-12-28T00:00:00+05:30"), patientDeathDetails.getDateOfDeath());
}
- @Test
- public void shouldSavePatientAgeFromDateOfDeathObservationResource() {
- deathNoteHandler.process(deathNoteResource, composition);
- PatientDeathDetails patientDeathDetails = findByEncounterId("shrEncounterId");
- assertEquals(1, patientDeathDetails.getPatientAgeInYears());
- assertEquals(12, patientDeathDetails.getPatientAgeInMonths());
- assertEquals(365, patientDeathDetails.getPatientAgeInDays());
- }
-
@Test
public void shouldSaveCircumstancesOfDeathObservationResource() {
deathNoteHandler.process(deathNoteResource, composition);
@@ -115,7 +106,7 @@ public void shouldSaveCauseOfDeath() {
}
private PatientDeathDetails findByEncounterId(String shrEncounterId) {
- String sql = "select patient_hid, encounter_id, date_of_death, patient_age_years, patient_age_months, patient_age_days, " +
+ String sql = "select patient_hid, encounter_id, date_of_death, " +
"circumstances_of_death, cause_concept_uuid, cause_code, uuid " +
"from patient_death_details where encounter_id= :encounter_id";
HashMap map = new HashMap<>();
@@ -133,9 +124,6 @@ public PatientDeathDetails mapRow(ResultSet rs, int rowNum) throws SQLException
patientDeathDetails.setEncounter(encounter);
patientDeathDetails.setDateOfDeath(rs.getTimestamp("date_of_death"));
- patientDeathDetails.setPatientAgeInYears(rs.getInt("patient_age_years"));
- patientDeathDetails.setPatientAgeInMonths(rs.getInt("patient_age_months"));
- patientDeathDetails.setPatientAgeInDays(rs.getInt("patient_age_days"));
patientDeathDetails.setCircumstancesOfDeath(rs.getString("circumstances_of_death"));
patientDeathDetails.setCauseOfDeathConceptUuid(rs.getString("cause_concept_uuid"));
patientDeathDetails.setCauseOfDeathCode(rs.getString("cause_code"));
diff --git a/src/test/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessorIT.java b/src/test/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessorIT.java
index 582340b..a2588eb 100644
--- a/src/test/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessorIT.java
+++ b/src/test/java/org/sharedhealth/datasense/processor/ClinicalEncounterProcessorIT.java
@@ -85,7 +85,7 @@ public void shouldSaveEncounter() throws Exception {
private Encounter findEncounterById(String encounterId) {
List encounters = jdbcTemplate.query(
"select encounter_id ,encounter_datetime, encounter_type, visit_type, patient_hid, " +
- "patient_age_years, patient_age_months, patient_age_days,encounter_location_id, facility_id " +
+ "encounter_location_id, facility_id " +
"from encounter where encounter_id= :encounter_id", Collections.singletonMap("encounter_id",
encounterId),
new RowMapper() {
@@ -96,9 +96,6 @@ public Encounter mapRow(ResultSet rs, int rowNum) throws SQLException {
encounter.setEncounterDateTime(new Date(rs.getTimestamp("encounter_datetime").getTime()));
encounter.setEncounterType(rs.getString("encounter_type"));
encounter.setEncounterVisitType(rs.getString("visit_type"));
- encounter.setPatientAgeInYears(rs.getInt("patient_age_years"));
- encounter.setPatientAgeInMonths(rs.getInt("patient_age_months"));
- encounter.setPatientAgeInDays(rs.getInt("patient_age_days"));
encounter.setLocationCode(rs.getString("encounter_location_id"));
Patient patient = new Patient();
diff --git a/src/test/resources/csv/encounters.csv b/src/test/resources/csv/encounters.csv
index 7cec1c8..4560ba9 100644
--- a/src/test/resources/csv/encounters.csv
+++ b/src/test/resources/csv/encounters.csv
@@ -1,13 +1,13 @@
-encounter_id,encounter_datetime,encounter_type,visit_type,patient_hid,patient_age_years,patient_age_months,patient_age_days,encounter_location_id,facility_id,created_at
-100,2014-12-23,REG,outpatient,129,7,1,20,302618,1000
-103,2014-12-23,Consultation,outpatient,129,7,1,20,302618,1000
-110,2014-12-23,REG,outpatient,122,6,1,20,302618,1000
-111,2014-12-23,Consultation,outpatient,122,6,1,20,302618,1000
-101,2014-12-23,REG,inpatient,121,3,2,20,302618,1000
-102,2014-12-23,REG,outpatient,124,12,1,20,302618,1000
-104,2014-12-23,REG,outpatient,127,34,1,20,302618,1000
-105,2014-12-23,Consultation,outpatient,127,34,1,20,302618,1000
-106,2014-12-23,Consultation,inpatient,121,3,2,20,302618,1000
-107,2014-12-23,REG,inpatient,130,6,1,20,302618,1000
-108,2014-12-23,Consultation,inpatient,130,6,1,20,302618,1000
-109,2014-12-23,Consultation,inpatient,130,6,1,20,302618,1000
+encounter_id,encounter_datetime,encounter_type,visit_type,patient_hid,encounter_location_id,facility_id,created_at
+100,2014-12-23,REG,outpatient,129,302618,1000
+103,2014-12-23,Consultation,outpatient,129,302618,1000
+110,2014-12-23,REG,outpatient,122,302618,1000
+111,2014-12-23,Consultation,outpatient,122,302618,1000
+101,2014-12-23,REG,inpatient,121,302618,1000
+102,2014-12-23,REG,outpatient,124,302618,1000
+104,2014-12-23,REG,outpatient,127,302618,1000
+105,2014-12-23,Consultation,outpatient,127,302618,1000
+106,2014-12-23,Consultation,inpatient,121,302618,1000
+107,2014-12-23,REG,inpatient,130,302618,1000
+108,2014-12-23,Consultation,inpatient,130,302618,1000
+109,2014-12-23,Consultation,inpatient,130,302618,1000
diff --git a/src/test/resources/dhis/queries/query_list_1.json b/src/test/resources/dhis/queries/query_list_1.json
index 6e55f0b..908b862 100644
--- a/src/test/resources/dhis/queries/query_list_1.json
+++ b/src/test/resources/dhis/queries/query_list_1.json
@@ -4,11 +4,11 @@
"queries": [
{
"queryName": "Query_1",
- "query": "select count(distinct e.patient_hid) as v1 from encounter e, patient p where facility_id=:FACILITY: and e.patient_hid=p.patient_hid and e.patient_age_years >= :MIN_YEAR: and e.patient_age_years < :MAX_YEAR: and p.gender=':GENDER:' and e.visit_type=':VISIT_TYPE:' and encounter_datetime=':ENC_DATE:';"
+ "query": "select count(distinct e.patient_hid) as v1 from encounter e, patient p where facility_id=:FACILITY: and e.patient_hid=p.patient_hid and TIMESTAMPDIFF(YEAR, p.dob, e.encounter_datetime) between :MIN_YEAR: and :MAX_YEAR: and p.gender=':GENDER:' and e.visit_type=':VISIT_TYPE:' and encounter_datetime=':ENC_DATE:';"
},
{
"queryName": "Query_2",
- "query": "select count(distinct e.patient_hid) as v2 from encounter e, patient p where facility_id=:FACILITY: and e.patient_hid=p.patient_hid and e.patient_age_years >= :MIN_YEAR: and e.patient_age_years < :MAX_YEAR: and p.gender=':GENDER2:' and e.visit_type=':VISIT_TYPE:' and encounter_datetime=':ENC_DATE:';"
+ "query": "select count(distinct e.patient_hid) as v2 from encounter e, patient p where facility_id=:FACILITY: and e.patient_hid=p.patient_hid and TIMESTAMPDIFF(YEAR, p.dob, e.encounter_datetime) between :MIN_YEAR: and :MAX_YEAR: and p.gender=':GENDER2:' and e.visit_type=':VISIT_TYPE:' and encounter_datetime=':ENC_DATE:';"
}
]
}