Hamilton Studio
ProjectsWritingSounds

© 2026 daniel hamilton ·raleigh, nc

Back to projects

Clinical Trial Protocol Explorer

2019

An interactive digital protocol interface demonstrating how clinical trial data is structured, versioned, and consumed by downstream systems.

clinical trialssystems designhealthcarenextjsai
Protocol Editor · STUDY-2024-001 · v3.2

XYZ-123 Phase III Trial

Type
Parallel Assignment
Allocation
Randomized
Masking
Double Blind
Duration
52 weeks
//
Primary ObjectiveDefine what the trial aims to accomplish and measure. Each objective maps to one or more endpoints.
OBJ-001Primary

Evaluate the efficacy of XYZ-123 versus placebo as measured by change from baseline in the primary composite endpoint at Week 12.

endpoints: Primary Efficacy Endpoint at Week 12

OBJ-002Secondary

Assess the durability of response through Week 52 and evaluate safety and tolerability across the study population.

endpoints: Response rate at Weeks 24 and 52 · Adverse Event Rate · Lab Abnormalities

OBJ-003Exploratory

Characterize patient-reported outcomes and quality of life changes associated with XYZ-123 treatment.

endpoints: PRO instrument scores at all timepoints

locked_until_approved
·modified: Dec 15, 2024 at 10:30 AM
regulatory_format
system_overview

Traditional protocols are static PDFs. Digital protocols decompose into structured, machine-readable components — objectives, endpoints, population criteria, schedule — consumable by any downstream system.

  • →automated_downstream_config: EDC, CTMS, and patient apps read the same source — no manual re-entry
  • →version_control: Every amendment tracked; prior versions accessible instantly
  • →reusable_components: Criteria, endpoints, and schedules templated and assembled into new trials
  • →clinician_chat_interface: Structured data becomes the grounding layer for AI assistants — query eligibility, visits, patients in natural language
  • →ai_analytics: Feasibility scoring, patient burden analysis, deviation detection at scale

// The prototype below simulates the clinician interface — ask about objectives, patient eligibility, visit schedules, or enrolled patients.

Protocol Data Layer

structured fields → USDM JSON API → downstream interfaces

Clinician Interface

Protocol Assistant

STUDY-2024-001 · XYZ-123 Phase III

Live demo

Hello — I'm the Protocol Assistant for STUDY-2024-001. I can surface information about trial objectives, eligibility criteria, visit schedules, investigative sites, enrolled patients, and more.

What would you like to know?

Clinical trial protocols are dense legal documents — often 200+ pages — that define every aspect of a study. They're simultaneously contracts, scientific plans, and operational blueprints. Protocol Explorer demonstrates what it looks like when this complexity is made navigable, machine-readable, and actionable through structured design.

The problem

During my time at Signalpath and IBM Watson Health, I worked directly with clinical trial operations teams. The pain points were consistent:

  1. Fragmentation — Protocol data lives in Word documents, spreadsheets, and multiple downstream systems (EDC, CTMS, IRT). Each requires manual re-entry.
  2. Versioning chaos — Amendments cascade through every system. There's no single source of truth.
  3. No machine-readability — PDF protocols can't feed directly into operational software. Humans re-type structured data from unstructured documents.

The industry standard, CDISC's Unified Study Definitions Model (USDM), addresses this by decomposing protocol content into JSON structures that flow automatically into trial systems. But few teams have seen what this looks like in practice.

Design goals

Make the structure visible. Protocol Explorer isn't a PDF reader — it's a demonstration of structured protocol architecture. Four views:

  • Objectives — Primary, secondary, and exploratory endpoints organized by tier
  • Population — Inclusion/exclusion criteria presented as parallel lists
  • Schedule — Visit windows and activities rendered as a timeline
  • Data Model — Machine-readable JSON showing how content maps to USDM fields

Show, don't explain. Instead of describing the CDISC standard, the interface is the standard. Users can explore a realistic Phase III protocol structure, copy the JSON, and see how human-readable content and machine-readable data coexist.

Design for clinicians and engineers. Clean, restrained typography for readability alongside monospace fonts and syntax highlighting for technical credibility. The interface bridges both audiences without feeling like a developer tool or an oversimplified dashboard.

Clinician chat interface

The second half of this project is a prototype chat interface layered on top of the same protocol data. It demonstrates a pattern that I think is underexplored in clinical trial software: using structured protocol data as the grounding layer for a natural-language interface.

A clinician using a real system built on USDM-compliant data could ask questions like:

  • "Is this patient eligible given their eGFR result?"
  • "What's the visit window for Week 12?"
  • "Which sites have capacity to enroll?"
  • "What adverse events need to be reported within 24 hours?"

The prototype here is keyword-matched and fictional — no LLM, no database. But the interaction model is real: when protocol content is structured rather than buried in PDFs, it becomes queryable. The same JSON that configures an EDC system can ground an AI assistant, populate a patient-facing app, or answer a coordinator's question in plain language.

This is the core argument for digital protocols: structure unlocks surface area.

Implementation

Built as two self-contained React components — the protocol viewer and the chat interface — with no external dependencies except lucide-react for icons. Styled with Tailwind CSS and designed to be:

  • Self-contained — Drop into any React app or framework
  • Composable — The viewer and chat are independent; either can be used standalone
  • Responsive — Works across desktop and mobile viewports
  • Accessible — Keyboard navigation, semantic HTML, clear focus states

The architecture is ready for module federation or monorepo deployment. Swapping the keyword-matched chat responses for a real LLM grounded on live USDM data would require changing one function.

Data model

The underlying data structure mirrors CDISC USDM v3.0:

{
  studyObjectives: [
    { id, tier, statement, endpoints: [...] }
  ],
  populationDefinition: {
    inclusion: [...],
    exclusion: [...]
  },
  scheduleOfActivities: [
    { visit, window, activities: [...] }
  ]
}

This isn't a full protocol builder — it's a demonstration layer showing how decomposed protocol content can be rendered, navigated, and exported. The data lives in plain JavaScript objects, not a database, making it trivial to swap in real study data.

Context

This project synthesizes patterns I observed at:

  • Signalpath — Working with sponsor teams managing multi-site trials and navigating protocol amendments
  • IBM Watson Health — Building software that ingests protocol data and surfaces it to operational users

Outcomes

Protocol Explorer serves as:

  • A design reference for teams implementing USDM-compliant systems
  • A conversation tool for explaining digital data flow to non-technical stakeholders
  • A proof of concept for clinician-facing chat interfaces grounded on structured protocol data
  • A portfolio piece showing how I think about information architecture in regulated industries

This project is a working demonstration you can click through, query, and break, demonstrating why structured protocol data matters and what it looks like when done well.

Tech: React, Tailwind CSS, Lucide Icons, CDISC USDM v3.0

Role: Design, architecture, implementation

Year: 2019