当前位置: 首页 > news >正文

[开源] 护理语音医嘱转换系统:面向移动护理终端的结构化记录工具,自动解析床号、操作、参数与通知状态

本项目是一个专为临床一线护士设计的轻量级命令行工具,解决移动护理终端中语音描述转结构化医嘱记录的断点问题。我们不对接医院HIS或EMR系统,也不要求部署服务端,而是以本地可执行方式嵌入护士日常操作流:护士口述「14床测血压,偏高,通知医生」,系统实时输出含床号、操作类型、参数语义值、通知标记及待确认状态的标准化记录。核心能力全部围绕护理文书规范展开,床号支持「14床」「14-床」「14床xxx」等非标写法;护理操作覆盖20+项高频动作(如测血压、吸痰、翻身、静脉输液),并内置同义词映射;参数描述(如「偏高」「稍快」「正常范围」)被统一归一为预定义语义标签;是否需通知医生由上下文关键词触发识别;最终结果可导出为JSON(供系统集成)、CSV(GBK编码,适配院内Windows环境)和HTML(带时间戳与原始文本的可读报告)。它用TypeScript + Node.js构建,模块化拆分为解析、映射、导出与CLI四层,所有逻辑在本地运行,无网络依赖,测试覆盖全部关键路径。

定位与能力边界

我们不做语音识别(ASR),只处理已转写的中文文本;不做NLP大模型微调,不依赖GPU或云API;不生成护理计划或评估结论,只做从自然语言到结构化字段的确定性映射。它的存在前提很具体:护士已在移动端完成语音输入并获得文字稿,但人工逐字录入结构化表单仍耗时、易错、难回溯。因此,系统能力严格限定在四个可验证环节:
- 床号提取:识别数字+床/床号/bed等变体,兼容空格、短横、中英文混排;
- 操作识别:基于预置术语库匹配动作意图,例如「量血压」「测BP」「血压监测」均映射至measure_bp
- 参数解析:将模糊描述映射为标准枚举值,如「偏高」→abnormal_high,「稍快」→slightly_fast,「正常」→normal
- 通知判定:检测「通知医生」「叫医生」「得找大夫」等显式表达,也识别隐含场景(如「室颤」「心跳骤停」自动触发notifyDoctor: true)。

超出这四类的语义(如时间推演、风险评分、跨操作关联)不在当前设计范围内。这不是一个通用医疗NLU平台,而是一把为护理文书场景打磨的结构化小刀。

核心功能详解

以下功能全部通过本地解析引擎实现,无需联网,不上传任何数据:

功能模块

支持内容

示例输入与输出要点

床号提取

「14床」「14-床」「14床患者」「床14号」「十四床」

统一归一为字符串"14",不作数值计算或床位校验

护理操作识别

20+种操作,含同义词扩展(如「吸痰」匹配「负压吸痰」「气道吸痰」)

输出字段type为小写下划线命名(如airway_suction),非自由文本

参数值解析

支持程度副词+名词组合(「明显升高」「轻度水肿」「基本正常」)

parameters

