feat: 肇庆检查检验补偿

master
wyb 4 months ago
parent 166a62ed1f
commit 939f393168

@ -2,6 +2,6 @@
"lastDate": "2024-08-13 00:00:00", "lastDate": "2024-08-13 00:00:00",
"jobIntervalSeconds": 300, "jobIntervalSeconds": 300,
"sysCodes":"catalog", "sysCodes":"catalog",
"open": 1, "open": 0,
"where":"AND CYRQ >=TO_DATE('2024-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') " "where":"AND CYRQ >=TO_DATE('2024-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') "
} }

@ -2,6 +2,6 @@
"lastDate": "2024-08-13 00:00:00", "lastDate": "2024-08-13 00:00:00",
"jobIntervalSeconds": 300, "jobIntervalSeconds": 300,
"sysCodes":"catalog", "sysCodes":"catalog",
"open": 1, "open": 0,
"where":"AND discharge_date_time >=TO_DATE('2024-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') " "where":"AND discharge_date_time >=TO_DATE('2024-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') "
} }

@ -3,5 +3,5 @@
"delayDays": 1, "delayDays": 1,
"jobIntervalSeconds": 43200, "jobIntervalSeconds": 43200,
"sysCodes":"costlist", "sysCodes":"costlist",
"open": 1 "open": 0
} }

@ -0,0 +1,7 @@
{
"delayDays": 1,
"jobIntervalSeconds": 43200,
"lab":"labcode",
"pacs":"pacscode",
"open": 0
}

@ -1,11 +1,15 @@
package com.docus.server; package com.docus.server;
import cn.hutool.extra.spring.SpringUtil;
import com.docus.server.archivemysql.entity.TaskMakeupOnView;
import com.docus.server.archivemysql.mapper.TBasicMapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.Date;
import java.util.Properties; import java.util.Properties;
@ -19,6 +23,16 @@ public class AppRunBootstrap {
props.setProperty("UseSunHttpHandler", "true"); props.setProperty("UseSunHttpHandler", "true");
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
SpringApplication.run(AppRunBootstrap.class, args); SpringApplication.run(AppRunBootstrap.class, args);
TBasicMapper tBasicMapper = SpringUtil.getBean(TBasicMapper.class);
TaskMakeupOnView taskMakeupOnView = new TaskMakeupOnView();
taskMakeupOnView.setId(100L);
taskMakeupOnView.setInpatientNo("test");
taskMakeupOnView.setName("test-mody");
taskMakeupOnView.setReportLastModify(new Date());
taskMakeupOnView.setCollectSysType("t");
// tBasicMapper.insert(taskMakeupOnView);
taskMakeupOnView.setAdmissTimes(20);
tBasicMapper.update(taskMakeupOnView);
} }
} }

@ -0,0 +1,58 @@
package com.docus.server.archivemysql.entity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.Getter;
import java.util.Date;
/**
*
* @author YongBin Wen
* @date 2025/8/5 0005 10:50
*/
@Data
@ApiModel(value = "TaskMakeupOnView对象", description = "根据视图的报告更新时间,进行任务补偿,补偿记录")
@Getter
public class TaskMakeupOnView {
/**
* id
*/
private Long id;
/**
*
*/
private String inpatientNo;
/**
*
*/
private Integer admissTimes;
/**
*
*/
private String patientId;
/**
*
*/
private Date disDate;
/**
*
*/
private String collectSysType;
/**
*
*/
private String name;
/**
*
*/
private Date reportLastModify;
}

