Overview
Paw & Care revolutionizes veterinary documentation with AI-powered voice dictation that reduces documentation time by 70% — from 10-15 minutes of manual typing to under 2 minutes per note. This guide covers the complete documentation workflow from recording through finalization.Documentation Architecture
Three Input Methods
Flexible documentation supports diverse workflows:Voice Recording
- Record during or after examination
- Live transcription using browser Speech API
- Server-side processing with OpenAI Whisper
- Medical terminology optimization
- Background recording on iOS
File Upload
- Audio: MP3, WAV, WEBM, M4A
- Documents: PDF, TXT
- Images: JPG, PNG (OCR)
- Max size: 10MB
- AI text extraction
Manual Typing
- Type or paste text
- No AI processing needed
- Immediate SOAP generation
- Copy from external sources
- Fallback if microphone unavailable
Template System
SOAP notes generated using customizable templates: Built-In Templates:- Standard SOAP: Default 4-section format (Subjective, Objective, Assessment, Plan)
- Specialist SOAP: Enhanced sections for complex cases
- Dental (Canine): Dental-specific fields and grading
- Dental (Feline): Feline oral health assessment
- Radiograph Report: Imaging findings documentation
- Surgery Report: Operative notes and recovery
- Callback Note: Telephone consultation format
- Tech Appointment Note: Technician-friendly simplified format
Voice Dictation Workflow
Step 1: Preparation
Select Patient
- Search by name or breed
- Filtered list of all patients
- Shows patient avatar, species, breed, age
- Recently viewed patients at top
- Tap patient card to select
Choose Template
- Browse all available templates
- Colored badges show template type
- Default badge on most-used template
- Description preview for each
- Section count (e.g., “4 sections”)
- Detail level indicator (concise vs. detailed)
- Show only favorites
- Filter by type (SOAP, Dental, Surgery, etc.)
- Search by name
Grant Microphone Permission
- System prompt: “Paw & Care would like to access the microphone”
- Tap Allow
- Permission saved for future use
- Browser prompt: “paw-and-care.com wants to use your microphone”
- Click Allow
- Permission per-browser, per-device
- iOS: Settings → Paw & Care → Microphone → Enable
- Web: Browser settings → Site permissions → Microphone → Allow
- Or use Type/Upload tabs as alternative
Step 2: Recording
Start Recording
- Microphone button turns red
- Recording timer starts (00:00)
- Waveform animation shows audio levels
- Red pulsing ring around microphone icon
- Text appears in real-time below microphone
- Browser Speech Recognition API provides instant feedback
- Interim text shown in gray (not finalized)
- Final text appears in black
- Echo cancellation enabled
- Noise suppression active
- Auto gain control for consistent volume
- Codec: AAC or Opus (depending on device)
Dictate Clinical Findings
- Use standard SOAP structure naturally (AI will re-organize)
- Include specific numbers (weights, temperatures, lab values)
- Speak full medication names and dosages
- Mention chronic conditions and allergies
- State what’s normal AND abnormal
Pause or Resume
- Answer phone or talk to owner
- Step out of exam room
- Check reference materials
- Consult with technician
- Recording stops but not finalized
- Timer pauses
- Live transcription frozen
- Audio saved to that point
- Recording continues from pause point
- Timer resumes
- Live transcription continues
- Audio appended seamlessly
Stop Recording
- Recording finalized
- Audio file created (WebM format)
- Microphone stream closed
- Timer stops and shows total duration
- Play button appears for audio playback
- Live transcription preserved
- Transcribe button enabled
- Stored in browser memory (not uploaded yet)
- Can preview by tapping Play button
- File size shown (typically 1-3 MB per minute)
- Delete and re-record if needed
Step 3: Transcription
Review Live Transcription
- Appears below microphone during recording
- Shows what Speech API captured
- Usually 80-90% accurate
- May have spelling errors or mishear medical terms
- This text will be used for SOAP generation
- No need to wait for Whisper API processing
- Click directly to Generate Notes (skips transcription step)
- Proceed to AI transcription with Whisper
- More accurate medical terminology
- Slower (8-15 seconds processing)
AI Transcription (OpenAI Whisper)
- Upload Audio: File sent to backend server as base64-encoded string
- Progress: 0-20%
- Time: 2-4 seconds depending on file size and connection
- Server Processing: Backend sends to OpenAI Whisper API
- Progress: 20-80%
- Time: 5-10 seconds per minute of audio
- Whisper model:
whisper-1(multilingual large model) - Language: English (configurable)
- Text Extraction: Whisper returns transcription
- Progress: 80-95%
- JSON response with text and confidence metadata
- Post-Processing: Medical term correction
- Progress: 95-100%
- Spell-check against veterinary dictionary
- Capitalize drug names, anatomical terms
- Format numbers and measurements
- Display: Transcription appears in text area
- Editable text field
- Word count shown
- Estimated SOAP length indicator
- Full text displayed
- Edit directly if any errors
- Add additional context AI may have missed
- Copy/paste supported
- Undo/redo available
Edit Transcription (Optional)
- Drug names: “carro profen” → “carprofen”
- Measurements: “sixty five pounds” → “65 pounds”
- Medical terms: “borborygmi” misheard as “more vore big my”
- Breed names: “retriever” → “Golden Retriever”
- Owner names: Correct spelling for records
- Click anywhere in text to edit
- Standard keyboard shortcuts work (Ctrl+C, Ctrl+V, Ctrl+Z)
- Character count updates in real-time
- Save draft if need to finish later
Step 4: SOAP Note Generation
Generate AI SOAP Notes
Review Generated SOAP Sections
- Chief complaint
- Owner-reported symptoms
- History since last visit
- Medications and diet
- Behavior changes
- Vital signs (TPR, weight, BCS)
- Physical examination findings
- Diagnostic results
- Observed behaviors
- Measurable data
- Primary diagnosis
- Differential diagnoses
- Problem list
- Severity grading
- Prognosis
- Treatments administered
- Prescriptions and dosages
- Diagnostic tests ordered
- Recheck interval
- Owner education provided
- Follow-up appointments
- Colored header with section name
- Editable text area
- Word count
- Expand/collapse button
- Copy section button
- AI confidence indicator (if available)
Edit SOAP Sections
- Full-height text area when focused
- Markdown formatting supported (bold, italic, lists)
- Spell-check enabled
- Character limit: 5000 per section
- Auto-save draft every 30 seconds
- Add missed details from examination
- Correct AI misinterpretations
- Adjust phrasing for clinic style
- Add context AI didn’t infer
- Remove irrelevant information
- Ctrl+Z to undo changes
- Ctrl+Y to redo
- Revision history saved (view previous versions)
Step 5: Clinical Insights
Review AI-Generated Insights
- Potential complications
- Contraindications for treatments
- Drug interactions
- Breed-specific risks
- Age-related concerns
- Differential diagnoses
- Condition likelihood
- Supporting evidence from exam
- Diagnostic tests to confirm
- Treatment options
- Preventive care recommendations
- Client education topics
- Follow-up scheduling
Provide Feedback on Insights
- Insight marked as “accepted”
- Incorporated into treatment plan if applicable
- Positive feedback trains AI
- Insight badge turns green with checkmark
- Insight marked as “rejected”
- Removed from display
- Negative feedback trains AI
- Insight badge turns red with X
- Insight remains with “pending” status
- Visible for reference but not incorporated
- No feedback signal sent
Incorporate Insights into Plan
- Copy insight text
- Paste into Plan section
- Edit as needed for clinical note style
- Tap “Add to Plan” button on insight
- Text automatically appended to Plan section
- Formatted appropriately
- Maintain manual edit control
Saving and Finalizing Records
Save Options
Choose Record Status
- Draft
- Pending Review
- Finalized
- Documentation incomplete
- Awaiting lab results or diagnostics
- Need to consult reference materials
- Finishing notes later
- Technician started record for vet review
- Can edit unlimited times
- Not visible to front desk/billing
- Yellow draft badge
- Listed in “My Drafts” filter
- No audit log entry (still in progress)
Save to Database
-
Data Validation:
- Required fields present (patient, template, date)
- SOAP sections within length limits
- Status transition valid (Draft → Pending → Finalized)
- User has permission for selected status
-
Database Insert (Supabase):
Record saved to
medical_recordstable: -
Audit Log Entry (if not draft):
-
Notification (if Pending Review):
- Push notification to assigned reviewer
- Email notification as backup
- Badge count increments in “Needs Review” queue
-
Link to Appointment (if applicable):
- Appointment record updated with
medical_record_id - Appointment status can progress to “Completed”
- Medical record accessible from appointment card
- Appointment record updated with
- Green checkmark notification: “Record saved as [status]”
- Record ID displayed (e.g., “rec-20260305-123”)
- Auto-redirect to Medical Records list or appointment
Handle Save Errors
- Symptom: “Could not connect to server”
- Cause: No internet connection or server down
- Solution:
- iOS: Record saved to local SQLite database
- Will auto-sync when connection restored
- Green “Saved locally” message displayed
- Sync indicator shows pending upload
- Symptom: “Required field missing” or “Invalid data”
- Cause: Missing patient selection, empty sections
- Solution:
- Error message highlights specific field
- Fix issue and retry save
- Draft automatically preserved (no data loss)
- Symptom: “You don’t have permission to finalize records”
- Cause: User role (Technician) cannot finalize
- Solution:
- Save as “Pending Review” instead
- Request Practice Manager enable finalization permission
- Symptom: “Save timed out after 30 seconds”
- Cause: Slow network or large audio file
- Solution:
- Retry save (data preserved)
- Remove audio attachment if very large
- Check network speed
Offline Documentation (iOS Only)
Offline Workflow
Mobile app supports full documentation without internet:Detect Offline Mode
- Orange banner at top: “Offline — Changes will sync when online”
- Cloud icon with slash in status bar
- Sync pending badge on app icon
- AI transcription unavailable (use Type tab)
- SOAP generation unavailable (manual entry)
- Clinical insights unavailable
- Billing generation unavailable
- Patient data cached (last synced state)
Create Records Offline
- Select patient (from cached list)
- Choose template
- Manual text entry for each SOAP section
- Save as Draft
- Link to appointment
- Voice recording with AI transcription
- AI SOAP generation
- File upload with extraction
- Clinical insights
- Finalization (requires online verification)
Offline Storage
- All SOAP content
- Patient ID and name
- Template selection
- Draft status
- Creation timestamp
- User ID
Automatic Sync When Online
- Detection: App detects network availability
- Banner Update: “Back online — Syncing…”
- Queue Processing:
- Offline records uploaded in order created
- One at a time to prevent conflicts
- Progress indicator shows X of Y synced
- Conflict Resolution:
- If record edited on another device: Last-write-wins
- User notified: “Record updated on server, local changes discarded”
- Option to view conflicts and merge manually
- Completion: “All changes synced” green banner
- Local Data: Cleared from device after successful sync
Documentation Best Practices
Speed Optimization
Before Exam
- Review previous SOAP notes
- Note chronic conditions
- Check vaccination status
- Review known allergies
- Have template pre-selected
During Exam
- Dictate while examining
- Speak findings as observed
- Include normal and abnormal
- State measurements aloud
- Owner present hears professionalism
After Exam
- Generate SOAP notes immediately
- Rapid section review
- Accept/reject insights
- Finalize before next patient
End of Day
- Finalize any remaining drafts
- Review pending records
- Quality check day’s notes
- Ensure all linked to appointments
Quality Assurance
Self-Review Checklist
- All SOAP sections have content
- Vital signs recorded (TPR, weight)
- Diagnosis stated clearly
- Treatment plan specific (not vague)
- Follow-up interval mentioned
- Owner education documented
- Patient name correct
- Medications spelled correctly with doses
- Measurements include units (lbs, kg, degrees)
- Dates correct (current visit, next recheck)
- No contradictions between sections
- No abbreviations unless standard
- Complete sentences (avoid shorthand)
- Objective language (avoid “seems” or “appears”)
- Appropriate medical terminology
- Legible to other veterinarians
Peer Review (Recommended)
- Documentation completeness
- Clinical accuracy
- Compliance with standards
- Consistency across similar cases
- Appropriate use of AI tools
- Discuss strengths and improvement areas
- Share best practices across team
- Identify template modifications needed
- Calibrate AI acceptance thresholds
Troubleshooting
Microphone Not Working
Microphone Not Working
- Settings → Paw & Care → Microphone → Enable
- Restart app
- Check device microphone with Voice Memos app
- If hardware issue, use Type tab
- Browser settings → Site permissions → Microphone → Allow
- Refresh page
- Try different browser
- Check operating system microphone permissions
SOAP Generation Failed
SOAP Generation Failed
- Backend server offline
- OpenAI API rate limit exceeded
- Network timeout
- Invalid transcription format
- Wait and Retry: Transcription preserved, click Generate Notes again after 1 minute
- Manual Entry: Use Type tab to create SOAP manually from transcription
- Contact Support: If persistent, report backend issue
- Rate Limit: Practice-wide limit is 100 requests/minute; wait briefly
Clinical Insights Not Appearing
Clinical Insights Not Appearing
- Insufficient data in SOAP notes (too brief)
- Common/routine case (no notable insights)
- Backend insight service unavailable
- Add more detail to SOAP sections and regenerate
- Check if insights collapsed (expand panel)
- Not all cases have insights (e.g., simple nail trim)
- Non-critical feature, can finalize without insights
Cannot Finalize Record
Cannot Finalize Record
- User role (Technician) lacks finalization permission
- Record in Pending Review status awaiting approval
- Required fields missing
- Technicians: Save as “Pending Review” instead, veterinarian will finalize
- Veterinarians: Check role permissions in Settings → User Management
- Missing Fields: Complete all required sections highlighted in red