Problems & solutions · Custom Software

Healthcare Interoperability Platform Problems: The 5 That Cost Real Money, and How to Avoid Them

Healthcare Interoperability Platform Development software overview illustration showing common problems and fixes.
The short answer

The most expensive failure in a healthcare interoperability build is discarding the raw inbound payload once a message has been normalised. It looks like sensible hygiene and it is unrecoverable data loss waiting to happen. A local laboratory code arrives with no mapping, the record is dropped or partially stored, the defect is found nine months later, and the only remedy is asking a hospital partner to resend a year of historical results. They will usually decline, because resending is work for them with no benefit, and their interface team has its own queue. Storage costs almost nothing next to that conversation, and every platform we have seen that skipped raw retention eventually had it.

Why does terminology mapping scope always get underestimated?

Because the standards make it look solved. Laboratory results use LOINC, clinical findings use SNOMED, medications use RxNorm, diagnoses use ICD-10, and all of that is written down and freely available. A developer reads it, sees a set of code systems, and prices a mapping table.

What actually arrives from a hospital is a local laboratory code, a local formulary identifier and a department specific result name that has been in use since before the current laboratory information system was installed. Mapping those to standard codes is the majority of the effort in nearly every interoperability project we have delivered, and it is not a one time task. Partners add tests, change formularies and rename panels continuously, so an estate that was fully mapped in March is not fully mapped in September.

The fix is to treat mapping as a governed operation rather than a data structure. Somebody proposes a mapping, somebody with clinical authority approves the ones that matter clinically, the map is versioned, and unmapped codes land in a visible queue that a named person works rather than a log line nobody reads. Then make historical data reprocessable, which is only possible if the raw payload was retained. Ask any prospective developer what happens to a code arriving with no mapping. If the answer does not include a retained payload, a flagged record, a worked queue and reprocessing, the project will stall in year two and nobody will be able to say exactly when it started going wrong.

What goes wrong when you backload historical messages and records?

Historical backload is often the single largest work package in this category and it is the one most reliably left out of the estimate, because during scoping everyone is thinking about the live feed.

The problems are specific. Old messages use segment layouts and local extensions that have since changed at the partner, so a parser written for today's feed silently misreads a 2022 message. Patient identifiers were reissued at some point, meaning the same human appears under two identifiers with no link. Codes that are mapped today did not exist then, and codes that existed then have been retired. And the volume changes the engineering: normalising three years of results is a throughput problem rather than an interface problem, and it will expose every performance assumption in the matching layer.

The fix is to sequence backload after the live feed is stable and after mapping governance exists, never in parallel. Run it as a reprocessing exercise over retained raw payloads rather than as a separate import path, so there is one normalisation code path and one set of rules. Expect to run it more than once, and design for that from the start. A backload that can only be run once is a backload you will be afraid to correct.

Why do partner feeds break after launch?

Partner feeds fail in ways that do not announce themselves. The connection stays up, messages keep arriving, and something inside them has changed.

A hospital upgrades its electronic health record and a local extension segment moves. A laboratory adds three new tests, which arrive as unmapped codes and quietly accumulate. A partner changes how it populates a field, so a value that used to be a department name becomes a location code, and downstream logic that keyed on it now produces nothing rather than an error. The most damaging variant is a match rate change: a partner alters how it sends addresses or names and your matching starts producing duplicates, which nobody notices until a clinician sees a patient with two records.

The fix is monitoring the shape of the data rather than the health of the connection. Track message volume by type and by partner, unmapped code counts, and match rate per source, with alerts on movement rather than on absence. A partner whose match rate drops has usually changed something upstream without telling you, and finding that in a week is a conversation while finding it in a quarter is a data cleanup. Also keep the raw payload, because every one of these situations is recoverable if the original message still exists and unrecoverable if it does not.

What happens when identity matching and consent are treated as features?

Both get scoped as capabilities the platform has, and both are actually organisational risk decisions that happen to need software.

