Brevet FR3163476A1 — publié le 20251219

Particulièrement destinée à la recherche biomédicale, l’invention concerne un procédé de traitement de données incluant : . une étape de collecte de données d’étude au sein d’une table d’étude ; . une étape de figeage du contenu de la table d’étude ; et . une étape de production de programmes (PREP, STAT, EXAM) aptes à traiter les données contenues dans la table d’étude. Le procédé selon l’invention inclut outre une étape de configuration des programmes de traitement (PREP, STAT, EXAM) visant à interdire à ces programmes de traitement (PREP, STAT, EXAM) d’interagir avec toute autre table d’étude que celle qui résulte de l’étape de figeage. Ainsi, grâce à l’invention, un traitement des données contenues dans la table d’étude ne pourra être réalisé au moyen des programmes de traitement (STAT, EXAM) qu’après que la table de données aura été définitivement figée. Référence : Figure 1 Procédé de traitement de données par série de produits programmes, procédé de production de produits programmes et programmes d’ordinateur associés La présente invention concerne un procédé de traitement de données incluant : Une étape de collecte de données d’étude au sein d’une table d’étude ; Une étape de figeage du contenu de la table d’étude ; et Une étape de production de programmes aptes à traiter les données contenues dans la table d’étude. La présente invention s’inscrit dans le domaine de l’informatique décisionnelle et plus particulièrement le domaine de la recherche biomédicale ; elle concerne des procédés et programmes d’encadrement à la validation et l’exploitation de données d’étude comme solutions préventives à des biais d’étude que peuvent induire un gel (figeage définitif) de données non décrété, aussi bien qu’une connaissance prématurée et/ou partielle de résultats d’étude. Si de nombreux logiciels de traitement de données sont aujourd’hui disponibles pour faciliter l’établissement de résultats d’étude, l’encadrement des démarches de traitement n’apparaît que de façon ponctuelle et l’état de la technique ne permet qu’un contrôle limité des étapes menant à l’exploitation des données. Ainsi, des biais d’information peuvent tout à fait s’immiscer dans la validation de données si un gel de données s’effectue après avoir eu connaissance de résultats d’étude ou si aucun gel de données n’est réellement décrété. En vue de remédier aux inconvénients énoncés ci-dessus, l’inventeur propose une solution alternative aux mécanismes connus de l’état de la technique. En effet, selon l’invention, un procédé conforme au paragraphe introductif inclut en outre une étape de configuration des programmes de traitement visant à interdire à ces programmes de traitement d’interagir avec toute autre table d’étude que celle qui résulte de l’étape de figeage. Ainsi, grâce à l’invention, un traitement des données contenues dans la table d’étude ne pourra être réalisé au moyen des programmes de traitement qu’après que la table de données aura été définitivement figée. Ces programmes de traitement utiliseront alors indifféremment toutes les données telles que figées, et toute modification ultérieure des données incluses dans la table de donnée due à un biais d’information, mais aussi à toute autre perturbation, sera inopérante car ignorée par les programmes de traitement tels que paramétrés à l’issue de l’étape de configuration. L’invention est ainsi remarquable en ce qu’elle prévoit une inhibition sélective des capacités de traitement des programmes, dont l’homme du métier essaye habituellement au contraire d’étendre le champ d’application. Selon un mode de réalisation particulier de l’invention, le procédé décrit ci-dessus inclut une étape de stockage, au sein d’une table de traçage, de chaque date à laquelle le contenu de la table d’étude a été modifié au cours de l’étape de collecte, la date de dernière modification de la table d’étude avant son figeage, dite date de référence, étant destinée à constituer un paramètre de configuration d’au moins un programme de traitement. Un tel mode de mise en réalisation permet, au moyen d’un unique paramètre constitué par la dernière date de modification de la table d’étude, de configurer les programmes de traitement de sorte qu’ils ne puissent interroger aucune table d’étude ayant pour dernière date de modification une date différente de ladite date de référence. Il convient ici de noter que, dans l’ensemble du présent document, la notion de date ne doit pas être comprise comme la seule identification d’un jour de l’année, mais comme une référence temporelle pouvant par exemple être exprimée en années, mois, jours, heures, minutes, secondes et/ou fractions de seconde et non. Dans d’autres modes de mise en œuvre de l’invention, la date de référence pourra être constituée par la date précise à laquelle la table d’étude aura été effectivement figée. Selon un mode de mise en œuvre avantageux de l’invention, un procédé tel que décrit plus haut inclut une étape de copie de la table d’étude à l’instigation du premier programme de traitement à interagir avec ladite table d’étude après l’étape de figeage. Dans ce mode de mise en œuvre de l’invention, le contenu de la table d’étude telle que figée est préservé de toute altération ultérieure qui pourrait résulter de son interaction avec les programmes de traitement, lesquels ont alors vocation à interagir avec la table résultant de la copie de la table figée, ladite copie résultant ainsi elle-même par transitivité de l’étape de figeage. Un autre but de l’invention est de permettre une conception des programmes de traitement selon un procédé permettant le pilotage de leur production par un prestataire indépendant du ou des clients destinés à mettre en œuvre ces programmes. A cet effet, l’invention a également pour objet un procédé de développement de programmes de traitement tels que décrits plus haut, caractérisé en ce qu’il inclut une étape de combinaison sur un fichier texte externe de fonctions de création/mise à jour d’au moins une table de traçage, d’une part, avec des paramètres constitués par les dates de référence des tables d’étude à figer et les mots de passe de protection de tables de traçage d’au moins une série de programmes de traitement à créer, d’autre part. Dans certains modes de réalisation : Le procédé de développement peut inclure une étape d’adaptation des instructions d’une série de programmes de traitement à créer en les combinant à des mots de passe de protection de données d’étude figées rendues disponibles à la consultation pour réguler la consultation de données d’étude ; Le procédé de développement peut inclure une étape de combinaison de fonctions de contrôle d’identité avec des identifiants de session propres à au moins un client afin de créer des produits programmes ne répondant qu’audit client ; Le procédé de développement peut comprendre une étape de génération de mot de passe aléatoire pour protéger les données de table de traçage et/ou les données d’étude figées rendues disponibles à la consultation ; Le procédé de développement peut comprendre des étapes d’accès aux dates de référence d’au moins une table d’étude à figer, d’accès à des identifiants de session propres à au moins un client, et de traçage de mot de passe de protection des données de table de traçage et/ou des données d’étude figées rendues disponibles à la consultation auprès de table dédiée au stockage de ces données pour assurer la production desdits programmes de traitement. Selon un mode de réalisation optionnel de l’invention, le code source des programmes de traitement définis plus haut est protégé par voie de cryptage. Ce mode de réalisation optionnel permet d’assurer que, une fois configurés pour ne plus pouvoir traiter que les données issues de la table d’étude telle que figée, les programmes de traitement ne puissent être ultérieurement reconfigurés pour pouvoir traiter des données issues d’une autre table de données dont l’intégrité n’est pas garantie. L’invention a enfin pour objet un produit programme d’ordinateur caractérisé en ce qu’il comporte des instructions qui, lorsqu’elles sont exécutées par un processeur, implémentent le procédé de traitement de données tel que défini précédemment ou le procédé de développement de programmes tel que défini précédemment. D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante d’un mode de mise en œuvre particulier, donné à titre d’exemple illustratif et non-limitatif, et au regard des dessins annexés, parmi lesquels : FIG. 1 illustre de façon schématique un mode de réalisation selon l’invention ; FIG. 2 illustre de façon schématique un modèle conceptuel des données du prestataire ; et FIG. 3 illustre de façon schématique une base de données relationnelle du prestataire. Dans les modes de réalisation décrits ci-après : Les programmes correspondent à des Macro-programmes de la version 4 du logiciel d’informatique décisionnelle « SAS® » (pour « Statistical Analysis Software », traduit par « Logiciel d’analyse statistique ») du « SAS® Analytics Pro Package » (traduit par « Progiciel d’analyse SAS® »). Une table correspond à une table « SAS® ». Un catalogue correspond à un fichier dans lequel sont enregistrés des programmes « SAS® » sous leur forme compilée. Une table d’étude consultable correspond à une version protégée par mot de passe de table d’étude gelée auprès du prestataire sur laquelle des droits d’exploitation de données ont été conférés au prestataire et à ses clients. Un utilisateur correspond à tout salarié, consultant, stagiaire ou sous-traitant d’un client du prestataire (parallèlement client de l’éditeur de logiciels « SAS® »), utilisant les produits programmes dans le cadre d’une recherche biomédicale. Les identifiants de session « SAS® » correspondent aux valeurs de Macro-variables automatiques &Syssite, &Syshostname et &Sysuserid des utilisateurs et représentent la référence du client, le nom d’ordinateur du client et le nom de compte d’ordinateur du client de l’éditeur de logiciels « SAS® », respectivement. Les éléments identiques ou similaires sont repérés par des signes de référence identiques sur l’ensemble des figures. Programmes informatiques à destination des clients A l’ouverture du catalogue par défaut appelé « sasmacr » par le logiciel « SAS® », des programmes PROG1 , PROG2 et PROG3 peuvent apparaître à l’utilisateur pour déployer des séries de programmes de traitement imbriqués selon trois groupes distincts de programmes consécutifs dans l’établissement de la validation, l’exploitation et la consultation de tables d’étude, respectivement. Une série de programmes de traitement PREP, mise à disposition par le programme PROG1 , est constituée de programmes paramétrables se complétant dans des étapes de correction de données, des étapes de création de variables supplémentaires venant identifier les données non disponibles/non applicables de tables d’étude et des instructions « ODS » (pour « Output Delivery System », traduit par « Système d’acheminement des résultats ») d’édition de résultats, permettant notamment l’établissement de dictionnaires de données (au format RTF ou PDF) de façon à préparer le gel de tables d’étude auprès du prestataire. Une série de programmes de traitement STAT, mise à disposition par le programme PROG2 , est constituée de programmes paramétrables se complétant dans des étapes de création de variables supplémentaires venant décrire les données d’étude et des instructions « ODS » d’édition de résultats, permettant à tous les utilisateurs ayant une même valeur de Macro-variable automatique &Syssite, c’est à dire ayant une même référence « SAS® » de client, de constituer des rapports statistiques publiables (au format RTF, PDF ou HTML) à partir d’une table d’étude gelée par le prestataire à la demande du client en question (ou à partir de plusieurs tables d’étude gelées par alternance). Une série de programmes de traitement EXAM, mise à disposition par le programme PROG3 , est constituée de programmes paramétrables se complétant dans des étapes de création de variables supplémentaires venant décrire les données d’étude et des instructions « ODS » d’édition de résultats, permettant à tous les utilisateurs ayant une même valeur de Macro-variable automatique &Syssite, c’est à dire ayant une même référence « SAS® » de client, d’examiner les tables d’étude gelées rendues consultables par d’autres clients, avec ou sans accès à leurs données brutes, via l’établissement de rapports (au format RTF ou PDF). Chaque série de programmes de traitement PREP, STAT ou VIEW, n’intervient qu’auprès d’une table d’étude dont l’un des programmes, après réalisation de l’intervention demandée, a automatiquement relayé la date et l’heure précise de dernière modification au sein d’une table T1, T2 ou T3 dite « de traçage » protégée par mot de passe, et dont la date précise de modification à considérer initialement a, soit été transmise au sein de ladite table T1 de traçage à l’exécution d’un programme initialisant une série PREP de validation de données, soit été intégrée dans le code source d’un programme initialisant une série STAT ou EXAM d’exploitation de données, à la demande du client, afin d’inclure une étape de gel desdites données d’étude et de dissociation des traitements de validation et des traitements d’exploitation, un produit programme de série PREP de validation de données stockant expressément la date et l’heure précise de dernière modification d’une table d’étude à geler au sein d’une table T1 de traçage transmissible au prestataire. A des fins illustratives, un aperçu d’utilisation de date et d’heure précise de modification de table figure en annexe de la description. Programmes à destination du prestataire A l’ouverture du catalogue par défaut appelé « sasmacr » par le logiciel « SAS® », des programmes PROG4 , PROG5 et PROG6 peuvent apparaître au prestataire pour produire des programmes de traitement PREP, STAT et EXAM à l’aide de mots clés enregistrés au sein d’un ensemble de tables T4 dites « de paramétrage ». Le programme PROG4 crée les programmes de traitement PREP sur un fichier texte externe via des instructions « %put » d’écriture, combine des fonctions de contrôle d’identité à écrire aux identifiants de session « SAS® » stockés en table T_UTI de paramétrage afin que ces programmes ne répondent qu’à des utilisateurs précis, combine des fonctions de création/mise à jour de table T1 de traçage à écrire aux mots de passe aléatoires qu’il génère afin de protéger ces dernières, et trace ces mots de passe dans ladite table T_UTI de paramétrage. Le programme PROG5 crée les programmes de traitement STAT sur un fichier texte externe via des instructions « %put » d’écriture, combine des fonctions de contrôle d’identité à écrire aux identifiants de session « SAS® » stockés en table T_UTI de paramétrage afin que ces programmes ne répondent qu’à des utilisateurs précis, combine des fonctions de création/mise à jour de table T2 de traçage à écrire aux dates/heures précises de modification des tables d’étude gelées stockées en table T_ETU de paramétrage afin que ces programmes ne répondent qu’aux tables d’étude gelées desdits utilisateurs, considère la façon dont ont été gelées les tables d’étude (si des droits d’exploitation sur la table d’étude ont été conférés ou non) afin d’octroyer des droits de création de fichier différents selon le cas via des Macro-instructions conditionnelles, génère des mots de passe aléatoires afin de protéger les tables T2 de traçage, et trace ces mots de passe dans ladite table T_UTI de paramétrage. Le programme PROG6 crée les programmes de traitement EXAM sur un fichier texte externe via des instructions « %put » d’écriture, combine des fonctions de contrôle d’identité à écrire aux identifiants de session « SAS® » stockés en tables T_UTI de paramétrage afin que ces programmes ne répondent qu’à des utilisateurs précis, combine des fonctions de création/mise à jour de table T3 de traçage à écrire aux dates/heures précises de modification des tables d’étude consultables stockées en table T_ETU de paramétrage afin que ces programmes ne répondent qu’aux tables d’étude consultables demandées par les clients, considère la façon dont sont consultables les données d’étude (date de concession de la table d’étude gelée correspondante, concession par droit de réutilisation ou par droit de consultation) afin d’octroyer des droits d’accès auxdites données différents selon le cas via des Macro-instructions conditionnelles, génère des mots de passe aléatoires afin de protéger les tables T3 de traçage, et trace ces mots de passe dans ladite table T_UTI de paramétrage. Les programmes PROG5 et PROG6 ayant la possibilité de joindre les tables T4 de paramétrage par leurs variables communes SYSSITE et CODETUD (décrites ci-après), pour lire/écrire lesdits mots clés. A des fins illustratives, un aperçu du procédé de création utilisé par les programmes PROG4 , PROG5 et PROG6 figure en Annexe de la description. Aussi, la table T_UTI de paramétrage recense les informations relatives au suivi des utilisateurs et aux potentielles tables d’étude demandées par les clients. Mise à jour périodiquement par le prestataire (notamment via les programmes PROG4 , PROG5 et PROG6 ), la table T_UTI comprend les variables : S YSSITE représentant la clé primaire composée de la table T_UTI et recensant la valeur de Macro-variable &Syssite des utilisateurs. S YSHOST représentant la clé primaire composée de la table T_UTI et recensant la valeur de Macro-variable &Syshostname des utilisateurs. S YSUSER représentant la clé primaire composée de la table T_UTI et recensant la valeur de Macro-variable &Sysuserid des utilisateurs. CODETUD recensant le numéro d’enregistrement ID-RCB ou EudraCT (pour « European Union Drug Regulating Authorities Clinical Trials Database », traduit par « Base européenne des essais cliniques de médicaments ») des études dont la table de données consultable est demandée par les clients (et représentant une clé étrangère). PWPREP recensant le mot de passe (généré par le programme PROG4 ) d’option « PW » (pour « Password », traduit par « Mot de passe ») des tables T1 de traçage de série PREP des utilisateurs. K EYPREP recensant le mot de passe (généré par le programme PROG4 ) d’option d’encryptage « AES » (pour « Advanced Encryption Standard », traduit par « Standard de chiffrement avancé ») des tables T1 de traçage de série PREP des utilisateurs. PWSTAT recensant le mot de passe (généré par le programme PROG5 ) d’option « PW » des tables T2 de traçage de série STAT des utilisateurs. KEYSTAT recensant le mot de passe (généré par le programme PROG5 ) d’option d’encryptage « AES » des tables T2 de traçage de série STAT des utilisateurs. PWEXAM recensant le mot de passe (généré par le programme PROG6 ) d’option « PW » des tables T3 de traçage de série EXAM des utilisateurs. KEYEXAM recensant le mot de passe (généré par le programme PROG6 ) d’option d’encryptage « AES » des tables T3 de traçage de série EXAM des utilisateurs. La table T_ETU de paramétrage recense les informations relatives aux tables d’étude gelées par le prestataire à la demande de ses clients et détermine la façon dont elles sont gelées/rendues disponibles à la consultation. Mise à jour à chaque nouveau gel (notamment grâce aux tables T1 de traçage transmises au prestataire), la table T_ETU comprend les variables : C ODETUD représentant la clé primaire de la table T_ETU et recensant le numéro d’enregistrement ID-RCB ou EudraCT des études dont la table de données est gelée. S YSSITE recensant la valeur de Macro-variable &Syssite des utilisateurs dont la table d’étude est gelée (et représentant une clé étrangère). D ATEGEL recensant la date de gel des tables d’étude. D ATEMAJ recensant les éléments de date et d’heure précise de modification des tables d’étude gelées. D ATECONS recensant s’il en existe la date de concession de droits des tables d’étude gelées. DATEMAJ2 recensant les éléments de date et d’heure précise de modification des tables d’étude consultables en série EXAM. PWETUD recensant le mot de passe d’option « PW » des tables d’étude consultables. KEYETUD recensant le mot de passe d’option d’encryptage « AES » des tables d’étude consultables. DR ACCES recensant le droit d’accès aux données brutes des tables d’étude consultables accordé aux utilisateurs. Annexe : Exemple de programme Ci-après, le programme %Exemple , crée un programme appelé % Produit , dont les instructions (masquées de leurs objets d’exécution automatique lors de la création) sont combinées à des valeurs de Macro-variables via des instructions « %put » d’écriture : %macro exemple(); /*La ligne de code suivante crée une table*/ data table; run; /*Les lignes de code suivantes récupèrent la date et l’heure précise de modification de la table créée au sein d'une macro-variable appelée "motcle"*/ data _NULL_; set sashelp.vtable; if libname="WORK" and memname="TABLE" then do; call symputx('motcle',put(modate,DATETIME16.),"l"); call symputx('instruction',mod(second(round(modate)),2),"l"); end; run; /*Les lignes de code suivantes créent un programme sur un fichier.sas*/ options nonotes; proc printto log="C:\Users\Utilisateur\Documents\fichier.sas"; run; %put %nrstr(%macro produit;); %if &instruction=1 %then %do; /*La ligne de code suivante assemble une instruction de programme à créer à la valeur de la macro-variable appelée "motcle"*/ %put %nrstr(%put La table créée par le programme Exemple détient une heure de modification dont les secondes sont impaires : )&motcle%nrstr(.;); %end; %else %if &instruction=0 %then %do; /*La ligne de code suivante assemble une instruction de programme à créer à la valeur de la macro-variable appelée "motcle"*/ %put %nrstr(%put La table créée par le programme Exemple détient une heure de modification dont les secondes sont paires : )&motcle%nrstr(.;); %end; %put %nrstr(%mend produit;); proc printto; run; %include "C:\Users\Utilisateur\Documents\fichier.sas"; %mend exemple; %exemple; %produit; Procédé de traitement de données, mis en œuvre par ordinateur, incluant : une étape de figeage de table d’étude ; et une étape de production de programme de traitement (PREP, STAT ou EXAM) apte à traiter la table d’étude ; procédé caractérisé en ce qu’il inclut une étape de stockage, au sein d’une table de traçage (T1, T2 ou T3), de chaque date à laquelle le contenu de la table d’étude a été modifié au cours d’une étape de collecte de données d’étude, la date de dernière modification de la table d’étude, date précise dudit figeage et/ou date avant ledit figeage de la table d’étude, étant destinée à constituer un paramètre de configuration d’au moins un programme de traitement (PREP, STAT ou EXAM) pour ne traiter que ladite table d’étude. Procédé selon la revendication 1, caractérisé en ce qu’il inclut une étape de copie de la table d’étude à l’instigation du premier programme de traitement (STAT ou EXAM) à interagir avec ladite table d’étude après l’étape de figeage. Procédé selon l’une des revendications 1 ou 2, caractérisé en ce qu’il inclut une étape d’adaptation d’instructions de programme de traitement (EXAM) à produire en les combinant à au moins un mot de passe de protection de données d’étude figées rendues disponibles à la consultation pour réguler la consultation de données d’étude. Procédé selon l’une des revendications 1 à 3, caractérisé en ce qu’il inclut une étape d’adaptation d’instructions de programme de traitement (PREP, STAT ou EXAM) à produire en les combinant à au moins un identifiant de session propre à un client pour qu’au moins un programme de traitement (PREP, STAT ou EXAM) ne réponde qu’audit client. Procédé selon l’une des revendications 1 à 4, caractérisé en ce qu’il comprend une étape de génération de mot de passe aléatoire pour protéger les données de table de traçage (T1, T2 ou T3) et/ou les données d’étude figées rendues disponibles à la consultation. Procédé selon l’une des revendications 1 à 5, caractérisé en ce qu’il comprend des étapes d’accès à au moins une date de dernière modification de table d’étude à figer, d’accès à au moins un identifiant de session propre à un client, et de traçage de mot de passe de protection des données de table de traçage (T1, T2 ou T3) et/ou des données d’étude figées rendues disponibles à la consultation auprès de table (T4) dédiée au stockage de ces données pour assurer la production de programme de traitement (PREP, STAT ou EXAM). Procédé selon l’une des revendications 1 à 6, caractérisé en ce que le code source d’au moins un programme de traitement (PREP, STAT ou EXAM) est protégé par voie de cryptage. Produit programme d’ordinateur, comportant des instructions qui, lorsqu’elles sont exécutées par un processeur, implémentent un procédé selon l’une des revendications 1 à 7.