Artigo Evandro Wendt · Mar. 23 4m read

Introdução

Em um artigo anterior, apresentei o módulo IRIStool, que integra de forma transparente a biblioteca pandas do Python com o banco de dados IRIS. Agora, estou explicando como podemos usar o IRIStool para aproveitar o InterSystems IRIS como base para buscas inteligentes e semânticas sobre dados de saúde no formato FHIR.

Este artigo cobre o que fiz para criar o banco de dados de outro dos meus projetos, o FHIR Data Explorer. Ambos os projetos são candidatos no concurso atual da InterSystems, então, por favor, vote neles se os achar úteis.

1
0 24
Artigo Evandro Wendt · Mar. 23 4m read

Aqui na InterSystems, frequentemente lidamos com conjuntos massivos de dados estruturados. Não é incomum ver clientes com tabelas contendo mais de 100 campos e mais de 1 bilhão de linhas, cada tabela totalizando centenas de GB de dados. Agora imagine fazer o join de duas ou três dessas tabelas, com um esquema que não foi otimizado para esse caso de uso específico. Só por diversão, vamos supor que você tenha 10 anos de dados de EMR de 20 hospitais diferentes em todo o seu estado, e você foi encarregado de encontrar….

0
0 11
Artigo Evandro Wendt · Mar. 23 3m read

Ao trabalhar com linguagens externas para o IRIS (como Python e Node.js), uma das primeiras coisas que você precisa fazer é estabelecer uma conexão com uma instância do IRIS.

