Rechercher

InterSystems公式
· 2025年4月3日

Alerta: InterSystems IRIS 2024.3 – Problema no Parser JSON no AIX e Incompatibilidades do IntegratedML

Resumo de Alertas

Alerta ID Produto & Versões Afectadas Requisitos Explícitos
DP-439207  InterSystems IRIS® data platform 2024.3 (AIX) Instalações AIX Usando JSON e conjuntos de Caracteres Unicode non-Latin-1 
DP-439280  InterSystems IRIS 2024.3 (containers com IntegratedML)  IntegratedML Containers usando TensorFlow

 

Detalhes dos Alertas

DP-439207 - Problemas no Parser JSON Unicode em AIX

Um bug foi identificado no InterSystems IRIS 2024.3.0 em instâncias do AIX que afeta a análise de strings JSON Unicode. O problema surge quando o método %FromJSON() ou %FromJSONFile() analisa strings que contêm caracteres com valores menores que $CHAR(256) seguidos por caracteres Unicode que excedem $CHAR(255). O processo de conversão transforma incorretamente os caracteres anteriores em $CHAR(0), levando à corrupção silenciosa de dados. Esse problema afeta apenas a versão 2024.3 do AIX dos seguintes produtos:

  • InterSystems IRIS
  • InterSystems IRIS for Health
  • HealthShare® Health Connect

Avaliação do Impacto 

  • Quando isso ocorre, caracteres incorretos podem ser armazenados no banco de dados ou passados ​​para interfaces sem acionar erros.
  • O defeito foi introduzido no IRIS 2024.3.0 e foi resolvido com DP-439207.
  • Fluxos de trabalho afetados: esse problema ocorre apenas em instalações Unicode que executam AIX, afetando aplicativos que processam dados que contêm uma mistura de caracteres ASCII e Unicode.

Resolução

  • Se você está usando InterSystems IRIS 2024.3.0 em instancias AIX, então você deve atualizar para InterSystems IRIS 2025.1.0 assim que possível.

Ações necessárias do Cliente 

  1. Identificar os Sistemas Impactados:
    • Determinar se está usando InterSystems IRIS 2024.3.0 em uma instancia AIX com banco de dados com caracteres Unicode não Unicode misturados.
  2. Caminho de Atualização:
    • Atualizar para InterSystems IRIS 2025.1.0 assim que possível.

 

DP-439280 - Problemas no IntegratedML em Container com TensorFlow

Clientes usando uma das versões em container do IRIS 2024.3 pode encontrar erros de treinamento ao usar o IntegratedML.

containers.intersystems.com/intersystems/iris-ml:2024.3

 

Avaliação do Impacto

  • Os clientes que utilizam o IntegratedML nos contêineres IRIS 2024.3 fornecidos pela InterSystems enfrentarão falhas no treinamento do modelo devido a problemas de compatibilidade com o TensorFlow e dependências relacionadas.

Resolução

  • Os clientes que desejam usar o IntegratedML com o IRIS ou o IRIS for Health em contêineres são incentivados a criar seus próprios contêineres seguindo os conselhos publicados na Comunidade de Desenvolvedores.

Ações necessárias do Cliente

  • Para continuar usando o IntegratedML com o AutoML, os clientes devem gerenciar dependências manualmente usando o gerenciador de pacotes pip, conforme descrito acima. Isso garante a compatibilidade e a funcionalidade adequada dos componentes do AutoML, como scikit-learn, dentro do seu ambiente Python do IntegratedML.

Para mais Informações Se você tiver dúvidas ou precisar de assistência, entre em contato com o Worldwide Response Center (WRC) da InterSystems. 

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
お知らせ
· 2025年4月3日

[Video] Best Practices for Interface Naming Conventions

Hi, Community!

How do you choose names for your interface components? Why is naming important? Learn from our experts:

Best Practices for Interface Naming Conventions

In this video, @Jess Jowdy and @John Goodgame discuss the importance of naming conventions that support your organization's interface development.

Want to share your own experiences with naming or share any tips? Add your comments below this video!

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年4月3日 4m read

d[IA]gnosis: Vetorizando Diagnósticos com Python Embutido e Modelos LLM

No artigo anterior, apresentamos o aplicativo d[IA]gnosis, desenvolvido para auxiliar na codificação de diagnósticos na CID-10. Neste artigo, veremos como o InterSystems IRIS for Health nos fornece as ferramentas necessárias para a geração de vetores a partir da lista de códigos da CID-10, usando um modelo de linguagem pré-treinado, seu armazenamento e a subsequente busca por similaridades em todos esses vetores gerados.

