"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > D [IA] Gnosis: Développer des applications de chiffon avec Iris pour Healt

D [IA] Gnosis: Développer des applications de chiffon avec Iris pour Healt

Publié le 2025-03-10
Parcourir:512

Avec l'introduction des types de données vectorielles et la fonctionnalité de recherche vectorielle dans Iris, un monde entier de possibilités s'ouvre pour le développement d'applications et un exemple de ces applications est celle que j'ai récemment vue publiée dans un concours public par le ministère de la Santé à partir de Valence dans lequel ils ont demandé un outil pour aider à la codage ICD-10 en utilisant les modèles AI.

Comment pourrions-nous implémenter une application similaire à celle demandée? Voyons ce dont nous aurions besoin:

  1. Liste des codes ICD-10, que nous utiliserons comme contexte pour notre application de chiffon pour rechercher des diagnostics dans les textes brus.
  2. un modèle formé qui vectorise les textes dans lesquels nous allons rechercher des équivalences dans les codes ICD-10.
  3. Les bibliothèques Python nécessaires à l'ingestion et à la vectorisation des codes et textes ICD-10.
  4. un frontal amical qui prend en charge les textes sur lesquels nous recherchons des diagnostics possibles.
  5. orchestration des demandes reçues de la frontale.

Qu'est-ce que Iris nous fournit pour couvrir les besoins ci-dessus?

  1. CSV Import, soit en utilisant la fonctionnalité RecordMapper, soit en utilisant directement Python intégré.
  2. Python embarqué nous permet d'implémenter le code Python nécessaire pour générer les vecteurs à l'aide du modèle sélectionné.
  3. publier des API REST qui seront invoquées à partir de l'application frontale.
  4. Productions d'interopérabilité qui permettent le suivi des informations dans Iris.

Eh bien, nous n'avons qu'à voir l'exemple développé:

diagnostic

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, à partir de l'utilisation du modèle, du stockage des vecteurs et de l'utilisation des recherches vectorielles.

passons en revue l'application:

Importation de codes ICD-10

d[IA]gnosis: developing RAG applications with IRIS for Healt

Dans l'écran de configuration, on nous dit au format que le fichier CSV doit se conformer 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 également la mémoire du disque au cas où les exigences dépassent 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 que 100% est 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 un autre basé sur des textes brus.

Capture de diagnostic de HL7

Le projet contient des messages HL7 préparés pour les tests, il est nécessaire de copier le fichier / shared / hl7 / messa01_en.hl7 dans le dossier / shared / hl7in et la production associée sera responsable de l'extraction du diagnostic de celui-ci dans l'application Web:

d[IA]gnosis: developing RAG applications with IRIS for Healt

Dans l'écran des demandes de diagnostic, nous pouvons voir tous les diagnostics reçus via la messagerie HL7. Pour les coder sur ICD-10, nous devons cliquer sur la loupe pour afficher une liste de ces codes ICD-10 le plus proche du diagnostic reçu:

d[IA]gnosis: developing RAG applications with IRIS for Healt

Une fois sélectionné, nous verrons le diagnostic et son code ICD-10 associé dans la liste. En cliquant sur le bouton avec l'icône de l'enveloppe, un message sera généré à l'aide de l'original et y compris 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^^[email protected]|||||||||||||||||N|
PV1||N
DG1|1||O10.91^Unspecified pre-existing hypertension complicating pregnancy^CIE10-ES|Gestational hypertension||A||

Ce message peut être trouvé dans le chemin / partagé / hl7out

Captures d'écran des diagnostics dans PlainText

Dans l'option Analyseur de texte, l'utilisateur peut inclure du texte brut sur lequel un processus d'analyse sera effectué. L'application recherchera des tuples de 3 mots lemmatisés (éliminant les articles, les pronoms et autres mots moins pertinents). Une fois analysé, le système nous montrera le texte souligné pertinent et les diagnostics possibles:

d[IA]gnosis: developing RAG applications with IRIS for Healt

Une fois l'analyse effectuée, elle peut être consultée à tout moment à partir de l'historique de l'analyse.

Historique d'analyse

Toutes les analyses effectuées sont enregistrées et peuvent être consultées à tout moment, en étant capable d'afficher tous les codes ICD-10 possibles:

dans l'article suivant ...

Nous verrons comment, en utilisant un python intégré, nous utilisons un modèle LLM spécifique pour la vectorisation des deux codes ICD-10 que nous utiliserons comme contexte et textes libres.

Si vous avez des questions ou des suggestions, n'hésitez pas à écrire un commentaire sur l'article.

Déclaration de sortie Cet article est reproduit à: https://dev.to/intystems/diagnosis-developing-rag-applications-with-iris-for-hent-5o5?1 s'il y a une violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3