@SuppressWarnings("unused")
  public ActionForward manage(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    request.setAttribute("lookupLists", lookupListManager.findAllActiveLookupLists(loggedInInfo));

    return mapping.findForward("success");
  }
Example #2
0
  public ActionForward save(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);

    DynaActionForm dform = (DynaActionForm) form;
    Episode episode = (Episode) dform.get("episode");
    Integer id = null;
    try {
      id = Integer.parseInt(request.getParameter("episode.id"));
    } catch (NumberFormatException e) {
      /*empty*/
    }
    Episode e = null;
    if (id != null && id.intValue() > 0) {
      e = episodeDao.find(Integer.valueOf(id));
    } else {
      e = new Episode();
    }
    BeanUtils.copyProperties(episode, e, new String[] {"id", "lastUpdateTime", "lastUpdateUser"});
    e.setLastUpdateUser(loggedInInfo.getLoggedInProviderNo());

    if (!securityInfoManager.hasPrivilege(
        LoggedInInfo.getLoggedInInfoFromSession(request),
        "_demographic",
        "w",
        e.getDemographicNo())) {
      throw new SecurityException("missing required security object (_demographic)");
    }

    if (id != null && id.intValue() > 0) {
      episodeDao.merge(e);
    } else {
      episodeDao.persist(e);
    }
    request.setAttribute("parentAjaxId", "episode");
    return mapping.findForward("success");
  }
  private EncounterTypeDataRow getEncounterTypeDataRow(
      Integer roleId, EncounterUtil.EncounterType encounterType) {

    EncounterTypeDataRow result = new EncounterTypeDataRow();
    Map<Integer, Integer> counts = new HashMap<Integer, Integer>();
    int rowTotalUniqueEncounters = 0;
    int rowTotalUniqueClients = 0;

    if (functionalCentre != null) {
      List<Program> programList =
          programDao.getProgramsByFacilityIdAndFunctionalCentreId(
              loggedInInfo.getCurrentFacility().getId(), functionalCentre.getId());
      for (Program p : programList) {
        Map<Integer, Integer> counts1 =
            populationReportDao.getCaseManagementNoteCountGroupedByIssueGroup(
                p.getId(), roleId, encounterType, startDate, endDate);

        counts.putAll(addNewCounts(counts, counts1));

        rowTotalUniqueEncounters +=
            populationReportDao.getCaseManagementNoteTotalUniqueEncounterCountInIssueGroups(
                p.getId(), roleId, encounterType, startDate, endDate);
        rowTotalUniqueClients +=
            populationReportDao.getCaseManagementNoteTotalUniqueClientCountInIssueGroups(
                p.getId(), roleId, encounterType, startDate, endDate);
      }
    }
    if (program != null) {
      Map<Integer, Integer> counts2 =
          populationReportDao.getCaseManagementNoteCountGroupedByIssueGroup(
              program.getId(), roleId, encounterType, startDate, endDate);

      counts.putAll(addNewCounts(counts, counts2));

      rowTotalUniqueEncounters +=
          populationReportDao.getCaseManagementNoteTotalUniqueEncounterCountInIssueGroups(
              program.getId(), roleId, encounterType, startDate, endDate);
      rowTotalUniqueClients +=
          populationReportDao.getCaseManagementNoteTotalUniqueClientCountInIssueGroups(
              program.getId(), roleId, encounterType, startDate, endDate);
    }

    for (IssueGroup issueGroup : getIssueGroups()) {
      Integer count = counts.get(issueGroup.getId());
      result.put(issueGroup, (count != null ? count : 0));
    }

    result.rowTotalUniqueEncounters = rowTotalUniqueEncounters;
    result.rowTotalUniqueClients = rowTotalUniqueClients;

    return (result);
  }
Example #4
0
  public ActionForward getTickler(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);

    if (!securityInfoManager.hasPrivilege(
        LoggedInInfo.getLoggedInInfoFromSession(request), "_tickler", "r", null)) {
      throw new SecurityException("missing required security object (_demographic)");
    }

    Tickler t =
        ticklerManager.getTickler(
            loggedInInfo, Integer.parseInt(request.getParameter("tickler_no")));

    HashMap<String, HashMap<String, Object>> hashMap =
        new HashMap<String, HashMap<String, Object>>();
    HashMap<String, Object> ticklerMap = new HashMap<String, Object>();

    ticklerMap.put("message", t.getMessage());
    ticklerMap.put("updateDate", t.getUpdateDate());
    ticklerMap.put("provider", t.getProvider().getFormattedName());
    ticklerMap.put("providerNo", t.getProvider().getProviderNo());
    ticklerMap.put("toProvider", t.getAssignee().getFormattedName());
    ticklerMap.put("toProviderNo", t.getAssignee().getProviderNo());

    hashMap.put("tickler", ticklerMap);

    JsonConfig config = new JsonConfig();
    config.registerJsonBeanProcessor(java.sql.Date.class, new JsDateJsonBeanProcessor());

    JSONObject json = JSONObject.fromObject(hashMap, config);
    response.getOutputStream().write(json.toString().getBytes());

    return null;
  }
  @SuppressWarnings("unused")
  public ActionForward manageSingle(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    String listName = request.getParameter("listName");
    if (listName != null && !listName.isEmpty()) {
      request.setAttribute(
          "lookupListSingle", lookupListManager.findLookupListByName(loggedInInfo, listName));
    }

    return mapping.findForward("success");
  }
