~mortenoh/+junk/dhis2-detailed-import-export

« back to all changes in this revision

Viewing changes to local/in/dhis-web-reports/src/main/webapp/dhis-web-reports/Gujarat/gchildcare-p.jsp

  • Committer: larshelge at gmail
  • Date: 2009-03-03 16:46:36 UTC
  • Revision ID: larshelge@gmail.com-20090303164636-2sjlrquo7ib1gf7r
Initial check-in

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
<%@ page import="java.sql.*,java.util.*,java.math.*" %>
 
3
<%@ page import="com.opensymphony.xwork.util.OgnlValueStack" %>
 
4
 
 
5
<%
 
6
    Connection con=null;
 
7
            
 
8
 
 
9
    // For finding organisationunit name of selected Orgunit based on Orgunit id
 
10
    Statement st1=null;
 
11
    ResultSet rs1=null;
 
12
 
 
13
    // For finding child orgunit ids and names based on selected orgunit id
 
14
    Statement st2=null;
 
15
    ResultSet rs2=null;
 
16
    
 
17
    // For finding datavalues
 
18
    Statement st3=null;
 
19
    ResultSet rs3=null;
 
20
 
 
21
    // For finding PHC datavalues
 
22
    Statement st4=null;
 
23
    ResultSet rs4=null;
 
24
    
 
25
    // For finding BirthRate
 
26
    Statement st5=null;
 
27
    ResultSet rs5=null;
 
28
 
 
29
 
 
30
    String userName = "dhis";      
 
31
    String password = "";           
 
32
    String urlForConnection = "jdbc:mysql://localhost/gj_dhis2";
 
33
    
 
34
 
 
35
        OgnlValueStack stack = (OgnlValueStack)request.getAttribute("webwork.valueStack");
 
36
        
 
37
        String selectedId = (String) stack.findValue( "orgUnitId" );
 
38
        int selectedOrgUnitID = Integer.parseInt( selectedId );
 
39
        
 
40
  
 
41
        String startingDate  = (String) stack.findValue( "startingPeriod" );
 
42
        String endingDate  = (String) stack.findValue( "endingPeriod" );
 
43
      
 
44
        String monthlyPeriodId = (String) stack.findValue( "monthlyPeriodTypeId" );
 
45
        int periodTypeID = Integer.parseInt( monthlyPeriodId );
 
46
               
 
47
 
 
48
      
 
49
        String selectedOrgUnitName = "";
 
50
        String selectedDataPeriodStartDate = "";
 
51
    String selectedDataPeriodEndDate = "";
 
52
        String lastDataPeriodStartDate = "";
 
53
 
 
54
 
 
55
    List childOrgUnitIDs = new ArrayList();     
 
56
        List childOrgUnitNames = new ArrayList();       
 
57
 
 
58
        int childOrgUnitID = 0;
 
59
//      String childOrgUnitName = "";                   
 
60
        int childOrgUnitCount = 0; 
 
61
        
 
62
        double maxValue[] = new double[10];
 
63
        double minValue[] = new double[10];     
 
64
        int i = 0;
 
65
        
 
66
        double const1 = 1.1;
 
67
        
 
68
        String maxOrgUnitName[] = new String[10];       
 
69
        String minOrgUnitName[] = new String[10];
 
70
 
 
71
    
 
72
    String DECodes[] = {
 
73
                                                // Population
 
74
                                                "'SD_DE0007'",
 
75
                                                
 
76
                                                // Live Births
 
77
                                                "'Form6_DE0081','Form6_DE0082'",
 
78
                                                
 
79
                                                // New born Weighed
 
80
                                                "'Form6_DE0114','Form6_DE0115'",
 
81
                                                
 
82
                                                // BCG
 
83
                                                "'Form6_DE0277','Form6_DE0278'",
 
84
                                                
 
85
                                                // DPT3
 
86
                                                "'Form6_DE0301','Form6_DE0302'",
 
87
                                                
 
88
                                                // OPV3
 
89
                                                "'Form6_DE0331','Form6_DE0332'",
 
90
 
 
91
                                                // Measles
 
92
                                                "'Form6_DE0361','Form6_DE0362'",
 
93
 
 
94
                                                // Full Immunization
 
95
                                                "'Form6_DE0367','Form6_DE0368'",
 
96
 
 
97
                                                // Children given Vit A dose1
 
98
                                                "'Form6_DE0433','Form6_DE0434'",
 
99
 
 
100
                                                // Birth Rate
 
101
                                                "'SD_DE0008'"
 
102
                                                
 
103
                                        };
 
104
 
 
105
        
 
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]; 
 
110
 
 
111
        
 
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("-");
 
115
 
 
116
        String query = "";
 
117
        
 
118
        double birthRate = 24.3;
 
119
        int population = 0;
 
