Industry guide · Mobile App

Patient Portal Development for Multi-Location Clinics: Problems and Solutions

The short answer

Yes, if your patients still default to the phone tree and your referrals still move by fax, a custom portal pays for itself in front-desk hours alone. A focused first release, one login with self-scheduling and message routing wired to your EHR, typically runs $60,000 to $130,000 and ships in 12 to 16 weeks; a full multi-location platform runs $150,000 to $400,000 phased over 6 to 12 months. Keep the EHR as the system of record and make the portal the one layer patients actually touch.

Why the patient portal makes or breaks a multi-location clinic

Walk the front desk of an eight-location orthopedic group at 8:05 on a Monday morning. Three schedulers are working the hold queue, the Updox fax inbox holds 30 inbound referrals, and a medical records clerk is printing a 40-page chart to fax to a referring primary care office, for the second time, because the first fax never arrived. The group technically has a patient portal. It has three, actually: healow tied to the eClinicalWorks instance the group has run since 2016, athenaPatient inherited with the two clinics acquired last year that still sit on athenahealth, and the Quest portal patients get pointed to for lab results. Patients cannot remember which login does what, so they do the rational thing. They call.

That call volume is the hidden invoice. Put four schedulers at $21 an hour on phones across eight locations and you are spending over $170,000 a year answering questions a working portal would absorb: when is my appointment, what do I owe, did my results come back, can you resend the referral. None of that work generates revenue. All of it generates hold music, and the patients who give up on hold become the no-shows and the one-star reviews.

Executives at this scale usually frame the decision as healow versus MyChart versus adding Klara on top. The real decision is different: keep stitching together vendor slices that each own a fifth of the patient relationship, or build the single layer that sits on top of all of them. This guide walks through the five problems that layer has to solve, what it costs, and when building it is the wrong move.

Problem: patients juggle three logins, so they pick up the phone

A patient of the acquired clinics has an athenaPatient login for her chart, gets Phreesia texts for intake, checks Quest for labs, and once replied to a Klara thread she can no longer find. When her password reset email lands in spam, she stops trying. Multiply her by your whole panel and the portal adoption number your EHR vendor reports becomes fiction: accounts exist, usage does not.

The incumbents cannot fix this because each one only shows its own slice. healow displays what lives in that eClinicalWorks database and nothing else. If your group runs two EHR instances, or an EHR plus a separate imaging or lab system, no configuration setting merges them. The vendors are structurally unable to build the cross-vendor view, because the cross-vendor view makes them replaceable.

A custom portal starts with one identity. A single account, verified against your patient list, connects to every backend through the FHIR R4 APIs that ONC-certified EHRs are now required to expose: Patient and Appointment for demographics and visits, DocumentReference for records, Observation for results. The patient sees one timeline across every location and every system you have ever acquired. Your staff stops explaining which website does what, and password resets stop being a front-desk job.

Problem: the phone line is still the scheduling system

Most groups this size have tried self-scheduling and turned it off. The built-in healow booking let new patients grab slots reserved for post-op follow-ups, or double-booked the injection room, so the clinical director killed it after two weeks and the schedulers took the load back. Off-the-shelf booking engines offer a handful of visit types and duration settings. They cannot encode the real rules: Dr. Mehta sees new knees only Tuesday and Thursday at the Riverside location, ultrasound-guided injections need a 15-minute room block plus a tech, workers comp visits require an authorization on file before booking.

A custom build treats scheduling as a rules engine, not a form. A short decision tree asks what the patient needs, checks payer and referral status against what is already in the chart, and only then shows slots that are actually bookable, writing the appointment back through FHIR or an HL7 SIU interface so the EHR schedule stays the source of truth. Add a waitlist that automatically offers cancelled slots by text and you recover appointments that today evaporate. Groups we have built this for watch Monday morning call volume fall by roughly a third within a quarter, which is a scheduler position redeployed to prior authorizations.

Problem: referrals and records still move by fax

The records release workflow at most clinics is a 1998 process wearing a 2026 badge: print from the EHR, count pages, fax through Updox or a physical machine, log it in a spreadsheet, field the call when the receiving office says nothing arrived. Referrals inbound are worse, arriving as unstructured fax pages someone re-keys into the EHR. Patients wait days for something that is legally theirs on demand.

Portal vendors bolt on document viewing but not document exchange, because exchange crosses organizational boundaries their product does not own. A custom portal makes release a self-service flow: the patient or the referring office requests records, signs the release electronically, and the system assembles the chart from DocumentReference resources and delivers it as a secure download or Direct message, with an audit log of who requested and received what. Inbound referrals land in a structured queue with the demographics and insurance already parsed, so intake starts the day the referral arrives, not the day someone works the fax pile. For a specialty group, referral turnaround time is revenue: every day a referral sits in a fax queue is a day the patient can end up at the competitor across town.

