xiaochan 3 роки тому
батько
коміт
5421c1842d

+ 27 - 4
src/main/java/thyyxxk/webserver/dao/his/medicalinsurance/UpIdCollectionDao.java

@@ -399,8 +399,8 @@ public interface UpIdCollectionDao {
             " case when yb_name is null then rtrim(ssmc) else rtrim(yb_name) end  ssmc," +
             " rtrim(mzff) mzff, rtrim(qkjb) qkjb," +
             "rtrim(yhqk) yhqk, ssbfz, fhqk, ssjb, cut_heal," +
-            "(select top(1) yb_code from a_employee_mi where code = ssys) as oper_dr_code, " +
-            "(select top(1) yb_code from a_employee_mi where code = mzys) as anst_dr_code," +
+            "(select top(1) rtrim(yb_code) from a_employee_mi where code = ssys) as oper_dr_code, " +
+            "(select top(1) rtrim(yb_code) from a_employee_mi where code = mzys) as anst_dr_code," +
             "dept_code," +
             "(select name from zd_unit_code where code = dept_code) as dept_code_name " +
             "from ${tableName} left join zd_icd9_cm3 on (ssbm = zd_icd9_cm3.code)  " +
@@ -549,14 +549,30 @@ public interface UpIdCollectionDao {
                                                      @Param("times") Integer times,
                                                      @Param("ledgerSn") Integer ledgerSn);
 
+    @Select("select icd_code_new as diag_code " +
+            "from mz_visit_table " +
+            "where nullif(icd_code_new, '') is not null " +
+            "  and patient_id = #{patNo} and times = #{times}")
+    OpspdiseinfoUpld outpatientDiagnosis1(@Param("patNo") String patNo,
+                                          @Param("times") Integer times);
+
+    @Select("select yb_code  as diag_code,\n" +
+            "       yb_name  as diag_name,\n" +
+            "       '00000'  as oprn_oprt_name,\n" +
+            "       '无手术' as oprn_oprt_code\n" +
+            "from zd_icd_code_new\n" +
+            "where yb_code = #{ybCode} ")
+    OpspdiseinfoUpld outpatientSlowDiagnosis(String ybCode);
+
     @Select("select diag_code as diag_code, " +
             "       diag_name as diag_name, " +
             "       '00000'   as oprn_oprt_name, " +
             "       '无手术'  as oprn_oprt_code " +
             "from t_si_mz_diag\n" +
             "where pat_no = #{patNo} and times = #{times} ")
-    List<OpspdiseinfoUpld> outpatientDiagnosis(@Param("patNo") String patNo,
-                                               @Param("times") Integer times);
+    List<OpspdiseinfoUpld> outpatientDiagnosis2(@Param("patNo") String patNo,
+                                                @Param("times") Integer times);
+
 
     @Select("select top 1 rtrim(a.name)                                        as psnName, " +
             "       isnull(nullif(rtrim(b.occupation_code), " +
@@ -604,6 +620,13 @@ public interface UpIdCollectionDao {
     SetlinfoUpld mzPatInfo(@Param("patNo") String patNo,
                            @Param("times") Integer times);
 
+    @Select("select opsp_diag_caty = (select si_caty from zd_unit_code where code = visit_dept_code),\n" +
+            "                        visit_date as opsp_mdtrt_date\n" +
+            "from mz_visit_table\n" +
+            "where patient_id = #{patNo} and times = #{times}")
+    SetlinfoUpld mzPatInfo1(@Param("patNo") String patNo,
+                            @Param("times") Integer times);
+
     @Select("select setl_id,mdtrt_id,insuplc_admdvs " +
             "from t_si_setlinfo " +
             "where pat_no =  #{patNo} " +

+ 8 - 0
src/main/java/thyyxxk/webserver/entity/medicalinsurance/inpatient/BatjBa4.java

@@ -112,7 +112,15 @@ public class BatjBa4 implements Serializable {
     private String sszsName1;
     private String sszsName2;
     private String mzysName;
+    /**
+     * 术者医师代码
+     */
+    @JSONField(name = "oper_dr_code")
     private String operDrCode;
+    /**
+     * 麻醉医师姓名
+     */
+    @JSONField(name = "anst_dr_name")
     private String anstDrCode;
 
     //////////////// 以下是 4101A 新增数据 ///////////////////////////

+ 18 - 1
src/main/java/thyyxxk/webserver/service/medicalinsurance/SetlListUpldService.java

@@ -434,6 +434,7 @@ public class SetlListUpldService {
 
         // 手术 也是一样的
         temp.setOprninfo(EntityCopy.CopyList(dao.shouShuXinXi(patNo, times, flag == 1 ? "batj_ba4_modify" : "batj_ba4"), OprninfoUpldTemp.class));
+
         temp.setIcuinfo(EntityCopy.CopyList(uploadInfo.getData().getIcuinfo(), IcuinfoUpldTemp.class));
         // 国籍
         temp.getSetlinfo().setNtlyName(dao.getNtlyName(temp.getSetlinfo().getNtly()));
@@ -921,6 +922,7 @@ public class SetlListUpldService {
 
         zy.setPatientBldInfos(dao.shuXueXinXi(patNo, times));
 
+        // todo 在这里要返回患者的分值和科室盈亏
         for (YbZyDisDiag item : zy.getYbZyDisDiag()) {
             item.setSsfz(caseFrontSheetMainService.fetchSsfz(item.getDisDiag().trim(), patNo, times).getData());
         }
@@ -1141,11 +1143,25 @@ public class SetlListUpldService {
             Exception {
         UpldCollection upldCollection = new UpldCollection();
         SetlinfoUpld mzPatient = dao.mzPatInfo(patNo, times);
+        EntityCopy.Copy(dao.mzPatInfo1(patNo, times), mzPatient);
         EntityCopy.Copy(dao.mzJieSuanXinXi(patNo, times), mzPatient);
+
         upldCollection.setSetlinfo(mzPatient);
         mzPatient.setMedcasno(patNo + "_" + times);
         // 门诊慢特病
-        upldCollection.setOpspdiseinfo(dao.outpatientDiagnosis(patNo, times));
+        OpspdiseinfoUpld opspdiseinfoUpld = dao.outpatientDiagnosis1(patNo, times);
+
+        if (opspdiseinfoUpld != null) {
+            String[] str = opspdiseinfoUpld.getDiagCode().split(",");
+            List<OpspdiseinfoUpld> opspdiseinfoUpldList = new ArrayList<>();
+            for (String s : str) {
+                opspdiseinfoUpldList.add(dao.outpatientSlowDiagnosis(s));
+            }
+            upldCollection.setOpspdiseinfo(opspdiseinfoUpldList);
+        } else {
+            upldCollection.setOpspdiseinfo(dao.outpatientDiagnosis2(patNo, times));
+        }
+
 
         mzPatient.setHsorg("长沙市医疗保障事务中心");
         mzPatient.setHsorgOpter("长沙市医疗保障事务中心");
@@ -1198,6 +1214,7 @@ public class SetlListUpldService {
         return ResultVoUtil.success(upldCollection);
     }
 
+
     /**
      * 修改患者的医疗类别
      *

+ 8 - 3
src/main/java/thyyxxk/webserver/utils/EntityCopy.java

@@ -4,15 +4,12 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 
 import java.beans.BeanInfo;
 import java.beans.Introspector;
 import java.beans.PropertyDescriptor;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Objects;
 
 /**
  * <p>
@@ -62,6 +59,14 @@ public class EntityCopy {
         return StringUtils.isBlank(value.toString());
     }
 
+    /**
+     * 注意  如果使用  @JSONField(name = xxx) 那么两个实体类都要有
+     *
+     * @param list  源对象
+     * @param clazz class
+     * @param <T>
+     * @return
+     */
     public static <T> List<T> CopyList(List<?> list, Class<T> clazz) {
         String oldOb = JSON.toJSONString(list);
         return JSON.parseArray(oldOb, clazz);