Hi everyone,
We are new to FHIR in general.
We are building a core EMR on top of FHIR.
Being in a region where no terminology server is available to use,
we are thinking of deploying our terminology server based on HAPI FHIR.
We understand that deploying and running a terminology server is not easy. However, HAPI FHIR has solid support for rolling out a terminology server for moderate use.
Our initial main usage for this terminology server will be the $expand operation to provide auto-complete functionalities in UI.
We plan to deploy many of the value sets defined at
https://hl7.org/fhir/R4/terminologies-valuesets.html, which contain FHIR-defined value sets, SNOMEDCT, LOINC codes, etc.
I was playing with hapifhir docker instance and could $expand many of the FHIR internal value sets. For eg,
http://localhost:8888/fhir/ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/administrative-gender. However, for some, for eg,
http://localhost:8888/fhir/ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/account-type, it responds error message
`HAPI-0831: Expansion of ValueSet produced too many codes (maximum 1,000) - Operation aborted! - ValueSet with URL \"ValueSet.url[http://hl7.org/fhir/ValueSet/account-type]\" was expanded using an in-memory expansion` even with `&count=20`.
Now to the implementation side, I understand.
- Create a project with one from below,
- hapi-fhir-jpaserver-starter - contains many unrelated dependencies, may need to remove some
- hapi-fhir-spring-boot-starter - will need to add jpaserver and validation dependencies, not tested yet.
- Upload terminologies,
- FHIR built-in value sets are already available without any upload.
- Need to upload external SNOMEDCT, LOINC codes, etc.
- Once uploaded successfully, we should be able to call the $expand operation possibly with `filter` and `count` for larger value sets.
4. We will display them in the UI possibly with auto-complete.
There are a few questions that I would like to ask.
- Are the above steps enough to run a HAPI FHIR-based terminology server?
- Is any customization needed for validation support modules or ValidationSupportChain, described at https://hapifhir.io/hapi-fhir/docs/validation/validation_support_modules.html?
- Do we need external elastic search or the embedded indexing library will be enough to support, let's say <20 $expand operation per second? We will be testing this anyway but if you have any similar experiences.
- How to solve the aforementioned issue when expanding http://localhost:8888/fhir/ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/account-type results in error? Because neither filter nor count solves the issue.
- Any kind of suggestions, pieces of information, etc would be appreciated.
Regards,
Mohan