醫療口述轉結構化病歷

👤 AIPOCH 📦 v1.1.0 ⭐ 4.4 ⬇️ 616 下載
💼 行業專業 免費

📖 技能介紹


slug: medical-scribe-dictation displayName: 醫療口述轉結構化病歷 version: 1.1.0 description: 將醫生口述內容轉換為結構化的 SOAP(主觀資料/客觀資料/評估/計劃)病歷。適用於處理醫生口述轉錄文本、規範醫學術語、生成標準格式病歷、進行病歷完整性質量檢查等場景。以下場景也會觸發本技能:"把這段口述轉成 SOAP 病歷""幫我整理這段問診記錄""生成結構化病歷""醫學術語規範化"。 license: MIT author: AIPOCH


醫療口述轉結構化病歷

將非結構化的醫生口述內容轉換為專業格式的 SOAP(Subjective 主觀資料、Objective 客觀資料、Assessment 評估、Plan 計劃)病歷,包含醫學術語規範化和臨床質量檢查。

適用場景

  • 將醫生口述的問診/查體內容轉換為結構化 SOAP 病歷
  • 需要對病歷文本中的常見醫學縮寫進行展開規範化時
  • 需要對生成的病歷做完整性檢查(是否缺少主訴、評估、計劃等必需部分)時

功能特性

  • 文本處理:接收已轉錄的文本,或讀取文本檔案
  • SOAP 結構生成:自動將臨床內容歸類到標準分割槽
  • 醫學術語處理:規範化縮寫、提取常見藥物名稱、提取生命體徵
  • 臨床質量檢查:標記缺失的必需要素
  • 多專科模板references/soap-templates.md 提供內科、急診、心內科、兒科、外科、精神科、婦產科、骨科等專科模板參考

已實現能力(指令碼真實行為)

指令碼 scripts/main.py 實際實現的是基於規則的文本解析,並非語音識別或大語言模型智慧抽取:

  • 通過正規表示式從文本中提取主訴、評估/診斷、治療計劃等片段
  • 通過關鍵詞模式提取血壓、心率、呼吸頻率、血氧飽和度、體溫
  • 通過內建的約 30 條縮寫詞典(MedicalTerminologyProcessor.ABBREVIATIONS,硬編碼在指令碼內,與 references/medical-abbreviations.json 中收錄的約 2000 條術語表是兩套獨立資料,指令碼不會讀取該 JSON 檔案)展開文本中的常見醫學縮寫
  • 若安裝了 openaianthropic 庫並通過 --llm 指定提供方,則會呼叫相應大語言模型做更智慧的結構化抽取;未安裝或未指定時自動降級為規則解析
  • 若提供 --audio 且已安裝 openai-whisper,可將音訊轉寫為文本後再處理;否則會報錯並提示安裝該依賴

命令列用法

# 處理已轉錄文本(直接傳入字串)
python scripts/main.py --input "患者主訴:胸痛。血壓 130/85,心率 90。評估:穩定型心絞痛。計劃:繼續現有用藥。"

# 處理文本檔案
python scripts/main.py --input dictation.txt --output note.md

# 處理音訊檔案(需先安裝 openai-whisper)
python scripts/main.py --audio consultation.wav --output note.md

# 指定專科(僅作為後設資料記錄在輸出中,不影響解析邏輯)
python scripts/main.py --input dictation.txt --specialty cardiology

# 輸出為 JSON 而非 Markdown
python scripts/main.py --input dictation.txt --format json

# 使用大語言模型進行智慧抽取(需安裝並配置 openai 或 anthropic)
python scripts/main.py --input dictation.txt --llm anthropic

# 從標準輸入讀取
cat dictation.txt | python scripts/main.py

引數說明

