A smartphone on a charging stand showing a simple app screen on a wooden table beside a blister pack of tablets and a ceramic cup
    Problems we solve

    Patient Portals and Apps Built for EHR API Limits

    Every portal or app session turns into FHIR calls against the EHR, and the busiest hour can reach the vendor's rate limit. Agnotic Technologies builds patient portals and apps to your requirements, with caching, paging and inbox routing designed in.

    Last reviewed by the Agnotic Technologies engineering team

    How much load does a patient portal put on the EHR?

    A patient portal or patient app loads the EHR through FHIR API calls: every session reads resources such as medications, results and appointments, and the busiest hour has to stay inside the EHR vendor's published rate limit. Agnotic Technologies builds portals and apps with caching, paging and throttling that keep that load within the limit.

    Which portal and app problems does this solve?

    Patient access problems usually show up at the busiest hour, not in testing.

    1. Peak-hour calls reach the rate limit

      Traffic bunches into a busy hour, and an EHR that refuses calls at that point leaves patients with errors. The limit can be per minute or per hour and depends on the app's registration.

    2. Repeated reads of unchanged data

      Many resources rarely change for a patient, yet a portal without caching reads them again at every session.

    3. Searches that page more than needed

      A search that returns two pages is two calls. Small page sizes or extra searches per screen multiply the load.

    4. Token refresh and reconnection

      Apps need refresh tokens so patients do not sign in every time, and the refresh calls add to the same API load.

    5. Secure messages swamp care teams

      Portal messages land in care team inboxes, and without routing rules one team can be over capacity while another has room.

    6. Test limits differ from production

      EHR test environments can have different limits from production, so load that passes testing can fail at go-live.

    What do we build into the portal or app?

    Agnotic Technologies builds patient portals and patient apps to your requirements, on HL7 FHIR and SMART on FHIR, against the EHRs you connect to.

    • Rate limit handling

      Request queuing, backoff when the EHR refuses calls, and per-user throttles so the busiest hour stays inside the vendor's limit.

    • Resource caching

      A cache for resources that rarely change for a patient, refreshed on a schedule or on events, so repeat sessions do not read them again.

    • Conditional reads

      Reads that send If-None-Match or If-Modified-Since, so unchanged data comes back as 304 Not Modified instead of a full resource.

    • Paging and search design

      Searches tuned with _count and fewer round trips per screen, so one view does not trigger several pages of calls.

    • SMART on FHIR sign-in and token refresh

      EHR and standalone launch, scopes per feature and refresh token handling that lets patients reconnect without signing in again.

    • Secure messaging and inbox routing

      Patient messages routed to the right care team inbox, with pooled inboxes and cover rules when one team is over capacity.

    • API usage monitoring

      Dashboards for calls by resource, peak-hour load against the limit and refused calls, per EHR connection and environment.

    How do you estimate peak-hour calls?

    Peak-hour load follows from portal use in five steps, using figures from your own analytics and logs.

    1. Monthly calls are sessions times FHIR calls per session, summed across the resources the app reads.

    2. Calls that reach the EHR are monthly calls minus the share the app serves from its own cache.

    3. Average calls per day are calls that reach the EHR divided by the days the portal is used each month.

    4. Peak-hour calls are the daily average times the busiest hour's share of a day's traffic.

    5. Compare peak calls per minute with a per-minute limit, or peak-hour calls with a per-hour limit, using the EHR vendor's published limit for your app.

    Which design decisions follow from the load?

    Each part of the load maps to a design decision in the portal or app.

    Rate limit handling

    Peak calls against the limit decide whether the app needs request queuing, backoff when the EHR refuses calls and a per-user throttle.

    Caching

    Calls by resource show which resources to cache first. Data that rarely changes for a patient is the first candidate.

    Paging

    Searches with several pages show whether a larger page size with _count, or fewer searches per session, would cut calls.

    Conditional reads

    The cached share depends on conditional reads, so unchanged data comes back as 304 Not Modified instead of a full resource.

    Token refresh

    Certified EHRs issue long-lived refresh tokens to apps that can secure them, so plan token refresh calls in the same load.

    Inbox routing

    Secure messages per inbox per working day set routing rules, pooled inboxes and cover when one care team is over capacity.

    Which traffic needs its own sizing?

    Appointment reminders depend on appointments, not on portal use, so they are sized from the clinic's schedule, as our patient scheduling capacity page explains. What a push or SMS notification may show, and the consent behind it, is covered on our patient engagement software page.

    • Bulk data exports, background sync jobs and write calls such as booking or form submission.
    • Limits per patient, per endpoint or per second. Check short bursts separately from the hourly load.
    • Login and identity provider load, and the portal's own database.
    • Differences between EHR environments, since test limits can differ from production limits.
    Facts and sources

    Which standards shape patient portal API load?

    Short facts we design patient portals and apps around, each linked to its primary source.

    • ONC certification criterion 170.315(g)(10) requires certified EHRs to offer a standardized API for patient and population services based on HL7 FHIR.

      Source: 45 CFR 170.315 (eCFR)
    • ONC criterion 170.315(g)(10) requires the EHR's authorization server to issue refresh tokens valid for at least three months to confidential apps and to native apps that can secure them, so a patient app can reconnect without signing in again.

      Source: 45 CFR 170.315(g)(10) (eCFR)
    • In FHIR R4 search, the _count parameter tells the server how many resources to return in a single page, and servers shall not return more resources than requested.

      Source: HL7 FHIR R4 Search
    • FHIR R4 lets a client send If-None-Match or If-Modified-Since on a read, and the server can answer 304 Not Modified when the content is unchanged.

      Source: HL7 FHIR R4 RESTful API

    Trusted by global innovators

    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve
    Benchmark
    Chibasco
    Fundency
    Lantimer
    Lauren
    Lera
    One Minute
    Pento Pix
    TAP
    Xtrium
    Healthevolve

    Which standards does Agnotic build healthcare software against?

    01HIPAA logo

    HIPAA

    Health Insurance Portability and Accountability Act

    Protect PHI with privacy-first architecture, encrypted storage and transmission, strict access controls, and traceable audit logs.

    02GDPR logo

    GDPR

    General Data Protection Regulation

    Implement lawful consent flows, data minimization, retention controls, and secure processing for sensitive health data.

    03FHIR logo

    FHIR

    Fast Healthcare Interoperability Resources

    Enable standardized health data exchange across apps, care teams, and systems through standards-based FHIR APIs.

    04HL7 logo

    HL7

    Health Level Seven International

    Support enterprise-grade interoperability with HL7-based integrations for records, events, and clinical messaging workflows.

    05HITRUST logo

    HITRUST

    Health Information Trust Alliance

    Align security programs to healthcare-specific control and risk management practices trusted by providers and ecosystem partners.

    06HITECH logo

    HITECH

    Health Information Technology for Economic and Clinical Health Act

    Design with breach notification readiness, digital record safeguards, and operational controls that support regulated care programs.

    07SaMD logo

    SaMD

    FDA Software as a Medical Device

    Plan software quality, traceability, and documentation pathways for products that may require SaMD review and submission.

    08MDR (EU) logo

    MDR (EU)

    Medical Device Regulation (European Union)

    Prepare EU market-ready processes for risk classification, evidence tracking, and lifecycle governance under MDR expectations.

    09SAMHSA logo

    SAMHSA

    Substance Abuse and Mental Health Services Administration

    Apply confidentiality controls and consent-aware sharing models for behavioral and mental health data experiences.

    Frequently Asked Questions

    Yes. A patient app that reads from the EHR through FHIR makes the same kind of calls as a web portal. Count calls from a session in the app itself, because screens and caching often differ from the website.