尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
天健医院信息系统数据结构手册:HIS对接与SQL取数实战指南
简介天健医院信息系统数据结构手册面向HIS系统开发、实施与运维工程师尤其是初次接触天健医疗数据库的技术人员用于快速掌握表结构与字段含义降低数据查询与分析的门槛。资源包共1个文件为doc格式文档压缩包约7.19MB内容按公共部分、人员属性、国家地区单位及其属性、科室字典等模块组织逐表说明字段定义与用途。文档中收录了性别、婚姻状况、民族、血型、职业分类、身份、费别、病人来源等字典表以及工作人员字典、用户记录、技术职务、工作类别、社会关系、医生职务等人员属性表并涵盖国家及地区字典、行政区字典、医院基本情况、合同单位记录、科室字典、临床科室配置、科室与病房对照等结构说明。借助这份手册读者可对照表名与字段快速定位数据来源理解字典表标准化设计思路为接口开发、报表取数与数据核对提供参考。目前已有849人学习下载适合需要系统梳理天健HIS数据结构的中高级工程师查阅。1. 天健医院信息系统数据结构手册一份被低估的对接地图接手医院第三方系统对接的工程师大概率都经历过这种场面接口文档写得含糊字段名靠猜跑出来的数据对不上护士站的记录最后被一句“以天健系统为准”堵回来。天健医院信息系统数据结构手册.doc 这类文档本质上是 HIS 厂商留给实施和二次开发人员的一张底层地图它描述的是数据库表结构、字段含义、字典编码和表间关系。很多人拿到手第一反应是“这不就是个数据字典吗”然后束之高阁等到真正要写视图、做报表、对接 LIS/PACS 时才后悔没早点翻。它解决的核心问题只有一个让你知道数据存在哪张表、哪个字段、用什么编码而不是靠试错去猜。适合谁看做医院数据集成、报表开发、接口对接、数据迁移的工程师以及需要从 HIS 里取数做运营分析的技术人员。数据结构这四个字听起来像教科书内容但在医院场景里它直接决定你的 SQL 能不能跑对。2. 先搞清楚手册里到底有什么表、字段、字典三层结构2.1 天健 HIS 的数据分层逻辑天健医院信息系统的数据库设计遵循典型的医疗信息化分层思路基础字典层、业务主表层、明细流水层。基础字典层放的是科室、人员、收费项目、药品、诊断编码这些相对稳定的数据比如科室字典表通常以DEPT或GY_DEPT开头人员字典常见STAFF或GY_USER。业务主表层是挂号、就诊、医嘱、处方、收费这些核心业务记录一张主表对应一次业务事件。明细流水层则是主表下面的子表比如一条处方对应多条处方明细一条收费单对应多条收费明细。手册里最容易被忽略的是字典编码表。医院里几乎所有业务字段都不是直接存中文而是存编码比如性别存1和2费别存01、02科室存内部科室码而不是科室名称。如果你不知道编码含义查出来的数据就是一堆数字。手册的字典章节会列出每个编码集的范围和含义这是取数前必须过一遍的内容。常见做法是先把手册里的表按业务域分类患者域、就诊域、医嘱域、收费域、药品域、检验检查域。每个域找出主表和关键关联字段画一张自己的 ER 草图。不要指望手册里有一张完整的 ER 图大多数厂商手册只给单表说明关系要自己推。2.2 怎么从手册里定位一张业务表拿到手册后不要从头读到尾。正确姿势是按业务问题反查。比如你要查“某患者某次住院的所有收费明细”拆解路径是患者 → 住院就诊记录 → 收费主表 → 收费明细表。手册里通常会有表名注释天健的表名习惯用拼音首字母缩写比如ZY_BRXX可能是住院病人信息MZ_GH可能是门诊挂号。但不同版本命名不完全一致所以要以手册实际列出的表名为准。定位步骤可以固定下来在手册目录里找业务域章节比如“住院管理”“门诊收费”。找到该域的主表看字段里有没有患者标识、就诊标识、时间字段。顺着主表的主键字段名去其他表里找同名字段通常就是外键关联。确认字典字段去字典章节查编码含义。提示手册里的字段类型和长度也要看尤其是金额字段有的用NUMBER(12,2)有的用NUMBER(10,4)精度不同会导致对账差几分钱。2.3 字段命名规律与常见前缀天健系统的字段命名有一定规律掌握之后查表速度会快很多。常见前缀前缀含义示例BR病人BRID病人标识GH挂号GHID挂号流水号ZY住院ZYH住院号MZ门诊MZH门诊号YS医生YSDM医生代码KS科室KSDM科室代码SF收费SFID收费流水号YP药品YPDM药品代码这些前缀不是绝对的但覆盖大部分场景。手册里每个字段都有中文注释遇到不认识的字段名先看注释再看它出现在哪些表里基本能判断用途。如果手册注释写得模糊比如只写“标志”那就需要结合业务数据去验证取几条实际数据看值分布。2.4 用 SQL 验证手册描述是否准确手册是文档数据库是活的两者可能不一致。上手第一件事是拿几条验证 SQL 去核对。以患者主表为例-- 查询患者主表结构确认字段是否存在 SELECT column_name, data_type, data_length, nullable FROM all_tab_columns WHERE table_name ZY_BRXX ORDER BY column_id; -- 取前 10 条数据观察关键字段实际值 SELECT BRID, BRXM, XB, CSRQ, KSDM FROM ZY_BRXX WHERE ROWNUM 10;第一段 SQL 查的是表结构确认手册里写的字段在数据库里真实存在类型是否一致。第二段 SQL 取样本数据重点看字典字段的实际值比如XB性别字段如果手册写1男 2女但实际数据里出现了0或9说明手册没写全或者有历史脏数据。这一步能帮你提前发现手册和实际库的偏差避免写出来的 SQL 跑出错误结果。参数说明all_tab_columns是 Oracle 的系统视图天健 HIS 大多跑在 Oracle 上如果是 SQL Server 则换INFORMATION_SCHEMA.COLUMNS。ROWNUM是 Oracle 限制返回行数的写法SQL Server 用TOP 10。取样本时不要用SELECT *只取你关心的字段减少干扰。3. 从手册到可跑 SQL核心业务表的关联查询3.1 患者-就诊-收费三表关联的最小闭环医院数据取数最常用的链路是患者信息 → 就诊记录 → 费用明细。以住院场景为例假设手册里查到三张表ZY_BRXX住院病人信息、ZY_JZJL住院就诊记录、ZY_SFMX住院收费明细。关联字段通常是BRID病人标识和ZYH住院号。-- 住院患者费用明细查询患者就诊费用三表关联 SELECT b.BRID AS 病人标识, b.BRXM AS 病人姓名, b.XB AS 性别, j.ZYH AS 住院号, j.RYRQ AS 入院日期, j.CYRQ AS 出院日期, s.SFXM AS 收费项目, s.SL AS 数量, s.DJ AS 单价, s.JE AS 金额, s.SFRQ AS 收费日期 FROM ZY_BRXX b JOIN ZY_JZJL j ON b.BRID j.BRID JOIN ZY_SFMX s ON j.ZYH s.ZYH WHERE j.RYRQ TO_DATE(2024-01-01, YYYY-MM-DD) AND j.RYRQ TO_DATE(2024-02-01, YYYY-MM-DD) ORDER BY j.ZYH, s.SFRQ;这段 SQL 的逻辑是以病人主表为起点通过BRID关联到就诊记录再通过ZYH关联到费用明细。WHERE条件限制入院日期在一个月内避免全表扫描。ORDER BY按住院号和收费日期排序方便核对。参数说明TO_DATE是 Oracle 的日期转换函数格式字符串YYYY-MM-DD必须和输入匹配。如果手册里入院日期字段是VARCHAR2类型存字符串那就不能用TO_DATE比较需要先确认存储格式。关联字段的类型也必须一致如果BRID在病人表里是NUMBER在就诊表里是VARCHAR2直接 JOIN 会隐式转换可能导致索引失效查询变慢。3.2 医嘱表与药品字典的关联医嘱数据是医院数据里结构最复杂的部分之一。一条长期医嘱可能对应多条执行记录药品医嘱还要关联药品字典才能拿到药品名称和规格。手册里通常会有YZ_KZ医嘱主表、YZ_MX医嘱明细、YP_ZD药品字典这几张表。-- 查询某住院号下的药品医嘱明细 SELECT y.YZID AS 医嘱ID, y.ZYH AS 住院号, y.KSDM AS 开单科室, y.YSDM AS 开单医生, m.YZMC AS 医嘱名称, m.YPLX AS 药品类型, p.YPMC AS 药品名称, p.YPGG AS 药品规格, p.YPDW AS 药品单位, m.YL AS 用量, m.YLDW AS 用量单位, m.YZTS AS 医嘱天数 FROM YZ_KZ y JOIN YZ_MX m ON y.YZID m.YZID LEFT JOIN YP_ZD p ON m.YPDM p.YPDM WHERE y.ZYH 2024001234 AND m.YZLX 1 -- 1 代表药品医嘱 ORDER BY y.KDRQ, y.YZID;这里用LEFT JOIN关联药品字典是因为有些医嘱可能关联不到药品字典比如手工录入的临时医嘱用LEFT JOIN可以保留这些记录避免漏数据。YZLX 1是过滤条件只取药品类医嘱具体编码值要以手册字典章节为准。参数说明YZID是医嘱的唯一标识通常由系统生成。YPDM是药品代码关联药品字典的主键。YZTS是医嘱天数长期医嘱和临时医嘱的取值逻辑不同长期医嘱可能存的是计划天数临时医嘱存的是1或0。这些细节手册里不一定写全需要结合业务数据验证。3.3 字典编码的转换与映射前面提到医院数据大量使用编码存储。写 SQL 时如果直接输出编码业务人员看不懂。常见做法是关联字典表做转换或者在应用层做映射。手册里的字典章节会列出编码集但字典表本身可能不在手册里需要从数据库里找。-- 关联科室字典把科室代码转成科室名称 SELECT s.ZYH, s.SFXM, s.JE, d.KSMC AS 科室名称 FROM ZY_SFMX s LEFT JOIN GY_KSZD d ON s.KSDM d.KSDM WHERE s.SFRQ TO_DATE(2024-01-01, YYYY-MM-DD);GY_KSZD是科室字典表KSDM是科室代码KSMC是科室名称。用LEFT JOIN是因为可能存在已停用科室字典表里没有对应记录但历史数据里还有。如果直接INNER JOIN这些记录会被过滤掉导致金额对不上。注意字典表在不同天健版本里命名可能不同有的叫GY_KSZD有的叫DICT_DEPT以手册实际列出的表名为准。如果手册里没有字典表去数据库里搜表名包含DICT或ZD的表。3.4 时间字段的处理与性能注意医院数据量大时间字段处理不当会直接拖垮查询。手册里时间字段通常有RYRQ入院日期、CYRQ出院日期、SFRQ收费日期、KDRQ开单日期等。写查询时尽量用时间字段做过滤条件并且保证字段上有索引。-- 按收费日期范围查询避免全表扫描 SELECT COUNT(*) AS 收费笔数, SUM(JE) AS 总金额 FROM ZY_SFMX WHERE SFRQ TO_DATE(2024-01-01, YYYY-MM-DD) AND SFRQ TO_DATE(2024-02-01, YYYY-MM-DD);如果SFRQ字段是DATE类型且有索引这个查询会走索引范围扫描。如果字段是VARCHAR2存字符串比如20240101120000那就需要按字符串比较但要注意格式统一。更麻烦的是有些老系统时间字段存的是NUMBER类型比如20240101这种就需要转换。性能上还有一个坑不要在WHERE条件里对时间字段做函数运算比如TO_CHAR(SFRQ, YYYY-MM) 2024-01这会导致索引失效。正确写法是用范围比较让字段裸奔。4. 对接与取数时最容易翻车的几个地方4.1 手册版本和实际数据库不一致现象按手册写的字段名去查报ORA-00904: invalid identifier字段不存在。原因手册是旧版本数据库已经升级过字段被重命名或删除了。解决先用all_tab_columns查实际表结构以数据库为准手册只做业务含义参考。如果字段确实没了去问实施人员要最新版手册或者从数据库注释里找线索。4.2 字典编码有历史遗留值现象性别字段手册写1男 2女但数据里出现了0、3、9。原因老数据迁移时没有清洗或者不同子系统写入的编码规则不一致。解决先GROUP BY看值分布把实际出现的值都列出来再找业务人员确认含义。不要直接按手册写CASE WHEN XB1 THEN 男 ELSE 女 END会把异常值都归成女。4.3 关联字段类型不一致导致查询慢现象三表关联查询跑了几分钟不出结果。原因关联字段类型不一致比如BRID在 A 表是NUMBER在 B 表是VARCHAR2Oracle 做隐式转换索引失效。解决用all_tab_columns确认两边字段类型如果不一致在 SQL 里显式转换比如TO_CHAR(a.BRID) b.BRID但这样仍然可能不走索引。更好的做法是找 DBA 确认是否有函数索引或者在 ETL 层做类型统一。4.4 金额字段精度不一致现象收费明细汇总金额和收费主表金额差几分钱。原因明细表金额字段是NUMBER(12,4)主表是NUMBER(12,2)汇总时四舍五入方式不同。解决统一用明细表汇总或者在汇总时用ROUND(SUM(JE), 2)明确精度。对账时以明细为准主表金额只做参考。4.5 医嘱表和收费表关联不上现象按ZYH关联医嘱和收费发现有些收费记录找不到对应医嘱。原因收费记录可能来自手工补录、退费重收、或者医嘱被作废但收费未撤销。解决不要用INNER JOIN改用LEFT JOIN保留收费记录再通过YZID或时间范围去匹配。如果业务上要求必须一一对应那就需要和业务方确认哪些场景允许不一致。5. 把手册用活从取数到数据校验的进阶习惯手册的价值不只是查字段而是帮你建立一套可复用的取数模板。我一般会做三件事第一把常用业务域的关联 SQL 存成视图或 CTE下次直接引用不用每次重写 JOIN。第二建一张自己的字典映射表把手册里的编码和实际数据里出现的值都维护进去遇到新值就补充避免每次都要问人。第三写一个简单的数据校验脚本定期跑一遍关键指标比如每日收费总额和财务系统对账发现偏差就回头查手册确认字段逻辑。-- 每日收费汇总校验按收费日期统计笔数和金额 SELECT TRUNC(SFRQ) AS 收费日期, COUNT(*) AS 收费笔数, SUM(JE) AS 收费金额 FROM ZY_SFMX WHERE SFRQ TRUNC(SYSDATE) - 7 GROUP BY TRUNC(SFRQ) ORDER BY 收费日期;这个查询用TRUNC(SFRQ)把时间截断到天按天汇总。SYSDATE - 7取最近七天。跑出来的结果和财务日报对比如果金额一致说明取数逻辑没问题如果不一致优先检查字典关联是否漏了科室、费别过滤条件是否和财务口径一致。还有一个习惯每次从手册里查到一个新表就在自己的笔记里记下表名、业务含义、关键字段、关联关系。时间长了你就有一份比原版手册更好用的个人版数据地图。手册是死的业务是活的真正值钱的是你对手册和实际数据之间差异的理解。希望帮到你。本文还有配套的精品资源点击获取
RELATED

