Conception d'algorithmes à finalité médicale
Maurice Navarro
Consultant qualité & logiciel pour dispositifs médicaux
La confusion entre algorithme et logiciel est répandue. De fait, j'ai rencontré cette situation dans plusieurs entreprises du secteur biomédical.
Bien entendu, un algorithme à finalité médicale sera certainement implémenté dans un logiciel (de) dispositif médical. Néanmoins, logiciel et algorithme ne désignent pas la même chose et, dans le cadre des dispositifs médicaux, des exigences différentes leur sont applicables.
De ce fait, confondre les deux peut vite impacter la conception et le développement d'un dispositif médical, notamment en termes de fiabilité du résultat obtenu.
Traitons ce sujet à l'occasion de cet article.
Différences entre algorithme et logiciel
Si on considère les définitions générales,
un logiciel est un ensemble (i) de séquences d'instructions interprétables par une machine et (ii) d'un jeu de données nécessaires à ces opérations et
un algorithme est une suite finie et non ambiguë d'opérations mathématiques qui permettent de résoudre un problème ou d'obtenir un résultat.
Ainsi, le résultat de conception et développement d'un algorithme est un document descriptif qui peut donner lieu à une publication scientifique et le résultat de conception et développement d'un logiciel est un programme exécutable qui peut être commercialisé.
Le tableau ci-dessous présente quelques différences importantes entre un algorithme à finalité médicale et un logiciel (de) dispositif médical.
Algorithme à finalité médicale | Logiciel (de) dispositif médical | |
---|---|---|
Compétences requises pour la conception et le développement | Mathématiques | Génie logiciel |
Normes applicables à la conception et le développement | Normes générales applicables aux dispositifs médicaux (ISO 13485, ISO 14971…) | Normes générales applicables aux dispositifs médicaux (ISO 13485, ISO 14971…) et normes techniques applicables au logiciel (de) dispositif médical (CEI 62304, CEI 82304-1…) |
Résultat de conception et développement | Document descriptif de l'algorithme | Un ou plusieurs programmes exécutables par une machine |
Indicateurs de qualité du résultat obtenu | Complexité algorithmique et limites d'obtention du résultat correct | Fiabilité de fonctionnement, sécurité et sûreté au regard de l'emploi prévu |
Sera commercialisé en tant qu'élément (de) dispositif médical | NON | OUI |
Doit faire l'objet d'une évaluation clinique ou d'une évaluation des performances | Il ne s'agit pas d'une exigence réglementaire | Oui : incorporé dans un dispositif médical ou en tant que dispositif médical en soi |
Projection juridique | Protection par brevet sous conditions | Protection par le droit d'auteur |
Malgré ces différences, la confusion entre logiciel (de) dispositif médical et algorithme à finalité médicale est une réalité.
Une explication possible est que tous deux requièrent de la programmation pour leur conception et développement. Cependant, ces programmations ont des objectifs différents :
en algorithmie, l'objectif de la programmation est d'obtenir un exécutable pour évaluer l'efficacité de l'algorithme et
en génie logiciel (de) dispositif médical, l'objectif de la programmation est de créer un produit fiable et adapté à une utilisation en milieu médical.
Il s'agit donc d'activités de programmation distinctes dont les contraintes de mise en œuvre n'ont pas grand-chose en commun.
Eviter la confusion entre logiciel (de) dispositif médical et algorithme à finalité médicale
Dans le cadre des dispositifs médicaux innovants on rencontre souvent le cas où un algorithme doit être mis au point pour être implémenté dans un logiciel (de) dispositif médical.
La confusion entre algorithme et logiciel peut alors s'avérer particulièrement dommageable : elle peut amener à faire du programme d'évaluation de l'algorithme le cœur d'architecture du logiciel (de) dispositif médical.
Malheureusement, cette approche peut réduire la prise en compte des possibles dysfonctionnements du logiciel par son architecture.
Pour éviter ce cas de figure, le système de management de la qualité (SMQ) peut s'avérer particulièrement utile.
En effet, il est possible de mettre en place deux procédures distinctes
d'une part pour la conception et le développement d'algorithmes à finalité médicale et,
d'autre part, pour la conception et le développement de logiciel (de) dispositif médical.
Cette approche permet de différencier ces activités et, le cas échéant, de les paralléliser pour réduire le temps de conception et développement global du dispositif médical.
Le fabricant du dispositif médical assure ainsi la fiabilité de fonctionnement de son logiciel en focalisant l'attention de ses collaborateurs sur les points importants de chacune de ces activités :
- la gestion des risques pour le logiciel (de) dispositif médical et
- l'efficacité pour l'algorithme à finalité médicale.
Intérêt de la différence pour le fabricant
Outre la fiabilité du logiciel (de) dispositif médical obtenu, la mise en place de deux procédures distinctes permet au fabricant d'éviter d'autres écueils de la confusion entre algorithme et logiciel.
A titre d'exemple, parmi les situations que j'ai rencontrées, on peut citer
- la confusion entre évaluation de l'algorithme et validation du logiciel,
- l'absence de prise en compte de l'utilisation du dispositif médical dans le cadre de la conception et le développement du logiciel,
- les pertes de temps passé à tenir compte, pour l'un ou l'autre, de contraintes qui ne sont pas applicables,
- les sous-estimations des temps de conception et développement nécessaires.
Ainsi, malgré une apparente complexité, cette approche simplifie et accélère la conception et le développement d'un dispositif médical innovant.
Pour en savoir plus
Pour passer de l'algorithme à l'implémentation du logiciel, l'analyse de risques permet de prévenir les dysfonctionnements du logiciel (de) dispositif médical.
Une fois que le logiciel (de) dispositif médical est fonctionnel il est important de le protéger.