Introdução

Uma das principais características que surgiram com o desenvolvimento de modelos de IA é o que conhecemos como RAG (Geração Aumentada por Recuperação), que nos permite melhorar os resultados dos modelos LLM ao incorporar um contexto ao modelo. Bem, em nosso exemplo, o contexto é dado pelo conjunto de diagnósticos da CID-10 e, para usá-los, devemos primeiro vetorizá-los.

Como vetorizar nossa lista de diagnósticos?

SentenceTransformers e Embedded Python

Para a geração de vetores, utilizamos a biblioteca Python SentenceTransformers , que facilita muito a vetorização de textos livres a partir de modelos pré-treinados. Do próprio site deles:

Sentence Transformers (também conhecido como SBERT) é o módulo Python de referência para acessar, usar e treinar modelos de incorporação de texto e imagem de última geração. Pode ser usado para calcular incorporações usando modelos Sentence Transformer (início rápido) ou para calcular pontuações de similaridade usando modelos Cross-Encoder (início rápido). Isso desbloqueia uma ampla gama de aplicações, incluindo busca semântica similaridade textual semântica, e mineração de paráfrases.

Dentre todos os modelos desenvolvidos pela comunidade SentenceTransformers, encontramos o BioLORD-2023-M, um modelo pré-treinado que gerará vetores de 786 dimensões.

Este modelo foi treinado usando o BioLORD, uma nova estratégia de pré-treinamento para produzir representações significativas para frases clínicas e conceitos biomédicos.

As metodologias de ponta operam maximizando a similaridade na representação de nomes que se referem ao mesmo conceito e evitando o colapso por meio do aprendizado contrastivo. No entanto, como os nomes biomédicos nem sempre são autoexplicativos, às vezes resulta em representações não semânticas.

O BioLORD supera esse problema fundamentando suas representações de conceitos usando definições, bem como descrições curtas derivadas de um grafo de conhecimento multirrelacional que consiste em ontologias biomédicas. Graças a essa fundamentação, nosso modelo produz representações de conceitos mais semânticas que correspondem mais de perto à estrutura hierárquica das ontologias. O BioLORD-2023 estabelece um novo estado da arte para similaridade de texto tanto em frases clínicas (MedSTS) quanto em conceitos biomédicos (EHR-Rel-B).

Como você pode ver em sua definição, este modelo é pré-treinado com conceitos médicos que serão úteis ao vetorizar tanto nossos códigos CID-10 quanto texto livre.

Para o nosso projeto, baixaremos este modelo para acelerar a criação de vetores:

if not os.path.isdir('/shared/model/'):
    model = sentence_transformers.SentenceTransformer('FremyCompany/BioLORD-2023-M')            
    model.save('/shared/model/')

Uma vez em nossa equipe, podemos inserir os textos a serem vetorizados em listas para acelerar o processo. Vamos ver como vetorizamos os códigos CID-10 que registramos anteriormente em nossa classe ENCODER.Object.Codes.

st = iris.sql.prepare("SELECT TOP 50 CodeId, Description FROM ENCODER_Object.Codes WHERE VectorDescription is null ORDER BY ID ASC ")
resultSet = st.execute()
df = resultSet.dataframe()

if (df.size > 0):
    model = sentence_transformers.SentenceTransformer("/shared/model/")
    embeddings = model.encode(df['description'].tolist(), normalize_embeddings=True)

    df['vectordescription'] = embeddings.tolist()

    stmt = iris.sql.prepare("UPDATE ENCODER_Object.Codes SET VectorDescription = TO_VECTOR(?,DECIMAL) WHERE CodeId = ?")
    for index, row in df.iterrows():
        rs = stmt.execute(str(row['vectordescription']), row['codeid'])
else:
    flagLoop = False

Como você pode ver, primeiro extraímos os códigos armazenados em nossa tabela de códigos CID-10 que ainda não vetorizamos, mas que registramos em uma etapa anterior após extraí-los do arquivo CSV, depois extraímos a lista de descrições a serem vetorizadas e, usando a biblioteca Python sentence_transformers, recuperaremos nosso modelo e geraremos os embeddings associados.

Finalmente, atualizaremos o código CID-10 com a descrição vetorizada executando o UPDATE. Como você pode ver, o comando para vetorizar o resultado retornado pelo modelo é o comando SQL TO_VECTOR no IRIS.

