splose MCP by usefulapi

Read splose patients, appointments, invoices, cases; book and cancel appointments, record payments.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
97%
Integridad del esquema
91%
Calidad de los nombres
79%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (2)

  • LOWTool 'splose_list_cancellation_reasons' name length outside 3-30 rangeen splose_list_cancellation_reasons
  • LOWTool 'splose_get_practitioner_availability' name length outside 3-30 rangeen splose_get_practitioner_availability

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~9,773Tokens (definiciones de herramientas)
~2.5 KBTamaño de respuesta típico
Impacto significativo en la atención (7.64% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "splose": {
      "url": "https://splose.usefulapi.io/mcp"
    }
  }
}

Puntos de conexión remotos

https://splose.usefulapi.io/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (36)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢splose_get_account

The organisation and the practitioner who owns the API key, plus the key's expiry date. Good first call. GET /me.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_patients(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Patients (clients) of the practice, filtered, in id order, as short rows: id, name, email, birthdate, phones, tags, alert, archived. Use splose_get_patient for the full record. HEALTH DATA: only look people up when the user asks. GET /patients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "ids": {
      "description": "Only these patient ids (max 100).",
      "minItems": 1,
      "maxItems": 100,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "firstname": {
      "description": "Patient first name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "lastname": {
      "description": "Patient last name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "description": "Patient email.",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "birthdate": {
      "description": "Patient birth date, yyyy-mm-dd.",
      "type": "string"
    },
    "phoneNumber": {
      "description": "Phone number without the country code.",
      "type": "string",
      "minLength": 3,
      "maxLength": 32
    },
    "patientTag": {
      "description": "A patient tag, e.g. Self-managed.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_patient(patient_id)

One patient in full: contact details, address, NDIS number and plan info, Medicare/health fund, emergency contact, tags and custom fields. HEALTH DATA. GET /patients/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Patient id."
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_appointments(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Appointments in id order: start/end (UTC), service, location, practitioner, price, note and the per-patient status (Arrived, Did not arrive, Cancelled, Completed, cancellation reason, invoice id). Filter by time window, patient, practitioner or status. GET /appointments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "start_gt": {
      "description": "Only appointments starting after this date or date-time.",
      "type": "string"
    },
    "start_lt": {
      "description": "Only appointments starting before this date or date-time.",
      "type": "string"
    },
    "patientId": {
      "description": "Only appointments of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "practitionerId": {
      "description": "Only appointments of this practitioner.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status": {
      "description": "Patient status of the appointment.",
      "type": "string",
      "enum": [
        "Arrived",
        "Did not arrive",
        "Cancelled",
        "Completed"
      ]
    },
    "status_update_gt": {
      "description": "Only appointments whose status changed after this date or date-time.",
      "type": "string"
    },
    "status_update_lt": {
      "description": "Only appointments whose status changed before this date or date-time.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_appointment(appointment_id)

One appointment in full, with each patient's status, case, invoice and cancellation details. GET /appointments/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "appointment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Appointment id."
    }
  },
  "required": [
    "appointment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_practitioners(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Practitioners (staff): name, email, profession, role, active flag, online-booking flag, timezone and their location/service connections. GET /practitioners.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "firstname": {
      "description": "Practitioner first name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "lastname": {
      "description": "Practitioner last name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "description": "Practitioner email.",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "isActive": {
      "description": "true = only active practitioners, false = only inactive.",
      "type": "boolean"
    },
    "roleName": {
      "description": "A predefined or custom role name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_practitioner(practitioner_id)

One practitioner in full, including provider numbers and connections. GET /practitioners/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "practitioner_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Practitioner id."
    }
  },
  "required": [
    "practitioner_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_locations(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Practice locations: title, address, phone, email, timezone, online-booking flag and the ids of the services offered there. GET /locations.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "title": {
      "description": "Location title.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_location(location_id)

One location in full. GET /locations/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "location_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Location id."
    }
  },
  "required": [
    "location_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_services(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

The service catalogue: name, type, code, duration (minutes), unit (Hour or Each), price, tax type, group size and tags. GET /services.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "name": {
      "description": "Service name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 200
    },
    "type": {
      "description": "Service type.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "code": {
      "description": "Service code.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "serviceTag": {
      "description": "A service tag.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_service(service_id)

One service in full, including provider-travel pricing. GET /services/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "service_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Service id."
    }
  },
  "required": [
    "service_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_contacts(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Contacts (GPs, plan managers, referrers, invoice recipients): name, type, email, address, phones and the ids of their patients, invoices and cases. GET /contacts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "firstname": {
      "description": "Contact first name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "lastname": {
      "description": "Contact last name.",
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "email": {
      "description": "Contact email.",
      "type": "string",
      "minLength": 3,
      "maxLength": 320
    },
    "phoneNumber": {
      "description": "Phone number without the country code.",
      "type": "string",
      "minLength": 3,
      "maxLength": 32
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_contact(contact_id)

One contact in full. GET /contacts/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "contact_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Contact id."
    }
  },
  "required": [
    "contact_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_cases(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Cases (funding referrals and plans): case number, budget, hours or appointment allowance, issue and expiry dates, tracking type, open flag and utilisation alert. HEALTH/FUNDING DATA. GET /cases.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "patientId": {
      "description": "Only cases of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "practitionerId": {
      "description": "Only cases of this practitioner.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "contactId": {
      "description": "Only cases referred by / billed to this contact.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "trackType": {
      "description": "How the case is tracked.",
      "type": "string",
      "enum": [
        "Appointments",
        "Hours",
        "Budget"
      ]
    },
    "status": {
      "description": "Case status.",
      "type": "string",
      "enum": [
        "Open",
        "Closed",
        "Expired"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_case(case_id)

One case in full, with its appointment connections. GET /cases/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "case_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Case id."
    }
  },
  "required": [
    "case_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_invoices(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Invoices: number, issue/due dates, patient, contact, location, practitioner, subtotal, tax, total, paid amount, status (Draft, Awaiting Payment, Paid), line items and payment ids. Use status=Awaiting Payment for what is owed. GET /invoices.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "patientId": {
      "description": "Only invoices of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "locationId": {
      "description": "Only invoices created at this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "practitionerId": {
      "description": "Only invoices created by this practitioner.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "status": {
      "description": "Invoice status.",
      "type": "string",
      "enum": [
        "Draft",
        "Awaiting Payment",
        "Paid"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_invoice(invoice_id)

One invoice in full with its line items and payments. GET /invoices/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoice_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Invoice id."
    }
  },
  "required": [
    "invoice_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_payments(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Payments received: payment number, amount, date, patient, location, payment method, the invoices each payment settles and credit allocations. GET /payments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "patientId": {
      "description": "Only payments of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "locationId": {
      "description": "Only payments created at this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_payment(payment_id)

One payment in full. GET /payments/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "payment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Payment id."
    }
  },
  "required": [
    "payment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_payment_methods(id_gt, id_lt, update_gt, update_lt, include_archived)

Payment methods (cash, card, bank transfer and so on) with their ids, needed to record a payment. GET /payment-methods.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_credit_notes(id_gt, id_lt, update_gt, update_lt, patientId, ...)

Credit notes: number, invoice, patient, subtotal, tax, total, sent status, items and allocations. GET /credit-notes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "patientId": {
      "description": "Only credit notes of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "invoiceId": {
      "description": "Only credit notes of this invoice.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "practitionerId": {
      "description": "Only credit notes created by this practitioner.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "sentStatus": {
      "description": "Sent status.",
      "type": "string",
      "enum": [
        "Sent",
        "Viewed"
      ]
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_waitlist(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Waitlist entries: patient, practitioner, location, wanted services, preferred days and time, tags and active flag. GET /waitlists.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "practitionerId": {
      "description": "Only items for this practitioner.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "userGroupId": {
      "description": "Only items for this practitioner group.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "locationId": {
      "description": "Only items for this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "patientId": {
      "description": "Only items of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "dateAddedGt": {
      "description": "Only items added after this date.",
      "type": "string"
    },
    "dateAddedLt": {
      "description": "Only items added before this date.",
      "type": "string"
    },
    "isActive": {
      "description": "true = still waiting, false = closed.",
      "type": "boolean"
    },
    "serviceIds": {
      "description": "Only items waiting for these services.",
      "minItems": 1,
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_patient_forms(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Forms sent to patients: title, status (Incomplete, In progress, Completed), patient, appointment, template and submission time. The form content is included. GET /patient-forms.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "patientId": {
      "description": "Only forms of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "templateId": {
      "description": "Only forms from this template.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_support_activities(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Non-appointment billable activities (NDIS support activities): patient, practitioner, service, item code, quantity, price, invoice id. GET /support-activities.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "start_gt": {
      "description": "Only activities starting after this date or date-time.",
      "type": "string"
    },
    "start_lt": {
      "description": "Only activities starting before this date or date-time.",
      "type": "string"
    },
    "patientId": {
      "description": "Only activities of this patient.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_busy_times(id_gt, id_lt, update_gt, update_lt, include_archived, ...)

Blocked-out time in practitioner calendars (leave, admin time): start/end, location, practitioners, type and note. GET /busy-times.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    },
    "start_gt": {
      "description": "Only busy times starting after this date or date-time.",
      "type": "string"
    },
    "start_lt": {
      "description": "Only busy times starting before this date or date-time.",
      "type": "string"
    },
    "busyTimeTypeId": {
      "description": "Only busy times of this type.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "practitionerId": {
      "description": "Only busy times of this practitioner.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_cancellation_reasons(id_gt, id_lt, update_gt, update_lt, include_archived)

Cancellation reasons with their ids, needed to cancel an appointment. GET /cancellation-reasons.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "id_gt": {
      "description": "Only objects with an id greater than this: the next page (pass the previous reply's next_id_gt).",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "id_lt": {
      "description": "Only objects with an id less than this: the previous page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "update_gt": {
      "description": "Only objects updated after this date or date-time (UTC).",
      "type": "string"
    },
    "update_lt": {
      "description": "Only objects updated before this date or date-time (UTC).",
      "type": "string"
    },
    "include_archived": {
      "description": "true to include archived objects (default false).",
      "type": "boolean"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_list_custom_fields

The custom fields defined for patients: id, name, type (short text, dropdown, date and so on), required flag and options. GET /custom-field/.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_get_practitioner_availability(practitioner_id, startDate, endDate, locationId)

A practitioner's working-hours availability per date and location (start/end time, weekly or fortnightly repeat). The window is at most 100 days. This is the roster, not the open slots: use splose_find_free_slots for bookable times. GET /availabilities/{practitionerId}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "practitioner_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Practitioner id."
    },
    "startDate": {
      "type": "string",
      "description": "First date of the window."
    },
    "endDate": {
      "type": "string",
      "description": "Last date of the window, at most 100 days after startDate."
    },
    "locationId": {
      "description": "Only this location.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "practitioner_id",
    "startDate",
    "endDate"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢splose_find_free_slots(serviceId, locationId, practitionerIds, from, to, ...)

Bookable free slots for one or more practitioners at a location for one patient service, between from and to (the window is at most 7 days). Returns, per practitioner, the start/end of each open slot in UTC. Read-only. GET /free-slots.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "serviceId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Service id (splose_list_services)."
    },
    "locationId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Location id (splose_list_locations)."
    },
    "practitionerIds": {
      "minItems": 1,
      "maxItems": 20,
      "type": "array",
      "items": {
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      },
      "description": "One or more practitioner ids."
    },
    "from": {
      "type": "string",
      "description": "Start of the search window (UTC)."
    },
    "to": {
      "description": "End of the search window, up to 7 days after from.",
      "type": "string"
    },
    "interval": {
      "description": "Slot step in minutes (default 15).",
      "type": "integer",
      "minimum": 5,
      "maximum": 240
    }
  },
  "required": [
    "serviceId",
    "locationId",
    "practitionerIds",
    "from"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴splose_create_appointment(start, end, serviceId, locationId, practitionerId, ...)

WRITE: books ONE appointment for one patient with one practitioner, service and location, from start to end (UTC). Splose may send the patient its normal booking confirmation or reminders according to the practice's settings, and the appointment can later be invoiced. Check splose_find_free_slots first. Not idempotent: calling twice books twice. POST /appointments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "start": {
      "type": "string",
      "description": "Appointment start (UTC)."
    },
    "end": {
      "type": "string",
      "description": "Appointment end (UTC), after start."
    },
    "serviceId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Service id."
    },
    "locationId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Location id."
    },
    "practitionerId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Practitioner id."
    },
    "patientId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Patient id."
    },
    "caseId": {
      "description": "Case (funding plan) id to attach.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "note": {
      "description": "Appointment note.",
      "type": "string",
      "maxLength": 5000
    }
  },
  "required": [
    "start",
    "end",
    "serviceId",
    "locationId",
    "practitionerId",
    "patientId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴splose_update_appointment(appointment_id, start, end, serviceId, locationId, ...)

WRITE: changes the time, service, location, practitioner, case or patient of ONE existing appointment; send only the fields to change. Splose may notify the patient of a change according to the practice's settings. Same input twice gives the same result. PUT /appointments/{id}.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "appointment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Appointment id."
    },
    "start": {
      "description": "New start (UTC).",
      "type": "string"
    },
    "end": {
      "description": "New end (UTC).",
      "type": "string"
    },
    "serviceId": {
      "description": "New service id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "locationId": {
      "description": "New location id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "practitionerId": {
      "description": "New practitioner id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "caseId": {
      "description": "New case id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "patientId": {
      "description": "New patient id.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "appointment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴splose_cancel_appointment(appointment_id, reasonId, note, patient_id, confirm)

WRITE: cancels ONE appointment with a cancellation reason (ids from splose_list_cancellation_reasons) and an optional note. The reason's billable rate may create a cancellation charge, and the patient may be notified per the practice's settings. For a group appointment pass patient_id to cancel only that patient's place; without it the whole appointment is cancelled. Cannot be undone through this server: confirm with the user first and pass confirm: true. POST /appointments/{id}/cancellation or /appointments/{id}/patients/{patientId}/cancellation.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "appointment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Appointment id."
    },
    "reasonId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Cancellation reason id."
    },
    "note": {
      "description": "Optional cancellation note.",
      "type": "string",
      "maxLength": 5000
    },
    "patient_id": {
      "description": "Group appointments only: cancel just this patient's participation.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user has confirmed this cancellation (it may charge a fee and notify the patient)."
    }
  },
  "required": [
    "appointment_id",
    "reasonId",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡splose_mark_patient_arrived(appointment_id, patient_id)

WRITE: marks the patient of ONE appointment as arrived (check-in). For a group appointment pass patient_id to mark just that patient. Marking twice has the same effect. POST /appointments/{id}/arrival or /appointments/{id}/patients/{patientId}/arrival.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "appointment_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Appointment id."
    },
    "patient_id": {
      "description": "Group appointments only: the patient who arrived.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "appointment_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡splose_create_patient(firstname, lastname, middleName, preferredName, title, ...)

WRITE: adds ONE new patient record (first and last name required). Search with splose_list_patients first to avoid a duplicate. Patient messaging follows the practice's settings and communicationPreference. Not idempotent: calling twice creates two patients. HEALTH DATA: only enter what the user supplied. POST /patients.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "firstname": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "First name."
    },
    "lastname": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Last name."
    },
    "middleName": {
      "type": "string",
      "maxLength": 100
    },
    "preferredName": {
      "type": "string",
      "maxLength": 100
    },
    "title": {
      "description": "e.g. Mr., Ms., Dr.",
      "type": "string",
      "maxLength": 30
    },
    "email": {
      "type": "string",
      "maxLength": 320,
      "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,}$"
    },
    "sex": {
      "type": "string",
      "maxLength": 50
    },
    "genderIdentity": {
      "type": "string",
      "maxLength": 100
    },
    "pronouns": {
      "type": "string",
      "maxLength": 50
    },
    "birthdate": {
      "description": "Birth date, yyyy-mm-dd.",
      "type": "string"
    },
    "timezone": {
      "description": "IANA timezone, e.g. Australia/Adelaide.",
      "type": "string",
      "maxLength": 64
    },
    "phoneNumbers": {
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Mobile",
              "Home",
              "Work",
              "Fax",
              "Other"
            ]
          },
          "code": {
            "description": "Country code, e.g. +61.",
            "type": "string",
            "maxLength": 8
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 3,
            "maxLength": 32,
            "description": "Number without the country code."
          }
        },
        "required": [
          "phoneNumber"
        ],
        "additionalProperties": false
      }
    },
    "addressL1": {
      "type": "string",
      "maxLength": 200
    },
    "addressL2": {
      "type": "string",
      "maxLength": 200
    },
    "city": {
      "type": "string",
      "maxLength": 100
    },
    "state": {
      "type": "string",
      "maxLength": 50
    },
    "postalCode": {
      "type": "string",
      "maxLength": 20
    },
    "country": {
      "type": "string",
      "maxLength": 100
    },
    "ndisNumber": {
      "description": "NDIS participant number.",
      "type": "string",
      "maxLength": 20
    },
    "medicareNum": {
      "type": "string",
      "maxLength": 20
    },
    "irn": {
      "description": "Medicare reference number.",
      "type": "string",
      "maxLength": 5
    },
    "emergencyContactName": {
      "type": "string",
      "maxLength": 200
    },
    "emergencyContactNumber": {
      "type": "string",
      "maxLength": 32
    },
    "emergencyContactRelationship": {
      "type": "string",
      "maxLength": 100
    },
    "alert": {
      "description": "Alert message shown on the patient record.",
      "type": "string",
      "maxLength": 5000
    },
    "extraInfo": {
      "type": "string",
      "maxLength": 5000
    },
    "invoiceRecipientId": {
      "description": "Contact id that receives the invoices.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "communicationPreference": {
      "description": "Defaults to the organisation's preference.",
      "type": "string",
      "enum": [
        "NONE",
        "SMS",
        "SMS_EMAIL",
        "EMAIL"
      ]
    }
  },
  "required": [
    "firstname",
    "lastname"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡splose_create_contact(type, name, email, title, firstName, ...)

WRITE: adds ONE contact (GP, plan manager, referrer, payer). type, name and email are required (type is Splose's contact type, e.g. Standard; see splose_list_contacts for the values in use). Not idempotent: calling twice creates two contacts. POST /contacts.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "minLength": 1,
      "maxLength": 50,
      "description": "Contact type, e.g. Standard (copy the value from an existing contact)."
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Display name, e.g. a plan manager's business name."
    },
    "email": {
      "type": "string",
      "maxLength": 320,
      "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,}$"
    },
    "title": {
      "type": "string",
      "maxLength": 30
    },
    "firstName": {
      "type": "string",
      "maxLength": 100
    },
    "lastName": {
      "type": "string",
      "maxLength": 100
    },
    "preferredName": {
      "type": "string",
      "maxLength": 100
    },
    "occupation": {
      "type": "string",
      "maxLength": 100
    },
    "companyName": {
      "type": "string",
      "maxLength": 200
    },
    "providerNumber": {
      "type": "string",
      "maxLength": 50
    },
    "doctorType": {
      "type": "string",
      "enum": [
        "GP",
        "Specialist"
      ]
    },
    "addressL1": {
      "type": "string",
      "maxLength": 200
    },
    "addressL2": {
      "type": "string",
      "maxLength": 200
    },
    "suburb": {
      "type": "string",
      "maxLength": 100
    },
    "state": {
      "type": "string",
      "maxLength": 50
    },
    "postalCode": {
      "type": "string",
      "maxLength": 20
    },
    "country": {
      "type": "string",
      "maxLength": 100
    },
    "phoneNumbers": {
      "maxItems": 5,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "Mobile",
              "Home",
              "Work",
              "Fax",
              "Other"
            ]
          },
          "code": {
            "description": "Country code, e.g. +61.",
            "type": "string",
            "maxLength": 8
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 3,
            "maxLength": 32,
            "description": "Number without the country code."
          }
        },
        "required": [
          "phoneNumber"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "type",
    "name",
    "email"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴splose_record_payment(invoiceId, patientId, locationId, paymentMethodId, amount, ...)

WRITE, MONEY: records ONE payment received (cash, card, transfer) against ONE invoice; it moves the invoice towards Paid and is shown in the patient's account. It does NOT charge anyone's card. amount must not exceed what is owed (check splose_get_invoice). Not idempotent: calling twice records two payments, and this server cannot delete a payment, so confirm the details with the user first and pass confirm: true. Ids come from splose_get_invoice and splose_list_payment_methods. POST /payments.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "invoiceId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Invoice id the payment settles."
    },
    "patientId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Patient id of the invoice."
    },
    "locationId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Location id."
    },
    "paymentMethodId": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991,
      "description": "Payment method id (splose_list_payment_methods)."
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 1000000,
      "description": "Amount paid, in dollars."
    },
    "paymentDate": {
      "type": "string",
      "description": "Date the money was received."
    },
    "confirm": {
      "type": "boolean",
      "const": true,
      "description": "Must be true: the user has confirmed the invoice, amount and payment method."
    }
  },
  "required": [
    "invoiceId",
    "patientId",
    "locationId",
    "paymentMethodId",
    "amount",
    "paymentDate",
    "confirm"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada36 herramientas