org.openmrs.module.vcttrac.web.controller.VCTClientListingController.java Source code

Java tutorial

Introduction

Here is the source code for org.openmrs.module.vcttrac.web.controller.VCTClientListingController.java

Source

/**
 * The contents of this file are subject to the OpenMRS Public License
 * Version 1.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://license.openmrs.org
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * Copyright (C) OpenMRS, LLC.  All Rights Reserved.
 */
package org.openmrs.module.vcttrac.web.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.openmrs.api.context.Context;
import org.openmrs.module.mohtracportal.util.MohTracUtil;
import org.openmrs.module.vcttrac.VCTClient;
import org.openmrs.module.vcttrac.service.VCTModuleService;
import org.openmrs.module.vcttrac.util.FileExporter;
import org.openmrs.module.vcttrac.util.VCTConfigurationUtil;
import org.openmrs.module.vcttrac.util.VCTTracConstant;
import org.openmrs.module.vcttrac.util.VCTTracUtil;
import org.openmrs.web.WebConstants;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.ParameterizableViewController;

/**
 *
 */
public class VCTClientListingController extends ParameterizableViewController {

    private Log log = LogFactory.getLog(this.getClass());

    /**
     * @see org.springframework.web.servlet.mvc.ParameterizableViewController#handleRequestInternal(javax.servlet.http.HttpServletRequest,
     *      javax.servlet.http.HttpServletResponse)
     */
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        ModelAndView mav = new ModelAndView(getViewName());
        VCTModuleService vms = Context.getService(VCTModuleService.class);
        List<VCTClient> clientList = new ArrayList<VCTClient>();
        FileExporter fe = new FileExporter();
        String title = "";

        mav.addObject("civilStatusAttributeTypeId", VCTConfigurationUtil.getCivilStatusAttributeTypeId());
        mav.addObject("mainActivityAttributeTypeId", VCTConfigurationUtil.getMainActivityAttributeTypeId());
        mav.addObject("educationLevelAttributeTypeId", VCTConfigurationUtil.getEducationLevelAttributeTypeId());
        mav.addObject("whyDidYouGetTestedConceptId", VCTConfigurationUtil.getWhyDidYouGetTestedConceptId());
        mav.addObject("dateResultOfHivTestedReceivedConceptId",
                VCTConfigurationUtil.getDateResultOfHivTestReceivedConceptId());
        mav.addObject("resultOfHivTestConceptId", VCTConfigurationUtil.getResultOfHivTestConceptId());
        mav.addObject("positive",
                Context.getConceptService().getConcept(VCTTracConstant.POSITIVE_CID).getDisplayString());

