18 lines
2.8 KiB
SQL
18 lines
2.8 KiB
SQL
CREATE TABLE ref_dewormers (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL COLLATE NOCASE UNIQUE,active_ingredient TEXT,form TEXT,notes TEXT,active INTEGER NOT NULL DEFAULT 1 CHECK(active IN (0,1)),created_at TEXT NOT NULL DEFAULT(datetime('now')));
|
|
INSERT INTO ref_dewormers(name,active_ingredient,form,notes) VALUES
|
|
('NexGard Combo',NULL,'Pipette','Couvre principalement : puces, tiques, acariens, vers ronds, ténias et certains vers pulmonaires.'),
|
|
('Broadline',NULL,'Pipette','Couvre principalement : puces, tiques, vers ronds et ténias.'),
|
|
('Milbemax Chat / Chaton',NULL,'Comprimé','Couvre principalement : vers ronds et ténias.'),
|
|
('Milprazon Chat / Chaton',NULL,'Comprimé','Équivalent générique du Milbemax ; couvre principalement les vers ronds et ténias.'),
|
|
('Drontal Chat',NULL,'Comprimé','Couvre principalement : vers ronds et ténias.'),
|
|
('Profender',NULL,'Pipette','Couvre principalement les vers ronds et ténias, sans action contre les puces ou les tiques.'),
|
|
('Panacur','Fenbendazole','Pâte / comprimé','Couvre principalement les vers ronds ; utilisé dans certains protocoles contre Giardia.'),
|
|
('Stronghold Plus',NULL,'Pipette','Couvre principalement les puces, tiques, gale ou acariens et certains vers ronds, mais pas les ténias.'),
|
|
('Advocate',NULL,'Pipette','Couvre principalement les puces, acariens et certains vers ronds, mais pas les ténias.');
|
|
INSERT OR IGNORE INTO ref_dewormers(name,active_ingredient,form) SELECT DISTINCT m.name,m.molecule,m.form FROM dewormings d JOIN ref_medications m ON m.id=d.medication_id;
|
|
ALTER TABLE dewormings RENAME TO dewormings_with_medications;
|
|
CREATE TABLE dewormings (id INTEGER PRIMARY KEY AUTOINCREMENT,animal_id INTEGER NOT NULL,dewormer_id INTEGER,administered_on TEXT NOT NULL,dose_text TEXT,weight_kg REAL,next_due_date TEXT,notes TEXT,source_litter_id INTEGER,created_by INTEGER,created_at TEXT NOT NULL DEFAULT(datetime('now')),updated_at TEXT NOT NULL DEFAULT(datetime('now')),FOREIGN KEY(animal_id) REFERENCES animals(id) ON DELETE CASCADE,FOREIGN KEY(dewormer_id) REFERENCES ref_dewormers(id) ON DELETE SET NULL,FOREIGN KEY(source_litter_id) REFERENCES litters(id) ON DELETE SET NULL,FOREIGN KEY(created_by) REFERENCES users(id) ON DELETE SET NULL);
|
|
INSERT INTO dewormings(id,animal_id,dewormer_id,administered_on,dose_text,weight_kg,next_due_date,notes,source_litter_id,created_by,created_at,updated_at) SELECT d.id,d.animal_id,r.id,d.administered_on,d.dose_text,d.weight_kg,d.next_due_date,d.notes,d.source_litter_id,d.created_by,d.created_at,d.updated_at FROM dewormings_with_medications d LEFT JOIN ref_medications m ON m.id=d.medication_id LEFT JOIN ref_dewormers r ON r.name=m.name COLLATE NOCASE;
|
|
DROP TABLE dewormings_with_medications;
|
|
CREATE INDEX idx_dewormings_animal_date ON dewormings(animal_id,administered_on DESC);
|
|
CREATE INDEX idx_dewormings_next_due ON dewormings(next_due_date);
|