felicity-lims/webapp/models/analysis.ts

265 lines
6.3 KiB
TypeScript
Raw Normal View History

2024-01-24 01:13:37 +08:00
import { IUser } from './auth';
2023-11-10 14:05:15 +08:00
import { IClient, IClientContact } from './client';
import { IPatient } from './patient';
2024-02-16 23:48:19 +08:00
import { IInstrument, ILaboratoryInstrument, IMethod, IUnit, IDepartment } from './setup';
2023-11-10 14:05:15 +08:00
import { IStorageContainer } from './storage';
export interface ICodingStandard {
uid?: string;
name?: string;
description?: string;
}
export interface ISampleType {
uid?: string;
name?: string;
abbr?: string;
description?: string;
active?: boolean;
}
export interface IAnalysisService {
uid?: string;
name?: string;
keyword?: string;
description?: string;
unitUid?: string;
unit?: IUnit;
departmentUid?: string;
sampleTypes?: ISampleType[] | number[];
profiles?: IAnalysisProfile[];
category?: IAnalysisCategory;
resultOptions?: IResultOption[];
interims?: IAnalysisInterim[];
correctionFactors?: IAnalysisCorrectionFactor[];
specifications?: IAnalysisSpecification[];
detectionLimits?: IAnalysisDetectionLimit[];
uncertainties?: IAnalysisUncertainty[];
instruments?: IInstrument[];
methods?: IMethod[] | number[];
categoryUid?: string;
sortKey?: number;
active?: boolean;
internalUse?: boolean;
tatLengthMinutes: number;
precision: number;
requiredVerifications: number;
selfVerification: boolean;
checked?: boolean;
}
export interface IAnalysisResult {
uid?: string;
analysisUid?: string;
analysis?: IAnalysisService;
2024-02-16 23:48:19 +08:00
laboratoryInstrumentUid?: string;
laboratoryInstrument?: ILaboratoryInstrument;
2023-11-10 14:05:15 +08:00
methodUid?: string;
method?: IMethod;
worksheetPosition?: number;
sampleUid?: string;
sample?: ISample;
status?: string;
result?: string;
retest?: boolean;
reportable?: boolean;
2024-01-24 01:13:37 +08:00
submittedBy?: IUser;
dateSubmitted?: string;
verifiedBy?: IUser[];
dateVerified?: string;
dueDate?: string;
2023-11-10 14:05:15 +08:00
editResult?: string;
createdAt?: string;
checked?: boolean;
editable?: boolean;
}
export interface IAnalysisCategory {
uid?: string;
name?: string;
description?: string;
departmentUid?: string;
department?: IDepartment;
active?: boolean;
}
export interface IAnalysisProfile {
uid?: string;
name?: string;
description?: string;
keyword?: string;
departmentUid?: string;
2024-06-03 03:49:57 +08:00
analyses?: IAnalysisService[] | string[];
sampleTypes?: ISampleType[] | string[];
active?: boolean;
}
export interface IAnalysisTemplate {
uid?: string;
name?: string;
description?: string;
departmentUid?: string;
analyses?: IAnalysisService[] | string[];
2023-11-10 14:05:15 +08:00
active?: boolean;
}
export interface IQCRequest {
qcTemplateUid?: string;
qcLevels?: string[]; // uids
analysisProfiles?: string[]; // uids
analysisServices?: string[]; // uids
}
export interface IQCLevel {
uid?: string;
level?: string;
}
export interface IQCTemplate {
uid?: string;
name?: string;
description?: string;
qcLevels?: IQCLevel[];
departments?: any[];
category?: string;
}
export interface IResultOption {
uid?: string;
analysisUid?: string;
optionKey?: number;
value?: string;
2024-02-16 23:48:19 +08:00
sampleTypes?: ISampleType[];
2023-11-10 14:05:15 +08:00
}
export interface ISample {
uid?: string;
sampleId?: string;
sampleType?: ISampleType | undefined;
profiles?: IAnalysisProfile[];
analyses?: IAnalysisService[];
assigned?: boolean;
qcLevel?: IQCLevel;
analysisRequest?: IAnalysisRequest;
analysisResults?: IAnalysisResult[];
rejectionReasons?: IRejectionReason[];
status?: string;
priority?: number;
checked?: boolean;
dateReceived?: string;
receivedBy?: any;
dateCollected?: string;
dateSubmitted?: string;
submittedBy?: any;
dateVerified?: string;
verifiedBy?: any;
datePublished?: string;
datePrinted?: string;
printedBy?: any;
dateInvalidated?: string;
invalidatedBy?: any;
dateCancelled?: string;
cancelledBy?: any;
dueDate?: string;
dateStored?: string;
storageContainerUid: string;
storageContainer: IStorageContainer;
storageSlotIndex: number;
storageSlot: string;
createdByUid?: string;
createdBy?: any;
createdAt?: string;
updatedByUid?: string;
updatedBy?: any;
updatedAt?: string;
}
export interface IAnalysisRequest {
uid?: string;
clinicalData?: string;
patient?: IPatient;
cientUid?: string;
client?: IClient;
clientContactUid?: string;
clientContact?: IClientContact;
clientName?: string;
samples?: ISample[];
2023-12-20 02:01:46 +08:00
requestId?: string;
2023-11-10 14:05:15 +08:00
clientRequestId?: string;
priority?: number;
createdAt?: Date;
}
export interface IQCSet {
uid?: string;
name?: string;
samples?: ISample[];
analytes?: IAnalysisService;
createdByUid?: string;
createdBy?: any;
createdAt?: string;
updatedByUid?: string;
updatedBy?: any;
updatedAt?: string;
}
export interface IRejectionReason {
uid?: string;
reason?: string;
}
export interface IAnalysisInterim {
uid?: string;
key?: number;
value?: string;
analysisUid?: string;
instrumentUid?: string;
}
export interface IAnalysisCorrectionFactor {
uid?: string;
factor?: string;
analysisUid?: string;
instrumentUid?: string;
methodUid?: string;
}
export interface IAnalysisDetectionLimit {
uid?: string;
lowerLimit?: number;
upperLimit?: number;
analysisUid?: string;
instrumentUid?: string;
methodUid?: string;
}
export interface IAnalysisUncertainty {
uid?: string;
min?: number;
max?: number;
value?: number;
analysisUid?: string;
instrumentUid?: string;
methodUid?: string;
}
export interface IAnalysisSpecification {
uid?: string;
analysisUid?: string;
unitUid?: string;
unit?: IUnit[];
min?: number;
max?: number;
minWarn?: number;
maxWarn?: number;
minReport?: string;
maxReport?: string;
warnValues?: string;
warnReport?: string;
gender?: string;
ageMin?: number;
ageMax?: number;
methodUid?: string;
}