醫療轉診信生成器

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

📖 技能介紹


slug: referral-letter-generator displayName: 醫療轉診信生成器 version: 1.1.0 description: 根據患者資訊、轉診醫生和接診醫生資訊自動生成專業的醫療轉診信,支援 PDF/DOCX/HTML/TXT 四種格式輸出。適用場景示例:"幫我生成一份轉診信"、"把這個患者轉診給心臟科醫生,生成 PDF"、"根據這份 JSON 病歷資料生成轉診信"、"生成一份緊急轉診信模板"。 license: MIT author: AIPOCH


醫療轉診信生成器

一個用於生成專業醫療轉診信的工具,幫助醫生在轉診患者時快速生成結構規範、資訊完整的轉診文書。

重要說明(語言策略):本工具面向英語醫療體系下的醫生之間轉診場景——指令碼內建的示例資料、欄位命名(如 NPI 編號)、文件中提到的 HIPAA 合規要求,均為美國醫療體系的通行慣例。因此,生成的轉診信正文內容(患者姓名、診斷、用藥、醫生資訊等)保留英文,這樣生成的信件才能直接在英語醫療環境中使用、被當地醫生正確理解。本 SKILL.md 文件本身、指令碼中的提示資訊、程式碼註釋以及 references/ 目錄下的說明文字均已翻譯為中文,方便中文使用者理解和使用這個工具;但 references/referral_template.mdreferral_template_clean.md 等檔案中的模板正文和佔位符同樣保留英文,因為它們直接對應最終信件內容。

適用場景

  • 將患者轉診給專科醫生(心臟內科、神經內科、腫瘤科等)
  • 醫院或診所之間的診療轉移
  • 急診情況下的緊急轉診
  • 常規專科會診轉診

功能概覽

本工具生成的轉診信包含以下結構化內容: - 患者基本資訊 - 轉診原因 - 相關病史 - 當前用藥與治療方案 - 用於後續溝通的聯絡方式

使用方法

命令列方式

指令碼入口為 scripts/main.py,實際支援的引數如下(已核對原始碼 argparse 定義):

引數 簡寫 是否必填 說明
--input -i 否(與 --sample 二選一) 包含患者與轉診資料的輸入 JSON 檔案路徑
--output -o 輸出檔案路徑
--format -f 否,預設 pdf 輸出格式,可選 pdf/docx/html/txt
--sample 生成用於測試的示例轉診信(同時會在輸出路徑旁儲存對應的示例 JSON)

必須指定 --input--sample 中的一個,否則指令碼會報錯並退出。

# 根據 JSON 檔案生成 PDF 轉診信
python scripts/main.py --input patient_data.json --output referral_letter.pdf

# 生成示例轉診信(PDF)
python scripts/main.py --sample --output sample.pdf --format pdf

# 生成 HTML 版本
python scripts/main.py --input data.json --format html --output letter.html

Python API

文件修正說明:源版本 SKILL.md 中的示例程式碼呼叫了一個名為 generate_referral_letter() 的函式,但實際指令碼中並不存在這個函式。真正的介面是 ReferralLetterGenerator 類及其 generate() 方法,需要傳入 ReferralData(及內部的 PatientDataProviderInfo)資料物件,且格式引數需要是 OutputFormat 列舉值而非普通字串。以下示例已根據 scripts/main.py 的真實實現改寫。

from scripts.main import (
    ReferralLetterGenerator, ReferralData, PatientData, ProviderInfo, OutputFormat
)

patient = PatientData(
    name="John Doe",
    date_of_birth="1975-03-15",
    patient_id="MRN12345678"
)
referring = ProviderInfo(name="Dr. Smith", title="Internal Medicine")
receiving = ProviderInfo(name="Dr. Jones", title="Cardiology")

data = ReferralData(
    patient=patient,
    referring_provider=referring,
    receiving_provider=receiving,
    reason_for_referral="Cardiology evaluation for chest pain",
    primary_diagnosis="Suspected coronary artery disease"
)

generator = ReferralLetterGenerator()
generator.generate(data, OutputFormat.PDF, "referral_letter.pdf")

輸入引數說明

以下欄位對應輸入 JSON 檔案的結構(詳見 references/input_template.json):

引數 型別 是否必填 說明
patient.name str 患者姓名
patient.date_of_birth str 出生日期(YYYY-MM-DD)
patient.patient_id str 病歷號
primary_diagnosis str 主要診斷/轉診原因
reason_for_referral str 轉診原因說明
referring_provider.name str 轉診醫生姓名
receiving_provider.name str 接診醫生/科室名稱
relevant_history str 相關既往病史
current_medications list 當前用藥清單
allergies list 已知過敏史
vital_signs dict 生命體徵鍵值對
lab_results list 相關檢驗結果
urgency str Routine(常規)/Urgent(緊急)/Emergent(急診),預設 Routine
additional_notes str 其他補充說明

上述必填欄位已對照 scripts/main.pyvalidate_input() 的實際校驗邏輯核實(源版本文件中還列出了 patient_namepatient_dobdiagnosisreferring_doctor 等扁平化欄位名,與真實 JSON 結構的巢狀欄位名不一致,此處已修正為指令碼實際讀取的欄位路徑)。

輸出格式

  • PDF:正式格式化文件(預設),依賴 reportlab
  • DOCX:可編輯的 Word 文件,依賴 python-docx
  • HTML:適合網頁檢視的格式
  • TXT:純文本格式

示例

{
  "patient": {
    "name": "John Doe",
    "date_of_birth": "1975-03-15",
    "patient_id": "MRN12345678"
  },
  "primary_diagnosis": "Suspected coronary artery disease",
  "reason_for_referral": "Cardiology evaluation for chest pain",
  "referring_provider": { "name": "Dr. Smith" },
  "receiving_provider": { "name": "Dr. Jones" },
  "urgency": "Urgent"
}