Example #6
0
  public ActionForward list(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    Integer demographicNo = Integer.parseInt(request.getParameter("demographicNo"));

    if (!securityInfoManager.hasPrivilege(
        LoggedInInfo.getLoggedInInfoFromSession(request), "_demographic", "r", demographicNo)) {
      throw new SecurityException("missing required security object (_demographic)");
    }

    List<Episode> episodes = episodeDao.findAll(demographicNo);
    request.setAttribute("episodes", episodes);
    return mapping.findForward("list");
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws ServletException, IOException {
    String providerNo = LoggedInInfo.getLoggedInInfoFromSession(request).getLoggedInProviderNo();
    if (providerNo == null) return mapping.findForward("eject");

    ProEditSignatureForm frm = (ProEditSignatureForm) form;

    ProSignatureData sigData = new ProSignatureData();
    String sig = frm.getSignature();
    sigData.enterSignature(providerNo, sig);

    return mapping.findForward("success");
  }
  @SuppressWarnings("unused")
  public ActionForward add(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    String lookupListItemLabel = request.getParameter("lookupListItemLabel");
    String lookupListId = request.getParameter("lookupListId");
    String user = (String) request.getSession().getAttribute("user");
    LookupListItem lookupListItem;
    int lookupListIdInteger;
    List<LookupListItem> lookupListItems;

    if (user == null) {
      user = "";
    }

    if (lookupListItemLabel != null
        && !lookupListItemLabel.isEmpty()
        && lookupListId != null
        && !lookupListId.isEmpty()) {

      lookupListIdInteger = Integer.parseInt(lookupListId);
      lookupListItems =
          lookupListManager.findLookupListItemsByLookupListId(loggedInInfo, lookupListIdInteger);
      lookupListItem = new LookupListItem();
      lookupListItem.setActive(true);
      lookupListItem.setCreatedBy(user);
      lookupListItem.setDisplayOrder(
          lookupListItems.get(lookupListItems.size() - 1).getDisplayOrder() + 1);
      lookupListItem.setLabel(lookupListItemLabel);
      lookupListItem.setLookupListId(lookupListIdInteger);
      lookupListItem.setValue(UUID.randomUUID().toString());

      lookupListManager.addLookupListItem(loggedInInfo, lookupListItem);
    }

    request.setAttribute("lookupLists", lookupListManager.findAllActiveLookupLists(loggedInInfo));

    return mapping.findForward("success");
  }
  @SuppressWarnings("unused")
  public ActionForward remove(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    String lookupListItemId = request.getParameter("lookupListItemId");
    int id = 0;

    if (lookupListItemId != null && !lookupListItemId.isEmpty()) {
      id = Integer.parseInt(lookupListItemId);
    }

    if (id > 0) {
      lookupListManager.removeLookupListItem(loggedInInfo, id);
    }

    request.setAttribute("lookupLists", lookupListManager.findAllActiveLookupLists(loggedInInfo));

    return mapping.findForward("success");
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

    if (!securityInfoManager.hasPrivilege(
        LoggedInInfo.getLoggedInInfoFromSession(request), "_con", "r", null)) {
      throw new SecurityException("missing required security object (_con)");
    }

    String reqId = request.getParameter("reqId");
    String demoNo = request.getParameter("demographicNo");
    // ArrayList docs = EDocUtil.listDocs( demoNo, reqId, EDocUtil.ATTACHED);
    String[] docs = request.getParameterValues("docNo");
    ArrayList alist = new ArrayList();
    String path = OscarProperties.getInstance().getProperty("DOCUMENT_DIR");

    for (int i = 0; i < docs.length; i++) alist.add(path + docs[i]);

    if (alist.size() > 0) {
      response.setContentType("application/pdf"); // octet-stream
      response.setHeader(
          "Content-Disposition",
          "attachment; filename=\"combinedPDF-"
              + UtilDateUtilities.getToday("yyyy-mm-dd.hh.mm.ss")
              + ".pdf\"");
      try {
        ConcatPDF.concat(alist, response.getOutputStream());
      } catch (IOException ex) {
        MiscUtils.getLogger().error("Error", ex);
      }
      return null;
    }

    return mapping.findForward("noprint");
  }
Example #11
0
  public ActionForward sendPlan(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    HashMap<String, Object> hashMap = new HashMap<String, Object>();

    ProviderDao providerDao = (ProviderDao) SpringUtils.getBean("providerDao");
    SecUserRoleDao secUserRoleDao = (SecUserRoleDao) SpringUtils.getBean("secUserRoleDao");

    List<Provider> activeReceptionists = new ArrayList<Provider>();
    for (SecUserRole sur : secUserRoleDao.getSecUserRolesByRoleName("receptionist")) {
      Provider p = providerDao.getProvider(sur.getProviderNo());
      if (p != null && p.getStatus().equals("1")) {
        activeReceptionists.add(p);
      }
    }

    TicklerCreator tc = new TicklerCreator();
    String demographicNo = request.getParameter("demographicNo");

    String message = request.getParameter("value");

    if (demographicNo != null
        && message != null
        && message.trim().length() > 0
        && activeReceptionists != null) {
      for (Provider p : activeReceptionists) {
        tc.createTickler(loggedInInfo, demographicNo, p.getProviderNo(), message);
      }

      hashMap.put("sentToReceptionists", activeReceptionists.size());
    }

    return null;
  }
  @SuppressWarnings("unused")
  public ActionForward order(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {

    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    String lookupListItemId = request.getParameter("lookupListItemId");
    String lookupListItemDisplayOrder = request.getParameter("lookupListItemDisplayOrder");

    if (lookupListItemId != null
        && !lookupListItemId.isEmpty()
        && lookupListItemDisplayOrder != null
        && !lookupListItemDisplayOrder.isEmpty()) {

      lookupListManager.updateLookupListItemDisplayOrder(
          loggedInInfo,
          Integer.parseInt(lookupListItemId),
          Integer.parseInt(lookupListItemDisplayOrder));
    }

    return mapping.findForward("success");
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws IOException, ServletException {

    if (request.getSession().getAttribute("user") == null) {
      return (mapping.findForward("Logout"));
    }

    oscar.oscarBilling.pageUtil.BillingSessionBean bean;
    bean =
        (oscar.oscarBilling.pageUtil.BillingSessionBean)
            request.getSession().getAttribute("billingSessionBean");

    String[] service = ((BillingCreateBillingForm) form).getService();
    String other_service1 = ((BillingCreateBillingForm) form).getXml_other1();
    String other_service2 = ((BillingCreateBillingForm) form).getXml_other2();
    String other_service3 = ((BillingCreateBillingForm) form).getXml_other3();
    String other_service1_unit = ((BillingCreateBillingForm) form).getXml_other1_unit();
    String other_service2_unit = ((BillingCreateBillingForm) form).getXml_other2_unit();
    String other_service3_unit = ((BillingCreateBillingForm) form).getXml_other3_unit();
    oscar.oscarBilling.pageUtil.BillingBillingManager bmanager;
    bmanager = new BillingBillingManager();
    ArrayList<BillingItem> billItem =
        bmanager.getDups2(
            service,
            other_service1,
            other_service2,
            other_service3,
            other_service1_unit,
            other_service2_unit,
            other_service3_unit);
    MiscUtils.getLogger().debug("Calling getGrandTotal");

    bean.setGrandtotal(bmanager.getGrandTotal(billItem));
    MiscUtils.getLogger().debug("GrandTotal" + bmanager.getGrandTotal(billItem));
    oscar.oscarDemographic.data.DemographicData demoData =
        new oscar.oscarDemographic.data.DemographicData();

    org.oscarehr.common.model.Demographic demo =
        demoData.getDemographic(
            LoggedInInfo.getLoggedInInfoFromSession(request), bean.getPatientNo());
    bean.setPatientLastName(demo.getLastName());
    bean.setPatientFirstName(demo.getFirstName());
    bean.setPatientDoB(DemographicData.getDob(demo));
    bean.setPatientAddress1(demo.getAddress());
    bean.setPatientAddress2(demo.getCity());
    bean.setPatientPostal(demo.getPostal());
    bean.setPatientSex(demo.getSex());
    bean.setPatientPHN(demo.getHin() + demo.getVer());
    bean.setPatientHCType(demo.getHcType());
    bean.setPatientAge(demo.getAge());
    bean.setBillingType(((BillingCreateBillingForm) form).getXml_billtype());
    bean.setVisitType(((BillingCreateBillingForm) form).getXml_visittype());
    bean.setVisitLocation(((BillingCreateBillingForm) form).getXml_location());
    bean.setServiceDate(((BillingCreateBillingForm) form).getXml_appointment_date());
    bean.setStartTime(((BillingCreateBillingForm) form).getXml_starttime());
    bean.setEndTime(((BillingCreateBillingForm) form).getXml_endtime());
    bean.setAdmissionDate(((BillingCreateBillingForm) form).getXml_vdate());
    bean.setBillingProvider(((BillingCreateBillingForm) form).getXml_provider());

    oscar.oscarBilling.data.BillingFormData billform =
        new oscar.oscarBilling.data.BillingFormData();

    bean.setBillingPracNo(billform.getPracNo(((BillingCreateBillingForm) form).getXml_provider()));
    bean.setBillingGroupNo(
        billform.getGroupNo(((BillingCreateBillingForm) form).getXml_provider()));

    bean.setDx1(((BillingCreateBillingForm) form).getXml_diagnostic_detail1());
    bean.setDx2(((BillingCreateBillingForm) form).getXml_diagnostic_detail2());
    bean.setDx3(((BillingCreateBillingForm) form).getXml_diagnostic_detail3());
    bean.setReferral1(((BillingCreateBillingForm) form).getXml_refer1());
    bean.setReferral2(((BillingCreateBillingForm) form).getXml_refer2());
    bean.setReferType1(((BillingCreateBillingForm) form).getRefertype1());
    bean.setReferType2(((BillingCreateBillingForm) form).getRefertype2());
    bean.setBillItem(billItem);

    // bean.setApptProviderNo(request.getParameter("apptProvider_no"));
    // bean.setPatientName(request.getParameter("demographic_name"));
    // bean.setProviderView(request.getParameter("providerview"));
    // bean.setBillRegion(request.getParameter("billRegion"));
    // bean.setBillForm(request.getParameter("billForm"));
    // bean.setCreator(request.getParameter("user_no"));
    // bean.setPatientNo(request.getParameter("demographic_no"));
    // bean.setApptNo(request.getParameter("appointment_no"));
    // bean.setApptDate(request.getParameter("appointment_date"));

    return (mapping.findForward("success"));
  }
  public int addOneClaimHeaderRecord(LoggedInInfo loggedInInfo, BillingClaimHeader1Data val) {
    BillingONCHeader1 b = new BillingONCHeader1();
    b.setHeaderId(0);
    b.setTranscId(val.transc_id);
    b.setRecId(val.rec_id);
    b.setHin(val.hin);
    b.setVer(val.ver);
    b.setDob(val.dob);
    b.setPayProgram(val.pay_program);
    b.setPayee(val.payee);
    b.setRefNum(val.ref_num);
    b.setFaciltyNum(val.facilty_num);
    if (val.admission_date.length() > 0)
      try {
        b.setAdmissionDate(dateformatter.parse(val.admission_date));
      } catch (ParseException e) {
        /*empty*/
      }

    b.setRefLabNum(val.ref_lab_num);
    b.setManReview(val.man_review);
    b.setLocation(val.location);
    b.setDemographicNo(Integer.parseInt(val.demographic_no));
    b.setProviderNo(val.provider_no);
    String apptNo = StringUtils.trimToNull(val.appointment_no);

    if (apptNo != null) {
      b.setAppointmentNo(Integer.parseInt(val.appointment_no));
    } else {
      b.setAppointmentNo(null);
    }

    b.setDemographicName(StringEscapeUtils.escapeSql(val.demographic_name));
    b.setSex(val.sex);
    b.setProvince(val.province);
    if (val.billing_date.length() > 0)
      try {
        b.setBillingDate(dateformatter.parse(val.billing_date));
      } catch (ParseException e) {
        /*empty*/
      }
    if (val.billing_time.length() > 0)
      try {
        b.setBillingTime(timeFormatter.parse(val.billing_time));
      } catch (ParseException e) {
        MiscUtils.getLogger().error("Invalid time", e);
      }

    b.setTotal(new BigDecimal(val.total == null ? "0.00" : val.total));

    if (val.paid == null || val.paid.isEmpty()) {
      b.setPaid(new BigDecimal("0.00"));
    } else {
      b.setPaid(new BigDecimal(val.paid));
    }

    b.setStatus(val.status);
    b.setComment(StringEscapeUtils.escapeSql(val.comment));
    b.setVisitType(val.visittype);
    b.setProviderOhipNo(val.provider_ohip_no);
    b.setProviderRmaNo(val.provider_rma_no);
    b.setApptProviderNo(val.apptProvider_no);
    b.setAsstProviderNo(val.asstProvider_no);
    b.setCreator(val.creator);
    b.setClinic(val.clinic);

    ProgramProvider pp =
        programManager2.getCurrentProgramInDomain(
            loggedInInfo, loggedInInfo.getLoggedInProviderNo());

    if (pp != null) {
      b.setProgramNo(pp.getProgramId().intValue());
    }

    cheaderDao.persist(b);

    return b.getId();
  }
Example #15
0
  public ActionForward getBillingArgs(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    HashMap<String, Object> hashMap = new HashMap<String, Object>();

    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);

    DemographicDao demographicDao = (DemographicDao) SpringUtils.getBean("demographicDao");
    OscarAppointmentDao appointmentDao =
        (OscarAppointmentDao) SpringUtils.getBean("oscarAppointmentDao");

    Appointment appointment = null;
    try {
      appointment = appointmentDao.find(Integer.parseInt(request.getParameter("appointment_no")));
    } catch (Exception e) {
      // appointment_no is not a number, I guess
      appointment = null;
    }

    Demographic demographic = demographicDao.getDemographic(request.getParameter("demographic_no"));

    hashMap.put("ohip_version", "V03G");

    if (demographic != null) {
      Integer sex = null;
      if (demographic.getSex().equalsIgnoreCase("M")) sex = 1;
      else if (demographic.getSex().equalsIgnoreCase("F")) sex = 2;

      String dateOfBirth =
          StringUtils.join(
              new String[] {
                demographic.getYearOfBirth(),
                demographic.getMonthOfBirth(),
                demographic.getDateOfBirth()
              },
              "");

      hashMap.put("hin", demographic.getHin());
      hashMap.put("ver", demographic.getVer());
      hashMap.put("hc_type", demographic.getHcType());
      hashMap.put("sex", sex);
      hashMap.put("demographic_dob", dateOfBirth);
      hashMap.put("demographic_name", demographic.getLastName() + "," + demographic.getFirstName());
    }

    if (appointment != null) {
      hashMap.put("apptProvider_no", appointment.getProviderNo());
      hashMap.put("start_time", appointment.getStartTime().toString());
      hashMap.put("appointment_date", appointment.getAppointmentDate().getTime());
    }

    hashMap.put("current_provider_no", loggedInInfo.getLoggedInProviderNo());
    hashMap.put("demo_mrp_provider_no", demographic.getProviderNo());

    JsonConfig config = new JsonConfig();
    config.registerJsonBeanProcessor(java.sql.Date.class, new JsDateJsonBeanProcessor());

    JSONObject json = JSONObject.fromObject(hashMap, config);
    response.getOutputStream().write(json.toString().getBytes());

    return null;
  }
  @Override
  public void run() {
    LoggedInInfo.setLoggedInInfoToCurrentClassAndMethod();
    try {
      log.debug("start bed program discharge task");

      Program[] bedPrograms = programManager.getBedPrograms();

      if (bedPrograms == null) {
        log.error("getBedPrograms returned null");
        return;
      }

      for (Program bedProgram : bedPrograms) {
        MiscUtilsOld.checkShutdownSignaled();

        Date dischargeTime = DateTimeFormatUtils.getTimeFromString(DISCHARGE_TIME);
        Date previousExecutionTime =
            DateTimeFormatUtils.getTimeFromLong(scheduledExecutionTime() - PERIOD);
        Date currentExecutionTime = DateTimeFormatUtils.getTimeFromLong(scheduledExecutionTime());

        // previousExecutionTime < dischargeTime <= currentExecutionTime
        if (previousExecutionTime.before(dischargeTime)
            && (dischargeTime.equals(currentExecutionTime)
                || dischargeTime.before(currentExecutionTime))) {
          Bed[] reservedBeds = bedManager.getBedsByProgram(bedProgram.getId(), true);

          if (reservedBeds == null) {
            log.error(
                "getBedsByProgram returned null for bed program with id: " + bedProgram.getId());
            continue;
          }

          for (Bed reservedBed : reservedBeds) {
            MiscUtilsOld.checkShutdownSignaled();

            BedDemographic bedDemographic =
                bedDemographicManager.getBedDemographicByBed(reservedBed.getId());

            if (bedDemographic != null
                && bedDemographic.getId() != null
                && bedDemographic.isExpired()) {
              try {
                admissionManager.processDischargeToCommunity(
                    Program.DEFAULT_COMMUNITY_PROGRAM_ID,
                    bedDemographic.getId().getDemographicNo(),
                    Provider.SYSTEM_PROVIDER_NO,
                    "bed reservation ended - automatically discharged",
                    "0",
                    null);
              } catch (AdmissionException e) {
                log.error("Error discharging to community", e);
              }
            }
          }
        }
      }

      log.debug("finish bed program discharge task");
    } catch (ShutdownException e) {
      log.debug("BedProgramDischargeTask noticed shutdown signaled.");
    } finally {
      LoggedInInfo.loggedInInfo.remove();
      DbConnectionFilter.releaseAllThreadDbResources();
    }
  }
  @Override
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response) {
    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);
    if (!securityInfoManager.hasPrivilege(loggedInInfo, "_lab", "w", null)) {
      throw new SecurityException("missing required security object (_lab)");
    }

    LabUploadForm frm = (LabUploadForm) form;
    FormFile importFile = frm.getImportFile();
    String filename = importFile.getFileName();
    String proNo = (String) request.getSession().getAttribute("user");
    String outcome = "failure";

    InputStream formFileIs = null;
    InputStream localFileIs = null;

    try {
      formFileIs = importFile.getInputStream();

      String type = request.getParameter("type");
      if (type.equals("OTHER")) type = request.getParameter("otherType");

      String filePath = Utilities.saveFile(formFileIs, filename);
      File file = new File(filePath);

      localFileIs = new FileInputStream(filePath);
      int checkFileUploadedSuccessfully =
          FileUploadCheck.addFile(file.getName(), localFileIs, proNo);

      if (checkFileUploadedSuccessfully != FileUploadCheck.UNSUCCESSFUL_SAVE) {
        logger.debug("filePath" + filePath);
        logger.debug("Type :" + type);
        MessageHandler msgHandler = HandlerClassFactory.getHandler(type);
        if (msgHandler != null) {
          logger.debug("MESSAGE HANDLER " + msgHandler.getClass().getName());
        }
        if ((msgHandler.parse(
                loggedInInfo,
                getClass().getSimpleName(),
                filePath,
                checkFileUploadedSuccessfully,
                request.getRemoteAddr()))
            != null) outcome = "success";

      } else {
        outcome = "uploaded previously";
      }

    } catch (Exception e) {
      logger.error("Error: ", e);
      outcome = "exception";
    } finally {
      IOUtils.closeQuietly(formFileIs);
      IOUtils.closeQuietly(localFileIs);
    }

    request.setAttribute("outcome", outcome);
    return mapping.findForward("success");
  }
