医疗转诊信生成器

👤 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

推荐访问7w4.net获取更多AI技能。

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:输入数据结构示例

安全与隐私

  • 所有患者数据均在本地处理,不上传至任何外部服务
  • 生成过程不涉及外部 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