IMDA Open Innovation Platform — Call 28 · NUH Medical Affairs

PULSE

Platform for Unified Learning, Supervision and Education.
Clinical education runs on data. Right now, that data lives in Excel files, email threads, and disconnected forms. PULSE puts it where it belongs — in one place, captured once, trusted everywhere.

PULSE — 3 Minute Product Overview
3:00
50%
Reduction in manual data entry time
90%
Data accuracy target across disciplines
80%
Faster report generation
30%
Increase in survey completion rates

NUH doesn't have a data problem.
It has a trust problem.

Every year, hundreds of medical, nursing, and allied health students rotate through NUH's clinical departments. Each interaction — every teaching session, every supervised procedure, every feedback moment — generates data that feeds into billing, appraisal, accreditation, and programme improvement.

That data currently lives in Excel trackers, FormSG exports, email chains, and three disconnected systems that don't speak to each other. Administrators don't trust the data because they didn't see it enter cleanly. Tutors don't log accurately because the systems punish them for trying. Students stop filling surveys because they receive one per interaction regardless of how many happen in a day.

Why now?

Clinical education volume at NUH is growing. Partner institutions are multiplying. Regulatory reporting requirements are tightening. The manual coordination approach that worked at smaller scale is now a documented source of billing errors, appraisal inaccuracies, and missed accreditation submissions. Previous attempts — QR codes, Power Apps, BLUE system upgrade — failed because they digitised the surface without addressing the structural problem beneath it. The infrastructure to fix it properly — event-driven systems, mobile-first logging, AI-assisted intelligence — now exists and is production-ready.

📋

Fragmented Lifecycle Management

No integrated system for end-to-end pre-boarding, onboarding, and offboarding. Duplicated effort, administrative errors, no single source of truth.

⏱️

Inaccurate Teaching Hour Tracking

Hours manually logged retrospectively, often late or inconsistently. Low compliance. Event-by-event tagging is time-consuming and error-prone.

📊

Reporting Bottlenecks

Manual report generation taking days instead of minutes. Limited customisation. Decisions made on data that's already outdated by the time it's compiled.

😓

Survey Overload & Fatigue

Students receive one survey per tutor interaction regardless of how many occur in a day. Result: low participation, degraded response quality, meaningless data.

🔔

Inefficient Feedback Monitoring

No automation, no real-time visibility. Administrators manually track completion and send reminders. Missed submissions discovered only at billing time.

Five people. One platform.
Zero compromises.

Every design decision in PULSE is traceable to a specific, identified need of a specific, identified person. These are not user types — they are the people this system will succeed or fail with.

👩‍💼

Sarah

Programme Administrator — Allied Health Education

What She Actually Needs

Stop being the human middleware between broken systems
Exceptions surfaced automatically — not hidden in spreadsheets
Trust the system from the first interaction (bulk upload)
Reports generated in one click, not assembled over two days
Her Fear

Something slipping through — a missed billing entry, a student with no tutor, a feedback form never triggered. The consequences land on her.

Journey: Before → After PULSE

1
Before

Receives student lists via email. Manually creates records across multiple Excel files.

1
After

Uploads any-format roster. PULSE maps columns, flags duplicates, dry-run preview before commit.

2
Before

Chases tutors for hours via email. Downloads FormSG exports, manually reconciles.

2
After

Ops Feed shows only exceptions. Automated escalation handles reminders. Zero manual chasing.

3
Before

Spends days building billing and appraisal reports from multiple sources.

3
After

One-click report generation. Natural language queries. Export in finance-ready format.

👩‍⚕️

Dr. Aisha

Clinical Tutor — Medical Rotations

What She Actually Needs

Log a session in under 30 seconds between patients
Never wonder whether hours were recorded or approved
See her teaching portfolio building over time
Feedback compiled automatically — no navigation required
Her Fear

Hours not counted. Teaching effort not recognised. She discovers a discrepancy at billing time — too late to correct.

Journey: Before → After PULSE

1
Before

Teaches all day. Must recall and reconstruct sessions later in a cumbersome portal.

1
After

PULSE pre-populates sessions from schedule. She confirms in two taps. 20 seconds total.

2
Before

Submits hours, hears nothing. No visibility into approval status until billing runs.

2
After

Real-time state machine: Submitted → Under Review → Approved. Every loop is closed visibly.