The standard defines a Patient resource. It does not tell you whether the resource arriving from a partner describes the same human as the one already in your database. Real inbound data carries nicknames, transposed dates of birth, addresses two moves out of date and partial identifiers, and payer member identifiers frequently change at renewal. A false match means one patient sees another patient's medication list, which is a serious incident. A false non match means a duplicate record and a care gap nobody closes. Where you set that threshold is a decision with clinical and legal consequences, and a vendor default is not an answer to it.

Consent is the same shape. Most platforms enforce access at the connection level, meaning a partner may read patients, which is far too coarse for anything real. It is why so many integration projects end with a data sharing agreement doing work the software should be doing.

The fix is an explicit master patient index with tunable thresholds, an automatic band, a review queue band and a no match band, plus full lineage so any merge can be reversed. Unmerge is the capability people skip and the one you will need, because merges get made in good faith on bad data. On consent, evaluate policy per request against the requester, the stated purpose of use, the resource category and any recorded patient preference, and log every decision. SMART on FHIR scopes give you a workable framework for application authorization, but category level segmentation for behavioural health, substance use treatment, reproductive health and genetic data encodes your legal posture and has to be built deliberately.

Should you build custom or configure what you already own?

Almost nobody should build the transport layer, and this is the most common expensive mistake in the category. If you are a digital health company connecting a product to hospital electronic health records, Redox exists precisely for that and will get you live in weeks while a build would consume the engineering you need for the product. If you are a payer whose immediate requirement is patient access endpoints and nothing more, 1upHealth addresses that directly.

If you already run Rhapsody or InterSystems HealthShare with a competent integration team, keep it. Protocol handling and connectivity are solved, rebuilding them adds risk with no benefit, and the sensible sequencing is to keep the engine as transport and build the canonical model, master patient index, terminology governance and consent engine above it. Smile Digital Health gives you a serious FHIR server if you need storage and query rather than a data model.

Build the layer above when interoperability has become shared infrastructure rather than one integration: several internal products depend on the same data, partner count is growing and expected to keep growing, and identity, terminology and consent decisions are specific enough to your organisation that no default is acceptable. In our experience organisations cross that line somewhere between fifteen and thirty active partner connections, earlier at high volume and later where connections are simple and stable.

How do hidden costs get into the quote?

Source system diversity is the largest driver and it hides behind a partner count. Each electronic health record vendor and each version behaves differently for the same message type, so five partners on three different products is a bigger job than eight partners on one. Ask which specific systems and versions before anyone estimates.

Regulatory endpoint obligations come second if you are a payer, because patient access and provider directory requirements have a shape you do not get to choose. Bulk data at population scale is third and it is an infrastructure problem rather than an interface problem. Network participation such as a trusted exchange framework connection is fourth and brings conformance work with its own calendar. Historical backload is fifth and is frequently the largest single item.

The fix is to scope a first release deliberately narrow: three source systems, one downstream consumer, no bulk export, and the existing interface engine retained as transport. That release proves the canonical model, the index and the mapping workflow, which are the parts that are genuinely hard, and it leaves every expensive decision available rather than pre-committed.

What separates an interoperability build that works from one that fails?

Working platforms make onboarding a new partner into configuration plus a mapping pass, which is days for a familiar source system and a couple of weeks for an unfamiliar one. That is the whole return on the investment. If a new partner is still weeks of engineering after the platform exists, the canonical model is not doing its job and you have built a nicer version of what you had.

The remaining schedule risk is external and it is worth planning around honestly. Getting through a partner's security review, access request process and test environment scheduling routinely takes longer than the technical work, and no amount of engineering quality shortens it. Start those conversations before the build begins.

Two questions separate developers who have run this in production from those who have read about it. Ask what happens when two records match at a confidence just below the automatic threshold. If there is no review queue and no unmerge path in the answer, they have not operated a master patient index. Then ask which electronic health records they have pulled from, and press for the interface method and the authorisation model rather than accepting a list of names.

Finally, own the code, the cloud accounts and the retained raw data, agreed in writing before kickoff. The point of building this layer is to stop renting your infrastructure, and replacing one dependency with a development agency is not progress. At Digital Heroes the repository is the client's from the first commit.

