Browse Source

优化医嘱

DESKTOP-0GD05B0\Administrator 2 years ago
parent
commit
5091092503

+ 8 - 7
src/main/java/thyyxxk/webserver/dao/his/zhuyuanyisheng/YiZhuLuRuDao.java

@@ -530,10 +530,8 @@ public interface YiZhuLuRuDao {
 
 
     @Delete("delete yz_act_order where " +
-            "act_order_no = #{orderNo} and inpatient_no = #{patNo} and admiss_times = #{times}")
-    void deleteOrderNo(String orderNo,
-                       String patNo,
-                       Integer times);
+            "act_order_no = #{orderNo} " )
+    void deleteOrderNo(String orderNo);
 
     @Insert("INSERT INTO yz_act_order (order_code, order_name, frequ_code, instruction, discription, infant_flag, order_time, " +
             "    /*录入人*/physician, start_time, drug_specification, drug_quan, supply_code, act_order_no, inpatient_no, " +
@@ -547,7 +545,8 @@ public interface YiZhuLuRuDao {
             "                          ward_code /* 在院病人表中的 zk_ward*/, " +
             "                          reg_flag/* 0 */, " +
             "                          yb_self_flag/*医保自费标志*/, emergency_flag, " +
-            "                          kf_flag /*饭前饭后*/, parent_no, refer_physician/*患者的管床医生*/, end_time) " +
+            "                          kf_flag /*饭前饭后*/, parent_no, refer_physician/*患者的管床医生*/, end_time," +
+            "                          modifier) " +
             "values (#{pa.orderCode}, #{pa.orderName}, #{pa.frequCode}, #{pa.instruction}, #{pa.discription}, #{patInfo.infantFlag}, " +
             "        #{pa.orderTime}, #{userCode}, " +
             "        #{pa.startTime}, cast(#{pa.drugSpecification} as varchar(16)), #{pa.drugQuan,jdbcType=REAL}, #{pa.supplyCode}, #{pa.actOrderNo,jdbcType=REAL}, #{patInfo.inpatientNo}, " +
@@ -556,7 +555,8 @@ public interface YiZhuLuRuDao {
             "        #{pa.dose ,jdbcType = REAL}, #{pa.doseUnit}, #{pa.drugOcc ,jdbcType = REAL}, " +
             "        #{pa.drugVolume,jdbcType=REAL}, #{pa.drugVolUnit}, '0', #{pa.serial}, #{pa.groupNo}, '1', #{pa.execUnit}, " +
             "        #{patInfo.deptCode}, #{patInfo.deptCode}, '0', #{pa.ybSelfFlag}, #{pa.emergencyFlag}, " +
-            "        #{pa.kfFlag}, #{pa.parentNo,jdbcType=REAL}, #{patInfo.referPhysician}, #{pa.endTime})")
+            "        #{pa.kfFlag}, #{pa.parentNo,jdbcType=REAL}, #{patInfo.referPhysician}, #{pa.endTime}," +
+            "        #{pa.modifier})")
     void insertEntryOrder(XinZhenYiZhu patInfo, XinZhenYzActOrder pa, String userCode);
 
     @Update("update yz_act_order set " +
@@ -565,7 +565,8 @@ public interface YiZhuLuRuDao {
             "order_time = #{orderTime}," +
             "start_time = #{startTime}," +
             "end_time = #{endTime}," +
-            "group_no = #{groupNo} " +
+            "group_no = #{groupNo}," +
+            "modifier = #{modifier} " +
             "where parent_no = #{actOrderNo,jdbcType=REAL}")
     void howOftenTheSubPhysicianOrderIsModified(XinZhenYzActOrder pa);
 

+ 7 - 42
src/main/java/thyyxxk/webserver/service/zhuyuanyisheng/YiZhuLuRuServer.java

@@ -120,7 +120,7 @@ public class YiZhuLuRuServer {
             return ResultVoUtil.fail(ExceptionEnum.NO_DATA_EXIST, "该患者还没有开医嘱。");
         }
         // 做成树状图
-        Map<BigDecimal, XinZhenYzActOrder> map = new HashMap<>();
+        Map<BigDecimal, XinZhenYzActOrder> map = new HashMap<>(yiZhuList.size());
         List<XinZhenYzActOrder> tree = new ArrayList<>();
         for (XinZhenYzActOrder item : yiZhuList) {
             if (item.getParentNo() == null) {
@@ -195,7 +195,7 @@ public class YiZhuLuRuServer {
      *
      * @param patNo 住院号
      * @param times 次数
-     * @return
+     * @return 返回父医嘱
      */
     public ResultVo<List<XinZhenYzActOrder>> getParentOrders(String patNo, Integer times) {
         return ResultVoUtil.success(dao.getParentOrders(patNo, times));
@@ -462,7 +462,7 @@ public class YiZhuLuRuServer {
             }
         }
 
-        dao.deleteOrderNo(param.getActOrderNo(), param.getInpatientNo(), param.getAdmissTimes());
+        dao.deleteOrderNo(param.getActOrderNo());
         dao.insertEntryOrder(huanZheXinXi, param.getData(), userCode);
         if (param.getData().getParentNo() == null) {
             // 子医嘱跟随父医嘱
@@ -1087,8 +1087,12 @@ public class YiZhuLuRuServer {
                 } else {
                     if (DateUtil.shiJianDaXiao(item.getEndTime(), item.getStartTime(), "<")) {
                         errorMessage.add("结束时间不能在开始时间之前");
+                    } else {
+                        item.setModifier(TokenUtil.getTokenUserId());
                     }
                 }
+            } else {
+                item.setModifier(null);
             }
         }
 
@@ -1102,45 +1106,6 @@ public class YiZhuLuRuServer {
         return map;
     }
 
-    private void dischargeWithMedicationCollection(BigDecimal total, XinZhenYzActOrder detailsOfDrugs, XinZhenYzActOrder item) {
-        if (StringUtil.notBlank(detailsOfDrugs.getDrugWeightUnit()) && item.getDoseUnit().trim().equals(detailsOfDrugs.getDrugWeightUnit().trim())) {
-            item.setDrugQuan(item.getDose().divide(detailsOfDrugs.getDrugWeight(), 0, RoundingMode.UP).multiply(total));
-            item.setDrugOcc(item.getDrugQuan());
-        } else if (StringUtil.notBlank(detailsOfDrugs.getDrugVolUnit()) && item.getDoseUnit().trim().equals(detailsOfDrugs.getDrugVolUnit())) {
-            item.setDrugQuan(item.getDose().divide(detailsOfDrugs.getDrugVolume(), 0, RoundingMode.UP).multiply(total));
-            item.setDrugOcc(item.getDrugQuan());
-        } else if (StringUtil.notBlank(detailsOfDrugs.getPackUnit()) && item.getDoseUnit().trim().equals(detailsOfDrugs.getPackUnit())) {
-            item.setDrugQuan(item.getDose().divide(detailsOfDrugs.getPackSize(), 0, RoundingMode.UP).multiply(total));
-            item.setDrugOcc(item.getDrugQuan());
-        }
-        if (item.getDrugQuan().equals(BigDecimal.ZERO)) {
-            item.setDrugQuan(BigDecimal.ONE);
-            item.setDrugOcc(BigDecimal.ONE);
-        }
-    }
-
-
-    /**
-     * 计算总量
-     *
-     * @param item 药品信息
-     * @param day  天数
-     * @return 返回总数
-     */
-    @NotNull
-    private BigDecimal getTotal(XinZhenYzActOrder item, int day) {
-        // 计算出院带药的领量
-        Map<String, Short> numberOfTimesADay = dao.numberOfTimesADay(item.getFrequCode());
-        int times = 0;
-        for (Map.Entry<String, Short> entry : numberOfTimesADay.entrySet()) {
-            if (entry.getValue() != null) {
-                times += entry.getValue();
-            }
-        }
-        // 最小天数一天
-        return new BigDecimal((day <= 0 ? 1 : day) * times);
-    }
-
     public ResultVo<JSONObject> getFrequencyCount(String code) {
         // 计算出院带药的领量
         Map<String, Short> numberOfTimesADay = dao.numberOfTimesADay(code);