imp:英德中医院,补偿不使用视图数据,用组成视图的原表数据

master
wyb 3 months ago
parent 95672bbf88
commit 9797f25f14

@ -45,7 +45,7 @@ public class ApiController {
public CommonResult<String> collectPacs(@RequestBody List<String> patientIds) {
List<TBasic> basics = tBasicMapper.getTbasicByPatientIds(patientIds);
for (TBasic basic : basics) {
pacsCollectJob.collectPacs(basic);
pacsCollectJob.collectPacs(basic, false);
}
return CommonResult.success("采集完成");
}

@ -54,28 +54,28 @@ public class PacsCollectJob {
@XxlJob("Ydzyy-CollectPacsByDisDateNotCollected")
public void collectPacsByDisDateNotCollected(){
public void collectPacsByDisDateNotCollected() {
String collectorId = "3";
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job开始任务");
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job开始任务");
int days;
try {
String daysStr = XxlJobHelper.getJobParam();
days=Integer.parseInt(daysStr);
}catch (Exception ex){
days=31;
days = Integer.parseInt(daysStr);
} catch (Exception ex) {
days = 31;
}
LocalDate startDate = LocalDate.now().plusDays(-days);
String startDateTime = startDate.toString()+" 00:00:00";
String startDateTime = startDate.toString() + " 00:00:00";
try {
List<TBasic> basicList = tBasicMapper.getNoTaskPatientByDisDate(startDateTime,collectorId);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间:{} 采集未采集的患者,{} 个",startDateTime,basicList.size());
List<TBasic> basicList = tBasicMapper.getNoTaskPatientByDisDate(startDateTime, collectorId);
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间:{} 采集未采集的患者,{} 个", startDateTime, basicList.size());
for (TBasic basic : basicList) {
collectPacs(basic);
collectPacs(basic,false);
}
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job任务结束");
}catch (Exception ex){
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job任务异常"+ex.getMessage(),ex);
} catch (Exception ex) {
log.info(">>>>>>>>>>>>>>>>>>>>>>>>>>>英德中医院pacs视图采集,根据出院时间和未采集job任务异常" + ex.getMessage(), ex);
}
}
@ -151,7 +151,7 @@ public class PacsCollectJob {
tBasicList.add(basic);
}
for (TBasic basic : tBasicList) {
collectPacs(basic);
collectViewPacs(basic);
}
LocalDateTime nextStartTime = jobRunTime.plusSeconds(-deviationSeconds);
jobConfig.put("startTime", Func.formatDateTime(nextStartTime));
@ -196,11 +196,11 @@ public class PacsCollectJob {
String remark = task.getC1();
YdZyyPacsViewCondition viewCondition = new YdZyyPacsViewCondition();
viewCondition.setRemark(remark);
List<YdZyyPacsView> pacsViews = ydZyyPacsViewMapper.pacsViews(viewCondition);
if(Func.isEmpty(pacsViews)){
List<YdZyyPacsView> pacsViews = ydZyyPacsViewMapper.longTimePacsViews(viewCondition);
if (Func.isEmpty(pacsViews)) {
tBasicMapper.delTaskById(task.getId());
tBasicMapper.flushPatTaskEndTime (patientId, Func.formatDateTime(new Date()));
log.warn("remark:{} ,patientId:{} 视图已经不存在pacs报告信息,删除任务!", remark,patientId);
tBasicMapper.flushPatTaskEndTime(patientId, Func.formatDateTime(new Date()));
log.warn("remark:{} ,patientId:{} 视图已经不存在pacs报告信息,删除任务!", remark, patientId);
continue;
}
@ -235,12 +235,17 @@ public class PacsCollectJob {
System.out.println(Func.formatDateTime(new Date()).substring(0, 10));
}
public void collectPacs(TBasic basic) {
private void collectViewPacs(TBasic basic) {
collectPacs(basic, true);
}
public void collectPacs(TBasic basic, boolean isView) {
String collectorId = "3";
String assortId = "AC2C8F4A88884DC894630302C61C6A07";
String patientId = basic.getPatientId();
// 获取视图数据
List<YdZyyPacsView> finalPacsViews = getPacsViews(basic);
List<YdZyyPacsView> finalPacsViews = isView ? getPacsViews(basic) : getPacs(basic, isView);
if (Func.isEmpty(finalPacsViews)) {
tBasicMapper.invalidFileBySource(patientId, collectorId);
tBasicMapper.deleteTaskByPatAndSource(patientId, collectorId);
@ -339,12 +344,22 @@ public class PacsCollectJob {
}
}
/**
* pacs
*
* @param basic
*/
private List<YdZyyPacsView> getPacsViews(TBasic basic) {
return getPacs(basic, true);
}
/**
* pacs
*
* @param basic
*/
private List<YdZyyPacsView> getPacs(TBasic basic, boolean isView) {
String inpatientNo = basic.getInpatientNo();
String idCard = basic.getIdCard();
Date admissDate = basic.getAdmissDate();
@ -357,13 +372,13 @@ public class PacsCollectJob {
pacsViewCondition.setSendDateStart(admissDateStr);
pacsViewCondition.setSendDateEnd(disDateStr);
// 住院pacs
List<YdZyyPacsView> zyPacsViews = ydZyyPacsViewMapper.pacsViews(pacsViewCondition);
List<YdZyyPacsView> zyPacsViews = isView ? ydZyyPacsViewMapper.pacsViews(pacsViewCondition) : ydZyyPacsViewMapper.longTimePacsViews(pacsViewCondition);
List<YdZyyPacsView> allPacsViews = new ArrayList<>(zyPacsViews);
if(Func.isNotBlank(idCard)){
if (Func.isNotBlank(idCard)) {
pacsViewCondition.setInpNo(null);
pacsViewCondition.setIdCard(idCard);
// 根据患者身份证查
List<YdZyyPacsView> pacsViewsByIdCard = ydZyyPacsViewMapper.pacsViews(pacsViewCondition);
List<YdZyyPacsView> pacsViewsByIdCard = isView ? ydZyyPacsViewMapper.pacsViews(pacsViewCondition) : ydZyyPacsViewMapper.longTimePacsViews(pacsViewCondition);
allPacsViews.addAll(pacsViewsByIdCard);
}

@ -18,8 +18,9 @@ public interface YdZyyPacsViewMapper {
/**
* pacstimeStart <= STATUSCHGTIME < timeEnd
*
* @return pacs
*/
List<YdZyyPacsView> pacsViews(@Param("condition")YdZyyPacsViewCondition condition);
List<YdZyyPacsView> longTimePacsViews(@Param("condition")YdZyyPacsViewCondition condition);
}

@ -5,6 +5,34 @@
<mapper namespace="com.docus.server.ydzyy.mapper.YdZyyPacsViewMapper">
<sql id="View_Paperless_DDL">
select
b.serialno as REMARK,
ISNULL(a.register_num,'') as REGISTER_NUM,
ISNULL(a.hst_num,'') as NP_NO,
a.study_id as ACCNO,
CONVERT(VARCHAR(10),a.crt_time,120) as CREATETIMESTR,
b.report_doc as REPORTDOC,
a.modality + '检查报告单' as REPORTNAME,
a.name as NAME,
b.aduit_time as ADUITTIME,
'\\10.10.100.97\新图像存储\报告打印图像预览\' + CONVERT(char(4), YEAR(CASE WHEN studytime IS NULL
THEN preengagetime ELSE studytime END)) + '年' + RTRIM(CONVERT(char(2), MONTH(CASE WHEN studytime IS NULL
THEN preengagetime ELSE studytime END))) + '月' + RTRIM(CONVERT(char(2), DAY(CASE WHEN studytime IS NULL
THEN preengagetime ELSE studytime END))) + '日\' + a.name + '_' + a.modality + '_' + LTRIM(STR(a.serialno))
+ '.jpg' as FILEPATH,
a.statuschgtime as STATUSCHGTIME,
a.send_date as SENDDATE,
a.id_card as IDCARD
FROM pacsdb..rcv_patient a WITH(NOLOCK)
JOIN pacsdb..diagnose_report b WITH(NOLOCK) on a.serialno = b.serialno
LEFT join pacsdb..sick_type c on a.sick_type=c.sick_id
WHERE a.preengagetime >= '2022-10-01 00:00:00'
AND a.proc_status >='50'
AND b.userlevel = pacsproc.dbo.fnGetMaxLevelSerialno(a.serialno)
AND charindex('体检',c.sick_name) <![CDATA[<]]> 1
</sql>
<select id="pacsViews" resultType="com.docus.server.ydzyy.entity.YdZyyPacsView">
select
REMARK,
@ -45,4 +73,46 @@
</if>
order by CREATETIMESTR asc
</select>
<select id="longTimePacsViews" resultType="com.docus.server.ydzyy.entity.YdZyyPacsView">
select
REMARK,
REGISTER_NUM,
NP_NO,
ACCNO,
CREATETIMESTR,
REPORTDOC,
REPORTNAME,
NAME,
ADUITTIME,
FILEPATH,
STATUSCHGTIME,
SENDDATE,
IDCARD
from ( <include refid="View_Paperless_DDL"></include> ) viewdata
where (ADUITTIME is not null and ADUITTIME != '')
<if test="condition.changeTimeStart != null and condition.changeTimeStart != ''">
and STATUSCHGTIME >= #{condition.changeTimeStart}
</if>
<if test="condition.changeTimeEnd != null and condition.changeTimeEnd != ''">
and STATUSCHGTIME <![CDATA[<=]]> #{condition.changeTimeEnd}
</if>
<if test="condition.sendDateStart != null and condition.sendDateStart != ''">
and SENDDATE >= #{condition.sendDateStart}
</if>
<if test="condition.sendDateEnd != null and condition.sendDateEnd != ''">
and SENDDATE <![CDATA[<=]]> #{condition.sendDateEnd}
</if>
<if test="condition.inpNo != null and condition.inpNo != ''">
and NP_NO = #{condition.inpNo}
</if>
<if test="condition.idCard != null and condition.idCard != ''">
and IDCARD = #{condition.idCard}
</if>
<if test="condition.remark != null and condition.remark != ''">
and REMARK=#{condition.remark}
</if>
order by CREATETIMESTR asc
</select>
</mapper>

Loading…
Cancel
Save