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.
303 lines (295 loc) • 9.97 kB
JavaScript
;
var __create = Object.create;
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __getProtoOf = Object.getPrototypeOf;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = (target, all) => {
for (var name in all)
__defProp(target, name, { get: all[name], enumerable: true });
};
var __copyProps = (to, from, except, desc) => {
if (from && typeof from === "object" || typeof from === "function") {
for (let key of __getOwnPropNames(from))
if (!__hasOwnProp.call(to, key) && key !== except)
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
}
return to;
};
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
// If the importer is in node compatibility mode or this is not an ESM
// file that has been converted to a CommonJS file using a Babel-
// compatible transform (i.e. "__esModule" has not been set), then set
// "default" to the CommonJS "module.exports" for node compatibility.
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
mod
));
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
// src/index.ts
var src_exports = {};
__export(src_exports, {
AitriageSdk: () => AitriageSdk
});
module.exports = __toCommonJS(src_exports);
// src/constant/index.ts
var URL_API = {
development: "https://test-aitriage-api.beedu.vn/",
production: "https://api.tiimhealthcare.com/"
};
var constant_default = URL_API;
// src/helper/http.ts
var import_axios = __toESM(require("axios"));
var http = import_axios.default.create({
withCredentials: false
});
http.defaults.headers.put["Content-Type"] = "application/json";
http.interceptors.request.use((request) => {
return request;
});
http.interceptors.response.use(
(response) => {
return response;
},
(error) => {
return Promise.reject(error?.response?.data);
}
);
var http_default = http;
// src/service/assessment.ts
var assessmentService = {
async getListAssessment(query) {
try {
const rs = await http_default.get("aitriage/v2/assessment/list", { params: query });
return Promise.resolve(rs.data.data);
} catch (error) {
return Promise.reject(error);
}
},
async getDetailAssessment(id) {
try {
const rs = await http_default.get(`aitriage/v2/assessment/detail?assessmentId=${id}`);
return Promise.resolve(rs.data.data);
} catch (error) {
return Promise.reject(error);
}
},
async getListSegmentOfAssessment(id) {
try {
const rs = await http_default.get(`aitriage/v2/assessment/segment/detail?assessmentId=${id}`);
return Promise.resolve(rs.data.data);
} catch (error) {
return Promise.reject(error);
}
},
async exportPdfAssessment(id) {
try {
const rs = await http_default.get(`aitriage/v2/assessment/pdf?assessmentId=${id}`, { responseType: "blob" });
return Promise.resolve(rs.data);
} catch (error) {
return Promise.reject(error);
}
}
};
var assessment_default = assessmentService;
// src/service/auth.ts
var authService = {
async loginByApiKey(apiKey, accountNo) {
try {
const rs = await (await http_default.post("authen/v1/auth/login-api-key", { apiKey, accountNo })).data.data;
const { accessToken } = rs;
http_default.defaults.headers.common["Authorization"] = accessToken ? "Bearer " + accessToken : "";
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
};
var auth_default = authService;
// src/service/patient.ts
var patientService = {
async getListPatient(accountId, params) {
try {
const rs = await http_default.get(`aitriage/v1/customer/account/${accountId}/list`, {
params: { ...params, status: "ACTIVE" }
});
return Promise.resolve(rs.data.data);
} catch (error) {
return Promise.reject(error);
}
},
async getDetailPatient(accountId, customerId) {
try {
const rs = await http_default.get(`aitriage/v1/customer/account/${accountId}/detail?customerId=${customerId}`);
return Promise.resolve(rs.data.data);
} catch (error) {
return Promise.reject(error);
}
},
async getListNoteOfPatient(params) {
try {
const rs = await http_default.get(`aitriage/v1/note/list`, { params });
return Promise.resolve(rs.data.data);
} catch (error) {
return Promise.reject(error);
}
}
};
var patient_default = patientService;
// src/package/index.ts
var AitriageSdk = class {
apiKey;
accountNo;
accountId = 0;
/**
* 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, accountNo, mode) {
this.apiKey = apiKey;
this.accountNo = accountNo;
http_default.defaults.baseURL = constant_default[mode];
}
/**
* Logs in using the API key and account number.
* @returns A promise that resolves to the response of the login operation.
*/
async loginByApiKey() {
try {
const rs = await auth_default.loginByApiKey(this.apiKey, this.accountNo);
const { accessToken, accountId } = rs;
this.accountId = accountId;
http_default.defaults.headers.common["Authorization"] = accessToken ? "Bearer " + accessToken : "";
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
/**
* 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.
*/
async getListAssessment(query) {
try {
const rs = await assessment_default.getListAssessment(query);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
/**
* Retrieves the details of an assessment.
* @param id - The ID of the assessment.
* @returns A promise that resolves to the details of the assessment.
*/
async getDetailAssessment(id) {
try {
const rs = await assessment_default.getDetailAssessment(id);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
/**
* 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.
*/
async getListSegmentOfAssessment(id) {
try {
const rs = await assessment_default.getListSegmentOfAssessment(id);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
/**
* Exports the assessment as a PDF.
* @param id - The ID of the assessment.
* @returns A promise that resolves to the exported PDF.
*/
async exportPdfAssessment(id) {
try {
const rs = await assessment_default.exportPdfAssessment(id);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
// async fetchCSVDataECGSegment(url: string) {
// try {
// if (!url) {
// return Promise.reject('url is required')
// }
// const MILLISECOND_FOR_ONE_UNIT = 10
// const csvDataEcg: number[] = []
// const ecgDataSegment: number[][] = []
// Papa.parse(url, {
// download: true,
// complete: function (results: any) {
// for (let i = 0; i < results.data.length; i++) {
// const innerArray = results.data[i]
// for (let j = 0; j < innerArray.length; j++) {
// csvDataEcg.push(+innerArray[j])
// }
// }
// let timeIncrement = 0
// for (let i = 0; i < csvDataEcg.length; i++) {
// const value = csvDataEcg[i] / 1000
// ecgDataSegment.push([timeIncrement, value])
// timeIncrement = timeIncrement + MILLISECOND_FOR_ONE_UNIT
// }
// }
// })
// return Promise.resolve({ ecgDataSegment, csvDataEcg })
// } catch (error) {
// return Promise.reject(error)
// }
// }
/**
* 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.
*/
async getListPatient(query) {
try {
const rs = await patient_default.getListPatient(this.accountId, query);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
/**
* Retrieves the details of a patient.
* @param customerId - The ID of the patient.
* @returns A promise that resolves to the details of the patient.
*/
async getDetailPatient(customerId) {
try {
const rs = await patient_default.getDetailPatient(this.accountId, customerId);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
/**
* 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.
*/
async getListNoteOfPatient(query) {
try {
const rs = await patient_default.getListNoteOfPatient(query);
return Promise.resolve(rs);
} catch (error) {
return Promise.reject(error);
}
}
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
AitriageSdk
});