Quick Start
Step 1: Create a minimal document
Section titled “Step 1: Create a minimal document”Create a file called minimal.json with just a patient:
{ "format_version": "1.0.0", "exported_at": "2026-03-30T12:00:00Z", "patient": { "resource_type": "Patient", "id": "pet-001", "name": "Burek", "species": "dog" }, "encounters": [ { "resource_type": "Encounter", "id": "enc-001", "patient_id": "pet-001", "status": "completed", "date": "2026-03-30T10:00:00Z" } ]}This is the smallest valid OVF Core document: format_version + exported_at + patient + at least one resource array with one entry.
Step 2: Validate with the CLI
Section titled “Step 2: Validate with the CLI”npx ovf-validate minimal.jsonExpected output:
minimal.json: valid (OVF Core)Step 3: Add an encounter and immunization
Section titled “Step 3: Add an encounter and immunization”Create extended.json with more clinical data:
{ "format_version": "1.0.0", "exported_at": "2026-03-30T12:00:00Z", "exporter": { "name": "MyVetApp", "version": "2.1.0" }, "patient": { "resource_type": "Patient", "id": "pet-001", "name": "Burek", "species": "dog", "breed": "Labrador Retriever", "date_of_birth": "2020-03-15", "sex": "male", "gender_status": "neutered", "weight": { "value": 32.5, "unit": "kg" }, "identifiers": [ { "system": "iso-microchip-11784", "value": "616000012345678" } ], "owner": { "name": "Jan Kowalski", "phone": "+48 600 123 456" } }, "encounters": [ { "resource_type": "Encounter", "id": "enc-001", "patient_id": "pet-001", "status": "completed", "type": "vaccination", "date": "2026-03-30T10:00:00Z", "reason": "Annual vaccination", "practitioner": { "name": "Dr. Anna Nowak", "license_number": "VET-PL-12345", "clinic": "Happy Paws Veterinary Clinic" } } ], "immunizations": [ { "resource_type": "Immunization", "id": "imm-001", "patient_id": "pet-001", "encounter_id": "enc-001", "vaccine_name": "Nobivac DHPPi", "occurrence_date": "2026-03-30", "expiration_date": "2027-03-30", "lot_number": "A123B456", "manufacturer": "MSD Animal Health", "route": "subcutaneous", "site": "Right shoulder", "is_primary_course": false, "notes": "Annual booster. No adverse reactions." } ]}Step 4: Validate again
Section titled “Step 4: Validate again”npx ovf-validate extended.jsonextended.json: valid (OVF Core)Next steps
Section titled “Next steps”- Installation — set up programmatic validation in TypeScript or Python
- Schema Reference — explore all 9 resource type schemas
- Examples — browse complete sample documents
- FHIR Mapping — convert between OVF and HL7 FHIR