相关推荐

模块化AI创作系统:从单体脚本到乐高式编排的实战指南

模块化AI创作系统:从单体脚本到乐高式编排的实战指南

1. 为什么我把这个系统做成了“乐高式”而不是“瑞士军刀式”1.1 最初的原型:单体调用让人崩溃EverSpark Forge 这个名字听起来有点中二,但它的诞生完全是被逼出来的。最开始我接触 AI 创作时,想法很简单:既然语言模型能写文案、改…

📅 2026/10/3 5:41:42
Agentic AI Infra:智能体生产落地的底层契约体系

Agentic AI Infra:智能体生产落地的底层契约体系

1. 云栖2026不是一场发布会,而是一次基础设施层的“静默升级”“云栖2026|Agentic AI Infra,加速模型与智能体创新”——这个标题里没有“发布”“重磅”“全球首发”这类惯用营销词,却用了“Infra”这个在工程一线被反复咀嚼、反…

📅 2026/10/3 5:41:42
树莓派5 8G跑Ollama:打造低功耗私有大模型推理节点

树莓派5 8G跑Ollama:打造低功耗私有大模型推理节点

不是标题党,我是真的在树莓派5 8G版上把 Ollama LLM 跑起来了,而且不是只跑了个hello world,是当生产工具用了一段时间。这块小主机加一张TF卡,没有GPU、没有独显,完全靠CPU推理,最后跑出接近每秒十来个to…

📅 2026/10/3 5:36:42
MORE NEWS

更多资讯

📰

DevEco Code 的 Skill 怎么安装?目录放置和 Prompt 两种方案详解|TaoToken 统一 Key 通道实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

OpenClaw飞书打造AI科研办公团队:用TaoToken统一Key打通机器人应用链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

如何搭建AI智能体?TaoToken统一Key接入与本地验证全流程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

InputReader 与 CursorInputMapper 工作总结:TaoToken 统一 Key 接入 Cursor Base URL 的排查记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Turso 数据库实测:SQLite 的 Rust 重写版,性能翻了 3 倍

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

pymysql 提交 SQL 语句报错排查:用 TaoToken 统一 Key 打通 AI 辅助诊断链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