Files
muyingbaogaojiedu/后端-孕期报告解读-api/app/models/report.py
shutiaozhao127-boop cfdeeb5e41 chore: 初始化项目结构并添加基础配置文件
添加后端API和前端项目的初始目录结构,包括应用层模块、工具模块和模型定义
配置前后端的.dockerignore文件以排除开发环境文件
添加前端样式文件,包括字体、Tailwind CSS和主题配置
初始化Python虚拟环境中的类型标记文件
2026-04-01 16:55:24 +08:00

51 lines
1.4 KiB
Python

from datetime import datetime, timezone
from typing import Optional
from beanie import Document, PydanticObjectId
from pydantic import BaseModel, Field
class DataItem(BaseModel):
"""单个检查指标"""
name: str
value: str
unit: str = ""
reference_range: str = ""
status: str = "normal" # normal / high / low
category: str = "" # 血液检查 / 激素水平 / 尿常规 etc.
class Report(Document):
user_id: PydanticObjectId
report_type: str = "" # 血常规 / B超 / 尿常规 etc.
pregnancy_week: Optional[int] = None
report_date: Optional[str] = None # 报告日期 YYYY-MM-DD
# Images
image_urls: list[str] = Field(default_factory=list)
# OCR results
ocr_raw_text: Optional[str] = None
data_items: list[DataItem] = Field(default_factory=list)
# User additions
symptoms: Optional[list[str]] = None # 自觉症状
notes: Optional[str] = None # 备注
# Privacy fields (auto-masked)
patient_name: Optional[str] = None
patient_id_masked: Optional[str] = None
# Status
status: str = "pending" # pending / verified / analyzed
overall_status: str = "normal" # normal / attention / warning
created_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
class Settings:
name = "reports"
indexes = [
"user_id",
]