Skip to content

Compulink

  • 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.
  1. Build the cohort from Encounter/$export?date=ge<start>&date=lt<end>. Despite the name this is synchronous: a searchset paged with page=N and no link.next. The date filter leaks rows from the following year, so check period.start yourself.
  2. Run a per-patient cascade for clinical data. It is slow — DocumentReference alone took about 34 seconds per patient — so whole-population runs take days. Make runs resumable.
  • 404 with {"error":"[no-data]"} means an empty result, not a missing endpoint.
  • Condition and Observation require a category parameter.
  • Procedure.performedDateTime is an empty string.
  • MedicationRequest returns a non-JSON response.
  • References have no type; inject it.