About this plugin
Launch the full KennelFlow suite demo on InstaWP — temporary WordPress site with Core, Boarding, Vet, Groom, sample data, and the KennelFlow demo theme; no install on your server.
KennelFlow Vet provides clinical scheduling and record-keeping building blocks that integrate with KennelFlow shared pets and locations. Install KennelFlow Core first, then activate this add-on.
org profile @brelandr. Optional commercial services are available via LandTech Web Designs.
txt for the dist-to-source map). Built files under assets/dist/ are generated via npm run build (esbuild + Vite). js.
com/brelandr/kennelflow-vet — see Developer notes for rebuild steps.
Try It Live – Preview This Plugin Instantly
Full KennelFlow suite (InstaWP)
Launch KennelFlow on InstaWP — explore clinic calendar, EMR, boarding desk, grooming schedule, owner portal, and sample pets on one temporary site. Log in as admin / password (demo owner: demoowner / password ).
Vet + Core only (WordPress Playground)
org, seeds demo pets and an owner portal, adds a Book a Vet Visit page with [kennelflow_vet_booking], and opens the Vet calendar in wp-admin. Log in as admin / password (demo owner: demoowner / password ).
Preview on WordPress Playground
json. org also serves a copy from plugin SVN for directory live preview.
Developer notes
Frontend bundles (readable source and rebuild)
git, then run npm ci and npm run build to regenerate all bundles from the readable sources in assets/src/.
js ).
zip and verifies assets/dist/ artefacts and core source entries. org.
mjs ) produce booking-wizard, admin-calendar, facility-settings into assets/dist/.
txt. Run npm run build:vite to rebuild only the Vite targets, or npm run build / npm run build:all for the full pipeline (esbuild + both Vite configs).
js via Vite — no assets/vendor/ copies and no remote CDNs load imaging libraries at runtime.
txt for the definitive table):
- assets/dist/booking-wizard.js / booking-wizard.css — TypeScript/React in assets/src/booking-wizard/ (entry main.tsx ), plus booking-wizard.css
- assets/dist/admin-calendar.js / admin-calendar.css — assets/src/admin-calendar/ ( main.tsx ), plus admin-calendar.css
- assets/dist/facility-settings.js / facility-settings.css — assets/src/facility-settings/ ( main.tsx ), plus facility-settings.css
- assets/dist/ai-dictation.js / ai-dictation.css — assets/src/ai-dictation.js + JSX modules (including AIDictation.jsx ) via Vite
- assets/dist/dicom-viewer.js / dicom-viewer.css — assets/src/dicom-viewer-entry.jsx, assets/src/DICOMViewer.jsx, assets/src/cornerstone3d-bootstrap.js, and assets/src/dicom-viewer.css, via Vite (bundles Cornerstone3D)
- assets/dist/kennelflow-vet-decode-worker.js — DICOM decode Web Worker emitted by the same Vite build (URL passed from PHP; ships beside dicom-viewer.js )
js current LTS recommended):
- npm ci
- npm run build (alias: npm run build:all — esbuild, then AI dictation Vite, then DICOM Vite)
Incremental development:
- npm run watch — esbuild only (booking-wizard, admin-calendar, facility-settings)
- npm run watch:vite:ai — Vite watch for ai-dictation
- npm run watch:vite:dicom — Vite watch for dicom-viewer and kennelflow-vet-decode-worker.js
json.
Third-party libraries included in the bundled JS/CSS
json majors):
- React and React DOM — https://react.dev/
- FullCalendar (core, React adapters, calendars) — https://fullcalendar.io/
- Cornerstone3D ( @cornerstonejs/core, @cornerstonejs/dicom-image-loader ) — https://github.com/cornerstonejs/cornerstone3D — https://www.cornerstonejs.org/
- dicom-parser (transitive dependency of the DICOM image loader) — https://github.com/cornerstonejs/dicomParser/
esbuild, Vite, TypeScript, and @vitejs/plugin-react are build-time-only developer dependencies.
Admin JavaScript (plain, non-compiled)
The following scripts under assets/js/ are plain, human-readable JavaScript — no build step required:
- assets/js/admin-ajax.js — AJAX helpers used across the admin EMR interface
- assets/js/admin-emr-confirm.js — Confirmation dialog for destructive EMR actions
- assets/js/admin-emr-pet-search.js — Pet search autocomplete for EMR admin pages
External Services
This plugin avoids silent network calls beyond what WordPress administrators explicitly configure.
WordPress AI Client (optional SOAP dictation)
Purpose: Clinicians may dictate optional SOAP scaffolding on pet encounter forms. 0+ — KennelFlow Vet does not call third-party AI HTTP APIs directly.
Administrator opt-in: Default-off until a connector is configured. Site administrators (typically under Settings → Connectors ) choose and authorize an AI provider once at the site level. KennelFlow Vet stores no provider API keys.
The plugin screen KennelFlow Vet → AI dictation links to Connectors and shows availability status.
When transmissions occur: Only after WordPress reports AI support ( wp_supports_ai() ) and a permitted user (EMR edit capability) triggers dictation via the REST route. The configured connector/provider handles outbound requests; if AI is unavailable, the route returns an error and no dictation runs.
Data sent: (1) Audio — browser-captured dictation uploaded to your WordPress site, then passed to the AI Client with with_file() for transcription; (2) Transcripts and prompt snippets — plain text plus a fixed SOAP-structuring prompt sent through the same client. No patient identifiers are added by the plugin beyond what clinicians speak; follow clinic policy when dictating.
Third-party providers: Which external service receives data depends entirely on the connector the site owner configures in WordPress (for example OpenAI, Anthropic, or Google). Review that provider’s terms and privacy policy in Connectors documentation alongside your facility’s HIPAA/state privacy workflows.
DICOM imaging viewer
js for decoding) and does not, by itself, relay patient imaging to third-party viewing platforms.
Laboratory webhook ingest (optional, inbound)
Purpose: Clinic staff may configure diagnostic/lab vendors to POST result JSON to a KennelFlow Vet REST webhook when a shared secret is stored for that provider.
When transmissions occur: Inbound only — external lab systems initiate HTTPS POST requests to your WordPress site at /wp-json/kennelflow-vet/v1/lab-integration/webhook/{provider} when an administrator or integration filter configures a webhook secret for the provider slug. No outbound calls are made to lab vendors by this feature.
Authentication: Requests must present the configured shared secret via X-KF-Vet-Lab-Secret, X-KF-Vet-Lab-Token, or Authorization: Bearer header. Requests without a matching secret are rejected (401). If no secret is configured, the endpoint does not accept data.
Data received: JSON lab result payloads (patient identifiers and result rows as supplied by the vendor/integration). Parsed rows are stored in your WordPress database as EMR lab results for the matched pet. Review vendor agreements and your facility privacy policy before enabling inbound feeds.
Privacy
The plugin stores clinical and booking data in your WordPress database and media library per your configuration. Review your site privacy policy and any other active plugins for how data is shared.
Developer Resources
com/brelandr/kennelflow-vet. org upload layout).