- dialysis_record 新增 workflow_instance_id 列,关联工作流实例 - 种子 dialysis_session BPMN 流程定义:透前评估→上机确认→透中监测→透后评估→医生审核 - 事件驱动编排器:dialysis.record.created → 自动启动 BPMN 工作流 - 工作流启动后自动回写 instance_id 到透析记录 - 编排器在 erp-server 层实现(遵循星型依赖架构)
71 lines
2.8 KiB
Rust
71 lines
2.8 KiB
Rust
use sea_orm::entity::prelude::*;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Clone, Debug, PartialEq, DeriveEntityModel, Serialize, Deserialize)]
|
|
#[sea_orm(table_name = "dialysis_record")]
|
|
pub struct Model {
|
|
#[sea_orm(primary_key, auto_increment = false)]
|
|
pub id: Uuid,
|
|
pub tenant_id: Uuid,
|
|
pub patient_id: Uuid,
|
|
pub dialysis_date: chrono::NaiveDate,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub start_time: Option<chrono::NaiveTime>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub end_time: Option<chrono::NaiveTime>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub dry_weight: Option<Decimal>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub pre_weight: Option<Decimal>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub post_weight: Option<Decimal>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub pre_bp_systolic: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub pre_bp_diastolic: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub post_bp_systolic: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub post_bp_diastolic: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub pre_heart_rate: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub post_heart_rate: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub ultrafiltration_volume: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub dialysis_duration: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub blood_flow_rate: Option<i32>,
|
|
/// HD / HDF / HF
|
|
pub dialysis_type: String,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub symptoms: Option<serde_json::Value>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub complication_notes: Option<String>,
|
|
/// draft / completed / reviewed
|
|
pub status: String,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub reviewed_by: Option<Uuid>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub reviewed_at: Option<DateTimeUtc>,
|
|
pub created_at: DateTimeUtc,
|
|
pub updated_at: DateTimeUtc,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub created_by: Option<Uuid>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub updated_by: Option<Uuid>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub deleted_at: Option<DateTimeUtc>,
|
|
pub version: i32,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub key_version: Option<i32>,
|
|
#[sea_orm(skip_serializing_if = "Option::is_none")]
|
|
pub workflow_instance_id: Option<Uuid>,
|
|
}
|
|
|
|
#[derive(Copy, Clone, Debug, EnumIter, DeriveRelation)]
|
|
pub enum Relation {}
|
|
|
|
impl ActiveModelBehavior for ActiveModel {}
|