Despite the universal recognition of the importance of an omnichannel approach to patient engagement and care delivery in healthcare systems to deliver personalized and value-based care, such efforts are complicated by the fragmented nature of healthcare information systems. This scattered ecosystem makes it difficult to integrate apps with EHR (Electronic Health Record) platforms seamlessly, hampering efforts to provide a unified patient experience.
This is where SMART on FHIR integration enters the picture—not as a patchwork solution but as a foundational framework. Think of it as constructing a shared grammar for healthcare apps and data systems, combining the FHIR standard with a secure, scalable launch protocol. The goal? To close the long-standing gaps that have kept systems speaking different dialects, stalling progress in interoperability and digital care delivery.
It’s not just a “nice-to-have” anymore. In the U.S., for instance, the Office of the National Coordinator for Health IT (ONC) requires SMART on FHIR support as part of federal certification. In practical terms, that means any health IT vendor aiming for compliance must ensure their solutions can support SMART on FHIR-based authentication and app launching workflows. This shift makes integrating SMART on FHIR apps with EHRs more than just a technical choice—it’s a regulatory necessity.
At Edenlab, we’ve embedded full SMART on FHIR support into our Kodjin FHIR Server—a flexible, production-grade backend tailored for interoperability at scale. Whether you’re designing a new digital health tool or adapting existing systems, Kodjin is built to serve as the core infrastructure for deploying SMART on FHIR apps reliably and securely.
What Is SMART on FHIR?
SMART on FHIR is a set of open standards designed to enable secure, interoperable healthcare applications. It consists of:
- FHIR (Fast Healthcare Interoperability Resources): A data standard developed by HL7 that defines how health information is structured, stored, and exchanged.
- SMART (Substitutable Medical Applications and Reusable Technologies): A framework that standardizes authentication and authorization, allowing third-party applications to securely connect to EHRs and other health IT systems.
By combining these technologies, SMART on FHIR provides a standardized framework that allows developers to build healthcare applications that are seamlessly integrated and secure. This framework makes it significantly easier for an EHR software development company to integrate a SMART on FHIR app into diverse EHR environments while maintaining interoperability and compliance.
How SMART on FHIR Apps Work
SMART on FHIR leverages the OAuth 2.0 and OpenID Connect (OIDC) protocols for authentication and authorization. This ensures applications can securely access patient data while maintaining privacy and user control.
Authorization Process
1. A healthcare app requests access to patient data
2. The user is redirected to an authorization server (e.g., Keycloak, Okta) to authenticate and grant permissions
3. Upon successful authentication, an access token is issued
4. The app uses this token to securely communicate with a SMART-enabled FHIR server
5. The FHIR server validates the token and grants access to the requested data.
SMART on FHIR defines various permission scopes that determine the level of data access, including:
- Patient-level scopes (e.g., patient/Observation.read)
- User-level scopes (e.g., user/Patient.rs)
- System-level scopes (e.g., system/*.*).
By implementing these scopes, applications ensure secure and role-based access to clinical data.
SMART on FHIR 2 introduces several enhancements, including:
- Granular Data Access Permissions: More refined control over resource-level data access through/thanks to/based on implicit Search Parameters that are introduced in scopes
- FHIR Context: Allows launching apps with pre-selected FHIR resources, reducing API calls. It enables business logic on the SMART on FHIR application because we have more specific details
- App State Persistence: Enables applications to retain session states across logins
- Visual Customization: Allows SMART applications to customize their appearance and work while the user continues working in the EHR
- Brand and FHIR System Endpoints Access: Unblock observability for base-url FHIR-compliant systems for SMART on FHIR applications.
Benefits of SMART on FHIR App Development

1. Faster Development Cycles
Thanks to SMART on FHIR technology, application development within healthcare organizations now proceeds at a much faster pace. This is because developers can concentrate on building useful features instead of struggling with interoperability issues.
2. Secure and Efficient Data Access
The use of OAuth 2.0 authentication for secure data exchange minimizes the chances of unauthorized access, thus helping protect sensitive information.
3. Seamless EHR Integration
SMART on FHIR’s plug-and-play design makes it simple to incorporate new applications into any SMART-compatible EHR system, saving time and reducing implementation costs.
4. Enhanced Patient Care
By enabling easy access to clinical data, healthcare providers can use SMART applications for better decision support, improving patient outcomes.
5. Substitutability
Organizations can adopt new healthcare applications without costly redevelopment, ensuring continuous innovation and better functionality.
Developing a SMART on FHIR App: Key Considerations and Best Practices
Developing applications with SMART on FHIR significantly reduces the complexity and costs associated with EHR integrations. Developers can create apps that work with several different platforms simultaneously, as opposed to building individual solutions for each organization. This approach allows for greater efficiency and cost savings in the long run.
1. Managing EHR-Specific Variations
Although standardization efforts have progressed, variations among EHR implementations of FHIR remain significant in several ways:
- Some EHR systems might restrict external SMART on FHIR app integrations access to specific FHIR resources.
- Challenges could occur due to variations in browser environments or embedded frame rendering.
Authentication methods and OAuth workflows might differ across EHRs.
2. Pay Attention to Context
When integrating SMART on FHIR apps, it’s essential to render resource content thoughtfully to prevent confusion. This involves striking a balance between displaying enough information to help users make informed decisions and overwhelming them with excessive detail.
For example, some meta information about the resource might need to be hidden from users, while in other cases, additional context about specific terms (like LOINC codes) should be provided. It’s also important to cater to different user needs by tailoring the presentation accordingly, ensuring all users can easily comprehend and interpret the data being displayed. This requires careful consideration of what information is most relevant and useful at each stage of the user journey and designing the interface accordingly.
Example: If the LOINC code 8480-6 represents blood pressure, the UI may:
- Show “Blood Pressure: 120/80 mmHg” instead of just the raw code
- Highlight abnormal values based on reference ranges
- Provide tips or additional details only when necessary.
3. Optimize Authentication and Security
When developing a SMART on FHIR app, especially those meant to interact with EHRs, ensuring both smooth user interactions and robust security isn’t just best practice, it’s foundational. Imagine the EHR system as a secured building, and the app is a guest. Rather than having to knock and identify itself repeatedly, the guest receives a trusted pass at the entrance, a process known as session-based authentication. This approach not only reduces friction for users but also keeps SMART on FHIR workflow integration going without interruption.
Equally important is controlling who gets to approach the building in the first place. By allowing access only from recognized EHR IP ranges, developers effectively build a fence that filters out untrusted visitors, limiting the system’s exposure to external threats. This targeted access strategy reinforces system integrity and the privacy of sensitive data.
Data in transit is another vulnerable point. To ensure it travels safely, like mail in a sealed envelope rather than an open postcard, every transmission should be encrypted using HTTPS. This shields it from interception, satisfying compliance frameworks such as HIPAA and, more importantly, preserving patient trust.
Lastly, think twice before storing sensitive patient data directly within the SMART on FHIR app. Devices can be lost, stolen, or compromised. Keeping Protected Health Information (PHI) off local storage is like choosing not to carry your most sensitive documents in your back pocket. It’s a preventative step, one that minimizes damage if a device ever falls into the wrong hands.
4. Plan for Institutional Approvals and Deployment Delays
Bringing a third-party SMART on FHIR app into the intricate environment of a healthcare system is rarely a straightforward task. More often than not, it unfolds as a layered process marked by extended timelines and numerous procedural checkpoints.
At the heart of these delays lie extensive security and compliance evaluations. These aren’t mere formalities but are essential gatekeeping steps meant to ensure the incoming tool meets internal standards and external regulatory mandates. In many cases, this necessitates reworking parts of the application to accommodate institutional infrastructure, policies, and SMART on FHIR app integration requirements.
But technical fit isn’t the only hurdle. Institutional alignment often depends on navigating a web of stakeholders—each with their own priorities and concerns. Securing endorsement from IT leaders, compliance teams, and administrative personnel can be as pivotal as the technical work itself.
If you want to develop SMART on FHIR apps, you need to approach it with foresight:
- Plan for process drag: Account for delays rooted in documentation reviews, policy checks, and back-and-forth negotiations.
- Initiate conversations early: Engage IT departments and compliance teams well before the final stages.
- Map possible roadblocks: From legal reviews to integrating SMART on FHIR tests, anticipate areas of friction and build buffer time accordingly.
By taking a proactive stance and fostering ongoing dialogue across departments, developers not only mitigate setbacks but also increase the likelihood of a smooth, timely deployment. In a space where precision and trust are paramount, successful SMART on FHIR integration hinges not just on code but also on coordination.
5. Test Across Different Clinical Contexts
When building a healthcare application intended to work within the SMART on FHIR ecosystem, real-world performance matters as much as compliance. While the SMART on FHIR interoperability blueprint is innovative, no two clinical environments are exactly alike, and that’s where the true test begins.
Imagine developing a universal plug, only to discover the sockets in each hospital are shaped slightly differently. That’s the challenge developers face when working to integrate apps with EHR. SMART on FHIR provides the standard, but implementation can vary depending on the EHR’s internal architecture, authentication flow, or how it renders embedded interfaces.
- Browser behavior may differ, especially in legacy systems.
- Network restrictions, such as firewalls or VPN layers, can impact functionality.
- UI embedding policies may vary between institutions.
This is why testing in diverse clinical contexts isn’t just helpful—it’s foundational. It allows teams to uncover potential friction points that would otherwise remain hidden until deployment.
On-the-ground testing serves another vital purpose: it reveals how the app interacts with the people who use it. From clinicians navigating high-paced workflows to patients engaging with their own records, each perspective highlights opportunities for refinement.
Some feedback may seem deceptively simple—a button that needs relocating, a chart that needs clearer labels—but addressing these details often determines whether a tool becomes part of a daily practice or gets ignored entirely.
Integrating insights from real users allows teams to adjust not only the interface but the experience itself:
- Clinicians might need results displayed in structured views they already use, reducing cognitive overhead.
- Patients may prefer streamlined screens, emphasizing clarity and ease of use.
Iterative cycles of testing and refinement create a product that respects the technical environment and the human one. In practice, this translates to fewer errors, faster adoption, and software that feels intuitive rather than intrusive—a result achievable when teams deeply understand how to integrate SMART on FHIR apps into real-world clinical workflows.
Build SMART on FHIR App with the Kodjin FHIR Server
SMART on FHIR is transforming healthcare application development by enabling smooth, secure, and scalable integrations with EHR systems. However, crafting a top-performing, interoperable app requires more than just understanding SMART on FHIR; it calls for robust FHIR infrastructure and expert implementation.
At Edenlab, we specialize in FHIR-based solutions that empower healthcare organizations to accelerate innovation while guaranteeing compliance, security, and seamless interoperability. Our Kodjin FHIR Server provides a high-performance, enterprise-grade FHIR backend designed to handle complex healthcare data exchange at scale.
With our healthcare integration solutions, we support not only the backend setup but also the end-to-end integration work—secures APIs, interface adapters, identity management, and client-side embedding—so your SMART on FHIR app launches reliably across different clinical settings.
Contact us to discuss how our team can help you streamline your healthcare application development, FHIR software development.
FAQs
What is SMART on FHIR, and how does it improve healthcare workflows?
SMART on FHIR (Substitutable Medical Applications Reusable Technologies on Fast Healthcare Interoperability Resources) is a specification that enables healthcare apps to connect securely and seamlessly with Electronic Health Records (EHRs). Think of it as giving third-party apps a common language and a secure key to access clinical data across different platforms.
By standardizing how apps authenticate users and access patient data, SMART on FHIR reduces the friction of custom integrations. This interoperability simplifies workflows: clinicians can launch trusted apps directly within their EHR interface, reducing context switching and improving decision-making at the point of care. Whether it’s a clinical decision support tool or a patient engagement dashboard, SMART on FHIR streamlines how apps plug into healthcare ecosystems.
How can I ensure my integration of SMART on FHIR apps works across multiple EHR platforms?
Supporting multiple EHRs means designing your app to adapt rather than assume. Here’s how to approach it:
- Stick to the standard, but expect variation: Although SMART on FHIR defines a baseline, individual EHRs may interpret or extend FHIR resources differently. Use the U.S. Core Profiles or International Patient Summary (IPS) as starting points for broad compatibility.
- Implement dynamic discovery: SMART on FHIR servers provide metadata endpoints that your app can query to learn about supported capabilities. Build your app to adapt its behavior based on what it finds.
- Test against diverse environments: Use public sandbox environments from EHR vendors (like Epic’s Sandbox or Cerner’s code console) to test how your app behaves in different settings.
- Decouple your data logic: Isolate app logic from data access layers so it’s easier to handle discrepancies in structure or terminology between systems.
What are common security best practices for SMART on FHIR app development?
Security isn’t optional in healthcare; it’s built into the foundation. Here are the essential measures:
- Use OAuth 2.0 and OpenID Connect: This is required by SMART on FHIR and ensures secure, token-based authorization with identity management.
- Minimize scope and duration of access tokens: Grant the least amount of access needed for the shortest duration necessary.
- Avoid storing PHI locally: If your app doesn’t require persistent storage, keep data ephemeral and encrypted in memory.
- Encrypt all communication: Use HTTPS for all data exchange. No exceptions.
- Validate input and sanitize output: Prevent injection attacks and data corruption by never assuming external data is safe.
- Restrict access by IP or session context: Especially for embedded apps, tying access to authenticated sessions or EHR-trusted networks helps reduce attack vectors.
How do I handle data inconsistencies when integrating with different healthcare systems?
Interoperability, in theory, is clean; in practice, it’s messy. Here’s how to manage it:
- Build a translation layer: Create adapters or mapping logic that normalize data from each EHR into a consistent internal model your app understands.
- Use terminology services: Standardize values (e.g., LOINC, SNOMED CT) using terminology servers that can map and validate codes.
- Flag data anomalies: Don’t just fail silently. Alert users or log warnings when data is incomplete or conflicts with expectations.
- Offer fallbacks and defaults: Gracefully degrade functionality when certain data isn’t available. For instance, if a vital sign is missing, display a placeholder or explanation rather than breaking the UI.
- Engage clinical SMEs: Developers shouldn’t make assumptions about clinical meaning; involve clinicians when designing responses to ambiguous or missing data.
What are the key challenges when integrating a SMART on FHIR app with legacy systems?
Legacy systems weren’t built with modern APIs in mind, so integration can feel like fitting a square peg into a round hole. Common hurdles include:
- Lack of FHIR support: Many older systems don’t natively support the FHIR standard. You may need middleware or integration engines (like Mirth or InterSystems HealthShare) to translate data formats.
- Authentication incompatibility: Legacy EHRs may not support OAuth 2.0. In such cases, proxy authentication layers might be required to simulate a SMART-compatible flow.
- Non-standard data models: Data structures in legacy systems often deviate from normalized standards, increasing the need for custom mapping.
- Limited extensibility: Unlike modern platforms, legacy systems may not expose APIs or allow external apps to launch within their workflow.
- Latency and reliability: Old systems can be slow or unstable under modern workloads. Plan for retries, timeouts, and degraded modes.
Successful integration often requires compromise by simplifying your app’s features or investing in adapters that bridge the technical divide.
We dive deep where others skim
Our healthcare software development firm brings the expertise and precision needed to tackle the industry complexities. With a specialized focus on healthcare processes, regulations, and technology, we deliver solutions that address the toughest challenges.
Stay in touch
Subscribe to get insights from FHIR experts, new case studies, articles and announcements
Great!
Our team we’ll be glad to share our expertise with you via email