CREATE TABLE lab_reference_ranges (
  id INTEGER PRIMARY KEY AUTOINCREMENT,
  analyzer_code TEXT NOT NULL,
  analyzer_name TEXT NOT NULL,
  species_code TEXT NOT NULL,
  parameter_code TEXT NOT NULL,
  parameter_name TEXT NOT NULL,
  unit TEXT NOT NULL,
  reference_min REAL,
  reference_max REAL,
  source_note TEXT,
  active INTEGER NOT NULL DEFAULT 1,
  sort_order INTEGER NOT NULL DEFAULT 100,
  updated_by INTEGER REFERENCES users(id) ON DELETE SET NULL,
  updated_at TEXT NOT NULL DEFAULT(datetime('now')),
  UNIQUE(analyzer_code,species_code,parameter_code)
);
CREATE INDEX idx_lab_reference_lookup ON lab_reference_ranges(analyzer_code,species_code,active,sort_order);

INSERT INTO lab_reference_ranges(analyzer_code,analyzer_name,species_code,parameter_code,parameter_name,unit,reference_min,reference_max,source_note,sort_order) VALUES
('vetscan-hm5','Zoetis VETSCAN HM5','chat','GB','Leucocytes','10⁹/L',3.50,20.70,'Fiche Zoetis actuelle',10),('vetscan-hm5','Zoetis VETSCAN HM5','chat','LYM','Lymphocytes','10⁹/L',0.83,9.10,'Fiche Zoetis actuelle',20),('vetscan-hm5','Zoetis VETSCAN HM5','chat','MON','Monocytes','10⁹/L',0.09,1.21,'Fiche Zoetis actuelle',30),('vetscan-hm5','Zoetis VETSCAN HM5','chat','NEU','Neutrophiles','10⁹/L',1.63,13.37,'Fiche Zoetis actuelle',40),('vetscan-hm5','Zoetis VETSCAN HM5','chat','EOS','Éosinophiles','10⁹/L',0.02,0.49,'Fiche Zoetis actuelle',50),('vetscan-hm5','Zoetis VETSCAN HM5','chat','BAS','Basophiles','10⁹/L',NULL,NULL,'Aucun intervalle constructeur publié',60),('vetscan-hm5','Zoetis VETSCAN HM5','chat','GR','Érythrocytes','10¹²/L',7.70,12.80,'Fiche Zoetis actuelle',70),('vetscan-hm5','Zoetis VETSCAN HM5','chat','HGB','Hémoglobine','g/dL',10,17,'Fiche Zoetis actuelle',80),('vetscan-hm5','Zoetis VETSCAN HM5','chat','HCT','Hématocrite','%',33.7,55.4,'Fiche Zoetis actuelle',90),('vetscan-hm5','Zoetis VETSCAN HM5','chat','VCM','Volume corpusculaire moyen','fL',35,52,'Fiche Zoetis actuelle',100),('vetscan-hm5','Zoetis VETSCAN HM5','chat','HCM','Hémoglobine corpusculaire moyenne','pg',10,16.9,'Fiche Zoetis actuelle',110),('vetscan-hm5','Zoetis VETSCAN HM5','chat','CCMH','Concentration corpusculaire moyenne en Hb','g/dL',27,35,'Fiche Zoetis actuelle',120),('vetscan-hm5','Zoetis VETSCAN HM5','chat','IDRc','RDW-CV','%',18.3,24.1,'Fiche Zoetis actuelle',130),('vetscan-hm5','Zoetis VETSCAN HM5','chat','IDRs','RDW-SD','fL',NULL,NULL,'Aucun intervalle constructeur publié',140),('vetscan-hm5','Zoetis VETSCAN HM5','chat','PLT','Plaquettes','10⁹/L',125,618,'Fiche Zoetis actuelle',150),('vetscan-hm5','Zoetis VETSCAN HM5','chat','VPM','Volume plaquettaire moyen','fL',8.6,14.9,'Fiche Zoetis actuelle',160),('vetscan-hm5','Zoetis VETSCAN HM5','chat','PCT','Thrombocrite','%',NULL,NULL,'Calculé sans intervalle constructeur publié',170),('vetscan-hm5','Zoetis VETSCAN HM5','chat','IDPc','PDW-CV','%',NULL,NULL,'Calculé sans intervalle constructeur publié',180),('vetscan-hm5','Zoetis VETSCAN HM5','chat','IDPs','PDW-SD','fL',NULL,NULL,'Calculé sans intervalle constructeur publié',190),
('vetscan-hm5','Zoetis VETSCAN HM5','chien','GB','Leucocytes','10⁹/L',6,17,'Fiche Zoetis actuelle',10),('vetscan-hm5','Zoetis VETSCAN HM5','chien','LYM','Lymphocytes','10⁹/L',1,4.8,'Fiche Zoetis actuelle',20),('vetscan-hm5','Zoetis VETSCAN HM5','chien','MON','Monocytes','10⁹/L',0.2,1.5,'Fiche Zoetis actuelle',30),('vetscan-hm5','Zoetis VETSCAN HM5','chien','NEU','Neutrophiles','10⁹/L',3,12,'Fiche Zoetis actuelle',40),('vetscan-hm5','Zoetis VETSCAN HM5','chien','EOS','Éosinophiles','10⁹/L',0,0.8,'Fiche Zoetis actuelle',50),('vetscan-hm5','Zoetis VETSCAN HM5','chien','BAS','Basophiles','10⁹/L',NULL,NULL,'Aucun intervalle constructeur publié',60),('vetscan-hm5','Zoetis VETSCAN HM5','chien','GR','Érythrocytes','10¹²/L',5.5,8.5,'Fiche Zoetis actuelle',70),('vetscan-hm5','Zoetis VETSCAN HM5','chien','HGB','Hémoglobine','g/dL',12,18,'Fiche Zoetis actuelle',80),('vetscan-hm5','Zoetis VETSCAN HM5','chien','HCT','Hématocrite','%',37,55,'Fiche Zoetis actuelle',90),('vetscan-hm5','Zoetis VETSCAN HM5','chien','VCM','Volume corpusculaire moyen','fL',60,77,'Fiche Zoetis actuelle',100),('vetscan-hm5','Zoetis VETSCAN HM5','chien','HCM','Hémoglobine corpusculaire moyenne','pg',19.5,24.5,'Fiche Zoetis actuelle',110),('vetscan-hm5','Zoetis VETSCAN HM5','chien','CCMH','Concentration corpusculaire moyenne en Hb','g/dL',31,39,'Fiche Zoetis actuelle',120),('vetscan-hm5','Zoetis VETSCAN HM5','chien','IDRc','RDW-CV','%',14,20,'Fiche Zoetis actuelle',130),('vetscan-hm5','Zoetis VETSCAN HM5','chien','IDRs','RDW-SD','fL',NULL,NULL,'Aucun intervalle constructeur publié',140),('vetscan-hm5','Zoetis VETSCAN HM5','chien','PLT','Plaquettes','10⁹/L',165,500,'Fiche Zoetis actuelle',150),('vetscan-hm5','Zoetis VETSCAN HM5','chien','VPM','Volume plaquettaire moyen','fL',3.9,11.1,'Fiche Zoetis actuelle',160),('vetscan-hm5','Zoetis VETSCAN HM5','chien','PCT','Thrombocrite','%',NULL,NULL,'Calculé sans intervalle constructeur publié',170),('vetscan-hm5','Zoetis VETSCAN HM5','chien','IDPc','PDW-CV','%',NULL,NULL,'Calculé sans intervalle constructeur publié',180),('vetscan-hm5','Zoetis VETSCAN HM5','chien','IDPs','PDW-SD','fL',NULL,NULL,'Calculé sans intervalle constructeur publié',190);
