This is an experimental project to illustrate some options for Federating FHIR services.
It is not intended to be a production solution, but can illustrate execute the expressions as either an extract (for use in search expressions) or validate (for use in StructureDefinition constraints)
Key features:
- Search across federated servers
- Provenance resources included
- Aggregated CapabilityStatement
- Registration of servers (via endpoint resource)
- Support for Xml and Json
- configuration to URL for Registry Services (for validation)
Technically the utility is:
- built on the Microsoft .NET (dotnet) platform
- uses the HL7 FHIR reference assemblies
- Core (NuGet packages starting with
Hl7.Fhir.STU3
) - contains the FhirClient and parsers - Specification (NuGet packages starting with
Hl7.Fhir.Specification.STU3
) - contains the FHIR Validator - FhirPath (NuGet package
Hl7.FhirPath
) - the FhirPath evaluator, used by the Core and Specification assemblies - Support (NuGet package
Hl7.Fhir.Support
) - a library with interfaces, abstractions and utility methods that are used by the other packages
- Core (NuGet packages starting with
The member registration is defined using the Endpoint resource, and currently only looks at
- Name
- Address
- PayLoadMimeType
To register a server with the Federator, just put/post an Endpoint resource to the server,
along with administer-federation
on the query URI
e.g. To register a new demo federation member:
POST http://fhirfederator.azurewebsites.net/Endpoint/demo?administer-federation
(and include in the body the endpoint resource details)
The search will return a Provenance resource for each resource returned from the search, and an OperationOutcome giving a summary of each members contribution to the results (or error details)
Issues can be raised in the GitHub repository at https://github.com/brianpos/fhirpathtester/issues. You are welcome to register your bugs and feature suggestions there. For questions and broader discussions, use the .NET FHIR Implementers chat on Zulip.
I would gladly welcome any contributors!
If you want to participate in this project, I'm using Git Flow for branch management, so please submit your commits using pull requests no on the develop branches mentioned above!
- NVIE
- Or see: Git workflow
HL7®, FHIR® and the FHIR Mark® are trademarks owned by Health Level Seven International, registered with the United States Patent and Trademark Office.