Grand Prize
ORION - Operating Room Intelligent Orchestration Node
A voice-directed surgical co-pilot for robotic surgery. Surgeons can speak naturally & instantly receive answers, live data on display, and real-time visual assistance - all without breaking scrub.
Core trick
Speech-to-intent agent routes a surgeon's voice commands to clinical lookups and displays results on-screen without hand contact.
Built with
adkcloudbuildcloudrunfastapigeminiliveapigoogleartifactregistryhtmljavascriptpythonvertexaiwebsocket
Description
ORION — Operating Room Intelligent Orchestration Node [Live Agents + UI Navigation]
From Idea to Impact
The Problem - Surgeon's hands locked in. They can not type, click, or interact with any computer system.
Robotic surgery solves many physical limitations of open procedures, but creates a paradox: the surgeon gains precision but loses access. For hours at a time, their hands are locked on the da Vinci controls inside a sterile field. Every critical piece of information —
patient labs, CT scans, drug safety, complication protocols
— is one broken scrub or one distracted circulating nurse away.
The evidence:
WHO checklists are skipped under pressure
— implementing the checklist reduces mortality by 47% and complications by 36%, yet consistent execution remains elusive in real OR conditions
Blood loss is underestimated by over 50%
— surgeons are wrong by more than 25% in 95% of cases, delaying transfusion decisions at the moment they matter most
Operative notes get written from memory 15+ days later
— vs. 28 minutes with real-time voice templates, sacrificing accuracy when it counts most for medicolegal and continuity-of-care purposes
1 in 20 drug administrations has an error
— 80% preventable with a simple cross-check against the patient's allergies and current medications
Critical View of Safety is rarely confirmed
— only 23.1% of laparoscopic cholecystectomies have CVS documented before bile duct division, the single step that prevents the majority of bile duct injuries
These aren't edge cases. They are systematic, evidence-backed gaps that occur in operating rooms every day — and they are all solvable with voice-directed AI.
The Solution - a surgical Co-Pilot that listens, understands, thinks & ACTS on surgeon's behalf
Surgeon's voice input → Live Agents's Response → UI Navigation
ORION is a
voice-activated surgical co-pilot
that listens continuously throughout the procedure. The surgeon speaks naturally — no button press, no sterile field break — and ORION responds in under a second with the right information on the console display and a calm, brief spoken confirmation.
The core insight
: the Gemini Live API's native audio dialog model supports simultaneous PCM audio input, audio output, function calling, and real-time image streaming in a single bidirectional session.
That combination —
listen, see, think, and speak simultaneously
— is exactly what an OR co-pilot requires, making ORION the
surgeon's hands on screen
.
ORION maps each OR domain to a specialist:
pre-op briefing, safety timeout, blood loss tracking, drug safety, anatomy guidance, complication protocols, operative documentation, SBAR handoff, and visual field analysis
. The root orchestrator routes intent to the right agent in real time.
The surgeon never thinks about routing — they just talk.
What It Does [Live Agents + UI Navigation]
ORION is a real-time surgical co-pilot that listens continuously throughout the procedure and responds to natural voice commands:
Intent
Example Commands
Response / Action
Patient data on demand
"Show allergies", "Display all labs"
Clinical cards appear instantly on the console
CT imaging navigation
"Jump to the tumor", "Next 5 slices", "Jump to the tumor"
Opens CT-view panel, navigates to the requested slice or landmark
3D anatomy reference
"Show the bronchus", "Rotate the model left", "Spin it on Y axis", "Reset the anatomy view"
Live anatomical context rendered in 3D model panel
WHO Safety Timeout
"Run the timeout"
Guided checklist with verbal confirmation of all items
Pre-op briefing
"Brief me on this case"
50-word structured summary from patient record
Blood loss tracking
"Blood loss 200 mL", "How much blood have we lost?"
Running EBL with threshold alerts at 15%, 25%, 40%
Drug safety checks
"Is cefazolin safe for this patient?"
Allergy cross-check with alternatives if contraindicated
Complication protocols
"I have bleeding 1000 mL, how to handle this complication"
Step-by-step SCAT protocol read aloud, anatomy highlighted
Surgical phase checklist
"What phase are we in", "Show vascular dissection checklist"
Phase checklist tile with steps and warnings
Anatomy guidance
"What's at risk here?", "What's Danger zone for this phase"
Phase-aware anatomical pearls, CT landmark jump
Live visual analysis
"What do you see?", "Enter visual assistance mode", "Is there bleeding?"
Surgical video + full screen capture streamed to Gemini; Visual Assistant reads the operative field, identifies structures, reads external monitors and EMR
Intraoperative documentation
"Log CVS confirmed", "Note: specimen removed"
Timestamped event log entry
Capture surgical photo
"Document this view", "Capture a photo"
Timestamped event log entry with captured image
Operative report
"Generate the report"
Narrative summary from session log
SBAR handoff
"Prepare handoff"
Structured
S
ituation,
B
ackground,
A
ssessment,
R
ecommendation sign-out checklist for shift changes
Hide selective/all panels
"Hide patient data", "Hide everything"
Hides respective/all panels
All outputs appear simultaneously as voice responses and visual cards on the surgical console.
The surgeon never types, clicks, or breaks scrub.
Features
✅ Features List
✅ Feature List
Live Agents
audio interaction
Barge-in
handled naturally
Context-aware
Native audio dialog
UI Navigation
: Visual UI Understanding & Interaction
Custom voice persona
Grounding
: prompt hardening & before/after tool callback
Live
video streaming
& Screen Share (1fps send_realtime)
Error handling
caught mid-stream
Multimodal
: simultaneous input
Automated deployment
Transcription
: Input and output audio
ADK Multi-agent
& multi-tool orchestration
How It Was Built
AI Core — Gemini Live API + Google ADK
The entire system runs on
gemini-live-2.5-flash-native-audio
via Vertex AI's Live API. This is the only model that supports simultaneous PCM audio input + audio output + function calling + image streaming in a single bidirectional session — exactly what a real-time OR environment demands.
Google ADK (v1.26.0) structures the intelligence as a nine-agent hierarchy:
ORION_Orchestrator
(root) — receives all voice input, applies wake-word filtering, calls 22 direct tools for single-action commands, and routes to specialist agents via
transfer_to_agent()
for complex multi-step protocols
8 specialist sub-agents
:
Briefing_Agent
,
Timeout_Agent
,
Report_Agent
,
Complication_Advisor
,
EBL_Tracker
,
Drug_Checker
,
Anatomy_Spotter
,
Handoff_Agent
Screen_Advisor
(Visual Assistant) — ORION's visual intelligence layer; activated system-wide when vision commands are issued, receives both the live surgical video feed (320×240 at 1 fps) and a full screen capture stream (768×768 at 1 fps via
getDisplayMedia
)
Transport Layer — FastAPI WebSocket
Each browser connection runs two concurrent async tasks:
upstream_task
— receives 16 kHz PCM audio chunks and JPEG image frames, buffers audio to 100ms chunks, forwards everything to Vertex AI via
LiveRequestQueue
downstream_task
— receives ADK events, serializes with
model_dump_json(by_alias=True)
, and streams JSON to the browser
Grounding & Safety Layer
Every tool call passes through ADK
before/after callbacks
. Argument whitelists validate field names, landmark names, phase names, and structure names before any tool executes. The model is instructed never to state clinical values from memory — it always calls the tool.
Frontend — Surgical Console
Vanilla HTML/CSS/JS with no framework. Four-panel dynamic tile layout that expands/contracts as panels show and hide. Real-time routing log, live transcript, agent chip highlighting, tool call metrics. Three.js r128 for 3D GLB rendering. CT PNG slices rendered on canvas.
Infrastructure & CI/CD
Cloud Run + Cloud Build CI/CD
. Every push to
main
automatically builds, pushes to
Artifact Registry
, and deploys.
GCS
hosts CT slices, 3D model, and surgical videos
Data Sources
Asset
Source
License
CT imaging (133 slices)
LIDC-IDRI-0001
, The Cancer Imaging Archive
CC BY 3.0
3D anatomy model
NIH 3D Print Exchange
/ Sketchfab
-
Surgical videos
Open-access VATS lobectomy recordings
Per source license
Patient record
Synthetic FHIR-compliant demo data — no real clinical information
N/A
Drug database
Hardcoded pharmacology rules for 10 common intraoperative drugs
N/A
Complication protocols
Structured SCAT protocols derived from open surgical literature
N/A
Google Cloud Services
Service
Purpose
Vertex AI
Hosts
gemini-2.5-flash-preview-native-audio-dialog
— live audio, function calling, and image streaming
Cloud Run
Serverless container hosting for the FastAPI WebSocket backend
Cloud Build
CI/CD pipeline — auto-builds and deploys on every push to
main
Artifact Registry
Stores Docker images built by Cloud Build
Cloud Storage (GCS)
Hosts CT scan slices, 3D anatomy GLB model, and surgical videos
Challenges
Learning the Gemini Live API / ADK (the expected unknowns)
Multi-agent live sessions
— In a
run_live()
session, ALL agents in the hierarchy must use a native audio model.
gemini-2.5-flash
(text-only) is silently accepted at definition time but causes runtime failures — discovered only after all agent code was written.
Sub-agent audio routing
— Early builds filtered audio events by
event.author === 'ORION_Orchestrator'
. This silenced all sub-agent responses. ADK's multi-agent live flow has sub-agents generate the audio; audio must be forwarded from all authors.
FIRST_EXCEPTION
vs
FIRST_COMPLETED
— Using
asyncio.FIRST_COMPLETED
killed multi-turn sessions after the first turn completed.
FIRST_EXCEPTION
(matching ADK's own implementation) was the fix.
transfer_to_agent
is not a callable tool
— Early versions defined it as a tool in the root agent's
tools=[]
. This caused
ValueError: tool 'transfer_to_agent' not found
. It's an ADK internal mechanism, not a user-defined tool.
getDisplayMedia()
permission dialogs
— Calling it on every Screen_Advisor activation triggered a browser permission dialog each time the agent was routed to. Solved by acquiring the stream once and keeping it alive across activations (
activate
/
deactivate
/
teardown
API), with
getDisplayMedia()
called only on first use.
Architecture and Design Challenges
Zombie sessions
— When
downstream_task
caught an exception and returned normally,
upstream_task
kept the WebSocket open indefinitely. The UI showed "active" but ORION had stopped responding. Fixed by re-raising after browser notification, triggering
FIRST_EXCEPTION
and clean teardown with auto-reconnect.
Screenshare deactivation on sub-agent routing
— Vision mode deactivated whenever routing changed to a non-vision agent (e.g.,
Complication_Advisor
). Fixed by adding complication and anatomy tools directly to
Screen_Advisor
so it handles those queries without transferring.
Continuous video cost
— Sending 1 fps surgical video frames continuously throughout the session consumed significant Gemini input token budget. Vision mode is now system-managed: both streams activate only when
Screen_Advisor
is the active agent.
Tool call deduplication
— The Live API occasionally fires duplicate function call events within milliseconds. A 4-second deduplication cache (
Map<key, timestamp>
) prevents double-execution of display tools.
CT/3D discoverability
— The model didn't know that
navigate_ct()
and
reset_3d_view()
also show
their respective panels (not just navigate/reset). Explicit examples in the root agent instruction resolved this.
Accomplishments
Built a
fully working real-time multi-modal AI agent
that can listen, see, think, and speak simultaneously in an environment (the OR) where latency and reliability matter more than almost anywhere else
Nine-agent hierarchy
routing correctly across all surgical domains — briefing, timeout, blood loss, drug safety, complications, anatomy, documentation, handoff, and visual analysis — all from natural speech
Visual Assistant
(Screen_Advisor) streams both surgical video and full screen capture to Gemini simultaneously, enabling the model to read external monitors, EMR screens, and operative fields without any API integration with hospital systems
A grounding layer (ADK before/after callbacks + argument whitelists)
that prevents hallucination on clinical data — the model cannot state a lab value it didn't retrieve from a tool
Full Cloud Run deployment with automated CI/CD — push to
main
, service is live in ~3 minutes
Zero-click surgical console
: the entire UI is driven by voice. The surgeon can navigate CT scans, rotate 3D models, run WHO protocols, capture photos, and generate operative reports without touching anything
What's Next
Real EHR integration
— Replace synthetic patient data with FHIR-compliant live patient record pull.
Validated drug database
— Replace the hardcoded pharmacology rules with a live API-backed formulary (e.g., FDA DailyMed) with real allergy cross-checks against the patient's current medications.
Post-op workflow
— Extend ORION's session log into a structured FHIR operative note that can be pushed to the EHR directly at case close, solving the 15.6-day documentation delay problem end-to-end.
The linked repo returns 404, so it was deleted or made private.