@cosyte/hl7 (韩语)
解析真实世界,销售商-quirky HL7 v2消息,并取出一行需要的字段,而不读取光谱.
一个面向开发者的HL7 v2 解析器和用于Node.js和TypeScript的公用库. 对您实际使用的HL7的10%进行优化,另外的90%在您需要的时候仍然有一个接入器离开.
目录
为什么会这样
HL7 v2是医院系统实际使用的格式,从中读出一个字段通常需要通过2000页的规格绕道才能得知患者的医疗记录号码是: PID-3.1 而消息时间是 MSH-7。这个库是为应用程序开发者设计的,该开发者必须消耗该流量,而不是首先成为HL7专家: msg.patient?.mrn 财务报告和审定财务报表 msg.meta.timestamp 是整个学习曲线。 最近的选择是分开 | 财务报告和审定财务报表 ^ 自己,或者找到一个解析器 手拿回一棵位置树 并且仍然期望你了解段数和字段数。 这些会给你结构;这会让你得到球场, 当您需要时将位置树保留在下面, 并且将小贩的微小真实世界输入视为正常情况而不是错误.
状态
0.1线. 公共 API 已安分并安全可依赖: 输出函数,消息和帮助器会浮出水面,以及20个稳定的警告代码是版本所声称的,而将警告代码更名在此算作突破性变化.
没有什么会排队的. parseStream 逐个解析多GB批量文件,并将信件生成为可同步的 emitMessageSchema 制作 JSON Schema 和 Zod 描述 toJSON() 返回。 两者都是出口的,因此上述稳定主张都涵盖了两者.
选入结构验证船也: validateMessageStructure(msg) 对 HL7 的已发布消息结构执行分区命令和主线。 见 检查已发布结构的顺序和计数。 。 。 .
打印的信息覆盖了船舶,并包含在稳定性索赔中: msg.is("ADT^A01") 从解析器所提取的信件类型中解答,并缩小了对编译器的邮件,因此检查后的访问器被范围化到信件类型已发布的结构所需要的部分. 见 将消息缩小到其类型。 。 。 .
永远超出范围:
- 网络运输: 通过 MLLP 发送和接收
@cosyte/mllp任务; 此库只解析, 并且只在读取时跳出 MLLP 框架 . - HL7 v3 和 CDA 数据: 不同的家族; 不在我们计划中.
- FHIR 转换数字 :
@cosyte/transform将解析后的信件转换为 FHIR R4; 此库没有 . - 穷尽编码值验证:我们验证结构,不是每个HL7表. 为此整合一个域验证器(例如您的LIS的内部代码注册).
安装
# pnpm (recommended). Also works with: npm install @cosyte/hl7 | yarn add @cosyte/hl7
pnpm add @cosyte/hl7
要求在22、24和26日测试的节点js 22或以后测试(engines.node 实值 >=22.0.0) (中文(简体) ). 一揽子船舶具有无害环境管理和共同JS的双重性质,并附有两者的申报类型,因此 import 财务报告和审定财务报表 require 既工作,也不需要一个相容的shim。 有零运行时间依赖性:节点标准库就是它装入的全部. 可选 @cosyte/hl7/arbitraries 进入点,快速检查发电机 属性测试自己的代码,需求 fast-check 安装在旁边;主入口从不加载.
使用量
分析一个消息,读字段离开它。 不需要HL7光谱知识.
import { parseHL7 } from "@cosyte/hl7";
// A synthetic ADT^A01 admit. HL7 v2 ends every segment with a carriage return.
const raw =
"MSH|^~\\&|EPIC|MAIN|LIS|REF|20260419101500||ADT^A01^ADT_A01|MSG00001|P|2.5\r" +
"EVN|A01|20260419101500\r" +
"PID|1||MRN12345^^^HOSP^MR||Doe^John^Q||19800115|M|||123 Main St^^Boston^MA^02101||^PRN^PH^^^617^5551212\r" +
"PV1|1|I|ICU^101^A^HOSP|||||ATTEND^Smith^Jane^^^^MD|||||||||||VISIT001\r";
const msg = parseHL7(raw);
console.log("Patient record number:", msg.patient?.mrn);
console.log("Full name:", msg.patient?.fullName);
console.log("Date of birth:", msg.patient?.dateOfBirth?.raw);
console.log("Precision:", msg.patient?.dateOfBirth?.precision);
console.log("Message type:", msg.meta.type);
console.log("Sent at:", msg.meta.timestamp?.raw);
console.log("Ward:", msg.visit?.location?.pointOfCare);
Patient record number: MRN12345
Full name: John Q Doe
Date of birth: 19800115
Precision: day
Message type: ADT^A01^ADT_A01
Sent at: 20260419101500
Ward: ICU
测试套件从这个 README 读取该块, 运行在包上, 如果上面的输出停止匹配代码打印, 则失败 。 电文是寄存器测试仪器的合成固定件的复制件.
说明 precision出生日期是一天,不是瞬间 每一次约会都是忠贞的 TS 保持了精确度和时区 而不是猜测 Date。 。 。 .
这就是整个投出点:没有配置,没有计划上传,没有光谱检索. 解析器默认接受销售商-夸克输入,如果存在则剥去MLLP框架,使外壳正常化,并容忍真实的HL7流量经常携带的十几等偏差. 您到达严格的模式, 点- 路径, 或配置文件 当您需要它们, 而不是之前.
文档
完整参考文献 docs.cosyte.com/hl7 (中文(简体) ),从此寄存器 docs-content/从这些页面开始:
- 教程: 处理实验室种子:拆分一批文件,读取结果,标出异常的,用ACK回答每个消息.
- 读信的三种方式:一个90秒的HL7 v2入门器,后被命名为"助行器","点-路径"和"分块树".
- 如何指导: 病人和探视, (中文(简体) ), 实验室结果, (中文(简体) ), 临床清单, (中文(简体) ), 合并, (中文(简体) ), 日期, (中文(简体) ), 编辑, (中文(简体) ), 大楼, (中文(简体) ), ACKs 缩写, (中文(简体) ), 批和流 财务报告和审定财务报表 验证。 。 。 .
- 使用和撰写供应商简介:内置剖面图,自有,分层,并发布一.
- 容忍和错误处理:四个容忍级和库所抛出的错误.
- 警告和致命代码:每个稳定的代码和它的含义.
支助
问题,错误报告, 和怪异的目击都从 问题跟踪器,任何重构都足以在拉出请求之前需要讨论.
需要一个 HL7 v2 集成, 或主机和运行你? 看我们的 融合服务。 。 。 .
警卫
私下报告脆弱性,如: 安全政策 描述,从来没有在公共问题.
PHI 与安全
HL7 v2 消息携带病人数据,所以这个库用你手取的字节做什么是其合同的一部分.
它不记录. 没有日志, 没有调试通道, 没有 console 给图书馆的任何地方打电话:诊断器会还给你,从不打印. 被容忍的偏差会变成 Hl7ParseWarning 带有稳定代码、有界消息和位置的值(segmentIndex, (中文(简体) ), fieldIndex),从不会触发它们的字段值,所以一个警告是安全的,可以登录为正.
一个领域是一个例外,而且是有意的. Hl7ParseError.snippet 包含您输入的最多 40 个字符, 且未编辑, 因此一个致命的解析失败是可操作的 。 这是唯一一个不过滤而回放输入的字段,库不编辑它,如果遵守状态需要,它也是第一个剥去字段. Hl7ParseError.message 被绑定而不是绝对的内容免费 : 它只与符号匹配 spec 定义的形状( 三字符段标识符、 消息类型、 版本、 已知的字符集标签) 并保留其它任何内容 , 才会重复符号 .
它保留你所不持有的一切. 解析返回一个 Hl7Message 信息包含在物体上,没有其它地方 没有缓存,没有集合,也没有模块级的信息数据存储,所以当您放弃引用时内容会被放出. 库所保存的全过程状态的一块是可选的已注册默认配置,它持有解析配置,而不是耐心数据.
写作和寄出什么. 没有打开文件, 没有写入目录, 也没有网络连接: 仅导入库 node:buffer 财务报告和审定财务报表 node:crypto 从标准库中获取,并具有零运行时间依赖性. parseStream 读取您提供的溪流并打开任何本身. toString(), (中文(简体) ), toJSON(),以及 prettyPrint() 将信件内容按设计带回给您;接下来是您的电话 prettyPrint() 特别是真实病人数据的调试视图,而不是编辑的.
留你的东西. 运输安全、储存、保留和审计、在任何东西到达日志或错误跟踪器之前进行编辑,以及访问控制都是消耗性应用程序。 一个解析器不能使一个系统符合HIPAA,而这个系统并不声称符合.
捐款
欢迎供应商-Quirk固定装置、配置图改进和独立配置图包。 测试套件所覆盖的更真实世界边缘案例,解析器得到的强度也越高. 每个出版的简介包都是通过信号和回馈的贡献.
该组织 贡献指南 财务报告和审定财务报表 行为守则 在此应用. 捐款额 添加此寄存器的具体内容: dev setup, 大门, 以及如何提交 PR .
商标
Epic、Cerner、MEDITECH、Athenahealth、LabCorp、Quest诊断、Visge(影像成像)和Philips(Vue PACS)是其各自所有者的商标。 Cosyte不附属于、经核可或 由其中任何一个赞助:名称表示其真实世界信息对内置配置文件所容纳的系统产生震动。 见 贸易。 。 。 .
许可证
MIT,版权 (c) 2026 Cosyte LLC. 见 自由主义。 。 。 .
由 调和。 。 。 .