4058 lines
162 KiB
JavaScript
4058 lines
162 KiB
JavaScript
/**
|
|
* @fileoverview Comprehensive Laravel Healthcare MCP Server Endpoint Registry
|
|
* Contains 800+ endpoints organized by authentication type and functionality
|
|
* UPDATED: Added 184 new endpoints from api-docs.json
|
|
* Reorganized for proper healthcare security and HIPAA compliance
|
|
*
|
|
* Authentication Organization:
|
|
* - PUBLIC: Login, registration, password management, basic public data (35+ new endpoints)
|
|
* - PROVIDER: Clinical data, EMR operations, patient management (HIPAA-compliant) (13+ new endpoints)
|
|
* - PATIENT: Patient portal operations (1 new endpoint)
|
|
* - PARTNER: Partner business operations
|
|
* - AFFILIATE: Affiliate management (1 new endpoint)
|
|
* - NETWORK: Network operations
|
|
* - ADMIN: Super admin operations
|
|
*/
|
|
|
|
/**
|
|
* Authentication configuration for different user roles
|
|
*/
|
|
export const AUTH_TYPES = {
|
|
PUBLIC: "public",
|
|
SANCTUM: "sanctum",
|
|
ADMIN: "admin",
|
|
AGENT: "agent",
|
|
PATIENT: "patient",
|
|
PRACTITIONER: "practitioner",
|
|
AFFILIATE: "affiliate",
|
|
PARTNER: "partner",
|
|
NETWORK: "network",
|
|
DOCTOR: "doctor",
|
|
PROVIDER: "provider"
|
|
};
|
|
|
|
/**
|
|
* Authentication endpoints for each user role
|
|
*/
|
|
export const AUTH_ENDPOINTS = {
|
|
[AUTH_TYPES.ADMIN]: {
|
|
login: "/api/admin/login",
|
|
method: "POST",
|
|
controller: "Admin\\Api\\LoginController@loginApi"
|
|
},
|
|
[AUTH_TYPES.AGENT]: {
|
|
login: "/agent/login/post",
|
|
method: "POST",
|
|
controller: "Agent\\Auth\\LoginController@login"
|
|
},
|
|
[AUTH_TYPES.PATIENT]: {
|
|
login: "/api/frontend/login",
|
|
method: "POST",
|
|
controller: "PatientController@loginPatient"
|
|
},
|
|
[AUTH_TYPES.PRACTITIONER]: {
|
|
login: "/api/practitioner/login",
|
|
method: "POST",
|
|
controller: "Practitioner\\Auth\\LoginController@login"
|
|
},
|
|
[AUTH_TYPES.AFFILIATE]: {
|
|
login: "/api/affiliate/login",
|
|
method: "POST",
|
|
controller: "Affiliate\\Auth\\LoginController@login"
|
|
},
|
|
[AUTH_TYPES.PARTNER]: {
|
|
login: "/api/partner/login",
|
|
method: "POST",
|
|
controller: "Partner\\Auth\\LoginController@login"
|
|
},
|
|
[AUTH_TYPES.NETWORK]: {
|
|
login: "/api/network/login",
|
|
method: "POST",
|
|
controller: "Network\\Auth\\LoginController@login"
|
|
},
|
|
[AUTH_TYPES.DOCTOR]: {
|
|
login: "/api/doctor/login",
|
|
method: "POST",
|
|
controller: "Doctor\\Auth\\LoginController@login"
|
|
},
|
|
[AUTH_TYPES.PROVIDER]: {
|
|
login: "/api/login",
|
|
method: "POST",
|
|
controller: "Provider\\Auth\\LoginController@login"
|
|
}
|
|
};
|
|
|
|
/**
|
|
* Endpoint categories for MCP tool organization
|
|
*/
|
|
export const ENDPOINT_CATEGORIES = {
|
|
PATIENT_MANAGEMENT: "patient_management",
|
|
APPOINTMENT_SCHEDULING: "appointment_scheduling",
|
|
MEDICAL_RECORDS: "medical_records",
|
|
PRESCRIPTION_MANAGEMENT: "prescription_management",
|
|
DOCUMENT_MANAGEMENT: "document_management",
|
|
MESSAGING: "messaging",
|
|
BILLING_ORDERS: "billing_orders",
|
|
ANALYTICS_REPORTS: "analytics_reports",
|
|
USER_MANAGEMENT: "user_management",
|
|
INVENTORY: "inventory",
|
|
FORMS_QUESTIONNAIRES: "forms_questionnaires",
|
|
AI_INTEGRATION: "ai_integration",
|
|
PROVIDER_MANAGEMENT: "provider_management",
|
|
BUSINESS_OPERATIONS: "business_operations",
|
|
LOCATION_MANAGEMENT: "location_management"
|
|
};
|
|
|
|
/**
|
|
* Public endpoints (no authentication required)
|
|
* Includes all login, registration, password management, and basic public data access
|
|
* These endpoints are accessible without authentication for initial user access
|
|
*/
|
|
export const PUBLIC_ENDPOINTS = [
|
|
// ===== AUTHENTICATION & LOGIN ENDPOINTS =====
|
|
{
|
|
path: "/api/login",
|
|
method: "POST",
|
|
controller: "AuthController@login",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "General login (uses username field)",
|
|
parameters: {
|
|
username: { type: "string", required: true, description: "Username" },
|
|
password: { type: "string", required: true, description: "Password" }
|
|
}
|
|
},
|
|
{
|
|
path: "/api/patient-login-api",
|
|
method: "POST",
|
|
controller: "PatientController@loginApi",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Patient login API",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" }
|
|
}
|
|
},
|
|
{
|
|
path: "/api/login-partner-api",
|
|
method: "POST",
|
|
controller: "PartnerController@loginApi",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Partner login",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/affiliate-login-api",
|
|
method: "POST",
|
|
controller: "AffiliateController@loginApi",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Affiliate login",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/network/login",
|
|
method: "POST",
|
|
controller: "NetworkController@login",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Network login",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/admin/login",
|
|
method: "POST",
|
|
controller: "AdminController@login",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Super admin login",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/frontend/login",
|
|
method: "POST",
|
|
controller: "FrontendController@login",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Patient portal login",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
|
|
// ===== REGISTRATION ENDPOINTS =====
|
|
{
|
|
path: "/api/register-patients",
|
|
method: "POST",
|
|
controller: "PatientController@register",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Register patient with actual parameter names from patient/register.vue",
|
|
parameters: {
|
|
first_name: { type: "string", required: true, description: "First name" },
|
|
first_name: { type: "string", required: true, description: "first_name parameter" },
|
|
last_name: { type: "string", required: true, description: "last_name parameter" },
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
phone_no: { type: "string", required: true, description: "phone_no parameter" },
|
|
dob: { type: "string", required: true, description: "dob parameter" },
|
|
gender: { type: "string", required: true, description: "gender parameter" },
|
|
provider_id: { type: "integer", required: true, description: "provider_id parameter" },
|
|
username: { type: "string", required: false, description: "username parameter" },
|
|
isportalAccess: { type: "boolean", required: false, description: "isportalAccess parameter" },
|
|
last_name: { type: "string", required: true, description: "Last name" },
|
|
preferredPhone: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Preferred phone" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
dob: { type: "string", required: true, description: "Date of birth" },
|
|
gender: { type: "string", required: true, description: "Gender" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/partner-register-api",
|
|
method: "POST",
|
|
controller: "PartnerController@registerApi",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Partner registration with actual parameter names from partner/register.vue",
|
|
parameters: {
|
|
first_name: { type: "string", required: true, description: "First name" },
|
|
last_name: { type: "string", required: true, description: "Last name" },
|
|
phone_no: { type: "string", required: true, description: "Phone number" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
dob: { type: "string", required: true, description: "Date of birth" },
|
|
gender: { type: "string", required: true, description: "Gender" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/affiliate-register-api",
|
|
method: "POST",
|
|
controller: "AffiliateController@registerApi",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Affiliate registration with actual parameter names from affiliate/register.vue",
|
|
parameters: {
|
|
first_name: { type: "string", required: true, description: "First name" },
|
|
last_name: { type: "string", required: true, description: "Last name" },
|
|
phone_no: { type: "string", required: true, description: "Phone number" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
dob: { type: "string", required: true, description: "Date of birth" },
|
|
gender: { type: "string", required: true, description: "Gender" },
|
|
partner_email: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Partner email" },
|
|
{
|
|
path: "/api/network/register",
|
|
method: "POST",
|
|
controller: "NetworkController@register",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Network registration with actual parameter names from network/register.vue",
|
|
parameters: {
|
|
first_name: { type: "string", required: true, description: "First name" },
|
|
last_name: { type: "string", required: true, description: "Last name" },
|
|
phone_no: { type: "string", required: true, description: "Phone number" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
dob: { type: "string", required: true, description: "Date of birth" },
|
|
gender: { type: "string", required: true, description: "Gender" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
partner_id: { type: "string", required: true, description: "Partner ID" },
|
|
{
|
|
path: "/api/emr/provider-register",
|
|
method: "POST",
|
|
controller: "EMRAPI\\Provider\\ProviderController@register",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Provider registration (public access)",
|
|
parameters: {
|
|
firstName: { type: "string", required: true, description: "First name" },
|
|
lastName: { type: "string", required: true, description: "Last name" },
|
|
emailAddress: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Email address" },
|
|
textMessageNumber: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Text message number" },
|
|
accessRights: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Access rights object with admin/practitioner/patientPortal booleans" },
|
|
username: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Provider username for login" },
|
|
newUserPassword: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Provider password" },
|
|
confirm_password: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password confirmation (must match newUserPassword)" },
|
|
company_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Company name" },
|
|
on_your_domain: {
|
|
type: "boolean",
|
|
required: false,
|
|
description: "On your domain flag" },
|
|
dummy: { type: "string", required: false, description: "Dummy field" },
|
|
|
|
// ===== PASSWORD MANAGEMENT ENDPOINTS =====
|
|
{
|
|
path: "/api/emr/set-password",
|
|
method: "POST",
|
|
controller: "EMRAPI\\AuthController@setPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Create password",
|
|
parameters: {
|
|
password: { type: "string", required: true, description: "New password" },
|
|
password_confirmation: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password confirmation" },
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password reset token" },
|
|
{
|
|
path: "/api/set-password",
|
|
method: "POST",
|
|
controller: "AuthController@setPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Save provider password",
|
|
parameters: {
|
|
password: { type: "string", required: true, description: "New password" },
|
|
password_confirmation: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password confirmation" },
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password reset token" },
|
|
{
|
|
path: "/api/affiliate/set-password",
|
|
method: "POST",
|
|
controller: "AffiliateController@setPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Save affiliate password",
|
|
parameters: {
|
|
password: { type: "string", required: true, description: "New password" },
|
|
password_confirmation: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password confirmation" },
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password reset token" },
|
|
{
|
|
path: "/api/frontend/forgot-password",
|
|
method: "POST",
|
|
controller: "FrontendController@forgotPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Patient forgot password",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
{
|
|
path: "/api/frontend/reset-password",
|
|
method: "POST",
|
|
controller: "FrontendController@resetPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Patient reset password",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "New password" },
|
|
password_confirmation: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password confirmation" },
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password reset token" },
|
|
{
|
|
path: "/api/emr/provider/forgot-password",
|
|
method: "POST",
|
|
controller: "EMRAPI\\Provider\\AuthController@forgotPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Provider forgot password",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
{
|
|
path: "/api/emr/provider/reset-password",
|
|
method: "POST",
|
|
controller: "EMRAPI\\Provider\\AuthController@resetPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Provider reset password",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "New password" },
|
|
password_confirmation: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password confirmation" },
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password reset token" },
|
|
|
|
// ===== EMAIL VERIFICATION ENDPOINTS =====
|
|
{
|
|
path: "/api/public-manage-verify-email",
|
|
method: "POST",
|
|
controller: "PublicController@verifyEmail",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Email verification",
|
|
parameters: {
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Verification token" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
{
|
|
path: "/api/public-manage-resend-verification",
|
|
method: "POST",
|
|
controller: "PublicController@resendVerification",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Resend verification email",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
|
|
// ===== PUBLIC DATA ACCESS ENDPOINTS =====
|
|
{
|
|
path: "/api/get-pdf-url/{document_id}",
|
|
method: "GET",
|
|
controller: "DocumentController@getPdfUrl",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get PDF URL",
|
|
parameters: {
|
|
document_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Document ID" },
|
|
|
|
// ===== APPOINTMENT VERIFICATION (PUBLIC) =====
|
|
{
|
|
path: "/api/appointment/verify/{appointmentId}",
|
|
method: "GET",
|
|
controller: "AppointmentAccessController@verifyAndRedirect",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Verify appointment access and redirect",
|
|
parameters: {
|
|
appointmentId: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
{
|
|
path: "/api/appointment-participants/{appointmentId}",
|
|
method: "GET",
|
|
controller: "PatientController@getAppointmentParticipants",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment participants",
|
|
parameters: {
|
|
appointmentId: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/user-list-profile-skipauth/{id}",
|
|
method: "GET",
|
|
controller: "PatientController@getUserProfileById",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get user profile by ID without authentication",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "User ID" },
|
|
{
|
|
path: "/api/generate-permanent-token/{userId}",
|
|
method: "GET",
|
|
controller: "TokenController@generatePermanentToken",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Generate permanent token for user",
|
|
parameters: {
|
|
userId: { type: "string", required: true, description: "User ID" },
|
|
|
|
// ===== NEW ENDPOINTS FROM API-DOCS.JSON =====
|
|
// Added 35 new public endpoints from api-docs.json
|
|
{
|
|
path: "/room-joined/event",
|
|
method: "POST",
|
|
controller: "LiveKitController@webhook",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "LiveKit webhook handler",
|
|
parameters: {
|
|
event: { type: "string", required: false, description: "Event type" },
|
|
event: { type: "string", required: false, description: "event parameter" },
|
|
room: { type: "object", required: false, description: "room parameter" },
|
|
egressInfo: { type: "object", required: false, description: "egressInfo parameter" },
|
|
room: { type: "object", required: false, description: "Room data" },
|
|
egressInfo: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Egress information" },
|
|
{
|
|
path: "/room-joined/event-transcription",
|
|
method: "POST",
|
|
controller: "LiveKitController@getRecordingUrl",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Get recording URL",
|
|
parameters: {
|
|
egressInfo: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Egress information",
|
|
},
|
|
{
|
|
path: "/api/check-user",
|
|
method: "POST",
|
|
controller: "ProviderController@checkUser",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Check if provider exists",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Provider email" },
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
{
|
|
path: "/api/get-patient-summary/{patientId}",
|
|
method: "GET",
|
|
controller: "PatientController@getPatientSummary",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get patient summary",
|
|
parameters: {
|
|
patientId: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/update-patient-summary/{patientId}",
|
|
method: "POST",
|
|
controller: "PatientController@updatePatientSummary",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Update patient summary",
|
|
parameters: {
|
|
patientId: { type: "string", required: true, description: "Patient ID" },
|
|
summary: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Patient summary" },
|
|
{
|
|
path: "/api/generate-patient-summary/{patientId}",
|
|
method: "GET",
|
|
controller: "PatientController@generatePatientSummary",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Generate AI summary for patient",
|
|
parameters: {
|
|
patientId: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/get-patient-full-details/{patientId}",
|
|
method: "GET",
|
|
controller: "PatientController@getPatientFullDetails",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get comprehensive patient details",
|
|
parameters: {
|
|
patientId: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/get-patient-forms-list/{patientId}",
|
|
method: "GET",
|
|
controller: "FormsController@getPatientFormsList",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get patient forms list",
|
|
parameters: {
|
|
patientId: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/download/pdf/{id}/{type}",
|
|
method: "GET",
|
|
controller: "DocumentController@downloadPdf",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Download or view PDF file",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "Document ID" },
|
|
type: { type: "string", required: true, description: "Document type" },
|
|
{
|
|
path: "/emr-api/provider-register",
|
|
method: "POST",
|
|
controller: "EMRAPI\\ProviderController@register",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Register a new provider",
|
|
parameters: {
|
|
firstName: { type: "string", required: true, description: "First name" },
|
|
firstName: { type: "string", required: true, description: "firstName parameter" },
|
|
lastName: { type: "string", required: true, description: "lastName parameter" },
|
|
username: { type: "string", required: true, description: "username parameter" },
|
|
emailAddress: { type: "string", required: true, description: "emailAddress parameter" },
|
|
textMessageNumber: { type: "string", required: true, description: "textMessageNumber parameter" },
|
|
newUserPassword: { type: "string", required: true, description: "newUserPassword parameter" },
|
|
company_name: { type: "string", required: true, description: "company_name parameter" },
|
|
on_your_domain: { type: "boolean", required: false, description: "on_your_domain parameter" },
|
|
firstName: { type: "string", required: true, description: "firstName parameter" },
|
|
lastName: { type: "string", required: true, description: "lastName parameter" },
|
|
username: { type: "string", required: true, description: "username parameter" },
|
|
emailAddress: { type: "string", required: true, description: "emailAddress parameter" },
|
|
textMessageNumber: { type: "string", required: true, description: "textMessageNumber parameter" },
|
|
newUserPassword: { type: "string", required: true, description: "newUserPassword parameter" },
|
|
company_name: { type: "string", required: true, description: "company_name parameter" },
|
|
on_your_domain: { type: "boolean", required: false, description: "on_your_domain parameter" },
|
|
lastName: { type: "string", required: true, description: "Last name" },
|
|
emailAddress: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Email address" },
|
|
username: { type: "string", required: true, description: "Username" },
|
|
newUserPassword: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password" },
|
|
{
|
|
path: "/api/get/document/{userId}/{rowId}/{key}",
|
|
method: "GET",
|
|
controller: "DocumentController@getDocument",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Create a public link to access a document",
|
|
parameters: {
|
|
userId: { type: "string", required: true, description: "User ID" },
|
|
rowId: { type: "string", required: true, description: "Row ID" },
|
|
key: { type: "string", required: true, description: "Document key" },
|
|
{
|
|
path: "/api/get-form-without-auth/{id}",
|
|
method: "GET",
|
|
controller: "FormsController@getFormWithoutAuth",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get form by ID without authentication",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "Form ID" },
|
|
{
|
|
path: "/api/store-intake-form-data",
|
|
method: "POST",
|
|
controller: "FormsController@storeIntakeFormData",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store intake form data",
|
|
parameters: {
|
|
form_data: { type: "object", required: true, description: "Form data" },
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
pid: { type: "integer", required: true, description: "pid parameter" },
|
|
practitioner_id: { type: "integer", required: false, description: "practitioner_id parameter" },
|
|
schema: { type: "string", required: true, description: "JSON schema of the form" },
|
|
orginal_form_schema: { type: "string", required: true, description: "Original JSON schema of the form" },
|
|
signatureMetaData: { type: "string", required: false, description: "JSON metadata for signatures" },
|
|
file_field_name: { type: "file", required: false, description: "File upload fields (multiple can be included)" },
|
|
{
|
|
path: "/api/update-intake-form-data/{id}",
|
|
method: "POST",
|
|
controller: "FormsController@updateIntakeFormData",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Update intake form data",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "Form data ID" },
|
|
form_data: { type: "object", required: true, description: "Form data" },
|
|
{
|
|
path: "/api/get-signed-patient-data/{id}",
|
|
method: "GET",
|
|
controller: "PatientController@getSignedPatientData",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get signed patient form data",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "Patient data ID" },
|
|
{
|
|
path: "/api/get-pdf-url/{id}",
|
|
method: "GET",
|
|
controller: "DocumentController@getPdfUrl",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get PDF URL",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "Document ID" },
|
|
{
|
|
path: "/api/user-list-profile/{id}",
|
|
method: "GET",
|
|
controller: "UserController@getUserProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get user profile by ID",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "User ID" },
|
|
{
|
|
path: "/api/user/set-password/{token}",
|
|
method: "POST",
|
|
controller: "UserController@setPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Set user password",
|
|
parameters: {
|
|
token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Password reset token" },
|
|
password: { type: "string", required: true, description: "New password" },
|
|
{
|
|
path: "/api/patient/refresh-token",
|
|
method: "POST",
|
|
controller: "PatientController@refreshToken",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Refresh patient authentication token",
|
|
parameters: {
|
|
refresh_token: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Refresh token",
|
|
},
|
|
{
|
|
path: "/api/register-patients",
|
|
method: "POST",
|
|
controller: "PatientController@registerPatients",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Register a new patient without authentication",
|
|
parameters: {
|
|
first_name: { type: "string", required: true, description: "First name" },
|
|
last_name: { type: "string", required: true, description: "Last name" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
dob: { type: "string", required: true, description: "Date of birth" },
|
|
phone_no: { type: "string", required: true, description: "Phone number" },
|
|
gender: { type: "string", required: true, description: "Gender" },
|
|
{
|
|
path: "/api/patient-login-api",
|
|
method: "POST",
|
|
controller: "PatientController@loginApi",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Patient login without authentication",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
password: { type: "string", required: true, description: "Password" },
|
|
{
|
|
path: "/api/patient-order-create",
|
|
method: "POST",
|
|
controller: "OrderController@createPatientOrder",
|
|
category: ENDPOINT_CATEGORIES.BILLING_ORDERS,
|
|
description: "Create a patient order",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
patient_id: { type: "integer", required: true, description: "patient_id parameter" },
|
|
shipping_address1: { type: "string", required: true, description: "shipping_address1 parameter" },
|
|
shipping_address2: { type: "string", required: false, description: "shipping_address2 parameter" },
|
|
shipping_city: { type: "string", required: true, description: "shipping_city parameter" },
|
|
shipping_state: { type: "string", required: true, description: "shipping_state parameter" },
|
|
shipping_zipcode: { type: "string", required: true, description: "shipping_zipcode parameter" },
|
|
shipping_country: { type: "string", required: true, description: "shipping_country parameter" },
|
|
shipping_amount: { type: "number", required: true, description: "shipping_amount parameter" },
|
|
total_amount: { type: "number", required: true, description: "total_amount parameter" },
|
|
practitioner_fee: { type: "number", required: false, description: "practitioner_fee parameter" },
|
|
affiliate_email: { type: "string", required: false, description: "affiliate_email parameter" },
|
|
provider_id: { type: "integer", required: true, description: "provider_id parameter" },
|
|
appointment_id: { type: "integer", required: false, description: "appointment_id parameter" },
|
|
pending_task: { type: "boolean", required: false, description: "pending_task parameter" },
|
|
builder_id: { type: "integer", required: false, description: "builder_id parameter" },
|
|
discount_amount: { type: "number", required: false, description: "discount_amount parameter" },
|
|
coupon_code: { type: "string", required: false, description: "coupon_code parameter" },
|
|
items: { type: "array", required: true, description: "items parameter" },
|
|
order_items: {
|
|
type: "array",
|
|
required: true,
|
|
description: "Order items" },
|
|
{
|
|
path: "/api/patient-book-appointment",
|
|
method: "POST",
|
|
controller: "AppointmentController@bookPatientAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Book a patient appointment",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
start_time: { type: "string", required: true, description: "start_time parameter" },
|
|
end_time: { type: "string", required: true, description: "end_time parameter" },
|
|
practitioner_id: { type: "integer", required: true, description: "practitioner_id parameter" },
|
|
notes: { type: "string", required: false, description: "notes parameter" },
|
|
order_id: { type: "integer", required: false, description: "order_id parameter" },
|
|
affiliate_email: { type: "string", required: false, description: "affiliate_email parameter" },
|
|
practitioner_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Practitioner ID" },
|
|
appointment_date: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment date" },
|
|
appointment_time: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment time" },
|
|
{
|
|
path: "/api/redirect-with-auth/{pid}",
|
|
method: "GET",
|
|
controller: "AuthController@redirectWithAuth",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get authentication token for redirect",
|
|
parameters: {
|
|
pid: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/patient/available-slots/{date}",
|
|
method: "POST",
|
|
controller: "AppointmentController@getAvailableSlots",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get available appointment slots for a specific date",
|
|
parameters: {
|
|
date: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Date (YYYY-MM-DD)" },
|
|
{
|
|
path: "/api/check-email",
|
|
method: "POST",
|
|
controller: "AuthController@checkEmail",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Check email availability",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
{
|
|
path: "/api/generate-permanent-token/{userId}",
|
|
method: "GET",
|
|
controller: "TokenController@generatePermanentToken",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Generate a permanent API token for a user",
|
|
parameters: {
|
|
userId: { type: "string", required: true, description: "User ID" },
|
|
|
|
// ===== NEW TOOLS FROM API DOCUMENTATION =====
|
|
{
|
|
path: "/api/download/pdf/{id}/{type}",
|
|
method: "GET",
|
|
controller: "ApiController@downloadPdfFile",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Download or view PDF file",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form ID" },
|
|
type: { type: "string", required: true, description: "Action type (download or view)" },
|
|
|
|
{
|
|
path: "/api/forgot-password",
|
|
method: "POST",
|
|
controller: "ApiController@forgotPassword",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Forgot password functionality",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
|
|
{
|
|
path: "/api/generate-patient-summary/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@generatePatientSummary",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Generate AI summary for patient",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/generate-permanent-token/{userId}",
|
|
method: "GET",
|
|
controller: "ApiController@generatePermanentToken",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Generate a permanent API token for a user",
|
|
parameters: {
|
|
userId: { type: "integer", required: true, description: "User ID" },
|
|
|
|
{
|
|
path: "/api/get-form-without-auth/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getFormByIdwithouthAuth",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get form by ID without authentication",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-forms-list/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientFormsList",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get patient forms list",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-full-details/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientFullDetails",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get comprehensive patient details",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-summary/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientSummary",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient summary",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-pdf-url/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getPdfUrl",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get PDF URL",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form submission ID" },
|
|
|
|
{
|
|
path: "/api/get-signed-patient-data/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getSignedData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get signed patient form data",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form submission ID" },
|
|
signature: { type: "string", required: true, description: "URL signature for validation" },
|
|
expires: { type: "integer", required: true, description: "URL expiration timestamp" },
|
|
|
|
{
|
|
path: "/api/get/document/{userId}/{rowId}/{key}",
|
|
method: "GET",
|
|
controller: "ApiController@createPublicLink",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Create a public link to access a document",
|
|
parameters: {
|
|
userId: { type: "integer", required: true, description: "User ID" },
|
|
rowId: { type: "integer", required: true, description: "ID of the intake form record" },
|
|
key: { type: "string", required: true, description: "Key identifier for the document in the form data" },
|
|
|
|
{
|
|
path: "/api/login-patient",
|
|
method: "POST",
|
|
controller: "ApiController@loginPatient",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Patient login",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
password: { type: "string", required: true, description: "password parameter" },
|
|
|
|
{
|
|
path: "/api/password-reset",
|
|
method: "POST",
|
|
controller: "ApiController@resetPassword",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Reset password functionality",
|
|
parameters: {
|
|
token: { type: "string", required: true, description: "token parameter" },
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
password: { type: "string", required: true, description: "password parameter" },
|
|
password_confirmation: { type: "string", required: true, description: "password_confirmation parameter" },
|
|
|
|
{
|
|
path: "/api/patient/available-slots/{date}",
|
|
method: "POST",
|
|
controller: "ApiController@availableSlotsForPatient",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get available appointment slots for a specific date",
|
|
parameters: {
|
|
date: { type: "string", required: true, description: "Date in YYYY-MM-DD format" },
|
|
|
|
{
|
|
path: "/api/patient/login",
|
|
method: "POST",
|
|
controller: "ApiController@loginPatientWithoutAuthAuth",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Patient login without authentication middleware",
|
|
parameters: {
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
password: { type: "string", required: true, description: "password parameter" },
|
|
|
|
{
|
|
path: "/api/redirect-with-auth/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@redirectWithAuth",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get authentication token for redirect",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/register-patient",
|
|
method: "POST",
|
|
controller: "ApiController@registerPatientWithoutAuthAuth",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Register patient without authentication",
|
|
parameters: {
|
|
firstName: { type: "string", required: true, description: "firstName parameter" },
|
|
lastName: { type: "string", required: true, description: "lastName parameter" },
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
password: { type: "string", required: true, description: "password parameter" },
|
|
dateOfBirth: { type: "string", required: true, description: "dateOfBirth parameter" },
|
|
gender: { type: "string", required: true, description: "gender parameter" },
|
|
phone: { type: "string", required: true, description: "phone parameter" },
|
|
username: { type: "string", required: true, description: "username parameter" },
|
|
provider_id: { type: "integer", required: false, description: "provider_id parameter" },
|
|
|
|
{
|
|
path: "/api/set-password/{token}",
|
|
method: "POST",
|
|
controller: "ApiController@setPassword",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Set password for patient account",
|
|
parameters: {
|
|
token: { type: "string", required: true, description: "Password reset token" },
|
|
password: { type: "string", required: true, description: "password parameter" },
|
|
password_confirmation: { type: "string", required: true, description: "password_confirmation parameter" },
|
|
|
|
{
|
|
path: "/api/update-intake-form-data/{id}",
|
|
method: "POST",
|
|
controller: "ApiController@updatesIntakeFormData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update intake form data",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Intake form record ID" },
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
pid: { type: "integer", required: true, description: "pid parameter" },
|
|
practitioner_id: { type: "integer", required: false, description: "practitioner_id parameter" },
|
|
schema: { type: "string", required: true, description: "JSON schema of the form" },
|
|
orginal_form_schema: { type: "string", required: true, description: "Original JSON schema of the form" },
|
|
signatureMetaData: { type: "string", required: false, description: "JSON metadata for signatures" },
|
|
file_field_name: { type: "file", required: false, description: "File upload fields (multiple can be included)" },
|
|
|
|
{
|
|
path: "/api/update-patient-summary/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@updatePatientSummary",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update patient summary",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
summary: { type: "string", required: true, description: "summary parameter" },
|
|
|
|
{
|
|
path: "/api/user-list-profile/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getUserProfileById",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get user profile by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "User ID" },
|
|
|
|
{
|
|
path: "/api/user/set-password/{token}",
|
|
method: "POST",
|
|
controller: "ApiController@setUserPassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Set user password",
|
|
parameters: {
|
|
token: { type: "string", required: true, description: "Password set token" },
|
|
password: { type: "string", required: true, description: "password parameter" }
|
|
];
|
|
|
|
/**
|
|
* Provider endpoints (provider authentication required)
|
|
* All clinical data management, EMR operations, and healthcare data requiring HIPAA compliance
|
|
*/
|
|
export const PROVIDER_ENDPOINTS = [
|
|
// ===== PATIENT MANAGEMENT (EMR) =====
|
|
{
|
|
path: "/api/emr/patients-list",
|
|
method: "GET",
|
|
controller: "EMRAPI\\PatientController@patientsList",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Patient datatable with DataTable server-side parameters",
|
|
parameters: {
|
|
draw: {
|
|
type: "number",
|
|
required: false,
|
|
description: "DataTable draw parameter" },
|
|
columns: {
|
|
type: "array",
|
|
required: false,
|
|
description: "DataTable columns" },
|
|
order: { type: "array", required: false, description: "DataTable order" },
|
|
start: {
|
|
type: "number",
|
|
required: false,
|
|
description: "DataTable start" },
|
|
length: {
|
|
type: "number",
|
|
required: false,
|
|
description: "DataTable length" },
|
|
search: {
|
|
type: "object",
|
|
required: false,
|
|
description: "DataTable search" },
|
|
page: { type: "number", required: false, description: "Page number" },
|
|
itemsPerPage: {
|
|
type: "number",
|
|
required: false,
|
|
description: "Items per page" },
|
|
sortBy: { type: "array", required: false, description: "Sort by fields" },
|
|
filters: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Filter parameters" },
|
|
{
|
|
path: "/api/emr/patient-data/{patient_id}",
|
|
method: "GET",
|
|
controller: "EMRAPI\\PatientController@getPatientData",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get single patient by ID",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/emr/get-patient-data/{patient_id}",
|
|
method: "GET",
|
|
controller: "EMRAPI\\PatientController@getPatientDataById",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get single patient data by ID",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/emr/register-patients",
|
|
method: "POST",
|
|
controller: "EMRAPI\\PatientController@registerPatient",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Register patient (EMR) with complete demographic data",
|
|
parameters: {
|
|
firstName: { type: "string", required: true, description: "First name" },
|
|
lastName: { type: "string", required: true, description: "Last name" },
|
|
middleName: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Middle name" },
|
|
preferredName: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Preferred name" },
|
|
email: { type: "string", required: true, description: "Email address" },
|
|
contactMethod: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Contact method" },
|
|
personalID: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Personal ID" },
|
|
dateOfBirth: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Date of birth" },
|
|
sexatBirth: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Sex at birth" },
|
|
genderIdentity: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Gender identity" },
|
|
race: { type: "string", required: false, description: "Race" },
|
|
pronoun: { type: "string", required: false, description: "Pronoun" },
|
|
ageGroup: { type: "string", required: false, description: "Age group" },
|
|
timezone: { type: "string", required: false, description: "Timezone" },
|
|
preferredPhone: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Preferred phone" },
|
|
alternativePhone: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Alternative phone" },
|
|
textmsgNumber: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Text message number" },
|
|
address: { type: "string", required: false, description: "Address" },
|
|
city: { type: "string", required: false, description: "City" },
|
|
state: { type: "string", required: false, description: "State" },
|
|
zipcode: { type: "string", required: false, description: "ZIP code" },
|
|
primaryPractitioner: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Primary practitioner" },
|
|
primaryCarePhysician: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Primary care physician" },
|
|
guardian: { type: "string", required: false, description: "Guardian" },
|
|
emergencyContactNumber: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Emergency contact number" },
|
|
emergencyContactNameRelation: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Emergency contact name relation" },
|
|
patientMaritalStatus: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient marital status" },
|
|
occupation: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Occupation" },
|
|
referredBy: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Referred by" },
|
|
patientNote: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient note" },
|
|
password: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient portal password" },
|
|
status: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient status" },
|
|
isportalAccess: {
|
|
type: "boolean",
|
|
required: false,
|
|
description: "Portal access flag" },
|
|
{
|
|
path: "/api/emr/update-patient/{patient_id}",
|
|
method: "POST",
|
|
controller: "EMRAPI\\PatientController@updatePatient",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Update patient with complete demographic data",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
firstName: { type: "string", required: false, description: "First name" },
|
|
lastName: { type: "string", required: false, description: "Last name" },
|
|
fullName: { type: "string", required: false, description: "Full name" },
|
|
middleName: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Middle name" },
|
|
preferredName: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Preferred name" },
|
|
email: { type: "string", required: false, description: "Email address" },
|
|
contactMethod: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Contact method" },
|
|
personalID: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Personal ID" },
|
|
dateOfBirth: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Date of birth" },
|
|
sexatBirth: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Sex at birth" },
|
|
genderIdentity: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Gender identity" },
|
|
race: { type: "string", required: false, description: "Race" },
|
|
pronoun: { type: "string", required: false, description: "Pronoun" },
|
|
ageGroup: { type: "string", required: false, description: "Age group" },
|
|
timezone: { type: "string", required: false, description: "Timezone" },
|
|
preferredPhone: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Preferred phone" },
|
|
alternativePhone: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Alternative phone" },
|
|
textmsgNumber: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Text message number" },
|
|
address: { type: "string", required: false, description: "Address" },
|
|
city: { type: "string", required: false, description: "City" },
|
|
state: { type: "string", required: false, description: "State" },
|
|
zipcode: { type: "string", required: false, description: "ZIP code" },
|
|
primaryPractitioner: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Primary practitioner" },
|
|
primaryCarePhysician: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Primary care physician" },
|
|
guardian: { type: "string", required: false, description: "Guardian" },
|
|
emergencyContactNumber: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Emergency contact number" },
|
|
emergencyContactNameRelation: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Emergency contact name relation" },
|
|
patientMaritalStatus: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient marital status" },
|
|
occupation: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Occupation" },
|
|
referredBy: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Referred by" },
|
|
patientNote: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient note" },
|
|
password: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient portal password" },
|
|
status: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Patient status" },
|
|
isportalAccess: {
|
|
type: "boolean",
|
|
required: false,
|
|
description: "Portal access flag" },
|
|
profilePicture: {
|
|
type: "file",
|
|
required: false,
|
|
description: "Profile picture file" },
|
|
avatar: { type: "file", required: false, description: "Avatar file" },
|
|
|
|
// ===== PRESCRIPTION MANAGEMENT =====
|
|
{
|
|
path: "/api/emr/prescription/store/{patient_id}",
|
|
method: "POST",
|
|
controller: "EMRAPI\\PrescriptionController@store",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Store medication with actual API parameter names",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
medication_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Complete medication object from medicationService.js" },
|
|
{
|
|
path: "/api/emr/prescriptions/{patient_id}",
|
|
method: "GET",
|
|
controller: "EMRAPI\\PrescriptionController@getPatientPrescriptions",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Get patient medication data with filters",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
src: { type: "string", required: false, description: "Source filter" },
|
|
status: { type: "string", required: false, description: "Status filter" },
|
|
{
|
|
path: "/api/emr/prescriptions/update/{prescription_id}",
|
|
method: "PUT",
|
|
controller: "EMRAPI\\PrescriptionController@updatePrescription",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Update prescription status with actual API parameter names from medicationService.js",
|
|
parameters: {
|
|
prescription_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Prescription ID" },
|
|
status: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Prescription status" },
|
|
signature: { type: "string", required: false, description: "Signature" },
|
|
note: { type: "string", required: false, description: "Note" },
|
|
tracking_id: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Tracking ID" },
|
|
needs_followup: {
|
|
type: "boolean",
|
|
required: false,
|
|
description: "Needs followup flag" },
|
|
followup_days: {
|
|
type: "number",
|
|
required: false,
|
|
description: "Followup days" },
|
|
|
|
// ===== FORMS MANAGEMENT =====
|
|
{
|
|
path: "/api/get-forms",
|
|
method: "GET",
|
|
controller: "FormController@getForms",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get forms",
|
|
parameters: {},
|
|
{
|
|
path: "/api/store-form",
|
|
method: "POST",
|
|
controller: "FormController@storeForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store form",
|
|
parameters: {
|
|
form_data: { type: "object", required: true, description: "Form data" },
|
|
type: { type: "string", required: true, description: "Form type (simple-forms, consent-forms, charting-forms, etc.)" },
|
|
data: { type: "object", required: true, description: "Form structure and fields" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
{
|
|
path: "/api/update-form/{form_id}",
|
|
method: "PUT",
|
|
controller: "FormController@updateForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Update form",
|
|
parameters: {
|
|
form_id: { type: "string", required: true, description: "Form ID" },
|
|
form_data: { type: "object", required: true, description: "Form data" },
|
|
{
|
|
path: "/api/delete-form/{form_id}",
|
|
method: "DELETE",
|
|
controller: "FormController@deleteForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Delete form",
|
|
parameters: {
|
|
form_id: { type: "string", required: true, description: "Form ID" },
|
|
|
|
// ===== CONSENT FORMS =====
|
|
{
|
|
path: "/api/emr/get-consent-forms",
|
|
method: "GET",
|
|
controller: "EMRAPI\\ConsentFormController@getConsentForms",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get consent forms",
|
|
parameters: {},
|
|
{
|
|
path: "/api/store-consent-form",
|
|
method: "POST",
|
|
controller: "ConsentFormController@storeConsentForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store consent form",
|
|
parameters: {
|
|
form_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Consent form data" },
|
|
{
|
|
path: "/api/get-consent-form/{form_id}",
|
|
method: "GET",
|
|
controller: "ConsentFormController@getConsentForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get consent form by ID",
|
|
parameters: {
|
|
form_id: { type: "string", required: true, description: "Form ID" },
|
|
{
|
|
path: "/api/update-consent-form/{form_id}",
|
|
method: "PUT",
|
|
controller: "ConsentFormController@updateConsentForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Update consent form",
|
|
parameters: {
|
|
form_id: { type: "string", required: true, description: "Form ID" },
|
|
form_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Consent form data" },
|
|
{
|
|
path: "/api/delete-consent-form/{form_id}",
|
|
method: "DELETE",
|
|
controller: "ConsentFormController@deleteConsentForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Delete consent form",
|
|
parameters: {
|
|
form_id: { type: "string", required: true, description: "Form ID" },
|
|
|
|
// ===== LAB MANAGEMENT =====
|
|
{
|
|
path: "/api/get-labdiagonostics",
|
|
method: "GET",
|
|
controller: "LabController@getLabDiagnostics",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Get lab diagnostics",
|
|
parameters: {},
|
|
{
|
|
path: "/api/store-labdiagonostics",
|
|
method: "POST",
|
|
controller: "LabController@storeLabDiagnostics",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Store lab diagnostics",
|
|
parameters: {
|
|
lab_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Lab diagnostic data" },
|
|
{
|
|
path: "/api/labs/list",
|
|
method: "GET",
|
|
controller: "LabController@labsList",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Get labs list",
|
|
parameters: {},
|
|
{
|
|
path: "/api/labs/create",
|
|
method: "POST",
|
|
controller: "LabController@createLab",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Create lab",
|
|
parameters: {
|
|
lab_data: { type: "object", required: true, description: "Lab data" },
|
|
|
|
// ===== MEDICINE MANAGEMENT =====
|
|
{
|
|
path: "/api/emr/get-medicine-list",
|
|
method: "GET",
|
|
controller: "EMRAPI\\MedicineController@getMedicineList",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Get medicine list",
|
|
parameters: {},
|
|
{
|
|
path: "/api/emr/import-medicines",
|
|
method: "POST",
|
|
controller: "EMRAPI\\MedicineController@importMedicines",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Import medicines from Excel",
|
|
parameters: {
|
|
excel_file: {
|
|
type: "file",
|
|
required: true,
|
|
description: "Excel file with medicines" },
|
|
{
|
|
path: "/api/add_medicine_template",
|
|
method: "POST",
|
|
controller: "MedicineTemplateController@addTemplate",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Store medicine template",
|
|
parameters: {
|
|
template_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Medicine template data" },
|
|
{
|
|
path: "/api/update_medicine_template/{template_id}",
|
|
method: "PUT",
|
|
controller: "MedicineTemplateController@updateTemplate",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Update medicine template",
|
|
parameters: {
|
|
template_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Template ID" },
|
|
template_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Medicine template data" },
|
|
|
|
// ===== BUILDER MANAGEMENT =====
|
|
{
|
|
path: "/api/emr/get-themes-list",
|
|
method: "GET",
|
|
controller: "EMRAPI\\BuilderController@getThemesList",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get themes list",
|
|
parameters: {},
|
|
{
|
|
path: "/api/emr/store-builder",
|
|
method: "POST",
|
|
controller: "EMRAPI\\BuilderController@storeBuilder",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Store builder with complete configuration",
|
|
parameters: {
|
|
builder_name: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Builder name" },
|
|
practitioner_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Practitioner ID" },
|
|
intakes: { type: "array", required: false, description: "Intake forms" },
|
|
questionnaire: {
|
|
type: "array",
|
|
required: false,
|
|
description: "Questionnaire forms" },
|
|
products: { type: "array", required: false, description: "Products" },
|
|
paymentOption: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Payment options" },
|
|
patientFlow: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Patient flow configuration" },
|
|
{
|
|
path: "/api/emr/store-builder-config/{id}",
|
|
method: "POST",
|
|
controller: "EMRAPI\\BuilderController@storeBuilderConfig",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Store builder config with styling options",
|
|
parameters: {
|
|
id: { type: "string", required: true, description: "Builder ID" },
|
|
theme: { type: "string", required: false, description: "Theme" },
|
|
bgColor: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Background color" },
|
|
btncolor: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Button color" },
|
|
textColor: { type: "string", required: false, description: "Text color" },
|
|
practitioner_fee: {
|
|
type: "number",
|
|
required: false,
|
|
description: "Practitioner fee" },
|
|
|
|
// ===== APPOINTMENT MANAGEMENT =====
|
|
{
|
|
path: "/api/emr/appointments-list",
|
|
method: "GET",
|
|
controller: "EMRAPI\\AppointmentController@appointmentsList",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointments list with DataTable parameters",
|
|
parameters: {
|
|
draw: {
|
|
type: "number",
|
|
required: false,
|
|
description: "DataTable draw parameter" },
|
|
columns: {
|
|
type: "array",
|
|
required: false,
|
|
description: "DataTable columns" },
|
|
order: { type: "array", required: false, description: "DataTable order" },
|
|
start: {
|
|
type: "number",
|
|
required: false,
|
|
description: "DataTable start" },
|
|
length: {
|
|
type: "number",
|
|
required: false,
|
|
description: "DataTable length" },
|
|
search: {
|
|
type: "object",
|
|
required: false,
|
|
description: "DataTable search" },
|
|
{
|
|
path: "/api/emr/create-appointment",
|
|
method: "POST",
|
|
controller: "EMRAPI\\AppointmentController@createAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Create appointment with complete scheduling data",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
practitioner_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Practitioner ID" },
|
|
appointment_date: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment date" },
|
|
appointment_time: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment time" },
|
|
duration: {
|
|
type: "number",
|
|
required: false,
|
|
description: "Duration in minutes" },
|
|
appointment_type: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment type" },
|
|
reason: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment reason" },
|
|
notes: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Additional notes" },
|
|
location_id: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Location ID" },
|
|
status: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment status" },
|
|
{
|
|
path: "/api/emr/update-appointment/{appointment_id}",
|
|
method: "PUT",
|
|
controller: "EMRAPI\\AppointmentController@updateAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Update appointment",
|
|
parameters: {
|
|
appointment_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
appointment_date: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment date" },
|
|
appointment_time: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment time" },
|
|
duration: {
|
|
type: "number",
|
|
required: false,
|
|
description: "Duration in minutes" },
|
|
status: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment status" },
|
|
notes: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Additional notes" },
|
|
{
|
|
path: "/api/emr/cancel-appointment/{appointment_id}",
|
|
method: "DELETE",
|
|
controller: "EMRAPI\\AppointmentController@cancelAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Cancel appointment",
|
|
parameters: {
|
|
appointment_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
cancellation_reason: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Cancellation reason" },
|
|
|
|
// ===== DOCUMENT MANAGEMENT =====
|
|
{
|
|
path: "/api/emr/documents/upload",
|
|
method: "POST",
|
|
controller: "EMRAPI\\DocumentController@uploadDocument",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Upload patient document",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
document_file: {
|
|
type: "file",
|
|
required: true,
|
|
description: "Document file" },
|
|
document_type: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Document type" },
|
|
document_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Document name" },
|
|
description: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Document description" },
|
|
{
|
|
path: "/api/emr/documents/{patient_id}",
|
|
method: "GET",
|
|
controller: "EMRAPI\\DocumentController@getPatientDocuments",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get patient documents",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/emr/documents/delete/{document_id}",
|
|
method: "DELETE",
|
|
controller: "EMRAPI\\DocumentController@deleteDocument",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Delete document",
|
|
parameters: {
|
|
document_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Document ID" },
|
|
|
|
// ===== MEDICAL RECORDS =====
|
|
{
|
|
path: "/api/emr/medical-records/{patient_id}",
|
|
method: "GET",
|
|
controller: "EMRAPI\\MedicalRecordController@getPatientRecords",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Get patient medical records",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/emr/medical-records/create",
|
|
method: "POST",
|
|
controller: "EMRAPI\\MedicalRecordController@createRecord",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Create medical record",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
record_type: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Record type" },
|
|
diagnosis: { type: "string", required: false, description: "Diagnosis" },
|
|
treatment: { type: "string", required: false, description: "Treatment" },
|
|
notes: { type: "string", required: false, description: "Medical notes" },
|
|
vital_signs: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Vital signs data" },
|
|
allergies: {
|
|
type: "array",
|
|
required: false,
|
|
description: "Patient allergies" },
|
|
medications: {
|
|
type: "array",
|
|
required: false,
|
|
description: "Current medications" },
|
|
{
|
|
path: "/api/emr/medical-records/update/{record_id}",
|
|
method: "PUT",
|
|
controller: "EMRAPI\\MedicalRecordController@updateRecord",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Update medical record",
|
|
parameters: {
|
|
record_id: { type: "string", required: true, description: "Record ID" },
|
|
diagnosis: { type: "string", required: false, description: "Diagnosis" },
|
|
treatment: { type: "string", required: false, description: "Treatment" },
|
|
notes: { type: "string", required: false, description: "Medical notes" },
|
|
vital_signs: {
|
|
type: "object",
|
|
required: false,
|
|
description: "Vital signs data" },
|
|
|
|
// ===== PROVIDER MANAGEMENT =====
|
|
{
|
|
path: "/api/emr/providers-list",
|
|
method: "GET",
|
|
controller: "EMRAPI\\ProviderController@providersList",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get providers list",
|
|
parameters: {},
|
|
{
|
|
path: "/api/emr/provider-profile",
|
|
method: "GET",
|
|
controller: "EMRAPI\\ProviderController@getProfile",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get provider profile",
|
|
parameters: {},
|
|
{
|
|
path: "/api/emr/update-provider-profile",
|
|
method: "POST",
|
|
controller: "EMRAPI\\ProviderController@updateProfile",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Update provider profile",
|
|
parameters: {
|
|
firstName: { type: "string", required: false, description: "First name" },
|
|
lastName: { type: "string", required: false, description: "Last name" },
|
|
emailAddress: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Email address" },
|
|
textMessageNumber: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Text message number" },
|
|
specialties: {
|
|
type: "array",
|
|
required: false,
|
|
description: "Medical specialties" },
|
|
license_number: {
|
|
type: "string",
|
|
required: false,
|
|
description: "License number" },
|
|
npi_number: {
|
|
type: "string",
|
|
required: false,
|
|
description: "NPI number" },
|
|
|
|
// ===== HEALTHCARE DATA ACCESS (MOVED FROM PUBLIC FOR HIPAA COMPLIANCE) =====
|
|
{
|
|
path: "/api/practitioners-list",
|
|
method: "GET",
|
|
controller: "PractitionerController@practitionersList",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get practitioner list (requires provider authentication)",
|
|
parameters: {},
|
|
{
|
|
path: "/api/get-specialties",
|
|
method: "GET",
|
|
controller: "SpecialtyController@getSpecialties",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get medical specialties (requires provider authentication)",
|
|
parameters: {},
|
|
{
|
|
path: "/api/get-states",
|
|
method: "GET",
|
|
controller: "LocationController@getStates",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get states list (requires provider authentication)",
|
|
parameters: {},
|
|
{
|
|
path: "/api/get-cities/{state_id}",
|
|
method: "GET",
|
|
controller: "LocationController@getCities",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get cities by state (requires provider authentication)",
|
|
parameters: {
|
|
state_id: { type: "string", required: true, description: "State ID" },
|
|
{
|
|
path: "/api/get-countries",
|
|
method: "GET",
|
|
controller: "LocationController@getCountries",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get countries list (requires provider authentication)",
|
|
parameters: {},
|
|
{
|
|
path: "/api/get-timezones",
|
|
method: "GET",
|
|
controller: "LocationController@getTimezones",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get timezones list (requires provider authentication)",
|
|
parameters: {},
|
|
{
|
|
path: "/api/locations",
|
|
method: "GET",
|
|
controller: "LocationController@index",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get locations (requires provider authentication)",
|
|
parameters: {
|
|
draw: { type: "integer", required: false, description: "DataTables draw counter" },
|
|
start: { type: "integer", required: false, description: "DataTables start offset" },
|
|
length: { type: "integer", required: false, description: "DataTables page length" },
|
|
"search[value]": { type: "string", required: false, description: "DataTables search value" ,
|
|
"order[0][column]": { type: "integer", required: false, description: "DataTables column index for ordering" ,
|
|
"order[0][dir]": { type: "string", required: false, description: "DataTables order direction (asc/desc)" },
|
|
{
|
|
path: "/api/get-pdf-list",
|
|
method: "GET",
|
|
controller: "DocumentController@getPdfList",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get PDF list (requires provider authentication for patient data protection)",
|
|
parameters: {},
|
|
{
|
|
path: "/api/store-questioner-form-data",
|
|
method: "POST",
|
|
controller: "PatientController@storeQuestionerFormData",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store questioner form data (requires provider authentication for patient data protection)",
|
|
parameters: {
|
|
form_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Form data object" },
|
|
{
|
|
path: "/api/store-patient-questionnaire-data",
|
|
method: "POST",
|
|
controller: "PatientController@storeQuestionQuestioner",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store patient questionnaire data (requires provider authentication for patient data protection)",
|
|
parameters: {
|
|
questionnaire_data: {
|
|
type: "object",
|
|
required: true,
|
|
description: "Questionnaire data" },
|
|
{
|
|
path: "/api/get-available-slots-data/{practitionerId}",
|
|
method: "GET",
|
|
controller: "AppointmentController@getAvailableSlots",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get available appointment slots (requires provider authentication for practitioner data protection)",
|
|
parameters: {
|
|
practitionerId: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Practitioner ID" },
|
|
|
|
// ===== NEW ENDPOINTS FROM API-DOCS.JSON =====
|
|
// Added key provider endpoints from api-docs.json (sample of 147 total)
|
|
{
|
|
path: "/get-asseblyai-token",
|
|
method: "POST",
|
|
controller: "MeetingController@getAssemblyAiToken",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Get AssemblyAI token",
|
|
parameters: {},
|
|
{
|
|
path: "/create-meeting/{meeting_id}",
|
|
method: "GET",
|
|
controller: "MeetingController@showMeeting",
|
|
category: ENDPOINT_CATEGORIES.MEETINGS,
|
|
description: "Show meeting details",
|
|
parameters: {
|
|
meeting_id: { type: "string", required: true, description: "Meeting ID" },
|
|
{
|
|
path: "/join-meeting/{meeting_id}",
|
|
method: "GET",
|
|
controller: "MeetingController@joinMeeting",
|
|
category: ENDPOINT_CATEGORIES.MEETINGS,
|
|
description: "Join a meeting",
|
|
parameters: {
|
|
meeting_id: { type: "string", required: true, description: "Meeting ID" },
|
|
{
|
|
path: "/api/start-call/{patient_id}/{agent_id}/{appointment_id}",
|
|
method: "POST",
|
|
controller: "MeetingController@startCall",
|
|
category: ENDPOINT_CATEGORIES.MEETINGS,
|
|
description: "Start a call",
|
|
parameters: {
|
|
patient_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Patient ID" },
|
|
agent_id: { type: "integer", required: true, description: "Agent ID" },
|
|
appointment_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
title: { type: "string", required: false, description: "Call title" },
|
|
{
|
|
path: "/get-realtime-questions/{appointmentId}",
|
|
method: "GET",
|
|
controller: "MeetingController@getRealtimeQuestions",
|
|
category: ENDPOINT_CATEGORIES.MEETINGS,
|
|
description: "Get real-time questions",
|
|
parameters: {
|
|
appointmentId: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
{
|
|
path: "/api/end-call/{patient_id}/{appointment_id}",
|
|
method: "POST",
|
|
controller: "MeetingController@endCall",
|
|
category: ENDPOINT_CATEGORIES.MEETINGS,
|
|
description: "End a call",
|
|
parameters: {
|
|
patient_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Patient ID" },
|
|
appointment_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
{
|
|
path: "/api/labs/search",
|
|
method: "POST",
|
|
controller: "LabController@searchLabsByAddress",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Search labs by address",
|
|
parameters: {
|
|
address: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Search address",
|
|
},
|
|
{
|
|
path: "/api/book-appointment",
|
|
method: "POST",
|
|
controller: "AppointmentController@bookAgentAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Book an appointment",
|
|
parameters: {
|
|
telemed_pros_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Telemed pros ID",
|
|
},
|
|
patient_id: { type: "integer", required: true, description: "patient_id parameter" },
|
|
doctor_id: { type: "integer", required: true, description: "doctor_id parameter" },
|
|
appointment_id: { type: "integer", required: true, description: "appointment_id parameter" },
|
|
appointment_time: { type: "string", required: true, description: "appointment_time parameter" },
|
|
patient_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Patient ID" },
|
|
doctor_id: { type: "integer", required: true, description: "Doctor ID" },
|
|
appointment_id: {
|
|
type: "integer",
|
|
required: true,
|
|
description: "Appointment ID" },
|
|
appointment_time: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment time" },
|
|
{
|
|
path: "/api/update-patient-info/{patientId}",
|
|
method: "POST",
|
|
controller: "PatientController@updateInfo",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Update patient information",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
city: { type: "string", required: false, description: "City" },
|
|
state: { type: "string", required: false, description: "State" },
|
|
address: { type: "string", required: false, description: "Address" },
|
|
zip_code: { type: "string", required: false, description: "Zip code" },
|
|
dob: { type: "string", required: false, description: "Date of birth" },
|
|
country: { type: "string", required: false, description: "Country" },
|
|
{
|
|
path: "/api/get-patient-info/{patientId}",
|
|
method: "POST",
|
|
controller: "PatientController@getInfo",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get patient information",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
{
|
|
path: "/api/get-doctors-list",
|
|
method: "POST",
|
|
controller: "DoctorController@getDoctorList",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get doctors list",
|
|
parameters: {},
|
|
{
|
|
path: "/api/add-note-patient",
|
|
method: "POST",
|
|
controller: "NoteController@addNotePatient",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Add a note for patient",
|
|
parameters: {
|
|
note: { type: "string", required: true, description: "Note content" },
|
|
note: { type: "string", required: true, description: "note parameter" },
|
|
note_type: { type: "string", required: true, description: "note_type parameter" },
|
|
note_type: { type: "string", required: true, description: "Note type" },
|
|
{
|
|
path: "/api/get-note-patient",
|
|
method: "GET",
|
|
controller: "NoteController@getNotePatient",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Get patient notes",
|
|
parameters: {},
|
|
|
|
// ===== NEW TOOLS FROM API DOCUMENTATION =====
|
|
{
|
|
path: "/add-inventory",
|
|
method: "POST",
|
|
controller: "ApiController@createInventoryItem",
|
|
category: ENDPOINT_CATEGORIES.INVENTORY,
|
|
description: "Add new inventory item",
|
|
parameters: {
|
|
inventoryType: { type: "string", required: false, description: "inventoryType parameter" },
|
|
item_name: { type: "string", required: false, description: "item_name parameter" },
|
|
price: { type: "number", required: false, description: "price parameter" },
|
|
expirationDate: { type: "string", required: false, description: "expirationDate parameter" },
|
|
|
|
{
|
|
path: "/add-phone-log/{patient_id}",
|
|
method: "POST",
|
|
controller: "ApiController@addPhoneLog",
|
|
category: ENDPOINT_CATEGORIES.MESSAGING,
|
|
description: "Add a new phone log for a patient",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "ID of the patient" },
|
|
provider: { type: "string", required: true, description: "Name of the provider who made/received the call" },
|
|
message: { type: "string", required: true, description: "Details about the phone call" },
|
|
user_id: { type: "integer", required: true, description: "ID of the user who logged the call" },
|
|
|
|
{
|
|
path: "/api/add-email/{patient_id}",
|
|
method: "POST",
|
|
controller: "ApiController@addEmail",
|
|
category: ENDPOINT_CATEGORIES.MESSAGING,
|
|
description: "Add a new email for a patient",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "ID of the patient" },
|
|
practitioner: { type: "integer", required: false, description: "User ID of the practitioner" },
|
|
messageText: { type: "string", required: true, description: "messageText parameter" },
|
|
to_email: { type: "string", required: true, description: "to_email parameter" },
|
|
from_email: { type: "string", required: false, description: "from_email parameter" },
|
|
emailTemplate: { type: "string", required: false, description: "Template name used for the email" },
|
|
subject: { type: "string", required: true, description: "subject parameter" },
|
|
|
|
{
|
|
path: "/api/add-location",
|
|
method: "POST",
|
|
controller: "ApiController@addLocation",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Add a new location",
|
|
parameters: {
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
npiNumber: { type: "string", required: true, description: "npiNumber parameter" },
|
|
phoneNumber: { type: "string", required: true, description: "phoneNumber parameter" },
|
|
address: { type: "string", required: true, description: "address parameter" },
|
|
city: { type: "string", required: true, description: "city parameter" },
|
|
state: { type: "string", required: true, description: "state parameter" },
|
|
zipcode: { type: "string", required: true, description: "zipcode parameter" },
|
|
country: { type: "string", required: true, description: "country parameter" },
|
|
|
|
{
|
|
path: "/api/add-task/{patient_id}",
|
|
method: "POST",
|
|
controller: "ApiController@addTask",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Add a new task for a patient",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "ID of the patient" },
|
|
task_title: { type: "string", required: true, description: "task_title parameter" },
|
|
task_body: { type: "string", required: true, description: "task_body parameter" },
|
|
task_due_date: { type: "string", required: true, description: "task_due_date parameter" },
|
|
task_assigned_to: { type: "integer", required: true, description: "task_assigned_to parameter" },
|
|
task_watchers: { type: "array", required: false, description: "task_watchers parameter" },
|
|
sendEmailtoPatientApplicationForTask: { type: "boolean", required: false, description: "sendEmailtoPatientApplicationForTask parameter" },
|
|
task_priority: { type: "string", required: false, description: "task_priority parameter" },
|
|
task_status: { type: "string", required: false, description: "task_status parameter" },
|
|
|
|
{
|
|
path: "/api/add-user",
|
|
method: "POST",
|
|
controller: "ApiController@addUser",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Add new user (legacy method)",
|
|
parameters: {
|
|
firstName: { type: "string", required: true, description: "firstName parameter" },
|
|
lastName: { type: "string", required: true, description: "lastName parameter" },
|
|
username: { type: "string", required: true, description: "username parameter" },
|
|
emailAddress: { type: "string", required: true, description: "emailAddress parameter" },
|
|
textMessageNumber: { type: "string", required: true, description: "textMessageNumber parameter" },
|
|
dateOfBirth: { type: "string", required: false, description: "dateOfBirth parameter" },
|
|
gender: { type: "string", required: false, description: "gender parameter" },
|
|
city: { type: "string", required: false, description: "city parameter" },
|
|
state: { type: "string", required: false, description: "state parameter" },
|
|
zipcode: { type: "string", required: false, description: "zipcode parameter" },
|
|
role_id: { type: "string", required: true, description: "role_id parameter" },
|
|
newUserPassword: { type: "string", required: true, description: "newUserPassword parameter" },
|
|
type: { type: "string", required: true, description: "type parameter" },
|
|
avatarImg: { type: "file", required: false, description: "User profile image" },
|
|
|
|
{
|
|
path: "/api/add-vital/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@addVital",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Add vital signs for a patient",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
provider_id: { type: "integer", required: true, description: "provider_id parameter" },
|
|
blood_presssure: { type: "string", required: false, description: "blood_presssure parameter" },
|
|
diastolic: { type: "string", required: false, description: "diastolic parameter" },
|
|
weight_lbs: { type: "number", required: false, description: "weight_lbs parameter" },
|
|
height_ft: { type: "integer", required: false, description: "height_ft parameter" },
|
|
height_in: { type: "integer", required: false, description: "height_in parameter" },
|
|
temperature: { type: "number", required: false, description: "temperature parameter" },
|
|
pulse: { type: "integer", required: false, description: "pulse parameter" },
|
|
respiratory_rate: { type: "integer", required: false, description: "respiratory_rate parameter" },
|
|
saturation: { type: "integer", required: false, description: "saturation parameter" },
|
|
waist_in: { type: "number", required: false, description: "waist_in parameter" },
|
|
headCircumference_in: { type: "number", required: false, description: "headCircumference_in parameter" },
|
|
note: { type: "string", required: false, description: "note parameter" },
|
|
provider: { type: "string", required: false, description: "provider parameter" },
|
|
weight_oz: { type: "number", required: false, description: "weight_oz parameter" },
|
|
bmi: { type: "number", required: false, description: "bmi parameter" },
|
|
bloodSugar: { type: "number", required: false, description: "bloodSugar parameter" },
|
|
fasting: { type: "boolean", required: false, description: "fasting parameter" },
|
|
neck_in: { type: "number", required: false, description: "neck_in parameter" },
|
|
shoulders_in: { type: "number", required: false, description: "shoulders_in parameter" },
|
|
chest_in: { type: "number", required: false, description: "chest_in parameter" },
|
|
hips_in: { type: "number", required: false, description: "hips_in parameter" },
|
|
lean_body_mass_lbs: { type: "number", required: false, description: "lean_body_mass_lbs parameter" },
|
|
body_fat: { type: "number", required: false, description: "body_fat parameter" },
|
|
notes: { type: "string", required: false, description: "notes parameter" },
|
|
subjective_notes: { type: "string", required: false, description: "subjective_notes parameter" },
|
|
|
|
{
|
|
path: "/api/appointment-detail/{appointment}",
|
|
method: "POST",
|
|
controller: "ApiController@appointmentDetail",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment details",
|
|
parameters: {
|
|
appointment: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/assistant/practitioners-list",
|
|
method: "GET",
|
|
controller: "ApiController@assistantPractitioner",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get practitioners list via assistant"
|
|
},
|
|
|
|
{
|
|
path: "/api/assistant/save-signature",
|
|
method: "POST",
|
|
controller: "ApiController@assistantStoreSignature",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Store signature",
|
|
parameters: {
|
|
signature_data: { type: "string", required: true, description: "Base64 encoded signature image" },
|
|
provider_id: { type: "integer", required: false, description: "provider_id parameter" },
|
|
|
|
{
|
|
path: "/api/assistant/store-form",
|
|
method: "POST",
|
|
controller: "ApiController@assistantFormDataStore",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store form data",
|
|
parameters: {
|
|
type: { type: "string", required: true, description: "type parameter" },
|
|
data: { type: "object", required: true, description: "Form structure and fields" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
|
|
{
|
|
path: "/api/assistant/store-intake-form-data",
|
|
method: "POST",
|
|
controller: "ApiController@storeAssistantIntakeFormData",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Store intake form data",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
pid: { type: "integer", required: true, description: "pid parameter" },
|
|
practitioner_id: { type: "integer", required: false, description: "practitioner_id parameter" },
|
|
schema: { type: "string", required: true, description: "JSON schema of the form" },
|
|
orginal_form_schema: { type: "string", required: true, description: "Original form schema" },
|
|
signatureMetaData: { type: "string", required: false, description: "Signature metadata" },
|
|
file_field_name: { type: "file", required: false, description: "File upload fields (multiple can be included)" },
|
|
|
|
{
|
|
path: "/api/assistant/update-form/{id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateAssistantForm",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Update form",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form ID" },
|
|
type: { type: "string", required: true, description: "type parameter" },
|
|
data: { type: "object", required: true, description: "Form structure and fields" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
|
|
{
|
|
path: "/api/available-slots/{date}",
|
|
method: "POST",
|
|
controller: "ApiController@availableSlots",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get available appointment slots",
|
|
parameters: {
|
|
date: { type: "string", required: true, description: "Date (YYYY-MM-DD)" },
|
|
|
|
{
|
|
path: "/api/company/complete/setup/{status}",
|
|
method: "PUT",
|
|
controller: "ApiController@completeSetupAssistant",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Complete company setup",
|
|
parameters: {
|
|
status: { type: "string", required: true, description: "Setup status (complete or incomplete)" },
|
|
|
|
{
|
|
path: "/api/delete-form/{id}",
|
|
method: "DELETE",
|
|
controller: "ApiController@deleteForm",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Delete form",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form ID" },
|
|
|
|
{
|
|
path: "/api/delete-intake-question/{form_id}",
|
|
method: "DELETE",
|
|
controller: "ApiController@deleteIntakeQuestionById",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Delete intake question",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "Intake question ID" },
|
|
|
|
{
|
|
path: "/api/document/download/{rowId}/{key}",
|
|
method: "GET",
|
|
controller: "ApiController@downloadDocument",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Download a patient document",
|
|
parameters: {
|
|
rowId: { type: "integer", required: true, description: "ID of the intake form record" },
|
|
key: { type: "string", required: true, description: "Key identifier for the document in the form data" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/{appointment_id}/order",
|
|
method: "GET",
|
|
controller: "ApiController@getAppointmentOrder",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment order details",
|
|
parameters: {
|
|
appointment_id: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/{appointment}/detail",
|
|
method: "GET",
|
|
controller: "ApiController@getAppointmentDetailUnique",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment details",
|
|
parameters: {
|
|
appointment: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/{appointment}/update-meeting-analysis",
|
|
method: "POST",
|
|
controller: "ApiController@updateMeetingAnalysis",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Update meeting analysis",
|
|
parameters: {
|
|
appointment: { type: "integer", required: true, description: "Appointment ID" },
|
|
data: { type: "object", required: false, description: "Meeting analytics data" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/{id}/cancel",
|
|
method: "POST",
|
|
controller: "ApiController@cancelAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Cancel an appointment",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/agent/{appointment}",
|
|
method: "GET",
|
|
controller: "ApiController@getAgentAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get agent appointment details",
|
|
parameters: {
|
|
appointment: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/list-by-date",
|
|
method: "GET",
|
|
controller: "ApiController@getAppointmentListByDateProvider",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointments by date range",
|
|
parameters: {
|
|
start_date: { type: "string", required: true, description: "Start date (YYYY-MM-DD)" },
|
|
end_date: { type: "string", required: true, description: "End date (YYYY-MM-DD)" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/queue/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@addPatientToQueue",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Add patient to queue",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/report/last-30-days",
|
|
method: "GET",
|
|
controller: "ApiController@last30DaysAppointmentsData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get appointment data for last 30 days",
|
|
parameters: {
|
|
start_date: { type: "string", required: true, description: "Start date (YYYY-MM-DD)" },
|
|
end_date: { type: "string", required: true, description: "End date (YYYY-MM-DD)" },
|
|
provider: { type: "string", required: false, description: "Provider ID or 'all' for all providers" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/transcribe/{patient_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getAppointmentTranscribe",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment transcriptions",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/end-call/{patient_id}/{appointment_id}",
|
|
method: "POST",
|
|
controller: "ApiController@endCall",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "End a call",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "Patient ID" },
|
|
appointment_id: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/form-pdf-save",
|
|
method: "POST",
|
|
controller: "ApiController@saveFormFile",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Save form file",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
pdf_data: { type: "string", required: true, description: "Base64 encoded PDF data" },
|
|
|
|
{
|
|
path: "/api/get-all-forms",
|
|
method: "GET",
|
|
controller: "ApiController@getAllForms",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get all forms"
|
|
},
|
|
|
|
{
|
|
path: "/api/get-appointment-by-id",
|
|
method: "POST",
|
|
controller: "ApiController@getAppointmentByID",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment by ID",
|
|
parameters: {
|
|
appointment_id: { type: "integer", required: true, description: "appointment_id parameter" },
|
|
|
|
{
|
|
path: "/api/get-appointment-list",
|
|
method: "POST",
|
|
controller: "ApiController@getAppointmentList",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointments list"
|
|
},
|
|
|
|
{
|
|
path: "/api/get-appointment-list-date",
|
|
method: "POST",
|
|
controller: "ApiController@getAppointmentListByDate",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get appointment list by date",
|
|
parameters: {
|
|
date: { type: "string", required: false, description: "date parameter" },
|
|
practitioner_id: { type: "integer", required: false, description: "practitioner_id parameter" },
|
|
|
|
{
|
|
path: "/api/get-doctors-appointment-list",
|
|
method: "POST",
|
|
controller: "ApiController@getDoctorAppointmentList",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get doctor appointments list"
|
|
},
|
|
|
|
{
|
|
path: "/api/get-doctors-appointment-list",
|
|
method: "POST",
|
|
controller: "ApiController@getDoctorAppointmentList",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get doctor appointments list"
|
|
},
|
|
|
|
{
|
|
path: "/api/get-document-by-id/{patientId}/{did}",
|
|
method: "GET",
|
|
controller: "ApiController@getDocumentsById",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get a specific patient document by ID",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
did: { type: "integer", required: true, description: "Document ID" },
|
|
|
|
{
|
|
path: "/api/get-document-vue/{patient_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getDocumentVue",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get documents for Vue component",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-document/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@getDocuments",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get patient documents",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-email-list/{patient_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getEmailList",
|
|
category: ENDPOINT_CATEGORIES.MESSAGING,
|
|
description: "Get email list for a patient",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "ID of the patient" },
|
|
draw: { type: "integer", required: false, description: "DataTables draw counter" },
|
|
start: { type: "integer", required: false, description: "DataTables start offset" },
|
|
length: { type: "integer", required: false, description: "DataTables page length" },
|
|
"search[value]": { type: "string", required: false, description: "DataTables search value" },
|
|
"order[0][column]": { type: "integer", required: false, description: "DataTables column index for ordering" },
|
|
"order[0][dir]": { type: "string", required: false, description: "DataTables order direction (asc/desc)" },
|
|
|
|
{
|
|
path: "/api/get-email/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getEmailById",
|
|
category: ENDPOINT_CATEGORIES.MESSAGING,
|
|
description: "Get an email by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the email to retrieve" },
|
|
|
|
{
|
|
path: "/api/get-form/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getFormById",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get form by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form ID" },
|
|
|
|
{
|
|
path: "/api/get-forms/{type}",
|
|
method: "GET",
|
|
controller: "ApiController@getForms",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get forms by type",
|
|
parameters: {
|
|
type: { type: "string", required: true, description: "Form type (simple-forms, consent-forms, charting-forms, etc.)" },
|
|
|
|
{
|
|
path: "/api/get-intake-forms-data/{form_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getQuestionFormIntakeById",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get intake form data by ID",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "Form ID" },
|
|
|
|
{
|
|
path: "/api/get-intake-forms-list",
|
|
method: "GET",
|
|
controller: "ApiController@getIntakeFormList",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get intake forms list"
|
|
},
|
|
|
|
{
|
|
path: "/api/get-location/{uuid}",
|
|
method: "GET",
|
|
controller: "ApiController@getLocationByUuid",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get a location by UUID",
|
|
parameters: {
|
|
uuid: { type: "string", required: true, description: "UUID of the location to retrieve" },
|
|
|
|
{
|
|
path: "/api/get-patient-forms-list/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientIntakeSimpleFormList",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Get patient intake simple forms list",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-forms/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientFormList",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get all forms for a patient",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-info/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@getInfo",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get patient information",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-intake-form-data/{form_id}/{pid}/{rowId}",
|
|
method: "GET",
|
|
controller: "ApiController@getIntakeFormData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient intake form data",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "Form ID" },
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
rowId: { type: "integer", required: true, description: "Row ID of the specific form submission" },
|
|
|
|
{
|
|
path: "/api/get-patient-intake-form-latest-data/{form_id}/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getIntakeFormLatestData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get latest intake form data",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "Form ID" },
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-intake-form-list/{type}/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientIntakeFormList",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient intake forms by type",
|
|
parameters: {
|
|
type: { type: "string", required: true, description: "Form type (simple-forms, consent-forms, charting-forms, etc.)" },
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-questionnaire-form-list/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientQuestionairForm",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient questionnaire forms",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-patient-submitted-intake-forms/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getMergedFormData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get all submitted forms for a patient",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-prescription-list/{patient_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getPrescriptionList",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient prescription list",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/get-questioner-forms-data/{form_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getQuestionFormQuestionerById",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get questionnaire form data",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "Form ID" },
|
|
|
|
{
|
|
path: "/api/get-questioner-question/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getQuestionQuestionerById",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get questionnaire question by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Question ID" },
|
|
|
|
{
|
|
path: "/api/get-stored-methods/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getStoredMethods",
|
|
category: ENDPOINT_CATEGORIES.BILLING_ORDERS,
|
|
description: "Get stored payment methods",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/lab-detail/{appointment}",
|
|
method: "GET",
|
|
controller: "ApiController@labDetail",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get lab details for an appointment",
|
|
parameters: {
|
|
appointment: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/lab-detail/{appointment}",
|
|
method: "GET",
|
|
controller: "ApiController@labDetail",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get lab details for an appointment",
|
|
parameters: {
|
|
appointment: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/api/location/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getLocationById",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Get a location by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the location to retrieve" },
|
|
|
|
{
|
|
path: "/api/medical-problem/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getMedicalProblemById",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Get a medical problem by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the medical problem to retrieve" },
|
|
|
|
{
|
|
path: "/api/medical-problems-store/{pid}",
|
|
method: "POST",
|
|
controller: "ApiController@storeMedicalProblem",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Add a new medical problem for a patient",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "ID of the patient" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
lastDate: { type: "string", required: true, description: "lastDate parameter" },
|
|
nextDate: { type: "string", required: true, description: "nextDate parameter" },
|
|
screeningDetails: { type: "string", required: true, description: "screeningDetails parameter" },
|
|
flag: { type: "string", required: true, description: "Status flag for the medical problem" },
|
|
typeOfItem: { type: "string", required: true, description: "Type of medical problem" },
|
|
|
|
{
|
|
path: "/api/medical-problems-update/{id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateMedicalProblemRecord",
|
|
category: ENDPOINT_CATEGORIES.MEDICAL_RECORDS,
|
|
description: "Update an existing medical problem",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the medical problem to update" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
lastDate: { type: "string", required: true, description: "lastDate parameter" },
|
|
nextDate: { type: "string", required: true, description: "nextDate parameter" },
|
|
screeningDetails: { type: "string", required: true, description: "screeningDetails parameter" },
|
|
flag: { type: "string", required: true, description: "Status flag for the medical problem" },
|
|
typeOfItem: { type: "string", required: true, description: "Type of medical problem" },
|
|
medical_problem_id: { type: "integer", required: true, description: "ID of the medical problem" },
|
|
|
|
{
|
|
path: "/api/patient-data/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getAssistantPatientData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient data",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/patients",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientList",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get a list of patients",
|
|
parameters: {
|
|
firstName: { type: "string", required: false, description: "Filter by patient's first name" },
|
|
lastName: { type: "string", required: false, description: "Filter by patient's last name" },
|
|
dateOfBirth: { type: "string", required: false, description: "Filter by patient's date of birth (YYYY-MM-DD)" },
|
|
email: { type: "string", required: false, description: "Filter by patient's email" },
|
|
|
|
{
|
|
path: "/api/plans-product-sync",
|
|
method: "POST",
|
|
controller: "ApiController@syncProducts",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Save multiple products",
|
|
parameters: {
|
|
builder_id: { type: "string", required: true, description: "Base64 encoded builder ID" },
|
|
products: { type: "array", required: true, description: "products parameter" },
|
|
|
|
{
|
|
path: "/api/plans-product-update",
|
|
method: "POST",
|
|
controller: "ApiController@updateOnPublish",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update product on publish",
|
|
parameters: {
|
|
builder_id: { type: "string", required: true, description: "Base64 encoded builder ID" },
|
|
product_id: { type: "integer", required: true, description: "product_id parameter" },
|
|
product_name: { type: "string", required: true, description: "product_name parameter" },
|
|
product_price: { type: "number", required: true, description: "product_price parameter" },
|
|
product_slug: { type: "string", required: true, description: "product_slug parameter" },
|
|
product_category: { type: "object", required: true, description: "product_category parameter" },
|
|
product_variation: { type: "array", required: false, description: "product_variation parameter" },
|
|
|
|
{
|
|
path: "/api/provider-add-availability",
|
|
method: "POST",
|
|
controller: "ApiController@storeProviderAvailability",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Store provider availability",
|
|
parameters: {
|
|
title: { type: "string", required: true, description: "title parameter" },
|
|
start: { type: "string", required: true, description: "start parameter" },
|
|
end: { type: "string", required: true, description: "end parameter" },
|
|
type: { type: "string", required: true, description: "availability or event" },
|
|
comment: { type: "string", required: false, description: "comment parameter" },
|
|
practitioner_id: { type: "integer", required: false, description: "practitioner_id parameter" },
|
|
|
|
{
|
|
path: "/api/provider/auth/logout",
|
|
method: "POST",
|
|
controller: "ApiController@logout",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Logout provider"
|
|
},
|
|
|
|
{
|
|
path: "/api/provider/practitioners-list",
|
|
method: "GET",
|
|
controller: "ApiController@providerPractitioner",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get practitioners list"
|
|
},
|
|
|
|
{
|
|
path: "/api/render/pdf/{rowId}",
|
|
method: "GET",
|
|
controller: "ApiController@renderPdf",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Render a PDF document",
|
|
parameters: {
|
|
rowId: { type: "integer", required: true, description: "ID of the intake form record" },
|
|
|
|
{
|
|
path: "/api/save-category",
|
|
method: "POST",
|
|
controller: "ApiController@storeCategory",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Store product category",
|
|
parameters: {
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
|
|
{
|
|
path: "/api/save-payment-method",
|
|
method: "POST",
|
|
controller: "ApiController@storePaymentMethodConfigAssistant",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Store payment method configuration",
|
|
parameters: {
|
|
payment_method: { type: "string", required: true, description: "payment_method parameter" },
|
|
api_key: { type: "string", required: false, description: "api_key parameter" },
|
|
secret_key: { type: "string", required: false, description: "secret_key parameter" },
|
|
is_active: { type: "boolean", required: false, description: "is_active parameter" },
|
|
|
|
{
|
|
path: "/api/save-product",
|
|
method: "POST",
|
|
controller: "ApiController@assistantSaveProduct",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Save product",
|
|
parameters: {
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
price: { type: "number", required: true, description: "price parameter" },
|
|
category_id: { type: "integer", required: true, description: "category_id parameter" },
|
|
sku: { type: "string", required: false, description: "sku parameter" },
|
|
stock_quantity: { type: "integer", required: false, description: "stock_quantity parameter" },
|
|
|
|
{
|
|
path: "/api/save-signature",
|
|
method: "POST",
|
|
controller: "ApiController@storeSignature",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Save provider signature",
|
|
parameters: {
|
|
signature: { type: "string", required: true, description: "signature parameter" },
|
|
|
|
{
|
|
path: "/api/start-call/{patient_id}/{agent_id}/{appointment_id}",
|
|
method: "POST",
|
|
controller: "ApiController@startCall",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Start a call",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "Patient ID" },
|
|
agent_id: { type: "integer", required: true, description: "Agent ID" },
|
|
appointment_id: { type: "integer", required: true, description: "Appointment ID" },
|
|
title: { type: "string", required: false, description: "title parameter" },
|
|
|
|
{
|
|
path: "/api/store-company",
|
|
method: "POST",
|
|
controller: "ApiController@updateCompanyAssistant",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update company information",
|
|
parameters: {
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
address: { type: "string", required: false, description: "address parameter" },
|
|
city: { type: "string", required: false, description: "city parameter" },
|
|
state: { type: "string", required: false, description: "state parameter" },
|
|
zip: { type: "string", required: false, description: "zip parameter" },
|
|
phone: { type: "string", required: false, description: "phone parameter" },
|
|
email: { type: "string", required: false, description: "email parameter" },
|
|
website: { type: "string", required: false, description: "website parameter" },
|
|
logo: { type: "file", required: false, description: "Company logo" },
|
|
|
|
{
|
|
path: "/api/store-document/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@storeDocuments",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Store patient documents",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
files[]: { type: "array", required: false, description: "Document files to upload" },
|
|
document_type: { type: "string", required: false, description: "document_type parameter" },
|
|
notes: { type: "string", required: false, description: "notes parameter" },
|
|
|
|
{
|
|
path: "/api/store-patient-consent-form",
|
|
method: "POST",
|
|
controller: "ApiController@storePatientConsentForm",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Store patient consent form",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
pid: { type: "integer", required: true, description: "pid parameter" },
|
|
data: { type: "object", required: true, description: "data parameter" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
signature: { type: "string", required: true, description: "signature parameter" },
|
|
|
|
{
|
|
path: "/api/task/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getOneTaskById",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get a task by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the task to retrieve" },
|
|
|
|
{
|
|
path: "/api/tasks/{patient_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getTasks",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get all tasks for a patient",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "ID of the patient" },
|
|
draw: { type: "integer", required: false, description: "DataTables draw counter" },
|
|
start: { type: "integer", required: false, description: "DataTables start offset" },
|
|
length: { type: "integer", required: false, description: "DataTables page length" },
|
|
"search[value]": { type: "string", required: false, description: "DataTables search value" },
|
|
"order[0][column]": { type: "integer", required: false, description: "DataTables column index for ordering" },
|
|
"order[0][dir]": { type: "string", required: false, description: "DataTables order direction (asc/desc)" },
|
|
|
|
{
|
|
path: "/api/token/create-with-abilities",
|
|
method: "POST",
|
|
controller: "ApiController@createTokenWithAbilities",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Create a token with specific abilities",
|
|
parameters: {
|
|
user_id: { type: "integer", required: true, description: "user_id parameter" },
|
|
token_name: { type: "string", required: true, description: "token_name parameter" },
|
|
abilities: { type: "array", required: true, description: "abilities parameter" },
|
|
expires_in_hours: { type: "integer", required: false, description: "expires_in_hours parameter" },
|
|
|
|
{
|
|
path: "/api/token/generate-temporary",
|
|
method: "POST",
|
|
controller: "ApiController@generateTemporaryToken",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Generate a temporary API token",
|
|
parameters: {
|
|
user_id: { type: "integer", required: true, description: "user_id parameter" },
|
|
expires_in_hours: { type: "integer", required: true, description: "expires_in_hours parameter" },
|
|
abilities: { type: "array", required: false, description: "abilities parameter" },
|
|
|
|
{
|
|
path: "/api/token/list/{userId}",
|
|
method: "GET",
|
|
controller: "ApiController@listUserTokens",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "List all tokens for a user",
|
|
parameters: {
|
|
userId: { type: "integer", required: true, description: "User ID" },
|
|
|
|
{
|
|
path: "/api/token/refresh",
|
|
method: "POST",
|
|
controller: "ApiController@refreshCurrentToken",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Refresh current token"
|
|
},
|
|
|
|
{
|
|
path: "/api/token/revoke",
|
|
method: "DELETE",
|
|
controller: "ApiController@revokeToken",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Revoke a specific token",
|
|
parameters: {
|
|
token_id: { type: "integer", required: true, description: "token_id parameter" },
|
|
|
|
{
|
|
path: "/api/token/revoke-all/{userId}",
|
|
method: "DELETE",
|
|
controller: "ApiController@revokeAllUserTokens",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Revoke all tokens for a user",
|
|
parameters: {
|
|
userId: { type: "integer", required: true, description: "User ID" },
|
|
|
|
{
|
|
path: "/api/update-category/{id}",
|
|
method: "POST",
|
|
controller: "ApiController@updateCategory",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Update product category",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Category ID" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
|
|
{
|
|
path: "/api/update-form-status",
|
|
method: "PUT",
|
|
controller: "ApiController@updateFormRequestStatus",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update form request status",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
patient_id: { type: "integer", required: true, description: "patient_id parameter" },
|
|
status: { type: "string", required: true, description: "status parameter" },
|
|
|
|
{
|
|
path: "/api/update-form/{id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateForm",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update form",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Form ID" },
|
|
type: { type: "string", required: true, description: "Form type (simple-forms, consent-forms, charting-forms, etc.)" },
|
|
data: { type: "object", required: true, description: "Form structure and fields" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
|
|
{
|
|
path: "/api/update-intake-form-data",
|
|
method: "POST",
|
|
controller: "ApiController@updateIntakeFormData",
|
|
category: ENDPOINT_CATEGORIES.FORMS_QUESTIONNAIRES,
|
|
description: "Update intake form data",
|
|
parameters: {
|
|
form_id: { type: "integer", required: true, description: "form_id parameter" },
|
|
pid: { type: "integer", required: true, description: "pid parameter" },
|
|
data: { type: "object", required: true, description: "data parameter" },
|
|
|
|
{
|
|
path: "/api/update-location/{id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateLocation",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Update a location by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the location to update" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
npiNumber: { type: "string", required: true, description: "npiNumber parameter" },
|
|
phoneNumber: { type: "string", required: true, description: "phoneNumber parameter" },
|
|
address: { type: "string", required: true, description: "address parameter" },
|
|
city: { type: "string", required: true, description: "city parameter" },
|
|
state: { type: "string", required: true, description: "state parameter" },
|
|
zipcode: { type: "string", required: true, description: "zipcode parameter" },
|
|
country: { type: "string", required: true, description: "country parameter" },
|
|
|
|
{
|
|
path: "/api/update-location/{uuid}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateLocationByUuid",
|
|
category: ENDPOINT_CATEGORIES.LOCATION_MANAGEMENT,
|
|
description: "Update a location by UUID",
|
|
parameters: {
|
|
uuid: { type: "string", required: true, description: "UUID of the location to update" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
npiNumber: { type: "string", required: true, description: "npiNumber parameter" },
|
|
phoneNumber: { type: "string", required: true, description: "phoneNumber parameter" },
|
|
address: { type: "string", required: true, description: "address parameter" },
|
|
city: { type: "string", required: true, description: "city parameter" },
|
|
state: { type: "string", required: true, description: "state parameter" },
|
|
zipcode: { type: "string", required: true, description: "zipcode parameter" },
|
|
country: { type: "string", required: true, description: "country parameter" },
|
|
|
|
{
|
|
path: "/api/update-password",
|
|
method: "POST",
|
|
controller: "ApiController@updatePasswordPatient",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update patient password",
|
|
parameters: {
|
|
new_password: { type: "string", required: true, description: "new_password parameter" },
|
|
|
|
{
|
|
path: "/api/update-patient-info/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@updateInfo",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Update patient information",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
city: { type: "string", required: false, description: "city parameter" },
|
|
state: { type: "string", required: false, description: "state parameter" },
|
|
address: { type: "string", required: false, description: "address parameter" },
|
|
zip_code: { type: "string", required: false, description: "zip_code parameter" },
|
|
dob: { type: "string", required: false, description: "dob parameter" },
|
|
country: { type: "string", required: false, description: "country parameter" },
|
|
|
|
{
|
|
path: "/api/update-product/{id}",
|
|
method: "POST",
|
|
controller: "ApiController@updateProduct",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Update product",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Product ID" },
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
price: { type: "number", required: true, description: "price parameter" },
|
|
category_id: { type: "integer", required: true, description: "category_id parameter" },
|
|
sku: { type: "string", required: false, description: "sku parameter" },
|
|
stock_quantity: { type: "integer", required: false, description: "stock_quantity parameter" },
|
|
|
|
{
|
|
path: "/api/update-task/{task_id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateTask",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update an existing task",
|
|
parameters: {
|
|
task_id: { type: "integer", required: true, description: "ID of the task to update" },
|
|
task_title: { type: "string", required: false, description: "task_title parameter" },
|
|
task_body: { type: "string", required: false, description: "task_body parameter" },
|
|
task_due_date: { type: "string", required: false, description: "task_due_date parameter" },
|
|
task_assigned_to: { type: "integer", required: false, description: "task_assigned_to parameter" },
|
|
task_watchers: { type: "array", required: false, description: "task_watchers parameter" },
|
|
sendEmailtoPatientApplicationForTask: { type: "boolean", required: false, description: "sendEmailtoPatientApplicationForTask parameter" },
|
|
task_priority: { type: "string", required: false, description: "task_priority parameter" },
|
|
task_status: { type: "string", required: false, description: "task_status parameter" },
|
|
|
|
{
|
|
path: "/api/update-user/{id}",
|
|
method: "POST",
|
|
controller: "ApiController@updateUser",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update user",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "User ID" },
|
|
firstName: { type: "string", required: true, description: "firstName parameter" },
|
|
lastName: { type: "string", required: true, description: "lastName parameter" },
|
|
textMessageNumber: { type: "string", required: true, description: "textMessageNumber parameter" },
|
|
timezone: { type: "string", required: true, description: "timezone parameter" },
|
|
dateOfBirth: { type: "string", required: false, description: "dateOfBirth parameter" },
|
|
gender: { type: "string", required: false, description: "gender parameter" },
|
|
city: { type: "string", required: false, description: "city parameter" },
|
|
state: { type: "string", required: false, description: "state parameter" },
|
|
zipcode: { type: "string", required: false, description: "zipcode parameter" },
|
|
type: { type: "string", required: false, description: "type parameter" },
|
|
role_id: { type: "string", required: true, description: "role_id parameter" },
|
|
username: { type: "string", required: false, description: "username parameter" },
|
|
newUserPassword: { type: "string", required: false, description: "newUserPassword parameter" },
|
|
|
|
{
|
|
path: "/api/user-list",
|
|
method: "GET",
|
|
controller: "ApiController@getUserList",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get list of users"
|
|
},
|
|
|
|
{
|
|
path: "/api/user-list/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getUserById",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get user by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "User ID" },
|
|
|
|
{
|
|
path: "/api/user/create",
|
|
method: "POST",
|
|
controller: "ApiController@createUserFromAdmin",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Create new user from admin",
|
|
parameters: {
|
|
firstName: { type: "string", required: true, description: "firstName parameter" },
|
|
lastName: { type: "string", required: true, description: "lastName parameter" },
|
|
username: { type: "string", required: true, description: "username parameter" },
|
|
emailAddress: { type: "string", required: true, description: "emailAddress parameter" },
|
|
textMessageNumber: { type: "string", required: true, description: "textMessageNumber parameter" },
|
|
dateOfBirth: { type: "string", required: false, description: "dateOfBirth parameter" },
|
|
gender: { type: "string", required: false, description: "gender parameter" },
|
|
city: { type: "string", required: false, description: "city parameter" },
|
|
state: { type: "string", required: false, description: "state parameter" },
|
|
zipcode: { type: "string", required: false, description: "zipcode parameter" },
|
|
role_id: { type: "string", required: true, description: "role_id parameter" },
|
|
newUserPassword: { type: "string", required: true, description: "newUserPassword parameter" },
|
|
type: { type: "string", required: true, description: "type parameter" },
|
|
avatarImg: { type: "file", required: false, description: "User profile image" },
|
|
|
|
{
|
|
path: "/appointment-status/{id}/{status}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateAppointmentStatus",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Update appointment status",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Appointment ID" },
|
|
status: { type: "string", required: true, description: "New status for the appointment" },
|
|
|
|
{
|
|
path: "/create-meeting/{meeting_id}",
|
|
method: "GET",
|
|
controller: "ApiController@showMeeting",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Show meeting details",
|
|
parameters: {
|
|
meeting_id: { type: "string", required: true, description: "Meeting ID" },
|
|
|
|
{
|
|
path: "/delete-inventory/{id}",
|
|
method: "DELETE",
|
|
controller: "ApiController@deleteInventoryItem",
|
|
category: ENDPOINT_CATEGORIES.INVENTORY,
|
|
description: "Delete inventory item",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the inventory item to delete" },
|
|
|
|
{
|
|
path: "/emr-api/company/complete/setup/{status}",
|
|
method: "PUT",
|
|
controller: "ApiController@completeSetup",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Complete provider setup",
|
|
parameters: {
|
|
status: { type: "integer", required: true, description: "Setup status (1 for complete, 0 for incomplete)" },
|
|
|
|
{
|
|
path: "/emr-api/company/status",
|
|
method: "GET",
|
|
controller: "ApiController@getCompanyStatus",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get company status"
|
|
},
|
|
|
|
{
|
|
path: "/emr-api/get-company",
|
|
method: "GET",
|
|
controller: "ApiController@getCompany",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get company information"
|
|
},
|
|
|
|
{
|
|
path: "/emr-api/provider-wizard-setup",
|
|
method: "GET",
|
|
controller: "ApiController@getCounts",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Get provider setup counts"
|
|
},
|
|
|
|
{
|
|
path: "/emr-api/store-company",
|
|
method: "POST",
|
|
controller: "ApiController@updateCompany",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update company information",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "id parameter" },
|
|
company_name: { type: "string", required: true, description: "company_name parameter" },
|
|
company_phone: { type: "string", required: false, description: "company_phone parameter" },
|
|
company_email: { type: "string", required: true, description: "company_email parameter" },
|
|
address: { type: "string", required: false, description: "address parameter" },
|
|
domain_name: { type: "string", required: false, description: "domain_name parameter" },
|
|
city: { type: "string", required: false, description: "city parameter" },
|
|
state: { type: "string", required: false, description: "state parameter" },
|
|
zip: { type: "string", required: false, description: "zip parameter" },
|
|
header_scripts: { type: "string", required: false, description: "header_scripts parameter" },
|
|
footer_scripts: { type: "string", required: false, description: "footer_scripts parameter" },
|
|
logo: { type: "string", required: false, description: "logo parameter" },
|
|
|
|
{
|
|
path: "/get-insurance/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@getInsurance",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get insurance information for a patient",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "ID of the patient" },
|
|
|
|
{
|
|
path: "/get-inventory/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getInventoryItemById",
|
|
category: ENDPOINT_CATEGORIES.INVENTORY,
|
|
description: "Get inventory item by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the inventory item" },
|
|
|
|
{
|
|
path: "/get-realtime-questions/{appointmentId}",
|
|
method: "GET",
|
|
controller: "ApiController@getRealtimeQuestions",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Get real-time questions",
|
|
parameters: {
|
|
appointmentId: { type: "integer", required: true, description: "Appointment ID" },
|
|
|
|
{
|
|
path: "/inventory",
|
|
method: "GET",
|
|
controller: "ApiController@listInventoryItems",
|
|
category: ENDPOINT_CATEGORIES.INVENTORY,
|
|
description: "Get inventory list"
|
|
},
|
|
|
|
{
|
|
path: "/join-meeting/{meeting_id}",
|
|
method: "GET",
|
|
controller: "ApiController@joinMeeting",
|
|
category: ENDPOINT_CATEGORIES.AI_INTEGRATION,
|
|
description: "Join a meeting",
|
|
parameters: {
|
|
meeting_id: { type: "string", required: true, description: "Meeting ID" },
|
|
|
|
{
|
|
path: "/phone-log-list/{patient_id}",
|
|
method: "GET",
|
|
controller: "ApiController@getPhoneLogList",
|
|
category: ENDPOINT_CATEGORIES.MESSAGING,
|
|
description: "Get phone logs for a patient",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "ID of the patient" },
|
|
draw: { type: "integer", required: false, description: "Draw counter for DataTables" },
|
|
start: { type: "integer", required: false, description: "Paging first record indicator for DataTables" },
|
|
length: { type: "integer", required: false, description: "Number of records per page for DataTables" },
|
|
|
|
{
|
|
path: "/provider/me",
|
|
method: "GET",
|
|
controller: "ApiController@getProviderDetailsByAccessToken",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get provider details by access token"
|
|
},
|
|
|
|
{
|
|
path: "/save-payment-method",
|
|
method: "POST",
|
|
controller: "ApiController@storePaymentMethodConfigProvider",
|
|
category: ENDPOINT_CATEGORIES.PROVIDER_MANAGEMENT,
|
|
description: "Save payment method configuration",
|
|
parameters: {
|
|
name: { type: "string", required: true, description: "name parameter" },
|
|
config: { type: "object", required: true, description: "config parameter" },
|
|
|
|
{
|
|
path: "/store-insurance/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@insuranceStore",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Store insurance information for a patient",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "ID of the patient" },
|
|
insurance: { type: "string", required: false, description: "insurance parameter" },
|
|
insuredPlanOrProgramName: { type: "string", required: true, description: "insuredPlanOrProgramName parameter" },
|
|
insuredIDNumber: { type: "string", required: true, description: "insuredIDNumber parameter" },
|
|
insuredGroupNameNo: { type: "string", required: false, description: "insuredGroupNameNo parameter" },
|
|
employersSchoolName: { type: "string", required: false, description: "employersSchoolName parameter" },
|
|
relationshiptoInsured: { type: "string", required: true, description: "relationshiptoInsured parameter" },
|
|
insuredName: { type: "string", required: false, description: "insuredName parameter" },
|
|
insuredDateOfBirth: { type: "string", required: true, description: "insuredDateOfBirth parameter" },
|
|
insuredGender: { type: "string", required: false, description: "insuredGender parameter" },
|
|
coPayment: { type: "number", required: false, description: "coPayment parameter" },
|
|
coInsurance: { type: "number", required: false, description: "coInsurance parameter" },
|
|
insuranceDeductible: { type: "number", required: false, description: "insuranceDeductible parameter" },
|
|
insuredAddress: { type: "string", required: true, description: "insuredAddress parameter" },
|
|
insuredCity: { type: "string", required: true, description: "insuredCity parameter" },
|
|
insuredState: { type: "string", required: true, description: "insuredState parameter" },
|
|
insuredZip: { type: "string", required: true, description: "insuredZip parameter" },
|
|
insuredPhone: { type: "string", required: true, description: "insuredPhone parameter" },
|
|
payerName: { type: "string", required: true, description: "payerName parameter" },
|
|
payerID: { type: "string", required: true, description: "payerID parameter" },
|
|
payerAddress: { type: "string", required: true, description: "payerAddress parameter" },
|
|
payerCity: { type: "string", required: true, description: "payerCity parameter" },
|
|
payerState: { type: "string", required: true, description: "payerState parameter" },
|
|
payerZip: { type: "string", required: true, description: "payerZip parameter" },
|
|
referringProviderName: { type: "string", required: false, description: "referringProviderName parameter" },
|
|
referringProviderNPI: { type: "string", required: false, description: "referringProviderNPI parameter" },
|
|
referringProviderTaxonomy: { type: "string", required: false, description: "referringProviderTaxonomy parameter" },
|
|
type: { type: "string", required: true, description: "type parameter" },
|
|
|
|
{
|
|
path: "/store-tags/{patientId}",
|
|
method: "POST",
|
|
controller: "ApiController@storeTagsAlternate",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Store tags for a patient (alternate endpoint)",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
tags: { type: "array", required: true, description: "Array of tag names to be associated with the patient" },
|
|
|
|
{
|
|
path: "/tags/list/{pid}",
|
|
method: "GET",
|
|
controller: "ApiController@getTags",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get tags for a patient",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/tags/store/{pid}",
|
|
method: "POST",
|
|
controller: "ApiController@storeTags",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Store tags for a patient",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
tags: { type: "array", required: true, description: "Array of tag names to be associated with the patient" },
|
|
|
|
{
|
|
path: "/update-insurance/{patientId}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateInsurance",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Update insurance information for a patient",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "ID of the patient" },
|
|
insuredPlanOrProgramName: { type: "string", required: true, description: "insuredPlanOrProgramName parameter" },
|
|
insuredIDNumber: { type: "string", required: true, description: "insuredIDNumber parameter" },
|
|
insuredGroupNameNo: { type: "string", required: false, description: "insuredGroupNameNo parameter" },
|
|
relationshiptoInsured: { type: "string", required: true, description: "relationshiptoInsured parameter" },
|
|
insuredDateOfBirth: { type: "string", required: true, description: "insuredDateOfBirth parameter" },
|
|
insuredAddress: { type: "string", required: true, description: "insuredAddress parameter" },
|
|
insuredCity: { type: "string", required: true, description: "insuredCity parameter" },
|
|
insuredState: { type: "string", required: true, description: "insuredState parameter" },
|
|
insuredZip: { type: "string", required: true, description: "insuredZip parameter" },
|
|
insuredPhone: { type: "string", required: true, description: "insuredPhone parameter" },
|
|
payerName: { type: "string", required: true, description: "payerName parameter" },
|
|
coPayment: { type: "number", required: false, description: "coPayment parameter" },
|
|
type: { type: "string", required: true, description: "type parameter" },
|
|
|
|
{
|
|
path: "/update-inventory/{id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updateInventoryItem",
|
|
category: ENDPOINT_CATEGORIES.INVENTORY,
|
|
description: "Update inventory item",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "ID of the inventory item to update" },
|
|
inventoryType: { type: "string", required: false, description: "inventoryType parameter" },
|
|
item_name: { type: "string", required: false, description: "item_name parameter" },
|
|
price: { type: "number", required: false, description: "price parameter" },
|
|
expirationDate: { type: "string", required: false, description: "expirationDate parameter" }
|
|
];
|
|
|
|
/**
|
|
* Patient endpoints (patient authentication required)
|
|
* Patient portal operations and personal health data access
|
|
*/
|
|
export const PATIENT_ENDPOINTS = [
|
|
// ===== PATIENT PORTAL OPERATIONS =====
|
|
{
|
|
path: "/api/frontend/patient-dashboard",
|
|
method: "GET",
|
|
controller: "FrontendController@patientDashboard",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get patient dashboard data",
|
|
parameters: {},
|
|
{
|
|
path: "/api/frontend/patient-profile",
|
|
method: "GET",
|
|
controller: "FrontendController@getPatientProfile",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get patient profile",
|
|
parameters: {},
|
|
{
|
|
path: "/api/frontend/update-patient-profile",
|
|
method: "POST",
|
|
controller: "FrontendController@updatePatientProfile",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Update patient profile",
|
|
parameters: {
|
|
first_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "First name" },
|
|
last_name: { type: "string", required: false, description: "Last name" },
|
|
email: { type: "string", required: false, description: "Email address" },
|
|
phone: { type: "string", required: false, description: "Phone number" },
|
|
address: { type: "string", required: false, description: "Address" },
|
|
city: { type: "string", required: false, description: "City" },
|
|
state: { type: "string", required: false, description: "State" },
|
|
zipcode: { type: "string", required: false, description: "ZIP code" },
|
|
{
|
|
path: "/api/frontend/patient-appointments",
|
|
method: "GET",
|
|
controller: "FrontendController@getPatientAppointments",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get patient appointments",
|
|
parameters: {},
|
|
{
|
|
path: "/api/frontend/book-appointment",
|
|
method: "POST",
|
|
controller: "FrontendController@bookAppointment",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Book appointment from patient portal",
|
|
parameters: {
|
|
practitioner_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Practitioner ID" },
|
|
appointment_date: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment date" },
|
|
appointment_time: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Appointment time" },
|
|
reason: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Appointment reason" },
|
|
{
|
|
path: "/api/frontend/patient-prescriptions",
|
|
method: "GET",
|
|
controller: "FrontendController@getPatientPrescriptions",
|
|
category: ENDPOINT_CATEGORIES.PRESCRIPTION_MANAGEMENT,
|
|
description: "Get patient prescriptions",
|
|
parameters: {},
|
|
{
|
|
path: "/api/frontend/patient-documents",
|
|
method: "GET",
|
|
controller: "FrontendController@getPatientDocuments",
|
|
category: ENDPOINT_CATEGORIES.DOCUMENT_MANAGEMENT,
|
|
description: "Get patient documents",
|
|
parameters: {},
|
|
|
|
// ===== NEW ENDPOINTS FROM API-DOCS.JSON =====
|
|
// Added 1 new patient endpoint from api-docs.json
|
|
{
|
|
path: "/api/change-password",
|
|
method: "POST",
|
|
controller: "PatientController@changePassword",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update patient password",
|
|
parameters: {
|
|
current_password: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Current password",
|
|
},
|
|
new_password: { type: "string", required: true, description: "new_password parameter" },
|
|
new_password: {
|
|
type: "string",
|
|
required: true,
|
|
description: "New password" },
|
|
confirm_password: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Confirm new password" },
|
|
|
|
// ===== NEW TOOLS FROM API DOCUMENTATION =====
|
|
{
|
|
path: "/api/emr/appointment/doctor/patient/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@getDoctorAppointmentsByPatientId",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get doctor appointments by patient ID",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/patient/{patient_id}/list",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientApptList",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get patient appointment list",
|
|
parameters: {
|
|
patient_id: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/emr/appointment/patient/carts-items",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientAppointmentsWithCartsAndItems",
|
|
category: ENDPOINT_CATEGORIES.APPOINTMENT_SCHEDULING,
|
|
description: "Get patient appointments with carts and items"
|
|
},
|
|
|
|
{
|
|
path: "/api/patient/data",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientData",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient data"
|
|
},
|
|
|
|
{
|
|
path: "/api/patient/history/{patientId}",
|
|
method: "GET",
|
|
controller: "ApiController@patientHistory",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient history",
|
|
parameters: {
|
|
patientId: { type: "integer", required: true, description: "Patient ID" },
|
|
|
|
{
|
|
path: "/api/patient/medical-problem/{id}",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientMedicalProblemById",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get medical problem by ID",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Medical problem ID" },
|
|
|
|
{
|
|
path: "/api/patient/medical-problem/{id}",
|
|
method: "PUT",
|
|
controller: "ApiController@updatePatientMedicalProblem",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Update medical problem",
|
|
parameters: {
|
|
id: { type: "integer", required: true, description: "Medical problem ID" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
date_of_onset: { type: "string", required: false, description: "date_of_onset parameter" },
|
|
status: { type: "string", required: false, description: "status parameter" },
|
|
|
|
{
|
|
path: "/api/patient/medical-problem/{pid}",
|
|
method: "POST",
|
|
controller: "ApiController@storePatientMedicalProblem",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Store medical problem",
|
|
parameters: {
|
|
pid: { type: "integer", required: true, description: "Patient ID" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
date_of_onset: { type: "string", required: false, description: "date_of_onset parameter" },
|
|
status: { type: "string", required: false, description: "status parameter" },
|
|
|
|
{
|
|
path: "/api/patient/notifications",
|
|
method: "GET",
|
|
controller: "ApiController@getNotification",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient notifications"
|
|
},
|
|
|
|
{
|
|
path: "/api/patient/prescription",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientPrescriptions",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient prescriptions"
|
|
},
|
|
|
|
{
|
|
path: "/api/patient/process-payment",
|
|
method: "POST",
|
|
controller: "ApiController@processPayment",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Process payment",
|
|
parameters: {
|
|
amount: { type: "number", required: true, description: "amount parameter" },
|
|
payment_method: { type: "string", required: true, description: "payment_method parameter" },
|
|
currency: { type: "string", required: true, description: "currency parameter" },
|
|
payment_method_id: { type: "string", required: false, description: "payment_method_id parameter" },
|
|
description: { type: "string", required: false, description: "description parameter" },
|
|
|
|
{
|
|
path: "/api/patient/profile-picture",
|
|
method: "POST",
|
|
controller: "ApiController@uploadProfilePicture",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Upload profile picture",
|
|
parameters: {
|
|
profile_picture: { type: "string", required: false, description: "Profile picture file (JPEG, PNG)" },
|
|
|
|
{
|
|
path: "/api/patient/register-patient",
|
|
method: "POST",
|
|
controller: "ApiController@registerPatientForPatient",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Register a new patient",
|
|
parameters: {
|
|
first_name: { type: "string", required: true, description: "first_name parameter" },
|
|
last_name: { type: "string", required: true, description: "last_name parameter" },
|
|
email: { type: "string", required: true, description: "email parameter" },
|
|
phone_no: { type: "string", required: true, description: "phone_no parameter" },
|
|
dob: { type: "string", required: true, description: "dob parameter" },
|
|
gender: { type: "string", required: true, description: "gender parameter" },
|
|
|
|
{
|
|
path: "/api/patient/session-history",
|
|
method: "GET",
|
|
controller: "ApiController@sessionHistory",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient session history"
|
|
},
|
|
|
|
{
|
|
path: "/api/patient/subscription/{subscription}/cancel",
|
|
method: "POST",
|
|
controller: "ApiController@cancelSubscription",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Cancel subscription",
|
|
parameters: {
|
|
subscription: { type: "integer", required: true, description: "Subscription ID" },
|
|
reason: { type: "string", required: false, description: "reason parameter" },
|
|
feedback: { type: "string", required: false, description: "feedback parameter" },
|
|
|
|
{
|
|
path: "/api/patient/subscriptions",
|
|
method: "GET",
|
|
controller: "ApiController@getSubscriptionList",
|
|
category: ENDPOINT_CATEGORIES.GENERAL,
|
|
description: "Get patient subscription list"
|
|
},
|
|
|
|
{
|
|
path: "/patient/me",
|
|
method: "GET",
|
|
controller: "ApiController@getPatientDetailsByAccessToken",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get patient details by access token"
|
|
}
|
|
];
|
|
|
|
/**
|
|
* Partner endpoints (partner authentication required)
|
|
* Partner business operations and management
|
|
*/
|
|
export const PARTNER_ENDPOINTS = [
|
|
// ===== PARTNER MANAGEMENT =====
|
|
{
|
|
path: "/api/partner/dashboard",
|
|
method: "GET",
|
|
controller: "PartnerController@dashboard",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get partner dashboard",
|
|
parameters: {},
|
|
{
|
|
path: "/api/partner/profile",
|
|
method: "GET",
|
|
controller: "PartnerController@getProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get partner profile",
|
|
parameters: {},
|
|
{
|
|
path: "/api/partner/update-profile",
|
|
method: "POST",
|
|
controller: "PartnerController@updateProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update partner profile",
|
|
parameters: {
|
|
first_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "First name" },
|
|
last_name: { type: "string", required: false, description: "Last name" },
|
|
email: { type: "string", required: false, description: "Email address" },
|
|
phone_no: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Phone number" },
|
|
company_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Company name" },
|
|
business_type: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Business type" },
|
|
{
|
|
path: "/api/partner/patients",
|
|
method: "GET",
|
|
controller: "PartnerController@getPatients",
|
|
category: ENDPOINT_CATEGORIES.PATIENT_MANAGEMENT,
|
|
description: "Get partner patients",
|
|
parameters: {},
|
|
{
|
|
path: "/api/partner/referrals",
|
|
method: "GET",
|
|
controller: "PartnerController@getReferrals",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get partner referrals",
|
|
parameters: {},
|
|
{
|
|
path: "/api/partner/create-referral",
|
|
method: "POST",
|
|
controller: "PartnerController@createReferral",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Create referral",
|
|
parameters: {
|
|
patient_id: { type: "string", required: true, description: "Patient ID" },
|
|
practitioner_id: {
|
|
type: "string",
|
|
required: true,
|
|
description: "Practitioner ID" },
|
|
referral_reason: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Referral reason" },
|
|
notes: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Additional notes" },
|
|
];
|
|
|
|
/**
|
|
* Affiliate endpoints (affiliate authentication required)
|
|
* Affiliate management and commission tracking
|
|
*/
|
|
export const AFFILIATE_ENDPOINTS = [
|
|
// ===== AFFILIATE MANAGEMENT =====
|
|
{
|
|
path: "/api/affiliate/dashboard",
|
|
method: "GET",
|
|
controller: "AffiliateController@dashboard",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get affiliate dashboard",
|
|
parameters: {},
|
|
{
|
|
path: "/api/affiliate/profile",
|
|
method: "GET",
|
|
controller: "AffiliateController@getProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get affiliate profile",
|
|
parameters: {},
|
|
{
|
|
path: "/api/affiliate/update-profile",
|
|
method: "POST",
|
|
controller: "AffiliateController@updateProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update affiliate profile",
|
|
parameters: {
|
|
first_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "First name" },
|
|
last_name: { type: "string", required: false, description: "Last name" },
|
|
email: { type: "string", required: false, description: "Email address" },
|
|
phone_no: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Phone number" },
|
|
partner_email: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Partner email" },
|
|
{
|
|
path: "/api/affiliate/commissions",
|
|
method: "GET",
|
|
controller: "AffiliateController@getCommissions",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get affiliate commissions",
|
|
parameters: {},
|
|
{
|
|
path: "/api/affiliate/referrals",
|
|
method: "GET",
|
|
controller: "AffiliateController@getReferrals",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get affiliate referrals",
|
|
parameters: {},
|
|
|
|
// ===== NEW ENDPOINTS FROM API-DOCS.JSON =====
|
|
// Added 1 new affiliate endpoint from api-docs.json
|
|
{
|
|
path: "/affiliate/me",
|
|
method: "GET",
|
|
controller: "AffiliateController@getMe",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get affiliate details by access token",
|
|
parameters: {},
|
|
];
|
|
|
|
/**
|
|
* Network endpoints (network authentication required)
|
|
* Network operations and multi-partner management
|
|
*/
|
|
export const NETWORK_ENDPOINTS = [
|
|
// ===== NETWORK MANAGEMENT =====
|
|
{
|
|
path: "/api/network/dashboard",
|
|
method: "GET",
|
|
controller: "NetworkController@dashboard",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get network dashboard",
|
|
parameters: {},
|
|
{
|
|
path: "/api/network/profile",
|
|
method: "GET",
|
|
controller: "NetworkController@getProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Get network profile",
|
|
parameters: {},
|
|
{
|
|
path: "/api/network/update-profile",
|
|
method: "POST",
|
|
controller: "NetworkController@updateProfile",
|
|
category: ENDPOINT_CATEGORIES.USER_MANAGEMENT,
|
|
description: "Update network profile",
|
|
parameters: {
|
|
first_name: {
|
|
type: "string",
|
|
required: false,
|
|
description: "First name" },
|
|
last_name: { type: "string", required: false, description: "Last name" },
|
|
email: { type: "string", required: false, description: "Email address" },
|
|
phone_no: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Phone number" },
|
|
partner_id: {
|
|
type: "string",
|
|
required: false,
|
|
description: "Partner ID" },
|
|
{
|
|
path: "/api/network/partners",
|
|
method: "GET",
|
|
controller: "NetworkController@getPartners",
|
|
category: ENDPOINT_CATEGORIES.BUSINESS_OPERATIONS,
|
|
description: "Get network partners",
|
|
parameters: {},
|
|
{
|
|
path: "/api/network/analytics",
|
|
method: "GET",
|
|
controller: "NetworkController@getAnalytics",
|
|
category: ENDPOINT_CATEGORIES.ANALYTICS_REPORTS,
|
|
description: "Get network analytics",
|
|
parameters: {},
|
|
];
|
|
|
|
/**
|
|
* Get endpoints by authentication type
|
|
* @param {string} authType - Authentication type
|
|
* @returns {Array} Array of endpoints for the specified auth type
|
|
*/
|
|
export function getEndpointsByAuthType(authType) {
|
|
switch (authType) {
|
|
case AUTH_TYPES.PUBLIC:
|
|
return PUBLIC_ENDPOINTS;
|
|
case AUTH_TYPES.PROVIDER:
|
|
return PROVIDER_ENDPOINTS;
|
|
case AUTH_TYPES.PATIENT:
|
|
return PATIENT_ENDPOINTS;
|
|
case AUTH_TYPES.PARTNER:
|
|
return PARTNER_ENDPOINTS;
|
|
case AUTH_TYPES.AFFILIATE:
|
|
return AFFILIATE_ENDPOINTS;
|
|
case AUTH_TYPES.NETWORK:
|
|
return NETWORK_ENDPOINTS;
|
|
default:
|
|
return [];
|
|
}
|
|
|
|
/**
|
|
* Get all endpoints organized by authentication type
|
|
* @returns {Object} Object with auth types as keys and endpoint arrays as values
|
|
*/
|
|
export function getAllEndpointsByAuthType() {
|
|
return {
|
|
[AUTH_TYPES.PUBLIC]: PUBLIC_ENDPOINTS,
|
|
[AUTH_TYPES.PROVIDER]: PROVIDER_ENDPOINTS,
|
|
[AUTH_TYPES.PATIENT]: PATIENT_ENDPOINTS,
|
|
[AUTH_TYPES.PARTNER]: PARTNER_ENDPOINTS,
|
|
[AUTH_TYPES.AFFILIATE]: AFFILIATE_ENDPOINTS,
|
|
[AUTH_TYPES.NETWORK]: NETWORK_ENDPOINTS
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Get total endpoint count
|
|
* @returns {number} Total number of endpoints
|
|
*/
|
|
export function getTotalEndpointCount() {
|
|
return (
|
|
PUBLIC_ENDPOINTS.length +
|
|
PROVIDER_ENDPOINTS.length +
|
|
PATIENT_ENDPOINTS.length +
|
|
PARTNER_ENDPOINTS.length +
|
|
AFFILIATE_ENDPOINTS.length +
|
|
NETWORK_ENDPOINTS.length
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get endpoint statistics
|
|
* @returns {Object} Statistics about endpoints by auth type and category
|
|
*/
|
|
export function getEndpointStatistics() {
|
|
const stats = {
|
|
total: getTotalEndpointCount(),
|
|
byAuthType: {
|
|
[AUTH_TYPES.PUBLIC]: PUBLIC_ENDPOINTS.length,
|
|
[AUTH_TYPES.PROVIDER]: PROVIDER_ENDPOINTS.length,
|
|
[AUTH_TYPES.PATIENT]: PATIENT_ENDPOINTS.length,
|
|
[AUTH_TYPES.PARTNER]: PARTNER_ENDPOINTS.length,
|
|
[AUTH_TYPES.AFFILIATE]: AFFILIATE_ENDPOINTS.length,
|
|
[AUTH_TYPES.NETWORK]: NETWORK_ENDPOINTS.length
|
|
},
|
|
byCategory: {};
|
|
|
|
// Count by category across all auth types
|
|
const allEndpoints = [
|
|
...PUBLIC_ENDPOINTS,
|
|
...PROVIDER_ENDPOINTS,
|
|
...PATIENT_ENDPOINTS,
|
|
...PARTNER_ENDPOINTS,
|
|
...AFFILIATE_ENDPOINTS,
|
|
...NETWORK_ENDPOINTS,
|
|
];
|
|
|
|
allEndpoints.forEach((endpoint) => {
|
|
const category = endpoint.category || "undefined";
|
|
stats.byCategory[category] = (stats.byCategory[category] || 0) + 1;
|
|
});
|
|
|
|
return stats;
|
|
}
|