Technology Aug 25, 2026 · 3 min read

🩺 Building RadScan AI: Autonomous Multimodal Radiology Triage on GCP Cloud Run & Vertex AI

Disclaimer: This article was created for the purpose of entering the All Things Agentic Hackathon hosted by Google Cloud and Devpost. πŸ’‘ The Problem: Radiologist Burnout & DICOM Bottlenecks Radiologists worldwide face extreme burnout, evaluating 50+ volumetric MRI scans daily. E...

DE
DEV Community
by Sahil
🩺 Building RadScan AI: Autonomous Multimodal Radiology Triage on GCP Cloud Run & Vertex AI

Disclaimer: This article was created for the purpose of entering the All Things Agentic Hackathon hosted by Google Cloud and Devpost.

πŸ’‘ The Problem: Radiologist Burnout & DICOM Bottlenecks

Radiologists worldwide face extreme burnout, evaluating 50+ volumetric MRI scans daily. Each scan contains 24 to 40 high-resolution DICOM slices. Manually inspecting every plane, checking ligament continuity across depth slices, and dictating repetitive clinical reports takes 10 to 15 minutes per study.

We built RadScan AI to eliminate this workflow bottleneck.

By combining GCP Cloud Run (L4 GPU scale-to-zero microservices), a 2.5D Volumetric CNN-BiGRU Neural Network (trained on 819,100 DICOMs / 530 GB data), and Vertex AI Gemini 3.5 Flash / 1.5 Pro, RadScan AI acts as an autonomous radiology co-pilot that performs 12-target pathology detection, pinpoints lesion coordinates with Grad-CAM visual heatmaps, and drafts structured DICOM reports in under 3 secondsβ€”saving radiologists ~6 minutes per scan.

πŸ—οΈ System Architecture & GCP Infrastructure

RadScan AI is architected as two decoupled, serverless microservices on Google Cloud Platform:

flowchart TD
    subgraph Client ["Next.js 14 Medical Workspace"]
        A[1-Click Sample Buttons / DICOM Upload] --> B[Multi-Planar Slice Slider]
        B --> C[Grad-CAM Heatmap Opacity Layer]
        B --> D[Gemini Clinical Report Generator]
    end

    subgraph Backend ["FastAPI Microservice (GCP Cloud Run L4 GPU)"]
        E[POST /api/v1/predict] --> F[2.5D Volumetric CNN-BiGRU Engine]
        F --> G[Grad-CAM Heatmap Synthesizer]
        E --> H[POST /api/v1/report]
        H --> I[Google ADK / Vertex AI Gemini 3.5 SDK]
    end

    Client --> Backend

Key Technical Highlights:

  1. Frontend: Built with Next.js 14 (App Router), React 18, and Tailwind CSS. Features an interactive 24-slice DICOM viewer slider, Grad-CAM opacity toggles, and an interactive 6-step guided tour.
  2. Backend Microservice: Built with FastAPI and PyTorch, packaged in a multi-stage Docker container deployed to GCP Cloud Run with NVIDIA L4 GPU acceleration and scale-to-zero support ($0.00 idle cost).
  3. LLM Engine: Vertex AI Gemini 3.5 Flash accessed via google-cloud-aiplatform and google-genai SDK in native JSON mode (response_mime_type="application/json").

🧠 The Math Behind the 2.5D Volumetric Neural Engine

Single 2D MRI slices often mimic tears due to volume averaging artifacts. RadScan AI processes 24 parallel depth slices across Sagittal, Coronal, and Axial planes simultaneously:

1. Depth-Wise BiGRU Temporal Slice Attention

For a 3D MRI volume stack S = {s1, s2, ..., s24}, spatial CNN features f_t = CNN(s_t) are fed into a Bidirectional GRU to track ligament continuity across consecutive depth slices:

  • Forward Hidden State: h_fw(t) = GRU_fw(f_t, h_fw(t-1))
  • Backward Hidden State: h_bw(t) = GRU_bw(f_t, h_bw(t+1))
  • Combined Depth Feature: h_t = [h_fw(t) || h_bw(t)]

2. Grad-CAM Visual Explainability Heatmaps

The explainability weights alpha_k^c for target class c at feature map A^k are computed via backpropagated gradients across feature channels:

  • Feature Gradient Weight: alpha_k^c = (1/Z) * sum_i sum_j ( dY^c / dA_{i,j}^k )
  • Heatmap Activation: L_Grad-CAM = ReLU( sum_k ( alpha_k^c * A^k ) )---

⚑ Deployment & Scalability

Deploying to GCP Cloud Run ensures our backend scales down to 0 instances when idle, keeping cloud costs at virtually $0/month while serving fast, sub-second inference on demand:

# Build & Deploy Backend Microservice to Cloud Run
gcloud run deploy radscan-ai-backend \
  --image gcr.io/YOUR_GCP_PROJECT_ID/radscan-ai-backend:v1 \
  --platform managed \
  --region us-central1 \
  --memory 2Gi \
  --cpu 2 \
  --allow-unauthenticated

πŸ“ˆ Learnings & Future Roadmap

Building RadScan AI for the All Things Agentic Hackathon proved that combining high-performance computer vision with structured Gemini 3.5 LLM agents creates production-grade medical automation.

#AllThingsAgenticHackathon #GoogleCloud #VertexAI #Gemini #FastAPI #NextJS #AIHealthcare

DE
Source

This article was originally published by DEV Community and written by Sahil.

Read original article on DEV Community
Back to Discover

Reading List