|
@@ -10,6 +10,7 @@ import com.diagbot.entity.HomePage;
|
|
|
import com.diagbot.entity.MedCrisisInfo;
|
|
|
import com.diagbot.entity.MedicalRecord;
|
|
|
import com.diagbot.entity.MedicalRecordContent;
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.exception.CommonErrorCode;
|
|
|
import com.diagbot.exception.CommonException;
|
|
|
import com.diagbot.service.BehospitalInfoService;
|
|
@@ -266,6 +267,199 @@ public class DataImportFacade {
|
|
|
}
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
+ * 数据导入【效率低,备用】
|
|
|
+ *
|
|
|
+ * @param dataImportVO
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public Boolean dataImportPrepareFacade(DataImportVO dataImportVO) {
|
|
|
+ Long hospitalId = dataImportVO.getHospitalId();
|
|
|
+ // 病历信息导入
|
|
|
+ List<BehospitalInfo> behospitalInfoList = dataImportVO.getBehospitalInfoList();
|
|
|
+ if (ListUtil.isNotEmpty(behospitalInfoList)) {
|
|
|
+ behospitalInfoList.forEach(s -> {
|
|
|
+ QueryWrapper<BehospitalInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("behospital_code", s.getBehospitalCode());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("is_deleted", IsDeleteEnum.N);
|
|
|
+ // 姓名加密
|
|
|
+ if (StringUtil.isNotBlank(s.getName())) {
|
|
|
+ s.setName(s.getName().substring(0, 1) + "**");
|
|
|
+ }
|
|
|
+ int count = behospitalInfoService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ behospitalInfoService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ behospitalInfoService.save(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 危急值信息
|
|
|
+ List<MedCrisisInfo> medCrisisInfoList = dataImportVO.getMedCrisisInfoList();
|
|
|
+ if (ListUtil.isNotEmpty(medCrisisInfoList)) {
|
|
|
+ medCrisisInfoList.forEach(s -> {
|
|
|
+ QueryWrapper<MedCrisisInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("rec_id", s.getRecId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("behospital_code", s.getBehospitalCode());
|
|
|
+ queryWrapper.eq("rec_type", s.getRecType());
|
|
|
+ int count = medCrisisInfoService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ medCrisisInfoService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ medCrisisInfoService.save(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 病人医嘱
|
|
|
+ List<DoctorAdvice> doctorAdviceList = dataImportVO.getDoctorAdviceList();
|
|
|
+ if (ListUtil.isNotEmpty(doctorAdviceList)) {
|
|
|
+ doctorAdviceList.forEach(s -> {
|
|
|
+ QueryWrapper<DoctorAdvice> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("doctor_advice_id", s.getDoctorAdviceId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("is_deleted",IsDeleteEnum.N);
|
|
|
+ int count = doctorAdviceService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ doctorAdviceService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ doctorAdviceService.save(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 病案首页诊断
|
|
|
+ List<HomeDiagnoseInfo> homeDiagnoseInfoList = dataImportVO.getHomeDiagnoseInfoList();
|
|
|
+ if (ListUtil.isNotEmpty(homeDiagnoseInfoList)) {
|
|
|
+ homeDiagnoseInfoList.forEach(s -> {
|
|
|
+ QueryWrapper<HomeDiagnoseInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("home_page_id", s.getHomePageId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("diagnose_order_no", s.getDiagnoseOrderNo());
|
|
|
+ int count = homeDiagnoseInfoService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ homeDiagnoseInfoService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ homeDiagnoseInfoService.save(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 病案首页
|
|
|
+ List<HomePage> homePageList = dataImportVO.getHomePageList();
|
|
|
+ if (ListUtil.isNotEmpty(homePageList)) {
|
|
|
+ homePageList.stream().forEach(s -> {
|
|
|
+ // 姓名
|
|
|
+ if (StringUtil.isNotBlank(s.getName())) {
|
|
|
+ s.setName(s.getName().substring(0, 1) + "**");
|
|
|
+ }
|
|
|
+ // 身份证
|
|
|
+ if (StringUtil.isNotBlank(s.getIdentityCardNo())) {
|
|
|
+ s.setIdentityCardNo(s.getIdentityCardNo().substring(0, 1) + "*****************");
|
|
|
+ }
|
|
|
+ // 现住址电话
|
|
|
+ if (StringUtil.isNotBlank(s.getCurPhone())) {
|
|
|
+ s.setCurPhone(s.getCurPhone().substring(0, 1) + "**");
|
|
|
+ }
|
|
|
+ // 工作单位电话
|
|
|
+ if (StringUtil.isNotBlank(s.getWorkPhone())) {
|
|
|
+ s.setWorkPhone(s.getWorkPhone().substring(0, 1) + "**");
|
|
|
+ }
|
|
|
+ // 联系人姓名
|
|
|
+ if (StringUtil.isNotBlank(s.getContactName())) {
|
|
|
+ s.setContactName(s.getContactName().substring(0, 1) + "**");
|
|
|
+ }
|
|
|
+ // 联系人电话
|
|
|
+ if (StringUtil.isNotBlank(s.getContactPhone())) {
|
|
|
+ s.setContactPhone(s.getContactPhone().substring(0, 1) + "**");
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<HomePage> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("home_page_id", s.getHomePageId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("behospital_code", s.getBehospitalCode());
|
|
|
+ queryWrapper.eq("is_deleted",IsDeleteEnum.N);
|
|
|
+ int count = homePageService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ homePageService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ homePageService.save(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 病案首页手术信息
|
|
|
+ List<HomeOperationInfo> homeOperationInfoList = dataImportVO.getHomeOperationInfoList();
|
|
|
+ if (ListUtil.isNotEmpty(homeOperationInfoList)) {
|
|
|
+ homeOperationInfoList.forEach(s -> {
|
|
|
+ if(s.getHomePageId()!=null && !"".equals(s.getOperationOrderNo())) {
|
|
|
+ QueryWrapper<HomeOperationInfo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("home_page_id", s.getHomePageId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("operation_order_no", s.getOperationOrderNo());
|
|
|
+ int count = homeOperationInfoService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ homeOperationInfoService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ homeOperationInfoService.save(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 文书信息
|
|
|
+ List<MedicalRecord> medicalRecordList = dataImportVO.getMedicalRecordList();
|
|
|
+ if (ListUtil.isNotEmpty(medicalRecordList)) {
|
|
|
+ medicalRecordList.forEach(s -> {
|
|
|
+ QueryWrapper<MedicalRecord> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("rec_id", s.getRecId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("is_deleted",IsDeleteEnum.N);
|
|
|
+ int count = medicalRecordService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ medicalRecordService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ medicalRecordService.save(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ // 文书明细信息
|
|
|
+ List<MedicalRecordContent> medicalRecordContentList = dataImportVO.getMedicalRecordContentList();
|
|
|
+ if (ListUtil.isNotEmpty(medicalRecordContentList)) {
|
|
|
+ // 加密数据
|
|
|
+ if (encryptFlag) {
|
|
|
+ String recId = "";
|
|
|
+ try {
|
|
|
+ EncrypDES encrypDES = new EncrypDES();
|
|
|
+ for (MedicalRecordContent s : medicalRecordContentList) {
|
|
|
+ recId = s.getRecId();
|
|
|
+ if (StringUtil.isNotBlank(s.getXmlText())) {
|
|
|
+ s.setXmlText(encrypDES.encrytor(s.getXmlText()));
|
|
|
+ }
|
|
|
+ QueryWrapper<MedicalRecordContent> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("rec_id", s.getRecId());
|
|
|
+ queryWrapper.eq("hospital_id", s.getHospitalId());
|
|
|
+ queryWrapper.eq("is_deleted",IsDeleteEnum.N);
|
|
|
+ int count = medicalRecordContentService.count(queryWrapper);
|
|
|
+ if (count > 0) {
|
|
|
+ medicalRecordContentService.update(s, queryWrapper);
|
|
|
+ } else {
|
|
|
+ medicalRecordContentService.save(s);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "加密xml错误!recId=【" + recId + "】");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 模拟测试数据
|
|
|
*
|