← All runs

Round 0

2026-03-25

Apple M3, 8-core · 24 GB · macOS Tahoe 26.3 · Docker Desktop 4.64.0 (8 CPU / 20 GB)

Capability Matrix
Whether each server passed, failed, or skipped each capability check during preflight.
FS01 FHIR Search (CodeSystem, ValueSet) Tests standard FHIR search across both ValueSet and CodeSystem resource types. Inputs are drawn from a pool of search parameter combinations including url, version, and _count. LK01 SNOMED CT lookup Looks up SNOMED CT codes drawn from a pool of 2,000+ codes spanning clinical findings, procedures, organisms, and more. This test serves as the normalising baseline for the composite score. LK02 LOINC lookup Lookup on LOINC observation and laboratory codes. Pool covers 2,000+ codes. LK03 Mixed FHIR package codes Looks up codes from a diverse set of smaller terminologies bundled in FHIR R4 core and extension packages — DICOM, ActCode, MaritalStatus, v2 tables, NCI, and others. LK04 RxNorm lookup Lookup on RxNorm drug codes. Pool covers 2,000+ ingredient and product codes. LK05 SNOMED negative lookup Inputs are fabricated SNOMED-like codes that do not exist. Verifies that the server correctly handles the not-found case and returns an appropriate OperationOutcome. VC01 SNOMED implicit ValueSet, code only Validates SNOMED codes against the implicit "all SNOMED codes" ValueSet. VC02 SNOMED implicit ValueSet, code + display Like VC01, but also validates the display string against the code's preferred term. VC03 SNOMED is-a membership Validates a code against a hierarchy-constrained implicit ValueSet. Pool entries cover a range of root concepts from large hierarchies to small ones, mixing positive and negative cases. EX01 SNOMED hierarchy expand with count and offset Expands a SNOMED is-a hierarchy slice with pagination. Pool covers 100 SNOMED hierarchies across three tiers — large, mid, and small — with count/offset combinations sized to each tier. EX02 SNOMED hierarchy filters Expands an ad-hoc ValueSet constructed inline using SNOMED hierarchy filter operators (descendent-of, generalizes). EX03 SNOMED text filter Searches within SNOMED using a text filter. Pool mixes high-frequency terms (many matches), selective terms (few matches), and prefix fragments. EX04 VSAC extensional ValueSets Expands extensional ValueSets from the VSAC (Value Set Authority Center). Pool covers 10 curated clinical value sets with counts of 10, 100, and 1,000, plus filtered variants. EX05 SNOMED intensional filters Expands intensional SNOMED ValueSets using complex filter combinations — is-a hierarchy, single property equals, AND combinations, and OR multi-include. EX06 RxNorm intensional filters Intensional expansions using RxNorm-specific attributes — term type (TTY), relationship properties (tradename_of, has_ingredient), and combinations. EX07 Multi-system text filter Expands an ad-hoc ValueSet combining SNOMED CT, LOINC, and RxNorm with a free-text filter. Small counts test server short-circuiting; larger counts force multi-system result merging. EX08 SNOMED combined filters The most complex expansion test. Each request combines three filter types simultaneously — is-a hierarchy, a SNOMED property equals filter, and a free-text display filter. SS01 SNOMED hierarchy subsumption Tests hierarchy introspection via the $subsumes operation. Pool covers all four FHIR subsumption outcomes — subsumes, subsumed-by, equivalent, and not-subsumed — across concepts at different hierarchy depths. CM01 SNOMED implicit REPLACED BY map Translates retired SNOMED codes to their replacement codes using SNOMED's implicit REPLACED BY ConceptMap. CM02 FHIR package ConceptMaps Translates codes using ConceptMaps bundled in FHIR R4 core and IPS packages — FHIR-to-v2/v3 crosswalks, status maps, LOINC↔SNOMED mappings, and more.
termbox ~~
fhirsmith
ontoserver
pascal
hermes ~~~~~~~~~~~~~~
snowstorm ~~~~~~~~
p95 Latency 50 VUs
95th-percentile response time at 50 virtual users.
FS01 FHIR Search (CodeSystem, ValueSet) Tests standard FHIR search across both ValueSet and CodeSystem resource types. Inputs are drawn from a pool of search parameter combinations including url, version, and _count. LK01 SNOMED CT lookup Looks up SNOMED CT codes drawn from a pool of 2,000+ codes spanning clinical findings, procedures, organisms, and more. This test serves as the normalising baseline for the composite score. LK02 LOINC lookup Lookup on LOINC observation and laboratory codes. Pool covers 2,000+ codes. LK03 Mixed FHIR package codes Looks up codes from a diverse set of smaller terminologies bundled in FHIR R4 core and extension packages — DICOM, ActCode, MaritalStatus, v2 tables, NCI, and others. LK04 RxNorm lookup Lookup on RxNorm drug codes. Pool covers 2,000+ ingredient and product codes. LK05 SNOMED negative lookup Inputs are fabricated SNOMED-like codes that do not exist. Verifies that the server correctly handles the not-found case and returns an appropriate OperationOutcome. VC01 SNOMED implicit ValueSet, code only Validates SNOMED codes against the implicit "all SNOMED codes" ValueSet. VC02 SNOMED implicit ValueSet, code + display Like VC01, but also validates the display string against the code's preferred term. VC03 SNOMED is-a membership Validates a code against a hierarchy-constrained implicit ValueSet. Pool entries cover a range of root concepts from large hierarchies to small ones, mixing positive and negative cases. EX01 SNOMED hierarchy expand with count and offset Expands a SNOMED is-a hierarchy slice with pagination. Pool covers 100 SNOMED hierarchies across three tiers — large, mid, and small — with count/offset combinations sized to each tier. EX02 SNOMED hierarchy filters Expands an ad-hoc ValueSet constructed inline using SNOMED hierarchy filter operators (descendent-of, generalizes). EX03 SNOMED text filter Searches within SNOMED using a text filter. Pool mixes high-frequency terms (many matches), selective terms (few matches), and prefix fragments. EX04 VSAC extensional ValueSets Expands extensional ValueSets from the VSAC (Value Set Authority Center). Pool covers 10 curated clinical value sets with counts of 10, 100, and 1,000, plus filtered variants. EX05 SNOMED intensional filters Expands intensional SNOMED ValueSets using complex filter combinations — is-a hierarchy, single property equals, AND combinations, and OR multi-include. EX06 RxNorm intensional filters Intensional expansions using RxNorm-specific attributes — term type (TTY), relationship properties (tradename_of, has_ingredient), and combinations. EX07 Multi-system text filter Expands an ad-hoc ValueSet combining SNOMED CT, LOINC, and RxNorm with a free-text filter. Small counts test server short-circuiting; larger counts force multi-system result merging. EX08 SNOMED combined filters The most complex expansion test. Each request combines three filter types simultaneously — is-a hierarchy, a SNOMED property equals filter, and a free-text display filter. SS01 SNOMED hierarchy subsumption Tests hierarchy introspection via the $subsumes operation. Pool covers all four FHIR subsumption outcomes — subsumes, subsumed-by, equivalent, and not-subsumed — across concepts at different hierarchy depths. CM01 SNOMED implicit REPLACED BY map Translates retired SNOMED codes to their replacement codes using SNOMED's implicit REPLACED BY ConceptMap. CM02 FHIR package ConceptMaps Translates codes using ConceptMaps bundled in FHIR R4 core and IPS packages — FHIR-to-v2/v3 crosswalks, status maps, LOINC↔SNOMED mappings, and more.
termbox 25ms11ms11ms8.2ms8.0ms9.4ms11ms11ms12ms327ms90ms290ms366ms69ms68ms111ms51ms9.4ms
fhirsmith 361ms17ms50ms11ms32ms12ms14ms16ms55ms424ms193ms44.96s1.58s11ms
ontoserver 51.43s298ms118ms73ms116ms274ms300ms292ms290ms825ms377ms9.88s29.14s1.49s789ms4.49s13.84s1.52s1.94s109ms
pascal 170ms1.06s77ms73ms73ms87ms84ms31.93s30.55s14.56s44ms
hermes 62ms55.01s
snowstorm 4.76s378ms730ms785ms703ms6.35s5.38s4.18s
Memory
Idle memory usage (light blue, front) overlaid on peak memory during benchmarks (dark blue, back) per server.
Disk
Idle data directory size per server.
Logs