Usando-o no IRIS

Ok, temos nosso código Python, então só precisamos envolvê-lo em uma classe que estende Ens.BusinessProcess e incluí-la em nossa produção, depois conectá-la ao Business Service encarregado de recuperar o arquivo CSV e pronto!

Vamos dar uma olhada em como esse código ficará em nossa produção:

Como você pode ver, temos nosso Business Service com o adaptador EnsLib.File.InboundAdapter, que nos permitirá coletar o arquivo de códigos e redirecioná-lo para nosso Business Process, no qual realizaremos todas as operações de vetorização e armazenamento, fornecendo-nos um conjunto de registros como o seguinte

Agora nosso aplicativo estaria pronto para começar a procurar possíveis correspondências com os textos que enviamos a ele!

No próximo artigo...

No próximo artigo, mostraremos como o front-end do aplicativo desenvolvido em Angular 17 é integrado à nossa produção no IRIS for Health e como o IRIS recebe os textos a serem analisados, os vetoriza e busca similaridades na tabela de códigos CID-10.

Não perca!

1 Comment
ディスカッション (1)2
続けるにはログインするか新規登録を行ってください
お知らせ
· 2025年4月3日

InterSystems Open Exchange Applications Digest, March 2025

Hello and welcome to the March 2025 Open Exchange Recap.
General Stats:
21 new apps in March
607 downloads in March
1,060 applications all time
39,764 downloads all time
3,102 developers joined
New Applications
ollama-ai-iris
By Rodolfo Pscheidt
mcp-server-iris
By Dmitry Maslennikov
IRIS-Intelligent-Butler
By janzai renato
langchain-iris-tool
By Yuri Marx
AiAssistant
By XINING MA
iris-data-analysis
By lando miller
bg-iris-agent
By Elena Karpova
iris-AgenticAI
By Muhammad Waseem
pax-ai-iris
By PARANI KAMATCHIYAPPAN
Vitals Lab
By Gabriel Yang
toot
By Alex Woodhead
oncorag
By Patrick Salome
Facilis
By Henrique Dias
iris-clinical-assistant
By Diana Mindroc Filimon
iris-easybot
By Eric Fortenberry
bas_labs
By Alice Heiman
TaskList
By Irina Yaroshevskaya
X-rAI-iris-health
By Rahul Singhal
iris-watched-status
By David Hockenbroch
React Native Frontend for FHIR by Lovable
By Evgeny Shvarov
iris-waveform-demo
By Ajay Anand
New Releases
sqlalchemy-iris by Dmitry Maslennikov
v0.17.0
Official InterSystems driver support using iris+intersystems:// URL
intersystems-objectscript-class-diagram-view by Jinyao Chen
v0.1.0
🚀 New Features Added support for generating class diagrams using PlantUML Web Server (no Java required) Implemented user choice between local Java and PlantUML Web Server for diagram generation Added ability to copy PlantUML URL to clipboard or open directly in browser 📝 Documentation Updated README files (English, Chinese, German) with new PlantUML Web Server functionality Added detailed instructions for using the PlantUML Web Server option Improved requirements section with a clear table format for better readability Enhanced documentation with clearer distinction between required and optional dependencies 🔧 Maintenance Optimized command structure by consolidating diagram generation commands Removed redundant code for handling separate web server command Simplified user interface by providing generation method choice in a single command ⚡️ Performance Improvements Streamlined diagram generation process for PlantUML Web Server option Reduced code complexity by removing unnecessary WebView creation for web server URLs
isc-codetidy by Timothy Leavitt
v1.1.9

[1.1.9] - 2024-03-03