        try {
            if (request.getParameter("type") != null && request.getParameter("type").trim().compareTo("") != 0) {
                String from = request.getParameter("dateFrom");
                String to = request.getParameter("dateTo");
                Integer admissionMode = Integer.valueOf(request.getParameter("type"));
                Integer locationId = Integer.valueOf(request.getParameter("location"));
                if (request.getParameter("type").trim().compareTo("2") != 0) {
                    Integer minAge = Integer.valueOf(
                            ((request.getParameter("minAge") == null) ? 0 + "" : request.getParameter("minAge")));
                    Integer maxAge = Integer.valueOf(
                            ((request.getParameter("maxAge") == null) ? 0 + "" : request.getParameter("maxAge")));
                    String gender = request.getParameter("gender");

                    if (request.getParameter("criteria").trim().compareToIgnoreCase("cct") == 0) {
                        clientList = vms.getNewClientsCounseledAndTestedForHIV(from, to, locationId, admissionMode,
                                minAge, maxAge, gender);
                        title = VCTTracUtil.getMessage("vcttrac.param.indicator.cct", null);
                        mav.addObject("clients", clientList);
                    } else if (request.getParameter("criteria").trim().compareToIgnoreCase("ctrr") == 0) {
                        clientList = vms.getNewClientsTestedAndReceivedResults(from, to, locationId, admissionMode,
                                minAge, maxAge, gender);
                        title = VCTTracUtil.getMessage("vcttrac.param.indicator.ctrr", null);
                        mav.addObject("clients", clientList);
                    } else if (request.getParameter("criteria").trim().compareToIgnoreCase("hivpositive") == 0) {
                        clientList = vms.getHIVPositiveClients(from, to, locationId, admissionMode, minAge, maxAge,
                                gender);
                        title = VCTTracUtil.getMessage("vcttrac.param.indicator.hivpositive", null);
                        mav.addObject("clients", clientList);
                    }
                } else if (request.getParameter("type").trim().compareTo("2") == 0) {
                    //               if (request.getParameter("criteria").trim().compareToIgnoreCase("cct") == 0) {
                    //                  clientList=vms.getCouplesCounseledAndTested(from, to, locationId);
                    //                  title=VCTTracUtil.getMessage("vcttrac.param.indicator.dc", null);
                    //                  mav.addObject("clients", clientList);
                    //               } else if (request.getParameter("criteria").trim().compareToIgnoreCase("dc") == 0) {
                    //                  clientList=vms.getDiscordantCouples(from, to, locationId);
                    //                  title=VCTTracUtil.getMessage("vcttrac.param.indicator.dc", null);
                    //                  mav.addObject("clients", clientList);
                    //               }
                }
            }

            if (request.getParameter("exportFormat") != null
                    && request.getParameter("exportFormat").trim().toLowerCase().compareTo("csv") == 0) {
                fe.exportToCSVFile(request, response, clientList,
                        title.trim().toLowerCase().replace(" ", "_") + ".csv",
                        ((request.getParameter("type").trim().compareTo("1") == 0)
                                ? VCTTracUtil.getMessage("vcttrac.pit", null)
                                : VCTTracUtil.getMessage("vcttrac.vct", null)) + " : " + title,
                        "");
            }

            buildRequestParameters(request, mav);
        } catch (Exception e) {
            request.getSession().setAttribute(WebConstants.OPENMRS_ERROR_ATTR,
                    getMessageSourceAccessor().getMessage("@MODULE_ID@.error.loadingData"));
            log.error(">>>>>>VCT>>TRACNET>>INDICATORS>> " + e.getMessage());
            e.printStackTrace();
        }
        return mav;
    }

    /**
     * Auto generated method comment
     * 
     * @param request
     * @param mav
     */
    private void buildRequestParameters(HttpServletRequest request, ModelAndView mav) {
        String parameters = "", parameterDescription = "", title = "";

        try {
            if (request.getParameter("dateFrom") != null
                    && request.getParameter("dateFrom").trim().compareTo("") != 0) {
                parameters += "&dateFrom=" + request.getParameter("dateFrom");
                parameterDescription += MohTracUtil.getMessage("vcttrac.param.date.start", null) + " : "
                        + (new SimpleDateFormat("dd-MMM-yyyy")
                                .format(Context.getDateFormat().parse(request.getParameter("dateFrom"))))
                        + "; ";
            }
            if (request.getParameter("dateTo") != null
                    && request.getParameter("dateTo").trim().compareTo("") != 0) {
                parameters += "&dateTo=" + request.getParameter("dateTo");
                parameterDescription += MohTracUtil.getMessage("vcttrac.param.date.end", null) + " : "
                        + (new SimpleDateFormat("dd-MMM-yyyy")
                                .format(Context.getDateFormat().parse(request.getParameter("dateTo"))))
                        + "; ";
            }
            if (request.getParameter("location") != null
                    && request.getParameter("location").trim().compareTo("") != 0) {
                parameters += "&location=" + request.getParameter("location");
                parameterDescription += MohTracUtil.getMessage("vcttrac.param.location", null) + " : " + Context
                        .getLocationService().getLocation(Integer.valueOf(request.getParameter("location"))) + "; ";
            }
            if (request.getParameter("minAge") != null
                    && request.getParameter("minAge").trim().compareTo("") != 0) {
                parameters += "&minAge=" + request.getParameter("minAge");
                parameterDescription += MohTracUtil.getMessage("vcttrac.param.age.min", null) + " : "
                        + request.getParameter("minAge") + "; ";
            }
            if (request.getParameter("maxAge") != null
                    && request.getParameter("maxAge").trim().compareTo("") != 0) {
                parameters += "&maxAge=" + request.getParameter("maxAge");
                parameterDescription += MohTracUtil.getMessage("vcttrac.param.age.max", null) + " : "
                        + request.getParameter("maxAge") + "; ";
            }
            if (request.getParameter("gender") != null
                    && request.getParameter("gender").trim().compareTo("") != 0) {
                parameters += "&gender=" + request.getParameter("gender");
                parameterDescription += MohTracUtil.getMessage("vcttrac.param.gender", null) + " : "
                        + request.getParameter("gender").toUpperCase() + "; ";
            }
            if (request.getParameter("type") != null && request.getParameter("type").trim().compareTo("") != 0) {
                parameters += "&type=" + request.getParameter("type");
                title += (request.getParameter("type").trim().compareTo("1") == 0)
                        ? MohTracUtil.getMessage("vcttrac.pit", null)
                        : MohTracUtil.getMessage("vcttrac.vct", null);
                title += " : ";
            }
            if (request.getParameter("criteria") != null
                    && request.getParameter("criteria").trim().compareTo("") != 0) {
                parameters += "&criteria=" + request.getParameter("criteria");
                //            parameterDescription += MohTracUtil.getMessage("vcttrac.param.indicator", null)
                //              + " : ";
                title += (request.getParameter("criteria").trim().compareToIgnoreCase("cct") == 0)
                        ? MohTracUtil.getMessage("vcttrac.param.indicator.cct", null)
                        : "";
                title += (request.getParameter("criteria").trim().compareToIgnoreCase("ctrr") == 0)
                        ? MohTracUtil.getMessage("vcttrac.param.indicator.ctrr", null)
                        : "";
                title += (request.getParameter("criteria").trim().compareToIgnoreCase("hivpositive") == 0)
                        ? MohTracUtil.getMessage("vcttrac.param.indicator.hivpositive", null)
                        : "";
                title += (request.getParameter("criteria").trim().compareToIgnoreCase("dc") == 0)
                        ? MohTracUtil.getMessage("vcttrac.param.indicator.dc", null)
                        : "";
                //            parameterDescription+="; ";
            }
        } catch (Exception e) {

        }
        mav.addObject("parameters", parameters);
        mav.addObject("parameterDescription", parameterDescription);
        mav.addObject("title", title);

    }

}