Skip to main content
Cases are the central entity in ORbit. Each case represents a single surgical procedure and tracks everything from scheduling through completion and validation.
The cases table has 8 database triggers that handle stat computation, flag detection, and milestone pre-population automatically. You don’t need to manually trigger any of these processes.

Case lifecycle

A case moves through these statuses:
StatusDescription
DraftCase created but not yet finalized. Can be freely edited.
ScheduledCase is confirmed on the schedule. Milestones are pre-populated.
In ProgressCase has started — at least one milestone has been recorded.
Needs ValidationCase is finished but waiting for data review before analytics processing.
CompletedCase is validated. Triggers the stats pipeline and flag detection.
CancelledCase was cancelled. Cancellation reason is recorded.

Cases list

The cases page shows all cases for your facility with tabbed filtering by status. Use the filter bar to narrow by:
  • Date range — specific day or date range
  • Surgeon — filter to a specific surgeon’s cases
  • Procedure — filter by procedure type
  • Room — filter by operating room
  • Flags — show only flagged cases
  • Complexity — filter by complexity level
Columns are sortable. Click a case row to open the case detail view.

Creating a case

Navigate to Cases > New case to create a case. Required fields:
FieldDescription
SurgeonThe operating surgeon
Procedure typeSelected from your facility’s procedure catalog
OR roomThe assigned operating room
Case dateScheduled date
Scheduled start timeExpected start time
Optional fields include payer, complexity level, notes, team members, and device rep/implant information.
Staff assignments (anesthesia, nursing, techs) all go through the unified case_staff table. You can add multiple staff members per role.

What happens at creation

When you save a new case, ORbit automatically:
1

Resolve milestone template

Uses the cascade: surgeon override, then procedure template, then facility default.
2

Pre-populate milestones

Creates milestone rows with empty timestamps, ready for recording during the case.
3

Stamp template ID

Records the resolved milestone_template_id on the case for historical consistency.
4

Assign to schedule

Places the case on the selected room’s schedule for the given date and time.

Case detail view

The case detail page provides a full view of a single case:

Milestone timeline

Milestones are displayed in a phase-grouped timeline. Each phase header shows the phase name and its boundary milestones. Individual milestones display:
  • Name and sequence position
  • Recorded time or empty state for pending milestones
  • Interval from previous milestone compared to facility median
Click a milestone to record the current time or edit an existing timestamp.

Financial breakdown

The financials section shows:
  • Revenue from payer reimbursement
  • Cost breakdown by category (soft goods, hard goods, OR time, etc.)
  • Profit and margin calculations
  • Comparison to procedure averages

Flags

Any flags detected on the case are displayed with severity, rule name, and the metric that triggered them.

Team and devices

View and edit the surgical team (surgeon, anesthesia, nurses, techs) and any device reps or implants associated with the case.

Validation

After a case completes, it enters the Needs Validation status. Validation confirms that the recorded data is accurate before it flows into analytics.
Once validated, case data feeds into surgeon scorecards, analytics dashboards, and flag detection. Ensure milestone times are accurate before validating.
When a case is validated, four things happen automatically:
1

Stats trigger fires

The record_case_stats trigger computes denormalized statistics.
2

Completion stats written

41 columns of denormalized data are written to case_completion_stats for fast analytics queries.
3

Flag detection runs

The flag engine evaluates all configured rules against the case and creates flag records for any violations.
4

Views refresh

Materialized views are refreshed so analytics dashboards reflect the new data.
You can exclude a validated case from analytics without deleting it. This is useful for test cases or cases with known data issues.

Bulk operations

OperationDescription
Bulk createCreate multiple cases at once for schedule loading
CancelCancel a case with a required cancellation reason
ExcludeExclude a validated case from analytics without deleting it

FAQ

Validated cases can still have their milestone timestamps edited, but the stats will need to be recomputed. Use the data quality review workflow to make corrections on validated cases.
Cancelled cases are soft-deleted — they’re marked as cancelled with a required reason but not removed from the database. Cancelled cases don’t appear in analytics calculations.
Financial data requires procedure pricing configuration in Settings > Financials. If pricing isn’t set up for the procedure type and payer combination, the financial section will be empty.

Next steps

Dashboard

See cases in the context of your facility’s live operations.

Analytics

Understand how validated case data powers the analytics suite.