2
<%@ page import="java.sql.*,java.util.*" %>
3
<%@ page import="com.opensymphony.xwork.util.OgnlValueStack" %>
7
// for Performance in the Reporting Month
11
// for selected OrgUnit Name and Population
15
// for Performance in Corresponding month Last Year
19
// for Cumulative Performance till Current Month
23
// for Cumulative Performance till corresponding month of Last Year
27
// for Taluk Name and Id
31
// for District Name and Id
35
// for PHC Name and Id
39
// for CHC Name and Id
43
// for PHC Population Estimates
47
// for Data Period Start Date and End Date
51
// for DataElement ids based on DataElement code
56
String userName = "dhis";
58
String urlForConnection = "jdbc:mysql://localhost/kl_dhis2";
61
String talukName = "";
63
String districtName = "";
68
int totPHCPopulation = -1;
69
int totSCPopulation = -1;
71
OgnlValueStack stack = (OgnlValueStack)request.getAttribute("webwork.valueStack");
72
String selectedId = (String) stack.findValue( "orgUnitId" );
73
int selectedOrgUnitID = Integer.parseInt( selectedId );
76
String startingDate = (String) stack.findValue( "startingPeriod" );
77
String endingDate = (String) stack.findValue( "endingPeriod" );
79
String monthlyPeriodId = (String) stack.findValue( "monthlyPeriodTypeId" );
80
int periodTypeID = Integer.parseInt( monthlyPeriodId );
85
String selectedOrgUnitName = "";
86
String selectedDataPeriodStartDate = "";
87
String selectedDataPeriodEndDate = "";
88
String lastDataPeriodStartDate = "";
90
String dataElementCodes[] = {
93
// Active Blood Smear Target
95
// Active Blood Smear Monthly
97
// Active Blood Smear Yearly
100
// Passive Blood Smear Monthly
102
// Passive Blood Smear Yearly
115
// Malaria Positive Cases Monthly
117
// Malaria Positive Cases Yearly
120
// TAB 4AQ Issued Monthly
122
// TAB 4AQ Issued Yearly
133
int dataElementIDs[] = new int[dataElementCodes.length+5];
134
int entryNumberValues[]= new int[dataElementCodes.length+5];
135
int entryValuesForLastYear[]= new int[dataElementCodes.length+5];
136
int cumentryValuesForCurYear[]= new int[dataElementCodes.length+5];
137
int cumentryValuesForLastYear[]= new int[dataElementCodes.length+5];
139
String monthNames[] = { "", "January", "February", "March", "April", "May", "June", "July", "August", "September","October", "November", "December" };
143
List childOrgUnitIDs = new ArrayList();
144
List childOrgUnitNames = new ArrayList();
146
int tempval[] = new int[dataElementCodes.length+5];
147
int total[] = new int[dataElementCodes.length+5];
150
int childOrgUnitCount = 0;
160
Class.forName ("com.mysql.jdbc.Driver").newInstance ();
161
con = DriverManager.getConnection (urlForConnection, userName, password);
163
st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
164
st1=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
165
st2=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
166
st3=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
167
st4=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
168
st5=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
169
st6=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
170
st8=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
171
st9=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
172
st10=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
173
st11=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
174
st12=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
177
//rs1 = st1.executeQuery("SELECT organisationunit.name FROM organisationunit WHERE id ="+selectedOrgUnitID);
178
rs1 = st1.executeQuery("SELECT organisationunit.name FROM organisationunit WHERE organisationunitid ="+selectedOrgUnitID);
179
if(rs1.next()) { selectedOrgUnitName = rs1.getString(1); }
180
else { selectedOrgUnitName = ""; }
182
//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 '"+startingDate+"' and periodType = 3) AND datavalue.source in ( select id from organisationunit where parent in ( select id from organisationunit where parent ="+selectedOrgUnitID+")) AND dataelement.code in ('SPD_DE1','SPD_DE2','SPD_DE3','SPD_DE4','SPD_DE5','SPD_DE6','SPD_DE7','SPD_DE8')";
183
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 '"+startingDate+"' and periodtypeid = 3) AND datavalue.sourceid in ( select organisationunitid from organisationunit where parentid in ( select organisationunitid from organisationunit where parentid ="+selectedOrgUnitID+")) AND dataelement.code in ('SPD_DE1','SPD_DE2','SPD_DE3','SPD_DE4','SPD_DE5','SPD_DE6','SPD_DE7','SPD_DE8')";
184
rs11 = st11.executeQuery(query);
187
totpopulation=rs11.getInt(1);
190
selectedDataPeriodStartDate = startingDate;
192
//rs3 = st3.executeQuery("select id,name from organisationunit where parent = "+selectedOrgUnitID);
193
rs3 = st3.executeQuery("select organisationunitid,name from organisationunit where parentid = "+selectedOrgUnitID);
196
Integer tempInt = new Integer(rs3.getInt(1));
197
childOrgUnitIDs.add(childOrgUnitCount,tempInt);
198
childOrgUnitNames.add(childOrgUnitCount,rs3.getString(2));
204
catch(Exception e) { out.println("exception 1 -"+e.getMessage()); }
209
if(rs1!=null) rs1.close(); if(st1!=null) st1.close();
210
if(rs11!=null) rs11.close(); if(st11!=null) st11.close();
212
catch(Exception e) { out.println("exception 2 - "+e.getMessage()); }
213
} // finally block end
215
String partsOfDataPeriodStartDate[] = selectedDataPeriodStartDate.split("-");
216
lastYear = Integer.parseInt(partsOfDataPeriodStartDate[0]) - 1;
217
lastDataPeriodStartDate = lastYear+"-"+partsOfDataPeriodStartDate[1]+"-"+partsOfDataPeriodStartDate[2];
219
int tempForMonth1 = Integer.parseInt(partsOfDataPeriodStartDate[1]);
222
if(tempForMonth1 < 4) { tempForYear = lastYear; }
223
else { tempForYear = lastYear + 1; }
225
String curYearStart = tempForYear+"-04-01";
226
String lastYearStart = (tempForYear-1)+"-04-01";
227
String lastYearEnd = lastYear+"-"+partsOfDataPeriodStartDate[1]+"-"+partsOfDataPeriodStartDate[2];
229
//for district, taluk, CHC names
232
// rs8=st8.executeQuery("select organisationunit.id, organisationunit.name FROM organisationunit WHERE organisationunit.id in ( select organisationunit.parent from organisationunit where organisationunit.id = "+selectedOrgUnitID+")");
233
// if(rs8.next()) { PHCID = rs8.getInt(1);PHCName = rs8.getString(2); }
234
// else { PHCID = 0; PHCName = ""; }
236
// rs9=st9.executeQuery("select organisationunit.id, organisationunit.name FROM organisationunit WHERE organisationunit.id in ( select organisationunit.parent from organisationunit where organisationunit.id = "+selectedOrgUnitID+")");
237
// if(rs9.next()) { CHCID = rs9.getInt(1);CHCName = rs9.getString(2); }
238
// else { CHCID = 0; CHCName = ""; }
240
//rs5=st5.executeQuery("select organisationunit.id, organisationunit.name FROM organisationunit WHERE organisationunit.id in ( select organisationunit.parent from organisationunit where organisationunit.id = "+selectedOrgUnitID +")");
241
rs5=st5.executeQuery("select organisationunit.organisationunitid, organisationunit.name FROM organisationunit WHERE organisationunit.organisationunitid in ( select organisationunit.parentid from organisationunit where organisationunit.organisationunitid = "+selectedOrgUnitID +")");
242
if(rs5.next()) { talukID = rs5.getInt(1); talukName = rs5.getString(2); }
243
else { talukID = 0; talukName = ""; }
245
//rs6=st6.executeQuery("select organisationunit.id, organisationunit.name FROM organisationunit WHERE organisationunit.id in ( select organisationunit.parent from organisationunit where organisationunit.id = "+talukID+")");
246
rs6=st6.executeQuery("select organisationunit.organisationunitid, organisationunit.name FROM organisationunit WHERE organisationunit.organisationunitid in ( select organisationunit.parentid from organisationunit where organisationunit.organisationunitid = "+talukID+")");
247
if(rs6.next()) { districtID = rs6.getInt(1); districtName = rs6.getString(2);}
248
else {districtID = 0; districtName = "";}
250
//rs10=st10.executeQuery("SELECT sum(datavalue.value) FROM organisationunit INNER JOIN (dataelement INNER JOIN datavalue ON dataelement.id = datavalue.dataElement) ON organisationunit.id = datavalue.source WHERE organisationunit.parent = "+PHCID+" AND dataelement.name like 'Total Population'");
251
rs10=st10.executeQuery("SELECT sum(datavalue.value) FROM organisationunit INNER JOIN (dataelement INNER JOIN datavalue ON dataelement.dataelementid = datavalue.dataelementid) ON organisationunit.organisationunitid = datavalue.sourceid WHERE organisationunit.parentid = "+PHCID+" AND dataelement.name like 'Total Population'");
252
if(rs10.next()) { totPHCPopulation = rs10.getInt(1);}
253
else {totPHCPopulation = 0;}
256
catch(Exception e) { out.println(e.getMessage()); }
263
<title>Nvbdcp Activities</title>
268
<FONT face="Arial" size="3"><center>Consolidation Report of NVBDCP Activities of CHC/Block PHC<%=selectedOrgUnitName%> for the month of <%=monthNames[Integer.parseInt(partsOfDataPeriodStartDate[1])]%> - <%=partsOfDataPeriodStartDate[0]%></Font></center><br>
269
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1">
271
<td width="50%"><FONT face="Arial" size="2">Total Population : <%=totpopulation%></font></td>
272
<td width="50%"><FONT face="Arial" size="2">District:<%=districtName%></font></td>
275
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber2">
277
<td align="center" width="3%" rowspan="3"><FONT face="Arial" size="2">Sl.No</font></td>
278
<td align="center" width="41%" rowspan="3"><FONT face="Arial" size="2">Mini PHC </font></td>
279
<td align="center" width="56%" colspan="14"><FONT face="Arial" size="2">NVBDCP</font></td>
282
<td align="center" width="16%" colspan="4"><FONT face="Arial" size="2"> Active Blood Smear</font> </td>
283
<td align="center" width="8%" colspan="2"><FONT face="Arial" size="2"> Passisve Blood Smear</font></td>
284
<td align="center" width="8%" colspan="2"><FONT face="Arial" size="2"> Contact</font></td>
285
<td align="center" width="8%" colspan="2"><FONT face="Arial" size="2"> Mass</font></td>
286
<td align="center" width="8%" colspan="2"><FONT face="Arial" size="2"> Malaria +ve Cases</font></td>
287
<td align="center" width="8%" colspan="2"><FONT face="Arial" size="2"> Tab 4AQ Issued</font></td>
290
<td align="center" width="4%"><FONT face="Arial" size="2">Target</font></td>
291
<td align="center" width="4%"><FONT face="Arial" size="2">Monthly</font></td>
292
<td align="center" width="4%"><FONT face="Arial" size="2">Yearly</font></td>
293
<td align="center" width="4%"><FONT face="Arial" size="2">%</font></td>
294
<td align="center" width="4%"><FONT face="Arial" size="2">Monthly</font></td>
295
<td align="center" width="4%"><FONT face="Arial" size="2">Yearly</font></td>
296
<td align="center" width="4%"><FONT face="Arial" size="2">Monthly</font></td>
297
<td align="center" width="4%"><FONT face="Arial" size="2">Yearly</font></td>
298
<td align="center" width="4%"><FONT face="Arial" size="2">Monthly</font></td>
299
<td align="center" width="4%"><FONT face="Arial" size="2">Yearly</font></td>
300
<td align="center" width="4%"><FONT face="Arial" size="2">Monthly</font></td>
301
<td align="center" width="4%"><FONT face="Arial" size="2">Yearly</font></td>
302
<td align="center" width="4%"><FONT face="Arial" size="2">Monthly</font></td>
303
<td align="center" width="4%"><FONT face="Arial" size="2">Yearly</font></td>
312
while(count < childOrgUnitCount)
314
Integer temp1 = (Integer) childOrgUnitIDs.get(count);
315
int currentChildID = temp1.intValue();
316
for(i=0;i<dataElementCodes.length;i++)
319
if( i==0 || i==1 || i==3 || i==5 || i==7 || i==9 || i==11)
320
//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 '"+startingDate+"') AND datavalue.source in (select id from organisationunit where parent = "+currentChildID+") AND dataelement.code in ("+dataElementCodes[i]+")";
321
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 '"+startingDate+"') AND datavalue.sourceid in (select organisationunitid from organisationunit where parentid = "+currentChildID+") AND dataelement.code in ("+dataElementCodes[i]+")";
323
//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 '"+curYearStart+"' and '"+startingDate+"') AND datavalue.source in (select id from organisationunit where parent = "+currentChildID+") AND dataelement.code in ("+dataElementCodes[i]+")";
324
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 '"+curYearStart+"' and '"+startingDate+"') AND datavalue.sourceid in (select organisationunitid from organisationunit where parentid = "+currentChildID+") AND dataelement.code in ("+dataElementCodes[i]+")";
325
rs4 = st4.executeQuery(query);
327
if(!rs4.next()) { tempval[i] = 0; }
328
else { tempval[i] = rs4.getInt(1); }
329
total[i] += tempval[i];
335
percent1=(tempval[1] / tempval[0]) * 100;
339
catch(Exception e){ percent1=0;
346
<td align="center" width="3%"><FONT face="Arial" size="2"><%=(count+1)%></Font> </td>
347
<td width="41%"><font face="arial" size=2><%=childOrgUnitNames.get(count)%></font> </td>
348
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[0]%></Font> </td>
349
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[1]%></Font> </td>
350
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[2]%></Font> </td>
351
<td align="center" width="4%"><FONT face="Arial" size="2"><%=percent1%></Font> </td>
352
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[4]%></Font> </td>
353
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[5]%></Font> </td>
354
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[6]%></Font> </td>
355
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[7]%></Font> </td>
356
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[8]%></Font> </td>
357
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[9]%></Font> </td>
358
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[10]%></Font> </td>
359
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[11]%></Font> </td>
360
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[12]%></Font> </td>
361
<td align="center" width="4%"><FONT face="Arial" size="2"><%=tempval[13]%></Font> </td>
370
catch(Exception e) { out.println(e.getMessage());
378
if(rs5!=null) rs5.close(); if(st5!=null) st5.close();
379
if(rs6!=null) rs6.close(); if(st6!=null) st6.close();
380
if(rs8!=null) rs8.close(); if(st8!=null) st8.close();
381
if(rs9!=null) rs9.close(); if(st9!=null) st9.close();
382
if(rs10!=null) rs10.close(); if(st10!=null) st10.close();
384
catch(Exception e) { out.println(e.getMessage()); }
385
} // finally block end
b'\\ No newline at end of file'