ADDED Requirements
Requirement: 数据同步引擎支持增量同步模式
系统SHALL提供增量同步功能,通过时间窗口(stDate到endDate)从HIS系统拉取新增或更新的患者就诊数据。增量同步SHALL:
- 使用上次同步时间作为
stDate,当前时间作为endDate
- 支持配置「回溯天数」(默认3天),即将
stDate向前回溯N天,避免遗漏延迟更新数据
- 对于每条返回数据,使用
admID作为唯一键进行UPSERT(存在则更新,不存在则插入)
Scenario: 正常执行增量同步
- WHEN 同步引擎触发增量同步任务,上次同步时间为
2026-06-13 08:00,回溯天数配置为1天
- THEN 引擎SHALL以
stDate: "2026-06-12", endDate: "2026-06-14"调用HIS接口,并将返回的数据逐条UPSERT到DRG_HIS_PatientAdm表
Scenario: 增量同步时发现已存在的admID
- WHEN HIS接口返回的数据中,某条记录的
admID: 5999886已存在于DRG_HIS_PatientAdm表中
- THEN 引擎SHALL更新该记录的所有字段(除主键外),而不是插入新记录
Scenario: 增量同步成功完成后更新最后同步时间
- WHEN 增量同步任务成功完成(所有数据写入成功)
- THEN 引擎SHALL将最后同步时间更新为本次同步的结束时间,并记录同步日志(状态:success)
Requirement: 数据同步引擎支持全量同步模式
系统SHALL提供全量同步功能,用于初始化或历史数据补录。全量同步SHALL:
- 接收起始日期和结束日期作为参数
- 按日期分段拉取数据(每段7天),避免单次请求数据量过大
- 清空或忽略已存在的数据(可选择覆盖或跳过)
Scenario: 执行全量同步并覆盖已存在数据
- WHEN 用户触发全量同步,指定日期范围为
2026-01-01到2026-06-14
- THEN 引擎SHALL按7天为一段分批调用HIS接口,对返回的数据执行UPSERT操作,并记录同步日志
Scenario: 全量同步过程中某段日期接口调用失败
- WHEN 全量同步进行中,某一段日期的接口调用失败(如网络超时)
- THEN 引擎SHALL记录该段日期为失败,继续处理下一段日期,最终同步状态标记为
partial,并在日志中记录失败的日期段
Requirement: 数据同步引擎支持定时自动同步
系统SHALL支持配置定时同步任务,按照Cron表达式或固定间隔自动触发增量同步。
Scenario: 定时同步任务按配置间隔自动执行
- WHEN 系统配置定时同步间隔为30分钟,且同步服务处于运行状态
- THEN 系统SHALL每隔30分钟自动触发一次增量同步任务,无需人工干预
Scenario: 定时同步任务执行时前一次任务尚未完成
- WHEN 定时同步触发时,前一次同步任务仍在运行中
- THEN 系统SHALL跳过本次定时触发,避免并发同步导致数据冲突,并在日志中记录跳过事件
Requirement: 数据同步引擎记录同步日志
系统SHALL在每次同步任务执行后,向DRG_HIS_SyncLog表写入一条同步日志,包含:
- 同步类型(full/incremental/manual)
- 开始时间、结束时间
- 状态(success/failed/partial)
- 总记录数、成功记录数、失败记录数
- 错误信息(如有)
Scenario: 同步任务完成后写入日志
- WHEN 增量同步任务执行完成,成功写入50条数据,失败0条
- THEN 系统SHALL向
DRG_HIS_SyncLog表写入一条日志,状态为success,TotalCount=50, SuccessCount=50, FailedCount=0