~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/ganccare-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
        String selectedOrgUnitName = "";
 
49
        String selectedDataPeriodStartDate = "";
 
50
    String selectedDataPeriodEndDate = "";
 
51
        String lastDataPeriodStartDate = "";
 
52
 
 
53
 
 
54
    List childOrgUnitIDs = new ArrayList();     
 
55
        List childOrgUnitNames = new ArrayList();       
 
56
 
 
57
        int childOrgUnitID = 0;
 
58
//      String childOrgUnitName = "";                   
 
59
        int childOrgUnitCount = 0; 
 
60
        
 
61
        double maxValue[] = new double[10];
 
62
        double minValue[] = new double[10];     
 
63
        int i = 0;
 
64
        
 
65
        double const1 = 1.1;
 
66
        
 
67
        String maxOrgUnitName[] = new String[10];       
 
68
        String minOrgUnitName[] = new String[10];
 
69
 
 
70
    
 
71
    String DECodes[] = {
 
72
                                                // Population
 
73
                                                "'SD_DE0007'",
 
74
                                                
 
75
                                                // Pregnant Women Registered
 
76
                                                "'Form6_DE0003'",
 
77
                                                
 
78
                                                // Early Registered ( < 12 weeks)
 
79
                                                "'Form6_DE0012'",
 
80
                                                
 
81
                                                // ANC Received TT2 / Booster
 
82
                                                "'Form6_DE0042'",
 
83
                                                
 
84
                                                // ANC Received full IFA course
 
85
                                                "'Form6_DE0048'",
 
86
 
 
87
                                                // Birth Rate
 
88
                                                "'SD_DE0008'"
 
89
                                                
 
90
                                        };
 
91
 
 
92
        
 
93
        double dataValues[][] = new double[25][DECodes.length];
 
94
        double sumOfValues[] = new double[DECodes.length]; 
 
95
        double PHCdataValues[] = new double[DECodes.length]; 
 
96
        double PHCsumOfValues[] = new double[DECodes.length]; 
 
97
 
 
98
        
 
99
        String monthNames[] = { "", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" };            
 
100
        String partsOfStartDate[] = startingDate.split("-");
 
101
        String partsOfEndDate[] = endingDate.split("-");
 
102
 
 
103
        String query = "";
 
104
        
 
105
        double birthRate = 24.3;
 
106
        int population = 0;
 
107
        
 
108
        String startingYear = "";
 
109
        String endingYear = "";
 
110
        
 
111
        
 
112
     int lastYear = Integer.parseInt(partsOfStartDate[0]) - 1;
 
113
     int tempForMonth1 = Integer.parseInt(partsOfStartDate[1]);
 
114
     int tempForYear = 0;
 
115
     if(tempForMonth1 < 4)
 
116
        {   
 
117
                tempForYear = lastYear;
 
118
                startingYear = ""+tempForYear+"-04-01";
 
119
                        endingYear = ""+(tempForYear+1)+"-03-20";                       
 
120
        }
 
121
     else  
 
122
       {   
 
123
                tempForYear = lastYear + 1;     
 
124
                startingYear = ""+tempForYear+"-04-01";
 
125
                        endingYear = ""+(tempForYear+1)+"-03-20";               
 
126
        }
 
127
 
 
128
        int noOfMonths = ( 12 * ( Integer.parseInt(partsOfEndDate[1]) - Integer.parseInt(partsOfStartDate[1]) ) ) - Integer.parseInt(partsOfStartDate[1]) + Integer.parseInt(partsOfEndDate[1])+1;
 
129
        
 
130
        
 
131
 
 
132
%>
 
133
 
 
134
<%
 
135
                                                                           
 
136
       
 
137
     try
 
138
      {
 
139
        Class.forName ("com.mysql.jdbc.Driver").newInstance ();
 
140
        con = DriverManager.getConnection (urlForConnection, userName, password);
 
141
        
 
142
        st1=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
 
143
        st2=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
 
144
        st3=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
 
145
                st4=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
 
146
                st5=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
 
147
        
 
148
        //rs1 = st1.executeQuery("select shortname from organisationunit where id = "+selectedOrgUnitID);
 
149
        rs1 = st1.executeQuery("select shortname from organisationunit where organisationunitid = "+selectedOrgUnitID);
 
150
        if(rs1.next()) { selectedOrgUnitName = rs1.getString(1); }
 
151
        
 
152
            //rs2 =  st2.executeQuery("select id,shortname from organisationunit where parent = "+selectedOrgUnitID);
 
153
            rs2 =  st2.executeQuery("select organisationunitid,shortname from organisationunit where parentid = "+selectedOrgUnitID);
 
154
            while(rs2.next())
 
155
                 {
 
156
                        Integer tempInt = new Integer(rs2.getInt(1));
 
157
                        childOrgUnitIDs.add(childOrgUnitCount,tempInt);                 
 
158
                        childOrgUnitNames.add(childOrgUnitCount,rs2.getString(2));
 
159
                        
 
160
                        childOrgUnitCount++;
 
161
                 } // while loop end                            
 
162
                        
 
163
                //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[5]+")");
 
164
                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[5]+")");
 
165
                if(rs5.next()) { birthRate = rs5.getInt(1); }
 
166
                if(birthRate==0) birthRate=24.3;
 
167
 
 
168
                int count = 0;
 
169
                while(count < childOrgUnitCount)
 
170
                 {      
 
171
                        Integer temp1 = (Integer) childOrgUnitIDs.get(count);
 
172
                        int currentChildID = temp1.intValue();                  
 
173
                                                                        
 
174
                        for(i=0;i<DECodes.length;i++)
 
175
                         {
 
176
                           //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]+")";
 
177
                           //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]+")"; 
 
178
                           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]+")";
 
179
                           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]+")";
 
180
 
 
181
                           rs3 = st3.executeQuery(query);
 
182
                           
 
183
                           if(rs3.next())  
 
184
                                {
 
185
                                                try
 
186
                                                 {
 
187
                                                        if(i==0) 
 
188
                                                           { 
 
189
                                                                        double r = ((rs3.getInt(1)  * birthRate)/1000 ) * 1.1;  
 
190
                                                                                r = (r / 12) * noOfMonths;
 
191
                                                                                int decimalPlace = 3;
 
192
                                                                                BigDecimal bd = new BigDecimal(r);
 
193
                                                                                bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
 
194
                                                                                r = bd.doubleValue();           
 
195
                                                                        
 
196
                                                                        dataValues[count][i] = r;
 
197
                                                                                                                                                                              
 
198
                                                            }  
 
199
                                                        else 
 
200
                                                          {
 
201
                                                                        double r = ( rs3.getInt(1) / dataValues[count][0]) * 100;       
 
202
                                                                                int decimalPlace = 2;
 
203
                                                                                BigDecimal bd = new BigDecimal(r);
 
204
                                                                                bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
 
205
                                                                                r = bd.doubleValue();           
 
206
                                                                                                                    
 
207
                                                                        dataValues[count][i] = r;
 
208
        
 
209
                                                           } 
 
210
                                                 }
 
211
                                                catch(Exception e) { dataValues[count][i] = 0.0; }      
 
212
                                                
 
213
                                        //      sumOfValues[i] +=  dataValues[count][i];                                                
 
214
                                        }       
 
215
                                        
 
216
                         } // for loop end                      
 
