837390164@qq.com 858638216a 代码更新 1 week ago
..
.vs 858638216a 代码更新 1 week ago
Properties b0e74290a0 提交更新 1 month ago
bin fe82c97426 提交更新 1 month ago
obj fe82c97426 提交更新 1 month ago
Config.cs fe82c97426 提交更新 1 month ago
DRGInterfaceClient.csproj b0e74290a0 提交更新 1 month ago
DRGInterfaceClient.sln b0e74290a0 提交更新 1 month ago
DrgApiClient.cs b0e74290a0 提交更新 1 month ago
HeadlessRunner.cs fe82c97426 提交更新 1 month ago
Logger.cs b0e74290a0 提交更新 1 month ago
MainForm.cs fe82c97426 提交更新 1 month ago
Program.cs b0e74290a0 提交更新 1 month ago
README.md fe82c97426 提交更新 1 month ago
SchedulerService.cs b0e74290a0 提交更新 1 month ago
SessionBuilder.cs b0e74290a0 提交更新 1 month ago
TaskSchedulerHelper.cs b0e74290a0 提交更新 1 month ago
TrayIcon.cs b0e74290a0 提交更新 1 month ago
appsettings.json fe82c97426 提交更新 1 month ago

README.md

DRGInterfaceClient(DRG 接口客户端小程序)

独立的 Windows 桌面小程序(.NET Framework 4.8 WinForms,无第三方 NuGet 包),用于按机构 + 按配置调用 DRG 平台接口完成住院数据同步。它取代了原 HISAutoSyncService 程序。

功能

  1. 系统托盘:最小化/关闭收起到托盘,双击还原,右键菜单(打开主界面 / 立即执行一次 / 打开日志 / 退出)。
  2. 本地日志DRGInterfaceClient.log(程序目录,超 MaxLogSizeMB 滚动),记录每次调用的接口码 / HTTP 状态码 / 耗时 / 响应摘要;界面内嵌面板可查看,并可「打开日志」「清空日志」。
  3. 接口地址可编辑:主界面顶部「接口地址」输入框,初始值取自 appsettings.jsonEndpoint,可随时修改;为空时调用会提示"接口地址不能为空"并中断。
  4. 机构多选:调 01010064 填充机构勾选列表(CheckedListBox,支持多选CheckOnClick 直接勾选),并提供「全选 / 全否」按钮与「已选 N 家」计数;勾选状态在「设为定时机构」后会持久化,下次「加载机构」自动恢复勾选。选中机构后 session 机构字段来自该机构。
  5. 同步配置(预览):勾选机构后,配置面板展示最后勾选那家机构的 02010079 配置(syncType/frequency/scheduledTime/lookbackDays/enabled/synFlag/warningFlag/status,中文显示);实际批量同步时每家机构各自实时取自己的配置。
  6. 业务调用:「立即执行一次」对所有勾选机构顺序执行——逐家带完整 session 调 02010079 取配置 → 按 syncType+lookbackDays 计算日期区间 → 调 02010067GetInpatientData);逐家写日志,结束汇总"成功 X 家 / 失败 Y 家"。未勾选任何机构会提示"请至少勾选一家医疗机构"
  7. 定时调度:点「开始调度」启动程序内整点轮询,覆盖所有勾选机构(常驻托盘,内部定时器每小时整点触发一次 02010067);daily/weekly 外部定时请用「注册任务计划」。「停止调度」停止轮询并删除已注册的计划任务。
  8. 无头模式DRGInterfaceClient.exe --sync 由 Windows 任务计划程序触发;读取 ScheduledHospCodes(按机构 code 医保编码匹配),遍历所有勾选机构各完成一次同步后退出(退出码:全部成功 0,有失败 1)。
  9. 设为定时机构:将当前所有勾选机构的 code 写入 appsettings.jsonScheduledHospCodes,供 --sync 及任务计划使用。

运行

  • GUI 模式:双击 DRGInterfaceClient.exe
  • 无头定时模式DRGInterfaceClient.exe --sync(建议由 Windows 任务计划程序调用,配合「设为定时机构」+「开始调度(daily/weekly)」注册的任务)。

生产端点如需指向 172.16.2.15:52773,在窗体「接口地址」中修改,或改 appsettings.jsonEndpoint

配置项(appsettings.json)

说明
Endpoint DRG 平台 CSP 地址
AuthToken Basic 鉴权令牌(_SYSTEM:pryk@2020 的 base64)
ScheduledHospCodes --sync 模式匹配的机构 code(医保编码)列表,支持多机构
TaskName 注册的计划任务名
MaxLogSizeMB 日志滚动阈值
FullSyncStartDays syncType=fullstDate = 今天 - N
SessionDefaults session 非机构字段默认值

接口与 session 映射

  • 01010064 QueryHospitalInfo → 机构列表(首次加载,带默认空 session)。
  • 02010079 GetSyncConfig(hospCode) → 同步配置(带机构 session)。
  • 02010067 GetInpatientData(admID,hospID,stDate,endDate,SynFlag) → 住院数据同步(带机构 session)。
  • session 机构映射:hospYBCode=codehospCode=hospCodehospDesc=descriptshospID=idmedinsLv=MedinsLv;其余字段取 SessionDefaults
  • 请求体:{ "code", "params":[{}], "session":[{}] },Header Authorization: Basic <AuthToken>