本项目为面向体检机构的 通用体检管理系统 4.0,覆盖从登记、导检排队、分科检查、检验 LIS / 影像 PACS 结果回传,到总检、报告生成与打印领取的全流程。立项目标是替代分散的手工录入与纸质流转,实现 一人一档、项目可配置、结果可溯源、总检可终审。
核心模块包括:体检登记与套餐/项目管理(TJ_Regist、TJBase_Item 等)、科室工作台与结果录入(登记项目、明细、小结)、自动诊断(AutoDiagHelper:检验区间、PACS 关键字、组合规则写入 TJ_RegistItemDiag)、总检报告(RegistZJController:阳性汇总、诊断建议、hiprint 模板打印与 PDF 上传)、报告列表与领取、团检计划、电子签章(君子签数据签 + 报告签名图替换)、以及与外部 LIS/PACS 定时同步(QuartzTask)的接口能力。
典型业务路径:客户登记签到 → 各科室完成检查并提交 → 异常指标与自动诊断沉淀 → 总检医生在总检页审核、增补诊断并生成报告 → 报告列表打印/领取;团检场景支持按计划、组别批量管理。系统通过数据字典(如 PACS 类型 pacsleixing)和可配置打印模板,适配不同医院科室与报告样式。
整体采用 前后端分离:后端 Tongyong.TiJian.WebApp(ASP.NET Web API)+ 业务模块与 PuLing 数据访问层,数据库 SQL Server;前端 TongYong.TiJian.Admin(Vue3 + Element Plus),打印侧集成 hiprint,报告 PDF 由前端渲染后 multipart 上传至 zjconfirm/zjreport 等接口合并存储。
本人主要负责/参与 总检与报告链路 相关开发与问题修复:包括 getprint 打印数据与 ReportPrintSignatureHelper.BuildSignatureMap 签名图映射;解决总检医生使用本人账号未手动选医生时 本人签名不替换 的问题——根因是 signatureMap 仅依赖登记已保存的 EmployeeId/EmployeeName,与界面所选/登录人不一致;通过 ResolveZjDoctorForPrint 与前端 getprint 传递所选医生、修复医生 ID 类型比较,使签名图与姓名一致。另完成 报告列表团检组别 查询与展示(indexcopy.vue + RegistReportController)、诊断库 Explain 批量更新脚本、PACS 回传阴阳性与异常标签联动等迭代。
难点方面:报告签名需同时满足 本地 SignatureBase64 与 君子签 userId 才出图,否则保留文字;多医生、彩超多项目同结论需去重;打印 DOM 与 hiprint 字段、总检医师关键字替换需前后端对齐。处理方式为统一 normalizeZjPrintData / enhanceReportPrintSignatures、后端集中解析总检医生与签章收集(ESignReportSignerCollector),并保留 TJ_AutoDiagLog 便于规则诊断排错。后续规划可在现有 AutoDiagHelper 之上增加 AI 建议诊断(仅建议、医生采纳写库),与规则引擎互补。