Problem: portal messages land in an inbox nobody owns

A patient sends a medication question through healow at 4 pm Friday. It sits in a shared inbox until Tuesday because no one is assigned to it, then a medical assistant answers in Klara, which does not write to the chart, so she re-types a summary into eClinicalWorks. Two systems, one conversation, zero accountability, and a clinical question that aged four days.

Off-the-shelf messaging is a single undifferentiated inbox per practice. A custom build routes by intent: refill requests go to the refill queue with the med list attached, billing questions to the billing team, clinical questions to the right care team by provider and location, each queue with a response-time timer and escalation when the timer runs out. Every thread writes back to the chart as a note through the EHR API, so the conversation and the record never diverge. Practice managers get a dashboard of message volume and response times per location, which is how you find out that one clinic answers in four hours and another in four days before a patient complaint tells you.

Problem: patients cannot see or pay a balance, so AR ages

After the acquisitions, your patients can receive statements from two different billing systems, mailed 30 to 45 days after the visit, formatted differently, sometimes for the same episode of care. The patient does not know what she owes in total, so she pays nothing and calls billing, and your AR over 90 days grows every quarter.

A custom portal consolidates the balance across every practice management system into one number with a plain-language breakdown, then makes paying it a two-tap action: card on file, payment plans with automatic installments, and text-to-pay links in reminder messages, with payments posting back to the correct billing system automatically. Real-time eligibility checks through a 270/271 clearinghouse connection let you show cost estimates before the visit, which is when patients actually decide whether to keep the appointment. Collecting at the moment of engagement instead of 45 days later is usually the line item that pays for the entire build.

What patient portal development costs and how long it takes

Across 2,000+ delivered projects, Digital Heroes sees this category land in two bands. A focused first release, one login, self-scheduling with a real rules engine, routed messaging, wired to a single EHR, typically runs $60,000 to $130,000 and ships in 12 to 16 weeks. A full platform, multiple EHR and billing integrations, records exchange, consolidated payments, native iOS and Android apps, runs $150,000 to $400,000 phased over 6 to 12 months, with the phasing deliberate: scheduling and messaging first because they cut the most calls, records and payments next.

What pushes this category toward the top of the band: each additional EHR or practice management integration, since every acquisition adds one and each vendor has its own interface fees and sandbox approval timeline; patient identity matching when one human has two medical record numbers across systems; scheduling rule complexity, which is the most underestimated line in every scope we review; native mobile apps instead of responsive web; and the compliance artifacts hospital partners increasingly demand, like SOC 2 reports and annual penetration tests. The single most common schedule risk is EHR vendor paperwork, so API access requests should go out the week the contract is signed, not week six.

Build vs buy: when healow or MyChart is genuinely enough

If you run one EHR instance across one or two locations and your patients mostly need visit summaries and refill requests, do not build. healow, athenaPatient and MyChart are included in what you already pay, and configuring them well plus adding a reminder tool like Luma Health will cover you for years. Building at that scale is buying a custom suit for a body that is still growing.

The signals flip when the workarounds become payroll. Build when two or more of these are true: you operate multiple EHR or billing systems and consolidation onto one is not happening within two years; scheduling calls justify dedicated headcount at every location; the top three reasons patients call are things your current portal theoretically does but practically cannot; inbound referrals arrive by fax in volume; or you plan further acquisitions, because every acquisition makes the vendor-portal path worse and the unified-layer path more valuable. Our position after building these repeatedly: multi-location groups on mixed systems should build the patient-facing layer and never build the EHR. The chart stays in eClinicalWorks or athenahealth. The experience becomes yours.

How to choose a developer for patient portal development

Vet on four things, in this order. First, integration depth with your specific EHR: ask which FHIR resources and HL7 interfaces they have written to, not just read from, because displaying data is easy and booking an appointment that survives the EHR's rules is the actual job. Ask for a reference client on your exact system. Second, patient identity: ask how they handle one patient with different medical record numbers in two systems. If the answer is not a concrete matching strategy with a human review queue for uncertain matches, they have not done multi-system work. Third, compliance engineering: they must sign a business associate agreement, host on infrastructure covered by one, and show you audit logging, role-based access and their most recent third-party penetration test rather than a paragraph about taking security seriously. Fourth, ownership: full source code in your repositories, infrastructure in your cloud accounts, no per-patient or per-provider fees, and a documented handover path. A developer who hesitates on any of the four is quoting you a dependency, not a platform.

