Compulink
Access
Section titled “Access”- No developer portal: access is arranged through Compulink support. There is a public endpoint directory and no sandbox.
- SMART Backend Services with a JWT (RS384), no client secret.
- Multi-tenant: a shared token endpoint, with a per-organisation dataset id in the base URL path and a per-organisation client id.
Extraction approach
Section titled “Extraction approach”- Build the cohort from
Encounter/$export?date=ge<start>&date=lt<end>. Despite the name this is synchronous: a searchset paged withpage=Nand nolink.next. The date filter leaks rows from the following year, so checkperiod.startyourself. - Run a per-patient cascade for clinical data. It is slow —
DocumentReferencealone took about 34 seconds per patient — so whole-population runs take days. Make runs resumable.
Known behaviour
Section titled “Known behaviour”- 404 with
{"error":"[no-data]"}means an empty result, not a missing endpoint. ConditionandObservationrequire acategoryparameter.Procedure.performedDateTimeis an empty string.MedicationRequestreturns a non-JSON response.- References have no
type; inject it.