Browse Source

医技科室可以接诊全院的患者

hurugang 2 years ago
parent
commit
9c5da901f1

+ 46 - 12
src/main/java/cn/hnthyy/thmz/controller/mz/ClinicController.java

@@ -224,8 +224,15 @@ public class ClinicController {
                 resultMap.put("message", "当前医生不存在");
                 return resultMap;
             }
-            List<MzfzPatientOrder> data = mzfzPatientOrderService.queryByPatientId(patientId, tokenUser.getUserIdCode());
-            List<String> deptCodes=userDeptRelationService.queryAllByUserIdCode(tokenUser.getUserIdCode());
+            List<String> deptCodes = userDeptRelationService.queryAllByUserIdCode(tokenUser.getUserIdCode());
+            Boolean isYjDept = false;
+            isYjDept = checkYjDept(deptCodes, isYjDept);
+            List<MzfzPatientOrder> data =null;
+            if(isYjDept){
+                data=Arrays.asList(mzfzPatientOrderService.queryLastClinicedFzOrder(patientId));
+            }else {
+                data = mzfzPatientOrderService.queryByPatientId(patientId, tokenUser.getUserIdCode());
+            }
 //
 //            if (data == null || data.size() == 0) {
 //                if(deptCodes!=null && deptCodes.size()>0){
@@ -267,9 +274,9 @@ public class ClinicController {
                     }
                 }
             }
