Executive Summary
A women's hospital specializing in maternal-fetal medicine and neonatal intensive care (NICU) needed a specialty EHR that tracked the unique clinical workflows of pregnancy, labor and delivery, and newborn care. Generic EHRs treat neonatal patients as tiny adults — they don't understand gestational age, Apgar scoring, growth percentiles, or the mother-baby dyad relationship.
We built a neonatal and maternity EHR on top of Medplum — an open-source FHIR R4 platform — creating custom clinical interfaces for NICU monitoring, maternity care timelines, labor and delivery documentation, WHO growth chart tracking, feeding/intake-output management, and a mother's mobile portal. By building on Medplum rather than from scratch, we had a FHIR-compliant data platform with auth, subscriptions, and bot framework out of the box, letting us focus entirely on clinical UX.
Delivered in 4 months to a 60-bed NICU serving 1,200 deliveries per year.
The Problem: Generic EHRs Don't Understand Babies
Neonatal and maternity care has clinical requirements that general-purpose EHRs simply don't handle:
- Gestational age, not chronological age: a premature baby born at 28 weeks has different vitals norms, medication dosing, and developmental milestones than a full-term baby. Generic EHRs don't calculate corrected gestational age.
- Mother-baby linkage: the mother and baby are clinically linked — mother's medications affect breastfed baby, maternal conditions impact neonatal outcomes. Generic EHRs treat them as independent patients.
- Apgar scoring and birth documentation: delivery mode, Apgar scores at 1/5/10 minutes, cord blood gases, placenta status — these don't fit in standard encounter templates.
- Growth percentiles: neonatal growth tracking uses WHO growth curves with gestational-age-corrected percentiles. Generic EHRs have adult BMI calculators.
- Feeding tracking: NICU patients require precise intake/output monitoring — breast milk volumes, fortifier additions, IV fluid rates, diaper counts. This data drives daily clinical decisions.
- Vitals frequency: NICU patients have vitals checked every 1-4 hours, not once per visit. The EHR needs to handle high-frequency vital sign data with trending and alerting.
Why Medplum?
Medplum is an open-source, headless FHIR R4 platform that provides the backend infrastructure for healthcare applications — FHIR data store, OAuth2 authentication, subscriptions (webhooks for data changes), a bot framework for automation, and a built-in admin console.
By building on Medplum, we got for free:
- FHIR R4 data store: every clinical data point stored as a standard FHIR resource — Patient, Encounter, Observation, MedicationRequest, etc.
- Auth + RBAC: OAuth2 with role-based access control — different permissions for NICU nurse, attending physician, resident, mother
- Subscriptions: webhook triggers when data changes — new vitals → auto-alert if outside range, new lab result → auto-notify provider
- Bot framework: serverless functions that run on FHIR events — calculating corrected gestational age, updating growth percentiles, generating feeding recommendations
Our engineering effort went 100% into clinical UX — the unique screens, workflows, and algorithms that make neonatal care work.
NICU Patient Dashboard
The NICU dashboard is the nurse's and doctor's primary view for each baby:
- Header: baby name, gestational age at birth (34 weeks), current corrected age (36+2), birth weight (2.1 kg), current weight (2.3 kg), Apgar scores (7/9), NICU bed assignment
- Real-time vitals: heart rate, respiratory rate, SpO2, temperature — each with mini sparkline showing the last 6 hours. Color-coded: green (normal), yellow (borderline), red (critical). Vitals auto-ingested from bedside monitors via HL7 v2.
- Feeding tracker: current feeding plan (breast milk 45ml q3h), today's intake/output summary, weight change trend
- Active medications: caffeine citrate (for apnea of prematurity), vitamin D, iron — with dose-per-kg calculations auto-updated as weight changes
- Growth summary: current percentile status with link to full WHO growth curves
- Mother link: click to view mother's chart, medications (relevant for breastfeeding safety), and delivery summary
Maternity Timeline
The maternity timeline tracks the entire pregnancy journey as a visual, chronological narrative:
- Prenatal milestones: each visit, scan, and test plotted on a week-by-week timeline from first trimester through delivery
- Key findings at each point: ultrasound results, blood work, gestational diabetes screening, Rh status, group B strep
- Risk flags: high-risk conditions highlighted on the timeline — preeclampsia, gestational diabetes, placenta previa — with the clinical response at each flag
- Delivery event: comprehensive delivery summary including mode, duration, complications, newborn status
- Postpartum: recovery milestones, postpartum depression screening (Edinburgh score), breastfeeding support, follow-up scheduling
Architecture
Medplum Platform Layer
Medplum provides the foundation — we didn't build any of this:
- FHIR R4 server with full CRUD, search, and history
- OAuth2 + SMART on FHIR authentication
- Subscription triggers for data-driven automation
- Bot framework for clinical calculations
- Admin console for data management
Custom Clinical Layer (What We Built)
| Component | Technology | Purpose |
|---|---|---|
| NICU Dashboard | React + TypeScript | Bedside clinical view for nurses and physicians |
| Maternity Portal | React | Prenatal timeline, labor tracking, postpartum |
| Growth Charts | React + D3.js | WHO growth curves with corrected gestational age |
| Feeding Tracker | React | Intake/output logging, feeding plan management |
| Mother App | React Native | Baby updates, feeding log, appointments, education |
| Vitals Interface | Node.js + HL7 parser | Ingest real-time vitals from bedside monitors |
| Clinical Bots | Medplum Bot Framework | Gestational age calc, growth percentiles, alerts |
WHO Growth Charts
Growth tracking is critical for NICU babies. Our implementation:
- WHO growth standards: weight-for-age, length-for-age, head circumference-for-age with percentile curves (3rd through 97th)
- Corrected gestational age: a baby born at 32 weeks who is now 8 weeks old is plotted at corrected age of 40 weeks (full term), not 8 weeks chronological. This dramatically changes percentile interpretation.
- Trend tracking: baby's measurements plotted over time, showing whether they're tracking along a percentile line (healthy) or crossing percentiles (concern)
- Printable reports: one-click PDF generation for parent handouts and referring pediatrician records
Feeding & Intake/Output Tracker
NICU feeding management is a clinical workflow unto itself:
- Feed logging: every feed recorded — type (breast milk, formula, fortified), volume, duration (for direct breastfeeding), route (oral, NG tube, gavage)
- Running totals: real-time daily intake vs. target (calculated from weight-based ml/kg/day goals). Alert if intake falls below threshold.
- Output tracking: wet diapers, stool frequency and character — key indicators of hydration and feeding tolerance
- Weight delta: daily weight change displayed prominently. NICU babies should gain 15-20g/day once feeding is established. Below this → feeding plan review.
- Feeding schedule: visual 24-hour timeline showing feeding blocks — helping nurses maintain consistent intervals
Mother's Portal
NICU parents are anxious and separated from their baby. The mother's portal provides:
- Baby updates: real-time status — weight, feeding progress, care milestones
- Growth tracking: simplified growth chart view with "on track" status indicators
- Feeding contribution: mothers providing expressed breast milk can log pumping sessions and see their contribution to baby's nutrition
- Discharge checklist: progressive checklist of milestones needed before going home — feeding independently, maintaining temperature, car seat test passed
- Educational content: curated articles and videos on breastfeeding, safe sleep, developmental milestones, when to call the pediatrician
Labor & Delivery Documentation
The L&D module captures the most clinically intense period:
- Partograph: cervical dilation plotted over time against expected progress curves (alert and action lines). The visual partograph is the gold standard for labor monitoring.
- Maternal vitals strip: continuous display of maternal heart rate, blood pressure, and fetal heart rate with contraction monitoring
- Medication log: epidural timing, pitocin drip rates, antibiotics — all time-stamped for legal documentation
- Delivery summary: structured capture of delivery mode, time, Apgar scores (1/5/10 min), birth weight, cord blood gases, placenta delivery, estimated blood loss
- Newborn transition: immediate post-delivery documentation — resuscitation if needed, skin-to-skin timing, first feeding
Results
| Metric | Before | After | Impact |
|---|---|---|---|
| Build time | N/A | 4 months | Medplum accelerated 60% vs from-scratch |
| Vitals documentation | Manual charting from monitors | Auto-ingested via HL7 | Zero manual transcription |
| Growth percentile accuracy | Hand-plotted on paper charts | Auto-calculated with corrected GA | Eliminated plotting errors |
| Feeding documentation time | 8 min per feed event | 45 seconds (tap logging) | 91% faster |
| Parent engagement | Daily phone calls from nurses | Real-time app updates | 24/7 visibility for parents |
| Discharge readiness tracking | Informal, undocumented | Structured checklist | 14% shorter NICU stays |
| Medication dosing errors | Manual weight-based calculation | Auto-calculated per current weight | Zero dosing calculation errors |
Timeline
| Month | Deliverables |
|---|---|
| Month 1 | Medplum deployment, FHIR resource design (neonatal profiles), vitals HL7 interface, NICU dashboard MVP |
| Month 2 | Growth charts (WHO curves + corrected GA), feeding tracker, mother-baby linkage, medication management |
| Month 3 | Maternity timeline, labor & delivery module, mother's portal (React Native), discharge checklist |
| Month 4 | Clinical bots (auto-alerts, percentile calculations), staff training, pilot deployment, go-live |
Team: 3 engineers + 1 clinical informatics specialist. Medplum's platform layer saved an estimated 2-3 months of infrastructure work.
Lessons Learned
- Medplum as a platform accelerates dramatically. We estimated 6-7 months to build from scratch. Medplum gave us auth, FHIR storage, subscriptions, and bots out of the box — saving 2-3 months. The ROI on choosing an open-source FHIR platform over building custom was clear.
- Corrected gestational age changes everything. Every clinical calculation in neonatal care — drug dosing, growth percentiles, developmental milestones — must use corrected gestational age. Building this into the core data model (not as an afterthought) was critical.
- Parents need a portal, not a patient portal. NICU parents don't want to log into a generic patient portal and navigate to their baby's chart. They want a dedicated app that shows baby updates, growth progress, and discharge readiness — designed with empathy for an anxious parent, not a generic healthcare consumer.
- HL7 v2 vitals integration is the first thing to get right. NICU runs on vitals. Auto-ingesting from bedside monitors eliminated the #1 source of documentation burden and transcription errors. This single integration saved more nursing time than all other features combined.
Share
Related Case Studies

AI-Powered Personalized Oncology Treatment Platform: A Technical Case Study

Building a Patient-First Health Record Platform: Connecting 12 US EMRs Into One View