技術說明

  • 難度:中等
  • 依賴:Python 3.8+、reportlab(生成 PDF)、python-docx(生成 DOCX)
  • 合規:轉診信內容遵循美國 HIPAA 關於患者隱私資訊(PHI)處理的相關原則
  • 校驗:指令碼會對必填欄位進行校驗,缺失時會列出具體缺失項並中止生成

依賴修正說明:源版本 requirements.txt 中列出了 dataclassesenum 兩個包,以及包名錯誤的 docxdataclassesenum 都是 Python 3.7+ 的標準庫模組,並非需要通過 pip 安裝的第三方包(在較新 Python 版本上 pip install dataclasses 甚至會報錯或產生衝突);正確的 PDF/DOCX 依賴包名應為 reportlabpython-docx(指令碼中匯入的是 from docx import Document,對應的 PyPI 包名是 python-docx,而不是 docx)。本次已將 requirements.txt 更正為: reportlab python-docx

參考資料

詳見 references/ 目錄: - referral_standards.md:轉診信撰寫標準與最佳實踐 - referral_template.md / referral_template_clean.md:轉診信模板(含程式碼塊版本與純淨版本) - templates.md:轉診信標準結構與常見專科概覽 - quick_ref.md:快速參考手冊(命令示例、欄位說明、Python API 用法) - input_template.json / sample_input.json:輸入資料結構示例

安全與隱私

  • 所有患者資料均在本地處理,不上傳至任何外部服務

    想要更強大的技能外掛,就來小蔥技能站7w4.net看看吧。

  • 生成過程不涉及外部 API 呼叫
  • 建議在生產環境中對日誌輸出做好 PHI(受保護健康資訊)脫敏處理
  • 妥善管理生成的輸出檔案,避免明文患者資料長期留存在不受控的目錄中

已發現並修復的問題

在核對文件與原始碼、並實際執行指令碼驗證後,發現並修復了以下問題:

  1. 文件虛構的 API(已修正):源 SKILL.md 中的 Python API 示例呼叫了不存在的 generate_referral_letter() 函式。實際介面是 ReferralLetterGenerator.generate(data, output_format, output_path),且需要傳入 ReferralData/PatientData/ProviderInfo 資料類例項和 OutputFormat 列舉值。文件示例已按真實簽名重寫。
  2. requirements.txt 包名錯誤(已修正)dataclassesenum 是標準庫模組而非 PyPI 包,docx 應為 python-docx(匯入語句為 from docx import Document,但 PyPI 上釋出的包名是 python-docx)。已更正為 reportlabpython-docx
  3. 輸入欄位命名不一致(已修正):源文件中列出的引數名(如 patient_namediagnosisreferring_doctor)與指令碼實際讀取的巢狀 JSON 欄位(如 patient.nameprimary_diagnosisreferring_provider.name)不一致。文件已按指令碼 load_from_json() 的實際讀取邏輯更正。
  4. DOCX 緊急標註顏色死程式碼(指令碼 bug,已修復):原指令碼 generate_docx() 中,緊急程度標註的程式碼寫的是 run.font.color.rgb = None # Red handled below,註釋聲稱"下面會處理紅色",但實際上從未真正設定紅色,導致 DOCX 輸出中的緊急提示只是加粗文字、並非紅色。已改為使用 RGBColor(0xCC, 0x00, 0x00) 真正設定為紅色,與 PDF/HTML 版本的視覺效果保持一致。
  5. 靜默自動安裝依賴(指令碼行為調整,已修復):原指令碼在檢測到 reportlab/python-docx 未安裝時,會通過 os.system(f"{sys.executable} -m pip install ...") 靜默嘗試自動安裝。這種做法在受管理的 Python 環境(例如使用 uv 管理、遵循 PEP 668 "externally-managed-environment" 規範的環境)下會直接報錯失敗,且未經使用者同意就修改系統環境也不是好的實踐。已改為在依賴缺失時列印明確的中文錯誤提示,並以非零狀態碼退出,引導使用者自行執行 pip install -r requirements.txt

前置條件

pip install -r requirements.txt

錯誤處理

  • 如果必填欄位缺失,指令碼會明確列出缺失的欄位名稱
  • 如果依賴庫(reportlab/python-docx)未安裝,指令碼會給出安裝提示並退出,不會靜默修改環境
  • 如果既未指定 --input 也未指定 --sample,指令碼會列印錯誤資訊、顯示幫助並以非零狀態碼退出

🤖 AI 評測

這個轉診信生成器功能較完整,支援多種格式輸出,文件寫得詳細清楚,示例資料豐富。但存在一個明顯的坑:示例檔案的資料結構與工具實際期望的格式不匹配,照著示例改資料可能會出錯。總體質量中等偏上,主要不足是示例和程式碼之間的一致性欠佳,容易造成使用者困惑。

📊 多維度評分

適應性4.3
規範性4.1
有效性4.3
可靠性4.2
可信度4.5

📁 包含檔案 (13 個)

📄 SKILL.md 10.1 KB
📄 _meta.json 145 B
📄 assets/sample_referral.json 1.4 KB
📄 assets/sample_referral.txt 2.7 KB
📄 references/input_template.json 1.7 KB
📄 references/quick_ref.md 2 KB
📄 references/referral_standards.md 3.6 KB
📄 references/referral_template.md 6.6 KB
📄 references/referral_template_clean.md 1.7 KB
📄 references/sample_input.json 2.6 KB
📄 references/templates.md 2.4 KB
📄 requirements.txt 22 B
📄 scripts/main.py 28.6 KB