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