Disease Surveillance Software Problems: The 7 That Cost Health Departments Real Time, and How to Avoid Them
The most expensive failure in a surveillance build is scoping person matching as an import routine. A department funds electronic laboratory reporting intake, the vendor delivers a loader that creates a case per result, and within a fortnight epidemiologists are spending their mornings deciding by hand which of 340 results belong to the same human being. That is professional staff time, every day, permanently, and the second order cost is worse: matching errors in one direction dispatch investigators twice, and in the other direction merge two people, which is a genuine harm and very hard to unwind.
Why does person matching get scoped as an import routine?
Every requirements document in this category contains a line about receiving electronic laboratory results. It is read as a loader. Read the message stream instead and the real problem is obvious: before it is a disease question, it is an identity question.
A positive result leaves a hospital laboratory in the evening, travels through an interface engine and arrives overnight. In the morning the queue holds 340 results. Sixty are repeat tests on people already under investigation. A dozen are the same person tested at three sites with three spellings of a name and two dates of birth. Names get truncated by sending systems. A hospital reports the ordering facility where the performing laboratory belongs. A reference laboratory changes its identifier between months. Test names arrive coded in one feed and as free text in another, and a result is positive in one system, detected in another and reactive in a third for the same organism.
Underneath all of that sits one question: is this a new person, a new episode for a known person, or a duplicate of something you already hold. A loader answers it with exact match on name and date of birth, which fails on exactly the records that matter, because the people hardest to match are frequently the people hardest to reach.
The fix is a real master person index with probabilistic matching, weights tuned to your jurisdiction's demographics rather than a vendor default, an automatic merge band, a manual review band and an unmerge path that restores original records rather than approximating them. Every match decision stores the score and the rule version, so when thresholds change you can see what would have changed historically. Scope this as the core of the build, and refuse a proposal that treats it as a data step.
What goes wrong when you migrate legacy case history?
Departments assume the old case data comes across cleanly because it was structured. It was structured by a schema, not by a discipline.
What is actually in there: the same person as four case records because the legacy system had no person concept and every case created a new demographic row. Conditions recorded against a code list revised twice, so one disease appears under two live codes and a retired third. Investigation answers stored with no version reference, so you cannot tell which form a 2019 answer belongs to. Free text notes carrying the facts that mattered, including exposures never structured. Addresses geocoded once at entry and never revalidated.
The fix is to seed the master person index from legacy data as an explicit deduplication project with human review, before the new system goes live, rather than letting the first live lab feed match against a duplicated population. Migrate current and recent cases at full fidelity with their conditions remapped to a maintained code list, and older cases as structured summary plus preserved free text. Keep the legacy system read only for a defined period. Budget the deduplication review as a named work stream staffed by people who know the jurisdiction, because a developer cannot judge whether two records with the same surname and adjacent birth dates are one person.
Why do laboratory and clinical feeds break after launch?
The standard tells you the structure. It does not tell you the quality, and it does not stop a sending facility changing something on a Tuesday without telling you.
The recurring breakages are specific. A hospital upgrades its laboratory information system and the sending facility identifier changes, so results that were routing correctly now arrive unattributed. A new test goes live at a large sender coded with a local code rather than a standard one, and it silently fails your condition mapping, which means positives for a reportable condition are landing in an unmapped bucket. A message arrives malformed and gets dropped rather than quarantined, so nobody knows it existed. Electronic case reporting from clinical systems arrives with a different message shape than laboratory reporting and with different gaps, and a build that assumed one shape has to be extended.
The fix is operational as much as technical. Quarantine bad messages for human review rather than dropping them, and alarm on the quarantine depth. Monitor per sender volume against its own baseline so a sender that stops or halves is detected within a day rather than at the end of a month. Hold the coding maps as maintained reference data with an owner, and alert on any unmapped code arriving from a sender rather than defaulting it. And onboard each sender as its own small project with its own test messages, because the standard does not make two senders equivalent.
What happens when statutory notification timeframes are not covered?
Reportable conditions carry timeframes set in state rule and the tightest are measured in hours. Most systems treat this as a report you run afterwards to find out you missed, which is the wrong shape entirely.
The failure looks like this. An immediately reportable condition arrives at 18:12 into an overnight queue. Nobody is looking at the queue. It is opened at 08:40 the next morning by an epidemiologist working top to bottom, and the on call investigator who should have been paged the previous evening finds out fourteen hours late. Nothing in the system failed. The system was never asked to know.
The fix makes the clock a first class object. When a case is created the system knows the condition, the applicable timeframe and who is on call, and it pages rather than queues for immediately reportable conditions. It escalates anything sitting unassigned past a threshold. It measures time to first contact attempt rather than time to case closure, because the first attempt is usually what the rule actually governs, and a system that only records closure will report compliance you do not have.
The second half of this is field work. Interviews happen on cell phones from a car, in a shelter, in a hospital corridor, and a system that only works on a desktop inside the department network means notes get written twice and attempt timestamps become approximations. A mobile interface for interview capture, contact elicitation and attempt logging makes the quality measure real.
Should you build custom or configure what you already own?
If you are a small county receiving a modest volume of reports, your state provides a shared instance, and your reportable conditions are the standard list handled without local variation, stay on the NEDSS Base System and put the money into disease intervention staff. It exists precisely so jurisdictions do not each build this, and it carries the national notifiable disease plumbing you would otherwise implement yourself. Conduent Maven is a defensible choice for a mid sized department that wants condition modules maintained by someone else and can live inside a vendor release cycle.
The honest test is authorship. If your epidemiologists need to define a new condition, add three questions to an investigation form and change a routing rule during an event, and the current path is a support ticket in someone else's release calendar, you have outgrown buying. During a slow year that is annoying. During an emerging event it is disqualifying, because the questions you need on Thursday were not knowable on Monday.
The other buy signal to respect: if investigators simply cannot see each other's caseloads, that may be a configuration and process project. Fix the process first, because a build layered on an undisciplined process produces a faster version of the same confusion.
How do hidden costs get into the quote?
- Sender count. A proposal prices laboratory reporting. Your reality is 40 sending facilities, each with its own mapping, its own test menu and its own test cycle. Count them, and start with the three largest, which usually carry most of the traffic.
- Electronic case reporting. Different message shape, different gaps, different onboarding. It is a second integration programme, not a variant of the first.
- Outbound national messaging. Message mapping guides are detailed and validation is strict, and getting a message accepted is a different task from generating one.
- Cross system interfaces. Immunisation registry, vital records and environmental health each require an agreement as much as an interface, and the agreement is usually the longer pole.
- Restricted condition access control. Sexually transmitted infection and HIV related records carry stricter disclosure rules in most states, and field level access with logging is architecture rather than a setting.
- Procurement and authority to operate. In government these are part of the timeline, not overhead around it.
What separates a surveillance build that works from one that fails?
The builds that work put authorship in the department's hands. Conditions, case definitions, questionnaires and routing rules are versioned configuration with an approval step, publishable by a trained analyst in an afternoon, with earlier versions preserved so a case investigated in March still shows the March form. Classification logic for confirmed, probable and suspect is expressed as readable rules against collected data rather than buried where one contractor understands it.
They also treat relationships as a graph rather than as rows with a parent case identifier. Named contact, shared exposure venue, same household, same congregate facility and genomic relatedness returned from the state laboratory are typed edges, which turns cluster detection into a query that can score a new result at intake instead of a link somebody notices in a Tuesday meeting. Exposure venues are real entities with an address, a licensee and a history, which is what lets you see the facility appearing in three unrelated investigations across two years.
And they design for surge from the start, because surge is a requirement rather than a contingency. Narrow role based access provisioned in minutes so a temporary contact tracer can do exactly one job. Intake and matching that scale horizontally, since the lab feed collapses first. Supervised bulk operations that are auditable, because during surge somebody will need to close four thousand cases at once and will do it in the database if you have not given them a supported path.
The builds that fail try to cover every reportable condition in release one. Start with your five highest volume conditions and your three largest senders. That covers most of the message traffic and teaches the build everything it needs before the long tail arrives.
The evidence behind this guide
Independent findings on why this investment pays off. Every link goes to the primary source.
- Technology 'Leaders' grow revenue at more than twice the rate of 'Laggards'; laggards surrendered 15% in foregone annual revenue in 2018 and stood to miss out on as much as 46% in revenue gains by 2023 if they did not change their enterprise technology approach. Based on a survey of more than 8,300 organizations across 20 industries and 20 countries. Source: Accenture (2019) →
- Standish's 2015 CHAOS research found roughly a third of software projects (about 36% by the Modern definition) fully succeed on time, on budget, and on scope, with top success drivers including executive support, user involvement, and clear requirements/business objectives. Source: Standish Group (CHAOS Report) (2015) →
- In the Flexera 2025 State of ITAM report, respondents reported roughly 33% of SaaS spend is wasted, underscoring how paying for off-the-shelf seats and tiers that go unused erodes the supposed cost advantage of generic SaaS. Source: Flexera (2025) →
- Workers can expect 39% of their existing skill sets to be transformed or become outdated over 2025-2030; 77% of employers plan to upskill their workforce, and 63% identify skill gaps as the biggest barrier to business transformation. Source: World Economic Forum (2025) →
Zara works as a senior strategist across APAC, sitting between what a client says they want and what the build should actually be. She pressure tests business cases, priorities and sequencing before engineering time gets committed. Read her for the thinking that happens before a project brief is written.
View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.
Frequently asked questions
How do we tune person matching for our jurisdiction rather than a default?
What should happen when two records merge that should not have?
Why do results from one hospital suddenly stop arriving?
Can epidemiologists change an investigation questionnaire without a developer?
How do we actually meet an immediately reportable timeframe?
Is the NEDSS Base System still the right answer for a mid sized department?
How should restricted condition data be protected during a surge?
What is the fastest way to get value from a surveillance build?
Should I ask for a fixed price or pay the agency hourly?
Couldn't I just build my app in Bubble or another no-code tool instead of hiring an agency?
Can I build my product on a no-code tool like Bubble instead of hiring developers?
How many people should be working on my software project?
If an agency builds my software, who actually owns the code?
How do I make sure custom software is secure and compliant with rules like HIPAA?
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Is a solo freelancer enough for my project, or do I really need an agency?
Is custom software more secure than off-the-shelf SaaS?
Who can build a custom software system?
Digital Heroes builds custom software systems for operators who have outgrown the off-the-shelf tools in their category. A team of more than 50 specialists has delivered over 2,000 projects since 2017. Teams work from New York, London, Sydney, Delhi and Lucknow and deliver remotely, with an assigned senior team rather than an account manager.
Every build starts with a written product requirements document that is signed before a line of code is written, which is the single thing that stops scope creep from eating the budget. Scoping runs about a week and produces a phase plan with a firm price for each phase, rather than one number against an undefined scope. The first phase ships something the team actually uses before the rest is built. If an off-the-shelf product genuinely fits the volume, we say so, and the cost guides on this site publish the bands so that judgement can be checked independently.
What makes Digital Heroes different from other software companies?
Four things that competitors in this bracket cannot simply copy. Digital Heroes runs a YouTube channel with more than 2.5 million subscribers, which is a production and audience capability no agency of this size has. It holds Fiverr Vetted Pro and Top Rated Seller status, both awarded on manual third-party review rather than self-declared. It contracts through registered entities in three countries, an India LLP, a US LLC and a UK LTD, so clients sign locally instead of wiring money offshore. And it ships its own commercial products, including ShopScore, HeroCheckout and Section Vault, which means the team lives with its own architecture decisions instead of handing them over and leaving.
Two more that show up in the work. Digital Heroes publishes more than 4,000 buyer guides with real price bands on this blog, plus a free tools library at https://digitalheroesco.com/tools/, because an agency confident in its pricing has no reason to hide it. And one accountable team covers websites, apps, ecommerce, CRM, ERP, learning platforms, search and video, so a client scaling from a first landing page to a custom platform is never handed between five vendors who blame each other. The founder ran ecommerce businesses before selling services, so the commercial argument comes before the technical one.
How can I check Digital Heroes is legitimate before getting in touch?
Verify it independently rather than taking the site's word for it. The YouTube channel is at https://youtube.com/@DigitalMarketingHeroes, the Fiverr profile at https://www.fiverr.com/shreyanshsin261, and the Upwork profile at https://www.upwork.com/freelancers/shreyanshsingh. Client reviews sit on Clutch at https://clutch.co/profile/digital-heroes-0 and Trustpilot at https://www.trustpilot.com/review/digitalheroes.co.in, and the company page is at https://www.linkedin.com/company/digital-heroes-1/.
Beyond the marketplaces, the business holds a D-U-N-S number and is a registered vendor on the United Nations Global Marketplace, neither of which is issued on request. Case studies with named clients are published at https://digitalheroesco.com/case-studies/. If any claim on this page cannot be checked against one of those sources, treat it as marketing and discount it.