What Is a Patient?
A patient in VetCarePress represents a pet or animal under veterinary care. Each patient record holds the animal’s identity, physical characteristics, and medical context, and is linked to an owner (customer) who is responsible for that animal.
Patients are stored as a custom post type within WordPress.
Key Fields
Every patient record includes the following fields:
- Name — the pet’s name (required)
- Species — e.g., Dog, Cat, Horse
- Sex — Male, Female, or Unknown
- Birthdate — used to calculate and display the patient’s age
- Color/Markings — descriptive text for physical identification
- Microchip ID — the animal’s microchip number, if applicable
- Photo — an uploaded image displayed on the patient profile
- Owner (Customer) — the pet owner linked to this patient
- Deceased — a status flag with an optional date of death
- Notes — free-text field for additional information
Relationship to Customers
Patients and customers have a many-to-one relationship: multiple patients can belong to a single customer, but each patient is linked to one owner. This reflects the real-world scenario where a pet owner may bring several animals to the same clinic.
Species
Species are managed in WP-Admin or inline when adding a patient through the Staff Dashboard. Each species can have a custom color for visual identification on patient profiles.
Post Title Generation
Patient post titles are auto-generated in the format Patient Name — Date. You do not need to manually enter a title when creating a patient record.
Management Interfaces
Patients can be managed through two interfaces:
- WP-Admin — the standard WordPress admin with fields for all patient data.
- Staff Dashboard — a frontend interface with modal forms for creating and editing patients without entering the WordPress back end.
See also: Creating Patients, Patient Profiles, Weight & Temperature Tracking
Creating Patients
Creating Patients
VetCarePress provides two methods for creating patient records: the WP-Admin post editor and the Staff Dashboard frontend interface.
Via WP-Admin
- Navigate to VetCarePress > Patients > Add New in the WordPress admin menu.
- The Patient Details Metabox will appear with the following fields:
- Owner — a searchable dropdown to link the patient to an existing customer
- Species — select from the
vcp_speciestaxonomy - Sex — choose Male, Female, or Unknown
- Birthdate — date picker for the animal’s date of birth
- Color/Markings — free-text field for physical description
- Microchip ID — the animal’s microchip number
- Deceased — checkbox that reveals a date field when enabled
- Notes — additional information about the patient
- The post title is auto-generated from the patient name and date. You do not need to enter it manually.
- Gutenberg is disabled for the
vcp_patientpost type. All fields are managed through the classic metabox UI. - Save the record as a draft or publish it immediately.
Via Staff Dashboard
- Click the "Add Patient" button in the Staff Dashboard header.
- A modal form opens with the following fields:
- Name (required) — the pet’s name
- Species (required) — a Select2 dropdown with search and inline creation support
- Owner — AJAX-powered search that finds existing customers, with an inline customer creation form
- Sex — Male, Female, or Unknown
- Birthdate — split into year and optional month/day fields
- Color/Markings — physical description
- Microchip ID — microchip number
- Deceased — status toggle with date
- Notes — additional information
Inline Species Creation
When typing a species name that does not exist, a "Add New" option appears. Selecting it creates the taxonomy term immediately and assigns it to the patient.
Inline Owner Creation
If the desired owner is not found via search, a nested customer creation form can be opened directly within the patient modal. After creating the customer, they are automatically selected as the owner.
API Reference
Patient creation through the Staff Dashboard uses the REST API endpoint:
POST /wp-json/vcp/v1/patients
For full details on managing patients through the Staff Dashboard, see Staff Dashboard: Managing Patients.
See also: Patients Overview, Patient Profiles, Managing Customers
Patient Profiles
Patient Profiles
Patient profiles are the primary frontend view for accessing a patient’s information, medical history, and measurements. They are designed for both pet owners and clinic staff.
URL Structure
Patient profiles are accessible via virtual URLs:
/{patient-slug}/{id}/— the main profile page (defaults to the Overview tab)/{patient-slug}/{id}/{tab}/— a specific tab on the profile
The patient slug is configurable in the plugin settings.
Layout Options
Three layout variants are available, configured via Settings > General > vcp_patient_layout:
- Tabs — horizontal tab navigation above the content area
- Sidebar — patient details in a left sidebar with content on the right
- Card — compact card-based layout
Patient Header and Sidebar
The patient header (or sidebar, depending on layout) displays:
- Photo or avatar — uploaded image or a generated placeholder
- Name — the patient’s name
- Species badge — color-coded badge showing the species
- Sex — Male, Female, or Unknown
- Age or deceased status — calculated from birthdate, or deceased date if applicable
- Color/Markings — physical description
- Microchip ID — if recorded
- Owner name — linked to the customer record
Staff Admin Banner
Users with the vcp_manage_patients capability see an administrative banner above the profile content. This banner provides quick-action buttons:
- Add Temperature — opens the temperature recording form
- Add Weight — opens the weight recording form
- Add Medical Record — opens the medical record creation form
Profile Tabs
Tabs are displayed conditionally based on enabled record types and available data:
- Overview — a summary of recent records and a patient details card
- Clinical Notes — clinical examination notes and visit summaries
- Diagnoses — diagnosis records with status tracking
- Imaging — medical images and DICOM files
- Laboratory — structured lab results with marker tables
- Treatments — treatment and procedure records
- Vaccinations — vaccination history and schedules
- Weight History — displayed only if weight measurements exist
- Temperature History — displayed only if temperature measurements exist
- Messages — displayed only if messaging is enabled in settings
Record Display
Each record tab shows a paginated list of records. Every record entry includes:
- Type badge — color-coded by record type
- Subtype label — the specific category within the record type
- Date and time — when the record was created
- Author — the staff member who created the record (if author display is enabled)
- View button — links to the detailed single record view
- Share button — generates a share link (if sharing is enabled)
Pagination
The number of records per page is configurable via the vcp_pagination_medical_records setting.
Template Files
Patient profile rendering uses the following template files:
patient-view.php— main routing templatepatient-view--tabs.php— tabs layout variantpatient-view--sidebar.php— sidebar layout variantpatient-view--card.php— card layout variantpartials/patient-tab-*.php— individual tab content templates
All templates can be overridden in your theme. See Template Overrides for details.
See also: Patients Overview, Creating Patients, Weight & Temperature Tracking
Weight & Temperature
Weight and Temperature Tracking
VetCarePress provides built-in tools for recording and visualizing patient weight and temperature measurements over time. These measurements appear on the patient profile and can be managed from both WP-Admin and the Staff Dashboard.
Recording Measurements
Measurements can be recorded through two interfaces:
- WP-Admin — the Measurements Metabox on the patient edit screen allows adding weight and temperature entries directly.
- Staff Dashboard — the patient profile view includes quick-action buttons ("Add Weight" and "Add Temperature") in the staff admin banner.
Each measurement is stored with a timestamp for historical tracking.
Weight Tracking
- Weight entries are displayed on the Weight History tab of the patient profile.
- A Chart.js line graph visualizes weight over time, making it easy to identify trends.
- Below the graph, a data table lists all entries with date, value, and unit.
- Pagination is configurable via the
vcp_pagination_weight_historysetting.
Weight Graph Metabox
In WP-Admin, the WeightGraphMetabox on the patient edit screen renders a Chart.js graph showing the patient’s weight history. This provides a quick visual reference while editing a patient record.
Temperature Tracking
- Temperature entries are displayed on the Temperature History tab of the patient profile.
- A data table lists all entries with date, value, and unit.
Units
Measurement units are configured in Settings > General:
- Weight — kilograms (kg) or pounds (lbs)
- Temperature — Celsius (C) or Fahrenheit (F)
Staff Dashboard Features
When managing measurements through the Staff Dashboard:
- Inline edit — click the Edit button on any measurement row. The row becomes editable with Save and Cancel controls.
- Inline delete — click the Delete button on a measurement row. A confirmation prompt appears before the entry is removed.
API Endpoints
The following REST API endpoints are available for measurement management:
GET /wp-json/vcp/v1/patients/{id}/measurements— retrieve measurements for a patientPOST /wp-json/vcp/v1/patients/{id}/measurements— add a new measurementPUT /wp-json/vcp/v1/measurements/{meta_id}— update an existing measurementDELETE /wp-json/vcp/v1/measurements/{meta_id}— delete a measurement
See also: Patients Overview, Patient Profiles, Staff Dashboard: Measurements