数组中每个对象含name(如oxygen_saturation)、value(如abnormal_low)、unit(如%

通知状态检测

显式关键词+高危事件词典双路触发

notifyDoctor: true

仅当语义明确指向医生介入,非所有「异常」都触发

多格式导出

JSON(标准结构)、CSV(GBK编码,列名中文,兼容Excel打开)、HTML(含样式模板)

CSV默认用逗号分隔,空值留空,不加引号;HTML使用templates/下预置模板渲染

所有解析规则均来自data/目录下的结构化术语表,而非正则硬编码。例如「测血压」对应的操作ID、参数名、单位、可能取值范围,全部在data/operations.json中明确定义,便于科室按本院习惯增删改。

使用与交互方式

系统提供四种使用路径,全部通过npm start入口统一调度:

npm start -- --text "14床测血压,偏高,通知医生"
npm start -- --file data/examples.json
npm start -- --text "14床测血压" --format csv --output result.csv
npm start

交互式模式下,每行输入一条语音文本,空行结束,实时返回JSON结果。这种设计适配两种典型场景:一是护士在查房间隙用手机终端快速录入单条指令;二是信息科批量清洗历史语音转写日志。所有命令行参数含义如下表:

参数

含义

是否必需

补充说明

--text

单行待解析文本

否(与--file二选一)

支持中文标点,无需额外清理

--file

JSON格式批量输入文件路径

否(与--text二选一)

文件内容为字符串数组,如["14床测血压", "8床换药"]

--format

输出格式:json(默认)、csvhtml

csv

强制GBK编码,避免Excel乱码

--output

输出文件路径

否(不指定则打印到控制台)

html

模式必须指定此参数才能生成报告

注意:--file读取的是纯文本JSON数组,不是带结构的医嘱对象集合;系统不校验输入合法性,只对符合护理语言习惯的文本做最优解析。

工程结构与可维护性

整个项目按职责清晰切分为五个源码模块,全部位于src/下:

  • parser/

    :纯函数式文本切分与词元识别,不依赖外部状态,输入字符串,输出中间词元树;

  • mapper/

    :将词元映射为标准操作ID与参数枚举值,核心逻辑集中在operationMap.tsparameterRules.ts

  • export/

    :格式无关的导出接口抽象,jsonExporter.tscsvExporter.tshtmlExporter.ts各自实现ExportStrategy

  • cli/

    :封装命令行参数解析(yargs)、输入流控制与结果输出,与业务逻辑零耦合;

  • utils/

    :提供normalizeText()(去噪、统一空格)、parseBedNo()(正则+规则双校验)等复用函数。

测试驱动开发贯穿全程:__tests__/中每个模块均有对应单元测试,且包含集成测试验证端到端流程。例如bedNo.test.ts覆盖「14床」「床14」「14-床」等7种写法;parameter.test.ts验证「偏低」「轻度降低」「略低于正常」全部映射至abnormal_lowe2e.test.ts用真实样例文本检验最终JSON字段完整性。所有测试用例均来自临床真实语料整理,非虚构构造。

数据与扩展机制

术语体系完全开放可配置,所有业务规则不写死在代码里:

  • 护理操作定义存于data/operations.json,每项含idkeywords(同义词数组)、parameters(参数名与可选值列表);

  • 床号识别规则在data/patterns/bedNoPatterns.json中声明正则与后处理逻辑;

  • 参数语义映射表位于data/parameterValues.json,定义「偏高」「升高」「明显增高」→abnormal_high等映射;

  • HTML报告模板在templates/report.html中,支持自定义CSS与字段展示顺序。

新增一项操作(如「中心静脉压监测」)只需在operations.json中添加条目,无需修改任何TypeScript源码。术语库更新后,重新运行npm start即可生效,无编译步骤。

限制与适用说明

本系统有明确的能力边界,须提前知悉:
- 不处理语音音频,仅接受已转写的中文文本;
- 不校验床号真实性(如「999床」仍会提取为"999"),需由上层系统或人工核对;
- 参数解析基于预设词典,未登录词(如新造口语「有点儿悬」)无法识别,返回空参数数组;
- CSV导出不包含嵌套结构(如多个操作共存时,一行CSV仅对应一个operations[0]),完整结构请用JSON;
- HTML报告为静态页面,不支持交互式筛选或导出子集。

它适合三类使用者:一线护士(单条快速录入)、信息科人员(批量清洗语音日志)、护理质控员(导出CSV做操作频次统计)。不适合替代专业语音识别引擎,也不用于生成法律效力文书,所有输出均标注"status": "pending_confirm",必须经护士二次确认后方可归档。

项目地址:
https://github.com/nexorin9/nursing-voice-order-converter

http://www.zskr.cn/news/1325691.html

相关文章:

  • ChatGPT-Next-Web:跨平台AI对话的终极解决方案
  • 网络基本原理
  • Trae 在极致成本优化中的 Token 消耗实测:3 类场景平均降低 37% 调用量
  • 怎样高效配置浏览器资源嗅探工具:实用操作手册
  • TVA视觉新范式:工业视觉的百年未有之大变局(2)
  • 告别复制粘贴!用Python+GoBot Pro 1.0,5分钟搞定Excel数据自动录入网页表单
  • 迷宫算法避坑指南:为什么你的‘流水算法’跑不出最短路径?(附Python调试技巧)
  • 特高压输电线路在线监测系统设计:从架构到嵌入式核心板选型实践
  • 树莓派Web IDE:零配置云端编程环境与Python硬件模拟实践
  • 保姆级教程:用VASP+VTST脚本搞定CI-NEB过渡态计算(从编译到出图)
  • 告别付费插件!手把手教你用.NET 4.x在Unity里免费读取CAD图纸(附完整Demo)
  • 《Windows Sysinternals实战指南》5.10 Process Monitor 学习笔记:分析工具——从海量事件到可下手的证据
  • 《Windows Sysinternals实战指南》Process Monitor 学习笔记(5.4):进程树(Process Tree)—一眼看穿父子关系与可疑链路
  • 对比直接使用原厂API,通过聚合平台调用大模型的便利性体验
  • 为什么92%的学者用错Perplexity查书?——揭秘3类典型语义断层及4种精准修复方案
  • HBuilderX调试UniApp H5:为什么Camera和GPS功能非得用HTTPS?手把手教你搞定本地证书
  • Java-集合进阶
  • 电位器原理
  • 别再手动算远场了!用FDTD的远场投影功能,5分钟搞定半球面辐射分析
  • Ormar 高级特性完全指南:字段加密、UUID 和约束条件详解
  • AmazingHand高级演示:手部追踪与逆运动学控制
  • Dream全栈开发实战:用Melange构建前后端统一的Web应用 [特殊字符]
  • 告别手动下载!用Flutter auto_updater插件为你的Windows/Mac桌面应用添加自动更新(保姆级配置流程)
  • 【android opencv学习笔记】Day 17: 目标追踪(MeanShift)
  • Ascend(昇腾)性能优化文章导航
  • 微信小程序 Vue3基于springboot框架的社区团购自提系统
  • Perplexity教育信息搜索全链路拆解:从提问设计→信源验证→引用导出(含教育部推荐引用规范适配版)
  • 2026届毕业生推荐的AI写作助手实际效果
  • 2026届学术党必备的十大AI学术方案实测分析
  • 节日场景下慈善钓鱼与宠物诈骗机理及闭环防御研究