Package org.openmrs.module.htmlformentry.web.controller

Source Code of org.openmrs.module.htmlformentry.web.controller.HtmlFormAjaxValidationController

package org.openmrs.module.htmlformentry.web.controller;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Vector;

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

import org.openmrs.Encounter;
import org.openmrs.Form;
import org.openmrs.api.context.Context;
import org.openmrs.module.htmlformentry.HtmlForm;
import org.openmrs.module.htmlformentry.HtmlFormEntryUtil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

@Controller
public class HtmlFormAjaxValidationController {

  /**
   * Retreives the localized message for the passed message code and sends it to the output stream
   * @throws IOException
   */
  @RequestMapping("/module/htmlformentry/localizedMessage")
  public void localizedMessage(ModelMap model, HttpServletRequest request, HttpServletResponse response, @RequestParam String messageCode) throws IOException {
    response.setContentType("text/html");
    ServletOutputStream out = response.getOutputStream();
    out.print(Context.getMessageSourceService().getMessage(messageCode));
  }
 
 
  /**
   * lastEnteredForm
   */
  @RequestMapping("/module/htmlformentry/lastEnteredForm")
  public void duplicateForm(
      ModelMap model,
      HttpServletRequest request,
      HttpServletResponse response,
      @RequestParam(required = true, value = "formId") Integer formId,
      @RequestParam(required = true, value = "patientId") Integer patientId,
      @RequestParam(required = true, value = "date") String date,
      @RequestParam(required = false, value = "dateFormat") String dateFormat)
      throws Exception {

    response.setContentType("text/html");
    ServletOutputStream out = response.getOutputStream();
    List<Locale> l = new Vector<Locale>();
    l.add(Context.getLocale());

    List<Encounter> encounters = Context.getEncounterService().getEncountersByPatientId(patientId);
   
    // if the AJAX call has passed a date format, use that, otherwise use the standard date format to parse the date
    SimpleDateFormat dateFormatter;
    if (dateFormat != null) {
      dateFormatter = new SimpleDateFormat(dateFormat);
    }
    else {
      dateFormatter = Context.getDateFormat();
    }
    Date dateToCheck = dateFormatter.parse(date);
   
    boolean duplicate = false;
   
    for(Encounter enc: encounters)
    {
      if(enc.getForm() != null)
      {
        Form encForm = enc.getForm();
        HtmlForm htmlForm = HtmlFormEntryUtil.getService().getHtmlFormByForm(encForm);
        if(htmlForm != null && htmlForm.getId().equals(formId) && dateToCheck.compareTo(enc.getEncounterDatetime()) == 0)
        {
          duplicate = true;
        }
      }
    }
   
    if(duplicate)
    {
      out.print("true");
    }
    else
    {
      out.print("false");
    }
  }
}
TOP

Related Classes of org.openmrs.module.htmlformentry.web.controller.HtmlFormAjaxValidationController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.