Research & sources

The evidence behind this guide

Independent findings on why this investment pays off. Every link goes to the primary source.

  1. Only 22% of firms are 'future ready' having significantly transformed digitally; these companies show average revenue growth 17.3 percentage points and net margins 14.0 percentage points above their industry average. Source: MIT Center for Information Systems Research (MIT Sloan) (2022) →
  2. McKinsey argues software developer productivity can be measured by combining system-level metrics (DORA and SPACE) with its own outcome-oriented approach, which it reports deploying across nearly 20 tech, finance, and pharmaceutical companies - a claim that sparked significant debate in the engineering community. Source: McKinsey & Company (2023) →
  3. 88% of customers say good customer service makes them more likely to purchase from a brand again in the future, quantifying the direct revenue link between support quality and retention. Source: HubSpot (2024) →
  4. In a McKinsey global survey of 1,259 respondents, only about 20% said their organizations excel at decision making, and just 37% said their organizations' decisions were both high quality and high in velocity. Source: McKinsey & Company (2019) →
Reyansh P. · iOS Lead · Delhi

Reyansh leads iOS development at Digital Heroes, taking apps from first build through App Store review and the version updates that follow. He writes about the things that decide whether an iOS project runs smoothly: scope on device features, review rules, and testing across hardware.

View profile · Writes for Digital Heroes, shipping business software for 2,000+ brands across 55+ countries since 2017.

FAQ

Frequently asked questions

