目标与使用场景
构建这套系统的核心目的很明确:把临床数据彻底结构化,同时让医生操作起来更直观。我们主要关注几个关键点:
- 信息结构化:主诉、现病史、龋/充/根管/牙周/修复/种植情况、影像读片所见、处置术式、医嘱以及收费关联,全部纳入规范字段。
- 可视化联动:通过牙位图标注与表单联动,实现'点哪颗牙、哪一面,就写哪一项',杜绝游离文本带来的后续清洗成本。
- AI 赋能:重点做三件事——录入提效(自动补全、术语标准化、编码建议)、质控(规则与模型双重校验)以及影像辅助(龋齿、残髓、根尖周病变等初筛)。
- 生态对接:确保能与医院信息平台、医保系统及第三方影像服务顺畅交互,支持 HL7/FHIR 和 DICOM 标准。
标准与术语落地
技术选型必须建立在行业标准之上,否则后期扩展会非常痛苦。建议直接采用以下规范:
- 牙位编码:优先使用 FDI 两位码(11–48,51–85),同时保留美制或字母编码的兼容映射能力。
- 术语体系:诊断与处置参考 SNOMED CT,病案编码用 ICD-10,检验项目对应 LOINC,单位统一为 UCUM。
- FHIR 资源:Patient、Encounter、Condition、Observation、Procedure、DiagnosticReport、ImagingStudy 等资源需完整映射。
- 影像处理:DICOM 文件由 pydicom 解析,报告生成时关联 DiagnosticReport 与 ImagingStudy。
总体架构设计
后端以 Python 为主力,前端侧重交互体验,整体架构如下:
- 前端层:React + TypeScript 配合 SVG 绘制牙位图(32 或 20 颗牙,涵盖 M/D/O/B(P/L)/I/C 五个面)。前后端通过 WebSocket 或 REST 保持实时同步。
- API 层:FastAPI 提供接口,Pydantic v2 负责模型校验,Uvicorn 作为服务器,认证采用 JWT/OAuth2。
- 业务与数据:PostgreSQL 存储结构化数据及 JSONB 格式的牙面状态,ORM 选用 SQLAlchemy,迁移工具用 Alembic。
- AI 服务:
- NLP:术语标准化与编码建议(PyTorch/Transformers),检索增强生成(RAG)结合 FAISS 或 SQLite-vec。
- CV:X 光与口扫图像处理(OpenCV + MONAI/nnU-Net/YOLOv8),推理引擎推荐 ONNX Runtime。
- 队列:Celery + Redis 处理批量影像的异步任务。
- 集成与合规:fhir.resources 组装 FHIR Bundle,pydicom/DICOMweb 获取影像,审计日志采用 append-only 模式,敏感字段加密(pgcrypto 或应用层),权限控制遵循 RBAC/ABAC。
数据建模核心
数据库设计是结构化的基石。这里列出几组关键表结构:
A. 患者与就诊
patient(id, mrn, name, sex, dob, …)
encounter(id, patient_id, start_time, type, …)
B. 每牙结构化记录
tooth_record(id, encounter_id, fdi_code, present BOOLEAN, mobility, percussion, …)
tooth_surface(id, tooth_record_id, surface ENUM[M,D,O,B,P,L,I,C], caries_grade, restoration, fracture, pocket_depth_mm, bleeding BOOLEAN, furcation, …)
diagnosis(code, system, display) / procedure(code, system, display, tooth_fdi?, surface?)


