
Nikolai Ryzhikov is CTO at Health Samurai, the company responsible for the Aidbox FHIR server. I asked him specific questions about Aidbox and I asked him his thoughts on FHIR in general.
1. Aidbox has users all over the world, and you’ve been in business a long time by FHIR standards. Have you noticed particular countries or types of organizations using FHIR more than others?
The US is definitely the leading country for FHIR adoption. Aidbox is a FHIR platform, and from our customers we see two exciting trends: “rewrite” the existing system (EHR, EMR, PHR) on FHIR and build a new system in a FHIR-first way!
2. Not all FHIR servers implement all features. How does Aidbox handle these three features of FHIR: Subscriptions, composite search parameters and Patient $everything
We have 2 implementations of subscriptions:
- The first one is close to FHIR Subscriptions v1
- We do support Topic-Based Subscriptions
- We also provide Changes API, which can be a robust alternative to subscription for non-realtime scenarios
Composite Parameters: We have experimental support, which is waiting for champion users. We discovered many bugs in the FHIR spec.
Patient $everything just works.
3. Support for FHIR operations varies by server provider. Talk a little about the operations that Aidbox handles and doesn’t handle. For example, ValueSet $expand and the elusive Patient $match operation. And do users have the ability to add operations not supported?
We do support “runtime” ValueSet expand, which means that pre-expanded ValueSets are loaded into Aidbox, and we do simulate $expand. More info.
Aidbox has an advanced MPI module based on machine learning, but it requires pre-training.
We do support “sql to rest” and custom operations, which proxy requests to external users.
4. Performance can be an issue for FHIR servers. Some servers do not fully support certain features because of the performance hit they would entail — examples are _include and _revInclude result truncation. How does Aidbox handle this and do you see a trade off between speed and the features on offer?
That’s true. To be honest, _include is not a performance challenge—it’s pretty trivial to make it efficient. There are a lot of problems with chained params (which are SQL joins) and performant combinations of searches and sortings (classic performance killers).
In Aidbox we use the classic approach to database – all searches work out of the box, but you have to make indexes or sometimes rewrite queries to make it efficient. This requires a good monitoring stack to identify slow requests – but can make Aidbox 100x faster than “classic” implementations like HAPI.
5. If you were advising a business looking for a FHIR server provider, what three things would you tell them to ask a potential provider about?
- What to do if more than FHIR Search is needed?
- What if I want to do aggregates and joins in my application?
- How to store and work with non-FHIR data (Custom Resources)?
6. Looking at competing FHIR servers, what do you feel Aidbox does better than the competition?
- FHIR-native database on PostgreSQL
- SQL on FHIR Support
- Granular Access Control
- Custom Resources
7. In a hospital and medical setting, downtime can be a huge problem. How do cloud providers like Aidbox recommend handling connectivity issues when a hospital’s Internet or network connections go down? Is that left to the implementer to deal with?
Aidbox is not only cloud-based—it could also be deployed locally or on-premise. To be honest, the offline problem is overrated.
8. All the big cloud providers sell easy access, managed FHIR servers, as does Aidbox. Yet many hospitals will not allow their patient data to be stored in the cloud. With this in mind, have you noticed particular types of organizations that use cloud FHIR servers like Aidbox, or particular countries that are more accepting of cloud based FHIR servers?
Aidbox can be deployed on-premise and in our cloud or public cloud. We do have customers with Aidbox on bare-metal servers.
9. As a FHIR server provider, what were the most difficult parts of FHIR for your team to implement?
- FHIR Profiling & Implementation Guides
- FHIR Search
10. If you were redesigning FHIR today, which features would you leave out or force a re-think on?
- I would rethink FHIR Profiling, and we do it with FHIR Schema
- I would make FHIR backward/forward compatible
- Make FHIR Search that are more flexible and useful
---