The SMARTerFHIR library is a powerful toolkit for interacting with FHIR (Fast Healthcare Interoperability Resources) servers and implementing SMART on FHIR applications. It's based on tools and digital health standards from SMART Health IT. It provides a set of classes and utilities to facilitate FHIR resource handling, launch contexts, and EMR (Electronic Medical Record) integration.
-
FHIR Client: The library includes a robust FHIR client implementation that supports communication with FHIR servers using the SMART on FHIR protocol.
-
Launch Handling: SMARTerFHIR provides a
SmartLaunchHandler
class that simplifies the process of launching applications with different EMR systems such as Cerner, Epic, or SMART Health IT. It offers methods for handling launch requests and obtaining authorization tokens. -
Resource Transformation: The library includes a
Transformer
namespace that provides functions for transforming FHIR resources between the standard R4 format and the FHIR client format. This enables seamless integration with different FHIR implementations. -
Client Abstraction: The library provides an abstract
BaseClient
class that serves as the foundation for creating EMR-specific client implementations. It includes common functionality such as resource hydration, context creation, and resource creation. -
Cerner and Epic Clients: The library includes concrete client implementations for Cerner and Epic EMR systems. These clients extend the
BaseClient
class and provide specific implementation details for creating and interacting with resources in Cerner and Epic environments. -
Client Factory: The
ClientFactory
class simplifies the creation of EMR clients by automatically determining the EMR type based on the FHIR client configuration. It returns the appropriate client instance based on the detected EMR system.
Using npm's git repo support: npm install [email protected]:TopologyHealth/SMARTerFHIR.git
Support for the npm registry will be coming soon
For detailed documentation on the SMARTerFHIR library, including classes, methods, and usage examples, please refer to the official documentation at https://topology.health/docs.
Contributions to the SMARTerFHIR library are welcome! If you encounter any issues or have suggestions for improvement, please submit a GitHub issue or pull request in the repository at SMARTerFHIR.
Before contributing, please review the guidelines and code of conduct outlined in the repository:
By making a contribution to this project, you are deemed to have accepted the Developer Certificate of Origin (DCO).
All conversations and communities on SMARTerFHIR agree to GitHub's Community Guidelines and Acceptable Use Policies. This code of conduct also applies to all conversations that happen within our contributor community here on GitHub. We expect discussions in issues and pull requests to stay positive, productive, and respectful.
If you found a technical bug on SMARTerFHIR or have ideas for features we should implement, the issue tracker is the best place to share your ideas. Make sure to follow the issue template (click here to open a new issue)
If you find a bug on SMARTerFHIR and open a PR that fixes it, we'll review it as soon as possible to ensure it matches our engineering standards.
If you want to implement a new feature, open an issue first to discuss what it'd look like and to ensure it fits in our roadmap and plans for the app.
The SMARTerFHIR library is released under the Apache 2.0 License. You are free to use, modify, and distribute this library in accordance with the terms of the license.
We would like to express our gratitude to the developers and contributors who have made the SMARTerFHIR library possible. Their hard work and dedication are greatly appreciated.
The SMARTerFHIR library is developed and maintained by Topology Health. For inquiries, please contact [email protected]