Research & sources

The evidence behind this guide

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

  1. Industry analysis aggregating vendor data concludes mobile apps consistently outperform mobile web on engagement and conversion, with the large majority of mobile time spent in apps rather than browsers and app users viewing far more products per session. Source: MobiLoud (2025) →
  2. Google-commissioned research (conducted by Deloitte and 55) analyzing over 30 million user sessions across 37 leading European and American brand sites found that faster mobile site speed correlated with improved funnel progression, conversions, and average order value across retail, travel, luxury, and lead-generation verticals. Source: web.dev (Google Chrome team) / Milliseconds Make Millions (2020) →
  3. The 2024 DORA report found AI adoption significantly increases individual productivity, flow, and job satisfaction, but negatively impacts software delivery throughput and stability - a paradox leaders must manage with fundamentals like smaller batch sizes and robust testing. Source: DORA / Google Cloud (2024) →
  4. 48% of private companies cite integration with legacy systems or technical debt as a top obstacle to realizing the full value of their digital and AI investments (behind data quality/availability at 72% and gaps in AI fluency or technology talent/leadership at 53%). Source: Deloitte (2026) →
Rohan Malhotra · Enterprise Software Consultant

Rohan advises mid-market and enterprise teams on ERP, CRM and custom software, and has led delivery on dozens of business-software builds.

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

FAQ

Frequently asked questions

