LIJU 2 nedēļas atpakaļ
vecāks
revīzija
504b149223

+ 77 - 0
src/main/java/cn/hnthyy/thmz/controller/mz/MzPharmacyController.java

@@ -428,6 +428,28 @@ public class MzPharmacyController {
                                 mzChargeDetail.setPharPracCertNo(pharPracCertNo);
                             }
                         }
+                        
+                        // 获取药品相关信息
+                        if (StringUtils.isNotBlank(mzChargeDetail.getChargeItemCode())) {
+                            // 获取药品字典信息
+                            YpZdDict ypZdDict = ypZdDictService.queryYpZdDictByCodeAndSerial(mzChargeDetail.getChargeItemCode(), mzChargeDetail.getSerial());
+                            if (ypZdDict != null) {
+                                // 设置拆零标志
+                                mzChargeDetail.setClFlag(ypZdDict.getClFlag());
+                                // 暂时设置处方药标志为空,因为数据库中可能没有这个字段
+                                mzChargeDetail.setRxFlag("");
+                            }
+                        }
+                        
+                        // 获取医院审批标志(从mz_charge_detail表获取)
+                        if (mzChargeDetail.getHospApprFlag() != null) {
+                            // 映射医院审批标志到就诊结算类型
+                            if (mzChargeDetail.getHospApprFlag() == 0) {
+                                mzChargeDetail.setMdtrtSetlType(1); // 医保结算
+                            } else if (mzChargeDetail.getHospApprFlag() == 2) {
+                                mzChargeDetail.setMdtrtSetlType(2); // 自费结算
+                            }
+                        }
                         // 查询今日排队发药状态
                         YpPdQueue pdQueue = ypPdQueueService.selectYpPdQueueByPatientId(mzChargeDetail.getPatientId());
                         if(null != pdQueue){
@@ -462,6 +484,28 @@ public class MzPharmacyController {
                             chargeDetailInfoVo.setPharPracCertNo(pharPracCertNo);
                         }
                     }
+                    
+                    // 获取药品相关信息
+                    if (StringUtils.isNotBlank(chargeDetailInfoVo.getChargeItemCode())) {
+                        // 获取药品字典信息
+                        YpZdDict ypZdDict = ypZdDictService.queryYpZdDictByCodeAndSerial(chargeDetailInfoVo.getChargeItemCode(), chargeDetailInfoVo.getSerial());
+                        if (ypZdDict != null) {
+                            // 设置拆零标志
+                            chargeDetailInfoVo.setClFlag(ypZdDict.getClFlag());
+                            // 暂时设置处方药标志为空,因为数据库中可能没有这个字段
+                            chargeDetailInfoVo.setRxFlag("");
+                        }
+                    }
+                    
+                    // 获取医院审批标志(从mz_charge_detail表获取)
+                    if (chargeDetailInfoVo.getHospApprFlag() != null) {
+                        // 映射医院审批标志到就诊结算类型
+                        if (chargeDetailInfoVo.getHospApprFlag() == 0) {
+                            chargeDetailInfoVo.setMdtrtSetlType(1); // 医保结算
+                        } else if (chargeDetailInfoVo.getHospApprFlag() == 2) {
+                            chargeDetailInfoVo.setMdtrtSetlType(2); // 自费结算
+                        }
+                    }
 
                     // 查询今日排队发药状态
                     YpPdQueue pdQueue = ypPdQueueService.selectYpPdQueueByPatientId(chargeDetailInfoVo.getPatientId());
@@ -568,6 +612,39 @@ public class MzPharmacyController {
                     MzZdSupplyType mzZdSupplyType = mzZdSupplyTypeService.selectMzZdSupplyTypeByCode(mzSendMedicineVo.getSupplyCode());
                     mzSendMedicineVo.setPrintName(mzZdSupplyType.getPrintName());
                 }