Fixed

  • Fixed spaces being added to delimeters in macro calls (#58)
v1.1.10

[1.1.10] - 2025-03-11

Fixed

  • Fixed bug where indentation is increased following in-line embedded js (#62)
v1.1.11

[1.1.11] - 2025-03-19

Fixed

  • Fixed bug where CodeTidy adds spacing between arguments within pre-processor if blocks (#64)
objectscript-errors by Evgeny Shvarov
v1.0.3
verbose parameter
pxw-debug by Paul Waterman
v1.0.1
Added: DEBUGSC - to set status code variable and log failures DEBUGPause - pause debug DEBUGResume - resume debug
v1.0.2
More documentation and example use.
iris-fhir-template by Evgeny Shvarov
v1.3.3
Added FHIR Swagger UI image
v1.3.4
Module.xml update due to deprecated CSP->Web application transition
ks-iris-lib by Robert Barbiaux
v1.0.3
fix DateTime data type
v1.0.4
fix DateTime data type
v1.0.5
bump version
v1.0.6
bump version
IRIS internal WebSocket Client by Robert Cemper
v1.1.0
more verbose description of * prerequisites * installation * starting * testing explained SMP = System Management Portal adjusted to actual behavior of CSP Gateway
iris-speed-test by Fan Ji
v3.0.0
Initial Release
Most downloaded
MDX2JSON
By Eduard Lebedyuk
DeepSeeWeb
By Anton Gnibeda
ObjectScript-Math
By Peter Steiwer
WebTerminal
By Nikita Savchenko
ssl-client
By Evgeny Shvarov
Embedded Git
By Timothy Leavitt
iris-web-swagger-ui
By Maks Atygaev
passwordless
By Sergey Mikhailenko
csvgen
By Evgeny Shvarov
March, 2025Month at a GlanceInterSystems Open Exchange
ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
記事
· 2025年4月3日 3m read

Contourner l'incompatibilité de scikit-learn 1.6.0 dans IRIS 2024.3 AutoML

Introduction

Dans InterSystems IRIS 2024.3 et les versions ultérieures d'IRIS, le composant AutoML est désormais fourni sous forme de package Python distinct, installé après l'installation. Malheureusement, certaines versions récentes des packages Python sur lesquels AutoML s'appuie ont introduit des incompatibilités et peuvent entraîner des échecs lors de l'entraînement des modèles (instruction TRAIN MODEL). Si vous rencontrez une erreur mentionnant « TypeError » et l'argument de mot-clé « fit_params » ou « sklearn_tags », lisez la suite pour une solution rapide.

Cause principale

  • scikit-learn a été mis à jour vers la version 1.6.0, rendant ainsi fit_params obsolète.
  • scikeras ne met plus à jour les « wrappers » pour Tensorflow.
  • L'installation de ces packages dans IRIS 2024.3 sans dépendances épinglées entraîne des erreurs d'entraînement.

Symptômes

Vous pouvez rencontrer :

<TypeError>: got an unexpected keyword argument 'fit_params'

ou

[%msg: <ERROR #5002: ObjectScript error: <PYTHON EXCEPTION> *<class 'AttributeError'>: 'super' object has no attribute '__sklearn_tags__' [^%ML.AutoML.Provider.1:%SYS]>]

pendant la phase de formation du modèle.

Solution de contournement :

1. Désinstaller les packages existants (si nécessaire)

pip uninstall scikit-learn xgboost keras ...

 

2. Installer via Snapshot

pip install --index-url https://registry.intersystems.com/pypi/simple \
  --no-cache-dir \
  --target /path/to/iris/python \
  -r /path/to/requirementsSnapshot.txt

3. Vérifier

  • • Exécutez vos tests de détection de fumée pour confirmer l'absence d'erreurs fit_params.
  • • Assurez-vous que scikit-learn est épinglé à une version inférieure à 1.6.0.

Remarque : Les modalités d'obtention ou d'accès au fichier requirementsSnapshot.txt sont encore en discussion. Pour l'instant, veuillez contacter votre représentant InterSystems ou consulter la documentation officielle pour obtenir le lien ou le processus de distribution le plus récent.

Alternative : Épingler scikit-learn à une version inférieure à 1.6.0

Si vous préférez ne pas utiliser le fichier snapshot, vous pouvez épingler manuellement la version :

pip install scikit-learn<1.6.0 xgboost keras ...

Cela permettra de contourner le problème jusqu'à ce que XGBoost et Keras mettent officiellement à jour leurs packages.

Prochaines étapes

  • InterSystems a apporté des modifications au code AutoML afin de résoudre le problème dans les prochaines versions. Ce problème concerne principalement les conteneurs plus anciens, comme la version 2024.3, première version à utiliser la procédure de post-installation pour installer IntegratedML.
  • InterSystems publie une alerte client concernant les conteneurs IRIS 2024.3 ml (containers.intersystems.com/intersystems/iris-ml:2024.3), qui fait référence à cet article.
  • Si vous avez des questions ou rencontrez des problèmes, n'hésitez pas à laisser un commentaire ci-dessous ou à contacter votre contact du support InterSystems.

Ressources supplémentaires :

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください