Fiche pratique - RCP
Nom technique : rcp
📥 Télécharger un modèle de CSV
Vocation
Section intitulée « Vocation »Le signalement RCP enregistre les comptes rendus de Réunion de Concertation Pluridisciplinaire : la décision thérapeutique arbitrée collégialement par des cancérologues pour un cas de cancer. C’est en principe la source de plus haute qualité (cas codé par des spécialistes, CIM-O-3 natives, TNM clinique), mais en pratique souvent pauvrement codée : au mieux identité + topographie.
Format canonique d’import
Section intitulée « Format canonique d’import »Une ligne = une fiche RCP.
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.
Colonnes packées (tumors, participants) : entrées multiples séparées par |, et à l’intérieur de chaque entrée les attributs séparés par : (tuple positionnel). Le SI éclate ces deux colonnes vers les tables filles.
| Colonne (csvKey) | Libellé | Format attendu | Obligatoire | Nature |
|---|---|---|---|---|
source_rcp_id | Identifiant RCP (source) | code (majuscules, points/espaces retirés) | - | métadonnée RCP |
session_id | Identifiant session | code | - | métadonnée RCP |
rcp_date | Date de la RCP | date (JJ/MM/AAAA ou AAAA-MM-JJ) | oui | pivot temporel |
cancer_phase | Phase du cancer | enum - initial / relapse / unknown | - | métadonnée RCP |
quorum_reached | Quorum atteint | oui/non (true/1/o… acceptés) | - | métadonnée RCP |
document_status | Statut du document | enum - in_progress / completed / validated | - | métadonnée RCP |
discovery_mode | Mode de découverte | enum - screening / clinical / unknown | - | métadonnée RCP |
rcp_speciality | Spécialité / type de RCP | texte (ex. digestif, pneumologie, onco-hematologie) | - | métadonnée RCP |
rcp_location | Lieu de la RCP | texte (libellé seul) | - | métadonnée RCP |
cda_version | Version CDA | texte (ex. 2025.01) | - | métadonnée RCP |
care_plan_decision | Décision / plan de soins | valeur packée (texte libre, conservé brut) | - | texte libre |
clinical_context | Contexte clinique | valeur packée (texte libre, conservé brut) | - | texte libre |
tumors | Tumeurs | valeur packée → table fille. Entrées |, attributs : (voir packing ci-dessous) | - | tumeurs (1:N) |
participants | Participants | valeur packée → table fille. Entrées |, attributs : (voir packing ci-dessous) | - | participants (1:N) |
patient_last_name | Nom | texte | oui | identité patient |
patient_first_name | Prénom | texte | - | identité patient |
patient_birth_name | Nom naissance | texte | - | identité patient |
patient_birth_date | Date naissance | date (JJ/MM/AAAA ou AAAA-MM-JJ) | - | identité patient |
patient_sex | Sexe | texte (F / M) | - | identité patient |
patient_ipp | IPP | texte (identifiant patient côté établissement organisateur) | - | identité patient |
patient_secu | N° Sécu (NIR) | NIR (seuls les 10 premiers chiffres conservés) - alias d’en-tête NIR | - | identité patient |
patient_address | Adresse | texte | - | adresse patient |
patient_postal_code | Code postal | code postal (zéros de tête restaurés, ex. 1000 → 01000) | - | adresse patient |
patient_city | Ville | texte | - | adresse patient |
patient_birth_commune | Commune de naissance | texte - alias Commune naissance | - | lieu de naissance |
patient_birth_postal_code | Code postal de naissance | code postal - alias CP naissance | - | lieu de naissance |
patient_birth_insee_code | Code INSEE de naissance | texte - alias Code INSEE naissance | - | lieu de naissance |
finess_organisateur | FINESS organisateur | code | - | structure source |
rrc_label | Réseau Régional de Cancérologie | texte | - | structure source |
prescriber_name | Prescripteur (médecin demandeur/référent) | texte | - | prescripteur |
prescriber_address | Adresse prescripteur | texte | - | prescripteur |
prescriber_postal_code | CP prescripteur | code postal | - | prescripteur |
prescriber_city | Ville prescripteur | texte | - | prescripteur |
prescriber_rpps | RPPS prescripteur | code | - | prescripteur |
can_create_patient | Peut créer un patient | oui/non | - | contrôle d’import |
can_create_tumor | Peut créer une tumeur | oui/non | - | contrôle d’import |
excluded | Exclu | entier (0/vide = non exclu ; 1 = motif par défaut ; ≥2 = motif du registre) | - | contrôle d’import |
Packing tumors (entrées séparées par |, attributs positionnels séparés par :) :
topo:morpho:laterality:cT:cN:cM:stage:role
topo= topographie CIM-O-3 (codée CIM-10 chapitre II par le CDA),morpho= morphologie CIM-O (ex.8140/3),laterality=left/right/bilateral/midline/unknown,cT/cN/cM= TNM clinique (UICC v7),stage= stade synthétique,role=primary/metastasis/other_primary.- Attributs vides admis :
C787:8140/3:unknown:::M1::metastasis(laisser le champ vide entre les:).
Packing participants (entrées séparées par |, attributs positionnels séparés par :) :
name:rpps:speciality:role:in_quorum
role=coordinator/requester/presenter/treating_physician/correspondent/participant,in_quorum=true/false(compte dans le quorum INCa).
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 »Objectif : transformer l’extraction tabulaire du CDA CANCER-FRCP (ou une saisie manuelle) en une ligne canonique par fiche RCP.
- Une ligne par fiche RCP. Si la source liste plusieurs tumeurs ou plusieurs participants, ne dupliquez pas la ligne : packez-les dans
tumors/participants. - Dates (
rcp_date,patient_birth_date) : formatJJ/MM/AAAAouAAAA-MM-JJuniquement.rcp_dateest obligatoire. - 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. - Packer les tumeurs dans
tumorsselontopo:morpho:laterality:cT:cN:cM:stage:role, entrées séparées par|. Conservez la primitive enprimary; les métastases/autres primitives enmetastasis/other_primary. Un attribut que vous ne renseignez pas se laisse vide, en gardant les:. - Packer les participants dans
participantsselonname:rpps:speciality:role:in_quorum. Renseignezin_quorum=truepour les spécialités qui comptent au quorum INCa (≥ 3 spécialités), etquorum_reached(au niveau fiche) pour indiquer si le quorum est atteint. Les deux sont fournis, pas calculés. - Conserver le code source : gardez à la fois le CIM-10 d’origine (traçabilité) et le CIM-O-3 - pas de transcodage à faire de votre côté, le SI valide sans rejeter.
- Textes libres (
care_plan_decision,clinical_context) : concaténez le compte rendu / histoire de la maladie / questions / plan de soins. Optionnels (l’ARC ouvre le PDF de toute façon). Encadrez de guillemets si le texte contient;,,ou un retour ligne. - Structure organisatrice :
finess_organisateur= 3C ou établissement organisateur ;rrc_label= le RRC parent. La structure n’est pas identifiée par FINESS de façon fiable ; le FINESS est conservé à titre indicatif (traçabilité). - Amendement : ne réécrasez jamais une fiche. Une fiche amendée est une nouvelle ligne (voir Points d’attention).
Pièges de format à éviter : un séparateur | ou : à l’intérieur d’un texte libre non encadré de guillemets casse le packing ; ne supprimez pas les : vides d’un attribut manquant.
Comportement par défaut à l’import
Section intitulée « Comportement par défaut à l’import »Valeurs par défaut RCP : can_create_patient = false et can_create_tumor = false. La RCP est donc en rattachement seul : à l’import, le SI ne crée ni patient ni tumeur automatiquement. Raison métier : la fiche RCP arrive en aval du parcours et doit se rattacher à un patient/une tumeur déjà connus du registre ; la décision de créer revient à l’ARC, pas à l’import.
Surcharge par ligne : renseignez can_create_patient / can_create_tumor à oui (ou 1/true/o/x) pour autoriser la création sur cette ligne précise, non pour la refuser explicitement. Une cellule vide laisse le défaut RCP (false).
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 (chaque fiche RCP) en trois temps :
- Validation - champs obligatoires (
rcp_date,patient_last_name) et formats. Une ligne invalide est rejetée, motif affiché dans l’aperçu ; un code topo/morpho inconnu lève un simple avertissement, jamais un rejet. - Mise en qualité - il éclate les tumeurs et les participants vers leurs tables filles, conserve les codes CIM-O-3 tels quels (pas de transcodage) et calcule les groupes (Berg, IARC) à partir de topographie + morphologie.
- Enregistrement - les lignes valides deviennent des signalements, avec leurs tables filles (tumeurs, participants).
Le rapprochement avec un patient (identito-vigilance) ne se déclenche pas automatiquement pour la RCP : l’identité créée à l’import reste orpheline en attendant un rattachement ultérieur. Rien à préparer pour ça dans le CSV.
Spécificités
Section intitulée « Spécificités »- Deux tables filles :
report_rcp_tumors(1:N, alimentée partumors) etreport_rcp_participants(1:N, alimentée parparticipants). Le SI éclate les colonnes packées. - Pas de transcodage, aucune ligne rejetée pour un code : topo et morpho sont validées contre les référentiels (un code inconnu génère un avertissement, jamais un rejet) ;
berg_group/topo_iarcsont calculés depuis topo + morpho. - Déduplication : clé =
structure + source_rcp_id + session_idsisource_rcp_idprésent, sinonstructure + patient_ipp + rcp_date + topo. Pas d’upsert : un CR ré-envoyé à l’identique est ignoré (skip). - Amendement chaîné : une fiche amendée est une nouvelle entrée rattachée à la précédente via
amends_report_rcp_id(préserve l’historique médical) - jamais un écrasement. - Doubles codages conservés :
cim10_code(source) ETcimo3_topo_code/cimo3_morpho_codesont stockés.
Points d’attention
Section intitulée « Points d’attention »- Seul rejet de ligne :
rcp_dateabsente ou mal formatée, oupatient_last_namevide (les deux seuls champs obligatoires). Une date dans un format non reconnu est lue comme vide → rejet. - Fiche à tumeur peu codée : pas d’erreur ; la tumeur de la fiche est conservée avec la seule topographie (morphologie/TNM vides). Renseignez au moins
topoquand vous le pouvez. - TNM quasi toujours vide en réel : ne bloquez pas la prep dessus ; packez les
:vides. - Rattachement seul (voir Comportement par défaut à l’import) : sans surcharge, aucun patient ni tumeur n’est créé.
- Ré-import à l’identique = skip silencieux (dédup, pas d’upsert). Pour corriger une fiche, passez par un amendement (nouvelle ligne chaînée), pas par un ré-envoi modifié espérant un écrasement.
- Packing fragile : un
|ou:dans un texte libre non encadré de guillemets décale tous les attributs du tuple ; un attribut manquant sans son:décale le reste. Vérifiez le nombre de:par entrée (7 pourtumors, 4 pourparticipants).