calculatefactorrisk.java Source code

Java tutorial

Introduction

Here is the source code for calculatefactorrisk.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Date;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import model.AbsoluteRiskFemale;
import model.AbsulateRiskMale;
import model.Calculationmeteredata;
import model.DoctorAppointment;
import model.FactorDetails;
import model.FactorOption;
import model.Patient;
import model.PatientfactorAnswer;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;

/**
 *
 * @author rishabh
 */
public class calculatefactorrisk extends HttpServlet {

    /**
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code>
     * methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        try (PrintWriter out = response.getWriter()) {
            /* TODO output your page here. You may use following sample code. */
            SessionFactory sf = HibernateUtil.getSessionFactory();
            Session ss = sf.openSession();
            Transaction tr = ss.beginTransaction();
            HttpSession hs = request.getSession();

            if (hs.getAttribute("patient") != null) {

                Patient p1 = (Patient) hs.getAttribute("patient");
                int metervalue = 0;
                double rmetervalue = 0;
                int facindex = 0;
                int points = 0;
                String[] chartdata = new String[4];
                chartdata[0] = "5";
                chartdata[1] = "12";
                chartdata[2] = "25";
                chartdata[3] = "60";
                ArrayList<PatientfactorAnswer> finalans = new ArrayList<PatientfactorAnswer>();

                if (request.getParameter("facindex") != null && request.getParameter("ans") != null) {

                    if (hs.getAttribute("metervalue") != null) {
                        metervalue = (Integer) hs.getAttribute("metervalue");
                    }
                    if (hs.getAttribute("finalans") != null) {
                        finalans = (ArrayList<PatientfactorAnswer>) hs.getAttribute("finalans");
                    }
                    if (request.getParameter("ans").equals("15")) {
                        hs.setAttribute("gender", "MALE");
                        hs.setAttribute("agefactor", null);
                    }
                    if (request.getParameter("ans").equals("16")) {
                        hs.setAttribute("gender", "FEMALE");
                        hs.setAttribute("agefactor", null);
                    }

                    facindex = Integer.parseInt(request.getParameter("facindex"));
                    if (request.getParameter("next") != null) {

                        int ansid = Integer.parseInt(request.getParameter("ans"));
                        FactorOption ansfo = (FactorOption) ss.get(FactorOption.class, ansid);
                        if (ansfo.getFactorId().equals(new FactorDetails(2))) {
                            hs.setAttribute("agefactor", ansfo);
                        }

                        PatientfactorAnswer currentans = new PatientfactorAnswer();
                        currentans.setFactorId(ansfo.getFactorId());
                        currentans.setFactorOptionId(ansfo);
                        currentans.setPId(p1);

                        if (finalans.size() > 0) {
                            ArrayList<PatientfactorAnswer> finalans1 = finalans;
                            for (int i1 = 0; i1 < finalans1.size(); i1++) {
                                PatientfactorAnswer c1 = finalans.get(i1);
                                if (c1.getFactorId().equals(currentans.getFactorId())) {
                                    finalans.remove(i1);
                                }
                            }
                        }
                        finalans.add(facindex, currentans);

                        //                        System.out.println(finalans.get(0).getFactorOptionId());
                        //                        System.out.println(finalans.get(1).getFactorOptionId());
                        //                        System.out.println(finalans.get(2).getFactorOptionId());
                        System.out.println("size : " + finalans.size());
                        facindex = facindex + 1;
                    } else if (request.getParameter("prev") != null) {
                        if (facindex > 0) {
                            facindex = facindex - 1;
                        }
                    }

                    if (finalans.size() > 0) {
                        String gender = "MALE";
                        if (hs.getAttribute("gender") != null) {
                            gender = (String) hs.getAttribute("gender");
                        }
                        if (gender.equals("MALE") && hs.getAttribute("agefactor") != null) {

                            FactorOption agefac = (FactorOption) hs.getAttribute("agefactor");

                            for (PatientfactorAnswer c1 : finalans) {
                                points = points + c1.getFactorOptionId().getMen();
                            }
                            if (points < 0) {
                                points = 0;
                            }
                            if (points > 14) {
                                points = 14;
                            }
                            //                Count risk on point
                            Criteria cr2 = ss.createCriteria(AbsulateRiskMale.class);
                            cr2.add(Restrictions.eq("foptionid", agefac));
                            cr2.add(Restrictions.eq("point", points));
                            ArrayList<AbsulateRiskMale> riskdata = (ArrayList<AbsulateRiskMale>) cr2.list();
                            if (riskdata.size() > 0) {
                                AbsulateRiskMale risk = riskdata.get(0);
                                if (risk.getGreen() != null) {
                                    metervalue = risk.getGreen();
                                } else if (risk.getViolet() != null) {
                                    metervalue = risk.getViolet();
                                } else if (risk.getYellow() != null) {
                                    metervalue = risk.getYellow();
                                } else if (risk.getRed() != null) {
                                    metervalue = risk.getRed();
                                }
                                if (risk.getRGreen() != null) {
                                    rmetervalue = risk.getRGreen();
                                } else if (risk.getRViolet() != null) {
                                    rmetervalue = risk.getRViolet();
                                } else if (risk.getRYellow() != null) {
                                    rmetervalue = risk.getRYellow();
                                } else if (risk.getRRed() != null) {
                                    rmetervalue = risk.getRRed();
                                }
                                //                                System.out.println("Risk data : " + risk);
                            }
                            System.out.println("Meter value : " + metervalue);
                            System.out.println("RMeter value : " + rmetervalue);
                            //                        Set Chart Data    
                            Criteria cr01 = ss.createCriteria(AbsulateRiskMale.class);
                            cr01.add(Restrictions.eq("foptionid", agefac));
                            cr01.setProjection(Projections.max("green"));
                            if (cr01.uniqueResult() != null) {
                                chartdata[0] = cr01.uniqueResult().toString();
                            }
                            Criteria cr02 = ss.createCriteria(AbsulateRiskMale.class);
                            cr02.add(Restrictions.eq("foptionid", agefac));
                            cr02.setProjection(Projections.max("violet"));
                            if (cr02.uniqueResult() != null) {
                                chartdata[1] = cr02.uniqueResult().toString();
                            }
                            Criteria cr03 = ss.createCriteria(AbsulateRiskMale.class);
                            cr03.add(Restrictions.eq("foptionid", agefac));
                            cr03.setProjection(Projections.max("yellow"));
                            if (cr03.uniqueResult() != null) {
                                chartdata[2] = cr03.uniqueResult().toString();
                            }
                            chartdata[3] = "54";
                        }
                        if (gender.equals("FEMALE") && hs.getAttribute("agefactor") != null) {

                            FactorOption agefac = (FactorOption) hs.getAttribute("agefactor");

                            for (PatientfactorAnswer c1 : finalans) {
                                points = points + c1.getFactorOptionId().getWomen();
                            }
                            if (points < 0) {
                                points = 0;
                            }
                            if (points > 17) {
                                points = 17;
                            }
                            //                Count risk on point
                            Criteria cr2 = ss.createCriteria(AbsoluteRiskFemale.class);
                            cr2.add(Restrictions.eq("foptionid", agefac));
                            cr2.add(Restrictions.eq("point", points));
                            ArrayList<AbsoluteRiskFemale> riskdata = (ArrayList<AbsoluteRiskFemale>) cr2.list();
                            if (riskdata.size() > 0) {
                                AbsoluteRiskFemale risk = riskdata.get(0);
                                if (risk.getGreen() != null) {
                                    metervalue = risk.getGreen();
                                } else if (risk.getViolet() != null) {
                                    metervalue = risk.getViolet();
                                } else if (risk.getYellow() != null) {
                                    metervalue = risk.getYellow();
                                } else if (risk.getRed() != null) {
                                    metervalue = risk.getRed();
                                }
                                if (risk.getRGreen() != null) {
                                    rmetervalue = risk.getRGreen();
                                } else if (risk.getRViolet() != null) {
                                    rmetervalue = risk.getRViolet();
                                } else if (risk.getRYellow() != null) {
                                    rmetervalue = risk.getRYellow();
                                } else if (risk.getRRed() != null) {
                                    rmetervalue = risk.getRRed();
                                }
                                //                                System.out.println("Risk data : " + risk);
                            }
                            //                            System.out.println("Meter value : " + metervalue);
                            //                        Set Chart Data    
                            Criteria cr01 = ss.createCriteria(AbsoluteRiskFemale.class);
                            cr01.add(Restrictions.eq("foptionid", agefac));
                            cr01.setProjection(Projections.max("green"));
                            if (cr01.uniqueResult() != null) {
                                chartdata[0] = cr01.uniqueResult().toString();
                            }
                            Criteria cr02 = ss.createCriteria(AbsoluteRiskFemale.class);
                            cr02.add(Restrictions.eq("foptionid", agefac));
                            cr02.setProjection(Projections.max("violet"));
                            if (cr02.uniqueResult() != null) {
                                chartdata[1] = cr02.uniqueResult().toString();
                            }
                            Criteria cr03 = ss.createCriteria(AbsoluteRiskFemale.class);
                            cr03.add(Restrictions.eq("foptionid", agefac));
                            cr03.setProjection(Projections.max("yellow"));
                            if (cr03.uniqueResult() != null) {
                                chartdata[2] = cr03.uniqueResult().toString();
                            }
                            chartdata[3] = "30";
                        }
                    }

                }
                System.out.println("sssss : " + hs.getAttribute("agefactor"));
                Criteria cr = ss.createCriteria(FactorDetails.class);
                ArrayList<FactorDetails> fdlist = (ArrayList<FactorDetails>) cr.list();
                if (fdlist.size() > facindex) {
                    FactorDetails factor = fdlist.get(facindex);

                    Criteria cr1 = ss.createCriteria(FactorOption.class);
                    cr1.add(Restrictions.eq("factorId", factor));
                    ArrayList<FactorOption> folist = (ArrayList<FactorOption>) cr1.list();
                    if (folist.size() > 0) {
                        request.setAttribute("folist", folist);
                    }

                    //                    metervalue = metervalue + 3;
                    hs.setAttribute("metervalue", metervalue);
                    hs.setAttribute("rmetervalue", rmetervalue);
                    hs.setAttribute("points", points);
                    hs.setAttribute("finalans", finalans);
                    hs.setAttribute("chartdata", chartdata);
                    request.setAttribute("factor", factor);
                    request.setAttribute("facindex", facindex);

                } else {
                    //                    Save In database final ans
                    ArrayList<PatientfactorAnswer> save = (ArrayList<PatientfactorAnswer>) hs
                            .getAttribute("finalans");
                    Calculationmeteredata cm = new Calculationmeteredata();

                    cm.setFinalpoints((Integer) hs.getAttribute("points"));
                    cm.setMetervalue((Integer) hs.getAttribute("metervalue"));
                    cm.setRmetervalue((Double) hs.getAttribute("rmetervalue"));
                    cm.setDate(new Date().toString());
                    cm.setPId(p1);

                    ss.save(cm);
                    if (cm.getCalculationmeteredataId() != null) {
                        for (PatientfactorAnswer pans : save) {
                            pans.setCalculationmeteredataId(cm);
                            ss.save(pans);
                        }
                    }
                    tr.commit();
                    RequestDispatcher rd = request.getRequestDispatcher(
                            "systemgeneratedreport?calcid=" + cm.getCalculationmeteredataId());
                    rd.forward(request, response);
                }

                tr.commit();
                RequestDispatcher rd = request.getRequestDispatcher("heartattack_calculater.jsp");
                rd.forward(request, response);
            } else {
                tr.commit();
                RequestDispatcher rd = request.getRequestDispatcher("login.jsp");
                rd.forward(request, response);
            }

        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>

}