Переглянути джерело

配药模块取消对放射科处方的自动打印和配药处理按钮权限
解决标签用量半粒半包问题

WANGJIALIANG 4 роки тому
батько
коміт
c928df7455

+ 9 - 3
src/main/java/cn/hnthyy/thmz/controller/mz/MzPharmacyController.java

@@ -64,7 +64,7 @@ public class MzPharmacyController {
      */
     @UserLoginToken
     @RequestMapping(value = "/listMzChargeOrder", method = {RequestMethod.POST})
-    public Map<String, Object> listMzChargeOrder(@RequestBody ChargeDetailPharmacyVo chargeDetailPharmacyVo, HttpServletRequest httpServletRequest) {
+    public Map<String, Object> listMzChargeOrder(@RequestBody ChargeDetailPharmacyVo chargeDetailPharmacyVo) {
         Map<String, Object> resultMap = new HashMap<>();
         try {
             if (chargeDetailPharmacyVo == null || chargeDetailPharmacyVo.getMzChargeDetail() == null) {
@@ -82,6 +82,10 @@ public class MzPharmacyController {
                 mzChargeDetail.setPatientId(null);
             }
             List<MzChargeDetail> mzChargeDetails = mzPharmacyService.getMzChargeOrder(chargeDetailPharmacyVo);
+            mzChargeDetails.forEach(chargeDetail -> {
+                int radSend = mzPharmacyService.isRadSend(chargeDetail.getChargeItemCode(), chargeDetail.getSerial());
+                chargeDetail.setIsRadSend(radSend);
+            });
             resultMap.put("code", 0);
             resultMap.put("message", "查询收费处方列表信息成功");
             resultMap.put("data", mzChargeDetails);
@@ -380,8 +384,10 @@ public class MzPharmacyController {
                 String ypUnitName = mzPharmacyService.getYpUnitName(mzSendMedicineVo.getYpUnit());
                 mzSendMedicineVo.setDrugUnitName(drugUnitName);
                 mzSendMedicineVo.setYpUnitName(ypUnitName);
-                MzZdSupplyType mzZdSupplyType = mzZdSupplyTypeService.selectMzZdSupplyTypeByCode(mzSendMedicineVo.getSupplyCode());
-                mzSendMedicineVo.setPrintName(mzZdSupplyType.getPrintName());
+                if(mzSendMedicineVo.getSupplyCode() != null){
+                    MzZdSupplyType mzZdSupplyType = mzZdSupplyTypeService.selectMzZdSupplyTypeByCode(mzSendMedicineVo.getSupplyCode());
+                    mzSendMedicineVo.setPrintName(mzZdSupplyType.getPrintName());
+                }
             }
             resultMap.put("code", 0);
             resultMap.put("message", "查询发药处理的处方详细信息成功");

+ 4 - 0
src/main/java/cn/hnthyy/thmz/entity/his/mz/MzChargeDetail.java

@@ -205,6 +205,8 @@ public class MzChargeDetail implements Serializable,Comparable<MzChargeDetail> {
     private BigDecimal notDiscountAmount;
     //统计的优惠掉的总金额
     private BigDecimal discountAmount;
+    //是否为放射科药品
+    private Integer isRadSend;
     public MzChargeDetail(String patientId, Integer times) {
         this.patientId = patientId;
         this.times = times;
@@ -318,6 +320,7 @@ public class MzChargeDetail implements Serializable,Comparable<MzChargeDetail> {
                 ", chequType='" + chequType + '\'' +
                 ", printFlagYj='" + printFlagYj + '\'' +
                 ", confirmFlagQx='" + confirmFlagQx + '\'' +
+                ", groupId=" + groupId +
                 ", amount=" + amount +
                 ", refundFee=" + refundFee +
                 ", oriAmount=" + oriAmount +
@@ -326,6 +329,7 @@ public class MzChargeDetail implements Serializable,Comparable<MzChargeDetail> {
                 ", newReceiptNo=" + newReceiptNo +
                 ", notDiscountAmount=" + notDiscountAmount +
                 ", discountAmount=" + discountAmount +
+                ", isRadSend=" + isRadSend +
                 '}';
     }
 

+ 13 - 11
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzChargeDetailMapper.java

@@ -1032,31 +1032,33 @@ public interface MzChargeDetailMapper {
      * @return
      */
     @Select({"<script>" +
-            "SELECT patient_id,times,receipt_no,order_no,real_no,bill_item_code," +
-            "group_no,charge_item_code,serial,warn_dept,price_time,doctor_code,confirm_id," +
-            "quantity,drug_quan,frequency,charge_item_code,drug_unit,supply_code,doctor_code,unit_price,jz_flag   " +
-            "    FROM mz_charge_detail" +
+            "SELECT c.patient_id,c.times,c.receipt_no,c.order_no,c.real_no,c.bill_item_code," +
+            "c.group_no,c.charge_item_code,c.serial,c.warn_dept,c.price_time,c.doctor_code,c.confirm_id," +
+            "c.quantity,c.drug_quan,c.frequency,c.charge_item_code,c.drug_unit,c.supply_code,c.doctor_code,c.unit_price,c.jz_flag,  " +
+            " (case when y.class_code = '210100' then 1 else 0 end ) as is_rad_send" +
+            "    FROM mz_charge_detail c,yp_zd_dict y" +
             " where  1=1 " +
+            " and c.charge_item_code = y.code and c.serial = y.serial" +
             "<when test='patientId!=null'>"+
-            " and patient_id =#{patientId}"+
+            " and c.patient_id =#{patientId}"+
             "</when>"+
             "<when test='times!=null'>"+
-            " and times =#{times}"+
+            " and c.times =#{times}"+
             "</when>"+
             "<when test='receiptNo!=null'>"+
-            " and receipt_no =#{receiptNo}"+
+            " and c.receipt_no =#{receiptNo}"+
             "</when>"+
             "<when test='orderNo!=null'>"+
-            " and order_no =#{orderNo}"+
+            " and c.order_no =#{orderNo}"+
             "</when>"+
             "<when test='realNo!=null'>"+
-            " and real_no =#{realNo}"+
+            " and c.real_no =#{realNo}"+
             "</when>"+
             "<when test='billItemCode!=null'>"+
-            " and bill_item_code <![CDATA[<>]]> #{billItemCode}"+
+            " and c.bill_item_code <![CDATA[<>]]> #{billItemCode}"+
             "</when>"+
             "<when test='groupNo!=null'>"+
-            " and group_no =#{groupNo}"+
+            " and c.group_no =#{groupNo}"+
             "</when>"+
             "</script>"})
     List<MzChargeDetail> selectMzChargeDetailList(MzChargeDetail mzChargeDetail);

+ 10 - 2
src/main/java/cn/hnthyy/thmz/mapper/his/mz/MzPharmacyMapper.java

@@ -26,7 +26,7 @@ public interface MzPharmacyMapper {
      * @return
      */
     @Select({"<script>",
-            "select  rtrim(patient_id)patient_id,rtrim(name)name,rtrim(serial_no)serial_no,rtrim(real_no)real_no,rtrim(order_no)order_no,charge_date,times,rtrim(receipt_no)receipt_no,rtrim(warn_dept)warn_dept " +
+            "select  charge_item_code,serial,rtrim(patient_id)patient_id,rtrim(name)name,rtrim(serial_no)serial_no,rtrim(real_no)real_no,rtrim(order_no)order_no,charge_date,times,rtrim(receipt_no)receipt_no,rtrim(warn_dept)warn_dept " +
                     "from mz_charge_detail  where 1=1 ",
             " and serial_no > 0",
             " and isnull(confirm_zs,'') <![CDATA[<>]]>'1'",
@@ -60,7 +60,7 @@ public interface MzPharmacyMapper {
             "<when test='endTime!=null'>",
             " and charge_date &lt;=#{endTime,jdbcType=TIMESTAMP}",
             "</when>",
-            " GROUP BY patient_id,name,serial_no,real_no,order_no,charge_date,times,receipt_no,warn_dept order by charge_date desc",
+            " GROUP BY charge_item_code,serial,patient_id,name,serial_no,real_no,order_no,charge_date,times,receipt_no,warn_dept order by charge_date desc",
             "</script>"})
     List<MzChargeDetail> selectMzChargeOrder(ChargeDetailPharmacyVo chargeDetailPharmacyVo);
 
@@ -897,4 +897,12 @@ public interface MzPharmacyMapper {
             "</script>"})
     int updateMzChargeDetailDispensing(MzChargeDetail mzChargeDetail);
 
+    /**
+     * 是否为放射科发药
+     * @param code
+     * @param serial
+     * @return
+     */
+    @Select("select (case when count(1)>0 then 1 else 0 end ) from yp_zd_dict where code = #{code} and serial = #{serial} and class_code = '210100'")
+    int selectIsRadSend(@Param("code") String code, @Param("serial") String serial);
 }

+ 8 - 0
src/main/java/cn/hnthyy/thmz/service/his/mz/MzPharmacyService.java

@@ -162,4 +162,12 @@ public interface MzPharmacyService {
      * @return
      */
     int sendMedicineProcessingRad(User user);
+
+    /**
+     * 是否为放射科发药
+     * @param code
+     * @param serial
+     * @return
+     */
+    int isRadSend(String code, String serial);
 }

+ 5 - 0
src/main/java/cn/hnthyy/thmz/service/impl/his/mz/MzPharmacyServiceImpl.java

@@ -280,4 +280,9 @@ public class MzPharmacyServiceImpl implements MzPharmacyService {
         }
         return number;
     }
+
+    @Override
+    public int isRadSend(String code, String serial) {
+        return mzPharmacyMapper.selectIsRadSend( code, serial);
+    }
 }

+ 5 - 0
src/main/java/cn/hnthyy/thmz/service/impl/thmz/DispensingSocketServiceImpl.java

@@ -55,6 +55,11 @@ public class DispensingSocketServiceImpl implements DispensingSocketService {
         mzChargeDetail.setTimes(times);
         mzChargeDetail.setGroupNo("71");
         List<MzChargeDetail> chargeDetail = mzChargeDetailService.getMzChargeDetailList(mzChargeDetail);
+        chargeDetail.forEach(cd -> {
+            if(cd.getIsRadSend() == 1){
+                chargeDetail.remove(cd);
+            }
+        });
         if(chargeDetail.size() > 0){
             Set<Integer> orderNos = chargeDetail.stream().map(MzChargeDetail::getOrderNo).collect(Collectors.toSet());
             Map<String,Object> msgMap = new HashMap();

+ 3 - 1
src/main/resources/static/js/mz/west_pharmacy_dispensing.js

@@ -90,7 +90,9 @@ function initTable() {
                 valign: 'middle',
                 formatter: function (value, row, index) {
                     var str = '<button type="button" class="registration-no-color-foot-button" title="打印" onclick="printPrescription(\'' + row.patientId + '\',\'' + row.times+ '\',\'' + row.orderNo + '\')"  style="color: #35D082;"><i class="fa fa-print"></i></button>';
-                    str += '<button type="button" class="registration-no-color-foot-button" title="配药完成" onclick="dispensingDispose(\'' + row.patientId + '\',\'' + row.orderNo + '\',\'' + row.times + '\')"><i class="fa fa-check-square-o"></i></button>';
+                    if(row.isRadSend == 0){
+                        str += '<button type="button" class="registration-no-color-foot-button" title="配药完成" onclick="dispensingDispose(\'' + row.patientId + '\',\'' + row.orderNo + '\',\'' + row.times + '\')"><i class="fa fa-check-square-o"></i></button>';
+                    }
                     str += '<button type="button" class="registration-no-color-foot-button" title="详细" onclick="prescriptionDetail(\'' + row.realNo + '\',\'' + 71 + '\',\'' + row.orderNo + '\',\'' + row.receiptNo + '\',\'' + row.times + '\',\'' + row.patientId + '\')"><i class="fa fa-plus"></i></button>';
                     return str;
                 }

+ 3 - 1
src/main/resources/static/js/mz/west_pharmacy_send.js

@@ -775,7 +775,9 @@ function printInjectionOralMedicine(patientId, orderNo, realNo, times, receiptNo
                         }else{
                             let weight = (drugs[j].weight == '' || drugs[j].weight == null) ? drugs[j].volum : drugs[j].weight;
                             var drugQuan = (drugs[j].drugQuan / weight).toFixed(2);
-                            if(drugQuan < 1){
+                            if(drugQuan == 0.5) {
+                                $("#ypbq_comm").attr("value", drugs[j].comm + ',每次半' + drugs[j].miniUnitName);
+                            } else if(drugQuan < 1){
                                 $("#ypbq_comm").attr("value", drugs[j].comm + ',每次' + drugs[j].drugQuan + drugs[j].drugUnitName);
                             }else{
                                 drugQuan = Math.round(drugQuan*100)/100;