🧠 MCP 工具:将原始数据转换为结构化数据
概述
raw2structured 是 一 个 基于Python的模型上下文协议(MCP) 转换服务器 非结构化临床笔记 转换为结构化且类似FHIR的表示形式。\ 它利用确定性启发式方法和语义线索,将自由文本笔记分割成临床部分(例如。, *主要症状/主诉*, *HPI(Human Performance Improvement)——人性能动改善*, *药物*, *过敏*)\ 并且输出一个 结构化骨架 带有句子级别的引用,这些引用可以通过大型语言模型(LLM)层进行丰富,或者映射为可互操作的FHIR资源。
这个模块构成了 第一阶段 评估的预先授权工作流程:\ → *原始笔记* → “raw2structured”可以翻译为“从原始到结构化”。这个短语通常用于描述将原始数据或信息转换为有组织、有结构的形式的过程 → *结构化JSON* → “priorauth-checker”可以翻译为“预先授权检查器”或“预先审批检查工具”,具体取决于上下文和使用场景。在医疗或保险领域,它可能指的是用于检查预先授权(如医疗预授权或保险预审批)状态的工具或系统 → *资格决定*
______________________________________________________________________
🧩 特性/功能
- 🧠 这个表情符号通常代表“大脑”或“思考”,在中文里可以翻译为“脑子”或“思考中”。所以,可以翻译为“脑子”或“正在思考”。 启发式路段划分 基于上下文提示词
- 📚 书籍 句子级别的引用追踪 为了可解释性和来源追踪
- 🔄 旋转(循环) 适用于大型语言模型(LLM)的结构化框架 (
field,value,source_ref) 用于模型辅助完成 - DNA(脱氧核糖核酸) FHIR映射 将结构化内容转换为资源包的工具
- 工具或器具 符合MCP标准的服务器 可以独立运行或组合成多工具AI流水线
______________________________________________________________________
🏗️ 建筑学
| 层 | 描述 |
|---|---|
| 句子拆分器 使用基于正则表达式的解析方法将临床文本分词为带索引的句子 | |
| 分区分配器 | 将每个句子归类到启发式临床类别下(如主诉(HPI)、既往病史(PMH)等) |
| 结构化框架 | 构建一个带有占位符字段和引用参考的骨架JSON |
FHIR 映射器 将填充的JSON转换为类似FHIR的资源Condition, Observation, MedicationRequest等。) | |
| MCP 服务器 | 暴露了两种工具(structure_note, map_to_fhir) 通过 FastMCP 协议 |
______________________________________________________________________
当服务器运行时,它会暴露两个MCP工具:
| 工具 | 描述 | |
|---|---|---|
| (无对应中文) | (无对应中文) | structure_note(note: str) |
将自由文本笔记分割成启发式部分,并输出带有引用的结构化框架 map_to_fhir(structured_content: dict) |
______________________________________________________________________
将结构化内容(包含已填充的字段/值对)映射为类似FHIR的资源包
🧩 示例用法
Patient presents with chest pain radiating to the shoulder for 2 days.
She reports nausea and mild shortness of breath.
Currently taking metoprolol 25 mg daily.
No known drug allergies.
Plan: Continue beta-blocker and schedule stress test.输入
{
"structured_skeleton": {
"Chief Complaint": [
{ "field": null, "value": null, "source_ref": "[1]" }
],
"History of Present Illness": [
{ "field": null, "value": null, "source_ref": "[2]" }
],
"Current Medications": [
{ "field": null, "value": null, "source_ref": "[3]" }
],
"Allergies": [
{ "field": null, "value": null, "source_ref": "[4]" }
],
"Assessment and Plan": [
{ "field": null, "value": null, "source_ref": "[5]" }
]
},
"citation_key": [
{ "id": 1, "text": "Patient presents with chest pain..." },
{ "id": 2, "text": "She reports nausea..." }
]
}1️⃣ 结构化笔记输出(LLM输入框架)
{
"resourceType": "Bundle",
"type": "collection",
"entry": [
{
"resource": {
"resourceType": "Observation",
"code": { "text": "Pain" },
"valueString": "chest pain radiating to the shoulder",
"note": [{ "text": "From [1]" }]
}
},
{
"resource": {
"resourceType": "MedicationRequest",
"medicationCodeableConcept": { "text": "metoprolol 25 mg daily" },
"note": [{ "text": "From [3]" }]
}
}
]
}______________________________________________________________________
2️⃣ map_to_fhir 输出
- 🧠 设计理念/设计原理 以可解释性为先:
- 每条提取的句子都可以通过引文密钥进行追溯。 模块化:
- 该工具可以独立运行,也可以在大型语言模型(LLM)循环中运行,或者通过MCP(可能是指某种中间件或通信协议)进行链式调用。 互操作性:
- 输出与FHIR资源结构相一致。 安全:
______________________________________________________________________
防御性解析确保对格式错误的文本或空部分具有鲁棒性。
mcp-raw2structured/
├── .gitignore
├── .python-version
├── main.py
├── pyproject.toml
├── raw2structured.py # MCP server implementation
├── uv.lock
└── README.md______________________________________________________________________
