陈昶聿
5 天以前 6e23736b916ba71e7d3b27baf20f5be7ed3fb1d9
smartor/src/main/java/com/smartor/service/impl/ServiceExternalServiceImpl.java
@@ -1050,6 +1050,13 @@
            int i = patMedInhospMapper.insertPatMedInhosp(patMedInhosp1);
            if (i != 1) return false;
        }
        //离院方式代码 1-医瞩离院 2-医嘱转院 3-医嘱转社区卫生服务机构/乡镇卫生院
        // 4-非医嘱离院 5-死亡 9-其他 10-介入室 20-手术室
        String liYuanQxdm = ObjectUtils.isNotEmpty(JiuZhenXX.get("LiYuanQXDM")) ? JiuZhenXX.get("LiYuanQXDM").toString() : null;
        if (ObjectUtils.isNotEmpty(liYuanQxdm) && ("5").equals(liYuanQxdm)) {
            deathPatProcess(liYuanQxdm,patMedInhosp1);
        }
        return true;
    }
@@ -1093,36 +1100,11 @@
                }
            }
            //死亡标记
            Boolean deathFlag = false;
            //离院方式代码 1-医瞩离院 2-医嘱转院 3-医嘱转社区卫生服务机构/乡镇卫生院
            // 4-非医嘱离院 5-死亡 9-其他 10-介入室 20-手术室
            String liYuanQxdm = ObjectUtils.isNotEmpty(JiuZhenXX.get("LiYuanQXDM")) ? JiuZhenXX.get("LiYuanQXDM").toString() : null;
            //判断病人是否死亡
            if (ObjectUtils.isNotEmpty(liYuanQxdm) && ("5").equals(liYuanQxdm)) {
                deathFlag = true;
            }
            PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp1.getPatid());
            if(ObjectUtils.isNotEmpty(patArchive)){
                patMedInhosp1.setInhospstate("1");
                if (deathFlag) {
                    //病人死亡无须随访
                    patMedInhosp1.setFuflag("0");
                    //更新病人 notrequiredFlag
                    patArchive.setNotrequiredFlag("1");
                    patArchive.setNotrequiredreason("患者已离世");
                    patArchiveMapper.updatePatArchive(patArchive);
                    //对已经生成的随访任务进行处理
                    ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
                    serviceSubtaskVO.setPatid(patArchive.getId());
                    serviceSubtaskVO.setSendstate(2L);
                    List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                    for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                        serviceSubtask.setSendstate(4L);
                        serviceSubtask.setRemark(serviceSubtask.getRemark() + ";患者已离世,不随访");
                        serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                    }
                }
                deathPatProcess(liYuanQxdm,patMedInhosp1);
            }
            return true;
        } else {
@@ -2118,4 +2100,45 @@
        return requestParams;
    }
    /**
     * 死亡患者处理
     * @param liYuanQxdm
     * @param patMedInhosp
     * @return
     */
    private int deathPatProcess(String liYuanQxdm, PatMedInhosp patMedInhosp){
        //死亡标记
        Boolean deathFlag = false;
        //判断病人是否死亡
        if (ObjectUtils.isNotEmpty(liYuanQxdm) && ("5").equals(liYuanQxdm)) {
            deathFlag = true;
        }
        PatArchive patArchive = patArchiveMapper.selectPatArchiveByPatid(patMedInhosp.getPatid());
        if(ObjectUtils.isNotEmpty(patArchive)) {
            patMedInhosp.setInhospstate("1");
            if (deathFlag) {
                //病人死亡无须随访
                patMedInhosp.setFuflag("0");
                //更新病人 notrequiredFlag
                patArchive.setNotrequiredFlag("1");
                patArchive.setNotrequiredreason("患者已离世");
                patArchiveMapper.updatePatArchive(patArchive);
                //对已经生成的随访任务进行处理
                ServiceSubtaskEntity serviceSubtaskVO = new ServiceSubtaskEntity();
                serviceSubtaskVO.setPatid(patArchive.getId());
                serviceSubtaskVO.setSendstate(2L);
                List<ServiceSubtask> serviceSubtaskList = serviceSubtaskMapper.selectServiceSubtaskList(serviceSubtaskVO);
                for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
                    serviceSubtask.setSendstate(4L);
                    serviceSubtask.setRemark(serviceSubtask.getRemark() + ";患者已离世,不随访");
                    serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
                }
            } else {
                return 0;
            }
        }else {
            return -1;
        }
        return 1;
    }
}