Appointment Scheduling - Technical Specification
Medical appointment booking and management system
Purpose
The Appointment Scheduling module manages the booking, tracking, and coordination of medical appointments for legal case patients. Each appointment must be linked to an authorization, tracked against the legal case, and integrated with provider schedules. The system handles various visit types, manages appointment statuses, and ensures proper authorization utilization while coordinating with claims processing.
Key Concepts
| Term | Definition |
|---|---|
| Appointment | Scheduled medical visit for a patient |
| Visit Kind | Type of appointment (Initial, Follow-up, Therapy, etc.) |
| Appointment Status | Current state (Scheduled, Confirmed, Completed, Cancelled) |
| Authorization Link | Connection to pre-approved authorization |
| Provider Schedule | Available time slots for providers |
| Appointment Series | Recurring appointments for ongoing treatment |
| No-Show | Patient failed to attend scheduled appointment |
| Reschedule | Moving appointment to different time |
| Double Booking | Multiple appointments in same slot (controlled) |
| Appointment Reminder | Automated patient notifications |
User Roles
| Role | Description | Permissions |
|---|---|---|
| Scheduler | Books and manages appointments | Full CRUD |
| Provider | Views own schedule | Read, Update own |
| Case Manager | Oversees patient appointments | Read, Create |
| Patient Coordinator | Assists patients with scheduling | Create, Read, Update |
| Front Desk | Check-in/check-out | Read, Update status |
| System Administrator | System configuration | All permissions |
Field Documentation - Appointment Entity
| Field Name | Type | Required | Description | Validation Rules | Related Entity |
|---|---|---|---|---|---|
| ID | String | Yes | Unique appointment ID | Auto-generated CUID | Primary Key |
| Appointment Number | String | Yes | Human-readable number | Format: APT-YYYY-XXXXXXX | - |
| Legal Case | LegalCase | Yes | Associated legal case | Must be active case | LegalCase |
| Patient | Patient | Yes | Patient for appointment | Must match case patient | Patient |
| MRN | String | Yes | Member Registration Number | From legal case | - |
| Provider | ClinicalProvider | Yes | Rendering provider | Must be active | ClinicalProvider |
| Vendor | Vendor | Yes | Provider's vendor | Must be active | Vendor |
| Location | VendorLocation | Yes | Appointment location | Valid vendor location | VendorLocation |
| Authorization | Authorization | No | Linked authorization | Must be valid and active | Authorization |
| Authorization Number | String | No | Auth reference | From authorization | - |
| Visit Kind | String | Yes | Type of visit | Enum: Initial Eval, Follow-up, Therapy, Procedure, Imaging, Other | - |
| Visit Type Code | String | No | Specific visit code | Based on visit kind | - |
| Appointment Date | DateTime | Yes | Date of appointment | Cannot be past for new | - |
| Appointment Time | Time | Yes | Start time | Valid business hours | - |
| Duration Minutes | Integer | Yes | Appointment length | 15-240 minutes | - |
| End Time | Time | Yes | Calculated end time | Start + Duration | - |
| Time Zone | String | Yes | Location time zone | Valid timezone | - |
| Appointment Status | String | Yes | Current status | Enum: Scheduled, Confirmed, Arrived, In Progress, Completed, Cancelled, No Show | - |
| Status Reason | String | No | Reason for status | Required for Cancel/No Show | - |
| Status Changed At | DateTime | No | When status changed | Auto-set on change | - |
| Status Changed By | User | No | Who changed status | Valid user ID | User |
| Chief Complaint | String | No | Primary complaint | Max 500 chars | - |
| Appointment Notes | Text | No | Scheduling notes | Max 2000 chars | - |
| Clinical Notes | Text | No | Provider notes | Max 5000 chars | - |
| Diagnosis Codes | String | No | ICD-10 codes | Comma-separated | - |
| CPT Codes | String | No | Planned procedures | Comma-separated CPT | - |
| Confirmation Status | String | Yes | Confirmation state | Enum: Unconfirmed, Confirmed, Left Message | - |
| Confirmation Date | DateTime | No | When confirmed | Set on confirmation | - |
| Confirmed By | String | No | Who confirmed | Name or system | - |
| Reminder Sent | Boolean | Yes | Reminder status | Default false | - |
| Reminder Date | DateTime | No | When reminder sent | Set when sent | - |
| Reminder Method | String | No | How reminded | Enum: Phone, Text, Email | - |
| Check In Time | DateTime | No | Patient arrival | Set on check-in | - |
| Check Out Time | DateTime | No | Patient departure | Set on check-out | - |
| Actual Start Time | DateTime | No | When provider started | Set by provider | - |
| Actual End Time | DateTime | No | When provider finished | Set by provider | - |
| Wait Time Minutes | Integer | No | Calculated wait time | Check-in to Start | - |
| Is Telehealth | Boolean | Yes | Virtual appointment | Default false | - |
| Telehealth Platform | String | No | Video platform | Required if telehealth | - |
| Telehealth Link | String | No | Meeting URL | Required if telehealth | - |
| Series ID | String | No | Recurring series ID | Links related appointments | - |
| Series Position | Integer | No | Position in series | 1, 2, 3, etc. | - |
| Total Series Count | Integer | No | Total in series | For recurring appointments | - |
| Referring Provider | String | No | Who referred | Provider name | - |
| Referring NPI | String | No | Referrer's NPI | 10-digit NPI | - |
| Transportation Needed | Boolean | Yes | Needs transport | Default false | - |
| Transportation Arranged | Boolean | Yes | Transport scheduled | Default false | - |
| Interpreter Needed | Boolean | Yes | Needs interpreter | From patient preference | - |
| Interpreter Language | String | No | Language needed | Required if interpreter | - |
| Interpreter Arranged | Boolean | Yes | Interpreter scheduled | Default false | - |
| Special Instructions | Text | No | Special requirements | Max 1000 chars | - |
| Copay Amount | Decimal | No | Patient copay | Usually 0 for legal cases | - |
| Copay Collected | Boolean | Yes | Copay received | Default false | - |
| Created At | DateTime | Yes | Creation timestamp | Auto-generated | - |
| Updated At | DateTime | Yes | Update timestamp | Auto-updated | - |
| Created By | User | Yes | Creating user | Valid user ID | User |
| Updated By | User | Yes | Updating user | Valid user ID | User |
| Rescheduled From | Appointment | No | Original appointment | For rescheduled | Appointment |
| Rescheduled To | Appointment | No | New appointment | For rescheduled | Appointment |
| Claim | Claim | No | Related claim | After service rendered | Claim |
Workflows
Appointment Booking Workflow
-
Patient Selection
- Select legal case
- Verify patient information
- Check case status
- Review appointment history
-
Authorization Check
- Lookup active authorizations
- Verify units available
- Check authorization dates
- Select appropriate auth
-
Provider Selection
- Filter by specialty
- Check provider availability
- Verify location
- Confirm credentialing
-
Schedule Selection
- View available slots
- Check for conflicts
- Consider travel time
- Select date/time
-
Appointment Creation
- Create appointment record
- Link to authorization
- Decrement auth units
- Set initial status
-
Confirmation Process
- Send confirmation to patient
- Add to provider schedule
- Create reminder tasks
- Update case record
Appointment Check-In Workflow
-
Patient Arrival
- Verify patient identity
- Confirm appointment details
- Update arrival time
- Collect any copay
-
Documentation
- Verify insurance (if applicable)
- Update contact information
- Collect consent forms
- Note special needs
-
Status Update
- Change status to "Arrived"
- Notify provider
- Calculate wait time
- Update display board
Appointment Completion Workflow
-
Service Delivery
- Provider sees patient
- Document services
- Enter clinical notes
- Record CPT codes
-
Check-Out
- Update completion status
- Schedule follow-up if needed
- Provide patient instructions
- Process paperwork
-
Post-Appointment
- Update authorization usage
- Create claim if billable
- Send notes to case manager
- Schedule next appointment
Recurring Appointment Workflow
-
Series Setup
- Define frequency (weekly, biweekly, etc.)
- Set number of occurrences
- Choose time slot
- Link to authorization
-
Series Creation
- Generate all appointments
- Assign series ID
- Check authorization units
- Block provider schedule
-
Series Management
- Handle individual cancellations
- Reschedule within series
- Track attendance
- Monitor progress
Business Rules
Scheduling Rules
- Cannot book appointments in the past
- Appointment must be within authorization dates
- Provider must be available at scheduled time
- Location must be open during appointment
- Cannot exceed authorization units
Cancellation Rules
- 24-hour cancellation notice required
- Three no-shows may suspend scheduling
- Late cancellations count as no-show
- Provider cancellations require rescheduling
- Cancelled appointments restore auth units
Authorization Rules
- Appointment requires valid authorization
- Authorization must have units available
- Service type must match authorization
- Provider must match authorization
- DOS auto-approved don't need prior auth
Status Rules
- Status changes must be sequential
- Completed appointments cannot be cancelled
- No-show cannot be changed to completed
- Cancelled appointments can be rescheduled
- Status changes are audited
Integrations
| System | Integration Type | Purpose |
|---|---|---|
| Authorization System | Direct Database | Auth validation and usage |
| Provider Management | Direct Database | Provider schedules |
| Claims Processing | Direct Database | Claim creation |
| Patient Portal | Web Service | Self-scheduling |
| Reminder System | SMS/Email | Appointment reminders |
| Calendar Systems | API | Provider calendar sync |
| Telehealth Platform | API | Virtual appointments |
Common Issues
| Issue | Description | Resolution |
|---|---|---|
| Double Booking | Same slot booked twice | Conflict resolution workflow |
| No Authorization | Appointment without auth | Create retroactive auth |
| Provider Unavailable | Provider called out | Reschedule all appointments |
| No-Show Pattern | Repeated no-shows | Case manager intervention |
| Wrong Location | Patient at wrong office | Redirect or reschedule |
Screenshots Needed
- Appointment Calendar View
- Appointment Booking Form
- Provider Schedule Grid
- Patient Appointment List
- Check-In Interface
- Series Creation Wizard
- Authorization Selection
- Confirmation Dialog
- Reschedule Interface
- No-Show Report
Performance Considerations
- Calendar must load in < 2 seconds
- Real-time availability updates
- Support 1000+ appointments/day
- Efficient recurring appointment generation
- Quick search across all appointments
Security Considerations
- PHI protection in appointment details
- Provider schedule privacy
- Audit trail for all changes
- Role-based viewing permissions
- Telehealth link security
Notes
- SMS reminders require patient consent
- Telehealth appointments need special setup
- Integration with provider EMRs planned
- Mobile app for scheduling in development