+                
+                // 获取药品相关信息
+                if (StringUtils.isNotBlank(mzSendMedicineVo.getChargeItemCode())) {
+                    // 获取药品字典信息
+                    YpZdDict ypZdDict = ypZdDictService.queryYpZdDictByCodeAndSerial(mzSendMedicineVo.getChargeItemCode(), mzSendMedicineVo.getSerial());
+                    if (ypZdDict != null) {
+                        // 设置处方药标志
+                        mzSendMedicineVo.setRxFlag(ypZdDict.getRxFlag());
+                        
+                        // 设置拆零标志:优先使用cl_flag,如果为空则根据serial判断
+                        String clFlag = ypZdDict.getClFlag();
+                        if (StringUtils.isBlank(clFlag)) {
+                            // 如果cl_flag为空,根据serial字段判断
+                            String serial = ypZdDict.getSerial();
+                            if ("99".equals(serial)) {
+                                clFlag = "0"; // 否
+                            } else {
+                                clFlag = "1"; // 是
+                            }
+                        }
+                        mzSendMedicineVo.setClFlag(clFlag);
+                    }
+                }
+                
+                // 获取医院审批标志(从mz_charge_detail表获取)
+                if (mzSendMedicineVo.getHospApprFlag() != null) {
+                    // 映射医院审批标志到就诊结算类型
+                    if (mzSendMedicineVo.getHospApprFlag() == 0) {
+                        mzSendMedicineVo.setMdtrtSetlType(1); // 医保结算
+                    } else if (mzSendMedicineVo.getHospApprFlag() == 2) {
+                        mzSendMedicineVo.setMdtrtSetlType(2); // 自费结算
+                    }
+                }
             }
             resultMap.put("code", 0);
             resultMap.put("message", "查询发药处理的处方详细信息成功");

+ 3 - 0
src/main/java/cn/hnthyy/thmz/entity/his/yp/YpZdDict.java

@@ -215,6 +215,9 @@ public class YpZdDict {
     private String sybBl;
     @NotColumn
     private String clFlag;
+    //处方药标志
+    @NotColumn
+    private String rxFlag;
     @NotColumn
     private BigDecimal avgPrice;
     @NotColumn

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

@@ -741,7 +741,10 @@ public interface MzPharmacyMapper {
             "         a.confirm_id," +
             "         print_flag_yj=isnull(a.print_flag_yj,'')," +
             "         confirm_flag_b=confirm_flag," +
-            "         a.manu_no" +
+            "         a.manu_no," +
+            "         a.hosp_appr_flag," +
+            "         c.rx_flag," +
+            "         c.cl_flag" +
             "    FROM mz_charge_detail a WITH(NOLOCK)" +
             "    JOIN yp_base_yf b WITH(NOLOCK) ON a.charge_item_code = b.charge_code AND a.serial = b.serial" +
             "    JOIN yp_zd_dict c WITH(NOLOCK) ON a.charge_item_code = c.code AND a.serial = c.serial" +

+ 12 - 0
src/main/java/cn/hnthyy/thmz/vo/ChargeDetailInfoVo.java

@@ -57,4 +57,16 @@ public class ChargeDetailInfoVo {
     private String pdTime;
     //药师执业资格证号
     private String pharPracCertNo;
+    //医院审批标志 (0-医保结算 2-自费结算)
+    private Integer hospApprFlag;
+    //处方药标志
+    private String rxFlag;
+    //拆零标志
+    private String clFlag;
+    //收费项目编码
+    private String chargeItemCode;
+    //规格
+    private String serial;
+    //就诊结算类型 (1-医保结算 2-自费结算)
+    private Integer mdtrtSetlType;
 }

+ 8 - 0
src/main/java/cn/hnthyy/thmz/vo/MzSendMedicineVo.java

@@ -133,4 +133,12 @@ public class MzSendMedicineVo implements Serializable {
     private String manuNo;
     //药品追溯码
     private String drugTracCodg;
+    //医院审批标志 (0-医保结算 2-自费结算)
+    private Integer hospApprFlag;
+    //处方药标志
+    private String rxFlag;
+    //拆零标志
+    private String clFlag;
+    //就诊结算类型 (1-医保结算 2-自费结算)
+    private Integer mdtrtSetlType;
 }

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

@@ -3127,13 +3127,13 @@ function callYbSaleGoodsItem(realNo, orderNo, receiptNo, times, patientId, name,
             selRetnOpterName: currentUserName,
             
             // 就诊结算类型(1-医保结算 2-自费结算)
-            mdtrtSetlType: '1',
+            mdtrtSetlType: item.mdtrtSetlType || '1',
             
             // 处方药标志
-            rxFlag: '1',
+            rxFlag: item.rxFlag || '0',
             
             // 拆零标志(0-否;1-是)
-            trdnFlag: '0',
+            trdnFlag: item.clFlag || '0',
             
             // 追溯码信息
             drugtracinfo: []