From 56f6a984a1836abb62bdadef8fb44a76a78be662 Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Tue, 11 Mar 2025 09:43:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8E=A6=E9=97=A8=E4=B8=AD=E5=8C=BB?= =?UTF-8?q?=E9=99=A2=EF=BC=8C=E5=BC=82=E5=9C=B0=E5=AF=BC=E5=85=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8E=92=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SyncBasicDataController.java | 16 +++ .../demo/facade/ISyncBasicDataService.java | 2 + .../docus/demo/mapper/mysql/BasicMapper.java | 6 ++ .../docus/demo/service/SyncBasicDataImpl.java | 48 +++++++++ .../resources/mapper/mysql/BasicMapper.xml | 102 ++++++++++++------ 5 files changed, 139 insertions(+), 35 deletions(-) diff --git a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java index 1a2fbb6..011c7dc 100644 --- a/src/main/java/com/docus/demo/controller/SyncBasicDataController.java +++ b/src/main/java/com/docus/demo/controller/SyncBasicDataController.java @@ -229,4 +229,20 @@ public class SyncBasicDataController { return CommonResult.failed("筛选异常!"); } } + + @ApiOperation("厦门中医院异地扫描导入数据,根据 病案号、姓名、出院日期 进行 入院日期,性别,科室补充,被选择的改为未归档状态") + @GetMapping("/xmzyyYidi/choose") + public CommonResult xmzyyYidiChoose(){ + log.info("厦门中医院异地扫描导入数据,根据 病案号、姓名、出院日期 进行 入院日期,性别,科室补充"); + try { + syncBasicDataService.xmzyyYidiChoose(); + log.info("厦门中医院异地扫描导入数据,根据 病案号、姓名、出院日期 进行 入院日期,性别,科室补充,已完成!"); + return CommonResult.success("筛选完成!"); + } catch (Exception ex) { + log.error("厦门中医院异地扫描导入数据,根据 病案号、姓名、出院日期 进行 入院日期,性别,科室补充,出现异常!" + ex.getMessage(), ex); + return CommonResult.failed("筛选异常!"); + } + } + + } diff --git a/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java b/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java index 9957887..2def1c6 100644 --- a/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java +++ b/src/main/java/com/docus/demo/facade/ISyncBasicDataService.java @@ -19,4 +19,6 @@ public interface ISyncBasicDataService { void choose(); void choose(List inpatientNos); + + void xmzyyYidiChoose(); } diff --git a/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java b/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java index dd1fddf..b8aeedc 100644 --- a/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java +++ b/src/main/java/com/docus/demo/mapper/mysql/BasicMapper.java @@ -50,4 +50,10 @@ public interface BasicMapper { List getTbasicByInpatientNo(@Param("inpatientNo") String inpatientNo); List getInpatientNos(); + + List getInpatientNosBySource(@Param("fileSource") int source); + + int fillMissingFields(@Param("basic") Tbasic yidiBasic); + + int updateNotArchive(@Param("patientId")String patientId); } diff --git a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java index 0c895c4..95998be 100644 --- a/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java +++ b/src/main/java/com/docus/demo/service/SyncBasicDataImpl.java @@ -183,6 +183,54 @@ public class SyncBasicDataImpl implements ISyncBasicDataService { } } + @Override + public void xmzyyYidiChoose() { + final int yidiSource=4; + List yidiInpatientNos = basicMapper.getInpatientNosBySource(yidiSource); + for (String inpatientNo : yidiInpatientNos) { + xmzyyYidiChoose(inpatientNo); + } + + } + /** + * 厦门中医院异地扫描导入数据,根据 病案号、姓名、出院日期 进行 入院日期,性别,科室补充 + */ + public void xmzyyYidiChoose(String yidiInpatientNo) { + List basicList = basicMapper.getTbasicByInpatientNo(yidiInpatientNo); + if (basicList.size() <= 1) { + return; + } + final Integer yidiSource = 4; + List yidiBasics = basicList.stream().filter(p -> yidiSource.equals(p.getFileSource())).collect(Collectors.toList()); + if(CollUtil.isEmpty(yidiBasics)){ + return; + } + for (Tbasic yidiBasic : yidiBasics) { + List collect = basicList.stream().filter(p -> { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return !yidiSource.equals(p.getFileSource()) + && sdf.format(yidiBasic.getDisDate()).equals(sdf.format(p.getDisDate())) + && yidiBasic.getName().equals(p.getName()) + && StrUtil.isNotBlank(p.getDisDept()) + && StrUtil.isNotBlank(p.getSex()); + }).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collect)){ + Tbasic chooseBasic = collect.get(0); + yidiBasic.setSex(chooseBasic.getSex()); + yidiBasic.setSexName(chooseBasic.getSexName()); + yidiBasic.setAdmissDate(chooseBasic.getAdmissDate()); + yidiBasic.setAdmissDept(chooseBasic.getAdmissDept()); + yidiBasic.setAdmissDeptName(chooseBasic.getAdmissDeptName()); + yidiBasic.setDisDept(chooseBasic.getDisDept()); + yidiBasic.setDisDeptName(chooseBasic.getDisDeptName()); + basicMapper.fillMissingFields(yidiBasic); + basicMapper.updateNotArchive(chooseBasic.getPatientId()); + } + } + + + } + /** * 根据 病案号、姓名、出院日期、住院次数 判断是同一个人,进行数据筛选。 * 有盘号/箱号 优先级 +10 diff --git a/src/main/resources/mapper/mysql/BasicMapper.xml b/src/main/resources/mapper/mysql/BasicMapper.xml index 8efc8dc..a5002f7 100644 --- a/src/main/resources/mapper/mysql/BasicMapper.xml +++ b/src/main/resources/mapper/mysql/BasicMapper.xml @@ -6,30 +6,30 @@ insert into docus_medicalrecord.t_basic (patient_id,admiss_times,inpatient_no,admiss_id, - name,sex,age,id_card, + name,sex,age,id_card, admiss_date,admiss_dept,admiss_dept_name,dis_date, dis_dept,dis_dept_name,main_diag_code,main_diag_name, main_operate_code,main_operate_name,create_time,is_archive, file_source,b_column5,b_column8,archive_file_storage_type, scan_upload_state - ) + ) values - (#{item.patientId},#{item.admissTimes},#{item.inpatientNo},#{item.admissId}, - #{item.name},#{item.sex},#{item.age},#{item.idCard}, - #{item.admissDate},#{item.admissDept},#{item.admissDeptName},#{item.disDate}, - #{item.disDept},#{item.disDeptName},#{item.mainDiagCode},#{item.mainDiagName}, - #{item.mainOperateCode},#{item.mainOperateName},#{item.createTime},#{item.isArchive}, - #{item.fileSource},#{item.bColumn5},#{item.bColumn8},#{item.archiveFileStorageType}, - #{item.scanUploadState} - ) + (#{item.patientId},#{item.admissTimes},#{item.inpatientNo},#{item.admissId}, + #{item.name},#{item.sex},#{item.age},#{item.idCard}, + #{item.admissDate},#{item.admissDept},#{item.admissDeptName},#{item.disDate}, + #{item.disDept},#{item.disDeptName},#{item.mainDiagCode},#{item.mainDiagName}, + #{item.mainOperateCode},#{item.mainOperateName},#{item.createTime},#{item.isArchive}, + #{item.fileSource},#{item.bColumn5},#{item.bColumn8},#{item.archiveFileStorageType}, + #{item.scanUploadState} + ) ON DUPLICATE KEY UPDATE id_card = VALUES(id_card) - ,admiss_dept = VALUES(admiss_dept) - ,admiss_dept_name = VALUES(admiss_dept_name) - ,dis_dept = VALUES(dis_dept) - ,dis_dept_name = VALUES(dis_dept_name) - ,is_archive = VALUES(is_archive); + ,admiss_dept = VALUES(admiss_dept) + ,admiss_dept_name = VALUES(admiss_dept_name) + ,dis_dept = VALUES(dis_dept) + ,dis_dept_name = VALUES(dis_dept_name) + ,is_archive = VALUES(is_archive); @@ -66,19 +66,42 @@ update docus_medicalrecord.t_basic - set scan_source = 1 , + set scan_source = 1, scan_upload_state = 3 WHERE patient_id = #{pid} - update docus_medicalrecord.t_basic set patient_id=#{newPatId} ,ph=#{ph} where patient_id=#{oldPatId} + update docus_medicalrecord.t_basic + set patient_id=#{newPatId}, + ph=#{ph} + where patient_id = #{oldPatId} + + + update docus_medicalrecord.t_basic + set sex=#{basic.sex}, + sex_name=#{basic.sexName}, + admiss_date=#{basic.admissDate}, + admiss_dept=#{basic.admissDept}, + admiss_dept_name=#{basic.admissDeptName}, + dis_dept=#{basic.disDept}, + dis_dept_name=#{basic.disDeptName} + where patient_id = #{basic.patientId} + + + update docus_medicalrecord.t_basic + set is_archive = 0 + where patient_id = #{patientId} - delete from docus_medicalrecord.t_basic where admiss_id=#{admissId} + delete + from docus_medicalrecord.t_basic + where admiss_id = #{admissId} - delete from docus_medicalrecord.t_basic_sub where patient_id=#{patientId} + delete + from docus_medicalrecord.t_basic_sub + where patient_id = #{patientId} delete from docus_medicalrecord.t_basic @@ -197,26 +220,35 @@ where patient_id = #{patientId} + \ No newline at end of file