3
Before

Reviews feedback across multiple disconnected screens. No consolidated view.

3
After

Teaching portfolio auto-compiled: hours by discipline, feedback trend, recognition history.

🎓

Priya

Medical Student — Clinical Posting

What She Actually Needs

One feedback touchpoint per day — not one per interaction
Clear visibility into posting progress and requirements
Feedback that feels developmental, not administrative
Notifications only when something actually requires action
Her Fear

Missing a required submission and having it affect her academic standing — while being overwhelmed by the volume of forms already.

Journey: Before → After PULSE

1
Before

Receives onboarding instructions across multiple emails. Unclear tutor assignments.

1
After

Single onboarding link. Schedule, tutors, and requirements in one view.

2
Before

Receives a separate survey for every tutor interaction. Up to 6 forms in one day.

2
After

One end-of-day consolidated prompt covering all tutors. Guided reflection framing. 3 minutes total.

3
Before

No visibility into posting progress. Discovers missed submissions late.

3
After

Progress arc visible. Private reflection summary at posting end. Developmental, not just administrative.

📈

Bryan

Head of Medical Affairs — Strategic Oversight

What He Actually Needs

Signal separated from noise — not more dashboards
Data he can defend in a meeting without calling Sarah first
Cross-disciplinary visibility in one view
Programme quality trends over time, not just snapshots
His Fear

Being asked a strategic question in a meeting and having the wrong answer — because the data was compiled manually and was already outdated.

Journey: Before → After PULSE

1
Before

Reviews manually compiled reports that took days to produce and may already be stale.

1
After

Opens PULSE on Monday to a 5-sentence narrative brief: what changed, what's at risk, what deserves recognition.

2
Before

Extracts positive feedback manually for award nominations. Negative feedback for programme review.

2
After

Recognition queue auto-populated. Feedback clusters surfaced by theme. Zero manual extraction.

The Supervisor

Senior Clinician — Approval Layer

What They Actually Need

Full context in the notification — no extra login steps
Risk signals before approving anomalous submissions
One-tap approval for clean submissions
Audit trail that protects them if challenged
Their Fear

Approving something incorrect and being held accountable for it. The system must give them enough context to be confident — or catch what's wrong before they sign off.

Journey: Before → After PULSE

1
Before

Receives generic notification. Must log in, navigate to submission, find context manually.

1
After

Notification contains full context: student, session, duration, historical baseline. Approve in 60 seconds.

2
Before

No signal for anomalous hours. Approves without knowing a submission is 40% above baseline.

2
After

Anomaly flag shown inline with context. Not an accusation — a prompt for informed review before approval.

Six modules. One source of truth.

Every downstream process — billing, appraisal, feedback, accreditation — is a consequence of one teaching event being captured accurately. Not six separate workflows. One.

👥

Lifecycle Management

Centralised student and tutor records across all disciplines. Intelligent bulk upload, semester memory, bi-temporal data modelling.

Core
⏱️

Teaching Activity

Mobile-first session logging with proactive pre-population. Visible state machine. Anomaly detection on every submission.

High Frequency
📝

Feedback & Surveys

Configurable templates. Session-batched student prompts. Intelligent frequency capping. Guided reflection framing.

Data Quality
📊

Reporting & Intelligence

Natural language queries. Narrative intelligence briefs. CQRS-separated read model for sub-minute report generation.

AI-Powered
🔔

Notifications

Behaviour-adaptive escalation. Context-aware content. Urgency calibrated to operational consequence, not fixed schedules.

Compliance Driver
🔗

Integration Bridge

Anti-Corruption Layer connecting BLUE, TAS, and Jobplan Portal. Core immune to legacy system changes.

