Skip to content

Commit

Permalink
Nutrition WIP register
Browse files Browse the repository at this point in the history
  • Loading branch information
gabriel090 committed Nov 18, 2024
1 parent 19c86de commit 0e01dfb
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 49 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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));
Expand All @@ -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));
Expand All @@ -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));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
8 changes: 4 additions & 4 deletions api/src/main/resources/content/kenyaemr.common.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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" />
Expand Down Expand Up @@ -1045,16 +1045,16 @@
<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" />
<property name="apps">
<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" />
Expand Down
1 change: 1 addition & 0 deletions omod/src/main/webapp/resources/reports/.~lock.MOH407.xls#
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
,gabu,gabu,13.11.2024 13:40,file:///home/gabu/.config/libreoffice/4;
Binary file not shown.

0 comments on commit 0e01dfb

Please sign in to comment.