@ -2,6 +2,7 @@ package com.docus.server.archivemysql.mapper;
import com.baomidou.dynamic.datasource.annotation.DS; import com.baomidou.dynamic.datasource.annotation.DS;
import com.docus.server.archivemysql.entity.TBasic; import com.docus.server.archivemysql.entity.TBasic;
import com.docus.server.archivemysql.entity.TaskMakeupOnView;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -20,4 +21,12 @@ public interface TBasicMapper {
* @return * @return
*/ */
List<TBasic> findTbasicByJzhs(@Param("jzhList") List<String> jzhList); List<TBasic> findTbasicByJzhs(@Param("jzhList") List<String> jzhList);
TaskMakeupOnView findTaskMakeup(@Param("inpatientNo") String inpatientNo, @Param("admissTimes") Integer admissTimes,@Param("collectSys") String collectSys);
int update(@Param("taskMakeup") TaskMakeupOnView taskMakeup);
int insert(@Param("taskMakeup") TaskMakeupOnView taskMakeup);
List<TBasic> findTbasicByInpatientNo(@Param("inpatientNo") String inpatientNo);
} }

@ -1,5 +1,6 @@
package com.docus.server.jobadmin.config; package com.docus.server.jobadmin.config;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.server.archivemysql.mapper.TBasicMapper; import com.docus.server.archivemysql.mapper.TBasicMapper;
import com.docus.server.archivesqlserver.mapper.ArchiveMasterMapper; import com.docus.server.archivesqlserver.mapper.ArchiveMasterMapper;
import com.docus.server.fssyjhemr.mapper.FsSyJswzhBmztEmrViewMapper; import com.docus.server.fssyjhemr.mapper.FsSyJswzhBmztEmrViewMapper;
@ -7,6 +8,7 @@ import com.docus.server.jobadmin.scheduler.JobScheduler;
import com.docus.server.rpc.V2ViewTaskCollectService; import com.docus.server.rpc.V2ViewTaskCollectService;
import com.docus.server.rpc.V3ViewTaskCollectService; import com.docus.server.rpc.V3ViewTaskCollectService;
import com.docus.server.zjfsjhemr.mapper.ZjFsPatIndexViewMapper; import com.docus.server.zjfsjhemr.mapper.ZjFsPatIndexViewMapper;
import com.docus.server.zqdyrmyy.mapper.ZqDyRmYyOutpatientLisReportViewMapper;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -61,12 +63,19 @@ public class JobAdminConfig implements InitializingBean, DisposableBean {
@Resource @Resource
private FsSyJswzhBmztEmrViewMapper fsSyJswzhBmztEmrViewMapper; private FsSyJswzhBmztEmrViewMapper fsSyJswzhBmztEmrViewMapper;
@Resource
private ZqDyRmYyOutpatientLisReportViewMapper zqDyRmYyOutpatientLisReportViewMapper;
@Resource @Resource
private TBasicMapper tBasicMapper; private TBasicMapper tBasicMapper;
@Resource @Resource
private V3ViewTaskCollectService v3ViewTaskCollectService; private V3ViewTaskCollectService v3ViewTaskCollectService;
@Resource
private IdService idService;
public ZjFsPatIndexViewMapper getZjFsPatIndexViewMapper() { public ZjFsPatIndexViewMapper getZjFsPatIndexViewMapper() {
return zjFsPatIndexViewMapper; return zjFsPatIndexViewMapper;
@ -84,10 +93,18 @@ public class JobAdminConfig implements InitializingBean, DisposableBean {
return fsSyJswzhBmztEmrViewMapper; return fsSyJswzhBmztEmrViewMapper;
} }
public ZqDyRmYyOutpatientLisReportViewMapper getZqDyRmYyOutpatientLisReportViewMapper() {
return zqDyRmYyOutpatientLisReportViewMapper;
}
public TBasicMapper gettBasicMapper() { public TBasicMapper gettBasicMapper() {
return tBasicMapper; return tBasicMapper;
} }
public IdService getIdService() {
return idService;
}
public V3ViewTaskCollectService getV3ViewTaskCollectService() { public V3ViewTaskCollectService getV3ViewTaskCollectService() {
return v3ViewTaskCollectService; return v3ViewTaskCollectService;
} }

@ -3,6 +3,7 @@ package com.docus.server.jobadmin.scheduler;
import com.docus.server.jobadmin.thread.FsSyCatalogCollectTaskHelper; import com.docus.server.jobadmin.thread.FsSyCatalogCollectTaskHelper;
import com.docus.server.jobadmin.thread.ZjFsCatalogCollectTaskHelper; import com.docus.server.jobadmin.thread.ZjFsCatalogCollectTaskHelper;
import com.docus.server.jobadmin.thread.ZjFsCostListCollectTaskHelper; import com.docus.server.jobadmin.thread.ZjFsCostListCollectTaskHelper;
import com.docus.server.jobadmin.thread.ZqDyRmYyLabPacsCollectTaskHelper;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -19,6 +20,7 @@ public class JobScheduler {
ZjFsCatalogCollectTaskHelper.getInstance().start(); ZjFsCatalogCollectTaskHelper.getInstance().start();
ZjFsCostListCollectTaskHelper.getInstance().start(); ZjFsCostListCollectTaskHelper.getInstance().start();
FsSyCatalogCollectTaskHelper.getInstance().start(); FsSyCatalogCollectTaskHelper.getInstance().start();
ZqDyRmYyLabPacsCollectTaskHelper.getInstance().start();
logger.info(">>>>>>>>> init job admin success."); logger.info(">>>>>>>>> init job admin success.");
} }
@ -27,5 +29,6 @@ public class JobScheduler {
ZjFsCatalogCollectTaskHelper.getInstance().toStop(); ZjFsCatalogCollectTaskHelper.getInstance().toStop();
ZjFsCostListCollectTaskHelper.getInstance().toStop(); ZjFsCostListCollectTaskHelper.getInstance().toStop();
FsSyCatalogCollectTaskHelper.getInstance().toStop(); FsSyCatalogCollectTaskHelper.getInstance().toStop();
ZqDyRmYyLabPacsCollectTaskHelper.getInstance().toStop();
} }
} }