217
                                         
 
218
                        count++;                                                        
 
219
                 } // while loop end
 
220
 
 
221
 
 
222
 
 
223
                count = 1;
 
224
                int flag1 = 0;
 
225
                int flag2 = 0;
 
226
                
 
227
                while(count < DECodes.length)
 
228
                 {      
 
229
                
 
230
                        minValue[count] = dataValues[0][count];
 
231
                        maxValue[count] = dataValues[0][count]; 
 
232
                        
 
233
                        minOrgUnitName[count] = "";
 
234
                        maxOrgUnitName[count] = "";
 
235
                                                                        
 
236
                        for(i=0;i<childOrgUnitCount;i++)
 
237
                         {
 
238
                         
 
239
                                String  childOrgUnitName = (String) childOrgUnitNames.get(i);
 
240
                                                                                                
 
241
                                if( dataValues[i][count] > maxValue[count] ) { maxValue[count] = dataValues[i][count]; maxOrgUnitName[count] = childOrgUnitName; }
 
242
                                else if( dataValues[i][count] == maxValue[count] ) 
 
243
                                        { maxValue[count] = dataValues[i][count]; 
 
244
                                          if (flag1==0) { maxOrgUnitName[count] = childOrgUnitName;flag1=1;} 
 
245
                                          else { maxOrgUnitName[count] += "<br>"+ childOrgUnitName; }
 
246
                                        }  
 
247
                          
 
248
 
 
249
                                if( dataValues[i][count] < minValue[count] ) { minValue[count] = dataValues[i][count]; minOrgUnitName[count] = childOrgUnitName;}
 
250
                                else if( dataValues[i][count] == minValue[count])  
 
251
                                        { minValue[count] = dataValues[i][count]; 
 
252
                                          if (flag2==0) { minOrgUnitName[count] = childOrgUnitName;flag2=1;}
 
253
                                          else { minOrgUnitName[count] += "<br>"+ childOrgUnitName;}
 
254
                                                }
 
255
 
 
256
                                                                
 
257
                         } // for loop end                      
 
258
                        count++;                                                        
 
259
                 } // while loop end
 
