Files
thechart/DOSE_TRACKING_GUIDE.md

118 lines
4.1 KiB
Markdown

# Medicine Dose Tracking Feature - Usage Guide
## Overview
The medicine dose tracking feature allows you to record specific timestamps and doses when you take medications throughout the day. This provides detailed tracking beyond the simple daily checkboxes.
## How to Use
### 1. Recording Medicine Doses
1. **Open the application** - Run `make run` or `uv run python src/main.py`
2. **Find the medicine section** - Look for the "Treatment" section in the input form
3. **For each medicine, you'll see:**
- Checkbox (existing daily tracking)
- Dose entry field (new)
- "Take [Medicine]" button (new)
- Dose display area showing today's doses (new)
### 2. Taking a Dose
1. **Enter the dose amount** in the dose entry field (e.g., "150mg", "10mg", "25mg")
2. **Click the "Take [Medicine]" button** - This will:
- Record the current timestamp
- Save the dose amount
- Update the display area
- Mark the medicine checkbox as taken
### 3. Multiple Doses Per Day
- You can take multiple doses of the same medicine
- Each dose gets its own timestamp
- All doses for the day are displayed in the dose area
- The display shows: `YYYY-MM-DD HH:MM:SS: dose`
### 4. Viewing Dose History
- **Today's doses** are shown in the dose display areas
- **Historical doses** are stored in the CSV with columns:
- `bupropion_doses`, `hydroxyzine_doses`, `gabapentin_doses`, `propranolol_doses`
- Each dose entry format: `timestamp:dose` separated by `|` for multiple doses
- **Edit entries** by double-clicking on table rows - dose information is preserved and displayed
### 5. Editing Entries and Doses
When you double-click on an entry in the data table:
- **Full data retrieval** - edit window loads complete entry including all dose data
- **Editable dose fields** - modify recorded doses directly in the edit window
- **Dose format**: Use `HH:MM: dose` format (one per line)
- **Example dose editing**:
```
09:00: 150mg
18:30: 150mg
```
- **Symptom and medicine checkboxes** can be modified
- **Notes can be updated** while keeping dose history intact
- **Save changes** preserves all dose information with proper timestamps
## CSV Format
The new CSV structure includes dose tracking columns:
```csv
date,depression,anxiety,sleep,appetite,bupropion,bupropion_doses,hydroxyzine,hydroxyzine_doses,gabapentin,gabapentin_doses,propranolol,propranolol_doses,note
07/28/2025,4,5,3,3,1,"2025-07-28 14:30:00:150mg|2025-07-28 18:30:00:150mg",0,"",0,"",1,"2025-07-28 12:30:00:10mg","Multiple doses today"
```
## Features
- ✅ **Timestamp recording** - Exact time when medicine is taken
- ✅ **Dose amount tracking** - Record specific doses (150mg, 10mg, etc.)
- ✅ **Multiple doses per day** - Take the same medicine multiple times
- ✅ **Real-time display** - See today's doses immediately
- ✅ **Data persistence** - All doses saved to CSV
- ✅ **Backward compatibility** - Existing data migrated automatically
- ✅ **Scrollable interface** - Vertical scrollbar for expanded UI
## User Interface
The medicine tracking interface now includes:
- **Scrollable input area** - Use mouse wheel or scrollbar to navigate
- **Responsive design** - Interface adapts to window size
- **Expanded medicine section** - Each medicine has dose tracking controls
## Migration
Your existing data has been automatically migrated to the new format. A backup was created as `thechart_data.csv.backup_YYYYMMDD_HHMMSS`.
## Testing
Run the dose tracking test:
```bash
make test-dose-tracking
```
Test the scrollable interface:
```bash
make test-scrollable-input
```
Test the dose editing functionality:
```bash
make test-dose-editing
```
## Troubleshooting
1. **Application won't start**: Check that migration completed successfully
2. **Doses not saving**: Ensure you enter a dose amount before clicking "Take"
3. **Data issues**: Restore from backup if needed
4. **UI layout issues**: The new interface may require resizing the window
## Technical Details
- **Timestamp format**: `YYYY-MM-DD HH:MM:SS`
- **Dose separator**: `|` (pipe) for multiple doses
- **Dose format**: `timestamp:dose`
- **Storage**: Additional columns in existing CSV file