spec.md 3.6 KB

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