fix: 厦门中医院,异地导入数据排查

lianzhong-receive
wyb 5 months ago
parent 73d716593d
commit 56f6a984a1

@ -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("筛选异常!");
}
}
}

@ -19,4 +19,6 @@ public interface ISyncBasicDataService {
void choose();
void choose(List<String> inpatientNos);
void xmzyyYidiChoose();
}

@ -50,4 +50,10 @@ public interface BasicMapper {
List<Tbasic> getTbasicByInpatientNo(@Param("inpatientNo") String inpatientNo);
List<String> getInpatientNos();
List<String> getInpatientNosBySource(@Param("fileSource") int source);
int fillMissingFields(@Param("basic") Tbasic yidiBasic);
int updateNotArchive(@Param("patientId")String patientId);
}

@ -183,6 +183,54 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
}
}
@Override
public void xmzyyYidiChoose() {
final int yidiSource=4;
List<String> yidiInpatientNos = basicMapper.getInpatientNosBySource(yidiSource);
for (String inpatientNo : yidiInpatientNos) {
xmzyyYidiChoose(inpatientNo);
}
}
/**
*
*/
public void xmzyyYidiChoose(String yidiInpatientNo) {
List<Tbasic> basicList = basicMapper.getTbasicByInpatientNo(yidiInpatientNo);
if (basicList.size() <= 1) {
return;
}
final Integer yidiSource = 4;
List<Tbasic> yidiBasics = basicList.stream().filter(p -> yidiSource.equals(p.getFileSource())).collect(Collectors.toList());
if(CollUtil.isEmpty(yidiBasics)){
return;
}
for (Tbasic yidiBasic : yidiBasics) {
List<Tbasic> 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

@ -6,30 +6,30 @@
<insert id="insertOrUpdateByid">
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
<foreach collection="list" item="item" separator=",">
(#{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}
)
</foreach>
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);
</insert>
<insert id="insertOrUpdateTbasicSub">
@ -66,19 +66,42 @@
</insert>
<update id="updateScanStatus">
update docus_medicalrecord.t_basic
set scan_source = 1 ,
set scan_source = 1,
scan_upload_state = 3
WHERE patient_id = #{pid}
</update>
<update id="updateScanBasicCorrect">
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>
<update id="fillMissingFields">
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>
<update id="updateNotArchive">
update docus_medicalrecord.t_basic
set is_archive = 0
where patient_id = #{patientId}
</update>
<delete id="delTbasicByAdmissId">
delete from docus_medicalrecord.t_basic where admiss_id=#{admissId}
delete
from docus_medicalrecord.t_basic
where admiss_id = #{admissId}
</delete>
<delete id="delTbasicSub">
delete from docus_medicalrecord.t_basic_sub where patient_id=#{patientId}
delete
from docus_medicalrecord.t_basic_sub
where patient_id = #{patientId}
</delete>
<delete id="delTbasic">
delete from docus_medicalrecord.t_basic
@ -197,26 +220,35 @@
where patient_id = #{patientId}
</select>
<select id="getTbasicByInpatientNo" resultType="com.docus.demo.entity.Tbasic">
SELECT
patient_id,
admiss_times,
inpatient_no,
admiss_date,
`name`,
dis_date,
ph
FROM
docus_medicalrecord.t_basic
where
inpatient_no = #{inpatientNo}
SELECT patient_id,
admiss_times,
inpatient_no,
admiss_date,
`name`,
dis_date,
admiss_dept,
admiss_dept_name,
dis_dept,
dis_dept_name,
sex,
sex_name,
file_source,
ph
FROM docus_medicalrecord.t_basic
where inpatient_no = #{inpatientNo}
</select>
<select id="getInpatientNos" resultType="java.lang.String">
SELECT
inpatient_no
FROM
docus_medicalrecord.t_basic
SELECT inpatient_no
FROM docus_medicalrecord.t_basic
group by inpatient_no
</select>
<select id="getInpatientNosBySource" resultType="java.lang.String">
SELECT inpatient_no
FROM docus_medicalrecord.t_basic
where file_source = #{fileSource}
group by inpatient_no
</select>
</mapper>
Loading…
Cancel
Save