Manages telemedicine (remote consultation) sessions for a client and patient: scheduling a session, listing and retrieving them, and moving a session through its lifecycle (start, complete, cancel, mark no-show). Called by the PIMS (Practice Information Management System, the clinic-facing web app); every route requires organisation RBAC (role-based access control) permissions.
Endpoints
GET /pms/organisation/:organisationId/telemedicine
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId - Query:
clientId,patientId,status(SCHEDULED|IN_PROGRESS|COMPLETED|NO_SHOW|CANCELLED),platform(VIDEO_CALL|PHONE_CALL|CHAT|EMAIL) - Controller:
TelemedicineSessionController.list - Response:
400: keyserror
POST /pms/organisation/:organisationId/telemedicine
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId - Body:
ScheduleSchema - Body fields:
clientId,patientId,appointmentId,platform,conductedBy,chiefComplaint,externalSessionId - Controller:
TelemedicineSessionController.schedule - Response:
400: keyserror,201: JSON (the scheduled session)
GET /pms/organisation/:organisationId/telemedicine/:sessionId
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId,sessionId - Controller:
TelemedicineSessionController.get
POST /pms/organisation/:organisationId/telemedicine/:sessionId/start
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId,sessionId - Controller:
TelemedicineSessionController.start
POST /pms/organisation/:organisationId/telemedicine/:sessionId/complete
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId,sessionId - Body:
CompleteSchema - Body fields:
clinicianNotes,followUpRequired,recordingUrl - Controller:
TelemedicineSessionController.complete - Response:
400: keyserror
POST /pms/organisation/:organisationId/telemedicine/:sessionId/cancel
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId,sessionId - Controller:
TelemedicineSessionController.cancel
POST /pms/organisation/:organisationId/telemedicine/:sessionId/no-show
- Auth:
requireWebAuth - RBAC:
withOrgPermissions, requirePermission - Params:
organisationId,sessionId - Controller:
TelemedicineSessionController.markNoShow