Por exemplo, para criar uma conexão em Python (https://pypi.org/project/intersystems-irispython/):

import iris

# Open a connection to the server
args = {
	'hostname':'127.0.0.1', 
	'port': 1972,
	'namespace':'USER', 
	'username':'username', 
	'password':'password'
}
conn = iris.connect(**args)

# Create an iris object
irispy = iris.createIRIS(conn)

# Create a global array in the USER namespace on the server
irispy.set("myGlobal", "hello world!") 
0
0 17
Artigo Evandro Wendt · Mar. 23 1m read

Rubrica de FAQ da InterSystems

Se você quiser gerar um erro personalizado arbitrário dentro de um bloco TRY, pode passar uma exceção com um throw, da seguinte forma. No exemplo abaixo, um erro personalizado é gerado se Stcount for menor que 1.

ClassClassMethodtry

No exemplo acima, se for menor que 1, um erro como o seguinte será exibido:

USER>

Para mais informações, consulte a seguinte documentação:
ObjectScript command _THROW

Se você quiser criar um código de status arbitrário, faça o seguinte:

0
0 14
Artigo Evandro Wendt · Mar. 21 4m read

O que é Dados Não Estruturados?
Dados não estruturados referem-se a informações que não possuem um modelo de dados ou organização predefinidos. Em contraste com os dados estruturados encontrados em bancos de dados com estruturas claras (por exemplo, tabelas e campos), os dados não estruturados não possuem um esquema fixo. Esse tipo de dado inclui textos, imagens, vídeos, arquivos de áudio, postagens em redes sociais, e-mails e muito mais.

Por que Insights de Dados Não Estruturados São Importantes?

0
0 12
Artigo Evandro Wendt · Mar. 21 3m read

Introdução

O InterSystems IRIS permite criar APIs REST usando classes ObjectScript e o framework %CSP.REST. Isso possibilita o desenvolvimento de serviços modernos para expor dados para aplicações web, aplicativos móveis ou integrações de sistemas.

Neste artigo, você aprenderá como criar uma API REST básica no InterSystems IRIS, incluindo:

  • Uma classe de dados persistente
  • Uma classe REST com métodos GETe POST 
  • Uma aplicação web para expor a API
  • Uma demonstração completa usando Docker

Passo 1: Criar a classe de dados Demo.Producto

Class Demo.Producto Extends (%Persistent, %JSON.Adaptor) {
  Property Nombre As %String;
  Property Precio As %Numeric(10,2);
}
0
0 30
Artigo Evandro Wendt · Mar. 21 2m read

Como vocês provavelmente sabem, o Health Connect / IRIS for Health suporta nativamente mensagens DICOM, e muitos de vocês já o utilizam diariamente. Recentemente, descobri um probleminha bastante insidioso que nosso querido @Alberto Fuentes me ajudou a resolver.

Nós (ou melhor, eu) chamaremos esse fenômeno de efeito Creosote (quem conhece Monty Python entenderá a referência; para os demais, vocês podem ver o sketch aqui).

Why Monty Python's Mr Creosote is the ultimate gross-out icon - Yahoo  Movies UK

O Sr.

0
0 22
Artigo Evandro Wendt · Mar. 21 1m read

Como parte da nova onda de UI de Interoperabilidade (veja as novidades em 2025.1 e 2025.3 por  @Aya Heshmat), a versão 2026.1, que já está disponível em Developer Preview, e isso pode ser um bom motivo para você experimentá-la - trará a nova interface para o editor BPL (e outras melhorias de UI).

Aqui vai um pequeno teaser:

Parte do que eu gostei especialmente -

  • A capacidade de auto-complete ao editar ações Assign e Conditions, veja no lado direito acima.
  • A Tree View de todo o BP, que permite ver também as ações internas de loops, etc., de uma só vez, veja no lado esquerdo acima.

@Aya.

0
0 22
Artigo Evandro Wendt · Mar. 21 3m read

A injeção de SQL continua sendo uma das vulnerabilidades mais críticas em aplicações que dependem de banco de dados, permitindo que atacantes manipulem consultas e potencialmente acessem ou comprometam dados sensíveis. No InterSystems IRIS, os desenvolvedores têm acesso tanto ao SQL Dinâmico quanto ao SQL Embutido, cada um com características distintas. Entender como usá-los de forma segura é essencial para prevenir a injeção de SQL.

O Problema: SQL Dinâmico e Injeção de SQL

O SQL Dinâmico constrói consultas como strings em tempo de execução.

0
0 12
Artigo Evandro Wendt · Mar. 21 4m read

img

Este artigo irá introduzir você ao conceito de ambientes virtuais em Python, que são essenciais para gerenciar dependências e isolar projetos do sistema operacional.

O que é um ambiente virtual?

Um ambiente virtual é uma pasta que contém:

  • Uma versão específica do Python
  • No início, um diretório site-packages vazio

Ambientes virtuais ajudam a isolar seu projeto da instalação do Python do sistema operacional e de outros projetos.

Como usá-lo?

0
0 22
Artigo Evandro Wendt · Mar. 11 3m read

Background

Equipes de Serviço Médico de Emergência (EMS) frequentemente chegam ao departamento de emergência com pacientes cujos dados demográficos estão incompletos ou desconhecidos — sem número de prontuário médico (MRN), sem nome confirmado e, às vezes, sem data de nascimento. Ainda assim, as notas de transporte do EMS precisam ser registradas no prontuário correto.

Para apoiar uma documentação segura e confiável, agências de EMS, serviços de integração de terceiros e equipes de integração hospitalar constroem interfaces seguras que trocam identificadores e mensagens clínicas.

0
0 15
Artigo Evandro Wendt · Mar. 6 2m read

iris-budget

Eu criei o aplicativo iris-budget para o InterSystems Full Stack Contest em 2026. Por full stack, queremos dizer uma aplicação web ou móvel de frontend que insere, atualiza ou exclui dados no InterSystems IRIS via REST API, Native API, ODBC/JDBC ou Embedded Python.

Meu aplicativo usa múltiplas REST APIs para adicionar uma nova categoria ou recuperar uma lista de categorias de despesas e receitas.

Primeira aplicação web /csp/coffee

Eu herdei /csp/coffee do module.xml no iris-fullstack-template.

Sergunda aplicação web /csp/budget

Para este projeto, criei um arquivo Swagger chamado "budget.

0
0 22
Artigo Evandro Wendt · Mar. 5 2m read

Sempre há quem diga que seu filho se parece mais com a mãe ou com o pai. Que tal usar matemática e Inteligência Artificial para ter certeza? O aplicativo facial-matching pode te dar a resposta.

Veja os resultados:

  1. Faça update das fotos do Pai, da Mãe e da Criança.:

 

2.Clique no botão Calcular Semelhança (Calculate Resemblance) e veja os resultados:

Detalhes de implementação

1.Obtem os arquivos de imagem do pai, da criança e da mãe.:

       father_file = request.files['father_image']
       child_file = request.files['child_image']
       mother_file = request.files['mother_image']

2.

0
0 41
Artigo Evandro Wendt · Mar. 5 1m read

Olá a todos,

Criei um método para calcular a idade de uma pessoa, ou a idade de um processo, contrato ou qualquer outra coisa que você quiser.

/// Calculate the age from date of birth and other date (by default shoud be today).
/// <b>dateOfBird</b> Date of birth in cache format. ie. $ZDH("1972-01-01",3)
/// <b>day</b> Date to calculate to. ie: $H
ClassMethod AgeAt(dateOfBirth, day) As %Integer{
    quit:dateOfBirth=""
    quit:day=""
    
    set yeardob=$SYSTEM.SQL.DATEPART("year",dateOfBirth)
    set yearday=$SYSTEM.SQL.DATEPART("year",day)
    
    set years=yearday-yeardob
    kill yeardob, yearday
    
    set monthdob=$SYSTEM.SQL.DATEPART("month",dateOfBirth)
    set monthday=$SYSTEM.SQL.DATEPART("month",day)
    if (monthday-monthdob)<0 set years=years-1
    if (monthdob-monthday)=0
    {
        if ($SYSTEM.SQL.DATEPART("day",day) - $SYSTEM.SQL.DATEPART("day",dateOfBirth)) < 0
        {
            set years=years-1
        }
    }
    
    kill monthdob, monthday
    quit years
}
0
0 21
Artigo Evandro Wendt · Mar. 5 2m read

Se um dos seus pacotes no OEX receber uma avaliação, você será notificado pelo OEX apenas sobre o SEU próprio pacote. A classificação reflete a experiência do avaliador com o status encontrado no momento da avaliação. É como uma espécie de snapshot e pode ter mudado nesse meio tempo. Avaliações feitas por outros membros da comunidade são marcadas com * na última coluna.

Também fiz vários Pull Requests no GitHub quando encontrei um problema que podia corrigir. Alguns foram aceitos e mesclados, e outros foram simplesmente ignorados.

0
0 13
Artigo Evandro Wendt · Mar. 5 1m read

Se um dos seus pacotes no OEX receber uma avaliação, você será notificado pelo OEX apenas sobre o SEU próprio pacote.
A classificação reflete a experiência do avaliador com o status encontrado no momento da avaliação.
É como uma espécie de snapshot e pode ter mudado nesse meio tempo.
Avaliações feitas por outros membros da comunidade são marcadas com * na última coluna.

Também coloquei vários Pull Requests no GitHub quando encontrei um problema que eu podia corrigir.
Alguns foram aceitos e mesclados, e alguns foram simplesmente ignorados.

0
0 20
Artigo Evandro Wendt · Fev. 17 6m read

O APM normalmente se concentra na atividade da aplicação, mas coletar informações sobre o uso do sistema fornece dados de contexto importantes que ajudam a entender e gerenciar o desempenho da sua aplicação, portanto estou incluindo o Monitor de Histórico do IRIS nesta série.

Neste artigo, descreverei brevemente como iniciar o Monitor de Histórico do IRIS ou Caché para criar um registro da atividade em nível de sistema, complementando as informações de atividade e desempenho da aplicação que você coleta. Também apresentarei exemplos de SQL para acessar as informações.

0
0 33
Artigo Evandro Wendt · Fev. 14 2m read

Prompt

Primeiramente, precisamos entender o que são palavras de prompt e quais são suas funções.

Engenharia de Prompt

A engenharia de palavras de prompt é um método especificamente projetado para otimizar modelos de linguagem.
Seu objetivo é orientar esses modelos a gerar textos de saída mais precisos e direcionados por meio do design e ajuste das palavras de prompt de entrada.

0
0 27
Artigo Evandro Wendt · Fev. 14 1m read

# IRIS-Intelligent Butler

IRIS Intelligent Butler é um sistema de mordomo inteligente com IA construído sobre a plataforma de dados InterSystems IRIS, com o objetivo de fornecer aos usuários assistência abrangente para a vida e o trabalho por meio de inteligência de dados, tomada de decisão automatizada e interação natural.

## Cenário de aplicação

Adição de serviços, inicialização de configurações etc. estão atualmente sendo aprimorados.

0
0 40
Artigo Evandro Wendt · Fev. 13 1m read

Em um ambiente containerizado, você pode gerenciar o horário do seu container usando a variável TZ ou por meio dos arquivos /etc/timezone e /etc/localtime:

environment:
      - TZ=Europe/Paris
volumes:
    - "/etc/timezone:/etc/timezone:ro""/etc/localtime:/etc/localtime:ro"

Você pode encontrar exemplos completos aqui:

IRIS Community

IRISHealth_Community

IRIS production

IRISHealth production

0
0 33
Artigo Evandro Wendt · Fev. 13 2m read

As versões recentes do IRIS já vêm com o Lite Terminal disponível no VSCode. Ele funciona como um servidor WebSocket, com comunicação via mensagens JSON. Aqui está como se conectar a ele a partir do Python:

importimportimportdefterminal(host, port, namespace, username, password, command, secure)"s"if

Ao executá-lo, será gerada a seguinte saída:

{

Para depurar a conexão, defina ^IRIS.Temp.Atelier("terminal") como 1; toda a comunicação será registrada nessa mesma global.

0
0 31
Artigo Evandro Wendt · Fev. 13 3m read

Você já precisou alterar um IP ou porta antes de implantar uma interface em produção? Precisou remover itens de uma exportação? Ou modificar valores em uma tabela de lookup antes de implantar? Já quis desativar uma interface antes da implantação? Ou ainda adicionar um comentário, categoria ou configuração de alerta a uma interface antes de enviá-la para produção?

Se você já precisou fazer qualquer alteração em uma interface ou tabela de lookup antes de implantar em produção, então o Export Editor é para você!

0
0 17
Artigo Evandro Wendt · Fev. 13 3m read

A Kong fornece uma ferramenta open source de gerenciamento de configuração (escrita em Go), chamada decK (que significa Kong declarativo).

  • Verifique se o decK reconhece sua instalação do Kong Gateway por meio do comando deck gateway ping
deck gateway ping   

  • Exporte a configuração do Kong Gateway para um arquivo chamado "kong.yaml" por meio do comando deck gateway dump
deck gateway dump -o kong.yaml

  • Após modificar os endereços IP no arquivo kong.yaml, verifique as diferenças por meio do comando deck gateway diff
0
0 26
Artigo Evandro Wendt · Fev. 12 2m read

Já tínhamos o Webterminal há algum tempo, mas ele era limitado e nem todos os recursos funcionavam. Não havia suporte a shell nem aos recursos mais recentes, como suporte a Python embutido. Havia também alguns problemas com ferramentas que exigem o modo programador. A autenticação básica não era tão prática quanto uma página de login simples, onde você poderia ter a opção de adicionar sua própria página de login, caso quisesse alterar a forma de acesso à aplicação, como usando SSO.

Com o terminal IRIS original, incorporado em um formulário web, utilizando o xterm.js — muito usado no mundo web e em ferramentas como o VSCode — e um pouco de magia do Python, que ajuda na comunicação entre processos via tty, conseguimos levar o terminal para a web em sua capacidade total.

iTerm

0
0 29
Artigo Evandro Wendt · Fev. 12 2m read

Visão Geral

Após algumas discussões no Global Summit e usando vários gerenciadores de pacotes no meu dia a dia de desenvolvimento (npm, NuGet, Chocolatey etc.), além de recentemente utilizar o InterSystems Package Manager para alguns processos de CICD que estou construindo com InterSystems IRIS e IRIS for Health, eu queria uma forma fácil e integrada de buscar, visualizar e instalar pacotes relacionados a stack de tecnologia da InterSystems.

0
0 23
Artigo Evandro Wendt · Fev. 12 3m read

Bem-vindo ao resumo mensal de atualizações e lançamentos do VS Code e das extensões relacionadas à InterSystems relevantes para desenvolvedores IRIS. Vamos detalhar as atualizações que são relevantes para desenvolvedores InterSystems, com dicas de como elas podem ser aplicadas aos seus projetos do dia a dia.

Não se esqueça: se você está migrando do InterSystems Studio para o VS Code ou quer aprofundar seus conhecimentos, confira os cursos de treinamento em VS Code da George James Software: georgejames.com/vscode-training.


VS Code versão 1.

0
0 28
Artigo Evandro Wendt · jan 31 3m read

Os dados estão no centro da transformação digital que está varrendo a área da saúde. Mudanças radicais exigem uma nova base capaz de lidar com as enormes demandas de dados da saúde moderna.

O tempo de chegada ao mercado é crucial à medida que você desenvolve os próximos avanços terapêuticos, insights genômicos e fluxos de trabalho clínicos inteligentes. É preciso entregá-los agora.

É por isso que ampliamos o poder da nossa plataforma de dados InterSystems IRIS para atender às características únicas das informações de saúde. O InterSystems IRIS for Health é a primeira e única plataforma de dados do mundo projetada especificamente para o desenvolvimento rápido de aplicações em saúde, capaz de gerenciar os dados mais críticos do mundo.

IRIS Health diagram

0
0 22
Artigo Evandro Wendt · jan 30 2m read

SQLTools é uma extensão do Visual Studio Code (VS Code) com mais de 3,5 milhões de downloads, que fornece conexões para muitos dos bancos de dados mais usados, incluindo o InterSystems IRIS, utilizando drivers.

Para desenvolvedores que são novos no VS Code, ou aqueles já familiarizados com ele mas que desejam simplificar suas conexões com o InterSystems IRIS, este tutorial irá guiá-lo na instalação da extensão SQLTools e do driver do InterSystems IRIS. Em seguida, ele mostra como estabelecer uma conexão com sua instância do InterSystems IRIS e executar uma consulta.

0
0 39
Artigo Evandro Wendt · jan 30 3m read

Ao longo do último ano, a equipe de desenvolvimento do CCR priorizou mudanças na aplicação CCR para expor melhor e incentivar as boas práticas de uso do CCR. Este artigo destacará algumas das áreas em que nos concentramos:

  • Painel de Organização
  • Alertas do Sistema
  • Higiene de Branch

Em cada uma dessas áreas, aumentamos a visibilidade de possíveis problemas no uso do CCR e fornecemos aos usuários ferramentas para abordá-los de forma proativa.

Painel de Organização

Continuamos a expandir as informações disponíveis na página de detalhes da Organização.

0
0 25