-            if(deptCodes!=null && deptCodes.size()>0){
-                for (String code:deptCodes){
-                    List<TurnToConsultation> turnToConsultations = turnToConsultationService.queryUnConsultationByTargetDept(patientId,code, tokenUser.getUserIdCode());
+            if (deptCodes != null && deptCodes.size() > 0) {
+                for (String code : deptCodes) {
+                    List<TurnToConsultation> turnToConsultations = turnToConsultationService.queryUnConsultationByTargetDept(patientId, code, tokenUser.getUserIdCode());
                     if (turnToConsultations != null && turnToConsultations.size() > 0) {
                         for (TurnToConsultation turnToConsultation : turnToConsultations) {
                             MzPatientMi mzPatientMi = mzPatientMiService.queryByPatientId(turnToConsultation.getPatientId());
@@ -287,9 +294,9 @@ public class ClinicController {
                 }
             }
             //如果没有挂号,查询是否可免挂号接诊
-            if(data==null || data.size()==0){
-                if(deptCodes!=null && deptCodes.size()>0){
-                    for (String code:deptCodes){
+            if (data == null || data.size() == 0) {
+                if (deptCodes != null && deptCodes.size() > 0) {
+                    for (String code : deptCodes) {
                         ZdUnitCode zdUnitCode = zdUnitCodeService.queryByCode(code);
                         if (YesNoEnum.NO.code.equals(zdUnitCode.getGhjzFlag())) {
                             resultMap.put("code", 200);
@@ -312,6 +319,27 @@ public class ClinicController {
         }
     }
 
+    /**
+     * 判断当前医生是否是医技科室
+     * @param deptCodes
+     * @param isYjDept
+     * @return
+     */
+    private Boolean checkYjDept(List<String> deptCodes, Boolean isYjDept) {
+        if (deptCodes != null && deptCodes.size() > 0) {
+            List<ZdUnitCode> zdUnitCodes = zdUnitCodeService.queryZdUnitCodeByCodes(deptCodes);
+            if (zdUnitCodes != null && zdUnitCodes.size() > 0) {
+                for (ZdUnitCode zdUnitCode : zdUnitCodes) {
+                    if (ZdUnitCode.YJ_CLASS_CODE.equals(zdUnitCode.getClassCode())) {
+                        isYjDept = true;
+                        break;
+                    }
+                }
+            }
+        }
+        return isYjDept;
+    }
+
 
     /**
      * 根据id查询就诊信息
@@ -362,7 +390,7 @@ public class ClinicController {
             String patientId = clinic.getCommonParams();
             if (StringUtils.isBlank(clinic.getCommonParams())) {
                 clinic.setCommonParams(null);
-            }else {
+            } else {
                 //不加前模糊,因为数据库索引会不生效
                 clinic.setCommonParams(clinic.getCommonParams() + "%");
             }
@@ -388,8 +416,15 @@ public class ClinicController {
             }
             if (StringUtils.isBlank(clinic.getDoctorCode())) {
                 User tokenUser = TokenUtil.getUser(httpServletRequest);
-                clinic.setDoctorCode(tokenUser.getUserIdCode());
-                clinic.setDeptCodes(userDeptRelationService.queryAllByUserIdCode(tokenUser.getUserIdCode()));
+                List<String> deptNos = userDeptRelationService.queryAllByUserIdCode(tokenUser.getUserIdCode());
+                Boolean isYjDept = false;
+                //暂时只开放医技可以可以接诊全院患者,不修改历史处方
+                //isYjDept = checkYjDept(deptNos, isYjDept);
+                //医技科室是可以看到全部患者信息,非医技科室需要加查询条件
+                if (!isYjDept) {
+                    clinic.setDoctorCode(tokenUser.getUserIdCode());
+                    clinic.setDeptCodes(deptNos);
+                }
             } else {
                 //前端传的-1需要清空 //如果医生字段是-1,说明是查询就诊轨迹,就诊轨迹不限制科室和医生
                 clinic.setDoctorCode(null);
@@ -456,7 +491,6 @@ public class ClinicController {
     }
 
 
-
     /**
      * 初始化就诊记录表  全局初始化或者部分初始化
      *

+ 4 - 0
src/main/java/cn/hnthyy/thmz/entity/his/zd/ZdUnitCode.java

@@ -9,6 +9,10 @@ import java.util.List;
  */
 @Data
 public class ZdUnitCode {
+    /**
+     * 医技科室分类
+     */
+    public static final Integer YJ_CLASS_CODE=2;
     //原科室编码 修改的时候需要用
     private String originalCode;
     //科室编码

+ 1 - 1
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzfzPatientOrderMapper.java

@@ -220,7 +220,7 @@ public interface MzfzPatientOrderMapper {
      * @param patientId
      * @return
      */
-    @Select("select top 1* from mzfz_patient_order WITH(NOLOCK) where patient_id = #{patientId} and status_flag=9 order by visit_date desc")
+    @Select("select top 1* from mzfz_patient_order WITH(NOLOCK) where patient_id = #{patientId} and status_flag in(8,9) order by visit_date desc")
     MzfzPatientOrder selectLastClinicedFzOrder(@Param("patientId") String patientId);
 
 

+ 4 - 4
src/main/resources/static/js/mz/clinic.js

@@ -1472,8 +1472,8 @@ function loadCanClinicTableList(id, queryParams) {
         queryParams: queryParams,           //传递参数(*)
         sidePagination: "server",           //分页方式:client客户端分页,server服务端分页(*)
         pageNumber: 1,                       //初始化加载第一页,默认第一页
-        pageSize: 5,                       //每页的记录行数(*)
-        pageList: [5, 10, 25, 50, 100],        //可供选择的每页的行数(*)
+        pageSize: 2,                       //每页的记录行数(*)
+        pageList: [2, 5, 10, 25, 50, 100],        //可供选择的每页的行数(*)
         search: false,                       //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
         strictSearch: true,
         showColumns: false,                  //是否显示所有的列
@@ -2047,7 +2047,7 @@ function clearWorkSpaceExcludeUser(source) {
         clearTurnToConsultationInput();
         clearZgtczfInput();
         gropuIdAndOrderNoMap = null;
-        prevCategoriesFlag=null;
+        prevCategoriesFlag = null;
         initGroupOrder();
     }
     $("#totalAmount").text(0);
@@ -6811,7 +6811,7 @@ function refreshNavTabs(index, groupNo) {
     //切换处方
     $("#" + tabId).find("a[href='#" + paneId + "']").off("click").tab('show');
 
-    if(prevCategoriesFlag!=null){
+    if (prevCategoriesFlag != null) {
         //如果上一个药品大类不为空,又增加了处方分页,组号要自动切换
         var last = parseInt($("#groupId > option:last").val());
         $("#groupId").selectpicker('val', last);