Read Halaxy patients, appointments, slots and invoices; create patients, appointments and notes.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Writes to the live Halaxy account. Books an appointment for a patient with a practitioner at a clinic (the practitioner role). Halaxy also creates the invoice, clinical note and reminder. Use halaxy_find_available_appointments for free times. By default a double booking is refused (HTTP 409, nothing created). POST /main/Appointment/$book.
End with the time zone offset, e.g. 2027-06-15T16:00:00+10:00.
Start with the time zone offset, e.g. 2027-06-15T15:00:00+10:00.
The patient id.
The PractitionerRole id (practitioner at a clinic), e.g. PR-1234567.
Initial status (default booked).
The appointment type id (halaxy_list_healthcare_services).
Refuse if the practitioner already has an appointment then (default true).
The fee id (halaxy_list_fees) booked for the appointment.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Writes to the live Halaxy account. Books an appointment for a patient with a practitioner at a clinic (the practitioner role). Halaxy also creates the invoice, clinical note and reminder. Use halaxy_find_available_appointments for free times. By default a double booking is refused (HTTP 409, nothing created). POST /main/Appointment/$book.
| Argument | Type | Description |
|---|---|---|
| end* | string | End with the time zone offset, e.g. 2027-06-15T16:00:00+10:00. |
| start* | string | Start with the time zone offset, e.g. 2027-06-15T15:00:00+10:00. |
| status | string | Initial status (default booked). |
| patient_id* | string | The patient id. |
| practitioner_role_id* | string | The PractitionerRole id (practitioner at a clinic), e.g. PR-1234567. |
| healthcare_service_id | string | The appointment type id (halaxy_list_healthcare_services). |
| fail_on_double_booking | boolean | Refuse if the practitioner already has an appointment then (default true). |
| charge_item_definition_id | string | The fee id (halaxy_list_fees) booked for the appointment. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"patient_id",
"practitioner_role_id",
"start",
"end"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?$",
"description": "End with the time zone offset, e.g. 2027-06-15T16:00:00+10:00."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?$",
"description": "Start with the time zone offset, e.g. 2027-06-15T15:00:00+10:00."
},
"status": {
"enum": [
"booked",
"pending",
"confirmed"
],
"type": "string",
"description": "Initial status (default booked)."
},
"patient_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The patient id."
},
"practitioner_role_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The PractitionerRole id (practitioner at a clinic), e.g. PR-1234567."
},
"healthcare_service_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The appointment type id (halaxy_list_healthcare_services)."
},
"fail_on_double_booking": {
"type": "boolean",
"description": "Refuse if the practitioner already has an appointment then (default true)."
},
"charge_item_definition_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The fee id (halaxy_list_fees) booked for the appointment."
}
}
}Writes to the live Halaxy account. Adds a clinical note to a patient's record as a DRAFT (preliminary); the practitioner reviews and publishes it in Halaxy. The author is a PractitionerRole (practitioner at a clinic). Only HTML text is supported. POST /main/DocumentReference.
| Argument | Type | Description |
|---|---|---|
| html* | string | The note body as HTML. |
| title* | string | The note title. |
| patient_id* | string | The patient the note is for. |
| practitioner_role_id* | string | The PractitionerRole id of the author, e.g. PR-1234567. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"patient_id",
"practitioner_role_id",
"title",
"html"
],
"properties": {
"html": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "The note body as HTML."
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The note title."
},
"patient_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The patient the note is for."
},
"practitioner_role_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The PractitionerRole id of the author, e.g. PR-1234567."
}
}
}Writes to the live Halaxy account. Creates a new patient record (always a new one: search with halaxy_list_patients first to avoid a duplicate). Pass managing_organization (the practice group id, e.g. PG-12345, from halaxy_list_organizations) if Halaxy asks for it. POST /main/Patient.
| Argument | Type | Description |
|---|---|---|
| string | Email address. | |
| given* | string | Legal given name. |
| family* | string | Legal family name (surname). |
| gender | string | Gender as registered in government records. |
| mobile | string | Mobile number as +{country code}{number}, no spaces. |
| address | object | Mailing address. |
| birth_date | string | Date of birth, YYYY-MM-DD. |
| preferred_name | string | Preferred (usual) given name. |
| managing_organization | string | The practice group id, e.g. PG-12345. |
Find free appointment times between start and end for a given duration, respecting each practitioner's online booking preferences (buffer time, lead time, advance booking limit). Narrow it with practitioner, practitioner_role or organization. GET /main/Appointment/$find.
| Argument | Type | Description |
|---|---|---|
| end* | string | End of the search window, e.g. 2027-01-12T23:59:59. |
| show | string | first-available = only the first available time. |
| sort | string | start or -start. |
| start* | string | Start of the search window, e.g. 2027-01-12T00:00:00. |
| duration* | integer | Appointment length in minutes. |
| emergency | boolean | true ignores lead time, to show all times for emergency appointments. |
| organization | string | Organization (clinic) id. |
| practitioner | string | Practitioner id. |
Fetch an appointment with its participants and statuses (HEALTH DATA) by id. GET /main/Appointment/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Appointment id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Appointment id (from the matching list tool)."
}
}
}Fetch a patient's coverage (claim details) record by id. GET /main/Coverage/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Coverage id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Coverage id (from the matching list tool)."
}
}
}Fetch a fee (ChargeItemDefinition) by id. GET /main/ChargeItemDefinition/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The ChargeItemDefinition id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The ChargeItemDefinition id (from the matching list tool)."
}
}
}Fetch an appointment type by id. GET /main/HealthcareService/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The HealthcareService id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The HealthcareService id (from the matching list tool)."
}
}
}Fetch an invoice by id. GET /main/Invoice/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Invoice id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Invoice id (from the matching list tool)."
}
}
}Fetch an invoice line by id. GET /main/InvoiceLine/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The InvoiceLine id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The InvoiceLine id (from the matching list tool)."
}
}
}Fetch a practice group, clinic, funder or external practice by id. GET /main/Organization/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Organization id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Organization id (from the matching list tool)."
}
}
}Fetch a patient record (HEALTH DATA) by id. GET /main/Patient/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Patient id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Patient id (from the matching list tool)."
}
}
}Fetch a payment transaction by id. GET /main/PaymentTransaction/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The PaymentTransaction id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The PaymentTransaction id (from the matching list tool)."
}
}
}Fetch a practitioner or administrator by id. GET /main/Practitioner/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Practitioner id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Practitioner id (from the matching list tool)."
}
}
}Fetch a practitioner role at a clinic location by id. GET /main/PractitionerRole/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The PractitionerRole id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The PractitionerRole id (from the matching list tool)."
}
}
}Fetch a referral (HEALTH DATA) by id. GET /main/Referral/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Referral id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Referral id (from the matching list tool)."
}
}
}Fetch a referral template by id. GET /main/ReferralDefinition/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The ReferralDefinition id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The ReferralDefinition id (from the matching list tool)."
}
}
}Fetch a practitioner schedule by id. GET /main/Schedule/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Schedule id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Schedule id (from the matching list tool)."
}
}
}Fetch a time slot by id. GET /main/Slot/{id}.
| Argument | Type | Description |
|---|---|---|
| id* | string | The Slot id (from the matching list tool). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The Slot id (from the matching list tool)."
}
}
}List or search appointments (HEALTH DATA: names the patient). Filters combine with AND. Paged: pass next_page as page. GET /main/Appointment.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| date | string | Appointment date/time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| sort | string | Sort order: date, -date ("-" = descending). |
| count | integer | Results per page, 1-100 (default 30). |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| include | array | Also return related resources in "included": any of Appointment:patient, Appointment:practitioner-role. |
| patient | string | Patient id. |
| part_status | string |
List or search patients' health fund membership and claim details (HEALTH DATA). Filters combine with AND. Paged: pass next_page as page. GET /main/Coverage.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| sort | string | Sort order: _lastUpdated, created, -_lastUpdated, -created ("-" = descending). |
| count | integer | Results per page, 1-100 (default 30). |
| payor | string | The funder. |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| include | array | Also return related resources in "included": any of Coverage:beneficiary, Coverage:subscriber, Coverage:payor. |
| subscriber | string | The subscriber to the policy. |
| beneficiary | string |
List or search fees (ChargeItemDefinition): the services and products a practice charges for. Filters combine with AND. Paged: pass next_page as page. GET /main/ChargeItemDefinition.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| code | string | Fee item number. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| title | string | Fee name. |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| publisher | string | Funder name. |
| context_type | string | Fee type: 0 = appointment, 1 = item, 2 = pro-rata. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
List or search appointment types used by the practice group, clinics and practitioners. Filters combine with AND. Paged: pass next_page as page. GET /main/HealthcareService.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| name | string | Appointment type name. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| active | boolean | Only active (true) or inactive appointment types. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Appointment type name."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"active": {
"type": "boolean",
"description": "Only active (true) or inactive appointment types."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}List or search invoice lines: single fees on invoices. Filters combine with AND. Paged: pass next_page as page. GET /main/InvoiceLine.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| amount | string | The line amount, optionally with a prefix such as gt100. |
| funder | string | The funder. |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| include | array | Also return related resources in "included": any of InvoiceLine:subject, InvoiceLine:performer, InvoiceLine:invoice. |
| invoice | string | The invoice the line belongs to. |
| subject | string | The patient the line is for. |
List or search invoices of the practice group. Filters combine with AND. Paged: pass next_page as page. GET /main/Invoice.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| status | string | Invoice status. |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| include | array | Also return related resources in "included": any of Invoice:recipient, Invoice:practitioner. |
| recipient | string | The invoice recipient (a Patient or Organization id). |
| total_paid | string | Total paid amount, optionally with a prefix such as gt0. |
| last_updated | string |
List or search the practice group, its clinic locations, funders and external practices (practice group ids look like PG-12345). Filters combine with AND. Paged: pass next_page as page. GET /main/Organization.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| name | string | Organization name. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| profile | string | Only one kind of organization. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Organization name."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"profile": {
"enum": [
"StructureDefinition/hx-organization-practice-group",
"StructureDefinition/hx-organization-clinic",
"StructureDefinition/hx-organization-funder",
"StructureDefinition/hx-organization-organisation",
"StructureDefinition/hx-organization-external-clinic"
],
"type": "string",
"description": "Only one kind of organization."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}List or search patient records (demographics and contact details; HEALTH DATA). Filters combine with AND. Paged: pass next_page as page. GET /main/Patient.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| name | string | Search the family, given or preferred name (matches the start of the name). |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| sort | string | Sort order: _lastUpdated, name, created, -_lastUpdated, -name, -created ("-" = descending). |
| count | integer | Results per page, 1-100 (default 30). |
| string | An email address. | |
| given | string | Start of the given name. |
| phone | string | A phone number, local or E.164 (+61412345678). |
| family | string | Start of the family name. |
List or search payment transactions recorded on invoices. Filters combine with AND. Paged: pass next_page as page. GET /main/PaymentTransaction.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}List or search practitioner roles: a practitioner's association with one clinic location (the id used when booking and for clinical notes). Filters combine with AND. Paged: pass next_page as page. GET /main/PractitionerRole.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| include | array | Also return related resources in "included": any of PractitionerRole:practitioner, PractitionerRole:organization. |
| profile | string | Staff roles or external professional-contact roles. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| organization | string | Organization (clinic) id. |
| practitioner | string | Practitioner id, e.g. PR-123. |
List or search practitioners and administrators of the practice group (ids look like PR-12345). Filters combine with AND. Paged: pass next_page as page. GET /main/Practitioner.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| name | string | Family, given or preferred name. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| sort | string | Sort order: name, -name ("-" = descending). |
| count | integer | Results per page, 1-100 (default 30). |
| string | An email address. | |
| given | string | Given name. |
| active | boolean | Only active (true) or inactive (false) practitioners. |
| family | string | Family name. |
| profile |
List or search referral templates with preset properties. Filters combine with AND. Paged: pass next_page as page. GET /main/ReferralDefinition.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| funding_organization | string | The funder. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"funding_organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The funder."
}
}
}List or search referrals from one healthcare provider to another (HEALTH DATA). Filters combine with AND. Paged: pass next_page as page. GET /main/Referral.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| sort | string | Sort order: _lastUpdated, created, -_lastUpdated, -created ("-" = descending). |
| count | integer | Results per page, 1-100 (default 30). |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| include | array | Also return related resources in "included": any of Referral:subject, Referral:coverage. |
| subject | string | The patient the referral is for. |
| coverage | string | The coverage (claim details) of the referral. |
| last_updated |
List or search schedules: containers of bookable time slots per practitioner. Filters combine with AND. Paged: pass next_page as page. GET /main/Schedule.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| actor | string | The practitioner/role the schedule belongs to. |
| count | integer | Results per page, 1-100 (default 30). |
| active | boolean | Only active (true) or inactive schedules. |
| include | array | Also return related resources in "included": any of Schedule:actor. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"actor": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The practitioner/role the schedule belongs to."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"active": {
"type": "boolean",
"description": "Only active (true) or inactive schedules."
},
"include": {
"type": "array",
"items": {
"enum": [
"Schedule:actor"
],
"type": "string"
},
"maxItems": 1,
"description": "Also return related resources in \"included\": any of Schedule:actor."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}List or search time slots of practitioner schedules (free or busy). Filters combine with AND. Paged: pass next_page as page. GET /main/Slot.
| Argument | Type | Description |
|---|---|---|
| id | string | One id or several separated by commas, for example 1,2,3. |
| end | string | Slot end (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| count | integer | Results per page, 1-100 (default 30). |
| start | string | Slot start (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| status | string | free or busy. |
| include | array | Also return related resources in "included": any of Slot:practitioner, Slot:organization, Slot:practitioner-role. |
| duration | string | Slot duration in minutes. |
| schedule | string | Schedule id. |
Writes to the live Halaxy account. Sets the patient's status on an appointment (shown in the Halaxy calendar), for example arrived, attended, confirmed or cancelled. "cancelled (no charge)" also sets the invoice to $0. For a group appointment pass patient_id to say whose status changes. PATCH /main/Appointment/{id}.
| Argument | Type | Description |
|---|---|---|
| status* | string | The new status. |
| patient_id | string | The patient whose status changes (needed only when the appointment has several patients). |
| appointment_id* | string | The appointment id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"appointment_id",
"status"
],
"properties": {
"status": {
"enum": [
"booked",
"pending",
"confirmed",
"arrived",
"attended",
"did not attend",
"check response",
"declined",
"rejected",
"rescheduled",
"waiting list",
"cancelled",
"cancelled (no charge)"
],
"type": "string",
"description": "The new status."
},
"patient_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The patient whose status changes (needed only when the appointment has several patients)."
},
"appointment_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The appointment id."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"family",
"given"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 254,
"description": "Email address."
},
"given": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Legal given name."
},
"family": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Legal family name (surname)."
},
"gender": {
"enum": [
"male",
"female",
"other"
],
"type": "string",
"description": "Gender as registered in government records."
},
"mobile": {
"type": "string",
"pattern": "^\\+\\d{6,15}$",
"description": "Mobile number as +{country code}{number}, no spaces."
},
"address": {
"type": "object",
"required": [
"line",
"country"
],
"properties": {
"city": {
"type": "string",
"maxLength": 100
},
"line": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "House/street line."
},
"state": {
"type": "string",
"maxLength": 50
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "ISO 3166 two-letter country code."
},
"postal_code": {
"type": "string",
"maxLength": 20
}
},
"description": "Mailing address."
},
"birth_date": {
"type": "string",
"description": "Date of birth, YYYY-MM-DD."
},
"preferred_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Preferred (usual) given name."
},
"managing_organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}$",
"description": "The practice group id, e.g. PG-12345."
}
}
}| apply_buffer_time |
| boolean |
| true applies buffer time to show all available times. |
| practitioner_role | string | PractitionerRole id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"start",
"end",
"duration"
],
"properties": {
"end": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?$",
"description": "End of the search window, e.g. 2027-01-12T23:59:59."
},
"show": {
"enum": [
"first-available"
],
"type": "string",
"description": "first-available = only the first available time."
},
"sort": {
"enum": [
"start",
"-start"
],
"type": "string",
"description": "start or -start."
},
"start": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?$",
"description": "Start of the search window, e.g. 2027-01-12T00:00:00."
},
"duration": {
"type": "integer",
"maximum": 1440,
"minimum": 1,
"description": "Appointment length in minutes."
},
"emergency": {
"type": "boolean",
"description": "true ignores lead time, to show all times for emergency appointments."
},
"organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Organization (clinic) id."
},
"practitioner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Practitioner id."
},
"apply_buffer_time": {
"type": "boolean",
"description": "true applies buffer time to show all available times."
},
"practitioner_role": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "PractitionerRole id."
}
}
}| The patient's participation status, e.g. booked, arrived, cancelled. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| organization | string | The clinic (Organization) id including its prefix. |
| practitioner | string | Practitioner id, e.g. PR-123. |
| include_iterate | array | Also return resources related to an included one (needs the matching include): any of PractitionerRole:practitioner, PractitionerRole:organization. |
| practitioner_role | string | PractitionerRole id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"date": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Appointment date/time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"sort": {
"enum": [
"date",
"-date"
],
"type": "string",
"description": "Sort order: date, -date (\"-\" = descending)."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"include": {
"type": "array",
"items": {
"enum": [
"Appointment:patient",
"Appointment:practitioner-role"
],
"type": "string"
},
"maxItems": 2,
"description": "Also return related resources in \"included\": any of Appointment:patient, Appointment:practitioner-role."
},
"patient": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Patient id."
},
"part_status": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The patient's participation status, e.g. booked, arrived, cancelled."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The clinic (Organization) id including its prefix."
},
"practitioner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Practitioner id, e.g. PR-123."
},
"include_iterate": {
"type": "array",
"items": {
"enum": [
"PractitionerRole:practitioner",
"PractitionerRole:organization"
],
"type": "string"
},
"maxItems": 2,
"description": "Also return resources related to an included one (needs the matching include): any of PractitionerRole:practitioner, PractitionerRole:organization."
},
"practitioner_role": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "PractitionerRole id."
}
}
}| The primary beneficiary (a Patient id). |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| subscriber_id | string | Subscriber (membership) number. |
| coverage_organization | string | The coverage organization. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"sort": {
"enum": [
"_lastUpdated",
"created",
"-_lastUpdated",
"-created"
],
"type": "string",
"description": "Sort order: _lastUpdated, created, -_lastUpdated, -created (\"-\" = descending)."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"payor": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The funder."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"include": {
"type": "array",
"items": {
"enum": [
"Coverage:beneficiary",
"Coverage:subscriber",
"Coverage:payor"
],
"type": "string"
},
"maxItems": 3,
"description": "Also return related resources in \"included\": any of Coverage:beneficiary, Coverage:subscriber, Coverage:payor."
},
"subscriber": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The subscriber to the policy."
},
"beneficiary": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The primary beneficiary (a Patient id)."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"subscriber_id": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Subscriber (membership) number."
},
"coverage_organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The coverage organization."
}
}
}| property_group_status | string | Fee pricing status: 1 = current, 2 = archived. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"code": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Fee item number."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"title": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Fee name."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"publisher": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Funder name."
},
"context_type": {
"enum": [
"0",
"1",
"2"
],
"type": "string",
"description": "Fee type: 0 = appointment, 1 = item, 2 = pro-rata."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"property_group_status": {
"enum": [
"1",
"2"
],
"type": "string",
"description": "Fee pricing status: 1 = current, 2 = archived."
}
}
}| coverage | string | The coverage (claim details). |
| referral | string | The referral. |
| performer | string | The performer of the service. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"amount": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The line amount, optionally with a prefix such as gt100."
},
"funder": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The funder."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"include": {
"type": "array",
"items": {
"enum": [
"InvoiceLine:subject",
"InvoiceLine:performer",
"InvoiceLine:invoice"
],
"type": "string"
},
"maxItems": 3,
"description": "Also return related resources in \"included\": any of InvoiceLine:subject, InvoiceLine:performer, InvoiceLine:invoice."
},
"invoice": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The invoice the line belongs to."
},
"subject": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The patient the line is for."
},
"coverage": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The coverage (claim details)."
},
"referral": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The referral."
},
"performer": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The performer of the service."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}| Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| organization | string | The clinic the invoice was created at. |
| practitioner | string | Practitioner id. |
| total_balance | string | Balance owing, optionally with a prefix such as gt0 (finds unpaid invoices). |
| include_iterate | array | Also return resources related to an included one (needs the matching include): any of PractitionerRole:practitioner, PractitionerRole:organization. |
| practitioner_role | string | PractitionerRole id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"status": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Invoice status."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"include": {
"type": "array",
"items": {
"enum": [
"Invoice:recipient",
"Invoice:practitioner"
],
"type": "string"
},
"maxItems": 2,
"description": "Also return related resources in \"included\": any of Invoice:recipient, Invoice:practitioner."
},
"recipient": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The invoice recipient (a Patient or Organization id)."
},
"total_paid": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Total paid amount, optionally with a prefix such as gt0."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The clinic the invoice was created at."
},
"practitioner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Practitioner id."
},
"total_balance": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Balance owing, optionally with a prefix such as gt0 (finds unpaid invoices)."
},
"include_iterate": {
"type": "array",
"items": {
"enum": [
"PractitionerRole:practitioner",
"PractitionerRole:organization"
],
"type": "string"
},
"maxItems": 2,
"description": "Also return resources related to an included one (needs the matching include): any of PractitionerRole:practitioner, PractitionerRole:organization."
},
"practitioner_role": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "PractitionerRole id."
}
}
}| status | string | Patient status, e.g. active. |
| created | string | Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| include | array | Also return related resources in "included": any of Patient:general-practitioner. |
| birthdate | string | Date of birth (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| general_practitioner | string | A Practitioner/PractitionerRole the patient has records with. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Search the family, given or preferred name (matches the start of the name)."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"sort": {
"enum": [
"_lastUpdated",
"name",
"created",
"-_lastUpdated",
"-name",
"-created"
],
"type": "string",
"description": "Sort order: _lastUpdated, name, created, -_lastUpdated, -name, -created (\"-\" = descending)."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"email": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "An email address."
},
"given": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Start of the given name."
},
"phone": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "A phone number, local or E.164 (+61412345678)."
},
"family": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Start of the family name."
},
"status": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Patient status, e.g. active."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"include": {
"type": "array",
"items": {
"enum": [
"Patient:general-practitioner"
],
"type": "string"
},
"maxItems": 1,
"description": "Also return related resources in \"included\": any of Patient:general-practitioner."
},
"birthdate": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Date of birth (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"general_practitioner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "A Practitioner/PractitionerRole the patient has records with."
}
}
}| provider_number | string | Provider number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"include": {
"type": "array",
"items": {
"enum": [
"PractitionerRole:practitioner",
"PractitionerRole:organization"
],
"type": "string"
},
"maxItems": 2,
"description": "Also return related resources in \"included\": any of PractitionerRole:practitioner, PractitionerRole:organization."
},
"profile": {
"enum": [
"StructureDefinition/hx-practitioner-role",
"StructureDefinition/hx-external-practitioner-role"
],
"type": "string",
"description": "Staff roles or external professional-contact roles."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Organization (clinic) id."
},
"practitioner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Practitioner id, e.g. PR-123."
},
"provider_number": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Provider number."
}
}
}| string |
| hx-practitioner = staff, hx-external-practitioner = professional contacts. |
| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"name": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Family, given or preferred name."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"sort": {
"enum": [
"name",
"-name"
],
"type": "string",
"description": "Sort order: name, -name (\"-\" = descending)."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"email": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "An email address."
},
"given": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Given name."
},
"active": {
"type": "boolean",
"description": "Only active (true) or inactive (false) practitioners."
},
"family": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Family name."
},
"profile": {
"enum": [
"StructureDefinition/hx-practitioner",
"StructureDefinition/hx-external-practitioner"
],
"type": "string",
"description": "hx-practitioner = staff, hx-external-practitioner = professional contacts."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}| string |
| Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"sort": {
"enum": [
"_lastUpdated",
"created",
"-_lastUpdated",
"-created"
],
"type": "string",
"description": "Sort order: _lastUpdated, created, -_lastUpdated, -created (\"-\" = descending)."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"created": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Created (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"include": {
"type": "array",
"items": {
"enum": [
"Referral:subject",
"Referral:coverage"
],
"type": "string"
},
"maxItems": 2,
"description": "Also return related resources in \"included\": any of Referral:subject, Referral:coverage."
},
"subject": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The patient the referral is for."
},
"coverage": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "The coverage (claim details) of the referral."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
}
}
}| last_updated | string | Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le). |
| organization | string | Organization (clinic) id. |
| practitioner | string | Practitioner id. |
| practitioner_role | string | PractitionerRole id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{0,63}(,[A-Za-z0-9][A-Za-z0-9_-]{0,63}){0,49}$",
"description": "One id or several separated by commas, for example 1,2,3."
},
"end": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Slot end (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"count": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Results per page, 1-100 (default 30)."
},
"start": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Slot start (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"status": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "free or busy."
},
"include": {
"type": "array",
"items": {
"enum": [
"Slot:practitioner",
"Slot:organization",
"Slot:practitioner-role"
],
"type": "string"
},
"maxItems": 3,
"description": "Also return related resources in \"included\": any of Slot:practitioner, Slot:organization, Slot:practitioner-role."
},
"duration": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Slot duration in minutes."
},
"schedule": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Schedule id."
},
"last_updated": {
"type": "string",
"pattern": "^(eq|ne|gt|lt|ge|le)?\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2}(\\.\\d+)?)?(Z|[+-]\\d{2}:\\d{2})?)?$",
"description": "Only records last updated at this time (ISO date or date-time, optional prefix eq/ne/gt/lt/ge/le)."
},
"organization": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Organization (clinic) id."
},
"practitioner": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "Practitioner id."
},
"practitioner_role": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_/-]{0,127}(,[A-Za-z0-9][A-Za-z0-9_/-]{0,127}){0,19}$",
"description": "PractitionerRole id."
}
}
}