FHIR API Healthcare Website Integration: What Web Developers Actually Need to Build
FHIR API healthcare website integration explained for web developers, covering SMART on FHIR authentication, FHIR resources, React applications, pagination, security and CMS interoperability requirements.

Healthcare Compliance Guide
Reviewed and updated for the latest developments in healthcare compliance guide and related healthcare compliance standards.
FHIR is often introduced to web teams as an interoperability standard. For a healthcare website or patient portal, that description is incomplete.
FHIR determines how your frontend can request structured information from an EHR, while your application still has to manage authentication, permissions, state, errors, pagination and clinical presentation.
The need is already operational. In 2024, 70% of non-federal acute care hospitals enabled patient access to health information through apps configured to meet HL7 FHIR specifications, according to ASTP Health IT Data Brief No. 79, published in August 2025.
For web developers, the question is no longer whether FHIR matters. It is how the browser, application layer and EHR work together without creating avoidable security, usability or integration problems.
Why FHIR is a front end problem, not just a backend one
A FHIR integration changes what your website has to do after the user clicks a button.
A conventional website may retrieve content from its CMS and render it for anonymous visitors. A FHIR-connected patient experience may authenticate a user, request authorised clinical resources, interpret a FHIR Bundle, handle pagination and present changing clinical information.
That makes FHIR an application architecture concern, not simply a backend integration task.
For organisations planning patient portal development, the frontend needs to be designed around these data and authorisation behaviours from the beginning.
What changes in the browser once your site talks to an EHR
Consider a patient opening a health dashboard.
The application may need to establish an authenticated session, obtain appropriate authorisation, request information from an EHR endpoint and convert the returned resources into usable interface components.
The frontend also has to account for empty results, expired authorisation, unavailable resources, slow responses and incomplete datasets.
Clinical information cannot be treated like ordinary website content. A date, measurement, medication or encounter needs appropriate labels, context and presentation.
Where most agencies stop short, and why that creates rework
A common implementation mistake is to treat a successful API response as the end of the integration.
The real work begins when the application has to handle different resource types, paginated responses, authorisation failures, missing fields and clinical workflows.
During healthcare implementations, frontend decisions made before the FHIR contract is understood often create avoidable rework across state management, API handling and user interface components.
Implementation insight: Define the FHIR interaction model before designing the final interface. Your wireframes should account for loading, empty, error, authorisation and paginated states, not only successful API responses.
Planning a FHIR integration for your healthcare website?
Our engineers specialise in connecting patient portals and healthcare websites securely to EHRs using SMART on FHIR.
Get Integration Help →FHIR R4 in plain language, for people building the website, not the data model
FHIR stands for Fast Healthcare Interoperability Resources. It provides a standardised way to represent and exchange healthcare information through resources and APIs.
For web developers, the useful mental model is simple. A FHIR resource is structured information that your application can request, interpret and display.
What a FHIR resource actually is
A resource represents a particular type of healthcare information.
For example, a patient can contain information about an individual, while observation can represent a clinical measurement or laboratory result.
Resources contain structured fields, identifiers, references and metadata. Your application should not assume that every field will always be present or that every resource will have the same structure.
That distinction matters when building reusable React components.
The resource types a healthcare website touches most: Patient, Observation, Encounter, MedicationRequest
The patient commonly provides information needed to identify the person associated with the portal session.
Observation can represent measurements such as vital signs or laboratory results, depending on the implementation and available data.
Encounter represents a healthcare interaction, while MedicationRequest represents a request or order for medication.
A patient dashboard may combine these resources into different interface areas, but each resource has its own structure and clinical meaning.
Did You Know ?
FHIR API healthcare website integration connects a website frontend to EHR data using HL7 FHIR R4. It covers SMART on FHIR authentication, resources such as Patient and Observation, paginated clinical data, scoped access and the browser workflows required to present EHR information safely.
Why FHIR R4 specifically, not an older or newer version
FHIR exists in multiple releases and implementation guides. Your development team should build against the version and implementation guide required by the EHR or programme you are integrating with.
For the US interoperability requirements discussed in this article, HL7 FHIR R4 is the important baseline.
That means developers should confirm the exact FHIR version, profiles, terminology requirements and implementation guide before writing production integration code.
Implementation insight: Do not build against generic FHIR examples alone. Confirm the EHR's supported version and implementation guide first, then design your frontend models around the actual resources your application will receive.
Why FHIR R4 is mandated, and what deadline your organisation is working against
The regulatory environment explains why FHIR has moved from an optional technical consideration toward a core requirement in many US healthcare integrations.
The Office of the National Coordinator for Health IT reports that, since January 1, 2023, every certified EHR has been required to expose a standardised FHIR API for patient and population services under the ONC Cures Act Final Rule.
That requirement creates an important baseline for teams connecting third-party applications to certified EHR environments.
The CMS Interoperability and Prior Authorization Final Rule, explained for web teams
CMS has also established requirements affecting payer interoperability.
The CMS Interoperability and Prior Authorization Final Rule, CMS-0057-F, requires impacted payers to operate 4 production HL7 FHIR R4 APIs covering Patient Access, Provider Access, Payer to Payer and Prior Authorization by January 1, 2027.
For a web team, the important point is that these requirements translate into application work. Authentication, API requests, data presentation, error handling and testing all become part of delivery planning.
What was already required, and what changes by January 1, 2027
The January 1, 2027 deadline does not mean FHIR APIs suddenly become relevant for the first time.
Certified EHR requirements have already established a FHIR API baseline. CMS-0057-F adds specific payer-facing production API requirements for impacted organisations.
That distinction matters when estimating project work. Your team should identify which EHR, payer or other healthcare system requirements actually apply before committing to an implementation scope.
Why hospitals are already most of the way there
FHIR is already being used for patient access experiences at a significant scale.
ASTP reported that 70% of non-federal acute care hospitals enabled patient access through apps configured to meet HL7 FHIR specifications in 2024. That matters because web teams increasingly encounter FHIR as an existing integration requirement rather than a future architecture option.
CMS estimates that its interoperability and prior authorisation rule will save approximately 15 billion USD across the US health system over 10 years, primarily through reduced prior authorisation friction.
The business case therefore extends beyond technical compliance. Properly designed integrations can support more direct digital access to healthcare information and workflows.
For the broader regulatory context, see the HIPAA compliance overview.
Implementation insight: Treat regulatory deadlines as architecture planning inputs. Confirm which APIs and implementation guides apply to your project before estimating frontend, backend, security and testing work.
SMART on FHIR and OAuth2: how patient login actually works
FHIR defines the data exchange model, but it does not by itself provide the complete application authorisation experience.
SMART on FHIR provides a framework for authorising applications to access FHIR resources. It builds on OAuth 2.0 and allows an application to request defined access scopes.
For patient-facing applications, this distinction is critical because authentication and clinical data access are related but separate concerns.
The authorization flow, step by step, from a browser's perspective
A typical flow begins when the application needs access to an EHR.
The application redirects the user through the appropriate authorisation process. After successful authentication and consent where applicable, the application receives an authorisation result that allows it to obtain the required access token.
The application then uses that token when requesting authorised FHIR resources.
The exact flow depends on the EHR, SMART configuration and application type. Your team should therefore follow the implementation guide provided by the target system rather than assuming every SMART deployment behaves identically.
Where SMART on FHIR breaks in real builds
Real projects encounter problems when token handling, redirects, scopes or session state are treated as minor implementation details.
An application can authenticate successfully but still fail when the requested scope does not match the resource needed by the interface.
Expired tokens, incorrect redirect configuration and inconsistent session handling can also produce confusing frontend failures.
For healthcare applications, the security model must extend beyond simply hiding an access token from the interface.
For broader implementation controls, see our breakdown of HIPAA technical safeguards.
For teams building HIPAA compliant website development, authentication, authorisation, session handling and PHI protection need to be considered together.
Scopes, and why requesting too much access creates its own risk
SMART scopes define what the application can request.
Requesting broad access may simplify early development, but it can create unnecessary exposure and make the application's permission model harder to justify.
A better approach is to request only the access required for the actual patient workflow.
Implementation insight: Build a scope matrix before coding. Map each screen to the FHIR resources it needs, then map those resources to the minimum permissions required.
Building patient facing FHIR queries into your UI
Once authentication works, your frontend needs to turn FHIR responses into useful patient experiences.
The important shift is to design around resources and responses rather than treating the EHR like a conventional website database.
A basic GET /Patient request, and what comes back
A GET request against a Patient endpoint can return a Patient resource containing structured information about the person.
The application then maps the returned fields into the appropriate interface components.
Production code should not assume that every optional field exists. Missing values need deliberate handling so the interface does not display misleading or incomplete information.
Querying Observation and MedicationRequest for a patient dashboard
A dashboard may request multiple resource types for different sections of the interface.
Observation data could populate a measurement area, while MedicationRequest information could support a medication-related workflow.
These responses may arrive separately and may contain references to other resources. Your application should therefore keep data retrieval concerns separate from presentation components.
Handling FHIR pagination without breaking the user experience
FHIR search results can return a Bundle containing multiple entries and links to additional results.
The interface should follow the available pagination links rather than assuming that the first response contains everything.
For a long list of observations, loading all records at once can create unnecessary delays and a poor patient experience.
While building patient portals, structuring React state around FHIR Bundles allows paginated information to load without blocking the entire dashboard.
Our RxHere pharmacy integration case study provides a practical example of healthcare system integration and patient-facing data workflows.
Implementation insight: Treat pagination as part of the UI design. Decide whether users need page controls, incremental loading or another pattern before implementing the FHIR query layer.
React based FHIR clients and integration checklists
React is well suited to FHIR-connected interfaces because resource data can be represented through reusable components and application state.
The challenge is not rendering JSON. It is creating an architecture that can safely manage asynchronous clinical data and changing application state.
Working with FHIR client libraries in a React application
FHIR client libraries can reduce repetitive work around resource handling, requests and common interoperability patterns.
However, a library does not replace knowledge of the target EHR's implementation guide.
Your team still needs to understand authentication, scopes, supported resources, profiles, search parameters, error responses and pagination.
Common state management mistakes with FHIR bundles
A FHIR Bundle should not automatically become one large global state object.
Different parts of a dashboard may depend on different resources, request states and refresh cycles.
Separating resource data from loading, error and pagination state makes the interface easier to maintain.
It also prevents one failed request from unnecessarily blocking unrelated sections of the patient experience.
For a broader technical discussion, see our guide to EHR integration architecture.
Error handling for a resource type your UI was not built to expect
Healthcare integrations evolve.
An EHR implementation may expose resources or fields that your original interface did not anticipate. Your application should fail safely when a resource is missing, incomplete or unavailable.
Clear fallback states are particularly important for clinical information. The interface should never imply that missing information means a clinical condition does not exist.
Implementation insight: Create resource adapters between the FHIR response and React components. That boundary prevents vendor-specific data structures from spreading throughout the interface.
A practical checklist before you start a FHIR integration
Before development begins, confirm the technical and governance assumptions behind the integration.
FHIR and EHR requirements
- 1.Confirm the target EHR and FHIR endpoint.
- 2.Confirm the supported FHIR version.
- 3.Identify the applicable implementation guide.
- 4.Identify supported resource types.
- 5.Confirm supported search parameters.
- 6.Confirm authentication and SMART requirements.
Frontend and application requirements
- 1.Define the patient journeys that require FHIR data.
- 2.Map each screen to required resources.
- 3.Define required scopes.
- 4.Design loading and empty states.
- 5.Define pagination behaviour.
- 6.Define error and authorisation states.
Security and operational requirements
- 1.Establish the application architecture for token handling.
- 2.Define access controls.
- 3.Review PHI handling across application logs.
- 4.Define monitoring and audit requirements.
- 5.Establish testing requirements.
- 6.Document the integration and data flow.
The checklist should become part of the technical design process, not a document completed after development.
Implementation insight: Turn each checklist item into an explicit project decision. Unknown answers should become discovery tasks rather than assumptions carried into development.
Need help integrating FHIR into your patient portal?
If your team is struggling to connect React frontends to EHR APIs safely, Qrolic Health can provide the healthcare interoperability architecture and technical controls you need.
Schedule a FHIR integration review →Frequently Asked Questions
What is FHIR R4 and why does it matter for healthcare websites?
FHIR R4 is a release of the HL7 FHIR standard used to exchange structured healthcare information. For websites, it defines how applications can request and work with resources such as Patient, Observation, Encounter and MedicationRequest.
What is SMART on FHIR used for?
SMART on FHIR provides an authorisation framework for applications accessing FHIR data. It builds on OAuth 2.0 and helps applications obtain appropriately scoped access rather than treating EHR credentials as ordinary website login information.
Is FHIR API integration required by law in the US?
US requirements depend on the organisation and applicable rule. Certified EHRs have been required to expose standardised FHIR APIs since January 1, 2023, while CMS-0057-F introduces further payer API requirements by January 1, 2027.
What is the difference between GET /Patient and GET /Observation in a website build?
A Patient request retrieves structured information about an individual, while Observation represents clinical measurements or results. The two resources therefore require different data handling, interface components and clinical presentation decisions.
Can a React application connect directly to a FHIR API?
A React application can make FHIR requests where the architecture and authorisation model permit it. Production healthcare applications commonly introduce an application layer to manage tokens, access controls, PHI handling and integration-specific logic.
How should a website handle FHIR pagination?
FHIR search responses can include Bundle entries and links to additional results. The application should process those links and load additional information appropriately, rather than assuming one response contains the complete dataset.
What FHIR resource types should a patient portal prioritise first?
Patient, Observation, Encounter and MedicationRequest are useful starting points for many patient-facing workflows. The actual priority should come from the portal's user journeys, available EHR data and the target implementation guide.
Does FHIR integration replace the need for HIPAA compliant hosting?
No. FHIR governs healthcare data exchange and access patterns, while HIPAA requirements address the broader handling of protected health information. Infrastructure, access controls, security processes and other safeguards remain separate considerations.
Qrolic Health Technical Team.
Updated for 2026 Compliance GuidanceQrolic Health works on patient-facing healthcare platforms, portals, integrations and web applications where clinical data exchange must translate into practical frontend and security requirements.
Ready to Build Your Healthcare Platform?
Work with a team that understands HIPAA, accessibility, and healthcare digital experiences from day one.

Patient Portal UX Design Best Practices: Fixing Low Adoption
Patient portal adoption depends on more than providing access. Learn how activation friction, task confusion, accessibility, authentication, and usability testing affect patient portal engagement.

HIPAA Compliant Website Analytics for Healthcare: Building the Right Stack
Build a HIPAA-conscious analytics stack for your healthcare website. Compare Matomo, PostHog, GA4, Plausible, and Mixpanel, then configure tracking to reduce PHI exposure.