Avec l'introduction des types de données vectorielles et de la fonctionnalité de recherche vectorielle dans IRIS, tout un monde de possibilités s'ouvre pour le développement d'applications et un exemple de ces applications est celui que j'ai récemment vu publié dans un concours public par le Ministère de la Santé de Valence dans lequel ils ont demandé un outil pour aider au codage de la CIM-10 à l'aide de modèles d'IA.
Comment pourrait-on mettre en place une application similaire à celle demandée ? Voyons ce dont nous aurions besoin :
Que nous apporte IRIS pour couvrir les besoins ci-dessus ?
Eh bien, il suffit de voir l'exemple développé :
Associé à cet article vous avez accès à l'application développée, dans les prochains articles nous verrons en détail comment nous implémentons chacune des fonctionnalités, depuis l'utilisation du modèle, le stockage des vecteurs et l'utilisation des recherches de vecteurs .
Revoyons la candidature :
Depuis l'écran de configuration, on nous indique le format dans lequel le fichier CSV doit être conforme aux codes ICD-10 que nous allons importer. Le processus de chargement et de vectorisation consomme beaucoup de temps et de ressources, c'est pourquoi le déploiement du conteneur Docker configure non seulement la mémoire RAM utilisable par Docker mais aussi la mémoire disque au cas où les besoins dépasseraient la RAM allouée :
# iris iris: init: true container_name: iris build: context: . dockerfile: iris/Dockerfile ports: - 52774:52773 - 51774:1972 volumes: - ./shared:/shared environment: - ISC_DATA_DIRECTORY=/shared/durable command: --check-caps false --ISCAgent false mem_limit: 30G memswap_limit: 32G
Le fichier avec les codes ICD-10 est disponible dans le chemin du projet /shared/cie10/icd10.csv, une fois 100% atteint l'application sera prête à être utilisée.
Dans notre application, nous avons défini deux fonctionnalités différentes pour le codage de diagnostic, une basée sur les messages HL7 reçus dans le système et une autre basée sur des textes bruts.
Le projet contient quelques messages HL7 préparés pour les tests, il suffit de copier le fichier /shared/hl7/messagesa01_en.hl7 dans le dossier /shared/HL7In et le la production associée se chargera d'en extraire le diagnostic pour l'afficher dans l'application web :
Depuis l'écran des demandes de diagnostic, nous pouvons voir tous les diagnostics reçus via la messagerie HL7. Pour les coder selon la CIM-10, il suffit de cliquer sur la loupe pour afficher une liste des codes CIM-10 les plus proches du diagnostic reçu :
Une fois sélectionné, nous verrons le diagnostic et son code CIM-10 associé dans la liste. En cliquant sur le bouton avec l'icône enveloppe, un message sera généré en utilisant l'original et incluant le nouveau sélectionné dans le segment de diagnostic :
MSH|^~\&|HIS|HULP|EMPI||||ADT^A08|592956|P|2.5.1 EVN|A01| PID|||1556655212^^^SERMAS^SN~922210^^^HULP^PI||GARCÍA PÉREZ^JUAN^^^||20150403|M|||PASEO PEDRO ÁLVAREZ 195 1 CENTRO^^LEGANÉS^MADRID^28379^SPAIN||555283055^PRN^^JUAN.GARCIA@YAHOO.COM|||||||||||||||||N| PV1||N DG1|1||O10.91^Unspecified pre-existing hypertension complicating pregnancy^CIE10-ES|Gestational hypertension||A||
Ce message se trouve dans le chemin /shared/HL7Out
À partir de l'option Text Analyzer, l'utilisateur peut inclure du texte brut sur lequel un processus d'analyse sera effectué. L'application recherchera dans des tuples de 3 mots lemmatisés (en éliminant les articles, pronoms et autres mots moins pertinents). Une fois analysé, le système nous montrera le texte souligné pertinent et les diagnostics possibles localisés :
Une fois l'analyse réalisée, elle peut être consultée à tout moment depuis l'historique des analyses.
Toutes les analyses effectuées sont enregistrées et peuvent être consultées à tout moment, permettant de visualiser tous les codes ICD-10 possibles disponibles :
Nous verrons comment, en utilisant Embedded Python, nous utilisons un modèle LLM spécifique pour la vectorisation à la fois des codes ICD-10 que nous utiliserons comme contexte et des textes libres.
Si vous avez des questions ou des suggestions, n'hésitez pas à écrire un commentaire sur l'article.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!