lihong 2 лет назад
Родитель
Сommit
37588b9522

+ 4 - 3
src/main/java/cn/hnthyy/thmz/controller/zd/JcJyController.java

@@ -95,7 +95,7 @@ public class JcJyController {
                 resultMap.put("message", "查询检查检验列表失败,报告类型为空");
                 return resultMap;
             }
-            if (mzYjReq.getReqType() == null || !("2".equals(mzYjReq.getReqType()) || "3".equals(mzYjReq.getReqType()))) {
+            if (mzYjReq.getReqType() == null || !("2".equals(mzYjReq.getReqType()) || "3".equals(mzYjReq.getReqType()) || "4".equals(mzYjReq.getReqType()))) {
                 resultMap.put("code", -1);
                 resultMap.put("message", "查询检查检验列表失败,报告类型参数错误");
                 return resultMap;
@@ -119,8 +119,9 @@ public class JcJyController {
             } else {
                 mzYjReq.setPatientName(null);
             }
-            Integer count = jcJyItemChargeService.queryCountMzYjReq(mzYjReq);
-            List<MzYjReq> data = jcJyItemChargeService.queryMzYjReqByPatientIdAndReqDateWithPage(mzYjReq);
+            boolean ygjyFlag ="4".equals(mzYjReq.getReqType());
+            Integer count = ygjyFlag ? jcJyItemChargeService.queryCountYgJy(mzYjReq) : jcJyItemChargeService.queryCountMzYjReq(mzYjReq);
+            List<MzYjReq> data = ygjyFlag ?jcJyItemChargeService.querytYgJyPage(mzYjReq) : jcJyItemChargeService.queryMzYjReqByPatientIdAndReqDateWithPage(mzYjReq);
             if (data == null) {
                 resultMap.put("code", -1);
                 resultMap.put("message", "查询检查检验列表失败,暂时没有对应的报告");

+ 1 - 1
src/main/java/cn/hnthyy/thmz/entity/his/mz/MzYjReq.java

@@ -57,7 +57,7 @@ public class MzYjReq extends PageBean {
     private String printFlag;
     //接收标志:1:医技已接收;2:结果返回
     private String receiveFlag;
-    //申请单类型:2:检验;3:检查
+    //申请单类型:2:检验;3:检查 4.荧光检验
     private String reqType;
     //既往结果
     private String resultComment;

+ 36 - 0
src/main/java/cn/hnthyy/thmz/mapper/his/zd/JcJyItemChargeMapper.java

@@ -1,6 +1,7 @@
 package cn.hnthyy.thmz.mapper.his.zd;
 
 import cn.hnthyy.thmz.entity.his.mz.JcJyItemCharge;
+import cn.hnthyy.thmz.entity.his.mz.MzYjReq;
 import cn.hnthyy.thmz.entity.his.zd.JyZdItem;
 import org.apache.ibatis.annotations.Delete;
 import org.apache.ibatis.annotations.Insert;
@@ -237,4 +238,39 @@ public interface JcJyItemChargeMapper {
      */
     @Select("select code from  jy_item_charge WITH(NOLOCK) where charge_code=#{chargeCode} group by code ")
     List<String> selectCodeFromJyChargeItemByChargeCode(@Param("chargeCode") String chargeCode);
+    @Select({"<script>",
+            "select sum(num) from (",
+            "select count(*) num from  fluorescence_specimen_result where 1=1",
+            "<when test='patientId!=null'>",
+            " and pat_no =#{patientId} ",
+            "</when>",
+            "<when test='patientName!=null'>",
+            " and (pat_no like #{patientName} or patient_name like #{patientName})",
+            "</when>",
+            "<when test='beginTime!=null'>",
+            " and send_time <![CDATA[>=]]> #{beginTime} ",
+            "</when>",
+            "<when test='endTime!=null'>",
+            "  and send_time <![CDATA[<=]]>#{endTime} ",
+            "</when>  group by pat_no,times,patient_name )t "
+            , "</script>"})
+    Integer selectCountYgJy(MzYjReq mzYjReq);
+    @Select({"<script>",
+            "select top ${pageSize}   patient_name, pat_no patient_id, times from (" ,
+                    "select ROW_NUMBER() OVER (ORDER BY CURRENT_TIMESTAMP) AS RowNumber, patient_name, pat_no , times   from fluorescence_specimen_result where 1=1",
+            "<when test='patientId!=null'>",
+            " and pat_no =#{patientId} ",
+            "</when>",
+            "<when test='patientName!=null'>",
+            " and (pat_no like #{patientName} or patient_name like #{patientName})",
+            "</when>",
+            "<when test='beginTime!=null'>",
+            " and send_time <![CDATA[>=]]> #{beginTime} ",
+            "</when>",
+            "<when test='endTime!=null'>",
+            "  and send_time <![CDATA[<=]]>#{endTime} ",
+            "</when>",
+            " group by pat_no,times,patient_name) as A WHERE RowNumber >#{pageSize}*#{pageIndex} order by RowNumber asc"
+            , "</script>"})
+    List<MzYjReq> selectYgJyPage(MzYjReq mzYjReq);
 }

+ 16 - 3
src/main/java/cn/hnthyy/thmz/service/his/zd/JcJyItemChargeService.java

@@ -219,7 +219,20 @@ public interface JcJyItemChargeService {
      */
     String queryJcIdFromYjJcPatient(String patientId);
 
-
-
-
+    /**
+     * @description:查询荧光检查总数
+     * @author: lihong
+     * @date: 2023/7/5 10:56
+     * @param: mzYjReq
+     * @return: java.lang.Integer
+     **/
+    Integer queryCountYgJy(MzYjReq mzYjReq);
+    /**
+     * @description: 分页查询荧光检查
+     * @author: lihong
+     * @date: 2023/7/5 11:00
+     * @param: mzYjReq
+     * @return: java.util.List<cn.hnthyy.thmz.entity.his.mz.MzYjReq>
+     **/
+    List<MzYjReq> querytYgJyPage(MzYjReq mzYjReq);
 }

+ 18 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/zd/JcJyItemChargeServiceImpl.java

@@ -2,6 +2,7 @@ package cn.hnthyy.thmz.service.impl.his.zd;
 
 import cn.hnthyy.thmz.Utils.DateUtil;
 import cn.hnthyy.thmz.Utils.SignUtil;
+import cn.hnthyy.thmz.Utils.StringUtil;
 import cn.hnthyy.thmz.entity.MzException;
 import cn.hnthyy.thmz.entity.his.YjJcRecord;
 import cn.hnthyy.thmz.entity.his.YjJcRecordReport;
@@ -438,4 +439,21 @@ public class JcJyItemChargeServiceImpl implements JcJyItemChargeService {
         return mzYjReqMapper.selectJcIdFromYjJcPatient(patientId);
     }
 
+    @Override
+    public Integer queryCountYgJy(MzYjReq mzYjReq) {
+        setLikePatientName(mzYjReq);
+        return jcJyItemChargeMapper.selectCountYgJy(mzYjReq);
+    }
+
+    @Override
+    public List<MzYjReq> querytYgJyPage(MzYjReq mzYjReq) {
+        setLikePatientName(mzYjReq);
+        return jcJyItemChargeMapper.selectYgJyPage(mzYjReq);
+    }
+
+    private void  setLikePatientName(MzYjReq mzYjReq){
+        if(StringUtils.isNotBlank(mzYjReq.getPatientName())){
+            mzYjReq.setPatientName("%"+mzYjReq.getPatientName()+"%");
+        }
+    }
 }

+ 115 - 1
src/main/resources/static/js/mz/jy_jc.js

@@ -67,15 +67,116 @@ function initJcJyTable() {
         $('#tb_jy_table_list').bootstrapTable("destroy");
         initJcListTable();
         $("#jy_detail").removeClass("in").addClass("hide");
+        $("#ygjy_detail").removeClass("in").addClass("hide");
+        $("#ygjy_iframe_div").html("")
         $("#jc_detail").removeClass("hide").addClass("in");
-    } else {
+    }else if (typeIndex == 2) {
+        $('#tb_jy_pName_table_list').bootstrapTable("destroy");
+        $('#tb_jy_table_list').bootstrapTable("destroy");
+        initYgJyListTable();
+        $("#jy_detail").removeClass("in").addClass("hide");
+        $("#jc_detail").removeClass("in").addClass("hide");
+        $("#ygjy_detail").removeClass("hide").addClass("in");
+    }
+    else {
         $('#tb_table_list').bootstrapTable("destroy");
         initJyListTable();
         $("#jc_detail").removeClass("in").addClass("hide");
+        $("#ygjy_detail").removeClass("in").addClass("hide");
+        $("#ygjy_iframe_div").html("")
         $("#jy_detail").removeClass("hide").addClass("in");
+
     }
 }
 
+/**
+ * 初始化荧光检验
+ */
+function initYgJyListTable() {
+    $('#tb_table_list').bootstrapTable("destroy");
+    $('#tb_table_list').bootstrapTable({
+        url: '/thmz/getJcJyList', //请求后台的URL(*)
+        method: 'post',                      //请求方式(*)
+        toolbar: '#toolbar',                //工具按钮用哪个容器
+        striped: true,                      //是否显示行间隔色
+        cache: false,                       //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        pagination: true,                   //是否显示分页(*)
+        sortable: true,                     //是否启用排序
+        sortOrder: "asc",                   //排序方式
+        queryParams: queryYgjyParams,           //传递参数(*)
+        sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
+        pageNumber: 1,                       //初始化加载第一页,默认第一页
+        pageSize: 10,                       //每页的记录行数(*)
+        pageList: [5, 10, 25, 50, 100],        //可供选择的每页的行数(*)
+        search: false,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
+        strictSearch: true,
+        showColumns: false,                  //是否显示所有的列
+        showRefresh: false,                  //是否显示刷新按钮
+        minimumCountColumns: 2,             //最少允许的列数
+        clickToSelect: true,                //是否启用点击选中行
+        uniqueId: "ID",                     //每一行的唯一标识,一般为主键列
+        showToggle: false,                    //是否显示详细视图和列表视图的切换按钮
+        cardView: false,                    //是否显示详细视图
+        detailView: false,
+        //rowStyle:rowStyle,//通过自定义函数设置行样式
+        ajaxOptions: {
+            headers: {
+                'Accept': 'application/json',
+                'Authorization': 'Bearer ' + localStorage.getItem("token")
+            }
+        },
+        columns: [
+            {
+                field: 'patientId',
+                title: '门诊ID',
+                align: "center",
+                valign: 'middle',
+            }, {
+                field: 'patientName',
+                title: '病人姓名',
+                align: "center",
+                valign: 'middle',
+            }
+        ],
+        onClickRow: function (row) {
+            //webhis.thyy.cn:8080
+            //http://172.16.30.119:3000/
+            $("#ygjy_iframe_div").html("")
+            var window_height = window.innerHeight;
+            var myIframe = document.createElement('iframe');
+            myIframe.width="100%"
+            myIframe.height="100%"
+            //172.16.30.119:3000
+            myIframe.src = "http://webhis.thyy.cn:8080/fluorescenceTest?patNo="+row.patientId+"&times="+row.times;
+            document.getElementById("ygjy_iframe_div").style.height = (window_height/1.2-80)+'px';
+            document.getElementById("ygjy_iframe_div").appendChild(myIframe);
+        },
+        responseHandler: function (res) {
+            if (res == '401' || res == 401) {
+                window.location.href = '/thmz/login/view'
+                return;
+            }
+            var ress = eval(res);
+            if (ress.code == -1) {
+                if (ress.message != null && ress.message != '') {
+                    errorMesage(ress);
+                }
+                return {
+                    "total": 0,//总页数
+                    "rows": {}   //数据
+                };
+            }
+            return {
+                "total": ress.count,//总页数
+                "rows": ress.data   //数据
+            };
+        },
+        onLoadSuccess: function (data) {
+            $(".pagination-detail").css("display", "none");
+        }
+    });
+}
+
 
 /**
  * 初始化检查报告列表
@@ -192,6 +293,19 @@ function queryParams(params) {
     };
 };
 
+function queryYgjyParams(params) {
+    var rePortRangeArr = getRePortRangeArr();
+    return {
+        patientName: $("#cardNo").val(),
+        reqType: "4",
+        beginTime: rePortRangeArr[0],
+        endTime: rePortRangeArr[1],
+        pageSize: params.limit,   //页面大小
+        pageIndex: params.offset / params.limit  //页码
+    };
+};
+
+
 /**
  * 加载检查明细
  * @param reqNo

+ 9 - 1
src/main/resources/templates/mz/jy_jc.html

@@ -26,7 +26,9 @@
                         <!--</div>-->
                         <button class="btn btn-sm btn-primary" type="button" onclick="payMarkButtonChange(this)">&nbsp;&nbsp;检查&nbsp;&nbsp;
                         </button>
-                        <button class="btn btn-sm btn-default" type="button" onclick="payMarkButtonChange(this)">&nbsp;&nbsp;检验&nbsp;&nbsp;
+                        <button class="btn btn-sm btn-default" type="button" onclick="payMarkButtonChange(this)">&nbsp;&nbsp;检验&nbsp;
+                        </button>
+                        <button class="btn btn-sm btn-default" type="button" onclick="payMarkButtonChange(this)">&nbsp;&nbsp;荧光检验&nbsp;&nbsp;&nbsp;
                         </button>
                     </div>
                     <div class="form-group col-md-9 col-sm-9 col-xs-12">
@@ -248,6 +250,12 @@
                         </div>
                     </div>
                 </div>
+
+                <div id="ygjy_detail" class="hide" >
+                    <div id="ygjy_iframe_div" style="width: 100%">
+
+                    </div>
+                </div>
             </div>
 
         </div>