120
        double r= 0.0;
 
121
 
 
122
        String startingYear = "";
 
123
        String endingYear = "";
 
124
        
 
125
        
 
126
     int lastYear = Integer.parseInt(partsOfStartDate[0]) - 1;
 
127
     int tempForMonth1 = Integer.parseInt(partsOfStartDate[1]);
 
128
     int tempForYear = 0;
 
129
     if(tempForMonth1 < 4)
 
130
        {   
 
131
                tempForYear = lastYear;
 
132
                startingYear = ""+tempForYear+"-04-01";
 
133
                        endingYear = ""+(tempForYear+1)+"-03-20";                       
 
134
        }
 
135
     else  
 
136
       {   
 
137
                tempForYear = lastYear + 1;     
 
138
                startingYear = ""+tempForYear+"-04-01";
 
139
                        endingYear = ""+(tempForYear+1)+"-03-20";               
 
140
        }
 
141
 
 
142
        int noOfMonths = ( 12 * ( Integer.parseInt(partsOfEndDate[1]) - Integer.parseInt(partsOfStartDate[1]) ) ) - Integer.parseInt(partsOfStartDate[1]) + Integer.parseInt(partsOfEndDate[1])+1;
 
143
 
 
144
%>
 
145
 
 
146
<%
 
147
                                                                           
 
148
       
 
149
     try
 
150
      {
 
151
        Class.forName ("com.mysql.jdbc.Driver").newInstance ();
 
152
        con = DriverManager.getConnection (urlForConnection, userName, password);
 
153
        
 
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);
 
159
 
 
160
        
 
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); }
 
164
        
 
165
            //rs2 =  st2.executeQuery("select id,shortname from organisationunit where parent = "+selectedOrgUnitID);
 
166
            rs2 =  st2.executeQuery("select organisationunitid,shortname from organisationunit where parentid = "+selectedOrgUnitID);
 
167
            while(rs2.next())
 
168
                 {
 
169
                        Integer tempInt = new Integer(rs2.getInt(1));
 
170
                        childOrgUnitIDs.add(childOrgUnitCount,tempInt);                 
 
171
                        childOrgUnitNames.add(childOrgUnitCount,rs2.getString(2));
 
172
                        
 
173
                        childOrgUnitCount++;
 
174
                 } // while loop end                            
 
175
                        
 
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;
 
180
 
 
181
                int count = 0;
 
182
                while(count < childOrgUnitCount)
 
183
                 {      
 
184
                        Integer temp1 = (Integer) childOrgUnitIDs.get(count);
 
185
                        int currentChildID = temp1.intValue();                  
 
186
                                                                        
 
187
                        for(i=0;i<DECodes.length;i++)
 
188
                         {
 
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);
 
194
                           
 
195
                           if(rs3.next())  
 
196
                                {
 
197
                                                try
 
198
                                                 {
 
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;        } 
 
203
                                                                
 
204
                                                        int decimalPlace = 2;
 
205
                                                        BigDecimal bd = new BigDecimal(r);
 
206
                                                        bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
 
207
                                                        r = bd.doubleValue();           
 
208
                                                                                                                    
 
209
                                                        dataValues[count][i] = r;       
 
210
 
 
211
                                                 }
 
212
                                                catch(Exception e) { dataValues[count][i] = 0.0; }      
 
213
                                                
 
214
                                        //      sumOfValues[i] +=  dataValues[count][i];                                                
 
215
                                        }       
 
216
                                        
 
217
                         } // for loop end                      
 
218
                                         
 
219
                        count++;                                                        
 
220
                 } // while loop end
 
221
 
 
222
 
 
223
 
 
224
                count = 2;
 
225
                int flag1 = 0;
 
226
                int flag2 = 0;
 
227
                
 
228
                while(count < DECodes.length)
 
229
                 {      
 
230
                
 
231
                        minValue[count] = dataValues[0][count];
 
232
                        maxValue[count] = dataValues[0][count]; 
 
233
                        
 
234
                        minOrgUnitName[count] = "";
 
235
                        maxOrgUnitName[count] = "";
 
236
                                                                        
 
237
                        for(i=0;i<childOrgUnitCount;i++)
 
238
                         {
 
239
                         
 
240
                                String  childOrgUnitName = (String) childOrgUnitNames.get(i);
 
241
                                                                                                
 
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; }
 
247
                                        }  
 
248
                          
 
249
 
 
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;}
 
255
                                                }
 
256
 
 
257
                                                                
 
258
                         } // for loop end                      
 
259
                        count++;                                                        
 
260
                 } // while loop end
 
261
 
 
262
 
 
263
                for(i=0;i<DECodes.length;i++)
 
264
                         {
 
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);
 
270
                           
 
271
                           if(rs4.next())  
 
