felicity-lims/webapp/models/reflex.ts

86 lines
No EOL
2.2 KiB
TypeScript

import { IAnalysisService, ISampleType } from './analysis';
import { IUser } from './auth';
export interface IReflexRule {
uid?: string;
name?: string;
description?: string;
reflexActions: IReflexAction[];
createdByUid?: string;
createdBy?: IUser;
createdAt?: string;
}
export interface IReflexBrainCondition {
uid?: string;
reflexBrainUid?: string;
reflexBrain?: IReflexBrain;
description?: string;
criteria?: IReflexBrainConditionCriteria[];
priority?: number;
}
export interface IReflexBrainConditionCriteria {
analysisUid?: string;
analysis?: IAnalysisService;
reflexBrainConditionUid?: string;
reflexBrainCondition?: IReflexBrainCondition;
operator?: string;
value?: number;
}
export interface IReflexBrainAddition {
analysisUid?: string;
analysis?: IAnalysisService;
reflexBrainActionUid?: string;
reflexBrainAction?: IReflexBrainAction;
count?: number;
}
export interface IReflexBrainFinal {
analysisUid?: string;
analysis?: IAnalysisService;
reflexBrainActionUid?: string;
reflexBrainAction?: IReflexBrainAction;
value?: string;
}
export interface IReflexBrain {
uid?: string;
reflexActionUid?: string;
reflexAction?: IReflexBrain;
conditions?: IReflexBrainCondition[];
actions?: IReflexBrainAction[];
description?: string;
priority?: number;
createdByUid?: string;
createdBy?: IUser;
createdAt?: string;
}
export interface IReflexBrainAction {
uid?: string;
reflexBrainUid?: string;
reflexBrain?: IReflexBrain;
description?: string;
addNew?: IReflexBrainAddition[];
finalise?: IReflexBrainFinal[];
priority?: number;
}
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;
}