
简介《医院信息系统集成平台接口需求说明书》是一份面向医院信息化建设、系统集成与开发实施人员的接口标准文档用于规范HIS、LIS、PACS、EMR等子系统之间的数据交互与业务协同解决医院信息系统间集成难、互操作性弱的问题。文档覆盖病人信息、医嘱、费用、手术、出院、检验检查、合理用药、门诊处方、区域健康档案、电子病历等核心业务场景并引用HL7、DICOM、IHE等医疗信息标准可作为接口设计、开发联调与需求评审的参考依据。资源为单个PDF文件压缩包大小1.61MB便于在线阅读、检索与打印目录结构清晰按标识、系统概述、引用文档、需求等章节组织每个典型接口场景均给出触发条件、交互流程与信息内容说明可直接用于接口方案落地。已有474人学习下载适合医院信息科工程师、平台实施人员、医疗软件开发者及医信方向学生阅读参考。1. 医院接口需求说明书为什么值得当成架构文档读医疗信息化项目里接口需求说明书往往被当成“商务附件”归档真正动手联调的人很少逐页读。实际上这类文档包含的信息密度远超普通接口文档它定义了集成平台与 HIS、LIS、PACS、电子病历、手术室系统、院感系统之间的所有业务边界每个场景都标明了涉及角色、触发方式、关键数据字段。换句话说它同时回答了“谁调谁”“传什么”“什么时候传”“失败了谁负责”四个问题。对做集成平台、做主数据平台、做医疗数据中台的工程师来说这份文档就是现成的接口需求分解书。本文从 22 个接口场景中提取主线讲清楚接口场景怎么分类、字段怎么定、消息怎么设计以及最后一公里联调时容易踩的坑。2. 接口场景的整体划分与三条业务数据主线整个集成平台的接口数量看起来很多但拆开看所有场景都挂在同一条就诊主索引上。以住院流程为例病人从入院登记、入病区、开医嘱、做检查、手术、出院每一步都有对应的接口场景支撑。门诊流程则是从挂号、候诊、就诊、开方、划价、收费一路串联。理解这个结构比死记每个接口的字段更有价值。2.1 按院区流程域划分接口归属原始需求中列出的 22 个场景按其服务对象可以归入四个域。域划分决定了接口的部署位置、鉴权方式和异常处理归属。业务域接口场景主要参与系统特点住院域获取病区新病人、发送住院医嘱、查询住院费用、手术申请、办理出院HIS、住院医生站、住院护士站、手术室系统状态变更频繁依赖病人当前病区与床位的准确性门诊域候诊病人获取、分诊呼叫、发送门诊处方、门诊划价HIS、门诊医生站、分诊系统实时性要求最高响应时间直接影响医生接诊效率医技域LIS 申请与报告、PACS 申请与报告、注射通知单LIS、PACS、注射室系统申请-报告闭环报告状态是重点外部协同域合理用药、区域健康档案、院感报病、病历查询合理用药系统、区域平台、院感系统、第三方医技系统涉及权限审批与日志审计数据流向多为单向只读提示这个划分不是文档里写明的而是从接口应用示意图中推断出来的。实际落地时建议按域拆分成不同的接口服务进程住院域和门诊域的负载峰值时段不同门诊集中在上午住院全天平缓拆分后可以独立扩容。2.2 三条主线身份、医嘱与费用住院域看似场景多实际上所有数据都围绕三个核心对象展开就诊身份、医嘱、费用。病人 ID 和住院号构成身份主键。获取病区新病人场景要求返回“病人唯一 ID、住院号、姓名、床位号、入院日期、入院诊断、门诊医生”其中“病人唯一 ID”是集成平台的全局标识住院号只是 HIS 内部编号。这个字段设计在区域健康档案查询场景中进一步强化——对区域平台查询时传的是病人身份证号、姓名、性别这类自然身份信息而不是院内 ID。两份字段集并存的原因在于区域平台不认识也不应该认识院内 ID院内系统也不应该直接依赖身份证号做业务主键。集成平台在这里要维护一张 ID 映射表把 HIS 的住院号、LIS 的样本号、PACS 的检查号为同一个就诊串联起来。医嘱这条线要注意“项目 ID 项目名称 项目规则 用量 用量单位 用法 次数”是一组不可分割的字段。项目 ID 决定费用科目项目规则决定计价方式按次、按天、按总量用量单位决定与药品字典的匹配精度。如果 HIS 侧在存费用时没有把“项目规则”一并存储后续会出现同一项目因计量规则不同而多收或少收的账单纠纷。所以接口字段里的“项目规则”不是冗余项而是计费正确性的关键约束。费用这条线涉及三个子场景全量费用明细查询、时间区间费用查询、病区费用一览表。第一个服务于单个病人的费用追溯第二个服务于医保审核与科室核算第三个服务于病区护士站的催费清单。同一个费用接口拆三个场景看起来繁琐本质上是因为查询范围、返回字段集、权限粒度各不相同。接口设计中建议分别实现三个操作而不是用一个通用接口加参数区分——这样既方便权限控制也可以分别做缓存和数据库索引优化。3. 高频接口的字段定义与消息约束分析原始文档每一个场景都附了数据信息说明表格这些表格就是接口的字段级需求。实际开发时集成平台的工程师可以拿着这些表格直接转成 XML Schema 或 JSON Schema。以下挑几个有代表性的场景做详细分解。3.1 获取病区新病人接口的字段完整度问题这个场景的核心价值在于医生站需要知道哪些病人已经入病区但还没被接收。字段要求包含“XX 住院医生站未接收的病人列表”和“住院病人基本信息”两部分。前者返回列表后者返回详情对应两个不同粒度的操作。字段设计上有一个容易被忽略的细节病人基本信息要和省厅病案首页保持一致这意味着病人基本资料的字典表必须遵循省厅标准字段值域要与病案首页完全对齐。实践中很多医院出现过“入院登记时民族字段有值但病案首页导出后该字段丢失”的问题原因就是 HIS 的字典与病案首页字典不一致。接口文档中特意写明这一点是在提示字段一致性校验要在接口层做不能只靠数据库约束。3.2 医嘱发送接口是全集发送还是增量发送发送住院医嘱场景的字段包含“医嘱类别、开始日期、项目 ID、项目名称、项目规则、用量、用量单位、用法、次数、执行时间、开医嘱医生、停医嘱日期、停医嘱医生”。医嘱类别决定了这条医嘱属于长期医嘱、临时医嘱还是停嘱。联调时最容易出错的是停医嘱的传递方式。文档中“更新医嘱标志停、DC”这个描述说明停医嘱不是删除原医嘱而是发送一条新的状态变更消息。推荐的做法是消息体中同时携带“医嘱组号 原开始日期 原项目 ID 停嘱日期 停嘱医生”接收方根据医嘱组号定位到原始医嘱更新其状态与停嘱时间而不是按项目 ID 去匹配。原因很简单一个病人可能在一个时间段内重复开过同一项目的医嘱仅靠项目 ID 无法唯一定位。{ eventType: ORDER_STATUS_UPDATE, orderGroupId: ORD_20250113_001234, patientId: P000089123, visitId: INP_20250113001, action: DC, orderItems: [ { itemCode: BLOOD_ROUTINE, itemName: 血常规, rule: TIMES_PER_DAY, dosage: 1, dosageUnit: 次, frequency: QD, startDate: 2025-01-13 09:00:00, dcDate: 2025-01-15 09:00:00, dcDoctor: 张医生 } ] }这个 JSON 结构里eventType和action分开是有含义的eventType告诉集成平台如何处理这条消息action告诉 HIS 如何更新医嘱状态。orderGroupId是本次医嘱的组号一组医嘱可能包含多个项目停嘱时整组或单项停用由action区分。rule字段取值为TIMES_PER_DAY按次/日或TOTAL_ONCE一次性HIS 计费模块据此决定按天数累加还是按单次计费。3.3 LIS/PACS 申请与报告查询的时序约束LIS 和 PACS 的接口模式几乎对称申请接口负责把检验/检查申请单推给医技系统报告接口负责把报告结果返回给医生站。文档中指出 LIS 申请单需要包含“检验项目、标本”PACS 申请单需要包含“检查项目、部位”这个差异对应两个系统不同的工作流——LIS 需要根据标本类型做样本分发PACS 需要根据部位决定设备摆位。报告查询场景中有一点容易漏掉报告查询接口返回的不仅仅是报告文本还有“提示信息”字段这在 LIS 报告中通常对应异常标志偏高/偏低/危急值。医生站应当对这个字段做差异化展示而不是只渲染数值。接口字段设计层面建议返回结构里把“检测值”“参考值”“提示信息”拆成三个独立字段不能用拼接字符串替代否则前端解析困难和判断逻辑分散。医院信息系统集成平台接口设计方案里常见的做法是申请单推送采用请求-应答模式报告通知采用发布-订阅模式。申请单要求实时性医生开完医嘱后几秒内 LIS 就应该能查到报告通知则可以容忍异步延迟LIS 审核完成后再发布报告就绪事件医生站的轮询或消息订阅捕获到该事件后再拉取报告全文。这种分工既保证了主流程的实时性又降低了对医技系统的并发压力。4. 从需求文档到可运行接口的实现路径接口需求说明书不会写具体技术栈但工程落地时消息模型、接口方式、幂等机制、事务边界都必须在这一层定下来。这决定了集成平台是按“ESB 总线模式”还是“微服务编排模式”落地以及每个接口的契约长什么样。4.1 一个可落地的消息模型设计接口需求里反复出现的核心动作可以归纳成三种消息模式查询请求医生站查费用、查报告、异步通知发送医嘱、发送 LIS 申请、状态同步办理出院、标记接收。对应三种不同的实现机制查询请求同步 HTTP/JSON 或 Web Service 调用超时控制在 5 秒以内返回结果集。适用于费用查询、候诊列表获取等场景。异步通知MQ 消息或异步 HTTP 回调发送方不等待接收方处理结果。适用于医嘱发送、LIS/PACS 申请推送。状态同步同步调用但允许最终一致接收方处理成功后返回确认码。适用于出院办理、病人接收标记。从部署角度看最省事的方案是集成平台同时开启 HTTP 服务和 MQ 消费端HIS 主动推送的消息走 HTTPLIS/PACS 订阅的消息走 MQ。这样做的原因是医疗系统的供应商各不相同有些只支持 HTTP 接口有些已经有 MQ 基础。用 HTTP 做同步收口、MQ 做异步分发两边都能兼容。curl -X POST http://his-internal-host:8080/api/v1/orders \ -H Content-Type: application/json \ -H X-Client-ID: integration-platform \ -H X-Request-ID: 6b5c7a12-9d3f-4e8a-8c1e-2f4b6d8a1c3e \ -d { orderGroupId: ORD_20250113_001234, patientId: P000089123, orderType: INPATIENT_ORDER, orderItems: [ { itemCode: IV_GLUCOSE_5%_250ML, itemName: 5%葡萄糖注射液 250ml, dosage: 250, dosageUnit: ml, frequency: BID, route: IVDRIP } ], orderDoctor: 张医生, orderTime: 2025-01-13T09:30:0008:00 }这个调用里的X-Client-ID是调用方身份标识X-Request-ID是幂等键。HIS 接收到请求后先查X-Request-ID是否已经处理过如果处理过直接返回上一次的结果而不是重复写入医嘱。这是医疗接口联调中必须做的一步——网络超时后客户端重试如果服务端不判重同一条医嘱会被写入两次。4.2 接口场景落地的通用适配层22 个场景如果逐个单独开发工作量会非常大且难维护。通常会在集成平台上做一层适配层把文档里定义的接口统一封装成对内的标准化服务。适配层处理三件事第一数据字典映射。HIS 的项目编码、LIS 的检验项目编码、药品字典的药品编码在各自系统里不完全一致。适配层维护一张编码映射表消息进入平台时把发送方的编码翻译成接收方认识的编码。第二消息格式转换。有的系统出 XML有的系统出 JSON适配层在中间做转换。第三路由配置。同一个业务事件可能被多个系统消费例如发送报病信息场景中报病卡数据可能同时发送给院感系统和防保科报表系统适配层根据配置做扇出。# 适配层路由伪代码业务事件分发 def route_clinical_event(event: dict, enricher_service, router_service): # 第一步根据消息类型和版本号做字段补全 event_type event.get(eventType) schema_version extract_version(event.get(schema, 1.0)) if schema_version 2.0: event enricher_service.upgrade_legacy_fields(event, target_version2.0) # 第二步查询就诊上下文补上患者ID、就诊类型、当前病区 ctx enricher_service.load_visit_context(patient_idevent[patientId]) event[visitContext] { visitId: ctx.visit_id, admissionDate: ctx.admission_date, wardCode: ctx.current_ward, bedNo: ctx.current_bed } # 第三步根据路由表分发到目标系统失败进重试队列 targets router_service.resolve_targets(event_type) for target in targets: push_message(target, event)这个适配层把业务逻辑和传输逻辑解耦。路由表可以做成可持续维护的配置项新增一个接收方只需要修改配置不影响已有消息处理逻辑。4.3 事务边界与失败补偿机制接口需求文档中的场景大多涉及跨系统状态变更分布式事务必须按业务场景拆分。以办理出院为例护士站发送出院信息后HIS 要进行费用结算护士站要把病人标记为已出院。这两个操作跨两个系统不可能用本地事务保证。实务中会选择最终一致性方案——护士站发送“出院申请”消息HIS 处理后返回“出院成功”或“出院失败存在未结算费用”护士站根据返回结果更新本地状态。失败补偿的关键是落日志。集成平台每转发一条消息都要记录消息原文、发送方、接收方、时间戳、处理状态。联调阶段遇到的问题绝大多数都要靠这个日志反查消息有没有到集成平台、有没有被转换、目标系统有没有应答、应答内容是什么。日志留存时间建议不少于 6 个月一方面满足事后审计需求另一方面也是区域健康档案查询场景中“医院应当记录查询日志”的合规要求。5. 联调验收与常见问题排查接口需求说明书交付后开发和测试阶段才是真正的校验环节。有四个问题是医疗集成项目里出现频率最高的对应排查顺序也基本一致。5.1 消息到了集成平台但目标系统没有收到这种问题几乎都是路由配置或目标系统地址不可达导致的。排查路径是第一步查看集成平台的收发日志确认消息是“已接收”“已路由”还是“已投递失败”第二步确认目标系统的接口地址是否变更这是最常见的原因——LIS 系统的服务器 IP 调整后集成平台的路由表没有同步更新第三步如果地址没有变化检查消息体的字段是否满足目标系统的必填校验很多接收方会静默丢弃校验不通过的消息导致发送方误以为投递成功。5.2 医嘱重复和费用重复累计医嘱发送时发生网络超时发送方重试接收方没有做幂等处理就会出现重复。排查时不要只看 HIS 数据库里的记录数因为 HIS 可能会把重复写入的医嘱合并成同一条显示但费用明细被重复累计。更隐蔽的情况是接收方做了幂等但幂等键用的是“病人 ID 项目 ID 开始日期”拼接没有包含医嘱组号导致同一天两次独立医嘱被误判为重复而丢弃。解决方式统一在发送方生成全局唯一的消息 ID接收方以该 ID 为准做幂等。5.3 LIS 申请能查到但报告始终不返回LIS 报告长期不返回时先排查申请单状态流转是否符合预期。文档中的 LIS 申请场景只定义了“发送检验申请单”报告场景定义了“查询报告”但中间环节LIS 是否审核、是否有危急值拦截、报告是否已审核归档都需要 LIS 侧提供状态接口去确认。集成平台侧通常会在申请单发送成功时记录一个“申请单号”后续查询报告时带着这个申请单号去交换而不是用病人 ID 模糊匹配。5.4 时间格式与时区问题导致的数据歧义医院内部系统统一使用北京时间但接口传输时的时区表示不统一有的系统传字符串“2025-01-13 09:30:00”有的传 ISO8601 带时区格式。混合情况下时间比较会出现偏差。建议集成层统一约定所有时间字段采用 ISO8601 格式并显式携带时区偏移如2025-01-13T09:30:0008:00。文档中涉及“开医嘱日期”“停医嘱日期”“费用发生日期”等多个时间字段时间格式的解析规则必须在联调开始前与所有参与方确认。发送方负责把本地时间转换为带偏移的标准格式接收方负责按偏移解析后转成本地时间存储。联调阶段的验收标准建议逐条对齐场景清单每个场景的数据字段、触发条件、异常分支都要走一遍。比如查询住院费用的三个子场景都要构造独立的测试数据不能拿一份全量数据同时覆盖三个场景。字段测试同样要覆盖边界值用量为 0、数量为负数、日期跨年这些情况接口应当返回明确的错误码而不是静默丢弃。本文还有配套的精品资源点击获取