mirror of
https://github.com/beak-insights/felicity-lims.git
synced 2025-02-25 01:13:01 +08:00
194 lines
4.1 KiB
Python
194 lines
4.1 KiB
Python
from typing import List, Optional
|
|
|
|
from pydantic import ConfigDict
|
|
|
|
from felicity.apps.analysis.schemas import Analysis, SampleType
|
|
from felicity.apps.common.schemas import BaseAuditModel
|
|
|
|
|
|
#
|
|
# ReflexRule Schema
|
|
#
|
|
|
|
# Shared properties
|
|
|
|
|
|
class ReflexRuleBase(BaseAuditModel):
|
|
name: str
|
|
description: str
|
|
sample_types: Optional[List[SampleType]] = []
|
|
|
|
|
|
# Additional properties to return via API
|
|
class ReflexRule(ReflexRuleBase):
|
|
uid: str
|
|
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
# Properties to receive via API on creation
|
|
class ReflexRuleCreate(ReflexRuleBase):
|
|
pass
|
|
|
|
|
|
# Properties to receive via API on update
|
|
class ReflexRuleUpdate(ReflexRuleBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# ReflexBrainAddition Schema
|
|
#
|
|
|
|
# Shared properties
|
|
class ReflexBrainAdditionBase(BaseAuditModel):
|
|
analysis_uid: str
|
|
analysis: Optional[Analysis] = None
|
|
reflex_brain_uid: str
|
|
reflex_brain: Optional["ReflexBrain"] = None
|
|
count: int
|
|
|
|
|
|
# Additional properties to return via API
|
|
class ReflexBrainAddition(ReflexBrainAdditionBase):
|
|
uid: str
|
|
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
# Properties to receive via API on creation
|
|
class ReflexBrainAdditionCreate(ReflexBrainAdditionBase):
|
|
pass
|
|
|
|
|
|
# Properties to receive via API on update
|
|
class ReflexBrainAdditionUpdate(ReflexBrainAdditionBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# ReflexBrainFinal Schema
|
|
#
|
|
|
|
# Shared properties
|
|
class ReflexBrainFinalBase(BaseAuditModel):
|
|
analysis_uid: str
|
|
analysis: Optional[Analysis] = None
|
|
reflex_brain_uid: str
|
|
reflex_brain: Optional["ReflexBrain"] = None
|
|
value: str
|
|
|
|
|
|
# Additional properties to return via API
|
|
class ReflexBrainFinal(ReflexBrainFinalBase):
|
|
uid: str
|
|
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
# Properties to receive via API on creation
|
|
class ReflexBrainFinalCreate(ReflexBrainFinalBase):
|
|
pass
|
|
|
|
|
|
# Properties to receive via API on update
|
|
class ReflexBrainFinalUpdate(ReflexBrainFinalBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# ReflexBrainCriteria Schema
|
|
#
|
|
|
|
# Shared properties
|
|
class ReflexBrainCriteriaBase(BaseAuditModel):
|
|
analysis_uid: str
|
|
analysis: Optional[Analysis] = None
|
|
reflex_brain_uid: str
|
|
reflex_brain: Optional["ReflexBrain"] = None
|
|
value: str
|
|
|
|
|
|
# Additional properties to return via API
|
|
class ReflexBrainCriteria(ReflexBrainCriteriaBase):
|
|
uid: str
|
|
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
# Properties to receive via API on creation
|
|
class ReflexBrainCriteriaCreate(ReflexBrainCriteriaBase):
|
|
pass
|
|
|
|
|
|
# Properties to receive via API on update
|
|
class ReflexBrainCriteriaUpdate(ReflexBrainCriteriaBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# ReflexBrain Schema
|
|
#
|
|
|
|
# Shared properties
|
|
class ReflexBrainBase(BaseAuditModel):
|
|
reflex_action_uid: str
|
|
reflex_action: Optional["ReflexAction"] = None
|
|
description: str | None
|
|
analyses_values: Optional[List[ReflexBrainCriteria]] = None
|
|
add_new: Optional[List[ReflexBrainAddition]] = None
|
|
finalise: Optional[List[ReflexBrainFinal]] = None
|
|
|
|
|
|
# Additional properties to return via API
|
|
class ReflexBrain(ReflexBrainBase):
|
|
uid: str | None = None
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
# Properties to receive via API on creation
|
|
class ReflexBrainCreate(ReflexBrainBase):
|
|
pass
|
|
|
|
|
|
# Properties to receive via API on update
|
|
class ReflexBrainUpdate(ReflexBrainBase):
|
|
pass
|
|
|
|
|
|
#
|
|
# ReflexBrain Schema
|
|
#
|
|
|
|
# Shared properties
|
|
class ReflexActionBase(BaseAuditModel):
|
|
level: int
|
|
description: str | None
|
|
reflex_rule_uid: str
|
|
reflex_rule: Optional[ReflexRule] = None
|
|
brains: Optional[List[ReflexBrain]] = None
|
|
analyses: Optional[List[Analysis]] = []
|
|
sample_type_uid: str | None
|
|
sample_type: Optional[SampleType] = None
|
|
|
|
|
|
# Additional properties to return via API
|
|
class ReflexAction(ReflexActionBase):
|
|
uid: str | None = None
|
|
|
|
model_config = ConfigDict(from_attributes=True)
|
|
|
|
|
|
# Properties to receive via API on creation
|
|
class ReflexActionCreate(ReflexActionBase):
|
|
pass
|
|
|
|
|
|
# Properties to receive via API on update
|
|
class ReflexActionUpdate(ReflexActionBase):
|
|
pass
|