Index: frontend/src/services/api.js
===================================================================
--- frontend/src/services/api.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
+++ frontend/src/services/api.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
@@ -0,0 +1,33 @@
+import axios from 'axios';
+
+const API_URL = process.env.REACT_APP_API_URL || 'http://localhost:8080/api';
+
+const apiClient = axios.create({
+  baseURL: API_URL,
+  headers: {
+    'Content-Type': 'application/json',
+  },
+});
+
+// Request interceptor to add JWT token
+apiClient.interceptors.request.use(
+  config => {
+    const token = localStorage.getItem('token');
+    if (token) {
+      config.headers.Authorization = `Bearer ${token}`;
+    }
+    return config;
+  },
+  error => Promise.reject(error)
+);
+
+// Error handling interceptor
+apiClient.interceptors.response.use(
+  response => response,
+  error => {
+    console.error('API Error:', error.response?.data || error.message);
+    return Promise.reject(error);
+  }
+);
+
+export default apiClient;
Index: frontend/src/services/medicalRecordService.js
===================================================================
--- frontend/src/services/medicalRecordService.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
+++ frontend/src/services/medicalRecordService.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
@@ -0,0 +1,15 @@
+import apiClient from './api';
+
+const ENDPOINT = '/medical-records';
+
+export const medicalRecordService = {
+  getMedicalRecordById: (id) => apiClient.get(`${ENDPOINT}/${id}`),
+
+  getMedicalRecordByPatientId: (patientId) => apiClient.get(`${ENDPOINT}/patient/${patientId}`),
+
+  searchMedicalRecords: (params) => apiClient.get(`${ENDPOINT}/search`, { params }),
+
+  getAllergiesForMedicalRecord: (medicalRecordId) => apiClient.get(`${ENDPOINT}/${medicalRecordId}/allergies`),
+
+  getSymptomsForMedicalRecord: (medicalRecordId) => apiClient.get(`${ENDPOINT}/${medicalRecordId}/symptoms`),
+};
Index: frontend/src/services/medicalReportService.js
===================================================================
--- frontend/src/services/medicalReportService.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
+++ frontend/src/services/medicalReportService.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
@@ -0,0 +1,11 @@
+import apiClient from './api';
+
+const ENDPOINT = '/medical-reports';
+
+export const medicalReportService = {
+  createReport: (reportData) => apiClient.post(ENDPOINT, reportData),
+  getReportById: (reportId) => apiClient.get(`${ENDPOINT}/${reportId}`),
+  getReportsForMedicalRecord: (medicalRecordId) => apiClient.get(`${ENDPOINT}/record/${medicalRecordId}`),
+  updateReport: (reportId, description) => apiClient.put(`${ENDPOINT}/${reportId}`, { description }),
+  deleteReport: (reportId) => apiClient.delete(`${ENDPOINT}/${reportId}`),
+};
Index: frontend/src/services/referralService.js
===================================================================
--- frontend/src/services/referralService.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
+++ frontend/src/services/referralService.js	(revision d30d82041a2812a401511ea2aadede496a8eeb01)
@@ -0,0 +1,25 @@
+import apiClient from './api';
+
+const ENDPOINT = '/referrals';
+
+export const referralService = {
+  createReferral: (referralData) => {
+    return apiClient.post(ENDPOINT, {
+      medicalRecordId: referralData.medicalRecordId,
+      fromDoctorId: referralData.fromDoctorId,
+      toDoctorId: referralData.toDoctorId,
+      reason: referralData.reason,
+      referralDate: referralData.referralDate,
+      appointmentDate: referralData.appointmentDate,
+      appointmentTime: referralData.appointmentTime,
+    });
+  },
+
+  getReferralById: (id) => apiClient.get(`${ENDPOINT}/${id}`),
+
+  getReferralsByFromDoctor: (doctorId) => apiClient.get(`${ENDPOINT}/from-doctor/${doctorId}`),
+
+  getReferralsByToDoctor: (doctorId) => apiClient.get(`${ENDPOINT}/to-doctor/${doctorId}`),
+
+  getReferralsByPatient: (patientId) => apiClient.get(`${ENDPOINT}/patient/${patientId}`),
+};