260
 
 
261
 
 
262
                for(i=0;i<DECodes.length;i++)
 
263
                         {
 
264
                                //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]+")";
 
265
                                //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]+")";   
 
266
 
 
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
                                
 
270
                                rs4 = st4.executeQuery(query);
 
271
                           
 
272
                           if(rs4.next())  
 
273
                                {
 
274
                                                try
 
275
                                                 {
 
276
                                                        if(i==0) 
 
277
                                                           {                                                                  
 
278
                                                                population = rs4.getInt(1);
 
279
                                                                double r = ((population   * birthRate)/1000 ) * 1.1;    
 
280
                                                                        r = (r / 12) * noOfMonths;
 
281
                                                                        int decimalPlace = 3;
 
282
                                                                        BigDecimal bd = new BigDecimal(r);
 
283
                                                                        bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
 
284
                                                                        r = bd.doubleValue();           
 
285
 
 
286
                                                                PHCdataValues[i] = r;                                                                                                                                                                                 
 
287
                                                            }  
 
288
                                                        else 
 
289
                                                          {
 
290
                                                                double r = ( rs4.getInt(1) / PHCdataValues[0]) * 100;   
 
291
                                                                        int decimalPlace = 2;
 
292
                                                                        BigDecimal bd = new BigDecimal(r);
 
293
                                                                        bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
 
294
                                                                        r = bd.doubleValue();           
 
295
 
 
296
                                                                PHCdataValues[i] = r;   
 
297
                                                           } 
 
298
                                                 }
 
299
                                                catch(Exception e) { PHCdataValues[i] = 0.0; }  
 
300
                                                
 
301
                                                PHCsumOfValues[i] +=  PHCdataValues[i];
 
302
                                                
 
303
                                        }       
 
304
                         } // for loop end                      
 
305
 
 
306
                                                        
 
307
         } // try block end
 
308
    catch(Exception e)  { out.println(e.getMessage());  }
 
309
        finally
 
310
                 {
 
311
                        try
 
312
                         {
 
313
                                if(rs1!=null)  rs1.close();             if(st1!=null)  st1.close();
 
314
                                if(rs2!=null)  rs2.close();             if(st2!=null)  st2.close();
 
315
                                if(rs3!=null)  rs3.close();             if(st3!=null)  st3.close();
 
316
                                if(rs4!=null)  rs4.close();             if(st4!=null)  st4.close();
 
317
                                if(rs5!=null)  rs5.close();             if(st5!=null)  st5.close();
 
318
 
 
319
                                if(con!=null)  con.close();
 
320
                         }
 
321
                        catch(Exception e)   {  out.println(e.getMessage());   }
 
322
                 } // finally block end                                 
 
323
 
 
324
%>
 
325
 
 
326
 
 
327
<html>
 
328
<head>
 
329
        <title>ANC Care</title>
 
330
        <script>
 
331
        </script>
 
332
</head>
 
333
<body >
 
334
        <br><br>
 
335
        <font face="arial" size="4"><b>ANC Care</b></font>
 
336
        <br><br>
 
337
         <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">
 
338
                        <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%">
 
339
                                <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>
 
340
                                <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>   
 
341
                        </tr>
 
342
                                <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%">
 
343
                                <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>
 
344
                                <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>   
 
345
                        </tr>
 
346
                </table>
 
347
                                        
 
348
                <br>
 
349
                <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
 
350
                <tr>
 
351
                        <td width="14%" rowspan="2" align="center" height="50"><font face="arial" size="2"><b>Indicators</b></font></td>
 
352
                        <td width="10%" rowspan="2" align="center"><font face="arial" size="2"><b>Expected</b></font></td>
 
353
                        <td width="10%" rowspan="2" align="center"><font face="arial" size="2"><b>Workload Estimated (as % of Expected)</b></font></td>
 
354
                        <td width="10%" rowspan="2" align="center"><font face="arial" size="2"><b>% Workload Achieved</b></font></td>
 
355
                        <td width="56%" colspan="2" align="center"><font face="arial" size="2"><b>Sub-Centre Performance Range</b></font></td>
 
356
                </tr>
 
357
                <tr>
 
358
                        <td width="28%" align="center"><font face="arial" size="2"><b>Maximum</b></font></td>
 
359
                        <td width="28%" align="center"><font face="arial" size="2"><b>Minimum</b></font></td>
 
360
                </tr>
 
361
                <tr>
 
362
                        <td width="14%" height="50"><font face="arial" size="2"><b>Pregnant Women Registered</b></font></td>
 
363
                        <td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[0]%></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[1]%></b></font>&nbsp;</td>
 
366
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[1]%><br>(<%=maxValue[1]%>)</b></font>&nbsp;</td>
 
