A FHIR Facade is a software layer that presents a fully compliant Fast Healthcare Interoperability Resources (FHIR) API to external clients while internally translating those RESTful requests into the native query language of a non-FHIR data source. This pattern enables legacy clinical data repositories, relational databases, or proprietary EHR systems to participate in modern interoperability ecosystems without requiring a costly, full-scale data migration or a complete backend replacement. The facade acts as a real-time translator, parsing incoming FHIR search parameters and resource requests, executing the corresponding native query, and dynamically transforming the returned results into valid FHIR resources.
Glossary
FHIR Facade

What is FHIR Facade?
A FHIR Facade is an architectural pattern that provides a standards-compliant FHIR API interface while translating requests in real-time to a non-FHIR legacy backend system.
This approach is critical for federated learning architectures in healthcare, where a central aggregator must query distributed, heterogeneous data nodes without centralizing protected health information. A FHIR Facade allows each institution to expose its clinical data—stored in diverse formats like OMOP CDM or legacy SQL schemas—through a uniform, standards-based interface. By leveraging the facade pattern, federated queries for cohort discovery or model training data can be executed consistently across sites, while the underlying data remains in its original format and location, preserving existing investments and minimizing disruption to clinical operations.
Key Characteristics
The FHIR Facade is not a simple proxy; it is a sophisticated translation engine that maps RESTful FHIR semantics onto legacy backend systems in real-time.
Real-Time Query Translation
The core mechanism involves intercepting a FHIR RESTful request (e.g., GET /Patient/123) and dynamically translating it into the legacy system's native query language. This is not a static mapping; the facade parses FHIR search parameters like _lastUpdated, _include, and chained parameters, converting them into equivalent SQL, NoSQL, or proprietary API calls. The result set from the backend is then transformed into a valid FHIR Bundle resource before returning it to the client, ensuring the legacy system appears fully FHIR-native without any code modification.
On-Demand Resource Normalization
Legacy data rarely conforms to FHIR profiles. The facade applies a mapping layer that normalizes non-standard data models into compliant FHIR Resources during the read path. This includes:
- Structural transformation: Flattening nested legacy objects into distinct FHIR resources.
- Terminology mapping: Translating local proprietary codes into standard terminologies like SNOMED CT or LOINC using a pre-configured ConceptMap.
- Identifier translation: Assigning a logical FHIR ID to a record that may have a composite key in the source system, maintaining a stable identity for external consumers.
Operation Support & Write-Back
A robust facade supports not only reads but also transactional writes. It exposes standard FHIR operations like create, update, and $validate. When a client sends a FHIR Transaction Bundle, the facade decomposes it into discrete operations, executes them against the legacy system's API or database in the correct order, and manages the rollback logic if a step fails. This allows modern SMART on FHIR applications to write data back to an aging mainframe or proprietary clinical data repository as if it were a native FHIR server.
FHIRPath & Search Parameter Engine
To support complex querying, the facade must implement a subset of the FHIRPath specification and the full FHIR search syntax. This engine evaluates conditional references, reverse chaining, and _has parameters without materializing the entire dataset. For instance, a query for Observation?subject:Patient._has:Condition:subject:code=XYZ requires the facade to execute a sub-query against the legacy system's diagnosis table to filter observations, a capability that distinguishes a true facade from a simple REST wrapper.
Stateless Architecture & Scalability
The facade is designed as a stateless, horizontally scalable middleware layer. It stores no clinical data itself; it is a pure compute layer that relies entirely on the source of truth in the legacy backend. This design ensures that the facade does not create a new data silo. It leverages caching only for performance-critical reference data like StructureDefinitions and ValueSets. This statelessness simplifies deployment in containerized environments like Kubernetes, allowing the translation layer to scale independently of the often-monolithic legacy database.
Conformance & Capability Exposure
The facade dynamically generates a CapabilityStatement resource that accurately reflects the intersection of what the FHIR standard allows and what the legacy system can actually support. It does not falsely advertise full FHIR conformance. If the backend cannot support a specific search parameter, the facade omits it from the CapabilityStatement.rest.resource.searchParam list. This honest signaling is critical for FHIR Validator tools and client applications to programmatically discover the real limits of the legacy system without encountering runtime errors.
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Frequently Asked Questions
A technical deep dive into the architectural pattern that bridges legacy healthcare data silos with modern interoperability standards without costly data migration.
A FHIR Facade is an architectural pattern where a FHIR-compliant RESTful API is layered on top of a non-FHIR legacy data source, translating FHIR requests into the backend's native query language in real-time. Unlike a full data migration or a static data warehouse, the facade acts as a just-in-time translator. When a client sends a FHIR query—for example, GET [base]/Patient?identifier=12345—the facade intercepts this request, parses the FHIR semantics, converts them into a SQL query against a legacy relational database (or a proprietary API call to an old mainframe system), retrieves the raw data, and dynamically maps it into a valid FHIR Patient resource before returning it. This pattern preserves the single source of truth in the legacy system while exposing a modern, standards-based interface for downstream consumers like SMART on FHIR apps or federated learning nodes.
Related Terms
Core architectural patterns and standards that interact with or enable the FHIR Facade pattern in healthcare interoperability.
Fast Healthcare Interoperability Resources (FHIR)
The foundational HL7 standard that the facade exposes. FHIR defines a RESTful API and a set of modular 'Resources' (Patient, Observation, Condition) representing granular clinical concepts. A facade must translate its internal query logic into these standard JSON/XML representations and HTTP verbs (GET, POST, PUT). Understanding the core resource definitions and search parameters (e.g., GET /Observation?patient=123&code=LOINC) is essential for building an accurate translation layer.
OMOP Common Data Model (CDM)
A common backend data model often sitting behind a FHIR Facade. The Observational Medical Outcomes Partnership (OMOP) CDM standardizes observational health data into a person-centric relational schema. A facade in this context must translate FHIR's resource-oriented requests into SQL queries against OMOP's standardized vocabularies and tables (e.g., mapping a Condition resource to the CONDITION_OCCURRENCE table). This pattern is critical for enabling large-scale analytics across disparate data sources.
FHIRPath
A path-based expression language used to navigate and extract data from FHIR structures. In a facade architecture, FHIRPath can be used to define dynamic mapping rules between the legacy schema and the FHIR output. Instead of hard-coding every field transformation, a facade engine can evaluate expressions like Condition.code.coding.where(system='http://snomed.info/sct') to extract and validate specific coded elements before serving the response.
StructureDefinition & Profiling
The FHIR resource that defines the rules a facade must enforce. A StructureDefinition specifies which elements are mandatory, what data types are allowed, and what terminology bindings are required for a specific use case (e.g., a US Core Patient profile). The facade's translation engine must validate that the generated FHIR output conforms to these profiles, ensuring syntactic and semantic interoperability even when the underlying data is messy or incomplete.
FHIR Subscription
A mechanism for real-time event notification that elevates a facade from a passive translator to an active data synchronizer. When a legacy system updates a record, the facade can emit a FHIR Subscription notification to interested clients. This requires the facade to monitor the backend's change data capture (CDC) logs and translate internal events into standard FHIR topic-based notifications, enabling event-driven architectures on top of static legacy data stores.
TerminologyService & ConceptMap
The semantic translation layer critical for facade accuracy. A TerminologyService API allows the facade to validate and translate local proprietary codes into standard terminologies like SNOMED CT or LOINC. A ConceptMap resource defines the explicit mapping rules. For example, a facade might use a ConceptMap to translate an internal billing code 'ABC-123' into a standard SNOMED diagnosis code before populating a FHIR Condition resource, ensuring semantic consistency.

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us