clinik.patients
create
const { data, meta } = await clinik.patients.create(request: PatientCreateRequest): Promise<ApiResponse<Patient>>
| Field | Type | Required | Description |
|---|---|---|---|
firstName | string | Yes | Patient’s first name |
lastName | string | Yes | Patient’s last name |
email | string | No | Email address |
phone | string | No | Phone number |
gender | 'male' | 'female' | 'other' | 'unknown' | No | Administrative gender |
birthDate | string | No | Date of birth (YYYY-MM-DD) |
address | object | No | Address with line, city, state, postalCode, country |
maritalStatus | string | No | Marital status (married, single, divorced, widowed) |
photo | object | No | Photo with url, data (base64), contentType |
contact | Array | No | Emergency contacts (relationship, name, phone, email) |
languages | Array<{ language, preferred? }> | No | Languages the patient speaks |
generalPractitionerId | string | No | Reference to the patient’s GP (Practitioner ID) |
read
const { data, meta } = await clinik.patients.read(id: string, options?: ReadOptions): Promise<ApiResponse<PatientReadResponse>>
include option fetches related resources in a single call:
const { data } = await clinik.patients.read('pt_abc123', {
include: ['Encounter', 'Observation', 'MedicationRequest'],
});
data.patient; // Patient
data.encounters; // Encounter[]
data.observations; // Observation[]
data.prescriptions; // MedicationRequest[]
update
const { data, meta } = await clinik.patients.update(id: string, request: PatientUpdateRequest): Promise<ApiResponse<Patient>>
delete
const { data, meta } = await clinik.patients.delete(id: string): Promise<ApiResponse<void>>
search
const { data, meta } = await clinik.patients.search(params?: PatientSearchParams): Promise<ApiResponse<PaginatedResponse<Patient>>>
| Parameter | Type | Description |
|---|---|---|
name | string | Search by name (partial match) |
email | string | Exact email match |
phone | string | Exact phone match |
birthDate | string | Date of birth |
gender | string | Gender filter |
active | boolean | Active status |
count | number | Results per page (max: 100) |
cursor | string | Pagination cursor |