public void generatePdf() { java.lang.Process wait_for_Pdf2Show; java.util.Calendar cal = java.util.Calendar.getInstance(); java.util.Date dateStampPdf = cal.getTime(); java.lang.String pdfDateStamp = dateStampPdf.toString(); try { java.io.File tempFile = java.io.File.createTempFile("REP" + this.getDateLable() + "_", ".pdf"); tempFile.deleteOnExit(); java.lang.Runtime rt = java.lang.Runtime.getRuntime(); java.lang.String debitTotal = null; java.lang.String creditTotal = null; com.lowagie.text.Document docPdf = new com.lowagie.text.Document(PageSize.A2.rotate()); try { try { Image img = Image.getInstance(com.afrisoftech.lib.CompanyLogo.getPath2Logo()); // Image imgWaterMark = Image.getInstance(System.getProperty("company.watermark")); com.lowagie.text.pdf.PdfWriter.getInstance( docPdf, new java.io.FileOutputStream(tempFile)); String compName = null; String District = null; String Region = null; String date = null; try { java.sql.Statement st3 = connectDB.createStatement(); java.sql.Statement st4 = connectDB.createStatement(); java.sql.ResultSet rset2 = st3.executeQuery("SELECT hospital_name,district_branch from pb_hospitalprofile"); java.sql.ResultSet rset4 = st4.executeQuery("SELECT date('now') as Date"); while (rset2.next()) { compName = rset2.getObject(1).toString(); District = rset2.getObject(2).toString(); } while (rset4.next()) { date = rset4.getObject(1).toString(); } com.lowagie.text.HeaderFooter headerFoter = new com.lowagie.text.HeaderFooter( new Phrase("MINISTRY OF HEALTH : " + compName.toUpperCase()), false); // FontFactory.getFont(com.lowagie.text.FontFactory.HELVETICA, 14, // Font.BOLDITALIC,java.awt.Color.blue))); headerFoter.setAlignment(com.lowagie.text.HeaderFooter.ALIGN_CENTER); headerFoter.setRight(5); docPdf.setHeader(headerFoter); } catch (java.sql.SQLException SqlExec) { SqlExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), SqlExec.getMessage()); } com.lowagie.text.HeaderFooter footer = new com.lowagie.text.HeaderFooter( new Phrase("MOH - 204B : OP Over 5 Yrs Register : Page: "), true); // FontFactory.getFont(com.lowagie.text.FontFactory.HELVETICA, 12, // Font.BOLDITALIC,java.awt.Color.blue)); docPdf.setFooter(footer); docPdf.open(); try { com.lowagie.text.pdf.PdfPTable table = new com.lowagie.text.pdf.PdfPTable(21); int headerwidths[] = { 5, 10, 10, 10, 25, 10, 12, 20, 12, 12, 12, 12, 12, 12, 12, 25, 25, 12, 12, 12, 25 }; table.setWidths(headerwidths); table.setWidthPercentage((100)); table.setHeaderRows(4); Phrase phrase = new Phrase("", pFontHeader); try { java.text.DateFormat dateFormat = java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM); // MEDIUM); java.util.Date endDate1 = dateFormat.parse(endDate.toLocaleString()); // dateInstance.toLocaleString()); java.util.Date endDate11 = dateFormat.parse(beginDate.toLocaleString()); // dateInstance.toLocaleString()); com.afrisoftech.lib.DateFormatter dateFormatter = new com.afrisoftech.lib.DateFormatter( dateFormat.parse(endDate.toLocaleString()), "MMMM"); java.lang.String monthString = dateFormatter.getDateString(); com.afrisoftech.lib.DateFormatter dateFormatters = new com.afrisoftech.lib.DateFormatter( dateFormat.parse(endDate.toLocaleString()), "yyyy"); java.lang.String yearString = dateFormatters.getDateString(); table.getDefaultCell().setBorderColor(java.awt.Color.WHITE); table.getDefaultCell().setColspan(21); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_CENTER); table.getDefaultCell().setFixedHeight(50); table.addCell(Image.getInstance(com.afrisoftech.lib.CompanyLogo.getPath2Logo())); table.getDefaultCell().setFixedHeight(-1); // table.getDefaultCell().setNoWrap(false); phrase = new Phrase("MOH 204B_Over 5 Yrs Register", pFontHeader2); table.addCell(phrase); table.getDefaultCell().setColspan(5); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); phrase = new Phrase("OP OVER 5 YEARS REGISTER", pFontHeader22); table.addCell(phrase); table.getDefaultCell().setColspan(10); phrase = new Phrase("HEALTH FACILITY : " + compName, pFontHeader22); table.addCell(phrase); table.getDefaultCell().setColspan(3); phrase = new Phrase("MONTH : " + monthString.toUpperCase(), pFontHeader22); table.addCell(phrase); table.getDefaultCell().setColspan(3); phrase = new Phrase("YEAR : " + yearString.toUpperCase(), pFontHeader22); table.addCell(phrase); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_CENTER); table.getDefaultCell().setColspan(1); table.getDefaultCell().setBorderColor(java.awt.Color.BLACK); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); table.getDefaultCell().setColspan(1); phrase = new Phrase("#", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Date", pFontHeader11); table.addCell(phrase); phrase = new Phrase("OPD No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Revisit", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Full Names", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Age YRS", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Sex", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Village", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Phone. No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Weight", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Height", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Visual Activity RE(Right Eye), LE(LEFT EYE)", pFontHeader11); table.addCell(phrase); phrase = new Phrase("HIV: 1=Cancelled, 2=Tested", pFontHeader11); table.addCell(phrase); phrase = new Phrase( "HIV Status: 1=Known Positive, 2=Positive this visit, 3=Negative, 4=Uknown", pFontHeader11); table.addCell(phrase); phrase = new Phrase( "Nutrition Status: 1=Nutrition Education, 2=Nutrition Suppliments", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Diagnosis/Classification", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Treatment/Prescription No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Amount Charged", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Receipt No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase( "1 = From Other HF, 2 = To Other HF, 3 = From CU, 4 = To CU", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Remarks", pFontHeader11); table.addCell(phrase); // Second header row phrase = new Phrase("", pFontHeader11); table.addCell(phrase); phrase = new Phrase("A", pFontHeader11); table.addCell(phrase); phrase = new Phrase("B", pFontHeader11); table.addCell(phrase); phrase = new Phrase("C", pFontHeader11); table.addCell(phrase); phrase = new Phrase("D", pFontHeader11); table.addCell(phrase); phrase = new Phrase("E", pFontHeader11); table.addCell(phrase); phrase = new Phrase("F", pFontHeader11); table.addCell(phrase); phrase = new Phrase("G", pFontHeader11); table.addCell(phrase); phrase = new Phrase("H", pFontHeader11); table.addCell(phrase); phrase = new Phrase("I", pFontHeader11); table.addCell(phrase); phrase = new Phrase("J", pFontHeader11); table.addCell(phrase); phrase = new Phrase("K", pFontHeader11); table.addCell(phrase); phrase = new Phrase("L", pFontHeader11); table.addCell(phrase); phrase = new Phrase("M", pFontHeader11); table.addCell(phrase); phrase = new Phrase("N", pFontHeader11); table.addCell(phrase); phrase = new Phrase("O", pFontHeader11); table.addCell(phrase); phrase = new Phrase("P", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Q", pFontHeader11); table.addCell(phrase); phrase = new Phrase("R", pFontHeader11); table.addCell(phrase); phrase = new Phrase("S", pFontHeader11); table.addCell(phrase); phrase = new Phrase("T", pFontHeader11); table.addCell(phrase); } catch (java.text.ParseException psExec) { psExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), psExec.getMessage()); } table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT); table.getDefaultCell().setBackgroundColor(java.awt.Color.WHITE); try { int noSeq = 0; java.lang.Object[] listofAct = this.getListofStaffNos(); System.out.println("The array has been called..."); for (int i = 0; i < listofAct.length; i++) { java.sql.PreparedStatement stw = connectDB.prepareStatement( "SELECT DISTINCT " + " date_part('day', date) ||'-'||date_part('month', date) ||'-'||date_part('year', date), patient_no," + " (CASE WHEN comments = 'Old' THEN 'YES' ELSE 'NO' END) as revisit, " + " initcap(name), age::int, (SELECT initcap(gender) FROM hp_patient_register WHERE hp_patient_register.patient_no = hp_patient_visit.patient_no ORDER BY 1 DESC LIMIT 1) as gender, " + " (SELECT initcap(residence) FROM hp_inpatient_register" + " WHERE hp_patient_visit.patient_no = hp_inpatient_register.patient_no" + " UNION SELECT initcap(residence) FROM hp_patient_register WHERE " + " hp_patient_visit.patient_no = hp_patient_register.patient_no ORDER BY 1 " + " DESC LIMIT 1) as village, (SELECT tel_no FROM hp_patient_register WHERE hp_patient_register.patient_no = hp_patient_visit.patient_no " + " ORDER BY 1 DESC LIMIT 1) as telephone, (SELECT weight::numeric(5,1) FROM hp_signs_record WHERE hp_signs_record.patient_no = hp_patient_visit.patient_no AND hp_signs_record.date = hp_patient_visit.date ORDER BY 1 DESC LIMIT 1) as weight," + " (SELECT height::numeric(5,1) FROM hp_signs_record WHERE hp_signs_record.patient_no = hp_patient_visit.patient_no AND hp_signs_record.date = hp_patient_visit.date ORDER BY 1 DESC LIMIT 1) as height, " + " ''," // to add eye conditions for over 5 years + " (SELECT (CASE WHEN hiv_counselled = true THEN '1' ELSE '' END) || ' '||" + "(CASE WHEN hiv_tested = true THEN '2' ELSE '' END) FROM key_health_indicators" + " WHERE key_health_indicators.patient_no = hp_patient_visit.patient_no) as hiv_tested," + " (SELECT (CASE WHEN hiv_status ilike '%positive%' THEN '1' ELSE '' END) || ' '||" + "(CASE WHEN hiv_status ilike '%visit' THEN '2' ELSE '' END)||' '||" + "(CASE WHEN hiv_status ilike 'negative' THEN '3' ELSE '' END)||' '||" + "(CASE WHEN hiv_status ilike 'unknown' THEN '4' ELSE '' END) FROM key_health_indicators" + " WHERE key_health_indicators.patient_no = hp_patient_visit.patient_no) as hiv_status," + " (SELECT (CASE WHEN nutrition_status ilike '%education%' THEN '1' ELSE '' END)||' '||" + "(CASE WHEN nutrition_status ILIKE '%suppliments%' THEN '2' ELSE '' END) " + "FROM key_health_indicators WHERE key_health_indicators.patient_no = hp_patient_visit.patient_no)" + " as nutrition_status, " + " (SELECT disease FROM hp_patient_diagnosis WHERE hp_patient_diagnosis.patient_no = hp_patient_visit.patient_no AND" + " hp_patient_diagnosis.date_recorded::date = hp_patient_visit.date::date AND disease is not null ORDER BY 1 DESC LIMIT 1) as diagnosis, " + " (SELECT replace(treatment, 'null', '') FROM hp_clinical_results WHERE hp_clinical_results.patient_no =" + " hp_patient_visit.patient_no AND hp_clinical_results.date = hp_patient_visit.date " + "ORDER BY 1 DESC LIMIT 1) as treatment, " + " (SELECT sum(credit-debit) FROM ac_ledger WHERE ac_ledger.patient_no = " + "hp_patient_visit.patient_no AND ac_ledger.date = hp_patient_visit.date) " + "as amount, '', " + " (SELECT refer_source FROM hp_patient_register WHERE hp_patient_register.patient_no" + " = hp_patient_visit.patient_no AND hp_patient_register.date = hp_patient_visit.date" + " ORDER BY 1 DESC LIMIT 1) as referral," + " (SELECT comments FROM hp_clinical_results WHERE hp_clinical_results.patient_no " + "= hp_patient_visit.patient_no AND hp_clinical_results.date = hp_patient_visit.date" + " ORDER BY 1 DESC LIMIT 1 )as comments FROM hp_patient_visit WHERE " + " date::date BETWEEN '" + beginDate + "' AND '" + endDate + "' " + " AND patient_no = ?"); stw.setObject(1, listofAct[i]); java.sql.ResultSet rsetw = stw.executeQuery(); while (rsetw.next()) { table.getDefaultCell().setColspan(1); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); table.getDefaultCell().setColspan(1); noSeq = noSeq + 1; // Index phrase = new Phrase(java.lang.String.valueOf(noSeq), pFontHeader1); table.addCell(phrase); // Lab procedure date phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(1), ""), pFontHeader1); table.addCell(phrase); // Patient Number phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(2), ""), pFontHeader1); table.addCell(phrase); // Lab Number phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(3), ""), pFontHeader1); table.addCell(phrase); // Revisit No phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(4), ""), pFontHeader1); table.addCell(phrase); // Patient names phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(5), ""), pFontHeader1); table.addCell(phrase); // Age phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(6), ""), pFontHeader1); table.addCell(phrase); // Gender phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(7), ""), pFontHeader1); table.addCell(phrase); // Village phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(8), ""), pFontHeader1); table.addCell(phrase); // Telephone number phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(9), ""), pFontHeader1); table.addCell(phrase); // Clinical diagnosis phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(10), ""), pFontHeader1); table.addCell(phrase); // Prior treatment phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(11), ""), pFontHeader1); table.addCell(phrase); // Type of specimen phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(12), ""), pFontHeader1); table.addCell(phrase); // Condition of specimen phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(13), ""), pFontHeader1); table.addCell(phrase); // Investigation required phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(14), ""), pFontHeader1); table.addCell(phrase); // Date sample taken phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(15), ""), pFontHeader1); table.addCell(phrase); // Date sample received phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(16), ""), pFontHeader1); table.addCell(phrase); // Amount Paid by client table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT); phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(17), ""), pFontHeader1); table.addCell(phrase); // Date sample analysed table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(18), ""), pFontHeader1); table.addCell(phrase); // Results phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(19), ""), pFontHeader1); table.addCell(phrase); // Date result dispatched phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(20), ""), pFontHeader1); table.addCell(phrase); } } docPdf.add(table); } catch (java.sql.SQLException SqlExec) { SqlExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), SqlExec.getMessage()); } } catch (com.lowagie.text.BadElementException BadElExec) { javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), BadElExec.getMessage()); } } catch (java.io.FileNotFoundException fnfExec) { javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), fnfExec.getMessage()); } } catch (com.lowagie.text.DocumentException lwDocexec) { javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), lwDocexec.getMessage()); } docPdf.close(); com.afrisoftech.lib.PDFRenderer.renderPDF(tempFile); } catch (java.io.IOException IOexec) { IOexec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), IOexec.getMessage()); } }
public java.lang.String getDateLable() { java.lang.String date_label = null; java.lang.String month_now_strs = null; java.lang.String date_now_strs = null; java.lang.String year_now_strs = null; java.lang.String minute_now_strs = null; java.lang.String hour_now_strs = null; java.lang.Runtime rt = java.lang.Runtime.getRuntime(); java.util.Calendar calinst = java.util.Calendar.getInstance(); java.util.Date date_now = calinst.getTime(); int date_now_str = date_now.getDate(); int month_now_str = date_now.getMonth(); int year_now_str = date_now.getYear(); int hour_now_str = date_now.getHours(); int minute_now_str = date_now.getMinutes(); int year_now_abs = year_now_str - 100; if (year_now_abs < 10) { year_now_strs = "200" + year_now_abs; } else { year_now_strs = "20" + year_now_abs; } switch (month_now_str) { case 0: month_now_strs = "JAN"; break; case 1: month_now_strs = "FEB"; break; case 2: month_now_strs = "MAR"; break; case 3: month_now_strs = "APR"; break; case 4: month_now_strs = "MAY"; break; case 5: month_now_strs = "JUN"; break; case 6: month_now_strs = "JUL"; break; case 7: month_now_strs = "AUG"; break; case 8: month_now_strs = "SEP"; break; case 9: month_now_strs = "OCT"; break; case 10: month_now_strs = "NOV"; break; case 11: month_now_strs = "DEC"; break; default: if (month_now_str < 10) { month_now_strs = "0" + month_now_str; } else { month_now_strs = "" + month_now_str; } } if (date_now_str < 10) { date_now_strs = "0" + date_now_str; } else { date_now_strs = "" + date_now_str; } if (minute_now_str < 10) { minute_now_strs = "0" + minute_now_str; } else { minute_now_strs = "" + minute_now_str; } if (hour_now_str < 10) { hour_now_strs = "0" + hour_now_str; } else { hour_now_strs = "" + hour_now_str; } date_label = date_now_strs + month_now_strs + year_now_strs + "@" + hour_now_strs + minute_now_strs; return date_label; }
public class MOH204BOPOver5RegisterPdf implements java.lang.Runnable { java.util.Date beginDate = null; //// java.awt.Desktop deskTop = Desktop.getDesktop(); java.util.Date endDate = null; int numberSeq = 0; java.lang.String Categ = null; java.lang.String ReportType = null; com.afrisoftech.lib.DBObject dbObject; public static java.sql.Connection connectDB = null; public java.lang.String dbUserName = null; org.netbeans.lib.sql.pool.PooledConnectionSource pConnDB = null; boolean threadCheck = true; String Gender = null; java.lang.Thread threadSample; com.lowagie.text.Font pFontHeader = FontFactory.getFont(FontFactory.HELVETICA, 9, Font.BOLD); com.lowagie.text.Font pFontHeader1 = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.NORMAL); com.lowagie.text.Font pFontHeader11 = FontFactory.getFont(FontFactory.HELVETICA, 8, Font.BOLD); com.lowagie.text.Font pFontHeader2 = FontFactory.getFont(FontFactory.HELVETICA, 14, Font.BOLD); com.lowagie.text.Font pFontHeader22 = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.BOLD); // com.lowagie.text.ParagraphFont pgraph = Paragraph(); java.lang.Runtime rtThreadSample = java.lang.Runtime.getRuntime(); java.lang.Process prThread; public void MOH204BOPOver5RegisterPdf( java.sql.Connection connDb, java.util.Date startDate, java.util.Date lastDate) { dbObject = new com.afrisoftech.lib.DBObject(); connectDB = connDb; beginDate = startDate; endDate = lastDate; threadSample = new java.lang.Thread(this, "SampleThread"); System.out.println("threadSample created"); threadSample.start(); System.out.println("threadSample fired"); } public static void main(java.lang.String[] args) { // new MemberListPdf().MemberListPdf(); } public void run() { System.out.println("System has entered running mode"); while (threadCheck) { System.out.println("O.K. see how we execute target program"); this.generatePdf(); try { System.out.println("Right, let's wait for task to complete of fail"); java.lang.Thread.currentThread().sleep(200); System.out.println("It's time for us threads to get back to work after the nap"); } catch (java.lang.InterruptedException IntExec) { System.out.println(IntExec.getMessage()); } threadCheck = false; System.out.println("We shall be lucky to get back to start in one piece"); } if (!threadCheck) { Thread.currentThread().stop(); } } public java.lang.String getDateLable() { java.lang.String date_label = null; java.lang.String month_now_strs = null; java.lang.String date_now_strs = null; java.lang.String year_now_strs = null; java.lang.String minute_now_strs = null; java.lang.String hour_now_strs = null; java.lang.Runtime rt = java.lang.Runtime.getRuntime(); java.util.Calendar calinst = java.util.Calendar.getInstance(); java.util.Date date_now = calinst.getTime(); int date_now_str = date_now.getDate(); int month_now_str = date_now.getMonth(); int year_now_str = date_now.getYear(); int hour_now_str = date_now.getHours(); int minute_now_str = date_now.getMinutes(); int year_now_abs = year_now_str - 100; if (year_now_abs < 10) { year_now_strs = "200" + year_now_abs; } else { year_now_strs = "20" + year_now_abs; } switch (month_now_str) { case 0: month_now_strs = "JAN"; break; case 1: month_now_strs = "FEB"; break; case 2: month_now_strs = "MAR"; break; case 3: month_now_strs = "APR"; break; case 4: month_now_strs = "MAY"; break; case 5: month_now_strs = "JUN"; break; case 6: month_now_strs = "JUL"; break; case 7: month_now_strs = "AUG"; break; case 8: month_now_strs = "SEP"; break; case 9: month_now_strs = "OCT"; break; case 10: month_now_strs = "NOV"; break; case 11: month_now_strs = "DEC"; break; default: if (month_now_str < 10) { month_now_strs = "0" + month_now_str; } else { month_now_strs = "" + month_now_str; } } if (date_now_str < 10) { date_now_strs = "0" + date_now_str; } else { date_now_strs = "" + date_now_str; } if (minute_now_str < 10) { minute_now_strs = "0" + minute_now_str; } else { minute_now_strs = "" + minute_now_str; } if (hour_now_str < 10) { hour_now_strs = "0" + hour_now_str; } else { hour_now_strs = "" + hour_now_str; } date_label = date_now_strs + month_now_strs + year_now_strs + "@" + hour_now_strs + minute_now_strs; return date_label; } public void generatePdf() { java.lang.Process wait_for_Pdf2Show; java.util.Calendar cal = java.util.Calendar.getInstance(); java.util.Date dateStampPdf = cal.getTime(); java.lang.String pdfDateStamp = dateStampPdf.toString(); try { java.io.File tempFile = java.io.File.createTempFile("REP" + this.getDateLable() + "_", ".pdf"); tempFile.deleteOnExit(); java.lang.Runtime rt = java.lang.Runtime.getRuntime(); java.lang.String debitTotal = null; java.lang.String creditTotal = null; com.lowagie.text.Document docPdf = new com.lowagie.text.Document(PageSize.A2.rotate()); try { try { Image img = Image.getInstance(com.afrisoftech.lib.CompanyLogo.getPath2Logo()); // Image imgWaterMark = Image.getInstance(System.getProperty("company.watermark")); com.lowagie.text.pdf.PdfWriter.getInstance( docPdf, new java.io.FileOutputStream(tempFile)); String compName = null; String District = null; String Region = null; String date = null; try { java.sql.Statement st3 = connectDB.createStatement(); java.sql.Statement st4 = connectDB.createStatement(); java.sql.ResultSet rset2 = st3.executeQuery("SELECT hospital_name,district_branch from pb_hospitalprofile"); java.sql.ResultSet rset4 = st4.executeQuery("SELECT date('now') as Date"); while (rset2.next()) { compName = rset2.getObject(1).toString(); District = rset2.getObject(2).toString(); } while (rset4.next()) { date = rset4.getObject(1).toString(); } com.lowagie.text.HeaderFooter headerFoter = new com.lowagie.text.HeaderFooter( new Phrase("MINISTRY OF HEALTH : " + compName.toUpperCase()), false); // FontFactory.getFont(com.lowagie.text.FontFactory.HELVETICA, 14, // Font.BOLDITALIC,java.awt.Color.blue))); headerFoter.setAlignment(com.lowagie.text.HeaderFooter.ALIGN_CENTER); headerFoter.setRight(5); docPdf.setHeader(headerFoter); } catch (java.sql.SQLException SqlExec) { SqlExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), SqlExec.getMessage()); } com.lowagie.text.HeaderFooter footer = new com.lowagie.text.HeaderFooter( new Phrase("MOH - 204B : OP Over 5 Yrs Register : Page: "), true); // FontFactory.getFont(com.lowagie.text.FontFactory.HELVETICA, 12, // Font.BOLDITALIC,java.awt.Color.blue)); docPdf.setFooter(footer); docPdf.open(); try { com.lowagie.text.pdf.PdfPTable table = new com.lowagie.text.pdf.PdfPTable(21); int headerwidths[] = { 5, 10, 10, 10, 25, 10, 12, 20, 12, 12, 12, 12, 12, 12, 12, 25, 25, 12, 12, 12, 25 }; table.setWidths(headerwidths); table.setWidthPercentage((100)); table.setHeaderRows(4); Phrase phrase = new Phrase("", pFontHeader); try { java.text.DateFormat dateFormat = java.text.DateFormat.getDateInstance(java.text.DateFormat.MEDIUM); // MEDIUM); java.util.Date endDate1 = dateFormat.parse(endDate.toLocaleString()); // dateInstance.toLocaleString()); java.util.Date endDate11 = dateFormat.parse(beginDate.toLocaleString()); // dateInstance.toLocaleString()); com.afrisoftech.lib.DateFormatter dateFormatter = new com.afrisoftech.lib.DateFormatter( dateFormat.parse(endDate.toLocaleString()), "MMMM"); java.lang.String monthString = dateFormatter.getDateString(); com.afrisoftech.lib.DateFormatter dateFormatters = new com.afrisoftech.lib.DateFormatter( dateFormat.parse(endDate.toLocaleString()), "yyyy"); java.lang.String yearString = dateFormatters.getDateString(); table.getDefaultCell().setBorderColor(java.awt.Color.WHITE); table.getDefaultCell().setColspan(21); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_CENTER); table.getDefaultCell().setFixedHeight(50); table.addCell(Image.getInstance(com.afrisoftech.lib.CompanyLogo.getPath2Logo())); table.getDefaultCell().setFixedHeight(-1); // table.getDefaultCell().setNoWrap(false); phrase = new Phrase("MOH 204B_Over 5 Yrs Register", pFontHeader2); table.addCell(phrase); table.getDefaultCell().setColspan(5); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); phrase = new Phrase("OP OVER 5 YEARS REGISTER", pFontHeader22); table.addCell(phrase); table.getDefaultCell().setColspan(10); phrase = new Phrase("HEALTH FACILITY : " + compName, pFontHeader22); table.addCell(phrase); table.getDefaultCell().setColspan(3); phrase = new Phrase("MONTH : " + monthString.toUpperCase(), pFontHeader22); table.addCell(phrase); table.getDefaultCell().setColspan(3); phrase = new Phrase("YEAR : " + yearString.toUpperCase(), pFontHeader22); table.addCell(phrase); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_CENTER); table.getDefaultCell().setColspan(1); table.getDefaultCell().setBorderColor(java.awt.Color.BLACK); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); table.getDefaultCell().setColspan(1); phrase = new Phrase("#", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Date", pFontHeader11); table.addCell(phrase); phrase = new Phrase("OPD No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Revisit", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Full Names", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Age YRS", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Sex", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Village", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Phone. No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Weight", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Height", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Visual Activity RE(Right Eye), LE(LEFT EYE)", pFontHeader11); table.addCell(phrase); phrase = new Phrase("HIV: 1=Cancelled, 2=Tested", pFontHeader11); table.addCell(phrase); phrase = new Phrase( "HIV Status: 1=Known Positive, 2=Positive this visit, 3=Negative, 4=Uknown", pFontHeader11); table.addCell(phrase); phrase = new Phrase( "Nutrition Status: 1=Nutrition Education, 2=Nutrition Suppliments", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Diagnosis/Classification", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Treatment/Prescription No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Amount Charged", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Receipt No.", pFontHeader11); table.addCell(phrase); phrase = new Phrase( "1 = From Other HF, 2 = To Other HF, 3 = From CU, 4 = To CU", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Remarks", pFontHeader11); table.addCell(phrase); // Second header row phrase = new Phrase("", pFontHeader11); table.addCell(phrase); phrase = new Phrase("A", pFontHeader11); table.addCell(phrase); phrase = new Phrase("B", pFontHeader11); table.addCell(phrase); phrase = new Phrase("C", pFontHeader11); table.addCell(phrase); phrase = new Phrase("D", pFontHeader11); table.addCell(phrase); phrase = new Phrase("E", pFontHeader11); table.addCell(phrase); phrase = new Phrase("F", pFontHeader11); table.addCell(phrase); phrase = new Phrase("G", pFontHeader11); table.addCell(phrase); phrase = new Phrase("H", pFontHeader11); table.addCell(phrase); phrase = new Phrase("I", pFontHeader11); table.addCell(phrase); phrase = new Phrase("J", pFontHeader11); table.addCell(phrase); phrase = new Phrase("K", pFontHeader11); table.addCell(phrase); phrase = new Phrase("L", pFontHeader11); table.addCell(phrase); phrase = new Phrase("M", pFontHeader11); table.addCell(phrase); phrase = new Phrase("N", pFontHeader11); table.addCell(phrase); phrase = new Phrase("O", pFontHeader11); table.addCell(phrase); phrase = new Phrase("P", pFontHeader11); table.addCell(phrase); phrase = new Phrase("Q", pFontHeader11); table.addCell(phrase); phrase = new Phrase("R", pFontHeader11); table.addCell(phrase); phrase = new Phrase("S", pFontHeader11); table.addCell(phrase); phrase = new Phrase("T", pFontHeader11); table.addCell(phrase); } catch (java.text.ParseException psExec) { psExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), psExec.getMessage()); } table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT); table.getDefaultCell().setBackgroundColor(java.awt.Color.WHITE); try { int noSeq = 0; java.lang.Object[] listofAct = this.getListofStaffNos(); System.out.println("The array has been called..."); for (int i = 0; i < listofAct.length; i++) { java.sql.PreparedStatement stw = connectDB.prepareStatement( "SELECT DISTINCT " + " date_part('day', date) ||'-'||date_part('month', date) ||'-'||date_part('year', date), patient_no," + " (CASE WHEN comments = 'Old' THEN 'YES' ELSE 'NO' END) as revisit, " + " initcap(name), age::int, (SELECT initcap(gender) FROM hp_patient_register WHERE hp_patient_register.patient_no = hp_patient_visit.patient_no ORDER BY 1 DESC LIMIT 1) as gender, " + " (SELECT initcap(residence) FROM hp_inpatient_register" + " WHERE hp_patient_visit.patient_no = hp_inpatient_register.patient_no" + " UNION SELECT initcap(residence) FROM hp_patient_register WHERE " + " hp_patient_visit.patient_no = hp_patient_register.patient_no ORDER BY 1 " + " DESC LIMIT 1) as village, (SELECT tel_no FROM hp_patient_register WHERE hp_patient_register.patient_no = hp_patient_visit.patient_no " + " ORDER BY 1 DESC LIMIT 1) as telephone, (SELECT weight::numeric(5,1) FROM hp_signs_record WHERE hp_signs_record.patient_no = hp_patient_visit.patient_no AND hp_signs_record.date = hp_patient_visit.date ORDER BY 1 DESC LIMIT 1) as weight," + " (SELECT height::numeric(5,1) FROM hp_signs_record WHERE hp_signs_record.patient_no = hp_patient_visit.patient_no AND hp_signs_record.date = hp_patient_visit.date ORDER BY 1 DESC LIMIT 1) as height, " + " ''," // to add eye conditions for over 5 years + " (SELECT (CASE WHEN hiv_counselled = true THEN '1' ELSE '' END) || ' '||" + "(CASE WHEN hiv_tested = true THEN '2' ELSE '' END) FROM key_health_indicators" + " WHERE key_health_indicators.patient_no = hp_patient_visit.patient_no) as hiv_tested," + " (SELECT (CASE WHEN hiv_status ilike '%positive%' THEN '1' ELSE '' END) || ' '||" + "(CASE WHEN hiv_status ilike '%visit' THEN '2' ELSE '' END)||' '||" + "(CASE WHEN hiv_status ilike 'negative' THEN '3' ELSE '' END)||' '||" + "(CASE WHEN hiv_status ilike 'unknown' THEN '4' ELSE '' END) FROM key_health_indicators" + " WHERE key_health_indicators.patient_no = hp_patient_visit.patient_no) as hiv_status," + " (SELECT (CASE WHEN nutrition_status ilike '%education%' THEN '1' ELSE '' END)||' '||" + "(CASE WHEN nutrition_status ILIKE '%suppliments%' THEN '2' ELSE '' END) " + "FROM key_health_indicators WHERE key_health_indicators.patient_no = hp_patient_visit.patient_no)" + " as nutrition_status, " + " (SELECT disease FROM hp_patient_diagnosis WHERE hp_patient_diagnosis.patient_no = hp_patient_visit.patient_no AND" + " hp_patient_diagnosis.date_recorded::date = hp_patient_visit.date::date AND disease is not null ORDER BY 1 DESC LIMIT 1) as diagnosis, " + " (SELECT replace(treatment, 'null', '') FROM hp_clinical_results WHERE hp_clinical_results.patient_no =" + " hp_patient_visit.patient_no AND hp_clinical_results.date = hp_patient_visit.date " + "ORDER BY 1 DESC LIMIT 1) as treatment, " + " (SELECT sum(credit-debit) FROM ac_ledger WHERE ac_ledger.patient_no = " + "hp_patient_visit.patient_no AND ac_ledger.date = hp_patient_visit.date) " + "as amount, '', " + " (SELECT refer_source FROM hp_patient_register WHERE hp_patient_register.patient_no" + " = hp_patient_visit.patient_no AND hp_patient_register.date = hp_patient_visit.date" + " ORDER BY 1 DESC LIMIT 1) as referral," + " (SELECT comments FROM hp_clinical_results WHERE hp_clinical_results.patient_no " + "= hp_patient_visit.patient_no AND hp_clinical_results.date = hp_patient_visit.date" + " ORDER BY 1 DESC LIMIT 1 )as comments FROM hp_patient_visit WHERE " + " date::date BETWEEN '" + beginDate + "' AND '" + endDate + "' " + " AND patient_no = ?"); stw.setObject(1, listofAct[i]); java.sql.ResultSet rsetw = stw.executeQuery(); while (rsetw.next()) { table.getDefaultCell().setColspan(1); table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); table.getDefaultCell().setColspan(1); noSeq = noSeq + 1; // Index phrase = new Phrase(java.lang.String.valueOf(noSeq), pFontHeader1); table.addCell(phrase); // Lab procedure date phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(1), ""), pFontHeader1); table.addCell(phrase); // Patient Number phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(2), ""), pFontHeader1); table.addCell(phrase); // Lab Number phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(3), ""), pFontHeader1); table.addCell(phrase); // Revisit No phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(4), ""), pFontHeader1); table.addCell(phrase); // Patient names phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(5), ""), pFontHeader1); table.addCell(phrase); // Age phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(6), ""), pFontHeader1); table.addCell(phrase); // Gender phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(7), ""), pFontHeader1); table.addCell(phrase); // Village phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(8), ""), pFontHeader1); table.addCell(phrase); // Telephone number phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(9), ""), pFontHeader1); table.addCell(phrase); // Clinical diagnosis phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(10), ""), pFontHeader1); table.addCell(phrase); // Prior treatment phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(11), ""), pFontHeader1); table.addCell(phrase); // Type of specimen phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(12), ""), pFontHeader1); table.addCell(phrase); // Condition of specimen phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(13), ""), pFontHeader1); table.addCell(phrase); // Investigation required phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(14), ""), pFontHeader1); table.addCell(phrase); // Date sample taken phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(15), ""), pFontHeader1); table.addCell(phrase); // Date sample received phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(16), ""), pFontHeader1); table.addCell(phrase); // Amount Paid by client table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_RIGHT); phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(17), ""), pFontHeader1); table.addCell(phrase); // Date sample analysed table.getDefaultCell().setHorizontalAlignment(PdfCell.ALIGN_LEFT); phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(18), ""), pFontHeader1); table.addCell(phrase); // Results phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(19), ""), pFontHeader1); table.addCell(phrase); // Date result dispatched phrase = new Phrase( new com.afrisoftech.lib.DBObject().getDBObject(rsetw.getString(20), ""), pFontHeader1); table.addCell(phrase); } } docPdf.add(table); } catch (java.sql.SQLException SqlExec) { SqlExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), SqlExec.getMessage()); } } catch (com.lowagie.text.BadElementException BadElExec) { javax.swing.JOptionPane.showMessageDialog( new javax.swing.JFrame(), BadElExec.getMessage()); } } catch (java.io.FileNotFoundException fnfExec) { javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), fnfExec.getMessage()); } } catch (com.lowagie.text.DocumentException lwDocexec) { javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), lwDocexec.getMessage()); } docPdf.close(); com.afrisoftech.lib.PDFRenderer.renderPDF(tempFile); } catch (java.io.IOException IOexec) { IOexec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), IOexec.getMessage()); } } public java.lang.Object[] getListofStaffNos() { java.lang.Object[] listofStaffNos = null; java.util.Vector listStaffNoVector = new java.util.Vector(1, 1); try { java.sql.PreparedStatement stmt1 = connectDB.prepareStatement( "SELECT DISTINCT patient_no, name FROM hp_patient_visit where date::date BETWEEN '" + beginDate + "' AND '" + endDate + "' AND age::int >= 5 ORDER BY name ASC"); java.sql.ResultSet rSet1 = stmt1.executeQuery(); while (rSet1.next()) { System.out.println("Patient names : [" + rSet1.getString(2) + "]"); listStaffNoVector.addElement(rSet1.getObject(1).toString()); } } catch (java.sql.SQLException sqlExec) { sqlExec.printStackTrace(); javax.swing.JOptionPane.showMessageDialog(new javax.swing.JFrame(), sqlExec.getMessage()); } listofStaffNos = listStaffNoVector.toArray(); System.out.println("Done list of Staff Nos ..."); return listofStaffNos; } }