Hospital Systems
pulse.nuhs.edu.sg/dashboard
Operations Feed
Semester 1, AY 2025/26 — Allied Health & Nursing
Fri, 17 Apr 2026 · 09:14
847
Active Students
↑ 12% from last cycle
94%
Feedback Completion
↑ Highest this year
2,341
Teaching Hours Logged
↑ 8% above target
3
Actions Required
↓ 18 yesterday
Priority Actions
Dr. Tan Wei Ming has 4 pending hours. Billing run Friday — unresolved in 6h will affect 2 student records.
Remind
OT Cohort B feedback completion at 67%. Deadline in 48h. 8 students not responded.
Chase
3 tutors crossed teaching excellence threshold this cycle. Recognition queue ready for review.
Review
Semester Memory pre-populated Sem 2 config from last year. 94% match rate. Confirm when ready.
Review
System Status
Anomaly Detected
Dr. Lim submitted 18hrs in 2 days (40% above baseline). Flagged for supervisor review.
Integration
NUS BLUE sync delayed 12min. Queued. 0 data loss.
Billing
This cycle's billing report ready. 312 approved entries. Export available.
9:14 AM PULSE ● ●●● 98%
Good morning, Dr. Aisha
3 sessions to confirm today

Li Wei Jian · Year 3 Medicine

Ward Round — General Medicine · 45 min

✓ Pre-populated from schedule

Priya Ramasamy · Year 3 Medicine

Bedside Teaching — Cardiology · 30 min

✓ Pre-populated from schedule

+ Log Ad Hoc Session

Student · Duration · Type — 20 seconds

This cycle: 47.5h approved · 3h pending
Natural Language Report Builder
Ask for any report in plain English. PULSE translates, confirms, then generates.
Filter confirmed: Nursing discipline · Current academic cycle · Approved hours > 20 · Average student feedback ≥ 4.0/5.0
Nursing — High-Performing Tutors · Semester 1 AY25/26
Tutor Department Hours Avg Feedback Status
Sr. Mdm Lim BeeCardiology34.5h4.8/5Approved
Dr. Rajesh KumarGen Medicine28.0h4.6/5Approved
Sr. Wong Ai LingPaediatrics22.5h4.4/5Pending
Generated in 0.4s · Saved as reusable template · Full audit trail logged

Built for data integrity
under operational chaos.

Hover over any component to understand its role. Every layer was chosen to ensure that data entered at one end emerges correctly at the other — for billing, appraisal, and accreditation.

CLIENT LAYER 🖥 Web App (Next.js) 📱 Mobile (React Native) 🌐 Partner Portal API GATEWAY Auth0 · OPA · Rate Limiting · Audit Trail · mTLS DOMAIN MODULES Identity & Access ABAC · OPA Lifecycle Management Bi-temporal · Memory Teaching Activity State Machine · Anomaly Feedback & Survey Batch · Cap · Template Reporting & Intelligence CQRS · NL · AI Notifications & Comms Adaptive · Contextual EVENT STREAM — KAFKA IMMUTABLE EVENT BUS SESSION_SUBMITTED · FEEDBACK_COMPLETED · ANOMALY_FLAGGED · HOURS_APPROVED · STUDENT_ONBOARDED DATA LAYER PostgreSQL 16 + pgvector · RDS Singapore Operational · Vector · Audit Redis 7 ElastiCache Singapore Cache · Queue · Sessions S3 Event Archive ap-southeast-1 Immutable · Checksummed AI / ML Layer Anomaly · Claude · Vectors Enhancement not Foundation Integration Bridge BLUE · TAS · Jobplan Anti-Corruption Layer 🇸🇬 ALL INFRASTRUCTURE ON AWS ap-southeast-1 (SINGAPORE) — PDPA DATA RESIDENCY ENFORCED AT VPC LEVEL
Domain Module
Event Stream
API Gateway
Data Layer
← Hover components for details

One event. Every consequence.

Trace how a single teaching session captured by Dr. Aisha flows through PULSE and emerges as billing data, appraisal record, feedback trigger, and audit entry — with zero manual intervention.

📱 Session Logged SESSION_SUBMITTED event ⚡ Kafka 🔍 Anomaly Detection Engine ✅ Supervisor Approval + Context 🔔 Feedback Batch Trigger APPROVED 💰 Billing Auto-Updated 📋 Appraisal Record Updated 🔒 Audit Trail Immutable Log 📊 Dashboard Updated < 60 seconds ONE SESSION LOGGED → BILLING · APPRAISAL · AUDIT · FEEDBACK · DASHBOARD — ALL UPDATED AUTOMATICALLY

Boring where boring is right.
Modern where modern solves something boring can't.

Every choice below was argued against its alternatives. Nothing was chosen for fashion. Everything was chosen because a specific requirement couldn't be met any other way.

