Integration with external terminology servers
Overview
Form Builder supports external terminology servers for choice and open-choice questionnaire items. This allows form authors to fetch answer options from a remote terminology server by enabling Use external terminology server in item properties.
By default, Form Builder includes three built-in terminology servers, but you can now configure additional terminology servers in SDCConfig and define a default server for Form Builder. Configured servers are added to the built-in list and become available in the Terminology Server dropdown when external terminology servers are used. In addition to that, a server can be marked as default: in this case, URL will be prefilled in the External terminology server field.
Use Case Example
This feature is useful when:
- your organization uses its own terminology server
- you want form authors to reuse the same approved server across forms
- you want to limit available servers to the ones relevant for your environment
- you want a preferred terminology server to be selected by default
This functionality applies to Choice and Open Choice items.
How to Configure in Form Builder
In Form Builder:
- Create a
choiceoropen-choiceitem - Go to
Item properties→Options - Choose
ValueSet - Enable
Use external terminology server
Two fields will become available:
Terminology Server— the terminology server URLValueSet— the ValueSet URL used to populate the dropdown options
The list shown in Terminology Server contains:
- 3 built-in terminology servers
- additional servers configured in
SDCConfig
Prerequisites
To configure custom terminology servers, add them to the builder.external-terminology-servers section in SDCConfig.
Each server entry supports:
url— terminology server base URLname— display name in the dropdowndefault— whether the server should be treated as default
Step-by-Step Configuration
Add custom terminology servers
Example:
builder:
external-terminology-servers:
- url: https://tx.fhirlab.net/fhir
name: FHIRLab Term Server
default: true
- url: https://tx.hl7europe.eu/r4/
name: HL7 Europe Terminology Server
default: false
Configuration behavior
- The three built-in servers are always shown by default.
- Servers configured in
builder.external-terminology-serversare appended to the built-in list. - Servers marked with
default: trueare sorted first in the dropdown. - If a default server is present in the list, its URL is prefilled in the
External terminology serverfield.
Adding a custom terminology server
External terminology servers support ValueSet search and ValueSet/$expand terminology operations in Aidbox Forms.
Aidbox Forms also allows you to connect your own custom FHIR server and use it as a terminology server.
To configure a terminology service, add its endpoint to SDCConfig:
term-service:
endpoint: "https://fhir-server.com/fhir"
Example Configuration
"external-terminology-servers": [
{
"url": "https://tx.fhirlab.net/fhir",
"name": "FHIRLab Term Server",
"default": true
},
{
"url": "https://tx.hl7europe.eu/r4/",
"name": "HL7 Europe Terminology Server",
"default": false
},
{
"url": "https://termx.kodality.dev/api/fhir",
"name": "TermX (Kodality)",
"default": false
},
{
"url": "https://snowstorm.termx.org/fhir",
"name": "Snowstorm (TermX)",
"default": false
},
{
"url": "https://echidna.fhir.org/r5/",
"name": "Echidna (OHDSI / OMOP vocabularies)",
"default": false
},
{
"url": "https://tx.fhir.ch/r4/",
"name": "tx.fhir.ch (R4)",
"default": false
}
]