367
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[1]%><br>(<%=minValue[1]%>)</b></font>&nbsp;</td>
 
368
                </tr>
 
369
                <tr>
 
370
                        <td width="14%" height="50"><font face="arial" size="2"><b>Early Registered (&lt; 12 weeks)</b></font></td>
 
371
                        <td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[0]%></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[2]%></b></font>&nbsp;</td>
 
374
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[2]%><br>(<%=maxValue[2]%>)</b></font>&nbsp;</td>
 
375
                        <td width="28%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[2]%><br>(<%=minValue[2]%>)</b></font>&nbsp;</td>
 
376
                </tr>
 
377
                <tr>
 
378
                        <td width="20%" height="50"><font face="arial" size="2"><b>ANC received TT2/Booster</b></font></td>
 
379
                        <td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[0]%></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[3]%></b></font>&nbsp;</td>
 
382
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[3]%><br>(<%=maxValue[3]%>)</b></font>&nbsp;</td>
 
383
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[3]%><br>(<%=minValue[3]%>)</b></font>&nbsp;</td>
 
384
                </tr>
 
385
                <tr>
 
386
                        <td width="20%" height="50"><font face="arial" size="2"><b>ANC received full IFA course</b></font></td>
 
387
                        <td width="10%" align="center"><font face="arial" size="2"><b><%=PHCdataValues[0]%></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[4]%></b></font>&nbsp;</td>
 
390
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=maxOrgUnitName[4]%><br>(<%=maxValue[4]%>)</b></font>&nbsp;</td>
 
391
                        <td width="25%" align="center"><font face="arial" size="2"><b><%=minOrgUnitName[4]%><br>(<%=minValue[4]%>)</b></font>&nbsp;</td>
 
392
                </tr>
 
393
                </table>   
 
394
                
 
395
                
 
396
                <br><br>
 
397
                <font face="arial" size="4"><b>Formulae</b></font>
 
398
                <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%">
 
399
                <tr>
 
400
                        <td width="20%" align="center" height="50"><font face="arial" size="2"><b>Indicators</b></font></td>
 
401
                        <td width="30%" align="center"><font face="arial" size="2"><b>Expected (In Thousands)</b></font></td>
 
402
                        <td width="50%" align="center"><font face="arial" size="2"><b>% Workload Achieved</b></font></td>
 
403
                </tr>
 
404
                <tr>
 
405
                        <td width="20%" height="50"><font face="arial" size="2"><b>Pregnant Women Registered</b></font></td>
 
406
                        <td width="30%" align="center"><font face="arial" size="2"><b> ( (Population * Birth Rate) / 1000 ) * 1.1 </b></font>&nbsp;</td>
 
407
                        <td width="50%" align="center"><font face="arial" size="2"><b>(Pregnant Women Total / Expected) * 100.0</b></font>&nbsp;</td>
 
408
                </tr>
 
409
                <tr>
 
410
                        <td width="20%"  height="50"><font face="arial" size="2"><b>Early Registered (&lt; 12 weeks)</b></font></td>
 
411
                        <td width="30%" align="center"><font face="arial" size="2"><b> ( (Population * Birth Rate) / 1000 ) * 1.1</b></font>&nbsp;</td>
 
412
                        <td width="50%" align="center"><font face="arial" size="2"><b>(Ante-Natal mothers registered within 1st trimester (within 12 weeks) / Expected) * 100.0</b></font>&nbsp;</td>
 
413
                </tr>
 
414
                <tr>
 
415
                        <td width="20%"  height="50"><font face="arial" size="2"><b>ANC received TT2/Booster</b></font></td>
 
416
                        <td width="30%" align="center"><font face="arial" size="2"><b>  ( (Population * Birth Rate) / 1000 ) * 1.1</b></font>&nbsp;</td>
 
417
                        <td width="50%" align="center"><font face="arial" size="2"><b>(Pregnant women given Tetanus Toxide(TT) 2nd dose Total / Expected) * 100.0</b></font>&nbsp;</td>
 
418
                </tr>
 
419
                <tr>
 
420
                        <td width="20%"  height="50"><font face="arial" size="2"><b>ANC received full IFA course</b></font></td>
 
421
                        <td width="30%" align="center"><font face="arial" size="2"><b>  ( (Population * Birth Rate) / 1000 ) * 1.1 </b></font>&nbsp;</td>
 
422
                        <td width="50%" align="center"><font face="arial" size="2"><b>(Pregnant women given 100 Iron Folic Acid (IFA) tablets Total / Expected) * 100.0</b></font>&nbsp;</td>
 
423
                </tr>
 
424
                </table>   
 
425
        </body>
 
426
</html>
 
 
b'\\ No newline at end of file'