feat: 初始化孕育无忧全栈项目基础代码结构
完成项目初始搭建,包含后端FastAPI+MongoDB服务、前端React+Vite项目的完整基础结构,添加各类配置文件与依赖清单,涵盖核心业务初始框架。
This commit is contained in:
50
backend/app/models/report.py
Normal file
50
backend/app/models/report.py
Normal file
@@ -0,0 +1,50 @@
|
||||
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",
|
||||
]
|
||||
Reference in New Issue
Block a user