将所有 hospID 改为 hospCode,用于关联和记录同步HIS所属的医院信息,
通过 hospCode 与 CB_Hospital 表中的 Code 字段关联。
为HIS数据模块增加同步任务管理前端菜单,支持:
| 字段名 | 类型 | 说明 |
|---|---|---|
| ID | %String | 主键 |
| HospCode | %String | 医院代码(关联CB_Hospital.Code) |
| SyncType | %String | 同步类型:incremental/full |
| Frequency | %String | 频率:manual/hourly/daily/weekly |
| ScheduledTime | %String | 定时时间(daily: "00:00", weekly: "1,00:00") |
| LookbackDays | %Integer | 增量同步回溯天数 |
| Enabled | %Boolean | 是否启用 |
| LastSyncTime | %TimeStamp | 最后同步时间 |
| Status | %String | 状态:idle/running/error |
| ErrorMessage | %String | 错误信息 |
| CreateUserDr | %String | 创建用户 |
| CreateDate | %Date | 创建日期 |
| UpdateUserDr | %String | 更新用户 |
| UpdateDate | %Date | 更新日期 |
索引:
HospCodeIndex On HospCode As ExactEnabledIndex On Enabled As Exact已添加字段:
FixmedinsCode - 医疗机构代码FixmedinsName - 医疗机构名称所有同步配置、日志、患者数据均通过 HospCode 关联所属医院:
BS_HIS_SyncConfig.HospCode → CB_Hospital.CodeBS_HIS_PatAdm.FixmedinsCode → CB_Hospital.Code| 接口码 | 方法名 | 说明 |
|---|---|---|
| 02010078 | ExecuteSyncTask |
手动执行同步任务(增量/全量) |
| 02010079 | GetSyncConfig |
查询同步配置 |
| 02010080 | SaveSyncConfig |
保存同步配置(频率、类型等) |
| 02010081 | GetSyncStatus |
查询同步状态(最后同步时间、是否正在同步) |
Class src.DRG.HISData.SyncTaskService Extends (%RegisteredObject, %XML.Adaptor)
{
/// 执行同步任务(接口02010078)
ClassMethod ExecuteSyncTask(jsonObj) As %Library.DynamicObject
{
// 从jsonObj.params获取:syncType, hospCode, lookbackDays, startDate, endDate
// 调用 SyncEngine.IncrementalSync 或 FullSync
}
/// 查询同步配置(接口02010079)
ClassMethod GetSyncConfig(jsonObj) As %Library.DynamicObject
{
// 从jsonObj.params获取:hospCode
// 查询 BS_HIS_SyncConfig 表
}
/// 保存同步配置(接口02010080)
ClassMethod SaveSyncConfig(jsonObj) As %Library.DynamicObject
{
// 从jsonObj.params获取配置信息
// 保存到 BS_HIS_SyncConfig 表
}
/// 查询同步状态(接口02010081)
ClassMethod GetSyncStatus(jsonObj) As %Library.DynamicObject
{
// 从jsonObj.params获取:hospCode
// 查询最后同步时间、状态等
}
}
扩展功能:
功能:
在 App.tsx 的"HIS数据"菜单下添加:
HIS数据
├── 数据同步监控 (已有,扩展功能)
├── 同步任务配置 (新增)
├── 已同步患者查询 (已有,添加医院筛选)
└── 同步日志查询 (已有)
User.BSHISSyncConfig 类src.DRG.HISData.SyncTaskService 类ExecuteSyncTask 方法(调用SyncEngine)GetSyncConfig / SaveSyncConfig 方法GetSyncStatus 方法src.DRG.HISData.Interface 类DataSync.tsx 扩展同步功能(添加医院选择)SyncTaskConfig.tsx 同步任务配置页面hisData.tsSyncedPatients.tsx 添加医院筛选App.tsx 添加菜单项请求:
{
"code": "02010078",
"params": [{
"hospCode": "H34010400768",
"syncType": "incremental",
"lookbackDays": 3,
"startDate": "",
"endDate": ""
}],
"session": [{"userID": "158", "hospCode": "H34010400768"}]
}
请求:
{
"code": "02010079",
"params": [{"hospCode": "H34010400768"}],
"session": [{"hospCode": "H34010400768"}]
}
响应:
{
"errorCode": "0",
"errorMessage": "",
"result": {
"id": "1",
"hospCode": "H34010400768",
"syncType": "incremental",
"frequency": "daily",
"scheduledTime": "00:00",
"lookbackDays": 3,
"enabled": true
}
}
请求:
{
"code": "02010080",
"params": [{
"id": "",
"hospCode": "H34010400768",
"syncType": "incremental",
"frequency": "daily",
"scheduledTime": "00:00",
"lookbackDays": 3,
"enabled": true
}],
"session": [{"userID": "158", "hospCode": "H34010400768"}]
}
请求:
{
"code": "02010081",
"params": [{"hospCode": "H34010400768"}],
"session": [{"hospCode": "H34010400768"}]
}
响应:
{
"errorCode": "0",
"errorMessage": "",
"result": {
"status": "idle",
"lastSyncTime": "2026-06-15 00:00:00",
"lastSyncStatus": "success",
"nextSyncTime": "2026-06-17 00:00:00",
"hospCode": "H34010400768",
"hospName": "合肥普瑞眼科医院"
}
}
所有 hospID → hospCode
关联 CB_Hospital 表
HospCode 关联 CB_Hospital.Code前端医院选择
src/src/User/BSHISSyncConfig.cls - 同步配置表类src/src/DRG/HISData/SyncTaskService.cls - 同步任务服务类frontend/src/pages/HIS/SyncTaskConfig.tsx - 同步任务配置页面src/src/DRG/HISData/Interface.cls - 添加4个新接口方法src/src/User/BSHISPatAdm.cls - 已添加FixmedinsCode/Name字段frontend/src/pages/HIS/DataSync.tsx - 扩展同步功能(添加医院选择)frontend/src/pages/HIS/SyncedPatients.tsx - 添加医院筛选frontend/src/App.tsx - 添加菜单和路由frontend/src/api/hisData.ts - 添加新接口API定义// 编译表类(添加新字段和表)
Do $System.OBJ.Compile("User.BSHISPatAdm,User.BSHISSyncConfig","ck")
// 编译服务类和接口类
Do $System.OBJ.Compile("src.DRG.HISData.HisDataService,src.DRG.HISData.SyncTaskService,src.DRG.HISData.Interface","ck")
cd frontend
npm start
测试医院关联:
测试同步配置:
测试同步执行:
测试同步状态查询:
医院代码一致性:
多医院支持:
权限控制: