Files

62 lines
3.4 KiB
Go
Raw Permalink Normal View History

2026-08-14 21:50:48 +08:00
package entity
import "time"
// EMR 电子病历实体(对应数据库表 emr
type EMR struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
PatientID string `json:"patient_id" gorm:"index;not null"`
DoctorID string `json:"doctor_id" gorm:"index"`
Draft string `json:"draft" gorm:"type:text"` // 病历全文
Structured string `json:"structured" gorm:"type:json"` // 结构化字段(JSON)
Status string `json:"status" gorm:"index"` // success/need_revision/draft
SessionID string `json:"session_id" gorm:"index"` // Agent会话ID
IsFinal bool `json:"is_final" gorm:"default:false"` // 是否为最终版
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
// Prescription 处方实体(对应数据库表 prescription
type Prescription struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
PatientID string `json:"patient_id" gorm:"index;not null"`
DoctorID string `json:"doctor_id" gorm:"index"`
SessionID string `json:"session_id" gorm:"index"`
Draft string `json:"draft" gorm:"type:text"` // 处方全文
FormulaName string `json:"formula_name"` // 方剂名
Herbs string `json:"herbs" gorm:"type:json"` // 药材列表(JSON)
Status string `json:"status" gorm:"index"` // success/blocked/need_review
Blocked bool `json:"blocked" gorm:"default:false"` // 是否被规则拦截
Warnings string `json:"warnings" gorm:"type:json"` // 警告列表(JSON)
Approved bool `json:"approved" gorm:"default:false"` // 医生是否已审核
ApprovedBy string `json:"approved_by"` // 审核医生ID
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
// AuditLog 审计日志实体(对应数据库表 audit_log
// 记录所有关键操作,满足医疗合规要求
type AuditLog struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
Action string `json:"action" gorm:"index"` // emr_create/emr_update/rx_generate/rx_approve
UserID string `json:"user_id" gorm:"index"` // 操作人
TargetType string `json:"target_type"` // emr/prescription
TargetID string `json:"target_id" gorm:"index"` // 目标ID
Detail string `json:"detail" gorm:"type:text"` // 操作详情
IPAddress string `json:"ip_address"` // 操作IP
CreatedAt time.Time `json:"created_at"`
}
// KnowledgeDoc 知识库文档实体(对应数据库表 knowledge_doc
type KnowledgeDoc struct {
ID int64 `json:"id" gorm:"primaryKey;autoIncrement"`
Title string `json:"title" gorm:"index"`
Category string `json:"category" gorm:"index"` // 方剂/药典/指南/病历模板
Content string `json:"content" gorm:"type:longtext"`
Source string `json:"source"` // 来源
MaxKBID string `json:"maxkb_id"` // MaxKB中的文档ID
Status string `json:"status" gorm:"default:pending"` // pending/vectorized/failed
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}