UNPKG

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
"use strict"; 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 });