Fiche pratique - Signalement générique
Nom technique : generic
📥 Télécharger un modèle de CSV
Vocation
Section intitulée « Vocation »Le type générique est la catégorie de repli du SI Registres : il enregistre une donnée en périmètre du registre qui ne rentre dans aucune catégorie établie (ACP, PMSI, ALD, RCP, dépistage). Chaque ligne porte un source_label libre qui joue le rôle de sous-type. Sa vocation est de capter une donnée qui serait sinon perdue, en restant très souple sur le contenu : seuls le nom et la date de naissance sont exigés.
Format canonique d’import
Section intitulée « Format canonique d’import »Une ligne = un signalement (un document ou un cas).
Séparateur de colonnes ; recommandé (, également auto-détecté) ; entourez de guillemets "…" toute cellule contenant le séparateur ou un retour ligne. En-têtes en snake_case, identiques aux csvKey du tableau ci-dessous et dans l’ordre du manifeste. Toutes les colonnes sont des champs fournis par le data manager, sauf les trois contrôles d’import (can_create_patient, can_create_tumor, excluded) en fin de tableau.
Colonne (csvKey) | Libellé | Format attendu | Obligatoire | Nature |
|---|---|---|---|---|
patient_last_name | Nom | texte | oui | fourni |
patient_first_name | Prénom | texte | - | fourni |
patient_birth_name | Nom naissance | texte | - | fourni |
patient_birth_date | Date naissance | date (JJ/MM/AAAA ou AAAA-MM-JJ) | oui | fourni |
patient_sex | Sexe | texte (M ou F) | - | fourni |
patient_nip | Identifiant patient (NIP/IPP) | texte | - | fourni |
patient_secu | N° Sécu (NIR) | NIR (seuls les 10 premiers chiffres conservés) | - | fourni |
patient_address | Adresse | texte | - | fourni |
patient_postal_code | Code postal | code postal (zéros de tête restaurés) | - | fourni |
patient_city | Ville | texte | - | fourni |
patient_birth_commune | Commune de naissance | texte | - | fourni |
patient_birth_postal_code | Code postal de naissance | code postal (zéros de tête restaurés) | - | fourni |
patient_birth_insee_code | Code INSEE de naissance | texte (5 caractères) | - | fourni |
finess | FINESS | code (majuscules, points/espaces retirés) | - | fourni |
prescriber_name | Prescripteur | texte (médecin ou structure) | - | fourni |
prescriber_address | Adresse prescripteur | texte | - | fourni |
prescriber_postal_code | CP prescripteur | code postal (zéros de tête restaurés) | - | fourni |
prescriber_city | Ville prescripteur | texte | - | fourni |
prescriber_rpps | RPPS prescripteur | code (majuscules, points/espaces retirés) | - | fourni |
cimo3_topo_code | Code CIM-O-3 topographie | code (ex. C504) - saisi tel quel, jamais transcodé | - | fourni |
cimo3_morpho_code | Code CIM-O-3 morphologie | code (ex. 8500/3) - saisi tel quel, jamais transcodé | - | fourni |
report_date | Date du document | date (JJ/MM/AAAA ou AAAA-MM-JJ) | - | fourni |
cr_content | Compte rendu | valeur brute (texte libre, conservé tel quel) | - | fourni |
can_create_patient | Peut créer un patient | oui/non (1/0, vrai/faux, x acceptés) | - | contrôle |
can_create_tumor | Peut créer une tumeur | oui/non (1/0, vrai/faux, x acceptés) | - | contrôle |
excluded | Exclu | entier (0/vide, 1, ou ≥ 2 = motif registre) | - | contrôle |
Télécharger un modèle de CSV au format attendu
Préparer son CSV à partir de la source brute
Section intitulée « Préparer son CSV à partir de la source brute »Le travail du data manager consiste à aplatir SA source vers les colonnes ci-dessus. Check-list :
- Une source = un import = un
source_label. Si vous mélangez plusieurs origines (mésothéliome + biomol), faites plusieurs imports : lesource_labelest saisi une fois dans l’interface et s’applique à tout le fichier. Choisissez un libellé stable et parlant, c’est lui qui servira de sous-type pour les filtres ultérieurs. - Garantir les deux obligatoires. Chaque ligne doit avoir
patient_last_nameETpatient_birth_datenon vides. - Normaliser les dates (
patient_birth_date,report_date) enJJ/MM/AAAAouAAAA-MM-JJ. Une date mal formée est lue comme vide → rejet si c’est la date de naissance. - NIR (
patient_secu) : le système ne conserve que les 10 premiers chiffres (garde-fou : espaces et caractères non numériques retirés, troncature à 10 chiffres). Inutile de le tronquer à la main. - CIM-O-3 - optionnel et brut. Un seul couple
cimo3_topo_code/cimo3_morpho_codepar ligne (topo typeC504, morpho type8500/3). Aucun transcodage côté SI : si votre source code en CIM-10 ou SNOMED, transcodez en CIM-O-3 EN AMONT. Si vous n’avez pas de code, laissez vide. - Plusieurs tumeurs = plusieurs lignes. Le type générique est mono-code : pour deux localisations sur le même patient, dupliquez la ligne identité et changez le couple topo/morpho. Ne tentez pas de packer plusieurs codes dans une cellule.
- Données non structurées dans
cr_content. Tout le texte libre va danscr_content, conservé tel quel. Encadrez de guillemets"…"toute cellule contenant un;. - FINESS par ligne (optionnel). Renseignez
finessquand la ligne provient d’un établissement précis et identifiable ; sinon laissez vide, la ligne prendra la structure choisie dans l’interface. - Dédoublonner EN AMONT. Il n’y a aucune déduplication à l’import : chaque ligne crée un signalement. Si votre source contient des doublons, nettoyez-les avant l’import (voir Spécificités et Points d’attention).
Comportement par défaut à l’import
Section intitulée « Comportement par défaut à l’import »Valeurs par défaut : can_create_patient = true et can_create_tumor = true. Le type générique n’est pas en « rattachement seul » : par défaut une ligne peut créer aussi bien le patient que la tumeur (une tumeur seulement si un code CIM-O-3 valide est présent). C’est cohérent avec sa vocation de captation : la donnée générique est souvent la seule trace d’un cas, il faut donc pouvoir matérialiser patient et tumeur, pas seulement rattacher à un existant.
Surcharge par ligne : mettez can_create_patient / can_create_tumor à non (ou 0/faux) pour interdire la création sur une ligne précise (ex. donnée trop incertaine, on veut seulement tenter un rattachement). Vide = on garde le défaut true.
Colonne excluded :
0ou vide = ligne non exclue ;1(ou une valeur vraie sans numéro :oui/x/true) = exclusion avec le motif par défaut (motif global n°1) ;≥ 2= motif spécifique du catalogue d’exclusion du registre. Un numéro inconnu du catalogue fait rejeter la ligne.
Ce que fait le système à l’import
Section intitulée « Ce que fait le système à l’import »Une fois votre fichier déposé, le système traite chaque ligne en trois temps :
- Validation - champs obligatoires (
patient_last_name,patient_birth_date) et formats de dates. Une ligne invalide est rejetée, motif affiché dans l’aperçu avant import. - Mise en qualité - très légère : les codes CIM-O-3 sont conservés tels quels (pas de transcodage, ni de groupes Berg/IARC, ni de code caractérisant). La validité d’un code n’est vérifiée qu’à la création de tumeur, pas à l’import.
- Enregistrement - les lignes valides deviennent des signalements (une ligne = un signalement, pas de déduplication).
Le rapprochement avec un patient (identito-vigilance) se fait ensuite, dans une étape séparée, sur l’identité créée à l’import : rien à préparer pour ça dans le CSV.
Spécificités
Section intitulée « Spécificités »- Aucune déduplication, aucun upsert : pas de
dedup_hashni desource_record_id. Réimporter le même fichier recrée des doublons. La maîtrise des doublons est entièrement à la charge du data manager, en amont. - CIM-O-3 sans transcodage ni dérivation : les codes sont stockés bruts. La validation des codes ne joue pas à l’import mais à la consommation (création de tumeur) : un code hors référentiel est conservé mais ne produira pas de tumeur.
source_label= sous-type : champ libre saisi dans l’interface, propre à chaque registre - d’où la non-comparabilité inter-registres.prescriber_namepolyvalent : un seul champ pour le médecin ou la structure prescriptrice.cr_content: champ texte libre pour les données non structurées.
Points d’attention
Section intitulée « Points d’attention »- Rejet de ligne : absence ou format invalide de
patient_last_nameoupatient_birth_date. Ce sont les seuls champs obligatoires - tout le reste, CIM-O-3 compris, peut être vide sans rejet. - Date au mauvais format = champ vide : une
patient_birth_datemal formatée est lue comme vide, donc la ligne est rejetée ; unereport_datemal formatée est juste perdue (silencieusement vide). - Code CIM-O-3 hors référentiel (coquille, code inconnu) : conservé à l’import, mais aucune tumeur n’est créée. Vérifiez vos codes en amont si vous voulez que la tumeur soit créée.
- Doublons silencieux : aucune protection. Un réimport ou des lignes redondantes créent autant de signalements. À nettoyer avant import.
source_labeln’est pas une colonne : ne l’ajoutez pas au CSV, il serait ignoré. Il se saisit dans l’interface et vaut pour tout le fichier - d’où un import par source.- Mono-code : packer plusieurs couples topo/morpho dans une cellule ne fonctionne pas ; il faut dupliquer la ligne. Tout caractère superflu dans un code (
8500 / 3) est nettoyé (points/espaces retirés, majuscules).