feat(server-go): 疫病溯源三级模型与接口(#21,一级自动溯源/二级清单/三级备注)
This commit is contained in:
@@ -41,6 +41,8 @@ var AllPermissions = []PermissionDef{
|
||||
{"consumable:write", "耗材管理", "新增、编辑、删除耗材"},
|
||||
{"consultation:read", "会诊查看", "查看专家会诊单与病例快照"},
|
||||
{"consultation:write", "会诊管理", "发起会诊、出具意见与防控方案"},
|
||||
{"trace:read", "溯源查看", "查看疫病溯源记录与报告"},
|
||||
{"trace:write", "溯源管理", "发起溯源、执行排查清单与报告"},
|
||||
{"user:manage", "用户管理", "管理用户、角色和权限"},
|
||||
{"audit:read", "审计查看", "查看审计日志"},
|
||||
}
|
||||
@@ -59,6 +61,7 @@ var RolePermissionMap = map[string][]string{
|
||||
"lamp:read", "lamp:write",
|
||||
"consumable:read", "consumable:write",
|
||||
"consultation:read", "consultation:write",
|
||||
"trace:read", "trace:write",
|
||||
"user:manage", "audit:read",
|
||||
},
|
||||
RoleOperator: {
|
||||
@@ -73,6 +76,7 @@ var RolePermissionMap = map[string][]string{
|
||||
"lamp:read", "lamp:write",
|
||||
"consumable:read", "consumable:write",
|
||||
"consultation:read", "consultation:write",
|
||||
"trace:read", "trace:write",
|
||||
},
|
||||
RoleViewer: {
|
||||
"dashboard:view", "room:read", "device:read",
|
||||
@@ -85,6 +89,7 @@ var RolePermissionMap = map[string][]string{
|
||||
"lamp:read",
|
||||
"consumable:read",
|
||||
"consultation:read",
|
||||
"trace:read",
|
||||
},
|
||||
RoleFarmer: {
|
||||
"dashboard:view", "room:read", "device:read", "device:control",
|
||||
@@ -97,5 +102,6 @@ var RolePermissionMap = map[string][]string{
|
||||
"lamp:read",
|
||||
"consumable:read",
|
||||
"consultation:read",
|
||||
"trace:read",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TraceRecord 疫病溯源记录(规格书 3.8:三级溯源)
|
||||
type TraceRecord struct {
|
||||
ID string `gorm:"type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
|
||||
RoomID *string `gorm:"column:room_id;type:uuid;index" json:"roomId,omitempty"`
|
||||
LampTestID *string `gorm:"column:lamp_test_id;type:uuid;index" json:"lampTestId,omitempty"`
|
||||
ConsultationID *string `gorm:"column:consultation_id;type:uuid;index" json:"consultationId,omitempty"`
|
||||
Disease string `gorm:"size:64" json:"disease"`
|
||||
Status string `gorm:"size:16;default:pending" json:"status"` // pending/reported/analysis/archived
|
||||
Origin *string `gorm:"size:32" json:"origin,omitempty"` // internal/external/unknown
|
||||
Confidence *float64 `gorm:"type:float" json:"confidence,omitempty"`
|
||||
AutoReport json.RawMessage `gorm:"column:auto_report;type:jsonb" json:"autoReport,omitempty"` // 一级初报
|
||||
Checklist json.RawMessage `gorm:"type:jsonb" json:"checklist,omitempty"` // 二级排查清单
|
||||
AnalysisReport json.RawMessage `gorm:"column:analysis_report;type:jsonb" json:"analysisReport,omitempty"` // 二级报告
|
||||
ExpertNote *string `gorm:"column:expert_note;type:text" json:"expertNote,omitempty"` // 三级-专家
|
||||
LabNote *string `gorm:"column:lab_note;type:text" json:"labNote,omitempty"` // 三级-实验室
|
||||
CreatedAt time.Time `gorm:"type:timestamptz" json:"createdAt"`
|
||||
UpdatedAt time.Time `gorm:"type:timestamptz" json:"updatedAt"`
|
||||
RoomName *string `gorm:"-" json:"roomName,omitempty"`
|
||||
}
|
||||
|
||||
func (TraceRecord) TableName() string { return "trace_records" }
|
||||
Reference in New Issue
Block a user