4.4 KiB
✅ Schéma OMOP Complet Créé
🎉 Résultat
Le schéma OMOP est maintenant complet et valide !
Avant
- ❌ 16 tables sur ~40
- ❌ 18 tables manquantes (vocabulaires, métadonnées, etc.)
- ❌ Validation échouée
Après
- ✅ 34 tables créées
- ✅ Validation réussie
- ✅ Toutes les tables essentielles présentes
📊 État Actuel des Schémas
┌──────────┬────────────────┐
│ Schéma │ Nombre Tables │
├──────────┼────────────────┤
│ OMOP │ 34 ✅ │
│ Staging │ 13 ✅ │
│ Audit │ 9 ✅ │
└──────────┴────────────────┘
🔧 Corrections Appliquées
1. Problème : Mot Réservé SQL
Erreur : La colonne offset dans la table note_nlp est un mot réservé PostgreSQL.
Solution : Ajout de guillemets autour du nom de colonne :
-- Avant (❌ Erreur)
offset VARCHAR(50) NULL,
-- Après (✅ Correct)
"offset" VARCHAR(50) NULL,
2. Amélioration du Parsing SQL
Le SchemaManager filtre maintenant correctement les commentaires SQL pour éviter les erreurs d'exécution.
📋 Tables OMOP Créées (34 tables)
Tables Cliniques (14 tables)
✅ person - Patients et démographie
✅ observation_period - Périodes d'observation
✅ visit_occurrence - Visites médicales
✅ visit_detail - Détails des visites
✅ condition_occurrence - Diagnostics
✅ drug_exposure - Prescriptions médicamenteuses
✅ procedure_occurrence - Actes médicaux
✅ device_exposure - Dispositifs médicaux
✅ measurement - Mesures et résultats labo
✅ observation - Observations cliniques
✅ death - Décès
✅ note - Notes cliniques
✅ note_nlp - Traitement NLP des notes
✅ specimen - Échantillons biologiques
Tables Système de Santé (5 tables)
✅ location - Lieux géographiques
✅ care_site - Établissements de santé
✅ provider - Professionnels de santé
✅ payer_plan_period - Périodes d'assurance
✅ cost - Coûts des soins
Tables de Vocabulaire (10 tables)
✅ concept - Concepts standardisés
✅ vocabulary - Vocabulaires (SNOMED, ICD10, etc.)
✅ domain - Domaines cliniques
✅ concept_class - Classes de concepts
✅ concept_relationship - Relations entre concepts
✅ relationship - Types de relations
✅ concept_synonym - Synonymes
✅ concept_ancestor - Hiérarchie des concepts
✅ source_to_concept_map - Mappings personnalisés
✅ drug_strength - Dosages médicamenteux
Tables de Métadonnées (3 tables)
✅ cdm_source - Informations sur la source
✅ metadata - Métadonnées du CDM
✅ fact_relationship - Relations entre faits
Tables de Cohortes (2 tables)
✅ cohort - Cohortes de patients
✅ cohort_definition - Définitions de cohortes
✅ Validation Réussie
{
"status": "success",
"valid": true,
"message": "Schema validation passed"
}
La validation vérifie :
- ✅ Toutes les tables requises existent
- ✅ Les clés primaires sont présentes
- ✅ Les clés étrangères sont créées (50+ contraintes)
- ✅ La structure est conforme à OMOP CDM 5.4
🎯 Prochaines Étapes
Maintenant que le schéma OMOP est complet, vous pouvez :
1. Charger les Vocabulaires (Optionnel)
Les tables de vocabulaire sont vides. Pour les remplir :
- Téléchargez les vocabulaires OMOP depuis Athena
- Utilisez le script
scripts/load_vocabularies.sh
2. Lancer un Pipeline ETL
Transformez vos données de staging vers OMOP :
- Allez sur la page "ETL Manager"
- Configurez le pipeline (source: staging.raw_patients, cible: person)
- Lancez la transformation
3. Valider les Données
Après l'ETL, vérifiez la qualité :
- Page "Validation" pour les codes non mappés
- Page "Logs" pour les erreurs éventuelles
📝 Fichiers Modifiés
-
src/schema/ddl/omop_cdm_5.4.sql- Correction du mot réservé
offset→"offset"
- Correction du mot réservé
-
src/schema/manager.py- Amélioration du parsing SQL (filtrage des commentaires)
🎊 Conclusion
Votre schéma OMOP est maintenant complet, valide et prêt à l'emploi ! 🚀
Vous pouvez commencer à transformer vos données de staging vers le format OMOP standardisé.