Built a clinical analytics dashboard from scratch that shows, for any facility, whether each field arrives where reporting and billing expect it, and turns HL7 messages into facility metrics from daily to yearly without putting a patient's details on screen.
A national physician services company. Oracle fed InterSystems IRIS, which held the HL7 messages from its facilities; the dashboard copied them into SQL Server, parsed them and measured the facilities from them.
Follow a message
From HL7 message to facility metric
- OracleFeeds the store of HL7 messages
- InterSystems IRISHolds the HL7 messages from every facility
- SQL ServerReceives copies in batches of 25,000 rows
- 6 .NET 10 APIsParse each field against a schema dictionary and compute the metrics
- Vue 3 dashboardShows facility metrics, behind Okta group access
- Daily
- Weekly
- Monthly
- Quarterly
- Yearly
The stages as the code builds them. Full messages are stored; patient details stay off the dashboard.
| Value | Method | Recorded | Scope |
|---|---|---|---|
| 79 commits from 12 February to 24 March 2026 | The delivered repository's commit history | 2026-10-02 | The version of the repository delivered in February and March 2026, one developer; the work itself ran across the whole engagement |
| 6 .NET 10 APIs on a shared framework, a Vue 3 dashboard, and a Next.js rewrite under way | Read from the solution, project and package files | 2026-10-02 | The delivered repository |
| Every tracked field shown per facility with that facility's three most recent values, marked verified or needs review separately for HL7 and flat-file feeds, with the reviewer recorded; each field tagged billing, analytical or other | Read from the field verification screen, its API and the metric column tables | 2026-10-02 | The facility field verification feature |
| Daily metrics per facility: completeness of billing, analytical and other fields, HL7 against flat-file completion, verified and unverified field counts, and the verification rate | Read from the daily metrics aggregation job | 2026-10-02 | The analytics service |
| HL7 copied from IRIS into SQL Server in batches of 25,000 rows; metrics rolled up daily, weekly, monthly, quarterly and yearly | Read from the archive job and the metric aggregation jobs | 2026-10-02 | The archive and analytics services |
| Load-tested with 6 million generated records, 100,000 per facility across 60 facilities | Read from the test data generator in the analytics job service | 2026-10-02 | The analytics service |
| About 2 billion records across years of data | Austin's account of the production data. The code does not record it, and it was not reproduced: the local load test used 6 million generated records | 2026-10-02 | The production data the dashboard was built to measure |
Dates are when each figure was recorded for this site; the work itself is dated in the setting above.
What this does not prove
These describe what was built and how it was tested, read from the code. They are not production timings or usage figures, and the full HL7 messages were stored: patient details were kept off the dashboard and behind Okta group access, not removed from the database.