API Reference
Consultations

Consultations

The Consultations API provides read-only access to clinical encounter data — the full picture of what happened during a patient visit. Consultations follow the POMR (Problem-Oriented Medical Record) structure, with observations, medications, procedures, and other clinical data scoped to specific problems.

Consultations are read-only via the API. Create and manage consultations through the Jump dashboard.

Endpoints

MethodEndpointDescription
GET/consultationsList consultations
GET/consultations/{id}Full consultation card (all sections)
GET/consultations/{id}?include=coreCore sections only
GET/consultations/{id}/problemsProblems + headings
GET/consultations/{id}/medicationsLinked medications
GET/consultations/{id}/observationsObservations + components
GET/consultations/{id}/proceduresProcedures
GET/consultations/{id}/referralsReferrals
GET/consultations/{id}/lab-ordersLab orders
GET/consultations/{id}/prescriptionsPrescriptions
GET/consultations/{id}/allergiesAllergies + reactions
GET/consultations/{id}/immunisationsImmunisations
GET/consultations/{id}/documentsLinked documents
GET/consultations/{id}/family-historyFamily history panels
GET/consultations/{id}/social-historySocial history panels
GET/consultations/{id}/invoicesInvoices
GET/consultations/{id}/amendmentsAmendment audit trail

The Consultation Object

{
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "consultation_id": "con_abc123",
  "patient_id": "pat_456e7890",
  "clinician_id": "cli_789a0123",
  "location_id": "loc_012b3456",
  "appointment_id": "apt_345c6789",
  "episode_id": null,
  "consultation_date": "2025-01-15",
  "consultation_time": "14:30:00",
  "status": "completed",
  "consultation_type_code": "11429006",
  "consultation_type_display": "Consultation",
  "consultation_medium_code": "11429006",
  "consultation_medium_display": "Face to face",
  "consultation_setting": "General practice",
  "consultation_setting_code": "394761003",
  "template_id": "tmpl_abc",
  "template_version": 1,
  "finalized_at": "2025-01-15T15:00:00Z",
  "finalized_by": "usr_abc",
  "has_amendments": false,
  "notes": null,
  "created_at": "2025-01-15T14:30:00Z",
  "updated_at": "2025-01-15T15:00:00Z"
}

Status Values

StatusDescription
draftIn progress, not yet finalized
in_progressBeing documented
completedFinalized
scheduledFuture consultation
importedImported from external system

List Consultations

GET /consultations

Returns base consultation fields only (no nested sections). Sorted by consultation_date DESC, consultation_time DESC.

Query Parameters

ParameterTypeDescription
limit / offsetintegerPagination (default 20)
patient_idstringFilter by patient
clinician_idstringFilter by clinician
appointment_idstringFilter by appointment
episode_idstringFilter by episode
statusstringFilter by status
status_instringMultiple statuses (comma-separated)
consultation_date_gtestringDate on or after
consultation_date_ltestringDate on or before
has_amendmentsstringFilter amended consultations

Request

curl -X GET "https://app.usejump.co.uk/functions/v1/api-v1/consultations?patient_id=pat_456e7890&status=completed" \
  -H "Authorization: Bearer pk_live_your_api_key"

Retrieve a Consultation (Full Card)

GET /consultations/{id}

Returns the complete clinical encounter with all sections loaded in parallel.

The include Parameter

ValueSections loaded
(omitted)All 14 sections (full card)
coreproblems, observations, medications, prescriptions
problems,medicationsOnly those sections (comma-separated)
template_snapshotAdds the immutable template JSON (large, opt-in)

core is a stable alias — it will always resolve to problems, observations, medications, and prescriptions in API v1.

Request

# Full card (all sections)
curl -X GET "https://app.usejump.co.uk/functions/v1/api-v1/consultations/con_abc123" \
  -H "Authorization: Bearer pk_live_your_api_key"
 
# Core sections only
curl -X GET "https://app.usejump.co.uk/functions/v1/api-v1/consultations/con_abc123?include=core" \
  -H "Authorization: Bearer pk_live_your_api_key"

Response (Full Card)

{
  "data": {
    "id": "con_abc123",
    "consultation_date": "2025-01-15",
    "status": "completed",
    "...base fields...",
 
    "problems": [
      {
        "id": "cp_1",
        "episode_type": "New Episode",
        "patient_problems": {
          "snomed_code": "386661006",
          "snomed_display": "Fever",
          "status": "active"
        },
        "headings": [
          { "heading_type": "History", "content": "3-day history of fever...", "sort_order": 0 },
          { "heading_type": "Examination", "content": "Temp 38.5°C", "sort_order": 1 }
        ],
        "scoped_observations": [
          { "problem_id": "cp_1", "observation": { "code_display": "Body temperature", "value_quantity_value": 38.5 } }
        ],
        "scoped_medications": [
          { "problem_id": "cp_1", "patient_medications": { "display_name": "Paracetamol 500mg" } }
        ]
      }
    ],
    "observations": [
      { "problem_id": "cp_1", "observation": { "code_display": "Body temperature", "value_quantity_value": 38.5, "value_quantity_unit_display": "°C" } }
    ],
    "medications": [
      { "problem_id": "cp_1", "patient_medications": { "display_name": "Paracetamol 500mg", "dosage_amount": 500, "route": "oral" } }
    ],
    "procedures": [],
    "referrals": [],
    "prescriptions": [],
    "allergies": [],
    "immunisations": [],
    "documents": [],
    "lab_orders": [],
    "family_history": [],
    "social_history": [],
    "invoices": [],
    "amendments": []
  },
  "meta": {
    "request_id": "req_abc123",
    "included_sections": ["problems", "medications", "observations", "procedures", "referrals", "lab_orders", "prescriptions", "allergies", "immunisations", "documents", "family_history", "social_history", "invoices", "amendments"]
  }
}

POMR Structure

Every linked item includes a problem_id (nullable) indicating which problem it relates to. The problems array nests scoped_* sub-arrays for convenience:

  • scoped_observations — observations linked to this problem
  • scoped_medications — medications linked to this problem
  • scoped_procedures, scoped_referrals, etc.

These are references to the same records in the flat section arrays. IDs are stable and can be used for deduplication.

Amendments

⚠️

The base consultation represents the original finalized record. Amendments are an overlay — corrections, addenda, or clarifications applied after finalization. Partners must apply amendments to reconstruct the current clinical state.

When has_amendments: true, check the amendments section for the audit trail.

Consistency

Section data is loaded in parallel for performance. In rare cases, a very recent change may appear in one section but not another. For authoritative point-in-time data, use individual section endpoints.


Section Sub-Endpoints

Each section has its own paginated GET endpoint for granular access:

GET /consultations/{id}/problems
GET /consultations/{id}/medications
GET /consultations/{id}/observations
...etc

All support standard pagination (limit, offset).

Request

curl -X GET "https://app.usejump.co.uk/functions/v1/api-v1/consultations/con_abc123/problems?limit=50" \
  -H "Authorization: Bearer pk_live_your_api_key"

Response

{
  "data": [
    {
      "id": "cp_1",
      "episode_type": "New Episode",
      "patient_problems": { "snomed_code": "386661006", "snomed_display": "Fever" },
      "headings": [...]
    }
  ],
  "meta": {
    "limit": 50,
    "next_offset": null,
    "has_more": false,
    "request_id": "req_abc123"
  }
}

Ordering Guarantees

DataOrder
Problemscreated_at ASC (clinical documentation order)
Problem headingssort_order ASC (template-defined)
All other sectionscreated_at ASC
Amendmentscreated_at ASC (chronological audit trail)

These are part of the v1 contract.


Related Resources