引數 簡寫 是否必填 說明
--input -i 待處理的文本,或指向文本檔案的路徑。與 --audio 二選一;兩者都未提供時從標準輸入讀取
--audio -a 音訊檔案路徑(需安裝 openai-whisper
--output -o 輸出檔案路徑;未提供時列印到標準輸出
--specialty -s 醫學專科名稱,預設 general,僅作後設資料記錄,不改變解析規則
--llm 可選值 openai / anthropic,指定後啟用大語言模型智慧抽取
--format 輸出格式,markdown(預設)或 json

前置條件

pip install -r requirements.txt

requirements.txt 中列出的 anthropicopenaiwhisper 均為可選依賴——指令碼對它們做了 try/except 優雅降級處理,未安裝時基礎的規則解析功能仍可正常使用;dataclasses 是 Python 3.7+ 標準庫內建模組,無需單獨安裝(該檔案在 Python 3.6 及更早版本上才需要回填包,正常環境下無需理會)。

若需要音訊轉寫功能,還需另外安裝 openai-whisperpip install openai-whisper)。

參考檔案

小蔥技能站7w4.net,專業的AI技能分享平臺。

  • references/soap-templates.md —— 按專科(內科、急診、心內科、兒科、外科、精神科、婦產科、骨科)整理的 SOAP 病歷模板,供人工撰寫或校對時參考
  • references/example-cases.md —— 5 個完整的"口述文本 → 期望 SOAP 輸出"示例,覆蓋內科隨訪、急診胸痛、兒科體檢、骨科運動損傷、精神科隨訪
  • references/terminology-sources.md —— 醫學術語標準與編碼體系介紹(SNOMED CT、ICD-10、LOINC、RxNorm、CPT 等),供瞭解術語規範化背景時參考,指令碼本身不直接呼叫這些外部編碼系統
  • references/medical-abbreviations.json —— 約 2000 條醫學縮寫對照表(按首字母分組,英文縮寫 → 英文全稱)。注意:這是一份獨立的參考資料檔案,腳本當前不會讀取或使用它;考慮到詞條數量龐大且為純資料性質的英文術語對照,本次本地化保留其原始英文內容未做翻譯,僅在此說明其用途和真實使用狀態

安全說明

⚠️ 需要臨床稽核:所有生成的病歷在正式錄入病歷系統前,必須經主診醫師稽核確認。

⚠️ 無診斷能力:本工具只負責整理結構化臨床資訊,不提供診斷建議。

錯誤處理

  • 若既未提供 --input 也未提供 --audio,且標準輸入為空,指令碼會列印 Error: No input provided 並以狀態碼 1 退出。
  • 若指定了 --audio 但未安裝 openai-whisper,指令碼會丟擲提示安裝該依賴的錯誤。
  • 若指定了 --llm 但對應的大語言模型呼叫失敗(例如未配置 API key),指令碼會捕獲異常並自動降級為規則解析,同時列印警告資訊,不會中斷執行。
  • 若任務超出本技能記錄的範圍,應停止處理並說明,而不是猜測或悄悄擴大任務範圍。
  • 不要編造患者資料、檢驗結果或病歷內容。

已知侷限

  • 醫學術語識別的準確性依賴於輸入文本的清晰程度
  • 表述含糊的口述內容可能需要人工澄清
  • 建議在最終確認前對藥物名稱進行核實
  • 不能替代醫生對病歷的最終稽核,尤其在危重病例中

🤖 AI 評測

這是一個功能明確的醫療口述轉病歷工具,質量中等偏上。它能處理常見的主訴、診斷、計劃等結構化提取,還能校驗病歷完整性、生成置信度評分。但如果不用大語言模型,純規則解析能力有限,複雜口述內容可能識別不準確。適合作為輔助工具,最終病歷仍需醫生稽核確認。中文場景的術語處理是明顯短板。

📊 多維度評分

適應性4.4
規範性4.5
有效性4
可靠性4.3
可信度4.9

📁 包含檔案 (8 個)

📄 SKILL.md 6.7 KB
📄 _meta.json 143 B
📄 references/example-cases.md 11.8 KB
📄 references/medical-abbreviations.json 76.7 KB
📄 references/soap-templates.md 6.6 KB
📄 references/terminology-sources.md 4.9 KB
📄 requirements.txt 37 B
📄 scripts/main.py 24.3 KB