Admin Reports API
Administrative endpoints for generating reports and analytics.
Weekly Metrics
Get Weekly Metrics
Generate weekly performance metrics.
Endpoint: GET /v1/admin/clinic/reports/weekly_metrics
Authentication: Required (Admin role)
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
week_start | string | No | Start of week (YYYY-MM-DD) |
week_end | string | No | End of week (YYYY-MM-DD) |
provider_id | integer | No | Filter by provider ID |
department | string | No | Filter by department |
Example Request
GET /v1/admin/clinic/reports/weekly_metrics?week_start=2023-10-23&week_end=2023-10-29 HTTP/1.1
Content-Type: application/json
X-User-Token: your_admin_token_hereResponse Format
{
"week_start": "2023-10-23",
"week_end": "2023-10-29",
"metrics": {
"total_appointments": 125,
"completed_appointments": 118,
"cancelled_appointments": 5,
"no_show_appointments": 2,
"new_patients": 8,
"total_revenue": 18750.00,
"average_session_duration": 52,
"provider_utilization": 0.85
},
"daily_breakdown": [
{
"date": "2023-10-23",
"appointments": 25,
"revenue": 3750.00
}
]
}Patient Reports
Patient Follow-up Schedules
Generate follow-up schedule reports for patients.
Endpoint: POST /v1/admin/clinic/reports/patients/follow_up_schedules
Authentication: Required (Admin role)
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
report_params | object | Yes | Report parameters |
report_params.start_date | string | Yes | Start date (YYYY-MM-DD) |
report_params.end_date | string | Yes | End date (YYYY-MM-DD) |
report_params.provider_ids | array | No | Array of provider IDs |
report_params.patient_status | string | No | Filter by patient status |
Example Request
POST /v1/admin/clinic/reports/patients/follow_up_schedules HTTP/1.1
Content-Type: application/json
X-User-Token: your_admin_token_here
{
"report_params": {
"start_date": "2023-10-01",
"end_date": "2023-10-31",
"provider_ids": [456, 789],
"patient_status": "active"
}
}Response Format
{
"report_id": "RPT-2023-001",
"status": "generating",
"estimated_completion": "2023-10-27T15:30:00.000Z",
"download_url": null
}Provider Reports
Provider Appointments with Rates
Generate provider appointment reports with billing rates.
Endpoint: POST /v1/admin/clinic/reports/providers/appointments_with_rates
Authentication: Required (Admin role)
Request Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
report_params | object | Yes | Report parameters |
report_params.start_date | string | Yes | Start date (YYYY-MM-DD) |
report_params.end_date | string | Yes | End date (YYYY-MM-DD) |
report_params.provider_ids | array | No | Array of provider IDs |
report_params.include_rates | boolean | No | Include billing rates |
report_params.group_by | string | No | Grouping option |
Example Request
POST /v1/admin/clinic/reports/providers/appointments_with_rates HTTP/1.1
Content-Type: application/json
X-User-Token: your_admin_token_here
{
"report_params": {
"start_date": "2023-10-01",
"end_date": "2023-10-31",
"provider_ids": [456],
"include_rates": true,
"group_by": "provider"
}
}Response Format
{
"report_id": "RPT-2023-002",
"status": "completed",
"generated_at": "2023-10-27T15:45:00.000Z",
"download_url": "https://storage.example.com/reports/provider-appointments-2023-002.pdf",
"summary": {
"total_appointments": 45,
"total_revenue": 6750.00,
"average_rate": 150.00
}
}Report Status
Get Report Status
Check the status of a generated report.
Endpoint: GET /v1/admin/clinic/reports/{report_id}/status
Authentication: Required (Admin role)
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | Report ID |
Response Format
{
"report_id": "RPT-2023-001",
"status": "completed",
"progress_percentage": 100,
"generated_at": "2023-10-27T15:45:00.000Z",
"download_url": "https://storage.example.com/reports/follow-up-schedules-2023-001.pdf",
"expires_at": "2023-11-27T15:45:00.000Z"
}Download Report
Download Generated Report
Endpoint: GET /v1/admin/clinic/reports/{report_id}/download
Authentication: Required (Admin role)
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
report_id | string | Yes | Report ID |
Report Types
Available report types:
weekly_metrics- Weekly performance metricspatient_follow_up- Patient follow-up schedulesprovider_appointments- Provider appointment reportsrevenue_summary- Revenue and billing summaryutilization_report- Provider utilization reportoutcome_metrics- Patient outcome metrics
Report Status Values
queued- Report is queued for generationgenerating- Report is being generatedcompleted- Report generation completedfailed- Report generation failedexpired- Report download link has expired
Report Formats
Available report formats:
pdf- PDF documentexcel- Excel spreadsheetcsv- Comma-separated valuesjson- JSON data format
Error Responses
403 Forbidden
{
"errors": "Admin access required"
}422 Unprocessable Entity
{
"errors": {
"start_date": ["can't be blank", "must be a valid date"],
"end_date": ["must be after start date"]
}
}404 Not Found
{
"errors": "Report not found or expired"
}Notes
- All admin report endpoints require administrative privileges
- Reports are generated asynchronously for large datasets
- Download links expire after 30 days for security
- Report generation may take several minutes for large date ranges
- Multiple report formats are available depending on the report type
- Reports can be filtered by provider, department, or other criteria
- Generated reports are stored securely and access is logged