src.DRG.BasicData.InterFace 的模式jsonObj 到服务类jsonObj 参数jsonObj.params 提取查询参数jsonObj.pagination 提取分页参数new (jsonObj) 导致的参数被清空问题SyncedPatients.tsx - 详情弹窗使用Tabs展示SyncLog.tsx - 新建同步日志查询页面App.tsx - 添加路由和菜单配置// 方法1:编译单个类
Do $System.OBJ.Compile("src.DRG.HISData.HisDataService","ck")
Do $System.OBJ.Compile("src.DRG.HISData.InterFace","ck")
// 方法2:同时编译多个类
Do $System.OBJ.Compile("src.DRG.HISData.HisDataService,src.DRG.HISData.InterFace","ck")
Do $System.OBJ.Compile("src.DRG.HISData.SyncTaskService","ck")
Do $System.OBJ.Compile("src.DRG.HISData.SyncSchedulerTask","ck")
// 或一并:
Do $System.OBJ.Compile("src.DRG.HISData.SyncTaskService,src.DRG.HISData.SyncSchedulerTask","ck")
Do $System.OBJ.Compile("src.DRG.HISData.Tests.SyncTaskServiceTest","ck")
Do ##class(%UnitTest.Manager).RunTest("src.DRG.HISData.Tests")
预期:22 个用例全部 PASS。重点验证:
TestShouldRunNow_Hourly_CrossDaySameTimeExecutes:原 hourly 跨天去重 bug 已修复(昨天 14:00 跑过、今天 14:00 应执行)。TestShouldRunNow_Daily_WithinTwoMinuteTolerance 与 TestShouldRunNow_Daily_OutsideTolerance:±2 分钟容错窗口生效。ShouldRunNow 的 hourly 跨天去重 bug:原本比较"一天内秒数",导致昨天整点跑过则今天同一整点被跳过;改为直接比较完整 $h 时间戳。RunScheduledTasks 诊断日志硬编码:原本 debugOn=1,每次扫描写 ^DRG.HIS.SyncConfig.Debug;现改为 $g(^DRG.HIS.SyncConfig.DebugOn, 0),生产默认关闭。排错期可手动 Set ^DRG.HIS.SyncConfig.DebugOn=1,完成后 Kill ^DRG.HIS.SyncConfig.DebugOn。// 1. 直接调用扫描入口(模拟外部触发器)
Set rtn = ##class(src.DRG.HISData.SyncTaskService).RunScheduledTasks({})
// rtn.scannedCount 应大于 0;若有 enabled 配置且频率到点,executedCount 应 = 1
// 2. 验证 hourly 跨天去重(手动注入 LastRunTime)
Set ^DRG.HIS.SyncConfig.LastRunTime("hourly","H03") = $h - 1 // 模拟昨天已跑
Set rtn = ##class(src.DRG.HISData.SyncTaskService).RunScheduledTasks({})
// 修复后 today 14:00 应正常执行一次(executedCount = 1)
{
"code": "02010075",
"params": [{}],
"session": [{"userID": "158", "hospID": "13"}],
"pagination": [{"pageSize": 20, "currentPage": 1}]
}
{
"code": "02010076",
"params": [{"admID": "测试就诊ID"}],
"session": [{"userID": "158", "hospID": "13"}]
}
{
"code": "02010077",
"params": [{}],
"session": [{"userID": "158", "hospID": "13"}],
"pagination": [{"pageSize": 20, "currentPage": 1}]
}
npm start 或 yarn startSQL表名:确认SQL中使用的表名与类定义中的 SqlTableName 一致
BS_HIS_PatAdm - 对应 User.BSHISPatAdmBS_HIS_DiseInfo - 对应 User.BSHISDiseInfoBS_HIS_OprnInfo - 对应 User.BSHISOprnInfoBS_HIS_SyncLog - 对应 User.BSHISSyncLogBS_HISDRGParams - 对应 User.BSHISDRGParams分页语法:IRIS支持 LIMIT 和 OFFSET 语法(IRIS 2019+)
字段名拼写:代码中可能有拼写错误(如 Deleted 误写为 Deleted),需要检查并修复