Example #18
0
  @Override
  public void run() {
    LoggedInInfo.setLoggedInInfoToCurrentClassAndMethod();
    try {
      logger.info("start ocan submission task");

      OcanProcess process = ocanDataProcessor.createOcanProcess();

      if (useTestData) {

        ocanDataProcessor.createOcanRecord(
            process,
            new FileInputStream(testDataPath + "/client.xml"),
            new FileInputStream(testDataPath + "/staff.xml"),
            "1001");
      } else {

        Calendar after = new GregorianCalendar();
        after.roll(Calendar.MONTH, -1);

        List<Map<String, String>> intakes = genericIntakeManager.getIntakeListforOcan(after);

        if (intakes == null || intakes.size() == 0) {
          logger.warn(
              "getIntakeListforOcan() returned null or empty list - no data for submission.");
          return;
        }

        for (Map<String, String> intakeMap : intakes) {
          MiscUtilsOld.checkShutdownSignaled();

          try {
            ocanDataProcessor.createOcanRecord(
                process,
                new ByteArrayInputStream(intakeMap.get("client").getBytes()),
                new ByteArrayInputStream(intakeMap.get("staff").getBytes()),
                intakeMap.get("clientId"));

          } catch (Exception e) {
            logger.error("createOcanRecord() thrown an exception, skipping the record.", e);
            continue;
          }
        }
      }

      ocanDataProcessor.finishOcanProcess(process);

      logger.info("finish ocan submission task");

    } catch (ShutdownException e) {
      logger.debug("OcanSubmissionTask noticed shutdown signaled.");
    } catch (FileNotFoundException e) {
      logger.error("finishOcanProcess() thrown an exception, terminating the submission.", e);
    } catch (JAXBException e) {
      logger.error("finishOcanProcess() thrown an exception, terminating the submission.", e);
    } catch (NumberFormatException e) {
      logger.error("finishOcanProcess() thrown an exception, terminating the submission.", e);
    } catch (ParseException e) {
      logger.error("finishOcanProcess() thrown an exception, terminating the submission.", e);
    } finally {
      LoggedInInfo.loggedInInfo.remove();
      DbConnectionFilter.releaseAllThreadDbResources();
    }
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws Exception {
    LoggedInInfo loggedInInfo = LoggedInInfo.getLoggedInInfoFromSession(request);

    ProcessConsultationBean formBean = null;

    String path = request.getSession().getServletContext().getRealPath("/");
    ConsultationConfiguration config =
        new ConsultationConfiguration(path + File.separator + "WEB-INF/consultation.xml");
    ConsultationsConfigBean configBean = config.loadConfig();

    String providerNo = (String) request.getSession().getAttribute("user");

    if (request.getParameter("action") == null) {
      formBean = new ProcessConsultationBean();
      formBean.setId("Process Consultation Request");
      request.setAttribute("formHandler", formBean);
      return new ActionForward(getViewPath());
    }

    // populate the bean - better way to do this???
    formBean = tearForm(request);

    if (formBean.getDemographic_no() != null && formBean.getAction().equals("populate")) {
      List<ConsultationRequest> consultationRequests =
          consultationRequestDao.getConsults(Integer.parseInt(formBean.getDemographic_no()));
      request.setAttribute("consultations", consultationRequests);
      formBean.setAction("");
      request.setAttribute("formBean", formBean);
      return new ActionForward(this.getViewPath());
    }

    if (formBean.getAction().equals("generate")) {
      String requestId = request.getParameter("current_consultation");
      ConsultationRequest consultation = consultationRequestDao.find(Integer.parseInt(requestId));
      ProfessionalSpecialist spec = professionalSpecialistDao.find(consultation.getSpecialistId());
      // Provider provider = providerMgr
      // create a tickler here
      Tickler tickler = new Tickler();
      tickler.setCreator(providerNo);
      tickler.setDemographicNo(Integer.parseInt(formBean.getDemographic_no()));
      tickler.setServiceDate(new Date());
      tickler.setTaskAssignedTo(configBean.getProcessrequest().getRecipient());
      String contextName =
          request.getScheme()
              + "://"
              + request.getServerName()
              + ":"
              + request.getServerPort()
              + request.getContextPath().substring(0, request.getContextPath().indexOf("/", 1));
      tickler.setMessage(
          "A consultation request has been made for <br/>"
              + formBean.getDemographic_name()
              + "<br/>to<br/>"
              + spec.getFirstName()
              + " "
              + spec.getLastName()
              + " <br/>ADDRESS:"
              + spec.getStreetAddress()
              + " <br/>PHONE:"
              + spec.getPhoneNumber()
              + " <br/>FAX:"
              + spec.getFaxNumber()
              + "<br/>Reason: "
              + consultation.getReasonForReferral()
              + "<br/><br/>"
              + "Please obtain an appointment, and enter the information into the consultation form, and update"
              + " the status to 'Nothing'."
              + "<br/>"
              + "<br/><a target=\"consultation\" href=\""
              + contextName
              + "/oscarEncounter/ViewRequest.do?requestId="
              + consultation.getId()
              + "\">Link to consultation</a>"
              + "<br/><a target=\"demographic\" href=\""
              + contextName
              + "/demographic/demographiccontrol.jsp?displaymode=edit&demographic_no="
              + formBean.getDemographic_no()
              + "&dboperation=search_detail\">Link to patient</a>");

      ticklerMgr.addTickler(loggedInInfo, tickler);
    }
    return null;
  }
  public ActionForward execute(
      ActionMapping mapping,
      ActionForm form,
      HttpServletRequest request,
      HttpServletResponse response)
      throws IOException, ServletException {
    if (request.getSession().getAttribute("user") == null) {
      return (mapping.findForward("Logout"));
    }

    BillingReProcessBillForm frm = (BillingReProcessBillForm) form;

    GregorianCalendar now = new GregorianCalendar();
    int curYear = now.get(Calendar.YEAR);
    int curMonth = (now.get(Calendar.MONTH) + 1);
    int curDay = now.get(Calendar.DAY_OF_MONTH);
    String curDate =
        String.valueOf(curYear) + "-" + String.valueOf(curMonth) + "-" + String.valueOf(curDay);

    String dataCenterId = OscarProperties.getInstance().getProperty("dataCenterId");

    String billingmasterNo = frm.getBillingmasterNo();

    String demographicNo = frm.getDemoNo();
    DemographicData demoD = new DemographicData();
    org.oscarehr.common.model.Demographic demo =
        demoD.getDemographic(LoggedInInfo.getLoggedInInfoFromSession(request), demographicNo);

    oscar.oscarBilling.data.BillingFormData billform =
        new oscar.oscarBilling.data.BillingFormData();

    ///
    String providerNo = frm.getProviderNo(); // f
    String demographicFirstName = demo.getFirstName(); // d
    String demographicLastName = demo.getLastName(); // d
    String name_verify =
        demographicFirstName.substring(0, 1) + " " + demographicLastName.substring(0, 2); // d
    String billingGroupNo = billform.getGroupNo(providerNo);
    String practitionerNo = billform.getPracNo(providerNo); // p
    String hcNo = demo.getHin().trim() + demo.getVer().trim(); // d
    String dependentNo = frm.getDependentNo(); // f

    String visitLocation = frm.getLocationVisit(); // f
    String clarificationCode = visitLocation.substring(0, 2); // f
    String anatomicalArea = frm.getAnatomicalArea(); // f
    String afterHour = frm.getAfterHours(); // f
    String newProgram = frm.getNewProgram(); // f
    String billingUnit = frm.getBillingUnit(); // /f
    String billingServiceCode = frm.getService_code(); // f
    String billingServicePrice = frm.getBillingAmount(); // f
    String payment_mode = frm.getPaymentMode(); // f
    String serviceDate = frm.getServiceDate(); // f
    String serviceToDate = frm.getServiceToDay(); // f
    String submissionCode = frm.getSubmissionCode(); // f
    String exSubmissionCode = ""; // f
    String dxCode1 = frm.getDx1(); // f
    String dxCode2 = frm.getDx2(); // f
    String dxCode3 = frm.getDx3(); // f
    String dxExpansion = ""; // f
    String serviceLocation = frm.getServiceLocation().substring(0, 1); // f

    String referralFlag1 = frm.getReferalPracCD1(); // f
    String referralNo1 = frm.getReferalPrac1(); // f
    String referralFlag2 = frm.getReferalPracCD2(); // f
    String referralNo2 = frm.getReferalPrac2(); // f
    String timeCall = frm.getTimeCallRec(); // f
    String serviceStartTime = frm.getStartTime(); // f
    String serviceEndTime = frm.getFinishTime(); // f
    String birthDate = DemographicData.getDob(demo); // d
    String correspondenceCode = frm.getCorrespondenceCode(); // f
    String claimComment = frm.getShortComment(); // f

    String billingStatus = frm.getStatus(); // f

    String oinInsurerCode = frm.getInsurerCode(); // f
    String oinRegistrationNo = demo.getHin() + demo.getVer(); // d
    String oinBirthdate = DemographicData.getDob(demo); // d
    String oinFirstName = demo.getFirstName(); // d
    String oinSecondName = ""; // d
    String oinSurname = demo.getLastName(); // d
    String oinSexCode = demo.getSex(); // d
    String oinAddress = demo.getAddress(); // d
    String oinAddress2 = demo.getCity(); // d
    String oinAddress3 = ""; // d
    String oinAddress4 = ""; // d
    String oinPostalcode = demo.getPostal(); // d

    String hcType = demo.getHcType(); // d
    String billRegion = OscarProperties.getInstance().getProperty("billregion");
    ////

    String submit = frm.getSubmit();
    String secondSQL = null;

    if (submit.equals("Resubmit Bill") || billingStatus.equals("O")) {
      billingStatus = "O";
      secondSQL = "update billing set status = 'O' where billing_no ='" + frm.getBillNumber() + "'";
    } else if (submit.equals("Settle Bill")) {
      billingStatus = "S";
    }

    if (hcType.equals(billRegion)) { // if its bc go on
      oinInsurerCode = "";
      oinRegistrationNo = "";
      oinBirthdate = "";
      oinFirstName = "";
      oinSecondName = "";
      oinSurname = "";
      oinSexCode = "";
      oinAddress = "";
      oinAddress2 = "";
      oinAddress3 = "";
      oinAddress4 = "";
      oinPostalcode = "";

    } else { // other provinces
      oinInsurerCode = hcType;
      hcNo = "000000000";
      name_verify = "0000";
    }

    Billingmaster b = billingmasterDao.getBillingmaster(Integer.parseInt(billingmasterNo));
    if (b != null) {
      b.setBillingstatus(billingStatus);
      b.setDatacenter(dataCenterId);
      b.setPayeeNo(billingGroupNo);
      b.setPractitionerNo(practitionerNo);
      b.setPhn(hcNo);
      b.setNameVerify(name_verify);
      b.setDependentNum(dependentNo);
      b.setBillingUnit(billingUnit);
      b.setClarificationCode(clarificationCode);
      b.setAnatomicalArea(anatomicalArea);
      b.setAfterHour(afterHour);
      b.setNewProgram(newProgram);
      b.setBillingCode(billingServiceCode);
      b.setBillAmount(billingServicePrice);
      b.setPaymentMode(payment_mode);
      b.setServiceDate(serviceDate);
      b.setServiceToDay(convertDate8Char(serviceDate));
      b.setSubmissionCode(exSubmissionCode);
      b.setExtendedSubmissionCode(exSubmissionCode);
      b.setDxCode1(dxCode1);
      b.setDxCode2(dxCode2);
      b.setDxCode3(dxCode3);
      b.setDxExpansion(dxExpansion);
      b.setServiceLocation(serviceLocation);
      b.setReferralFlag1(referralFlag1);
      b.setReferralNo1(referralNo1);
      b.setReferralFlag2(referralFlag2);
      b.setReferralNo2(referralNo2);
      b.setTimeCall(timeCall);
      b.setServiceStartTime(serviceStartTime);
      b.setServiceEndTime(serviceEndTime);
      b.setBirthDate(oinBirthdate);
      b.setCorrespondenceCode(correspondenceCode);
      b.setClaimComment(claimComment);
      b.setOinInsurerCode(oinInsurerCode);
      b.setOinRegistrationNo(oinRegistrationNo);
      b.setOinBirthdate(oinBirthdate);
      b.setOinFirstName(oinFirstName);
      b.setOinSecondName(oinSecondName);
      b.setOinSurname(oinSurname);
      b.setOinSexCode(oinSexCode);
      b.setOinAddress(oinAddress4);
      b.setOinAddress2(oinAddress2);
      b.setOinAddress3(oinAddress3);
      b.setOinAddress4(oinAddress4);
      b.setOinPostalcode(oinPostalcode);

      billingmasterDao.update(b);
    }

    if (secondSQL != null) {
      Billing bb = billingDao.find(Integer.parseInt(frm.getBillNumber()));
      if (bb != null) {
        bb.setStatus("O");
        billingDao.merge(bb);
      }
    }

    request.setAttribute("billing_no", billingmasterNo);
    return (mapping.findForward("success"));
  }