Settings Reference
Complete field-by-field reference of every configuration in the system — searchable master list.
Settings Reference
This is the master reference for every configuration setting in Hospital OS. Use this page as a quick lookup to find any setting, its default value, and where it comes from.
How to Read This Page
Slot Engine Settings
Config type: SLOT_ENGINE | Cascade: Tenant → Centre → Department → Doctor
Setting | Type | Default | Source |
|---|---|---|---|
sku_resolution.priority_order | string[] | ["DOCTOR","CENTRE","DEPARTMENT","SERVICE"] | DB + Code |
sku_resolution.fallback_sku_id | number|null | null | DB + Code |
sku_resolution.strict_matching | boolean | false | DB + Code |
sku_resolution.cache_ttl_seconds | number | 300 | DB + Code |
slot_generation.granularity_minutes | number | 15 | DB + Code |
slot_generation.min_slot_duration_minutes | number | 10 | DB + Code |
slot_generation.buffer_between_slots_minutes | number | 5 | DB + Code |
slot_generation.break_handling | enum | EXCLUDE_OVERLAPPING | DB + Code |
slot_generation.align_to_hour | boolean | false | DB + Code |
capacity.default_per_slot | number | 1 | DB + Code |
capacity.overbooking_enabled | boolean | false | DB + Code |
capacity.overbooking_percentage | number | 0 | DB + Code |
capacity.walk_in_reserve.strategy | enum | NONE | DB + Code |
capacity.walk_in_reserve.reserve_percentage | number | 0 | DB + Code |
capacity.walk_in_reserve.reserve_count | number | 0 | DB + Code |
capacity.walk_in_reserve.apply_to_online_only | boolean | true | DB + Code |
patient_type_duration.NEW.additional_minutes | number | 0 | DB + Code |
patient_type_duration.EXISTING.additional_minutes | number | 0 | DB + Code |
patient_type_duration.FOLLOW_UP.additional_minutes | number | 0 | DB + Code |
booking_rules.min_advance_booking_hours | number | 1 | DB + Code |
booking_rules.max_advance_booking_days | number | 90 | DB + Code |
booking_rules.same_day_booking_allowed | boolean | true | DB + Code |
booking_rules.same_day_cutoff_hours | number | 2 | DB + Code |
booking_rules.max_bookings_per_patient_per_day | number | 3 | DB + Code |
booking_rules.max_bookings_per_patient_per_doctor_per_day | number | 1 | DB + Code |
search.default_range_days | number | 7 | DB + Code |
search.max_range_days | number | 90 | DB + Code |
search.max_results_per_query | number | 100 | DB + Code |
search.sort_by | enum | EARLIEST | DB + Code |
search.include_fully_booked | boolean | false | DB + Code |
approval.required | boolean | false | DB + Code |
approval.timeout_hours | number | 24 | DB + Code |
approval.timeout_action | enum | AUTO_APPROVE | DB + Code |
cache.availability_ttl_seconds | number | 60 | DB + Code |
cache.capacity_check_mode | enum | REALTIME | DB + Code |
Appointment Settings
Config type: APPOINTMENT | Cascade: Tenant → Centre → Department → Doctor
Setting | Type | Default | Source |
|---|---|---|---|
hold.duration_minutes | number | 10 | DB + Code |
payment.timeout_minutes | number | 10 | DB + Code |
cancellation.policies | array | [{hours:24, refund:100%}] | DB + Code |
cancellation.who_can_cancel | string[] | ["PATIENT","STAFF","DOCTOR","SYSTEM"] | DB + Code |
cancellation.reason_required | boolean | false | DB + Code |
cancellation.cooling_off_minutes | number | 5 | DB + Code |
approval.approval_required | boolean | false | DB + Code |
approval.approval_timeout_hours | number | 24 | DB + Code |
approval.approval_timeout_action | enum | CANCEL_WITH_REFUND | DB + Code |
reschedule.allowed | boolean | true | DB + Code |
reschedule.max_reschedules | number | 3 | DB + Code |
reschedule.until_hours_before | number | 4 | DB + Code |
reschedule.free_reschedule_count | number | 1 | DB + Code |
reschedule.price_difference_handling | enum | PAY_DIFFERENCE | DB + Code |
reschedule.same_doctor_required | boolean | false | DB + Code |
check_in.early_window_minutes | number | 30 | DB + Code |
check_in.late_arrival_handling | enum | WARN | DB + Code |
check_in.late_threshold_minutes | number | 15 | DB + Code |
no_show.grace_period_minutes | number | 15 | DB + Code |
no_show.auto_mark_enabled | boolean | true | DB + Code |
no_show.auto_mark_after_minutes | number | 30 | DB + Code |
no_show.blacklist_threshold | number | 3 | DB + Code |
no_show.blacklist_window_days | number | 90 | DB + Code |
completion.auto_complete_after_hours | number | 24 | DB + Code |
completion.require_doctor_confirmation | boolean | false | DB + Code |
Billing Settings
Config type: BILLING | Scope: Tenant only
Setting | Type | Default | Source |
|---|---|---|---|
auto_generate_bills | boolean | false | DB + Code |
auto_email_on_issue | boolean | false | DB + Code |
auto_whatsapp_on_issue | boolean | false | DB + Code |
pdf_template_code | string | HOS_BILL_STANDARD | DB + Code |
bill_consolidation_enabled | boolean | false | DB + Code |
approval_threshold_amount | number (paise) | 100000 | DB + Code |
Reminder Settings
Config type: REMINDER | Scope: Tenant only
Setting | Type | Default | Source |
|---|---|---|---|
appointment_reminders[].offset_minutes | number | -1440, -120, -30 | DB + Code |
appointment_reminders[].channels | string[] | varies | DB + Code |
appointment_reminders[].template_key | string | varies | DB + Code |
appointment_reminders[].priority | enum | HIGH | DB + Code |
appointment_reminders[].enabled | boolean | true | DB + Code |
Entity-Level Settings
These settings are configured directly on entities (centres, services, doctors) rather than through the hierarchical config system.
Centre Settings
Setting | Type | Default | Source |
|---|---|---|---|
working_hours | JSON array | [] | DB-only |
holidays | JSON array | [] | DB-only |
timezone | string | Asia/Kolkata | DB-only |
is_active | boolean | true | DB-only |
Service Settings
Setting | Type | Default | Source |
|---|---|---|---|
requires_doctor | boolean | true | DB-only |
requires_referral | boolean | false | DB-only |
requires_prior_appointment | boolean | false | DB-only |
default_duration_minutes | number | 15 | DB-only |
fasting_required | boolean | false | DB-only |
fasting_hours | number|null | null | DB-only |
Doctor Config Fields
Setting | Type | Source |
|---|---|---|
consultation_fee | number (paise) | DB-only |
new_patient_fee | number (paise) | DB-only |
follow_up_fee | number (paise) | DB-only |
repeat_fee | number (paise) | DB-only |
follow_up_rules.window_days | number | DB-only |
follow_up_rules.max_follow_ups | number | DB-only |
repeat_rules.window_days | number | DB-only |
repeat_rules.discount_percentage | number | DB-only |
Notification Routing
Setting | Type | Source |
|---|---|---|
event_type | string | DB-only |
routing_strategy | enum | DB-only |
target_staff_types | string[] | DB-only |
channels | string[] | DB-only |
escalation_config.levels[].timeout_minutes | number | DB-only |
escalation_config.levels[].target_staff_types | string[] | DB-only |
priority | enum (LOW/MEDIUM/HIGH/CRITICAL) | DB-only |
is_active | boolean | DB-only |
System Constants (Code-Only)
These values are hardcoded and cannot be changed without a code deployment:
Setting | Value | Purpose |
|---|---|---|
default_timezone | Asia/Kolkata | System fallback timezone |
default_currency | INR | Currency for all monetary values |
paise_per_rupee | 100 | Currency subdivision |
booking_reference_prefix | APT | Prefix for appointment reference numbers |
package_reference_prefix | PKG | Prefix for package reference numbers |
cron_batch_size | 200 | Batch size for scheduled jobs |
default_slot_duration_minutes | 15 | Ultimate fallback for slot duration |
default_search_range_days | 7 | Default slot search window |
Cache TTLs
Data is cached in Redis with these time-to-live values:
Entity | TTL | Human Readable |
|---|---|---|
CENTRE | 3600s | 1 hour |
DEPARTMENT | 43200s | 12 hours |
STAFF_PROFILE | 7200s | 2 hours |
SERVICE | 21600s | 6 hours |
SKU_CATALOG | 3600s | 1 hour |
DOCTOR_AVAILABILITY | 900s | 15 minutes |
CONFIG | 1800s | 30 minutes |
DOCTOR_SERVICE | 21600s | 6 hours |
CENTRE_SERVICE | 21600s | 6 hours |
PATIENT | 86400s | 24 hours |
PRESCRIPTION | 300s | 5 minutes |
What's Next
- Config Hierarchy — How settings cascade across levels
- Tenant Configuration — Setting up your hospital's base configuration
- Appointment Settings — Detailed appointment config reference
Last updated on