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:';" } ] }