Example #1
0
  /**
   * ラボモジュールを検索する。
   *
   * @param patientId 対象患者のID
   * @param firstResult 取得結果リストの最初の番号
   * @param maxResult 取得する件数の最大値
   * @return ラボモジュールのリスト
   */
  @Override
  public List<NLaboModule> getLaboTest(String fidPid, int firstResult, int maxResult) {

    // String fidPid = SessionHelper.getQualifiedPid(ctx, patientId);

    //
    // 検体採取日の降順で返す
    //
    List<NLaboModule> ret =
        (List<NLaboModule>)
            em.createQuery(QUERY_MODULE_BY_FIDPID)
                .setParameter(FIDPID, fidPid)
                .setFirstResult(firstResult)
                .setMaxResults(maxResult)
                .getResultList();

    for (NLaboModule m : ret) {

      if (m.getReportFormat() != null && m.getReportFormat().equals(WOLF)) {
        List<NLaboItem> items =
            (List<NLaboItem>)
                em.createQuery(QUERY_ITEM_BY_MID_ORDERBY_SORTKEY)
                    .setParameter(MID, m.getId())
                    .getResultList();
        m.setItems(items);

      } else {
        List<NLaboItem> items =
            (List<NLaboItem>)
                em.createQuery(QUERY_ITEM_BY_MID).setParameter(MID, m.getId()).getResultList();
        m.setItems(items);
      }
    }
    return ret;
  }