aitriage-sdk-dev
Version:
A JavaScript SDK for seamless integration with the Aitriage API. Provides methods for authentication, assessment management, patient data retrieval, and more.
464 lines (461 loc) • 12.3 kB
TypeScript
interface IResponse<T> {
status: string;
data: T;
statusCode: string;
message: string;
}
interface IResponseData<T> {
content: T;
totalElements: number;
}
interface IResponseValidateApiKey {
id: number;
accountId: number;
accessToken: string;
refreshToken: string;
loginStatus: string;
avatar: string;
username: string;
firstName: string;
lastName: string;
fullName: string;
countryCode: string;
status: string;
notifyExpireDate: string;
}
interface IQuery {
page: number;
limit: number;
search?: string;
locationId: number;
}
type RiskCategory = 'LOW' | 'MEDIUM' | 'HIGH';
type Gender = 'MALE' | 'FEMALE';
type IAssessmentStatus = 'COMPLETED' | 'RECORDING_DATA' | 'ANALYSING_DATA';
interface IQueryAssessment extends IQuery {
riskCategory?: RiskCategory;
gender?: Gender;
createdFrom?: string;
createdTo?: string;
fromAge?: number | string;
toAge?: number | string;
customerId?: string;
}
interface IAssessment {
id: number;
customerId: number;
customerCode: string;
fullName: string;
firstName: string;
lastName: string;
idNumber: number;
phone: string;
email: string;
yearOld: number;
avatar: string;
gender: string;
raceId: number;
cityId: number;
cityName: string;
doctorId: number;
doctorName: string;
assessmentDate: string;
assessmentDuration: number;
assessmentStatus: IAssessmentStatus;
vitalMeanHr: number;
vitalMaxHr: number;
vitalMinHr: number;
vitalRespRate: number;
vitalSpo2: number;
vitalNibpSys: number;
vitalNibpDia: number;
vitalNibp: number;
vitalFio2: number;
vitalTemp: number;
hearScoreHistory: string;
hearScoreEcg: string;
hearScoreRiskFactor: string;
hearScoreAge: string;
hrvTimeMean: number;
hrvTimeMedian: number;
hrvTimeSdnn: number;
hrvTimeNn50: number;
hrvTimePnn50: number;
hrvTimeNnx: number;
hrvTimePnnx: number;
hrvTimeRmssd: number;
hrvTimeNnskew: number;
hrvTimeNnkurt: number;
hrvTimeMeanhr: number;
hrvTimeSdhr: number;
hrvTimeHrvti: number;
hrvTimeTinn: number;
hrvFreqPeakvlf: number;
hrvFreqPeaklf: number;
hrvFreqPeakhf: number;
hrvFreqPvlf: number;
hrvFreqPlf: number;
hrvFreqPhf: number;
hrvFreqPtotal: number;
hrvFreqNlf: number;
hrvFreqNhf: number;
hrvFreqLfhf: number;
hrvFreqVlfper: number;
hrvFreqLfper: number;
hrvFreqHfper: number;
hrvNlSd1: number;
hrvNlSd2: number;
hrvNlSd12Ratio: number;
hrvNlAentropy: number;
hrvNlSentropy: number;
hrvNlAlpha1: number;
hrvNlAlpha2: number;
hrnvMad: number;
hrnvKfd: number;
hrnvZug: number;
hrnvHuey: number;
hrnvHann: number;
hrnvHfd5: number;
hrnvHfd10: number;
hrnvHfd20: number;
hrnvHfd30: number;
hrnvHfd40: number;
hrnvIbi: number[];
hrnvHistIbiValue: number[];
hrnvHistIbiNum: number[];
hrnvPsd: number[];
hrnvF: number[];
ecgDataUrl: string;
riskScore: number;
riskScoreCategory: string;
riskScoreStatus: string;
dispStatus: string;
deviceId: number;
deviceType: string;
deviceOs: string;
deviceName: string;
appVersion: string;
locationId: number;
accountId: number;
accountNo: string;
createdBy: number;
updatedBy: number;
deletedBy: number;
createdAt: string;
updatedAt: number;
deletedAt: number;
hrnvIbiDouble: number[];
hrnvHistIbiValueDouble: number[];
hrnvHistIbiNumDouble: number[];
hrnvPsdDouble: number[];
hrnvFDouble: number[];
raceName: string;
}
interface IAssessmentRiskCategory {
high: number;
low: number;
medium: number;
total: number;
}
interface IAssessmentList {
assessmentPage: IResponseData<IAssessment[]>;
assessmentRiskCategory: IAssessmentRiskCategory;
}
interface IDetailAssessment {
id: number;
customerId: number;
customerCode: string;
fullName: string;
firstName: any;
lastName: any;
idNumber: any;
phone: string;
email: string;
yearOld: number;
avatar: any;
gender: string;
raceId: number;
cityId: number;
cityName: string;
doctorId: number;
doctorName: string;
assessmentDate: string;
assessmentDuration: any;
vitalMeanHr: number;
vitalMaxHr: any;
vitalMinHr: any;
vitalRespRate: number;
vitalSpo2: number;
vitalNibpSys: number;
vitalNibpDia: number;
vitalNibp: any;
vitalFio2: any;
vitalTemp: any;
hearScoreHistory: string;
hearScoreEcg: string;
hearScoreRiskFactor: string;
hearScoreAge: string;
hrvTimeMean: number;
hrvTimeMedian: number;
hrvTimeSdnn: number;
hrvTimeNn50: number;
hrvTimePnn50: number;
hrvTimeNnx: number;
hrvTimePnnx: number;
hrvTimeRmssd: number;
hrvTimeNnskew: number;
hrvTimeNnkurt: number;
hrvTimeMeanhr: number;
hrvTimeSdhr: number;
hrvTimeHrvti: number;
hrvTimeTinn: number;
hrvFreqPeakvlf: number;
hrvFreqPeaklf: number;
hrvFreqPeakhf: number;
hrvFreqPvlf: number;
hrvFreqPlf: number;
hrvFreqPhf: number;
hrvFreqPtotal: number;
hrvFreqNlf: number;
hrvFreqNhf: number;
hrvFreqLfhf: number;
hrvFreqVlfper: number;
hrvFreqLfper: number;
hrvFreqHfper: number;
hrvNlSd1: number;
hrvNlSd2: number;
hrvNlSd12Ratio: number;
hrvNlAentropy: number;
hrvNlSentropy: number;
hrvNlAlpha1: number;
hrvNlAlpha2: number;
hrnvMad: number;
hrnvKfd: number;
hrnvZug: number;
hrnvHuey: number;
hrnvHann: number;
hrnvHfd5: number;
hrnvHfd10: number;
hrnvHfd20: number;
hrnvHfd30: number;
hrnvHfd40: number;
hrnvIbi: number[];
hrnvHistIbiValue: number[];
hrnvHistIbiNum: number[];
hrnvPsd: number[];
hrnvF: number[];
ecgDataUrl: string;
riskScore: number;
riskScoreCategory: string;
assessmentStatus: string;
dispStatus: string;
deviceId: number;
deviceType: string;
deviceOs: string;
deviceName: string;
appVersion: any;
locationId: number;
accountId: number;
accountNo: string;
createdBy: number;
updatedBy: number;
deletedBy: any;
createdAt: string;
updatedAt: string;
deletedAt: any;
result: any;
hrnvIbiDouble: number[];
hrnvHistIbiValueDouble: number[];
hrnvHistIbiNumDouble: number[];
hrnvPsdDouble: number[];
hrnvFDouble: number[];
raceName: string;
}
interface IListSegmentOfAssessment {
list: ListSegment[];
summary: SummarySegment;
}
interface ListSegment {
segmentId: number;
time: string;
note: any;
segment: number;
segmentStatus: string;
originSegmentStatus: string;
heartRate: number;
ecgDataUrl: string;
ecgLeadIUrl: any;
ecgLeadIIUrl: string;
ecgLeadIIIUrl: any;
ecgLeadAvrUrl: any;
ecgLeadAvlUrl: any;
ecgLeadAvfUrl: any;
ecgLeadV1Url: any;
ecgLeadV2Url: any;
ecgLeadV3Url: any;
ecgLeadV4Url: any;
ecgLeadV5Url: any;
ecgLeadV6Url: any;
}
interface SummarySegment {
total: number;
totalNormal: number;
totalAbnormal: number;
}
type MODE = 'development' | 'production';
interface IQueryPatient extends IQuery {
createdFrom?: string;
createdTo?: string;
fromAge?: string | number;
gender?: Gender;
lastAssessmentDateFrom?: string;
lastAssessmentDateTo?: string;
toAge?: string | number;
}
interface IPatient {
id: number;
code: string;
fullName: string;
firstName: any;
lastName: any;
idNumber: any;
phoneCode: string;
phone: string;
phoneVerified: any;
phoneExt1: any;
phoneExt2: any;
email: string;
emailVerified: any;
emailExt1: any;
emailExt2: any;
briefInfo: any;
birthday: any;
yearOfBirth: number;
avatar: any;
gender: string;
marriedStatus: any;
categoryIds: any;
raceId: number;
nationalityId: number;
countryId: number;
stateId: number;
cityId: any;
districtId: any;
wardId: any;
address: string;
zipCode: any;
refCustomerId: any;
refCustomerFullName: any;
description: string;
lastActivityDate: any;
dispStatus: string;
locationId: number;
accountId: number;
accountNo: string;
createdBy: number;
updatedBy: any;
deletedBy: any;
createdAt: string;
updatedAt: any;
deletedAt: any;
raceName: string;
cityName: any;
countryName: string;
stateName: string;
nationalityName: string;
age: number;
}
interface IResponseApiListPatient {
customers: IResponseData<IPatient[]>;
totalFemale: number;
totalMale: number;
}
interface IQueryListNote extends IQuery {
customerId: string;
}
interface INote {
id: number;
noteType: string;
title: any;
description: string;
logUserId: number;
logFullName: string;
assessmentId: number;
customerId: number;
customerCode: string;
customerFullName: string;
dispStatus: string;
locationId: number;
accountId: number;
accountNo: string;
createdBy: number;
updatedBy: any;
deletedBy: any;
createdAt: string;
updatedAt: any;
deletedAt: any;
}
/**
* Represents the Aitriage SDK.
* This class provides methods to interact with the Aitriage API.
*/
declare class AitriageSdk {
private apiKey;
private accountNo;
private accountId;
/**
* Creates an instance of the AitriageSdk class.
* @param apiKey - The API key for authentication.
* @param accountNo - The account number.
* @param mode - The mode of the SDK (development or production). Default is 'development'.
*/
constructor(apiKey: string, accountNo: string, mode: MODE);
/**
* Logs in using the API key and account number.
* @returns A promise that resolves to the response of the login operation.
*/
loginByApiKey(): Promise<IResponseValidateApiKey>;
/**
* Retrieves a list of assessments based on the specified query.
* @param query - The query parameters for filtering the assessments.
* @returns A promise that resolves to the list of assessments.
*/
getListAssessment(query: IQueryAssessment): Promise<IAssessmentList>;
/**
* Retrieves the details of an assessment.
* @param id - The ID of the assessment.
* @returns A promise that resolves to the details of the assessment.
*/
getDetailAssessment(id: number): Promise<IDetailAssessment>;
/**
* Retrieves a list of segments for an assessment.
* @param id - The ID of the assessment.
* @returns A promise that resolves to the list of segments.
*/
getListSegmentOfAssessment(id: string): Promise<IListSegmentOfAssessment>;
/**
* Exports the assessment as a PDF.
* @param id - The ID of the assessment.
* @returns A promise that resolves to the exported PDF.
*/
exportPdfAssessment(id: string): Promise<Blob>;
/**
* Retrieves a list of patients based on the specified query.
* @param query - The query parameters for filtering the patients.
* @returns A promise that resolves to the list of patients.
*/
getListPatient(query: IQueryPatient): Promise<IResponseApiListPatient>;
/**
* Retrieves the details of a patient.
* @param customerId - The ID of the patient.
* @returns A promise that resolves to the details of the patient.
*/
getDetailPatient(customerId: string): Promise<IPatient>;
/**
* Retrieves a list of notes for a patient.
* @param query - The query parameters for filtering the notes.
* @returns A promise that resolves to the list of notes.
*/
getListNoteOfPatient(query: IQueryListNote): Promise<IResponseData<INote[]>>;
}
export { AitriageSdk, type IAssessment, type IAssessmentList, type IAssessmentRiskCategory, type IDetailAssessment, type IListSegmentOfAssessment, type INote, type IPatient, type IQueryAssessment, type IQueryListNote, type IQueryPatient, type IResponse, type IResponseApiListPatient, type IResponseData, type IResponseValidateApiKey, type ListSegment, type MODE, type SummarySegment };