| | |
| | | public class ServiceSLTDHealthcareRecordServiceImpl implements IServiceSLTDHealthcareRecordService { |
| | | |
| | | private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss"; |
| | | public static final String APP_KEY = "ak-zUMiOWhqXiJQWPB1pCbz0pjr"; |
| | | |
| | | @Autowired |
| | | private IPatArchiveService patArchiveService; |
| | |
| | | |
| | | @Value("${userPwd}") |
| | | private String userPwd; |
| | | |
| | | @Value("${lwl_app_key}") |
| | | private String APP_KEY; |
| | | |
| | | @Override |
| | | public List<ServiceSLTDInhospResDTO> queryHealthcareRecordList(ServiceSLTDInhospReqVO reqVO) { |
| | |
| | | String professionalTitleName = getStringValue(diagnosisMap, "professionalTitleName"); |
| | | if (professionalTitleName.contains("医师")) { |
| | | sysUser.setUserType("医生"); |
| | | sysUser.setSearchscope("1"); |
| | | } |
| | | if (professionalTitleName.contains("护")) { |
| | | sysUser.setUserType("护士"); |
| | | sysUser.setSearchscope("2"); |
| | | } |
| | | sysUser.setTitle(getStringValue(diagnosisMap, "professionalTitleName")); |
| | | } |
| | | } |
| | | } |
| | | |
| | | //如果用户的患者范围为空,则默认为0 |
| | | if (StringUtils.isEmpty(sysUser.getSearchscope())) sysUser.setSearchscope("0"); |
| | | sysUser.setPhonenumber(getStringValue(dataItem, "telephone")); |
| | | sysUser.setUserCode(getStringValue(dataItem, "jobNumber")); |
| | | //设置性别 |
| | |
| | | sysUser.setCreateBy("admin"); |
| | | sysUser.setCreateBy("admin"); |
| | | sysUser.setOrgid("" + getLongValue(dataItem, "orgId")); |
| | | // sysUser.setCampusid("" + getLongValue(dataItem, "cmpusId")); |
| | | BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); |
| | | sysUser.setPassword(passwordEncoder.encode(userPwd)); |
| | | |
| | | SysUser sysUser1 = sysUser2Mapper.selectUserByUserName(sysUser.getUserName()); |
| | | if (ObjectUtils.isNotEmpty(sysUser1)) { |
| | | //由人工维护的字段是不需要更新的 |
| | | sysUser.setSearchscope(null); |
| | | sysUser.setPassword(null); |
| | | sysUser.setUserId(sysUser1.getUserId()); |
| | | sysUser2Mapper.updateUser(sysUser); |
| | | } else { |
| | |
| | | |
| | | // 处理用户与部门的关系 |
| | | List businessDepts = (List<?>) dataItem.get("businessDepts"); |
| | | if (CollectionUtils.isEmpty(businessDepts)) { |
| | | continue; |
| | | } |
| | | if (CollectionUtils.isNotEmpty(businessDepts)) { |
| | | List<List<String>> deptInfoList = new ArrayList<>(); |
| | | List<List<String>> hospInfoList = new ArrayList<>(); |
| | | log.info("------businessDepts是否有值:{}", businessDepts.size()); |
| | | for (Object businessDept : businessDepts) { |
| | | if (businessDept instanceof Map) { |
| | | Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept; |
| | | log.info("------businessDeptMap是否有值:{}", businessDeptMap); |
| | | String hisDeptId = getStringValue(businessDeptMap, "deptId"); |
| | | log.info("------hisDeptId是否有值:{}, reqVO.getOrgId()的值为:{}", hisDeptId, reqVO.getCampusId()); |
| | | //在这里,hisDeptId就是deptCode |
| | | SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId()); |
| | | log.info("------hisDeptId是否有值:{}, reqVO.getCampusId()的值为:{}", hisDeptId, reqVO.getCampusId()); |
| | | if (Objects.isNull(sysDept)) continue; |
| | | SysUserDept sysUserDept = new SysUserDept(); |
| | | sysUserDept.setUserId(sysUser.getUserId()); |
| | | sysUserDept.setDeptType(sysDept.getDeptType()); |
| | | sysUserDept.setDeptId(sysDept.getDeptId()); |
| | | sysUserDept.setDeptCode(sysDept.getDeptCode()); |
| | | sysUserDept.setDeptName(sysDept.getDeptName()); |
| | | sysUserDept.setOrgid(sysDept.getOrgid()); |
| | | sysUserDept.setCreateTime(new Date()); |
| | | sysUserDept.setDelFlag(0L); |
| | | |
| | | List<List<String>> deptInfoList = new ArrayList<>(); |
| | | List<List<String>> hospInfoList = new ArrayList<>(); |
| | | log.info("------businessDepts是否有值:{}", businessDepts.size()); |
| | | for (Object businessDept : businessDepts) { |
| | | if (businessDept instanceof Map) { |
| | | Map<String, Object> businessDeptMap = (Map<String, Object>) businessDept; |
| | | log.info("------businessDeptMap是否有值:{}", businessDeptMap); |
| | | // Long hisDeptId = (Long) personnelDeptMap.get("deptId"); |
| | | String hisDeptId = getStringValue(businessDeptMap, "deptId"); |
| | | log.info("------hisDeptId是否有值:{}, reqVO.getOrgId()的值为:{}", hisDeptId, reqVO.getCampusId()); |
| | | //在这里,hisDeptId就是deptCode |
| | | SysDept sysDept = sysDeptMapper.selectDeptByCode(hisDeptId, reqVO.getOrgId()); |
| | | log.info("------hisDeptId是否有值:{}, reqVO.getCampusId()的值为:{}", hisDeptId, reqVO.getCampusId()); |
| | | if (Objects.isNull(sysDept)) continue; |
| | | SysUserDept sysUserDept = new SysUserDept(); |
| | | sysUserDept.setUserId(sysUser.getUserId()); |
| | | sysUserDept.setDeptType(sysDept.getDeptType()); |
| | | sysUserDept.setDeptId(sysDept.getDeptId()); |
| | | sysUserDept.setDeptCode(sysDept.getDeptCode()); |
| | | sysUserDept.setDeptName(sysDept.getDeptName()); |
| | | sysUserDept.setOrgid(sysDept.getOrgid()); |
| | | sysUserDept.setCreateTime(new Date()); |
| | | sysUserDept.setDelFlag(0L); |
| | | |
| | | //判断一下是不是已经存在了 |
| | | if (ObjectUtils.isNotEmpty(sysUser1) && ObjectUtils.isNotEmpty(sysDept)) { |
| | | SysUserDept sud = new SysUserDept(); |
| | | sud.setUserId(sysUser1.getUserId()); |
| | | sud.setDeptId(sysDept.getDeptId()); |
| | | List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud); |
| | | if (CollectionUtils.isNotEmpty(sysUserDepts)) { |
| | | sysUserDept.setId(sysUserDepts.get(0).getId()); |
| | | sysUserDeptMapper.updateSysUserDept(sysUserDept); |
| | | //判断一下用户-部门关系是不是已经存在了(无论新用户还是老用户都需要去重) |
| | | if (ObjectUtils.isNotEmpty(sysUser.getUserId()) && ObjectUtils.isNotEmpty(sysDept)) { |
| | | SysUserDept sud = new SysUserDept(); |
| | | sud.setUserId(sysUser.getUserId()); |
| | | sud.setDeptId(sysDept.getDeptId()); |
| | | sud.setOrgid(sysDept.getOrgid()); |
| | | List<SysUserDept> sysUserDepts = sysUserDeptMapper.selectSysUserDeptList(sud); |
| | | if (CollectionUtils.isNotEmpty(sysUserDepts)) { |
| | | sysUserDept.setId(sysUserDepts.get(0).getId()); |
| | | sysUserDeptMapper.updateSysUserDept(sysUserDept); |
| | | } else { |
| | | sysUserDeptMapper.insertSysUserDept(sysUserDept); |
| | | } |
| | | } |
| | | } else { |
| | | //不存在,则新增 |
| | | sysUserDeptMapper.insertSysUserDept(sysUserDept); |
| | | } |
| | | if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) { |
| | | hospInfoList.add(Arrays.asList(sysDept.getDeptCode())); |
| | | } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) { |
| | | deptInfoList.add(Arrays.asList(sysDept.getDeptCode())); |
| | | if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("1")) { |
| | | hospInfoList.add(Arrays.asList(sysDept.getDeptCode())); |
| | | } else if (StringUtils.isNotEmpty(sysDept.getDeptType()) && sysDept.getDeptType().equals("2")) { |
| | | deptInfoList.add(Arrays.asList(sysDept.getDeptCode())); |
| | | } |
| | | } |
| | | } |
| | | //将部门我病区放到指定字段中 |
| | | Gson gson = new Gson(); |
| | | sysUser.setHospInfo(gson.toJson(hospInfoList)); |
| | | sysUser.setDeptInfo(gson.toJson(deptInfoList)); |
| | | sysUser2Mapper.updateUser(sysUser); |
| | | } |
| | | //将部门我病区放到指定字段中 |
| | | Gson gson = new Gson(); |
| | | sysUser.setHospInfo(gson.toJson(hospInfoList)); |
| | | sysUser.setDeptInfo(gson.toJson(deptInfoList)); |
| | | sysUser2Mapper.updateUser(sysUser); |
| | | |
| | | //设置一个默认角色(医生角色) |
| | | List<SysUserRole> userRoleList = new ArrayList(); |
| | | SysUserRole sur = new SysUserRole(); |
| | | sur.setUserId(sysUser.getUserId()); |
| | | sur.setRoleId(3L); |
| | | sur.setRoleId(4L); |
| | | sur.setOrgid(sysUser.getOrgid()); |
| | | |
| | | //先查询一下,是否存在 |
| | | SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(sysUser.getUserId(), 3L); |
| | | SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(4L, sysUser.getUserId()); |
| | | if (ObjectUtils.isNotEmpty(sysUserRole)) continue; |
| | | |
| | | userRoleList.add(sur); |
| | |
| | | patMedOuthosp.setCreateTime(new Date()); |
| | | patMedOuthosp.setOrgid(dto.getOrgId()); |
| | | patMedOuthosp.setCampusid(dto.getCampusId()); |
| | | patMedOuthosp.setFuflag("1"); |
| | | if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) |
| | | patMedOuthosp.setFuflag("0"); |
| | | return patMedOuthosp; |
| | | } |
| | | |
| | |
| | | patMedInhosp.setNurseId(dto.getChiefNurseId() == null ? "" : dto.getChiefNurseId().toString()); |
| | | patMedInhosp.setNurseName(dto.getChiefNurseName()); |
| | | patMedInhosp.setSerialnum(dto.getHealthcareRecordNo()); |
| | | patMedInhosp.setInhospno(dto.getHealthcareRecordNo()); |
| | | patMedInhosp.setFuflag("1"); |
| | | if (StringUtils.isNotEmpty(patArchive.getNotrequiredFlag()) && patArchive.getNotrequiredFlag().equals("1")) |
| | | patMedInhosp.setFuflag("0"); |
| | | if ("0".equals(cry)) patMedInhosp.setInhospstate("0"); |
| | | if ("1".equals(cry)) patMedInhosp.setInhospstate("1"); |
| | | if ("3".equals(cry)) patMedInhosp.setInhospstate("3"); |
| | |
| | | } |
| | | |
| | | private PatArchive processPatientArchive(ServiceSLTDInhospResDTO dto) { |
| | | PatArchive queryArchive = new PatArchive(); |
| | | queryArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); |
| | | List<PatArchive> existingArchives = patArchiveService.selectPatArchiveList(queryArchive); |
| | | List<PatArchive> existingArchives = null; |
| | | |
| | | // 优先按 patientno 精确查重,查不到再按 idcardno 查重(AND条件会漏查同一人不同patientno的情况) |
| | | if (dto.getPatientId() != null) { |
| | | PatArchive queryByPatientNo = new PatArchive(); |
| | | queryByPatientNo.setPatientno(String.valueOf(dto.getPatientId())); |
| | | queryByPatientNo.setIdcardno(StringUtils.isNotEmpty(dto.getIdCardNo()) ? dto.getIdCardNo().trim() : null); |
| | | existingArchives = patArchiveService.selectPatArchiveList(queryByPatientNo); |
| | | } |
| | | // if (CollectionUtils.isEmpty(existingArchives) && !StringUtils.isEmpty(dto.getIdCardNo())) { |
| | | // PatArchive queryByIdCard = new PatArchive(); |
| | | // queryByIdCard.setIdcardno(dto.getIdCardNo().trim()); |
| | | // existingArchives = patArchiveService.selectPatArchiveList(queryByIdCard); |
| | | // } |
| | | |
| | | PatArchive patArchive = buildPatientArchive(dto); |
| | | |
| | |
| | | log.debug("【processPatientArchive】新增患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | } else { |
| | | patArchive.setId(existingArchives.get(0).getId()); |
| | | patArchive.setNotrequiredFlag(existingArchives.get(0).getNotrequiredFlag()); |
| | | patArchive.setNotrequiredreason(existingArchives.get(0).getNotrequiredreason()); |
| | | patArchiveService.updateArchive(patArchive); |
| | | log.debug("【processPatientArchive】更新患者档案,患者编号:{}", patArchive.getPatientno()); |
| | | } |
| | |
| | | |
| | | private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto) { |
| | | PatArchive patArchive = new PatArchive(); |
| | | patArchive.setPatientno("" + dto.getPatientId()); |
| | | patArchive.setPatientno(dto.getMedicalRecordNo() == null ? null : String.valueOf(dto.getMedicalRecordNo())); |
| | | patArchive.setPatidHis(dto.getPatientId() == null ? null : String.valueOf(dto.getPatientId())); |
| | | patArchive.setIdcardno(StringUtils.isEmpty(dto.getIdCardNo()) ? "" + dto.getMedicalCardId() : dto.getIdCardNo().trim()); |
| | | patArchive.setName(dto.getPatientName()); |
| | | patArchive.setSourcefrom(2L); |