@Override
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        if (kirjaudutaankoUlos(request)) {
            kirjauduUlos(request, response);
        } else if (onkoKirjautunut(request, response)) {
            try {
                if (Varaus.haeAjatLaakariIdlla(getKayttaja().getId()).isEmpty()) {
                    request.setAttribute("tyotehtavienTila", "Sinulla ei ole tyotehtäviä.");
                    avaaSivunakyma(request, response, "tyotehtavat", "laakarinviikkoaikataulu", "potilaat", "web/tyotehtavat.jsp");
                } else {
                    if (napinPainallus("kuittaus", request)) {
                        Varaus.varausSuoritettu(Integer.parseInt(request.getParameter("kuittaus")));
                        lahetaTyotehtavanTiedotLisaaPotilasRaporttiServletille(request);
                        response.sendRedirect("lisaapotilasraportti");
                    } else {
                        List<Varaus> tyot = Varaus.haeAjatLaakariIdlla(getKayttaja().getId());
                        request.setAttribute("tyot", tyot);
                        muunnaPaivamaaratSuomalaisiksi(request, tyot);
                        List<Oirekuvaus> l = new ArrayList<Oirekuvaus>();
                        for (Varaus tyot1 : tyot) {
                            Oirekuvaus oire = Oirekuvaus.haeOirekuvausVarausIdlla(tyot1.getId());
                            l.add(oire);
                        }
                        request.setAttribute("oireet", l);
                        avaaSivunakyma(request, response, "tyotehtavat", "laakarinviikkoaikataulu", "potilaat", "web/tyotehtavat.jsp");
                    }
                }
            } catch (Exception e) {
                naytaVirheSivu("Lääkärin työtehtävien näyttäminen epäonnistui.", request, response);
            }
        }
    }