Platform Features
Clínica Vitalis provides a complete suite of tools for healthcare facility management. Explore all the capabilities designed to streamline your operations.Core Features
Professional Management
Manage medical staff, specialties, and credentials
Patient Management
Handle patient records and insurance information
Appointment Scheduling
Intelligent scheduling with conflict detection
Work Schedules
Coordinate staff availability and working hours
Specialty Management
Organize medical specialties and departments
Insurance Management
Track insurance providers (Obras Sociales)
Professional Management
Comprehensive tools for managing your medical staff with full CRUD operations and advanced filtering.Key Capabilities
- Complete Staff Profiles: Store detailed information for each professional including personal data, contact information, and specialty
- Specialty Assignment: Link professionals to their medical specialties
- Status Tracking: Monitor staff status (active/inactive)
- Data Validation: Enforce unique DNI and email validation
Data Model
Each professional record includes:API Endpoints
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET | /professionals | List all professionals | JWT |
GET | /professionals/:id | Get professional by ID | JWT |
POST | /professionals | Create new professional | JWT + Admin |
PATCH | /professionals/:id | Update professional | JWT + Admin |
All professional creation and updates require admin privileges and undergo comprehensive validation including DNI uniqueness checks.
Patient Management
Efficient patient record management with insurance tracking and comprehensive validation.Key Capabilities
- Patient Registry: Maintain complete patient records with personal and medical information
- Insurance Integration: Link patients to their insurance providers (Obras Sociales)
- Status Management: Track patient status (active/inactive)
- Duplicate Prevention: Enforce unique DNI validation
Data Model
API Endpoints
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET | /patients | List all patients | JWT |
GET | /patients/:id | Get patient by ID | JWT |
POST | /patients | Create new patient | JWT + Admin |
PATCH | /patients/:id | Update patient | JWT + Admin |
Validation Rules
- DNI: Minimum 7 characters, must be unique
- Phone: 10-20 characters, numbers/spaces/hyphens only
- Email: Must be valid email format
- Insurance: Must reference valid insurance provider
Appointment Scheduling
Intelligent appointment system with automatic conflict detection and schedule validation.Key Capabilities
- Smart Scheduling: Automatic conflict detection for both patients and professionals
- Schedule Validation: Ensures appointments fall within professional working hours
- Double-Booking Prevention: Unique constraints prevent scheduling conflicts
- Status Tracking: Monitor appointment status (pending/confirmed/cancelled)
Data Model
Conflict Prevention
The system enforces two critical unique constraints:- Patient Availability: One appointment per patient per date/time
- Professional Availability: One appointment per professional per date/time
API Endpoints
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET | /appointments | List all appointments | JWT |
GET | /appointments/:id | Get appointment by ID | JWT |
POST | /appointments | Create new appointment | JWT + Admin |
PATCH | /appointments/:id | Update appointment | JWT + Admin |
Validation Workflow
When creating an appointment, the system validates:- Patient exists and is available at the requested time
- Professional exists and is available at the requested time
- Appointment time falls within professional’s work schedule
- No conflicts with existing appointments
Work Schedules
Coordinate staff availability with flexible work schedule management.Key Capabilities
- Weekly Schedule Definition: Define work hours for each day of the week
- Time Range Management: Set start and end times for each work day
- Unique Day Constraints: One schedule entry per professional per day
- Schedule Validation: Ensures appointments respect working hours
Data Model
Example Usage
Configure a professional’s work schedule:API Endpoints
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET | /work_schedules | List all schedules | JWT |
POST | /work_schedules | Create schedule entry | JWT + Admin |
PATCH | /work_schedules/:id | Update schedule | JWT + Admin |
Day of week uses ISO format: 0 = Sunday, 1 = Monday, …, 6 = Saturday
Specialty Management
Organize medical departments and specialties for proper staff categorization.Key Capabilities
- Specialty Catalog: Maintain a comprehensive list of medical specialties
- Staff Assignment: Link professionals to their respective specialties
- Hierarchical Organization: Organize healthcare services by specialty
API Endpoints
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET | /specialities | List all specialties | JWT |
POST | /specialities | Create new specialty | JWT + Admin |
PATCH | /specialities/:id | Update specialty | JWT + Admin |
Common Specialties
Examples of medical specialties you can manage:- Cardiology
- Pediatrics
- General Medicine
- Surgery
- Psychiatry
- Dermatology
- And more…
Insurance Management
Track and manage insurance providers (Obras Sociales) for patient coverage.Key Capabilities
- Provider Registry: Maintain database of insurance providers
- Patient Coverage: Link patients to their insurance plans
- Coverage Validation: Ensure patients have valid insurance before appointment creation
API Endpoints
| Method | Endpoint | Description | Auth Required |
|---|---|---|---|
GET | /socials_works | List all insurance providers | JWT |
POST | /socials_works | Create new provider | JWT + Admin |
PATCH | /socials_works/:id | Update provider | JWT + Admin |
Security & Authentication
Robust security features to protect sensitive healthcare data.Authentication System
- JWT-Based Auth: Secure token-based authentication
- Password Hashing: bcryptjs for secure password storage
- Role-Based Access: Admin and user role differentiation
Registration
Login
Authorization Levels
- User Role
- Admin Role
- View professionals
- View patients
- View appointments
- View schedules and specialties
Data Validation
Comprehensive validation ensures data integrity across the platform.Input Validation
All endpoints useexpress-validator for robust validation:
- Required Fields: Ensures all mandatory fields are provided
- Format Validation: Email, phone, and date format checking
- Length Validation: DNI, password, and phone length requirements
- Custom Validation: Database uniqueness checks and business logic validation
Example: Professional Validation
Database Architecture
Clínica Vitalis uses a relational database model with Sequelize ORM.Entity Relationships
Key Relationships
- Many-to-Many: Professionals ↔ Patients (through Appointments)
- One-to-Many: Insurance Provider → Patients
- One-to-Many: Professional → Appointments
- One-to-Many: Patient → Appointments
- One-to-Many: Specialty → Professionals
- One-to-Many: Professional → Work Schedules
All relationships are enforced at the database level with foreign key constraints, ensuring referential integrity.
Intelligent Filtering
Advanced filtering capabilities across all resources.Filter Options
The platform supports filtering by:- Name/Surname: Search by professional or patient name
- DNI: Unique identifier lookup
- Specialty: Filter professionals by medical specialty
- Insurance: Filter patients by insurance provider
- Status: Filter by active/inactive status
- Date Range: Filter appointments by date
- Professional/Patient: View appointments by staff or patient
Usage Example
Technology Highlights
Frontend Stack
Built with modern React and TypeScript:Backend Stack
Robust Node.js backend with TypeScript:Next Steps
API Reference
Explore detailed API documentation
Database Schema
Learn about the data models
Authentication Guide
Implement secure authentication
Deployment Guide
Learn how to deploy the platform