How much does it cost to build a custom patient portal for a multi-location clinic group?
Across 2,000+ delivered projects, Digital Heroes sees a focused first release, meaning one login with self-scheduling and secure messaging wired to a single EHR, land between $60,000 and $130,000. A full platform covering multiple EHR instances, records exchange, consolidated payments and native mobile apps runs $150,000 to $400,000 phased over 6 to 12 months. The biggest cost drivers are the number of EHR and billing integrations and the complexity of your scheduling rules.
Should we build a custom portal or just configure healow or MyChart better?
Configure first if you run one EHR instance across one or two locations, since those portals are included in what you already pay. Build when you run two or more EHR or billing systems, when scheduling rules are too complex for the built-in self-booking, or when patients still default to phone and fax despite the portal existing. The reliable signal is workaround volume and phone staffing, not a feature comparison.
Can a custom patient portal connect to eClinicalWorks, athenahealth or Epic?
Yes. ONC-certified EHRs are required to expose FHIR R4 patient access APIs, and most also support HL7v2 interfaces for scheduling and results. A custom portal reads and writes through those APIs so the EHR remains the system of record. Budget time and money for vendor interface fees and sandbox approval, which vary by EHR and are the most common cause of schedule slip.
How long does patient portal development take?
In Digital Heroes delivery experience, a focused first release ships in 12 to 16 weeks, assuming EHR API access is requested in week one. Full multi-location platforms are phased over 6 to 12 months, usually shipping scheduling and messaging first, then records exchange, then payments. EHR vendor paperwork is the largest schedule risk, so it should start the day the contract is signed.
Do we own the code if an agency builds our patient portal?
You should, and you should walk away from any contract that says otherwise. Insist on full source code in your own repositories, infrastructure in your own cloud accounts, and no per-patient or per-provider licensing fees. Digital Heroes hands over the repository and infrastructure under the client's accounts as standard practice; a developer who resists that is selling you a dependency, not a product.
How does HIPAA compliance work for a custom-built patient portal?
The developer must sign a business associate agreement and build to the HIPAA Security Rule: encryption in transit and at rest, role-based access controls, automatic session timeouts, and audit logs of every record access. Hosting must sit on infrastructure covered by a BAA, such as AWS, Azure or GCP under the right agreements, and compliance also includes your operational policies, not just the code. Ask any vendor to walk you through their most recent third-party penetration test before signing.
How do we migrate patients off healow or our old portal without losing them?
Run both portals in parallel for one billing cycle and move patients at natural touchpoints: appointment reminder texts, front-desk check-in, and statement emails should all deep-link into the new portal. Pre-create accounts from the EHR patient list so signup is a quick identity verification instead of a registration form. Keep the old portal read-only for 60 to 90 days and expect phone-first holdouts to convert last, at their next visit.
What does it cost to maintain a custom patient portal each year?
Plan for 15 to 20 percent of the build cost annually, covering hosting, monitoring, security patching, EHR API version changes and a small feature budget. On a $150,000 build that is roughly $2,000 to $2,500 per month. EHR vendors change their APIs on their own schedule, so in this category the maintenance line is not optional and should be in the contract from day one.
Will patients actually use a custom portal after ignoring the one we already have?
Adoption follows utility. Patients ignored the old portal because it could not book the appointment types they wanted, show a single balance, or get a message answered, so they called instead. When the new portal is the fastest way to book, message and pay across every location with one login, usage compounds with each visit cycle, especially if every reminder text and emailed statement links straight into it.
What should I have ready before I contact an app development agency?
A one-page brief beats a formal specification: the problem the app solves, who will use it, the 10 to 15 features version one must have, two or three apps you want it to feel like, and your budget range and deadline. You do not need wireframes or a technical document; producing those is what the agency's discovery phase is for. A written feature list also makes quotes comparable, because every vendor is finally pricing the same thing.
Is custom software more secure than off-the-shelf SaaS?
Neither is secure by default; security tracks the practices of whoever builds and operates the system, not the model. SaaS gives you the vendor's certifications and patching but puts your data in a shared multi-tenant platform on their terms, while custom gives you full control over data residency, access rules, and compliance requirements like HIPAA, with the responsibility sitting with you and your agency. Before hiring anyone for a system holding sensitive data, ask for their security checklist: encryption at rest and in transit, an OWASP Top 10 review, role-based access, and a penetration test before launch.
What does it cost to run a mobile app every month after launch?
Budget three buckets: store fees (Apple charges $99 a year, Google Play a one-time $25), hosting and infrastructure, and per-use services like maps, SMS, or payment processing. Across Digital Heroes client projects, a small production app runs $150 to $500 a month all-in before any new feature work. The number scales with usage, so ask your agency for a cost projection at 1,000 users and at 50,000, not just at launch.
What are the biggest mistakes first-time software buyers make?
Choosing the lowest bid, paying more than 30-40% upfront instead of on milestones, skipping a written specification, and having no maintenance plan for after launch. The most expensive of the four in Digital Heroes rescue projects is the missing spec: without written acceptance criteria, done becomes an argument instead of a checklist, and every disagreement resolves in the vendor's favor. Fix those four and you have avoided most of the ways these projects fail.
Is buying a template app from CodeCanyon cheaper than hiring a developer?
Upfront, yes: templates sell for $30 to $200 against tens of thousands for custom work, but the total cost often flips within the first year. Templates commonly arrive with outdated dependencies, no ongoing updates, and code you cannot inspect before buying, and heavy customization of someone else's codebase can cost more than building clean. They are fine as a throwaway prototype and a poor foundation for an app your revenue depends on.
Can I move my users and data off a no-code platform into a custom app?
Your data can move, but your users' passwords cannot. Platforms like Bubble let you export records through CSV files or their API, but password hashes never leave the platform, so a migration needs a password reset or email login flow for every existing user. Plan the export before you hit the platform's pricing or capacity ceilings, because migrating under pressure is how data gets lost.
How do I vet a mobile app development agency before signing?
Ask for three apps they built that are live in the stores right now, then download them and read the recent reviews yourself. Ask exactly who will work on your project, because some agencies sell with senior staff and deliver with juniors or subcontractors, and request one past client you can call. An agency that stalls on any of those three requests is answering your question.
How many SaaS seats do we need before building custom becomes cheaper?
The crossover usually shows up between 20 and 50 seats on premium tiers. Salesforce Enterprise lists at $165 per user per month, so 40 users cost about $79,000 a year in subscriptions, which is real money against a custom system you would own outright. Run the comparison over three years: if subscription spend beats the build cost plus 15-20% annual maintenance, custom wins on price before you even count workflow fit.
What tech stack should I ask for so I am not locked into one vendor?
Ask for a mainstream stack: Flutter or React Native for the app, or Swift and Kotlin if you go native, with a backend on widely hired technology like Node.js and PostgreSQL. Stack choice matters less for features than for who can maintain the code later, and every option above has a deep hiring pool. Refuse agency-proprietary frameworks and platforms only that vendor understands, since they turn every future change into a captive negotiation.
Can custom software connect to the tools we already use, like QuickBooks, Stripe, and Google Workspace?
Yes, and connecting your existing tools is one of the main reasons to build custom: mainstream platforms like QuickBooks, Stripe, Shopify, and Google Workspace all publish documented APIs. Budget 1 to 3 weeks of work per integration depending on API quality and how much data flows in both directions. Ask any vendor whether they have integrated with your specific tools before, because quirks like QuickBooks' OAuth token handling and API rate limits get learned on someone's project, and it should not be yours.
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?