use sea_orm::entity::prelude::*; use serde::{Deserialize, Serialize}; /// 用药记录实体 — 记录患者当前和历史的用药情况 #[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)] #[sea_orm(table_name = "medication_record")] pub struct Model { #[sea_orm(primary_key, auto_increment = false)] pub id: Uuid, pub tenant_id: Uuid, pub patient_id: Uuid, /// 药品名称(商品名) pub medication_name: String, /// 通用名 #[sea_orm(skip_serializing_if = "Option::is_none")] pub generic_name: Option, /// 剂量(如 500mg) #[sea_orm(skip_serializing_if = "Option::is_none")] pub dosage: Option, /// 单位(如 mg/ml/片) #[sea_orm(skip_serializing_if = "Option::is_none")] pub unit: Option, /// 用药频率: daily/bid/tid/qid/prn #[sea_orm(skip_serializing_if = "Option::is_none")] pub frequency: Option, /// 给药途径: oral/injection/topical/inhalation #[sea_orm(skip_serializing_if = "Option::is_none")] pub route: Option, /// 开始日期 #[sea_orm(skip_serializing_if = "Option::is_none")] pub start_date: Option, /// 结束日期 #[sea_orm(skip_serializing_if = "Option::is_none")] pub end_date: Option, /// 是否当前用药 pub is_current: bool, /// 开方医生 ID #[sea_orm(skip_serializing_if = "Option::is_none")] pub prescribed_by: Option, /// 备注(PII 加密存储) #[sea_orm(skip_serializing_if = "Option::is_none")] pub notes: Option, pub created_at: DateTimeUtc, pub updated_at: DateTimeUtc, #[sea_orm(skip_serializing_if = "Option::is_none")] pub created_by: Option, #[sea_orm(skip_serializing_if = "Option::is_none")] pub updated_by: Option, #[sea_orm(skip_serializing_if = "Option::is_none")] pub deleted_at: Option, pub version: i32, } #[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)] pub enum Relation { #[sea_orm( belongs_to = "super::patient::Entity", from = "Column::PatientId", to = "super::patient::Column::Id" )] Patient, } impl Related for Entity { fn to() -> RelationDef { Relation::Patient.def() } } impl ActiveModelBehavior for ActiveModel {}