2
<%@ page import="java.sql.*,java.util.*,java.math.*" %>
3
<%@ page import="com.opensymphony.xwork.util.OgnlValueStack" %>
9
// For finding organisationunit name of selected Orgunit based on Orgunit id
13
// For finding child orgunit ids and names based on selected orgunit id
17
// For finding datavalues
21
// For finding PHC datavalues
25
// For finding BirthRate
30
String userName = "dhis";
32
String urlForConnection = "jdbc:mysql://localhost/gj_dhis2";
35
OgnlValueStack stack = (OgnlValueStack)request.getAttribute("webwork.valueStack");
37
String selectedId = (String) stack.findValue( "orgUnitId" );
38
int selectedOrgUnitID = Integer.parseInt( selectedId );
41
String startingDate = (String) stack.findValue( "startingPeriod" );
42
String endingDate = (String) stack.findValue( "endingPeriod" );
44
String monthlyPeriodId = (String) stack.findValue( "monthlyPeriodTypeId" );
45
int periodTypeID = Integer.parseInt( monthlyPeriodId );
49
String selectedOrgUnitName = "";
50
String selectedDataPeriodStartDate = "";
51
String selectedDataPeriodEndDate = "";
52
String lastDataPeriodStartDate = "";
55
List childOrgUnitIDs = new ArrayList();
56
List childOrgUnitNames = new ArrayList();
58
int childOrgUnitID = 0;
59
// String childOrgUnitName = "";
60
int childOrgUnitCount = 0;
62
double maxValue[] = new double[10];
63
double minValue[] = new double[10];
68
String maxOrgUnitName[] = new String[10];
69
String minOrgUnitName[] = new String[10];
77
"'Form6_DE0081','Form6_DE0082'",
80
"'Form6_DE0114','Form6_DE0115'",
83
"'Form6_DE0277','Form6_DE0278'",
86
"'Form6_DE0301','Form6_DE0302'",
89
"'Form6_DE0331','Form6_DE0332'",
92
"'Form6_DE0361','Form6_DE0362'",
95
"'Form6_DE0367','Form6_DE0368'",
97
// Children given Vit A dose1
98
"'Form6_DE0433','Form6_DE0434'",
106
double dataValues[][] = new double[25][DECodes.length];
107
double sumOfValues[] = new double[DECodes.length];
108
double PHCdataValues[] = new double[DECodes.length];
109
double PHCsumOfValues[] = new double[DECodes.length];
112
String monthNames[] = { "", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };
113
String partsOfStartDate[] = startingDate.split("-");
114
String partsOfEndDate[] = endingDate.split("-");
118
double birthRate = 24.3;
122
String startingYear = "";
123
String endingYear = "";
126
int lastYear = Integer.parseInt(partsOfStartDate[0]) - 1;
127
int tempForMonth1 = Integer.parseInt(partsOfStartDate[1]);
129
if(tempForMonth1 < 4)
131
tempForYear = lastYear;
132
startingYear = ""+tempForYear+"-04-01";
133
endingYear = ""+(tempForYear+1)+"-03-20";
137
tempForYear = lastYear + 1;
138
startingYear = ""+tempForYear+"-04-01";
139
endingYear = ""+(tempForYear+1)+"-03-20";
142
int noOfMonths = ( 12 * ( Integer.parseInt(partsOfEndDate[1]) - Integer.parseInt(partsOfStartDate[1]) ) ) - Integer.parseInt(partsOfStartDate[1]) + Integer.parseInt(partsOfEndDate[1])+1;
151
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
152
con = DriverManager.getConnection (urlForConnection, userName, password);
154
st1=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
155
st2=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
156
st3=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
157
st4=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
158
st5=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
161
//rs1 = st1.executeQuery("select shortname from organisationunit where id = "+selectedOrgUnitID);
162
rs1 = st1.executeQuery("select shortname from organisationunit where organisationunitid = "+selectedOrgUnitID);
163
if(rs1.next()) { selectedOrgUnitName = rs1.getString(1); }
165
//rs2 = st2.executeQuery("select id,shortname from organisationunit where parent = "+selectedOrgUnitID);
166
rs2 = st2.executeQuery("select organisationunitid,shortname from organisationunit where parentid = "+selectedOrgUnitID);
169
Integer tempInt = new Integer(rs2.getInt(1));
170
childOrgUnitIDs.add(childOrgUnitCount,tempInt);
171
childOrgUnitNames.add(childOrgUnitCount,rs2.getString(2));
176
//rs5 = st5.executeQuery("SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataElement = dataelement.id WHERE datavalue.period in (select id from period where startdate like '"+startingYear+"' and enddate like '"+endingYear+"' and periodType=3) AND datavalue.source in ( select parent from organisationunit where id in ( select parent from organisationunit where id = "+selectedOrgUnitID+")) AND dataelement.code in ("+DECodes[9]+")");
177
rs5 = st5.executeQuery("SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataelementid = dataelement.dataelementid WHERE datavalue.periodid in (select periodid from period where startdate like '"+startingYear+"' and enddate like '"+endingYear+"' and periodtypeid=3) AND datavalue.sourceid in ( select parentid from organisationunit where organisationunitid in ( select parentid from organisationunit where organisationunitid = "+selectedOrgUnitID+")) AND dataelement.code in ("+DECodes[9]+")");
178
if(rs5.next()) { birthRate = rs5.getInt(1); }
179
if(birthRate==0) birthRate=24.3;
182
while(count < childOrgUnitCount)
184
Integer temp1 = (Integer) childOrgUnitIDs.get(count);
185
int currentChildID = temp1.intValue();
187
for(i=0;i<DECodes.length;i++)
189
//if(i==0) query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataElement = dataelement.id WHERE datavalue.period in (select id from period where startdate like '"+startingYear+"' and enddate like '"+endingYear+"' and periodType=3) AND datavalue.source ="+currentChildID+" AND dataelement.code in ("+DECodes[i]+")";
190
//else query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataElement = dataelement.id WHERE datavalue.period in (select id from period where startdate between '"+startingDate+"' and '"+endingDate+"') AND datavalue.source ="+currentChildID+" AND dataelement.code in ("+DECodes[i]+")";
191
if(i==0) query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataelementid = dataelement.dataelementid WHERE datavalue.periodid in (select periodid from period where startdate like '"+startingYear+"' and enddate like '"+endingYear+"' and periodtypeid=3) AND datavalue.sourceid ="+currentChildID+" AND dataelement.code in ("+DECodes[i]+")";
192
else query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataelementid = dataelement.dataelementid WHERE datavalue.periodid in (select periodid from period where startdate between '"+startingDate+"' and '"+endingDate+"') AND datavalue.sourceid ="+currentChildID+" AND dataelement.code in ("+DECodes[i]+")";
193
rs3 = st3.executeQuery(query);
199
if(i==0) { r = ((rs3.getInt(1) * 18)/100 ) ; r = (r / 12) * noOfMonths;}
200
else if(i==1) { r = ((rs3.getInt(1) * 94)/100 ) ; }
201
else if(i==2) { r = ( rs3.getInt(1) / dataValues[count][0]) * 100; }
202
else { r = ( rs3.getInt(1) / dataValues[count][1]) * 100; }
204
int decimalPlace = 2;
205
BigDecimal bd = new BigDecimal(r);
206
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
207
r = bd.doubleValue();
209
dataValues[count][i] = r;
212
catch(Exception e) { dataValues[count][i] = 0.0; }
214
// sumOfValues[i] += dataValues[count][i];
228
while(count < DECodes.length)
231
minValue[count] = dataValues[0][count];
232
maxValue[count] = dataValues[0][count];
234
minOrgUnitName[count] = "";
235
maxOrgUnitName[count] = "";
237
for(i=0;i<childOrgUnitCount;i++)
240
String childOrgUnitName = (String) childOrgUnitNames.get(i);
242
if( dataValues[i][count] > maxValue[count] ) { maxValue[count] = dataValues[i][count]; maxOrgUnitName[count] = childOrgUnitName; }
243
else if( dataValues[i][count] == maxValue[count] )
244
{ maxValue[count] = dataValues[i][count];
245
if (flag1==0) { maxOrgUnitName[count] = childOrgUnitName;flag1=1;}
246
else { maxOrgUnitName[count] += "<br>"+ childOrgUnitName; }
250
if( dataValues[i][count] < minValue[count] ) { minValue[count] = dataValues[i][count]; minOrgUnitName[count] = childOrgUnitName;}
251
else if( dataValues[i][count] == minValue[count])
252
{ minValue[count] = dataValues[i][count];
253
if (flag2==0) { minOrgUnitName[count] = childOrgUnitName;flag2=1;}
254
else { minOrgUnitName[count] += "<br>"+ childOrgUnitName;}
263
for(i=0;i<DECodes.length;i++)
265
//if(i==0) query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataElement = dataelement.id WHERE datavalue.period in (select id from period where startdate like '"+startingYear+"' and enddate like '"+endingYear+"' and periodType=3) AND datavalue.source in (select id from organisationunit where parent ="+selectedOrgUnitID+" OR id ="+selectedOrgUnitID+") AND dataelement.code in ("+DECodes[i]+")";
266
//else query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataElement = dataelement.id WHERE datavalue.period in (select id from period where startdate between '"+startingDate+"' and '"+endingDate+"') AND datavalue.source in (select id from organisationunit where parent ="+selectedOrgUnitID+" OR id ="+selectedOrgUnitID+") AND dataelement.code in ("+DECodes[i]+")";
267
if(i==0) query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataelementid = dataelement.dataelementid WHERE datavalue.periodid in (select periodid from period where startdate like '"+startingYear+"' and enddate like '"+endingYear+"' and periodtypeid=3) AND datavalue.sourceid in (select organisationunitid from organisationunit where parentid ="+selectedOrgUnitID+" OR organisationunitid ="+selectedOrgUnitID+") AND dataelement.code in ("+DECodes[i]+")";
268
else query = "SELECT sum(datavalue.value) FROM datavalue INNER JOIN dataelement ON datavalue.dataelementid = dataelement.dataelementid WHERE datavalue.periodid in (select periodid from period where startdate between '"+startingDate+"' and '"+endingDate+"') AND datavalue.sourceid in (select organisationunitid from organisationunit where parentid ="+selectedOrgUnitID+" OR organisationunitid ="+selectedOrgUnitID+") AND dataelement.code in ("+DECodes[i]+")";
269
rs4 = st4.executeQuery(query);
277
population = rs4.getInt(1);
278
r = ( population * 18 ) / 100;
279
r = (r / 12) * noOfMonths;
281
else if(i==1) { r = ( rs4.getInt(1) * 94 ) / 100; }
282
else if(i==2) { r = ( rs4.getInt(1) / PHCdataValues[0]) * 100; }
283
else { r = ( rs4.getInt(1) / PHCdataValues[1]) * 100; }
285
int decimalPlace = 2;
286
BigDecimal bd = new BigDecimal(r);
287
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
288
r = bd.doubleValue();
290
PHCdataValues[i] = r;
292
catch(Exception e) { PHCdataValues[i] = 0.0; }
294
PHCsumOfValues[i] += PHCdataValues[i];
301
catch(Exception e) { out.println(e.getMessage()); }
306
if(rs1!=null) rs1.close(); if(st1!=null) st1.close();
307
if(rs2!=null) rs2.close(); if(st2!=null) st2.close();
308
if(rs3!=null) rs3.close(); if(st3!=null) st3.close();
309
if(rs4!=null) rs4.close(); if(st4!=null) st4.close();
310
if(rs5!=null) rs5.close(); if(st5!=null) st5.close();
313
if(con!=null) con.close();
315
catch(Exception e) { out.println(e.getMessage()); }
316
} // finally block end
323
<title>Child Care</title>
327
<font face="arial" size="4"><b>Child Care</b></font>
329
<table cellpadding="0" cellspacing="0" bgcolor="ffffff" align="center" style="border-style:solid; border-width:0; border-collapse: collapse; padding: 0; position:relative; top:10" bordercolor="#ffffff" width="100%" border="0">
330
<tr style="border-collapse: collapse; border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; padding: 0" bordercolor="#111111" width="100%">
331
<td width="50%" style="border-collapse: collapse; border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; padding-left:0; padding-right:0; padding-top:0; padding-bottom:0" bordercolor="#111111" height="23"><b><font face="Arial" size="2">Name of the PHC : <%=selectedOrgUnitName%></b></font></td>
332
<td width="50%" align="right" style="border-collapse: collapse; border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; padding-left:15; padding-right:0; padding-top:0; padding-bottom:0" bordercolor="#111111" height="23"><font face="Arial" size="2"><b>Starting Period : <%=monthNames[Integer.parseInt(partsOfStartDate[1])]%> - <%=partsOfStartDate[0]%> </b></font></td>
334
<tr style="border-collapse: collapse; border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; padding: 0" bordercolor="#111111" width="100%">
335
<td width="50%" style="border-collapse: collapse; border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; padding-left:0; padding-right:0; padding-top:0; padding-bottom:0" bordercolor="#111111" height="23"><b><font face="Arial" size="2">Population : <%=population%></b></font></td>
336
<td width="50%" align="right" style="border-collapse: collapse; border-left-style: solid; border-left-width: 0; border-right-style: solid; border-right-width: 0; padding-left:15; padding-right:0; padding-top:0; padding-bottom:0" bordercolor="#111111" height="23"><font face="Arial" size="2"><b>Ending Period : <%=monthNames[Integer.parseInt(partsOfEndDate[1])]%> - <%=partsOfEndDate[0]%> </b></font></td>
341
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
343
<td width="14%" rowspan="2" align="center" height="50"><font face="arial" size="2"><b>Indicators</b></font></td>
344
<td width="10%" rowspan="2" align="center"><font face="arial" size="2"><b>Expected (In Thousands)</b></font></td>
345
<td width="10%" rowspan="2" align="center"><font face="arial" size="2"><b>Workload Estimated (as % of Expected)</b></font></td>
346
<td width="10%" rowspan="2" align="center"><font face="arial" size="2"><b>% Workload Achieved</b></font></td>
347
<td width="56%" colspan="2" align="center"><font face="arial" size="2"><b>Sub-Centre Performance Range</b></font></td>
350
<td width="28%" align="center"><font face="arial" size="2"><b>Maximum</b></font></td>
351
<td width="28%" align="center"><font face="arial" size="2"><b>Minimum</b></font></td>
354
<td width="14%" height="50"><b><font face="arial" size="2">Newborn Weighed</font></b></td>
355
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[0]%></b></font> </td>
356
<td width="10%" align="center"><font face="arial" size="2"><b>86</b></font></td>
357
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[2]%></b></font> </td>
358
<td width="28%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[2]%><br>(<%=maxValue[2]%>)</b></font> </td>
359
<td width="28%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[2]%><br>(<%=minValue[2]%>)</b></font> </td>
362
<td width="14%" height="50"><b><font face="arial" size="2">BCG</font></b></td>
363
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[1]%></b></font> </td>
364
<td width="10%" align="center"><font face="arial" size="2"><b>100.0</b></font></td>
365
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[3]%></b></font> </td>
366
<td width="28%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[3]%><br>(<%=maxValue[3]%>)</b></font> </td>
367
<td width="28%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[3]%><br>(<%=minValue[3]%>)</b></font> </td>
370
<td width="20%" height="50"><b><font face="arial" size="2">DPT3</font></b></td>
371
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[1]%></b></font> </td>
372
<td width="10%" align="center"><font face="arial" size="2"><b>100.0</b></font></td>
373
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[4]%></b></font> </td>
374
<td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[4]%><br>(<%=maxValue[4]%>)</b></font> </td>
375
<td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[4]%><br>(<%=minValue[4]%>)</b></font> </td>
378
<td width="20%" height="50"><b><font face="arial" size="2">OPV3</font></b></td>
379
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[1]%></b></font> </td>
380
<td width="10%" align="center"><font face="arial" size="2"><b>100.0</b></font></td>
381
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[5]%></b></font> </td>
382
<td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[5]%><br>(<%=maxValue[5]%>)</b></font> </td>
383
<td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[5]%><br>(<%=minValue[5]%>)</b></font> </td>
386
<td width="20%" height="50"><b><font face="arial" size="2">Measles</font></b></td>
387
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[1]%></b></font> </td>
388
<td width="10%" align="center"><font face="arial" size="2"><b>100.0</b></font></td>
389
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[6]%></b></font> </td>
390
<td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[6]%><br>(<%=maxValue[6]%>)</b></font> </td>
391
<td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[6]%><br>(<%=minValue[6]%>)</b></font> </td>
394
<td width="20%" height="50"><b><font face="arial" size="2">Full Immunization</font></b></td>
395
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[1]%></b></font> </td>
396
<td width="10%" align="center"><font face="arial" size="2"><b>100.0</b></font></td>
397
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[7]%></b></font> </td>
398
<td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[7]%><br>(<%=maxValue[7]%>)</b></font> </td>
399
<td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[7]%><br>(<%=minValue[7]%>)</b></font> </td>
402
<td width="20%" height="50"><b><font face="arial" size="2">Children given Vit A dose1</font></b></td>
403
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[1]%></b></font> </td>
404
<td width="10%" align="center"><font face="arial" size="2"><b>100.0</b></font></td>
405
<td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[8]%></b></font> </td>
406
<td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[8]%><br>(<%=maxValue[8]%>)</b></font> </td>
407
<td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[8]%><br>(<%=minValue[8]%>)</b></font> </td>
414
<font face="arial" size="4"><b>Formulae</b></font>
415
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
417
<td width="20%" align="center" height="50"><font face="arial" size="2"><b>Indicators</b></font></td>
418
<td width="30%" align="center"><font face="arial" size="2"><b>Expected (In Thousands)</b></font></td>
419
<td width="50%" align="center"><font face="arial" size="2"><b>% Workload Achieved</b></font></td>
422
<td width="20%" height="50"><b><font face="arial" size="2">Newborn Weighed</font></b></td>
423
<td width="30%" align="center"><font face="arial" size="2"><b> (Population * 18) / 100 </b></font> </td>
424
<td width="50%" align="center"><font face="arial" size="2"><b>( (New born Chldren Weighed Male Total + New born Chldren Weighed Female Total) / Expected) * 100.0</b></font> </td>
427
<td width="20%" height="50"><b><font face="arial" size="2">BCG</font></b></td>
428
<td width="30%" align="center"><font face="arial" size="2"><b> (Live Births * 94) / 100 </b></font> </td>
429
<td width="50%" align="center"><font face="arial" size="2"><b>( (Infants 0-1 year given BCG Male Total + Infants 0-1 year given BCG Female Total ) / Expected) * 100.0</b></font> </td>
432
<td width="20%" height="50"><b><font face="arial" size="2">DPT3</font></b></td>
433
<td width="30%" align="center"><font face="arial" size="2"><b> (Live Births * 94) / 100 </b></font> </td>
434
<td width="50%" align="center"><font face="arial" size="2"><b>( (Infants 0-1 year given DPT-3 Male Total + Infants 0-1 year given DPT-3 Female Total ) / Expected) * 100.0</b></font> </td>
437
<td width="20%" height="50"><b><font face="arial" size="2">OPV3</font></b></td>
438
<td width="30%" align="center"><font face="arial" size="2"><b> (Live Births * 94) / 100 </b></font> </td>
439
<td width="50%" align="center"><font face="arial" size="2"><b>( (Infants 0-1 year given OPV-3 Male Total + Infants 0-1 year given OPV-3 Female Total) / Expected) * 100.0</b></font> </td>
442
<td width="20%" height="50"><b><font face="arial" size="2">Measles</font></b></td>
443
<td width="30%" align="center"><font face="arial" size="2"><b> (Live Births * 94) / 100 </b></font> </td>
444
<td width="50%" align="center"><font face="arial" size="2"><b>( (Infants 0-1 year given Measles Male Total + Infants 0-1 year given Measles Female Total) / Expected) * 100.0</b></font> </td>
447
<td width="20%" height="50"><b><font face="arial" size="2">Full Immunization</font></b></td>
448
<td width="30%" align="center"><font face="arial" size="2"><b> (Live Births * 94) / 100 </b></font> </td>
449
<td width="50%" align="center"><font face="arial" size="2"><b>( (Infants 0-1 year Full immunisaton Male Total + Infants 0-1 year Full immunisaton Female Total ) / Expected) * 100.0</b></font> </td>
452
<td width="20%" height="50"><b><font face="arial" size="2">Children given Vit A dose1</font></b></td>
453
<td width="30%" align="center"><font face="arial" size="2"><b> (Live Births * 94) / 100 </b></font> </td>
454
<td width="50%" align="center"><font face="arial" size="2"><b>( ( Vitamin-A (9 months to 3 years) Dose-1 Male Total + Vitamin-A (9 months to 3 years) Dose-1 Female Total ) / Expected) * 100.0</b></font> </td>
b'\\ No newline at end of file'