Frontend
Next.js 14
React Server Components for server-rendered dashboard views. Perceived data freshness determines administrator trust — loading spinners erode it.
Beats Vite SPA: server rendering wins on dashboard trust signals.
React Native + Expo
Single codebase iOS/Android. OTA updates for notification engine without App Store review cycles.
Beats PWA: Push notifications on iOS require native. Non-negotiable for compliance.
shadcn/ui + Tailwind
Components owned in codebase, not as locked dependency. Approval workflow UI needs to bend — MUI and Ant fight customisation.
Beats MUI: customisable approval interfaces, no runtime CSS-in-JS cost.
Backend
Node.js + TypeScript + Fastify
TypeScript end-to-end: billing-critical data shape changes surface as compiler errors before deployment. Fastify: 3× Express throughput, JSON Schema validation at framework level.
Beats Express: framework-level request validation eliminates data integrity bug category.
tRPC + REST
tRPC for internal: end-to-end type safety, no schema maintenance. REST for external: stable, documented interface for integration bridge and partner portals.
Beats GraphQL: REST + tRPC serves stable query patterns without N+1 complexity.
BullMQ on Redis
All async operations (bulk upload, reports, notifications, embeddings) as managed jobs. Retry logic, dead letter queues, dashboard visibility.
Beats polling: unreliable under load. Beats SQS: no additional vendor at this scale.
Data
PostgreSQL 16 + pgvector
Relational integrity for billing data. Bi-temporal tables for historical accuracy. pgvector for semantic search — no separate vector DB needed at this scale.
Beats MongoDB: billing demands ACID. pgvector eliminates second infrastructure component.
Confluent Kafka (Singapore)
Durable, replayable, schema-governed event stream. Schema Registry enforces compatibility. Consumer that is down when event fires does NOT miss it.
Beats Redis Pub/Sub: durability guarantee is non-negotiable for audit-critical events.
CQRS Read Model
Analytical queries against pre-aggregated projections, never the operational DB. Billing-critical writes never degraded by report generation load.
Beats single DB: report query load cannot be allowed to impact billing write path.
AI & Intelligence
Anthropic Claude Sonnet
200k token context handles full-cycle feedback summarisation without chunking degradation. NL→filter spec translation with confirmation layer before execution.
Beats GPT-4o on context window. LLM never touches operational data directly.
scikit-learn Anomaly Detection
Isolation Forest per tutor. Learns from supervisor overrides. Python microservice — right language for the job without forcing Node ecosystem.
Beats static rules: calibrates to NUH patterns over time. Rules accumulate false positives.
Auth0 (Singapore tenant)
Institutional SSO federation: NUHS Azure AD + partner institution identity providers. Authentication is the highest-consequence place to have a vulnerability.
Beats custom auth: a product team cannot compete with Auth0's security engineering at this timeline.

Not better features.
Better thinking.

Every competing submission will digitise NUH's existing workflows. PULSE is the only submission that identified why those workflows fail at a structural level — and designed a system that fixes the structure, not the symptoms.

01

Data at Point of Creation

Every platform in this space treats consolidation as a downstream step. PULSE makes consolidation impossible to need — data enters once, at source, and every downstream process is a consequence. There is no reconciliation gap to close because there is no gap.

02

Bulk Upload That Earns Trust

The highest-stakes UX moment in any clinical education platform is the first semester upload. Every competing platform demands template conformance. PULSE reads what you have, infers what it means, and asks you to confirm — not reformat. Trust is built in the first five minutes, not demanded.

03

Compliance Through Confirmation, Not Entry

Teaching hour compliance is low not because tutors are unwilling but because logging systems require reconstruction after the fact. PULSE pre-populates sessions from known schedules. Tutors confirm rather than enter. The structural reason for non-compliance is removed.

04

Session-Batched Feedback

The industry response to survey fatigue is fewer surveys — which trades compliance for data completeness. PULSE consolidates without reducing. One end-of-day prompt covers all tutors in a single submission flow. Data completeness maintained. Perceived burden reduced by 4×.

05

Anomaly Detection That Learns

Static rules accumulate false positives as workloads change. PULSE's per-tutor model updates from every supervisor decision — approved anomalies update the baseline, sustained flags reinforce detection thresholds. The system becomes more accurately calibrated the longer it runs.

06

NL Reports With the Risk Removed

