196 lines
5.6 KiB
TypeScript
196 lines
5.6 KiB
TypeScript
/*
|
|
* File: patientAPI.ts
|
|
* Description: API service for patient care operations using apisauce
|
|
* Design & Developed by Tech4Biz Solutions
|
|
* Copyright (c) Spurrin Innovations. All rights reserved.
|
|
*/
|
|
|
|
import { create } from 'apisauce';
|
|
import { API_CONFIG, buildHeaders } from '../../../shared/utils';
|
|
|
|
const api = create({
|
|
baseURL: API_CONFIG.BASE_URL
|
|
});
|
|
|
|
/**
|
|
* Patient API Service
|
|
*
|
|
* Purpose: Handle all patient-related API operations
|
|
*
|
|
* Features:
|
|
* - Get patient list with filtering
|
|
* - Get individual patient details
|
|
* - Update patient information
|
|
* - Get patient vital signs
|
|
* - Get patient medical history
|
|
*/
|
|
export const patientAPI = {
|
|
/**
|
|
* Get Patients
|
|
*
|
|
* Purpose: Fetch list of medical cases from server
|
|
*
|
|
* @param token - Authentication token
|
|
* @returns Promise with medical cases data
|
|
*/
|
|
getPatients: (token: string) => {
|
|
return api.get('/api/ai-cases/all-patients', {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Get Patient Details by ID
|
|
*
|
|
* Purpose: Fetch detailed information for a specific patient by ID
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param token - Authentication token
|
|
* @returns Promise with patient details including predictions and series
|
|
*/
|
|
getPatientDetailsById: (patientId: string, token: string) => {
|
|
return api.get(`/api/ai-cases/patient/${patientId}/predictions`, {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Get Patient Details (Legacy - kept for backward compatibility)
|
|
*
|
|
* Purpose: Fetch detailed information for a specific patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param token - Authentication token
|
|
* @returns Promise with patient details
|
|
*/
|
|
getPatientDetails: (patientId: string, token: string) => {
|
|
return api.get(`/api/ai-cases/patient/${patientId}/predictions`, {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Update Patient
|
|
*
|
|
* Purpose: Update patient information
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param patientData - Updated patient data
|
|
* @param token - Authentication token
|
|
* @returns Promise with updated patient data
|
|
*/
|
|
updatePatient: (patientId: string, patientData: any, token: string) => {
|
|
return api.put(`/api/patients/${patientId}`, patientData, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Get Patient Vital Signs
|
|
*
|
|
* Purpose: Fetch latest vital signs for a patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param token - Authentication token
|
|
* @returns Promise with vital signs data
|
|
*/
|
|
getPatientVitals: (patientId: string, token: string) => {
|
|
return api.get(`/api/patients/${patientId}/vitals`, {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Update Patient Vital Signs
|
|
*
|
|
* Purpose: Add new vital signs reading for a patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param vitalSigns - Vital signs data
|
|
* @param token - Authentication token
|
|
* @returns Promise with updated vital signs
|
|
*/
|
|
updatePatientVitals: (patientId: string, vitalSigns: any, token: string) => {
|
|
return api.put(`/api/patients/${patientId}/vitals`, vitalSigns, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Submit Feedback for AI Prediction
|
|
*
|
|
* Purpose: Submit physician feedback for AI predictions
|
|
*
|
|
* @param feedbackData - Feedback payload
|
|
* @returns API response
|
|
*/
|
|
submitFeedback: (feedbackData: {
|
|
patid: string;
|
|
prediction_id: number;
|
|
feedback_text: string;
|
|
is_positive: boolean;
|
|
},token) => api.post('/api/ai-cases/feedbacks', feedbackData, buildHeaders({ token })),
|
|
|
|
/**
|
|
* Get Patient Medical History
|
|
*
|
|
* Purpose: Fetch medical history for a patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param token - Authentication token
|
|
* @returns Promise with medical history data
|
|
*/
|
|
getPatientHistory: (patientId: string, token: string) => {
|
|
return api.get(`/api/patients/${patientId}/history`, {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Get Patient Medications
|
|
*
|
|
* Purpose: Fetch current medications for a patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param token - Authentication token
|
|
* @returns Promise with medications data
|
|
*/
|
|
getPatientMedications: (patientId: string, token: string) => {
|
|
return api.get(`/api/patients/${patientId}/medications`, {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Add Patient Medication
|
|
*
|
|
* Purpose: Add new medication for a patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param medication - Medication data
|
|
* @param token - Authentication token
|
|
* @returns Promise with updated medications
|
|
*/
|
|
addPatientMedication: (patientId: string, medication: any, token: string) => {
|
|
return api.post(`/api/patients/${patientId}/medications`, medication, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Get Patient Allergies
|
|
*
|
|
* Purpose: Fetch allergies for a patient
|
|
*
|
|
* @param patientId - Patient ID
|
|
* @param token - Authentication token
|
|
* @returns Promise with allergies data
|
|
*/
|
|
getPatientAllergies: (patientId: string, token: string) => {
|
|
return api.get(`/api/patients/${patientId}/allergies`, {}, buildHeaders({ token }));
|
|
},
|
|
|
|
/**
|
|
* Search Patients
|
|
*
|
|
* Purpose: Search patients by various criteria
|
|
*
|
|
* @param query - Search query
|
|
* @param token - Authentication token
|
|
* @returns Promise with search results
|
|
*/
|
|
searchPatients: (query: string, token: string) => {
|
|
return api.get('/api/patients/search', { q: query }, buildHeaders({ token }));
|
|
},
|
|
};
|
|
|
|
// Legacy export for backward compatibility
|
|
export const caseAPI = patientAPI;
|
|
|
|
/*
|
|
* End of File: patientAPI.ts
|
|
* Design & Developed by Tech4Biz Solutions
|
|
* Copyright (c) Spurrin Innovations. All rights reserved.
|
|
*/
|