@ -0,0 +1,176 @@
package com.docus.server.jobadmin.thread;
import com.alibaba.fastjson.JSONObject;
import com.docus.core.util.Func;
import com.docus.infrastructure.core.utils.TableJsonRead;
import com.docus.infrastructure.redis.service.IdService;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.infrastructure.web.api.ResultCode;
import com.docus.server.archivemysql.entity.TBasic;
import com.docus.server.archivemysql.entity.TaskMakeupOnView;
import com.docus.server.archivemysql.mapper.TBasicMapper;
import com.docus.server.jobadmin.config.JobAdminConfig;
import com.docus.server.rpc.V3ViewTaskCollectService;
import com.docus.server.rpc.dto.CompensateTaskDTO;
import com.docus.server.zqdyrmyy.entity.ZqDyRmYyOutpatientLisReportView;
import com.docus.server.zqdyrmyy.mapper.ZqDyRmYyOutpatientLisReportViewMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit;
/**
* job
*
* @author YongBin Wen
* @date 2024/1/23 10:59
*/
public class ZqDyRmYyLabPacsCollectTaskHelper {
private static final Logger logger = LoggerFactory.getLogger(ZqDyRmYyLabPacsCollectTaskHelper.class);
private static final ZqDyRmYyLabPacsCollectTaskHelper instance = new ZqDyRmYyLabPacsCollectTaskHelper();
public static ZqDyRmYyLabPacsCollectTaskHelper getInstance() {
return instance;
}
private Thread zqDyRmYyLabPacsCollectTaskThread;
private volatile boolean toStop = false;
public void start() {
zqDyRmYyLabPacsCollectTaskThread = new Thread(() -> {
TableJsonRead tableJsonRead = new TableJsonRead();
ZqDyRmYyOutpatientLisReportViewMapper zqDyRmYyOutpatientLisReportViewMapper = JobAdminConfig.getJobAdminConfig().getZqDyRmYyOutpatientLisReportViewMapper();
TBasicMapper tBasicMapper = JobAdminConfig.getJobAdminConfig().gettBasicMapper();
IdService idService = JobAdminConfig.getJobAdminConfig().getIdService();
V3ViewTaskCollectService v3ViewTaskCollectService = JobAdminConfig.getJobAdminConfig().getV3ViewTaskCollectService();
String configPath = "data-config\\jobconfig";
String configFileName = "ZqDyRmYyLabPacsCollectTask";
while (!toStop) {
try {
// 读取配置,实时观察配置文件状况
JSONObject jobConfig = tableJsonRead.Read(configPath, configFileName, JSONObject.class);
int jobIntervalSeconds = jobConfig.getIntValue("jobIntervalSeconds");
int delayDays = jobConfig.getIntValue("delayDays");
String labSysCode = jobConfig.getString("lab");
String pacsSysCode = jobConfig.getString("pacs");
int open = jobConfig.getIntValue("open");
if (open == 0) {
TimeUnit.SECONDS.sleep(60);
continue;
}
LocalDate startDate = LocalDate.now().plusDays(-delayDays);
String startDateTime = startDate + " 00:00:00";
List<ZqDyRmYyOutpatientLisReportView> lisReportViews = zqDyRmYyOutpatientLisReportViewMapper.findOutpatientLisReportByReportDate(startDateTime);
if (Func.isNotEmpty(lisReportViews)) {
Map<String, List<ZqDyRmYyOutpatientLisReportView>> groupPatientReport = new HashMap<>();
for (ZqDyRmYyOutpatientLisReportView lisReportView : lisReportViews) {
String key = lisReportView.getInpatientNo() + "_" + lisReportView.getAdmissTimes() + "_" + lisReportView.getType();
groupPatientReport.computeIfAbsent(key, k -> new ArrayList<>()).add(lisReportView);
}
Set<Map.Entry<String, List<ZqDyRmYyOutpatientLisReportView>>> entries = groupPatientReport.entrySet();
for (Map.Entry<String, List<ZqDyRmYyOutpatientLisReportView>> entry : entries) {
List<ZqDyRmYyOutpatientLisReportView> views = entry.getValue();
ZqDyRmYyOutpatientLisReportView maxReportDateView = views.stream()
.max(Comparator.comparing(ZqDyRmYyOutpatientLisReportView::getReportDate))
.orElse(null);
if (maxReportDateView == null) {
continue;
}
List<TBasic> tBasicList = tBasicMapper.findTbasicByInpatientNo(maxReportDateView.getInpatientNo());
if (Func.isEmpty(tBasicList)) {
continue;
}
TBasic basic = tBasicList.stream()
.filter(tBasic -> maxReportDateView.getInpatientNo().equalsIgnoreCase(tBasic.getInpatientNo())
&& maxReportDateView.getAdmissTimes().equals(tBasic.getAdmissTimes()))
.findFirst().orElse(null);
if (basic == null) {
continue;
}
String patientId = basic.getPatientId();
String collectSys = "检验".equals(maxReportDateView.getType()) ? labSysCode : pacsSysCode;
TaskMakeupOnView taskMakeup = tBasicMapper.findTaskMakeup(maxReportDateView.getInpatientNo(), maxReportDateView.getAdmissTimes(), collectSys);
boolean isUpdate = taskMakeup != null;
if (isUpdate) {
if (!maxReportDateView.getReportDate().after(taskMakeup.getReportLastModify())) {
continue;
}
} else {
taskMakeup = new TaskMakeupOnView();
taskMakeup.setId(idService.getDateSeq());
taskMakeup.setInpatientNo(maxReportDateView.getInpatientNo());
taskMakeup.setAdmissTimes(maxReportDateView.getAdmissTimes());
taskMakeup.setName(maxReportDateView.getName());
taskMakeup.setCollectSysType(collectSys);
}
taskMakeup.setPatientId(patientId);
taskMakeup.setReportLastModify(maxReportDateView.getReportDate());
List<String> patientIds = Collections.singletonList(patientId);
CompensateTaskDTO compensateTaskDTO = new CompensateTaskDTO();
compensateTaskDTO.setPatientIds(patientIds);
compensateTaskDTO.setCollectorIds(Collections.singletonList(collectSys));
compensateTaskDTO.setPriority(3);
logger.info("肇庆检查、检验补偿生成队列参数:{}", Func.toJson(compensateTaskDTO));
CommonResult<String> result = v3ViewTaskCollectService.compensateTask(compensateTaskDTO);
logger.info("肇庆检查、检验补偿生成队列返回结果:{}", Func.toJson(result));
if (result != null && result.getCode().equals(ResultCode.SUCCESS.getCode())) {
if (isUpdate) {
tBasicMapper.update(taskMakeup);
} else {
tBasicMapper.insert(taskMakeup);
}
}
}
}
TimeUnit.SECONDS.sleep(jobIntervalSeconds);
} catch (Exception ex) {
if (!toStop) {
logger.error(">>>>>>>>>>> zqDyRmYy LabPacs CollectTask Thread error:" + ex.getMessage(), ex);
try {
TimeUnit.SECONDS.sleep(60);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
logger.info(">>>>>>>>>>> zqDyRmYy LabPacs CollectTask Thread stop");
});
zqDyRmYyLabPacsCollectTaskThread.setDaemon(true);
zqDyRmYyLabPacsCollectTaskThread.setName("zqDyRmYyLabPacsCollectTaskHelper");
zqDyRmYyLabPacsCollectTaskThread.start();
}
public void toStop() {
toStop = false;
zqDyRmYyLabPacsCollectTaskThread.interrupt();
try {
zqDyRmYyLabPacsCollectTaskThread.join();
} catch (Exception e) {
logger.error(e.getMessage(), e);
}
}
public static void main(String[] args) {
TableJsonRead tableJsonRead = new TableJsonRead();
JSONObject config = tableJsonRead.Read("data-config\\jobconfig", "ZqDyRmYyLabPacsCollectTask", JSONObject.class);
System.out.println(config);
}
}

@ -0,0 +1,48 @@
package com.docus.server.zqdyrmyy.entity;
/**
*
* @author YongBin Wen
* @date 2025/8/5 0005 9:48
*/
import io.swagger.annotations.ApiModel;
import lombok.Data;
import java.util.Date;
/**
*
*
* @author YongBin Wen
* @date 2024/8/13 16:07
*/
@ApiModel("肇庆第一人民医院出院患者检查、检验报告更新 数据视图")
@Data
public class ZqDyRmYyOutpatientLisReportView {
/**
*
*/
private String name;
/**
*
*/
private String inpatientNo;
/**
*
*/
private Integer admissTimes;
/**
*
*/
private Date disDate;
/**
*
*/
private Date reportDate;
/**
*
*/
private String type;
}

@ -0,0 +1,18 @@
package com.docus.server.zqdyrmyy.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.docus.server.zqdyrmyy.entity.ZqDyRmYyOutpatientLisReportView;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author YongBin Wen
* @date 2025/8/5 0005 9:57
*/
@DS("zqdyrmyy-mdip")
public interface ZqDyRmYyOutpatientLisReportViewMapper {
List<ZqDyRmYyOutpatientLisReportView> findOutpatientLisReportByReportDate(@Param("startDateTime") String startDateTime);
}

@ -99,6 +99,28 @@ spring:
test-on-borrow: false test-on-borrow: false
test-on-return: false test-on-return: false
validation-query: select 1 from dual validation-query: select 1 from dual
zqdyrmyy-mdip:
url: jdbc:oracle:thin:@//10.20.28.15:1521/cdrdb
username: zqry_blgd
password: zqry_blgd
driver-class-name: oracle.jdbc.driver.OracleDriver
type: com.alibaba.druid.pool.DruidDataSource
# 初始化配置
initial-size: 3
# 最小连接数
min-idle: 3
# 最大连接数
max-active: 5
# 获取连接超 时时间
max-wait: 5000
# 连接有效性检测时间
time-between-eviction-runs-millis: 90000
# 最大空闲时间
min-evictable-idle-time-millis: 1800000
test-while-idle: true
test-on-borrow: false
test-on-return: false
validation-query: select 1 from dual
redis: redis:
host: redis.docus.cn host: redis.docus.cn
password: JSdocus@702 password: JSdocus@702

@ -16,6 +16,18 @@
name, name,
emp_id as empId emp_id as empId
</sql> </sql>
<insert id="insert">
INSERT INTO docus_archivefile.task_makeup_onview (id, inpatient_no, admiss_times, patient_id,
dis_date, collect_sys_type, name, report_last_modify)
VALUES(#{taskMakeup.id}, #{taskMakeup.inpatientNo}, #{taskMakeup.admissTimes}, #{taskMakeup.patientId},
#{taskMakeup.disDate}, #{taskMakeup.collectSysType}, #{taskMakeup.name}, #{taskMakeup.reportLastModify})
</insert>
<update id="update">
UPDATE docus_archivefile.task_makeup_onview
SET inpatient_no = #{taskMakeup.inpatientNo}, admiss_times = #{taskMakeup.admissTimes}, patient_id = #{taskMakeup.patientId},
dis_date = #{taskMakeup.disDate}, collect_sys_type = #{taskMakeup.collectSysType}, name = #{taskMakeup.name}, report_last_modify = #{taskMakeup.reportLastModify}
WHERE id = #{taskMakeup.id}
</update>
<select id="findTbasicByJzhs" resultType="com.docus.server.archivemysql.entity.TBasic"> <select id="findTbasicByJzhs" resultType="com.docus.server.archivemysql.entity.TBasic">
select select
<include refid="basicInfoColumns"></include> <include refid="basicInfoColumns"></include>
@ -27,4 +39,16 @@
#{jzh} #{jzh}
</foreach> </foreach>
</select> </select>
<select id="findTbasicByInpatientNo" resultType="com.docus.server.archivemysql.entity.TBasic">
select
<include refid="basicInfoColumns"></include>
from
docus_medicalrecord.t_basic
where inpatient_no=#{inpatientNo} and file_source = 1
</select>
<select id="findTaskMakeup" resultType="com.docus.server.archivemysql.entity.TaskMakeupOnView">
SELECT id, inpatient_no, admiss_times, patient_id, dis_date, collect_sys_type, name, report_last_modify
FROM docus_archivefile.task_makeup_onview
WHERE inpatient_no=#{inpatientNo} and admiss_times=#{admissTimes} and collect_sys_type=#{collectSys}
</select>
</mapper> </mapper>

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.server.zqdyrmyy.mapper.ZqDyRmYyOutpatientLisReportViewMapper">
<select id="findOutpatientLisReportByReportDate"
resultType="com.docus.server.zqdyrmyy.entity.ZqDyRmYyOutpatientLisReportView">
SELECT PATIENT_NAME AS name,INP_NUM AS inpatientNo, VISIT_NO AS admissTimes,OUT_TIME AS disDate,REPORT_DATE_TIME AS reportDate,CHECK_TYPE AS type
FROM MDIP.V_JSWZH_OUTPATIENT_LISREPORT
WHERE REPORT_DATE_TIME >= to_date(#{startDateTime}, 'yyyy-MM-dd hh24:mi:ss')
</select>
</mapper>

@ -0,0 +1,18 @@
------------------------- 2025年8月5日10:15:52 -----------------------
CREATE TABLE docus_archivefile.task_makeup_onview (
id BIGINT(19) NOT NULL COMMENT '表主键id',
inpatient_no varchar(50) NOT NULL COMMENT '住院号',
admiss_times int(11) NULL COMMENT '住院次数',
patient_id varchar(50) NULL COMMENT '患者病案主键',
dis_date DATETIME NULL COMMENT '出院时间',
collect_sys_type varchar(30) NOT NULL COMMENT '采集器类型',
name varchar(100) NOT NULL COMMENT '姓名',
report_last_modify DATETIME NOT NULL COMMENT '报告最后更新时间',
CONSTRAINT task_makeup_onview_pk PRIMARY KEY (id)
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_general_ci
COMMENT='根据第三方视图补偿采集任务';
CREATE INDEX IDX_task_makeup_onview_patient USING BTREE ON docus_archivefile.task_makeup_onview (inpatient_no,admiss_times,patient_id,dis_date,name);
------------------------- 2025年8月5日10:15:52 -----------------------
Loading…
Cancel
Save