# Raw layer - Data Management with FHIR v0.1.0

 ![](assets/images/aphp-logo.png) 

*  [Accueil](index.md) 
*  [Dictionnaire des données](data-dictionary.md) 
*  [Variables du socle commun **** ](#) 
*  [Acquisition des variables](use-core-variables-acquisition.md) 
*  [Formalisation des variables](use-core-variables-formalization.md) 
*  [Standardisation des variables](use-core-variables-standardization.md) 
 
*  [Health Data Platform **** ](#) 
*  [Architecture fonctionnelle](data-platform-functional-architecture.md) 
*  [Raw layer](data-platform-raw-layer.md) 
*  [Transform layer](data-platform-transform-layer.md) 
*  [Semantic layer](data-platform-semantic-layer.md) 
*  [Share layer](data-platform-share-layer.md) 
 
*  [Guide **** ](#) 
*  [Gestion des données](https://interop.aphp.fr/ig/fhir/core/data-management.html) 
*  [Bonnes pratiques](https://interop.aphp.fr/ig/fhir/core/best-practice.html) 
*  [Processus de standardisation des données](https://interop.aphp.fr/ig/fhir/core/standardization-process.html) 
 
*  [Ressources de conformité](artifacts.md) 
*  [Autres **** ](#) 
*  [Aide](help.md) 
*  [Notes de version](changelog.md) 
*  [Glossaire](glossary.md) 
*  [Télécharger spécifications](downloads.md) 
 

* [Accueil](index.md)
* [Dictionnaire des données](data-dictionary.md)
* [Usages](use-case.md)
* [Variables socles pour les EDSH](use-core-variables.md)
* [Standardisation de données au format FHIR](use-core-variables-process.md)
* [Acquisition des variables](use-core-variables-acquisition.md)
* [Formalisation des variables](use-core-variables-formalization.md)
* [Standardisation des variables](use-core-variables-standardization.md)
* [Evaluation](use-core-variables-evaluation.md)
* [Health Data Platform (démo)](data-platform.md)
* [Architecture fonctionnelle](data-platform-functional-architecture.md)
* [Raw layer](data-platform-raw-layer.md)
* [Transform layer](data-platform-transform-layer.md)
* [Semantic layer](data-platform-semantic-layer.md)
* [Share layer](data-platform-share-layer.md)
* [Autre](other.md)
* [Aide](help.md)
* [Notes de version](changelog.md)
* [Glossaire](glossary.md)
* [Télécharger les spécifications](downloads.md)
* [Artifacts Summary](artifacts.md)
* [CareSite OMOP Table](StructureDefinition-OMOPCareSite.md)
* [Concept OMOP Table](StructureDefinition-OMOPConcept.md)
* [Condition Era OMOP Table](StructureDefinition-OMOPConditionEra.md)
* [Condition Occurrence OMOP Table](StructureDefinition-OMOPConditionOccurrence.md)
* [Cost OMOP Table](StructureDefinition-OMOPCost.md)
* [Death OMOP Table](StructureDefinition-OMOPDeath.md)
* [Device Exposure OMOP Table](StructureDefinition-OMOPDeviceExposure.md)
* [Dose Era OMOP Table](StructureDefinition-OMOPDoseEra.md)
* [Drug Era OMOP Table](StructureDefinition-OMOPDrugEra.md)
* [Drug Occurrence OMOP Table](StructureDefinition-OMOPDrugExposure.md)
* [Electronic Health Record Data Model](StructureDefinition-ehr.md)
* [Episode Event OMOP Table](StructureDefinition-OMOPEpisodeEvent.md)
* [Episode OMOP Table](StructureDefinition-OMOPEpisode.md)
* [Fact Relationship OMOP Table](StructureDefinition-OMOPFactRelationship.md)
* [Location OMOP Table](StructureDefinition-OMOPLocation.md)
* [LogicalBundle](StructureDefinition-LogicalBundle.md)
* [Measurement OMOP Table](StructureDefinition-OMOPMeasurement.md)
* [Note NLP OMOP Table](StructureDefinition-OMOPNoteNLP.md)
* [Note OMOP Table](StructureDefinition-OMOPNote.md)
* [Observation OMOP Table](StructureDefinition-OMOPObservation.md)
* [Observation Period OMOP Table](StructureDefinition-OMOPObservationPeriod.md)
* [Payer Plan Period OMOP Table](StructureDefinition-OMOPPayerPlanPeriod.md)
* [Person OMOP Table](StructureDefinition-OMOPPerson.md)
* [Procedure Occurrence OMOP Table](StructureDefinition-OMOPProcedureOccurrence.md)
* [Provider OMOP Table](StructureDefinition-OMOPProvider.md)
* [Specimen OMOP Table](StructureDefinition-OMOPSpecimen.md)
* [Visit Detail OMOP Table](StructureDefinition-OMOPVisitDetail.md)
* [Visit Occurrence OMOP Table](StructureDefinition-OMOPVisitOccurrence.md)
* [Questionnaire usage Variables socles pour les EDSH](Questionnaire-UsageCore.md)
* [Profil de Claim pour le champ MCO du PMSI](StructureDefinition-DMClaimPMSIMCO.md)
* [Profil de Claim pour le PMSI](StructureDefinition-DMClaimPMSI.md)
* [Résultat de laboratoire](StructureDefinition-DMObservationLaboratoryGeneric.md)
* [Activité physique](StructureDefinition-DMObservationExerciceStatus.md)
* [Alanine aminotransférase (ALAT)](StructureDefinition-DMObservationLaboratoryALAT.md)
* [Aspartate aminotransférase (ASAT)](StructureDefinition-DMObservationLaboratoryASAT.md)
* [Bilirubine conjuguée](StructureDefinition-DMObservationLaboratoryBilirubineConjuguee.md)
* [Bilirubine totale](StructureDefinition-DMObservationLaboratoryBilirubineTotale.md)
* [Condition](StructureDefinition-DMCondition.md)
* [Consommation d'alcool](StructureDefinition-DMObservationAlcoholUseStatus.md)
* [Consommation d'autres drogues](StructureDefinition-DMObservationSubstanceUseStatus.md)
* [Consommation de tabac](StructureDefinition-DMObservationSmokingStatus.md)
* [Encounter](StructureDefinition-DMEncounter.md)
* [Eosinophiles](StructureDefinition-DMObservationLaboratoryEosinophiles.md)
* [Episode of care](StructureDefinition-DMEpisodeOfCare.md)
* [Erythrocytes](StructureDefinition-DMObservationLaboratoryErythrocytes.md)
* [Fonction rénale](StructureDefinition-DMObservationLaboratoryFonctionRenale.md)
* [French branded name Medication](StructureDefinition-FrMedicationUcd.md)
* [French compound Medication](StructureDefinition-FrMedicationCompound.md)
* [French non proprietary name Medication](StructureDefinition-FrMedicationNonproprietaryName.md)
* [French Ucd Part Medication](StructureDefinition-FrMedicationUcdPart.md)
* [Gamma-glutamyl transférase (GGT)](StructureDefinition-DMObservationLaboratoryGGT.md)
* [Glycémie à jeun](StructureDefinition-DMObservationLaboratoryGlycemieAJeun.md)
* [Hématocrite](StructureDefinition-DMObservationLaboratoryHematocrite.md)
* [Hémoglobine](StructureDefinition-DMObservationLaboratoryHemoglobine.md)
* [Hémoglobine glyquée](StructureDefinition-DMObservationLaboratoryHbA1c.md)
* [Leucocytes](StructureDefinition-DMObservationLaboratoryLeucocytes.md)
* [Location](StructureDefinition-DMLocation.md)
* [Lymphocytes](StructureDefinition-DMObservationLaboratoryLymphocytes.md)
* [Monocytes](StructureDefinition-DMObservationLaboratoryMonocytes.md)
* [Neutrophiles](StructureDefinition-DMObservationLaboratoryNeutrophiles.md)
* [Organization](StructureDefinition-DMOrganization.md)
* [Patient](StructureDefinition-DMPatient.md)
* [Phosphatases alcaline](StructureDefinition-DMObservationLaboratoryPAL.md)
* [Plaquettes](StructureDefinition-DMObservationLaboratoryPlaquettes.md)
* [Poids du patient](StructureDefinition-DMObservationBodyWeight.md)
* [Practitioner](StructureDefinition-DMPractitioner.md)
* [PractitionerRole](StructureDefinition-DMPractitionerRole.md)
* [Prescription de médicaments](StructureDefinition-DMMedicationRequest.md)
* [Pression artérielle](StructureDefinition-DMObservationBloodPressure.md)
* [Prise de médicaments](StructureDefinition-DMMedicationAdministration.md)
* [Procedure](StructureDefinition-DMProcedure.md)
* [RUM du PMSI MCO](StructureDefinition-DMClaimRUM.md)
* [Taille du patient](StructureDefinition-DMObservationBodyHeight.md)
* [Taux prothrombine (TP)](StructureDefinition-DMObservationLaboratoryTP.md)
* [Temps de céphaline activée (TCA)](StructureDefinition-DMObservationLaboratoryTCA.md)
* [Urée](StructureDefinition-DMObservationLaboratoryUremie.md)
* [Volume globulaire moyen](StructureDefinition-DMObservationLaboratoryVGM.md)
* [Address](StructureDefinition-DMAddress.md)
* [Range with UCUM quantity units](StructureDefinition-FrRangeUcum.md)
* [Ratio with UCUM quantity units](StructureDefinition-FrRatioUcum.md)
* [SimpleQuantity with UCUM quantity unit](StructureDefinition-FrSimpleQuantityUcum.md)
* [Codage géographique du lieu de résidence pour les RSA du PMSI](StructureDefinition-PmsiCodeGeo.md)
* [Groupe Homogène de Malade](StructureDefinition-DRG.md)
* [Ordre des Item dans un claim](StructureDefinition-ItemRank.md)
* [Source ayant fournie l'information de décès](StructureDefinition-DeathSource.md)
* [Actes CCAM pour le PMSI](ValueSet-CcamVS.md)
* [Blood Pressure Measurement Body Location Precoordinated](ValueSet-BloodPressureMeasurementBodyLocationPrecoodinated.md)
* [Blood Pressure Measurement Method](ValueSet-BloodPressureMeasurementMethod.md)
* [Categorisation des items de claim pour le PMSI MCO](ValueSet-FrMCOClaimItemCategory.md)
* [Exercice Status Type](ValueSet-DMExerciceStatusType.md)
* [French Medicinal product Dose form](ValueSet-FrMpDoseForm.md)
* [French Medicinal Product only](ValueSet-FrMedicinalProductOnly.md)
* [French Route of Administration](ValueSet-FrRouteOfAdministration.md)
* [Height Length Measurement Method](ValueSet-HeightLengthMeasurementMethod.md)
* [Liste des analyses biologiques socle des EDS](ValueSet-DMLaboratory.md)
* [Liste des analyses correspondant à l'estimation du DFG - socle des EDS](ValueSet-DMLaboratoryEstimatedDFG.md)
* [Liste des diagnostiques CIM-10 acceptable en DA pour les PMSI MCO et HAD](ValueSet-CIM10PMSIDA.md)
* [Liste des diagnostiques CIM-10 acceptable en DP pour les PMSI MCO et HAD](ValueSet-CIM10PMSIDP.md)
* [Liste des diagnostiques CIM-10 acceptable en DR pour les PMSI MCO et HAD](ValueSet-CIM10PMSIDR.md)
* [Liste des diagnostiques CIM-10 OMS](ValueSet-CIM10.md)
* [Liste des diagnostiques CIM-10 pour le PMSI](ValueSet-CIM10PMSI.md)
* [Liste des GHM pour le PMSI MCO](ValueSet-GHMVS.md)
* [Liste des status pour l'Observation de consommation de tabac](ValueSet-DMObservationSmokingStatusStatus.md)
* [Liste des unités possibles pour une estimation du débit de filtration glomérulaire - socle des EDS](ValueSet-DMLaboratoryEstimatedDFGUnit.md)
* [Mode d'entré du PMSI MCO](ValueSet-PMSIMCOMDEVS.md)
* [Mode de sortie du PMSI MCO](ValueSet-PMSIMCOMDSVS.md)
* [Smoking status comprehensive](ValueSet-DMSmokingStatusComprehensive.md)
* [Smoking Status Pack Years SCT](ValueSet-DMSmokingStatusPackYearsSCT.md)
* [Smoking Status Type](ValueSet-DMSmokingStatusType.md)
* [Smoking Status Type from LOINC](ValueSet-DMSmokingStatusTypeLOINC.md)
* [ValueSet des codes géographiques de résidence du PMSI](ValueSet-PmsiCodeGeoVs.md)
* [ValueSet des modes d'entrée du DPI](ValueSet-DpiModeIn.md)
* [ValueSet des modes de sortie du DPI](ValueSet-DpiModeOut.md)
* [ValueSet des Sexe administratif du DPI](ValueSet-DpiGenderVS.md)
* [ValueSet des sources d'informations fr sur le statut vital](ValueSet-DeathSourcesVs.md)
* [ValueSet des type fr des claims](ValueSet-FrClaimType.md)
* [ValueSet des type fr des claims](ValueSet-FrMCOClaimSubType.md)
* [ValueSet des types de séjour du DPI](ValueSet-DpiEncounterTypeVS.md)
* [ValueSet of gender of OHDSI](ValueSet-OMOPGender.md)
* [Weight Measurement Method](ValueSet-WeightMeasurementMethod.md)
* [Cadre de facturation dans la réglementation française](CodeSystem-FrClaimType.md)
* [Categorie d'information pour les supporting information](CodeSystem-FrClaimSupInfoCategoryPMSIMCO.md)
* [Categorisation des items de claim pour le PMSI MCO](CodeSystem-FrMCOClaimItemCategory.md)
* [CCAM illustrative](CodeSystem-Ccam.md)
* [CIM 10 PMSI](CodeSystem-CIM10.md)
* [Classification des GHM utilisée pour le groupage des séjours dans le PMSI MCO.](CodeSystem-GHM.md)
* [CodeSystem des lieux de résidence géographique au sens du PMSI](CodeSystem-PmsiCodeGeo.md)
* [DPI Gender](CodeSystem-DpiGender.md)
* [Dpi Mode d'entrée](CodeSystem-DpiModeIn.md)
* [Dpi Mode de sortie](CodeSystem-DpiModeOut.md)
* [DPI Type de séjour](CodeSystem-DpiEncounterType.md)
* [Mode d'entré du PMSI MCO](CodeSystem-PMSIMCOMDE.md)
* [Mode de sortie du PMSI MCO](CodeSystem-PMSIMCOMDS.md)
* [mode PMSI](CodeSystem-FrClaimMode.md)
* [Observational Medical Outcomes Partnership (OMOP)](CodeSystem-dm-omop-cdm-v20240229.md)
* [SNOMED CT Solor Extension Temporary](CodeSystem-SolorTemporary.md)
* [Sources susceptibles d'informer sur le statu vital des patients](CodeSystem-DeathSources.md)
* [Specialités médicales au sens de la Fédération des Spécialités Médicales (FSM)](CodeSystem-SpecialitesMedicalesFSM.md)
* [type de diagnostic du PMSI MCO](CodeSystem-PMSIMCODiagType.md)
* [Transforms EHR logical model data to FHIR Semantic Layer resources using Bundle as container](StructureMap-EHR2FSL.md)
* [Transforms QuestionnaireResponse based on Questionnaire Usage Variables socles into FHIR resources conforming to DM profiles](StructureMap-Q2FSL.md)
* [Alignement de l''expression de besoin vers le modèle physique du DPI dans le cadre de l''usage Core](StructureMap-CoreBusiness2Physical.md)
* [Cette ressource présente les spécifications de l''alignement entre les ressources FHIR vers les tables correspodantes du CDM OMOP.](StructureMap-CoreFHIR2OMOP.md)
* [Mapping FHIR Patient resource to OMOP Death](StructureMap-CoreFHIR2OMOPDeath.md)
* [Mapping Patient resource to Location OMOP Domain](StructureMap-CoreFHIR2OMOPLocation.md)
* [Mapping Observation laboratory resources to Measurement OMOP Domain](StructureMap-CoreFHIR2OMOPMeasurement.md)
* [Mapping FHIR Patient resource to OMOP Person](StructureMap-CoreFHIR2OMOPPerson.md)
* [Cette ressource présente les spécifications de l''alignement entre la ressource `Patient` vers les tables correspodantes du CDM OMOP.](StructureMap-CoreFHIRPatient2OMOP.md)
* [Alignement de l''usage Core du modèle physique du DPI vers les ressources FHIR](StructureMap-CorePhysical2FHIR.md)
* [Mapping simple Observation laboratory resources to Measurement OMOP Domain](StructureMap-CoreSimpleObservation2OMOPMeasurement.md)
* [DPI (local) Gender to HL7 Gender](ConceptMap-dpi-gender-2-hl7-gender.md)
* [DPI Encounter type to Semantic layer](ConceptMap-dpi-encounter-type-2-semantic-layer-encounter-class.md)
* [HL7 Gender to OHDSI Gender](ConceptMap-hl7-gender-to-ohdsi-gender.md)
* [Administration d'albumine de Madame Blanc](MedicationAdministration-albumine-j1-cas-9.md)
* [Administration à J1 de furosemide de Madame Blanc](MedicationAdministration-furosemide-j1-cas-9.md)
* [Administration à J1 de spironolactone de Madame Blanc](MedicationAdministration-spironolactone-j1-cas-9.md)
* [Administration à J2 de furosemide de Madame Blanc](MedicationAdministration-furosemide-j2-cas-9.md)
* [Administration à J2 de spironolactone de Madame Blanc](MedicationAdministration-spironolactone-j2-cas-9.md)
* [ALAT de Madame Blanc](Observation-alat-cas-9.md)
* [Albumine](Medication-albumine.md)
* [ASAT de Madame Blanc](Observation-asat-cas-9.md)
* [Ascite de Madame Blanc](Condition-ascite-cas-9.md)
* [Bilirubine totale de Madame Blanc](Observation-bilirubine-totale-cas-9.md)
* [Cirrhose de Madame Blanc](Condition-cirrhose-cas-9.md)
* [Consommation d'alcool de Madame Blanc](Observation-alcool-cas-9.md)
* [de Madame Blanc](Patient-cas-9.md)
* [Exemple complet (FSL)](Bundle-df9c9a9c-854b-46f4-9687-1fbe40c06540.md)
* [Exemple simple](QuestionnaireResponse-test-usage-core.md)
* [Fibroscopie oeso-gastroduodénale de Madame Blanc](Procedure-fogd-cas-9.md)
* [Furosémide](Medication-furosemide.md)
* [GGT de Madame Blanc](Observation-ggt-cas-9.md)
* [Patient 1 - Madame Dupont](QuestionnaireResponse-cas-1-usage-core.md)
* [Patient 10 - Monsieur David](QuestionnaireResponse-cas-10-usage-core.md)
* [Patient 11 - Madame Doré](QuestionnaireResponse-cas-11-usage-core.md)
* [Patient 2 - Monsieur Martin](QuestionnaireResponse-cas-2-usage-core.md)
* [Patient 3 - Madame Leroy](QuestionnaireResponse-cas-3-usage-core.md)
* [Patient 4 - Monsieur Moreau](QuestionnaireResponse-cas-4-usage-core.md)
* [Patient 5 - Madame Simon](QuestionnaireResponse-cas-5-usage-core.md)
* [Patient 6 - Monsieur Petit](QuestionnaireResponse-cas-6-usage-core.md)
* [Patient 7 - Madame Garcia](QuestionnaireResponse-cas-7-usage-core.md)
* [Patient 8 - Monsieur Roux](QuestionnaireResponse-cas-8-usage-core.md)
* [Patient 9 - Madame Blanc](QuestionnaireResponse-cas-9-usage-core.md)
* [Patient test (Bundle)](Bundle-5616f9ad-61b0-4279-9f41-777228d04665.md)
* [Patient test (Ressource)](Patient-8f005d60-b59b-47f7-b04a-f877378f8d68.md)
* [Phosphatases alcalines de Madame Blanc](Observation-phosphatases-alcalines-cas-9.md)
* [Poids de Madame Blanc](Observation-poids-cas-9.md)
* [Ponction évacuatrice de Madame Blanc](Procedure-ponction-cas-9.md)
* [Prescription d'albumine de Madame Blanc](MedicationRequest-albumine-cas-9.md)
* [Prescription de furosémide de Madame Blanc](MedicationRequest-furosemide-cas-9.md)
* [Prescription de furosémide de Madame Blanc](MedicationRequest-spironolactone-cas-9.md)
* [Spironolactone](Medication-spironolactone.md)
* [Séjour de Madame Blanc](Encounter-sejour-cas-9.md)
* [Taux de prothrombine de Madame Blanc](Observation-tp-cas-9.md)
* [Test simple](Bundle-2abf7f4c-bd1f-431f-a4c8-667cfa425baf.md)
* [Exigences des variables socles pour les Entrepôts de Données de Santé Hospitalier (EDSH)](DocumentReference-CoreExigences.md)

Data Management with FHIR
0.1.0 - ci-build

## Raw layer

### Vue d'ensemble

Cette documentation décrit le schéma de base de données PostgreSQL optimisé pour le stockage des variables du socle EDSH (Entrepôt de Données de Santé en répartition), généré à partir du questionnaire FHIR `Questionnaire-UsageCore.json`.

Le schéma implémente une architecture relationnelle normalisée permettant de stocker l'ensemble des données de santé core définies dans le questionnaire FHIR, avec un focus sur l'interopérabilité et les performances d'interrogation.

#### Architecture générale

Le schéma comprend **11 tables principales** organisées autour de l'entité centrale `patient` :

* **patient** : Données démographiques et identité
* **patient_adresse** : Informations de géolocalisation
* **donnees_pmsi** : Données de séjours et prises en charge (table de liaison centrale)
* **diagnostics** : Codes diagnostiques CIM-10
* **actes** : Actes médicaux et procédures CCAM
* **biologie** : Résultats d'examens biologiques consolidés
* **prescription** : Prescriptions médicamenteuses
* **administration** : Administrations médicamenteuses réelles
* **posologie** : Détails de posologie
* **dossier_soins** : Observations et mesures cliniques
* **style_vie** : Facteurs de mode de vie

-------

#### Schéma Entité/Relation

### Documentation des Tables

#### Table patient

**Description** : Table consolidée des informations démographiques et d'identité patient, combinant les éléments d'identité (linkId: 2958000860428) et de géocodage (linkId: 5491974639955) du questionnaire FHIR.

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 patient_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique du patient |
| nom | VARCHAR(255) | - | - | Nom patient (linkId: 8605698058770) |
| prenom | VARCHAR(255) | - | - | Prénom patient (linkId: 6214879623503) |
| nir | VARCHAR(15) | CHECK format | - | Numéro inscription au Répertoire - NIR (linkId: 5711960356160) |
| ins | VARCHAR(50) | - | - | Identité Nationale de Santé - INS (linkId: 3764723550987) |
| date_naissance | DATE | CHECK validité | - | Date de naissance (linkId: 5036133558154) |
| sexe | VARCHAR(20) | CHECK ('h', 'f') | - | Sexe consolidé depuis PMSI (linkId: 3894630481120) |
| date_deces | DATE | CHECK cohérence | - | Date de décès (linkId: 5633552097315) |
| source_deces | VARCHAR(50) | - | - | Source de la date de décès (linkId: 9098810065693) |
| rang_gemellaire | INTEGER | CHECK (1-10) | - | Rang gémellaire du bénéficiaire (linkId: 6931296968515) |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index principaux** :

* `idx_patient_nir` : Index sur NIR (WHERE nir IS NOT NULL)
* `idx_patient_ins` : Index sur INS (WHERE ins IS NOT NULL)
* `idx_patient_nom_prenom` : Index composé nom/prénom
* `idx_patient_date_naissance` : Index sur date de naissance
* `idx_patient_search` : Index GIN pour recherche textuelle française
* `idx_patient_nir_hash` : Index de hachage pour recherche exacte NIR
* `idx_patient_ins_hash` : Index de hachage pour recherche exacte INS

-------

#### Table patient_adresse

**Description** : Informations de géolocalisation et adressage patient (linkId: 5491974639955).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 patient_adresse_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique de l'adresse |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| latitude | DECIMAL(10,7) | CHECK (-90 à 90) | - | Latitude du domicile patient (linkId: 3709843054556) |
| longitude | DECIMAL(10,7) | CHECK (-180 à 180) | - | Longitude du domicile patient (linkId: 7651448032665) |
| code_iris | VARCHAR(20) | - | - | Code IRIS du lieu de résidence |
| libelle_iris | VARCHAR(200) | - | - | Libellé IRIS du lieu de résidence |
| code_geographique_residence | VARCHAR(10) | - | - | Code géographique de résidence |
| libelle_geographique_residence | VARCHAR(200) | - | - | Libellé géographique de résidence |
| date_recueil | DATE | - | - | Date de recueil de l'information |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index spécialisés** :

* `idx_patient_coords_gist` : Index spatial GIST pour les coordonnées géographiques
* `idx_patient_adresse_iris` : Index sur code IRIS
* `idx_patient_adresse_date` : Index composé patient/date de recueil

-------

#### Table donnees_pmsi

**Description** : Table centrale des données de séjour PMSI (Programme de médicalisation des systèmes d'information) - point de liaison pour toutes les données cliniques (linkId: 2825244231605).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 pmsi_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique du séjour PMSI |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| mode_sortie | VARCHAR(100) | - | - | Mode de sortie du séjour |
| age_admission | INTEGER | CHECK (0-150) | - | Âge à l'admission (nécessaire si pas de date de naissance) |
| date_debut_sejour | DATE | - | - | Date de début du séjour |
| date_fin_sejour | DATE | CHECK cohérence dates | - | Date de fin du séjour |
| mode_entree | VARCHAR(100) | - | - | Mode d'entrée dans l'établissement |
| etablissement | VARCHAR(255) | - | - | Établissement de soins |
| service | VARCHAR(255) | - | - | Service médical |
| unite_fonctionnelle | VARCHAR(255) | - | - | Unité fonctionnelle |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index de performance** :

* `idx_pmsi_patient_id` : Index sur patient_id
* `idx_pmsi_date_debut` : Index sur date de début de séjour
* `idx_pmsi_date_fin` : Index sur date de fin de séjour
* `idx_pmsi_etablissement` : Index sur établissement
* `idx_pmsi_patient_date` : Index composé patient/date de début
* `idx_pmsi_covering` : Index couvrant avec INCLUDE
* `idx_pmsi_duree_sejour` : Index calculé sur la durée de séjour

-------

#### Table diagnostics

**Description** : Codes diagnostiques et informations liées aux séjours utilisant les classifications CIM-10 (linkId: 9391816419630).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 diagnostic_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique du diagnostic |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| 🔗 pmsi_id | BIGINT | NOT NULL, FK | - | Référence vers séjour PMSI |
| code_diagnostic | VARCHAR(20) | NOT NULL, CHECK longueur | - | Code diagnostic CIM-10 |
| type_diagnostic | VARCHAR(50) | - | - | Type de diagnostic (principal, associé, etc.) |
| libelle_diagnostic | TEXT | - | - | Libellé descriptif du diagnostic |
| date_recueil | DATE | CHECK ≤ CURRENT_DATE | - | Date de recueil de l'information |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index de recherche** :

* `idx_diagnostics_pmsi_id` : Index sur pmsi_id
* `idx_diagnostics_code` : Index sur code diagnostic
* `idx_diagnostics_type` : Index sur type de diagnostic
* `idx_diagnostics_pmsi_code` : Index composé pmsi/code
* `idx_diagnostics_patient_code` : Index composé patient/code/date

-------

#### Table actes

**Description** : Actes médicaux et procédures réalisés durant les séjours utilisant les classifications CCAM et autres standards (linkId: 591926901726).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 acte_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique de l'acte |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| 🔗 pmsi_id | BIGINT | NOT NULL, FK | - | Référence vers séjour PMSI |
| code_acte | VARCHAR(20) | NOT NULL, CHECK longueur | - | Code de l'acte médical (CCAM, etc.) |
| libelle_acte | TEXT | - | - | Libellé descriptif de l'acte |
| date_acte | TIMESTAMP | CHECK ≤ CURRENT_TIMESTAMP | - | Date et heure de réalisation de l'acte |
| executant | VARCHAR(255) | - | - | Professionnel exécutant (non prévu dans le socle) |
| date_recueil | DATE | CHECK ≤ CURRENT_DATE | - | Date de recueil de l'information |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index optimisés** :

* `idx_actes_pmsi_id` : Index sur pmsi_id
* `idx_actes_code` : Index sur code d'acte
* `idx_actes_date` : Index sur date d'acte
* `idx_actes_date_recueil` : Index sur date de recueil
* `idx_actes_pmsi_code` : Index composé pmsi/code
* `idx_actes_patient_code` : Index composé patient/code/date

-------

#### Table biologie

**Description** : Table consolidée des résultats d'examens biologiques, différenciés par codes LOINC et types d'examens incluant fonction rénale, bilan hépatique, hémogramme et autres tests (linkId: 7702944131447).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 biologie_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique du résultat biologique |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| code_loinc | VARCHAR(20) | - | - | Code LOINC identifiant le test biologique |
| libelle_test | VARCHAR(255) | - | - | Libellé descriptif du test |
| type_examen | VARCHAR(100) | CHECK types valides | - | Type examen: fonction_renale, bilan_hepatique, hemogramme, autres |
| valeur | DECIMAL(15,6) | CHECK ≥ 0 | - | Valeur numérique du résultat |
| unite | VARCHAR(50) | - | - | Unité de mesure |
| valeur_texte | TEXT | - | - | Valeur textuelle du résultat |
| date_prelevement | TIMESTAMP WITH TIME ZONE | CHECK ≤ CURRENT_TIMESTAMP | - | Date et heure du prélèvement |
| statut_validation | VARCHAR(50) | CHECK valeurs valides | - | Statut de validation (en_attente, valide, rejete, en_cours) |
| borne_inf_normale | DECIMAL(15,6) | CHECK cohérence bornes | - | Borne inférieure de normalité |
| borne_sup_normale | DECIMAL(15,6) | CHECK cohérence bornes | - | Borne supérieure de normalité |
| laboratoire | VARCHAR(255) | - | - | Laboratoire d'analyse (non prévu dans le socle) |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index spécialisés pour biologie** :

* `idx_biologie_patient_id` : Index sur patient_id
* `idx_biologie_code_loinc` : Index sur code LOINC
* `idx_biologie_type_examen` : Index sur type d'examen
* `idx_biologie_date_prelevement` : Index sur date de prélèvement
* `idx_biologie_statut_validation` : Index sur statut de validation
* `idx_biologie_patient_loinc` : Index composé patient/LOINC
* `idx_biologie_patient_type` : Index composé patient/type
* `idx_biologie_covering` : Index couvrant avec INCLUDE
* `idx_biologie_loinc_hash` : Index de hachage pour recherche exacte LOINC
* `idx_biologie_valeur_non_null` : Index partiel sur valeurs non nulles
* `idx_biologie_date_patient` : Index optimisé date/patient

-------

#### Table prescription

**Description** : Données de prescription médicamenteuse avec codage ATC pour la pharmacovigilance et la recherche clinique (linkId: 817801935685).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 prescription_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique de la prescription |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| prescripteur | VARCHAR(50) | - | - | Professionnel prescripteur |
| denomination | VARCHAR(255) | - | - | Dénomination du médicament |
| code_atc | VARCHAR(20) | - | - | Code ATC du médicament |
| voie_administration | VARCHAR(100) | - | - | Voie d'administration prévue |
| date_prescription | DATE | - | - | Date de la prescription (non prévu dans le socle) |
| date_debut_prescription | DATE | CHECK cohérence dates | - | Date de début de la prescription |
| date_fin_prescription | DATE | CHECK cohérence dates | - | Date de fin de la prescription |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index de prescription** :

* `idx_prescription_patient_id` : Index sur patient_id
* `idx_prescription_code_atc` : Index sur code ATC
* `idx_prescription_date_prescription` : Index sur date de prescription
* `idx_prescription_patient_atc` : Index composé patient/ATC
* `idx_prescription_covering` : Index couvrant avec INCLUDE
* `idx_prescription_atc_hash` : Index de hachage pour recherche exacte ATC
* `idx_prescription_active` : Index partiel sur prescriptions actives
* `idx_prescription_period` : Index sur période de prescription

-------

#### Table posologie

**Description** : Informations détaillées de posologie pour les médicaments (linkId: 6348237104421).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 posologie_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique de la posologie |
| 🔗 prescription_id | BIGINT | NOT NULL, FK | - | Référence vers prescription |
| nombre_prises_par_jour | INTEGER | CHECK (1-24) | - | Nombre de prises par jour |
| quantite | DECIMAL(10,3) | CHECK > 0 | - | Quantité par prise |
| unite_quantite | VARCHAR(20) | - | - | Unité de la quantité |
| date_heure_debut | TIMESTAMP | CHECK cohérence dates | - | Date et heure de début |
| date_heure_fin | TIMESTAMP | CHECK cohérence dates | - | Date et heure de fin |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

-------

#### Table administration

**Description** : Données d'exposition médicamenteuse avec codage ATC pour la pharmacovigilance et la recherche clinique, traçant les administrations réelles (linkId: 817801935685).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 administration_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique de l'administration |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| 🔗 prescription_id | BIGINT | FK | - | Référence vers prescription (optionnelle) |
| denomination | VARCHAR(255) | - | - | Dénomination du médicament administré |
| code_atc | VARCHAR(20) | - | - | Code ATC du médicament |
| voie_administration | VARCHAR(100) | - | - | Voie d'administration réelle |
| quantite | DECIMAL(10,3) | CHECK > 0 | - | Quantité administrée |
| unite_quantite | VARCHAR(20) | - | - | Unité de la quantité |
| date_heure_debut | TIMESTAMP | CHECK cohérence dates | - | Date et heure de début d'administration |
| date_heure_fin | TIMESTAMP | CHECK cohérence dates | - | Date et heure de fin d'administration |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index d'administration** :

* `idx_administration_patient_id` : Index sur patient_id
* `idx_administration_code_atc` : Index sur code ATC
* `idx_administration_denomination` : Index sur dénomination
* `idx_administration_date_heure_debut` : Index sur date de début
* `idx_administration_atc_hash` : Index de hachage pour recherche exacte ATC
* `idx_administration_timeline` : Index chronologique optimisé

-------

#### Table dossier_soins

**Description** : Mesures et observations cliniques incluant signes vitaux, mesures physiques et données de soins infirmiers (linkId: 305831246173).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 soin_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique de l'observation |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| code_loinc | VARCHAR(20) | - | - | Code LOINC de l'observation |
| libelle_test | VARCHAR(255) | - | - | Libellé de l'observation |
| valeur | DECIMAL(15,6) | CHECK ≥ 0 | - | Valeur numérique mesurée |
| unite | VARCHAR(50) | - | - | Unité de mesure |
| valeur_code | VARCHAR(50) | - | - | Valeur codée |
| valeur_texte | TEXT | - | - | Valeur textuelle |
| date_mesure | DATE | CHECK ≤ CURRENT_DATE | - | Date de la mesure |
| unite_soins | VARCHAR(255) | - | - | Unité de soins (non prévu dans le socle) |
| professionnel | VARCHAR(255) | - | - | Professionnel réalisant la mesure (non prévu dans le socle) |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

**Index de soins** :

* `idx_soins_patient_id` : Index sur patient_id
* `idx_soins_loinc` : Index sur code LOINC
* `idx_soins_date_mesure` : Index sur date de mesure
* `idx_dossier_soins_timeline` : Index chronologique optimisé

-------

#### Table style_vie

**Description** : Informations consolidées sur le mode de vie incluant tabac, alcool, drogues et activité physique (linkId: 1693164086678).

| | | | | |
| :--- | :--- | :--- | :--- | :--- |
| 🔑 style_vie_id | BIGSERIAL | PRIMARY KEY | - | Identifiant unique du style de vie |
| 🔗 patient_id | BIGINT | NOT NULL, FK | - | Référence vers patient |
| consommation_tabac | VARCHAR(100) | - | - | Information sur la consommation de tabac |
| consommation_alcool | VARCHAR(100) | - | - | Information sur la consommation d'alcool |
| consommation_autres_drogues | VARCHAR(100) | - | - | Information sur la consommation d'autres drogues |
| activite_physique | VARCHAR(100) | - | - | Information sur l'activité physique |
| date_recueil | DATE | CHECK ≤ CURRENT_DATE | - | Date de recueil de l'information |
| created_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de création |
| updated_at | TIMESTAMP WITH TIME ZONE | - | CURRENT_TIMESTAMP | Horodatage de dernière modification |

-------

### Matrice des Relations

| | | | | | |
| :--- | :--- | :--- | :--- | :--- | :--- |
| patient_adresse | patient_id | patient | patient_id | 1:N | CASCADE |
| donnees_pmsi | patient_id | patient | patient_id | 1:N | CASCADE |
| diagnostics | patient_id | patient | patient_id | 1:N | CASCADE |
| diagnostics | pmsi_id | donnees_pmsi | pmsi_id | 1:N | CASCADE |
| actes | patient_id | patient | patient_id | 1:N | CASCADE |
| actes | pmsi_id | donnees_pmsi | pmsi_id | 1:N | CASCADE |
| biologie | patient_id | patient | patient_id | 1:N | CASCADE |
| prescription | patient_id | patient | patient_id | 1:N | CASCADE |
| posologie | prescription_id | prescription | prescription_id | 1:N | CASCADE |
| administration | patient_id | patient | patient_id | 1:N | CASCADE |
| administration | prescription_id | prescription | prescription_id | 1:N | RESTRICT |
| dossier_soins | patient_id | patient | patient_id | 1:N | CASCADE |
| style_vie | patient_id | patient | patient_id | 1:N | CASCADE |

-------

### Règles Métier et Contraintes CHECK

#### Contraintes sur la table patient

* **`chk_patient_sexe`** : Le sexe doit être 'h' (homme) ou 'f' (femme)
* **`chk_patient_date_naissance`** : Date de naissance entre 1900-01-01 et la date courante
* **`chk_patient_date_deces`** : Date de décès postérieure à la date de naissance et ≤ date courante
* **`chk_patient_nir_format`** : Format NIR : 13 à 15 chiffres
* **`chk_patient_rang_gemellaire`** : Rang gémellaire entre 1 et 10

#### Contraintes sur la table patient_adresse

* **`chk_patient_latitude`** : Latitude entre -90 et 90 degrés
* **`chk_patient_longitude`** : Longitude entre -180 et 180 degrés

#### Contraintes sur la table donnees_pmsi

* **`chk_pmsi_dates`** : Date de fin de séjour ≥ date de début de séjour
* **`chk_pmsi_age_admission`** : Âge à l'admission entre 0 et 150 ans

#### Contraintes sur la table biologie

* **`chk_biologie_bornes`** : Borne supérieure ≥ borne inférieure
* **`chk_biologie_type_examen`** : Type d'examen parmi 'fonction_renale', 'bilan_hepatique', 'hemogramme', 'autres'
* **`chk_biologie_valeur_positive`** : Valeur ≥ 0
* **`chk_biologie_date_prelevement`** : Date de prélèvement ≤ timestamp actuel
* **`chk_biologie_statut_validation`** : Statut parmi 'en_attente', 'valide', 'rejete', 'en_cours'

#### Contraintes sur les médicaments (prescription, administration, posologie)

* **`chk_prescription_dates`** : Date de fin ≥ date de début de prescription
* **`chk_administration_dates`** : Date/heure de fin ≥ date/heure de début
* **`chk_administration_quantite`** : Quantité > 0
* **`chk_posologie_prises_jour`** : Nombre de prises par jour entre 1 et 24
* **`chk_posologie_quantite`** : Quantité > 0
* **`chk_posologie_dates`** : Date/heure de fin ≥ date/heure de début

#### Contraintes sur les soins et lifestyle

* **`chk_soins_valeur_positive`** : Valeur mesurée ≥ 0
* **`chk_soins_date_mesure`** : Date de mesure ≤ date courante
* **`chk_style_vie_date_recueil`** : Date de recueil ≤ date courante

#### Contraintes sur les données cliniques

* **`chk_diagnostics_code_format`** : Code diagnostic entre 3 et 20 caractères
* **`chk_diagnostics_date_recueil`** : Date de recueil ≤ date courante
* **`chk_actes_code_format`** : Code acte entre 4 et 20 caractères
* **`chk_actes_date_acte`** : Date d'acte ≤ timestamp actuel
* **`chk_actes_date_recueil`** : Date de recueil ≤ date courante

-------

**Documentation générée automatiquement à partir du script DDL PostgreSQL pour les variables du socle EDSH**