272
                                {
 
273
                                                try
 
274
                                                 {
 
275
                                                        if(i==0) 
 
276
                                                           {                                                                  
 
277
                                                                population = rs4.getInt(1);
 
278
                                                                r =  ( population   * 18 ) / 100;       
 
279
                                                                        r = (r / 12) * noOfMonths;
 
280
                                                            }  
 
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;  } 
 
284
                                                        
 
285
                                                        int decimalPlace = 2;
 
286
                                                        BigDecimal bd = new BigDecimal(r);
 
287
                                                        bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
 
288
                                                        r = bd.doubleValue();           
 
289
 
 
290
                                                        PHCdataValues[i] = r;      
 
291
                                                 }
 
292
                                                catch(Exception e) { PHCdataValues[i] = 0.0; }  
 
293
                                                
 
294
                                                PHCsumOfValues[i] +=  PHCdataValues[i];
 
295
                                                
 
296
                                        }       
 
297
                         } // for loop end                      
 
298
 
 
299
                                                        
 
300
         } // try block end
 
301
    catch(Exception e)  { out.println(e.getMessage());  }
 
302
        finally
 
303
                 {
 
304
                        try
 
305
                         {
 
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();
 
311
 
 
312
 
 
313
                                if(con!=null)  con.close();
 
314
                         }
 
315
                        catch(Exception e)   {  out.println(e.getMessage());   }
 
316
                 } // finally block end                                 
 
317
 
 
318
%>
 
319
 
 
320
 
 
321
<html>
 
322
<head>
 
323
        <title>Child Care</title>
 
324
</head>
 
325
<body>
 
326
        <br><br>
 
327
        <font face="arial" size="4"><b>Child Care</b></font>
 
328
        <br><br>
 
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&nbsp;:&nbsp;&nbsp;<%=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 :&nbsp;&nbsp;<%=monthNames[Integer.parseInt(partsOfStartDate[1])]%> - <%=partsOfStartDate[0]%> </b></font></td>   
 
333
                        </tr>
 
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&nbsp;:&nbsp;&nbsp;<%=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 :&nbsp;&nbsp;<%=monthNames[Integer.parseInt(partsOfEndDate[1])]%> - <%=partsOfEndDate[0]%> </b></font></td>   
 
337
                        </tr>
 
338
                </table>
 
339
                                        
 
340
                <br>
 
341
                <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
 
342
                <tr>
 
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>
 
348
                </tr>
 
349
                <tr>
 
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>
 
352
                </tr>
 
353
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
358
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[2]%><br>(<%=maxValue[2]%>)</b></font>&nbsp;</td>
 
359
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[2]%><br>(<%=minValue[2]%>)</b></font>&nbsp;</td>
 
360
                </tr>
 
361
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
366
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[3]%><br>(<%=maxValue[3]%>)</b></font>&nbsp;</td>
 
367
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[3]%><br>(<%=minValue[3]%>)</b></font>&nbsp;</td>
 
368
                </tr>
 
369
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
374
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[4]%><br>(<%=maxValue[4]%>)</b></font>&nbsp;</td>
 
375
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[4]%><br>(<%=minValue[4]%>)</b></font>&nbsp;</td>
 
376
                </tr>
 
377
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
382
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[5]%><br>(<%=maxValue[5]%>)</b></font>&nbsp;</td>
 
383
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[5]%><br>(<%=minValue[5]%>)</b></font>&nbsp;</td>
 
384
                </tr>
 
385
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
390
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[6]%><br>(<%=maxValue[6]%>)</b></font>&nbsp;</td>
 
391
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[6]%><br>(<%=minValue[6]%>)</b></font>&nbsp;</td>
 
392
                </tr>
 
393
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
398
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[7]%><br>(<%=maxValue[7]%>)</b></font>&nbsp;</td>
 
399
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[7]%><br>(<%=minValue[7]%>)</b></font>&nbsp;</td>
 
400
                </tr>
 
401
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
406
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[8]%><br>(<%=maxValue[8]%>)</b></font>&nbsp;</td>
 
407
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[8]%><br>(<%=minValue[8]%>)</b></font>&nbsp;</td>
 
408
                </tr>
 
409
 
 
410
                </table>   
 
411
                
 
412
                
 
413
                <br><br>
 
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%">
 
416
                <tr>
 
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>
 
420
                </tr>
 
421
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
425
                </tr>
 
426
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
430
                </tr>
 
431
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
435
                </tr>
 
436
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
440
                </tr>
 
441
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
445
                </tr>
 
446
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
450
                </tr>
 
451
                <tr>
 
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>&nbsp;</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>&nbsp;</td>
 
455
                </tr>
 
456
 
 
457
                </table>   
 
458
        </body>
 
459
</html>
 
 
b'\\ No newline at end of file'