Should we discard raw messages once they are normalised?
No, and this is the one rule worth treating as absolute. Mappings arrive late, partners change formats without notice, and normalisation defects surface months after the data landed. Every one of those situations is recoverable while the original message exists and unrecoverable once it does not, because asking a hospital partner to resend a year of historical results is work for them with no benefit and they will usually decline. Storage cost is trivial by comparison.
Why does terminology mapping take longer than the integration itself?
Because standards name the code systems but partners send local ones. What arrives is a local laboratory code, a local formulary identifier and a department result name predating the current system, and mapping those is continuous rather than one time as partners add tests and change formularies. Treat it as a governed workflow with a versioned map, clinical approval where it matters, and a visible unmapped code queue that someone works, rather than as a lookup table someone maintains when they remember.
When should historical backload happen in the project?
After the live feed is stable and after mapping governance exists, never in parallel. Old messages use segment layouts that have since changed, identifiers were reissued, and codes have been retired, so a parser written for today's feed will silently misread historical data. Run backload as a reprocessing exercise over retained raw payloads so there is one normalisation path, and design to run it more than once, because a backload you can only run once is one you will be afraid to correct.
How do we know a partner feed has broken if messages are still arriving?
By monitoring the shape of the data rather than the health of the connection. Track message volume by type and partner, unmapped code counts and match rate per source, with alerts on movement rather than on absence. A dropping match rate almost always means the partner changed how it populates name or address fields, and catching that in a week is a phone call while catching it in a quarter is a duplicate cleanup with clinical consequences.
What confidence threshold should we use for patient identity matching?
There is no correct number, which is exactly why it cannot be a vendor default. A false match exposes one patient's record to another and a false non match creates a duplicate and a missed care gap, so the threshold is a risk decision that belongs to your clinical and legal leadership. What the software must provide is three bands, automatic, review queue and no match, tunable over time, plus full lineage so any merge made in good faith on bad data can be reversed.
Are connection level permissions enough for sensitive data categories?
No. Saying that a partner may read patients is far too coarse once behavioural health, substance use treatment, reproductive health or genetic data are in scope, since those carry different handling expectations and in some cases different legal regimes. Evaluate policy per request against the requester, the stated purpose of use, the resource category and any recorded patient preference, and log every decision. SMART on FHIR scopes handle application authorization; category segmentation is yours to build.
Can we keep Rhapsody or InterSystems and still build a platform?
Yes, and it is usually the right sequencing. Keep the engine as transport, because protocol handling and connectivity are solved and rebuilding them adds risk without benefit, then build the canonical model, master patient index, terminology governance and consent engine above it. Confusing the transport decision with the data model decision is the most expensive mistake in this category, because organisations either rebuild what they did not need to or rent what they use as infrastructure.
Why does onboarding a new partner still take weeks after the platform is built?
If the technical work is still weeks, the canonical model is not doing its job and every partner is effectively a new codebase. If the technical work is days and the calendar still says weeks, that is normal and external: the partner's security review, access request process and test environment scheduling set the pace, and no engineering decision shortens them. Start those conversations before the build rather than after, because they run in parallel with everything else at no cost.
Is it cheaper to customize Salesforce than to build a custom CRM from scratch?
If you use less than a third of what Salesforce does, a custom CRM is often cheaper by year three. Salesforce Enterprise lists at $165 per user per month, so 25 seats cost about $49,500 a year before admin and consultant fees, while a focused custom CRM runs $60,000 to $100,000 once plus 15 to 20% a year in maintenance. If you genuinely need Salesforce's ecosystem, reporting, and app marketplace, customizing it beats rebuilding it; the mistake is paying enterprise prices to use it as a glorified contact list.
What should I have ready before I contact a development agency?
Three things, none of them technical: a one-page description of the problem in your own words, a list of the tools and spreadsheets the new system must replace or connect to, and a must-have versus nice-to-have split of features. Add a budget range, even a wide one, because it changes the conversation from fantasy to engineering. You do not need a formal specification; producing that is what a discovery phase is for.
We run everything on Airtable and spreadsheets. When is it time to go custom?
The switch usually makes sense when you hit one of two walls: Airtable's record caps (125,000 records per base on the Business plan) or logic the tool cannot express, like multi-step approvals with conditional pricing. There is also a simple cost signal: 25 people on Business at roughly $45 per seat per month is about $13,500 a year, forever, for a tool you are already fighting. Custom is worth it when the workflow is core to how you make money; for peripheral processes, staying on Airtable is the right call.
Can we migrate years of data out of our current system into new custom software?
Almost always yes, through CSV exports or the vendor's API, and migration should be scoped as its own workstream with field mapping, a dry run, and a planned cutover window rather than an afterthought. The real time sink is rarely moving the data; it is cleaning it, since years of duplicates, free-text fields, and inconsistent formats surface all at once. Pull a full export from your current vendor before committing to anything new, because some SaaS plans restrict exports on lower tiers.
What is a discovery phase, and is it worth paying for separately?
Pay for it, and treat the output as yours. A discovery phase runs two to three weeks, typically 5 to 10% of the eventual build budget, and produces a written scope, wireframes, and a fixed quote you can take to any vendor, including a competitor of the agency that wrote it. Skipping it is how projects end up quoted from a two-paragraph email and delivered at twice the price.
If an agency builds my software, who actually owns the code?
You should own everything, assigned in writing: the contract transfers full IP to you on final payment, the code lives in your GitHub organization, and hosting runs in cloud accounts you control. The red flag is a proposal that mentions the agency's proprietary platform or framework, which usually means you are renting, not buying. Digital Heroes structures every build this way precisely so a client can fire us and lose nothing but the relationship.
Should we build an MVP first or go straight to the full system?
MVP first, for almost everyone: ship the single workflow that carries the business value in 10 to 16 weeks, learn from real users, then fund phase two from evidence instead of guesses. The caveat is that an MVP is a small version of a well-built system, not a badly built version of a big one; the data model must already support what comes next. An agency that cannot tell you what they deliberately left out of your MVP has not designed one.
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.

Keep reading
let's build

Build something worth launching.

A plan, a team, a timeline, within 24 hours. No decks, no discovery calls. Tell us what you're building and we'll come back with a real scope and a real number.

message us directly · we reply within one business day

mission briefing

Monthly dispatch

Playbooks, real build costs, and what we're shipping. One email a month. No fluff.

visit us

New York HQ

1140 Broadway, Suite 704 · New York, NY 10001

Get directions
Online now

Hey there 👋 How can we help you today?