| | |
| | | try { |
| | | Map<String, Object> requestParams = buildRequestParams(reqVO); |
| | | Map<String, String> headers = buildRequestHeaders(); |
| | | String result = HttpUtils.sendPostByHeader(sltdPubPath + "osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers); |
| | | log.info("请求参数出院数据地址:{},appKey:{}", sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", APP_KEY); |
| | | String result = HttpUtils.sendPostByHeader(sltdPubPath + "/osj/hbos-thirdparty-integration/standard/common/healthcareRecord/dtcQueryHealthcareRecordList", new Gson().toJson(requestParams), headers); |
| | | |
| | | String cry = determineCry(reqVO); |
| | | log.info("cry的值为:{}", cry); |
| | |
| | | return serviceSLTDInhospResDTOS; |
| | | } catch (Exception e) { |
| | | log.error("【queryHealthcareRecordList】调用省立同德健康记录查询接口异常,请求参数:{}", reqVO, e); |
| | | throw new RuntimeException("调用省立同德健康记录查询接口失败", e); |
| | | throw new RuntimeException("调用省立同德健康记录查询接口失败:" + e.getMessage()); |
| | | } |
| | | } |
| | | |
| | |
| | | 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(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); |
| | | //判断一下用户-部门关系是不是已经存在了(无论新用户还是老用户都需要去重) |
| | | 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); |
| | | } |
| | | } |
| | | 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(3L, sysUser.getUserId()); |
| | | SysUserRole sysUserRole = sysUserRoleMapper.selectUserRoleByRoleIdAndUserId(4L, sysUser.getUserId()); |
| | | if (ObjectUtils.isNotEmpty(sysUserRole)) continue; |
| | | |
| | | userRoleList.add(sur); |
| | |
| | | queryInhosp.setSerialnum(StringUtils.trim(patMedInhosp.getSerialnum())); |
| | | queryInhosp.setOrgid(StringUtils.trim(dto.getOrgId())); |
| | | queryInhosp.setInhospstate(cry); |
| | | queryInhosp.setSchemestatus(0L); |
| | | log.info("----------------这里的入参为:{},{}", queryInhosp.getPatno(), queryInhosp.getSerialnum()); |
| | | List<PatMedInhosp> existingInhosps = patMedInhospService.selectPatMedInhosp(queryInhosp); |
| | | |
| | |
| | | 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"); |
| | | if ("0".equals(cry)) { |
| | | patMedInhosp.setInhospstate("0"); |
| | | if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) { |
| | | for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) { |
| | | if (diagnosis.getIsMainDiagnosis() == 1) { |
| | | patMedInhosp.setDiagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName()); |
| | | patMedInhosp.setIcd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if ("1".equals(cry)) { |
| | | patMedInhosp.setInhospstate("1"); |
| | | if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) { |
| | | for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) { |
| | | if (diagnosis.getIsMainDiagnosis() == 1) { |
| | | patMedInhosp.setLeavediagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName()); |
| | | patMedInhosp.setLeaveicd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if ("3".equals(cry)) { |
| | | patMedInhosp.setInhospstate("3"); |
| | | if (CollectionUtils.isNotEmpty(dto.getDiagnosisList()) && dto.getDiagnosisList().size() > 0) { |
| | | for (ServiceSLTDDiagnosisResDTO diagnosis : dto.getDiagnosisList()) { |
| | | if (diagnosis.getIsMainDiagnosis() == 1) { |
| | | patMedInhosp.setDiagname(diagnosis.getDiagnosisDictName() == null ? "" : diagnosis.getDiagnosisDictName()); |
| | | patMedInhosp.setIcd10code(diagnosis.getDiagnosisDictCode() == null ? "" : diagnosis.getDiagnosisDictCode()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | patMedInhosp.setHospitalcode(dto.getOrgId()); |
| | | patMedInhosp.setBedNo(dto.getBedNumber()); |
| | | patMedInhosp.setStarttime(parseDate(dto.getStartTime())); |
| | |
| | | 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); |
| | | |
| | | if (CollectionUtils.isEmpty(existingArchives)) { |
| | |
| | | |
| | | private PatArchive buildPatientArchive(ServiceSLTDInhospResDTO dto) { |
| | | PatArchive patArchive = new PatArchive(); |
| | | patArchive.setPatientno(dto.getPatientId() == null ? null : String.valueOf(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); |