diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/NutritionRegisterReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/NutritionRegisterReportBuilder.java index 3fcc6ad5d3..d251fc84b5 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/NutritionRegisterReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/NutritionRegisterReportBuilder.java @@ -23,6 +23,7 @@ import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; import org.openmrs.module.kenyaemr.reporting.cohort.definition.NutritionRegisterCohortDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.hei.HEICWCMuacDataDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.*; import org.openmrs.module.metadatadeploy.MetadataUtils; import org.openmrs.module.reporting.common.SortCriteria; @@ -70,7 +71,7 @@ protected List<Mapped<DataSetDefinition>> buildDataSets(ReportDescriptor reportD protected DataSetDefinition datasetColumns() { EncounterDataSetDefinition dsd = new EncounterDataSetDefinition(); - dsd.setName("NUTRITIONRegister"); + dsd.setName("MOH407"); dsd.setDescription("OPD Visit information"); dsd.addSortCriteria("Visit Date", SortCriteria.SortDirection.ASC); dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); @@ -90,33 +91,7 @@ protected DataSetDefinition datasetColumns() { OPDWeightDataDefinition opdWeightDataDefinition = new OPDWeightDataDefinition(); opdWeightDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); opdWeightDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDTemperatureDataDefinition opdTemperatureDataDefinition = new OPDTemperatureDataDefinition(); - opdTemperatureDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdTemperatureDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDMalariaAssessmentDataDefinition opdMalariaAssessmentDataDefinition = new OPDMalariaAssessmentDataDefinition(); - opdMalariaAssessmentDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdMalariaAssessmentDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDTreatmentPrescribedDataDefinition opdTreatmentPrescribedDataDefinition = new OPDTreatmentPrescribedDataDefinition(); - opdTreatmentPrescribedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdTreatmentPrescribedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDTbScreeningDataDefinition opdTbScreeningDataDefinition = new OPDTbScreeningDataDefinition(); - opdTbScreeningDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdTbScreeningDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDReferredToDataDefinition opdReferredToDataDefinition = new OPDReferredToDataDefinition(); - opdReferredToDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdReferredToDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDReferredFromDataDefinition opdReferredFromDataDefinition = new OPDReferredFromDataDefinition(); - opdReferredFromDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdReferredFromDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDOutcomeDataDefinition opdOutcomeDataDefinition = new OPDOutcomeDataDefinition(); - opdOutcomeDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdOutcomeDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDBMIDataDefinition opdBMIDataDefinition = new OPDBMIDataDefinition(); - opdBMIDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdBMIDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDBloodPressureDataDefinition opdBloodPressureDataDefinition = new OPDBloodPressureDataDefinition(); - opdBloodPressureDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdBloodPressureDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDDiagnosisDataDefinition opdDiagnosisDataDefinition = new OPDDiagnosisDataDefinition(); opdDiagnosisDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); opdDiagnosisDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); @@ -129,25 +104,14 @@ protected DataSetDefinition datasetColumns() { dsd.addColumn("Age", new AgeDataDefinition(), ""); dsd.addColumn("Sex", new GenderDataDefinition(), ""); dsd.addColumn("Parent/Caregiver Telephone No", new PersonAttributeDataDefinition(phoneNumber), ""); - dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); - dsd.addColumn("OPD Number (New)", patientClinicNo, ""); - //dsd.addColumn("OPD Number (Revisit)", patientClinicNo, ""); //TODO:Determine revisit vs new visit - dsd.addColumn("Referred From", opdReferredFromDataDefinition, paramMapping); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); dsd.addColumn("County",new CalculationDataDefinition("County", new CountyAddressCalculation()), "",new CalculationResultConverter()); dsd.addColumn("Sub County", new CalculationDataDefinition("Subcounty", new SubCountyAddressCalculation()), "",new CalculationResultConverter()); dsd.addColumn("Village", new CalculationDataDefinition("Village/Estate/Landmark", new PersonAddressCalculation()), "",new RDQACalculationResultConverter()); dsd.addColumn("Weight", opdWeightDataDefinition, paramMapping); - dsd.addColumn("Height", opdHeightDataDefinition, paramMapping); - dsd.addColumn("BMI", opdBMIDataDefinition, paramMapping); - dsd.addColumn("Temperature",opdTemperatureDataDefinition, paramMapping); - dsd.addColumn("Blood Pressure", opdBloodPressureDataDefinition, paramMapping); - //dsd.addColumn("Visual Acuity", opdBloodPressureDataDefinition, paramMapping); //TODO: Determine how to get visual acuity. Is this an examination - dsd.addColumn("TB Screening",opdTbScreeningDataDefinition, paramMapping); - dsd.addColumn("Malaria",opdMalariaAssessmentDataDefinition, paramMapping); + dsd.addColumn("Height", opdHeightDataDefinition, paramMapping); + dsd.addColumn("Muac", new HEICWCMuacDataDefinition(), ""); dsd.addColumn("Diagnosis",opdDiagnosisDataDefinition, paramMapping); //TODO: Add all diagnosis - dsd.addColumn("Treatments Prescribed",opdTreatmentPrescribedDataDefinition, paramMapping); - dsd.addColumn("Referred to",opdReferredToDataDefinition, paramMapping); //TODO: missing 1=Community Unit - dsd.addColumn("Remarks/Outcome",opdOutcomeDataDefinition, paramMapping); NutritionRegisterCohortDefinition cd = new NutritionRegisterCohortDefinition(); cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/NutritionRegisterCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/NutritionRegisterCohortDefinitionEvaluator.java index fe8b5dacff..ce6e812a32 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/NutritionRegisterCohortDefinitionEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/NutritionRegisterCohortDefinitionEvaluator.java @@ -41,9 +41,18 @@ public EncounterQueryResult evaluate(EncounterQuery definition, EvaluationContex context = ObjectUtil.nvl(context, new EvaluationContext()); EncounterQueryResult queryResult = new EncounterQueryResult(definition, context); - String qry = "SELECT ce.encounter_id from kenyaemr_etl.etl_clinical_encounter ce\n" + - " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = ce.patient_id and p.voided = 0\n" + - "where date(ce.visit_date) BETWEEN date(:startDate) AND date(:endDate)and ce.voided = 0;"; + String qry = "SELECT nt.encounter_id \n" + + "FROM kenyaemr_etl.etl_nutrition nt\n" + + "INNER JOIN kenyaemr_etl.etl_patient_demographics p \n" + + " ON p.patient_id = nt.patient_id \n" + + " AND p.voided = 0\n" + + "WHERE timestampdiff(YEAR, date(p.DOB), (\n" + + " SELECT MAX(nt2.visit_date) \n" + + " FROM kenyaemr_etl.etl_nutrition nt2 \n" + + " WHERE nt2.patient_id = nt.patient_id\n" + + ")) <= 15 \n" + + "AND date(nt.visit_date) BETWEEN date(:startDate) AND date(:endDate) \n" + + "AND nt.voided = 0;"; SqlQueryBuilder builder = new SqlQueryBuilder(); builder.append(qry); diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index fc5fea61b2..4c77697160 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -103,7 +103,7 @@ <ref bean="kenyaemr.ehrReports.report.IDSRSuspectedCaseList" /> <ref bean="kenyaemr.ehrReports.report.moh204A" /> <ref bean="kenyaemr.ehrReports.report.moh204B" /> - <ref bean="kenyaemr.ehrReports.report.nutritionRegister" /> + <ref bean="kenyaemr.ehrReports.report.moh407" /> <ref bean="kenyaemr.ehrReports.report.facility.monthly.collection" /> <ref bean="kenyaemr.ehrReports.706.report" /> <ref bean="kenyaemr.ehrReports.report.240" /> @@ -1045,7 +1045,7 @@ <property name="template" value="kenyaemr:moh204B.xls" /> <property name="repeatingSection" value="sheet:1,row:6,dataset:MOH204B" /> </bean> - <bean id="kenyaemr.ehrReports.report.nutritionRegister" class="org.openmrs.module.kenyacore.report.HybridReportDescriptor"> + <bean id="kenyaemr.ehrReports.report.moh407" class="org.openmrs.module.kenyacore.report.HybridReportDescriptor"> <property name="targetUuid" value="cdaceb90-a346-48e6-aa76-49d1dd6451c7" /> <property name="name" value="Daily Nutrition Register" /> <property name="description" value="Daily Nutrition Register" /> @@ -1053,8 +1053,8 @@ <set> <ref bean="kenyaemr.app.reports" /> </set></property> - <property name="template" value="kenyaemr:nutritionRegister.xls" /> - <property name="repeatingSection" value="sheet:1,row:6,dataset:NUTRITIONRegister" /> + <property name="template" value="kenyaemr:MOH407.xls" /> + <property name="repeatingSection" value="sheet:1,row:6,dataset:MOH407" /> </bean> <bean id="kenyaemr.ehrReports.report.facility.monthly.collection" class="org.openmrs.module.kenyacore.report.HybridReportDescriptor"> <property name="targetUuid" value="51856a05-529a-4b9f-866b-2e6695c0d150" /> diff --git a/omod/src/main/webapp/resources/reports/.~lock.MOH407.xls# b/omod/src/main/webapp/resources/reports/.~lock.MOH407.xls# new file mode 100644 index 0000000000..e1e9eaa0f9 --- /dev/null +++ b/omod/src/main/webapp/resources/reports/.~lock.MOH407.xls# @@ -0,0 +1 @@ +,gabu,gabu,13.11.2024 13:40,file:///home/gabu/.config/libreoffice/4; \ No newline at end of file diff --git a/omod/src/main/webapp/resources/reports/nutritionRegister.xls b/omod/src/main/webapp/resources/reports/MOH407.xls similarity index 85% rename from omod/src/main/webapp/resources/reports/nutritionRegister.xls rename to omod/src/main/webapp/resources/reports/MOH407.xls index b1a2096e76..eef85fdfdc 100644 Binary files a/omod/src/main/webapp/resources/reports/nutritionRegister.xls and b/omod/src/main/webapp/resources/reports/MOH407.xls differ