feat(server-go): 分子检测扩展(qPCR Ct 判读/SERS 光谱上传/光谱库,#19)

This commit is contained in:
weijuesen
2026-08-12 19:33:05 +08:00
parent afb1df6f10
commit 7bb87dd89c
7 changed files with 323 additions and 0 deletions
+14
View File
@@ -8,6 +8,7 @@ import (
// LampTest LAMP 检测任务单
type LampTest struct {
ID string `gorm:"type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
Method string `gorm:"size:32;default:lamp" json:"method"` // lamp/qpcr/sers/hyperspectral
RoomID *string `gorm:"column:room_id;type:uuid;index" json:"roomId,omitempty"`
BatchID *string `gorm:"column:batch_id;type:uuid;index" json:"batchId,omitempty"`
Diseases json.RawMessage `gorm:"type:jsonb" json:"diseases,omitempty"`
@@ -19,6 +20,7 @@ type LampTest struct {
ResultedAt *time.Time `gorm:"column:resulted_at;type:timestamptz" json:"resultedAt,omitempty"`
CrossStatus string `gorm:"column:cross_status;size:16;default:pending" json:"crossStatus"` // pending/consistent/inconsistent
CrossReason *string `gorm:"column:cross_reason;type:text" json:"crossReason,omitempty"`
ExtraData json.RawMessage `gorm:"column:extra_data;type:jsonb" json:"extraData,omitempty"`
Note *string `gorm:"type:text" json:"note,omitempty"`
CreatedAt time.Time `gorm:"type:timestamptz" json:"createdAt"`
UpdatedAt time.Time `gorm:"type:timestamptz" json:"updatedAt"`
@@ -41,6 +43,18 @@ type LampTestStep struct {
func (LampTestStep) TableName() string { return "lamp_test_steps" }
// SpectrumEntry 光谱库条目
type SpectrumEntry struct {
ID string `gorm:"type:uuid;primaryKey;default:gen_random_uuid()" json:"id"`
Disease string `gorm:"size:64" json:"disease"`
Source *string `gorm:"size:128" json:"source,omitempty"`
DataURL *string `gorm:"column:data_url;size:512" json:"dataUrl,omitempty"`
Note *string `gorm:"type:text" json:"note,omitempty"`
CreatedAt time.Time `gorm:"type:timestamptz" json:"createdAt"`
}
func (SpectrumEntry) TableName() string { return "spectrum_entries" }
// DefaultLampSteps LAMP 标准 5 步流程(规格书 3.3.2.1)
func DefaultLampSteps() []string {
return []string{"采样", "DNA提取", "反应体系配制", "恒温反应", "结果判读"}