Most NL reporting implementations pass queries straight to LLM-generated SQL. PULSE shows the filter specification to the user before execution. Every report carries a visible filter summary. LLM errors surface before execution, not as corrupted billing data discovered at month-end.

07

Behaviour-Adaptive Notifications

Generic reminder systems treat all users and all deadlines identically. PULSE's engine maintains a communication profile per user — tone, channel, and urgency adapt to response history and operational consequence. Compliance improvement is a communication design problem, not just a UX one.

08

Anti-Corruption Integration

Tight coupling to legacy hospital systems is why every previous integration attempt has broken when systems change. PULSE's ACL means external system format changes touch only the connector — the core is architecturally immune. Integration failures queue and retry. The system never stops because an external system did.

The Honest Comparison

Competing Submissions

Digitises existing workflows into web forms
Requires template conformance for data upload
Static reminder schedules
One survey per tutor interaction
Static anomaly detection rules
NL queries execute LLM-generated SQL directly
Tight coupling to legacy systems
Good at launch, same value after 2 years
vs

PULSE

Redesigns the structure that makes workflows fail
Intelligent column inference — adapts to your data
Behaviour-adaptive escalation per user profile
Session-batched daily consolidation with frequency capping
Per-tutor learning model that improves from decisions
LLM→filter spec→confirm before execution. No SQL risk.
Anti-Corruption Layer: core immune to external changes
Compounds in value — more accurate and useful over time

Stress-tested.
Not just designed.

A submission that owns its risks is more credible than one that pretends they don't exist. These are the three that matter most — and the specific responses to each.

High Impact

Tutor Non-Adoption

Previous solutions failed here. A better interface alone doesn't fix behaviour established over years. Dr. Aisha has better things to do between patients than open a portal.

Mitigation

Proactive session detection reduces logging to confirmation. Professional portfolio framing creates intrinsic motivation. Supervisor-visible compliance creates social accountability. Plus: structured onboarding with department champions — clinicians who used the system in UAT advocating peer-to-peer. Technology gets you 70%. Change management gets the rest.

High Impact

Bi-Temporal Model Complexity

Bi-temporal tables are the right answer for audit integrity. They are also genuinely difficult to implement correctly. A wrong query returns incorrect billing data silently — no error, wrong output.

Mitigation

Query abstraction layer encapsulates all temporal logic. No service writes raw temporal SQL. The abstraction is exhaustively tested including explicit failure mode tests: cycle boundary queries, mid-posting edits, retrospective corrections. If timeline pressures, fallback is append-only versioned records — simpler, still audit-compliant.

Medium Impact

Legacy System Integration

Hospital legacy systems are undocumented, have unofficial APIs that change without notice, and are operated by IT teams with independent change management processes.

Mitigation

Anti-Corruption Layer means only the connector changes when external systems do — core is untouched. Graceful degradation: connectors queue and retry if unavailable. Prototype demonstrates the architecture with simulated connectors — pattern proven, specific connector implementation is a parallel workstream, not a prototype dependency.

The Deliberate Trade-offs

Microservices architecture Independent deployment, language heterogeneity, maximum fault isolation
Modular monolith with event seams A 5-person team cannot operate 12 independently deployed services without operational overhead consuming engineering capacity. Monolith extracts to services when scale demands it — deferred to evidence.
Real-time report consistency Guarantee that a report reflects an approval made one second ago
CQRS eventual consistency (<60s) Running analytical queries against the operational database introduces lock contention on billing-critical write paths. The consistency window is sub-minute. No operational use case in this system requires sub-second freshness.
Calendar integration at prototype Proactive session detection from clinical scheduling systems
IT approval tracked in parallel NUHS IT approval for calendar API access is outside the team's control. Interface is designed to accommodate session pre-population as an enhancement — ships when approval is secured, not when prototype is due.
IMDA Open Innovation Platform · Call 28
PULSE is ready.
Are you?

The architecture is defined. The technology is chosen. The personas are mapped. The risks are owned. The prototype development begins the moment this is selected — and the system that NUH gets is one that compounds in value the longer it runs.

"Not selecting PULSE means selecting a system that digitises the surface of NUH's problem. PULSE is the only submission that has looked at what causes clinical education data to fail downstream — and designed the architecture to fix it at the root. That difference isn't in the feature list. It's in every decision that produced the feature list."

— THE CONVICTION CLOSE