felicity-lims/webapp/models/reflex.ts

86 lines
2.2 KiB
TypeScript
Raw Normal View History

2023-11-10 14:05:15 +08:00
import { IAnalysisService, ISampleType } from './analysis';
2024-07-24 17:04:53 +08:00
import { IUser } from './auth';
2023-11-10 14:05:15 +08:00
export interface IReflexRule {
uid?: string;
name?: string;
description?: string;
reflexActions: IReflexAction[];
createdByUid?: string;
createdBy?: IUser;
createdAt?: string;
}
export interface IReflexBrainCondition {
uid?: string;
2023-11-10 14:05:15 +08:00
reflexBrainUid?: string;
reflexBrain?: IReflexBrain;
description?: string;
criteria?: IReflexBrainConditionCriteria[];
priority?: number;
}
export interface IReflexBrainConditionCriteria {
analysisUid?: string;
analysis?: IAnalysisService;
reflexBrainConditionUid?: string;
reflexBrainCondition?: IReflexBrainCondition;
2023-11-10 14:05:15 +08:00
operator?: string;
value?: number;
}
export interface IReflexBrainAddition {
analysisUid?: string;
analysis?: IAnalysisService;
reflexBrainActionUid?: string;
reflexBrainAction?: IReflexBrainAction;
2023-11-10 14:05:15 +08:00
count?: number;
}
export interface IReflexBrainFinal {
analysisUid?: string;
analysis?: IAnalysisService;
reflexBrainActionUid?: string;
reflexBrainAction?: IReflexBrainAction;
2023-11-10 14:05:15 +08:00
value?: string;
}
export interface IReflexBrain {
uid?: string;
reflexActionUid?: string;
reflexAction?: IReflexBrain;
conditions?: IReflexBrainCondition[];
actions?: IReflexBrainAction[];
2023-11-10 14:05:15 +08:00
description?: string;
priority?: number;
2023-11-10 14:05:15 +08:00
createdByUid?: string;
createdBy?: IUser;
createdAt?: string;
}
export interface IReflexBrainAction {
uid?: string;
reflexBrainUid?: string;
reflexBrain?: IReflexBrain;
description?: string;
addNew?: IReflexBrainAddition[];
finalise?: IReflexBrainFinal[];
priority?: number;
}
2023-11-10 14:05:15 +08:00
export interface IReflexAction {
uid?: string;
level?: number;
description?: string;
analysisUid?: string;
analyses?: IAnalysisService[];
sampleTypeUid?: string;
sampleType?: ISampleType;
reflexRuleUid?: string;
reflexRule?: IReflexRule;
brains?: IReflexBrain[];
createdByUid?: string;
createdBy?: IUser;
createdAt?: string;
}