diff --git a/data-config/jobconfig/FsSyCatalogCollectTask b/data-config/jobconfig/FsSyCatalogCollectTask index 42e2173..d1d7bf1 100644 --- a/data-config/jobconfig/FsSyCatalogCollectTask +++ b/data-config/jobconfig/FsSyCatalogCollectTask @@ -2,6 +2,6 @@ "lastDate": "2024-08-13 00:00:00", "jobIntervalSeconds": 300, "sysCodes":"catalog", - "open": 1, + "open": 0, "where":"AND CYRQ >=TO_DATE('2024-07-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') " } \ No newline at end of file diff --git a/data-config/jobconfig/ZjFsCatalogCollectTask b/data-config/jobconfig/ZjFsCatalogCollectTask index d244d2f..46d0f28 100644 --- a/data-config/jobconfig/ZjFsCatalogCollectTask +++ b/data-config/jobconfig/ZjFsCatalogCollectTask @@ -2,6 +2,6 @@ "lastDate": "2024-08-13 00:00:00", "jobIntervalSeconds": 300, "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') " } \ No newline at end of file diff --git a/data-config/jobconfig/ZjFsCostListCollectTask b/data-config/jobconfig/ZjFsCostListCollectTask index cf3d85b..6f0978a 100644 --- a/data-config/jobconfig/ZjFsCostListCollectTask +++ b/data-config/jobconfig/ZjFsCostListCollectTask @@ -3,5 +3,5 @@ "delayDays": 1, "jobIntervalSeconds": 43200, "sysCodes":"costlist", - "open": 1 + "open": 0 } \ No newline at end of file diff --git a/data-config/jobconfig/ZqDyRmYyLabPacsCollectTask b/data-config/jobconfig/ZqDyRmYyLabPacsCollectTask new file mode 100644 index 0000000..03d5e93 --- /dev/null +++ b/data-config/jobconfig/ZqDyRmYyLabPacsCollectTask @@ -0,0 +1,7 @@ +{ + "delayDays": 1, + "jobIntervalSeconds": 43200, + "lab":"labcode", + "pacs":"pacscode", + "open": 0 +} \ No newline at end of file diff --git a/src/main/java/com/docus/server/AppRunBootstrap.java b/src/main/java/com/docus/server/AppRunBootstrap.java index 4775ba7..73d1314 100644 --- a/src/main/java/com/docus/server/AppRunBootstrap.java +++ b/src/main/java/com/docus/server/AppRunBootstrap.java @@ -1,11 +1,15 @@ 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 org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import java.util.Date; import java.util.Properties; @@ -19,6 +23,16 @@ public class AppRunBootstrap { props.setProperty("UseSunHttpHandler", "true"); System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl"); 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); } } diff --git a/src/main/java/com/docus/server/archivemysql/entity/TaskMakeupOnView.java b/src/main/java/com/docus/server/archivemysql/entity/TaskMakeupOnView.java new file mode 100644 index 0000000..dd8b0d2 --- /dev/null +++ b/src/main/java/com/docus/server/archivemysql/entity/TaskMakeupOnView.java @@ -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; + +} diff --git a/src/main/java/com/docus/server/archivemysql/mapper/TBasicMapper.java b/src/main/java/com/docus/server/archivemysql/mapper/TBasicMapper.java index 91d211a..71fec04 100644 --- a/src/main/java/com/docus/server/archivemysql/mapper/TBasicMapper.java +++ b/src/main/java/com/docus/server/archivemysql/mapper/TBasicMapper.java @@ -2,6 +2,7 @@ package com.docus.server.archivemysql.mapper; import com.baomidou.dynamic.datasource.annotation.DS; import com.docus.server.archivemysql.entity.TBasic; +import com.docus.server.archivemysql.entity.TaskMakeupOnView; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,4 +21,12 @@ public interface TBasicMapper { * @return 查询结果 */ List findTbasicByJzhs(@Param("jzhList") List 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 findTbasicByInpatientNo(@Param("inpatientNo") String inpatientNo); } diff --git a/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java b/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java index 35ccb19..24a6db9 100644 --- a/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java +++ b/src/main/java/com/docus/server/jobadmin/config/JobAdminConfig.java @@ -1,5 +1,6 @@ package com.docus.server.jobadmin.config; +import com.docus.infrastructure.redis.service.IdService; import com.docus.server.archivemysql.mapper.TBasicMapper; import com.docus.server.archivesqlserver.mapper.ArchiveMasterMapper; 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.V3ViewTaskCollectService; 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.InitializingBean; import org.springframework.stereotype.Component; @@ -61,12 +63,19 @@ public class JobAdminConfig implements InitializingBean, DisposableBean { @Resource private FsSyJswzhBmztEmrViewMapper fsSyJswzhBmztEmrViewMapper; + + @Resource + private ZqDyRmYyOutpatientLisReportViewMapper zqDyRmYyOutpatientLisReportViewMapper; + @Resource private TBasicMapper tBasicMapper; @Resource private V3ViewTaskCollectService v3ViewTaskCollectService; + @Resource + private IdService idService; + public ZjFsPatIndexViewMapper getZjFsPatIndexViewMapper() { return zjFsPatIndexViewMapper; @@ -84,10 +93,18 @@ public class JobAdminConfig implements InitializingBean, DisposableBean { return fsSyJswzhBmztEmrViewMapper; } + public ZqDyRmYyOutpatientLisReportViewMapper getZqDyRmYyOutpatientLisReportViewMapper() { + return zqDyRmYyOutpatientLisReportViewMapper; + } + public TBasicMapper gettBasicMapper() { return tBasicMapper; } + public IdService getIdService() { + return idService; + } + public V3ViewTaskCollectService getV3ViewTaskCollectService() { return v3ViewTaskCollectService; } diff --git a/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java b/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java index fd79594..5bd0ba2 100644 --- a/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java +++ b/src/main/java/com/docus/server/jobadmin/scheduler/JobScheduler.java @@ -3,6 +3,7 @@ package com.docus.server.jobadmin.scheduler; import com.docus.server.jobadmin.thread.FsSyCatalogCollectTaskHelper; import com.docus.server.jobadmin.thread.ZjFsCatalogCollectTaskHelper; import com.docus.server.jobadmin.thread.ZjFsCostListCollectTaskHelper; +import com.docus.server.jobadmin.thread.ZqDyRmYyLabPacsCollectTaskHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -19,6 +20,7 @@ public class JobScheduler { ZjFsCatalogCollectTaskHelper.getInstance().start(); ZjFsCostListCollectTaskHelper.getInstance().start(); FsSyCatalogCollectTaskHelper.getInstance().start(); + ZqDyRmYyLabPacsCollectTaskHelper.getInstance().start(); logger.info(">>>>>>>>> init job admin success."); } @@ -27,5 +29,6 @@ public class JobScheduler { ZjFsCatalogCollectTaskHelper.getInstance().toStop(); ZjFsCostListCollectTaskHelper.getInstance().toStop(); FsSyCatalogCollectTaskHelper.getInstance().toStop(); + ZqDyRmYyLabPacsCollectTaskHelper.getInstance().toStop(); } } diff --git a/src/main/java/com/docus/server/jobadmin/thread/ZqDyRmYyLabPacsCollectTaskHelper.java b/src/main/java/com/docus/server/jobadmin/thread/ZqDyRmYyLabPacsCollectTaskHelper.java new file mode 100644 index 0000000..88d7365 --- /dev/null +++ b/src/main/java/com/docus/server/jobadmin/thread/ZqDyRmYyLabPacsCollectTaskHelper.java @@ -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 lisReportViews = zqDyRmYyOutpatientLisReportViewMapper.findOutpatientLisReportByReportDate(startDateTime); + + if (Func.isNotEmpty(lisReportViews)) { + Map> groupPatientReport = new HashMap<>(); + for (ZqDyRmYyOutpatientLisReportView lisReportView : lisReportViews) { + String key = lisReportView.getInpatientNo() + "_" + lisReportView.getAdmissTimes() + "_" + lisReportView.getType(); + groupPatientReport.computeIfAbsent(key, k -> new ArrayList<>()).add(lisReportView); + } + + Set>> entries = groupPatientReport.entrySet(); + for (Map.Entry> entry : entries) { + List views = entry.getValue(); + ZqDyRmYyOutpatientLisReportView maxReportDateView = views.stream() + .max(Comparator.comparing(ZqDyRmYyOutpatientLisReportView::getReportDate)) + .orElse(null); + if (maxReportDateView == null) { + continue; + } + List 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 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 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); + } +} diff --git a/src/main/java/com/docus/server/zqdyrmyy/entity/ZqDyRmYyOutpatientLisReportView.java b/src/main/java/com/docus/server/zqdyrmyy/entity/ZqDyRmYyOutpatientLisReportView.java new file mode 100644 index 0000000..24e57cb --- /dev/null +++ b/src/main/java/com/docus/server/zqdyrmyy/entity/ZqDyRmYyOutpatientLisReportView.java @@ -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; + +} diff --git a/src/main/java/com/docus/server/zqdyrmyy/mapper/ZqDyRmYyOutpatientLisReportViewMapper.java b/src/main/java/com/docus/server/zqdyrmyy/mapper/ZqDyRmYyOutpatientLisReportViewMapper.java new file mode 100644 index 0000000..6eba268 --- /dev/null +++ b/src/main/java/com/docus/server/zqdyrmyy/mapper/ZqDyRmYyOutpatientLisReportViewMapper.java @@ -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 findOutpatientLisReportByReportDate(@Param("startDateTime") String startDateTime); +} diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml index 0057026..946debc 100644 --- a/src/main/resources/bootstrap.yml +++ b/src/main/resources/bootstrap.yml @@ -99,6 +99,28 @@ spring: test-on-borrow: false test-on-return: false 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: host: redis.docus.cn password: JSdocus@702 diff --git a/src/main/resources/mapper/TBasicMapper.xml b/src/main/resources/mapper/TBasicMapper.xml index 9a67745..7b238d7 100644 --- a/src/main/resources/mapper/TBasicMapper.xml +++ b/src/main/resources/mapper/TBasicMapper.xml @@ -16,6 +16,18 @@ name, emp_id as empId + + 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}) + + + 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} + + + diff --git a/src/main/resources/mapper/ZqDyRmYyOutpatientLisReportViewMapper.xml b/src/main/resources/mapper/ZqDyRmYyOutpatientLisReportViewMapper.xml new file mode 100644 index 0000000..a06b36b --- /dev/null +++ b/src/main/resources/mapper/ZqDyRmYyOutpatientLisReportViewMapper.xml @@ -0,0 +1,14 @@ + + + + + + + diff --git a/本服务SQL脚本.sql b/本服务SQL脚本.sql new file mode 100644 index 0000000..6e848f8 --- /dev/null +++ b/本服务SQL脚本.sql @@ -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 -----------------------