Novo
Artigo Evandro Wendt · 7 hr atrás 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.

0
0 3
InterSystems Developer Community is a community of 26,368 amazing developers
Somos um local onde os programadores do InterSystems IRIS aprendem e compartilham, permanecem atualizados, crescem juntos e se divertem!
Novo
Artigo Evandro Wendt · 7 hr atrás 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 2
Novo
Artigo Evandro Wendt · 7 hr atrás 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.
0
0 1
Novo
Artigo Evandro Wendt · 7 hr atrás 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.

Class User.Test
{

ClassMethod ExceptionTest()
 {
    try
    {
      // : some codes
      if (Stcount<1) {
          throw ##class(%Exception.General).%New("User-defined error", "5001", "location", "Data at location error")
          // User-created errors are 5001 and above
      }
    }
    catch ex
    {
      write "Errors #", ex.
0
0 2
Novo
InterSystems Oficial Danusa Calixto · 14 hr atrás

Resumo

Id do Alerta Produtos & Versões afetados Categoria e Pontuação de Risco Requisitos Explícitos
DP-448888

Produtos:
· InterSystems IRIS® data platform
· InterSystems IRIS® for Health
· InterSystems Health Connect™

Versões:
· 2024.3.0
· 2025.1.0 – 2025.1.3
· 2025.2.0
· 2025.3.0

Operational: Alto Risco ≥ 2 TB do cache do banco de dados é utilizado

Problema

Nas versões especificadas acima, uma instância pode não iniciar ou pode travar durante a operação se o cache do banco de dados for maior ou igual a 2.097.152 MB (2 TB).

0
0 1
Novo
InterSystems Oficial Danusa Calixto · 17 hr atrás

A versão 0.10.6 do IPM foi lançada em 24 de fevereiro de 2026. Esta versão corrige principalmente erros, mas também adiciona a flag -export-python-deps aos comandos de pacote e publicação para incluir as dependências do Python no próprio módulo IPM. Como de costume, você pode conferir a versão na página do GitHub ou através do Registro da Comunidade.

Segue o registro completo das alterações:

Adicionado

  • #1024: Adicionada a flag -export-python-deps ao comando de publicação.

Corrigido

  • #996: Garante que os comandos COS sejam executados no modo exec em um contexto dedicado e isolado.
0
0 3
Novo
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 5
Novo
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.
0
0 5
Novo
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 10
Novo
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 7
Novo
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 3
Novo
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 7
Novo
Artigo Bruno Santos · Mar. 19 8m read

O problema

Quantas vezes migramos uma instância do IRIS para outra máquina, talvez até para outra versão, e depois de alguns dias percebemos que esquecemos aquela configuração de SSL essencial para que um Business Operation funcione? Ou talvez uma credencial, ou até uma classe solitária em um pacote isolado?

A solução

A solução simples é fazer um checklist¹. Um checklist das entidades que precisamos mover. Porém, checklists simples em documentos do Word muitas vezes são esquecidos ou simplesmente ignorados.

0
1 17
Novo
InterSystems Oficial Danusa Calixto · Mar. 18

A versão 0.10.5 do IPM foi lançada em 15 de janeiro de 2026. Esta nova versão contém diversas melhorias e correções de bugs, então não deixe de conferir diretamente na página do GitHub ou no Registro da Comunidade!

As principais mudanças incluem:

  • Uma reescrita da resolução de dependências que melhora drasticamente o desempenho, incluindo um aumento de velocidade de 200 vezes em casos muito complexos.
  • Um registro de histórico que rastreia as instalações, carregamentos, atualizações e desinstalações do IPM, que pode ser visualizado usando o comando zpm "log".
0
0 5
Novo
Artigo Larissa Prussak · Mar. 17 1m read

Como parte da nova onda de UI de Interoperabilidade (veja as novidades de 2025.1, e 2025.3 por @Aya Heshmat), v2026.1 já disponível como Developer Preview , pode ser um bom motivo para você experimentá-la. Ela traz a nova interface para visualização e busca de mensagens, incluindo o Rastreamento Visual (e outras melhorias visuais).

Aqui vai uma rápida demonstração:

0
0 10
Artigo Danusa Calixto · Set. 17, 2025 3m read

Olá, pessoal! Tendo me integrado recentemente à InterSystems, percebi que, apesar de ter uma Edição Comunitária totalmente gratuita e incrível, não é muito claro como obtê-la. Decidi escrever um guia destacando todas as diferentes maneiras de acessar a Edição Comunitária do InterSystems IRIS:

Obtenha o InterSystems IRIS Community Edition como um contêiner

Trabalhar com uma instância em contêiner da Community Edition é a abordagem recomendada para quem está começando a desenvolver no InterSystems IRIS e, na minha opinião, é a mais simples. A Community Edition do InterSystems IRIS pode ser encontrada no DockerHub; se você tiver uma conta InterSystems SSO, também poderá encontrá-la no Registro de Contêineres da InterSystems.

Em ambos os casos, você vai querer extrair a imagem desejada usando o Docker CLI:

docker pull intersystems/iris-community:latest-em
// or
docker pull containers.intersystems.com/intersystems/iris-community:latest-em

Em seguida, você precisará iniciar o contêiner: para interagir com o IRIS de fora do contêiner (por exemplo, para usar o portal de gerenciamento), você precisará publicar algumas portas. O comando a seguir executará o contêiner IRIS Community Edition com as portas do superservidor e do servidor web publicadas; observe que você não pode executar nada que dependa das portas 1972 ou 52773!

docker run --name iris -d --publish 1972:1972 --publish 52773:52773 intersystems/iris-community:latest-em
2
0 145
Novo
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 8
Novo
Artigo Larissa Prussak · Mar. 10 2m read

À medida que as aplicações escalam, lidar com tarefas computacionais pesadas de forma síncrona se torna um gargalo. Seja para processar grandes volumes de dados, enviar e-mails em massa ou gerenciar integrações com APIs, uma arquitetura desacoplada é essencial.

Desenvolvi recentemente o %ZQueue, um sistema de gerenciamento de filas baseado em processos que combina a persistência de alto desempenho do InterSystems IRIS com um moderno painel em Angular.

A Arquitetura Central: Por que usar uma Fila?

O sistema utiliza o clássico modelo Produtor-Consumidor.

0
0 7
Novo
Artigo Larissa Prussak · Mar. 10 1m read

Isso serve mais como um lembrete pessoal, mas achei que valia compartilhar porque o assunto aparece frequentemente nos comentários, porém não está na documentação da InterSystems.

Existe um utilitário excelente chamado ^REDEBUG que aumenta o nível de registro (logging) no arquivo mgr\cconsole.log.

Para ativá-lo:

a) Inicie o terminal e faça login 

b) zn "%SYS" 

c) do ^REDEBUG 

d) Altere o nível de logging para FFFFFFFF

Se você estiver em um sistema de produção (com muito tráfego), sugiro que você reproduza o erro rapidamente, renomeie o arquivo cconsole.

0
0 8
Artigo Heloisa Paiva · Mar. 9 1m read

A InterSystems Ready 2026 Conference está se aproximando rapidamente — é um ótimo momento para se preparar e testar seus conhecimentos antes de tentar um dos exames de Certificação no local.

As certificações da InterSystems não são fáceis: você precisa praticar com questões alinhadas aos objetivos reais do exame.

O exam-prep.es é uma plataforma gratuita construída exatamente para isso: praticar, identificar pontos fracos e chegar mais bem preparado.

O que você encontrará

* Mais de 1.

0
0 15
Artigo Larissa Prussak · Mar. 6 2m read

No cenário moderno da saúde, encontrar pacientes clinicamente semelhantes muitas vezes parece procurar uma agulha no palheiro. As buscas tradicionais por palavras-chave frequentemente falham porque a linguagem médica é altamente específica; uma pesquisa por "Insuficiência Cardíaca" pode não encontrar um registro que contenha "Insuficiência Cardíaca Congestiva".

Tenho o prazer de apresentar o iris-medmatch, um mecanismo de correspondência de pacientes com IA, desenvolvido sobre o InterSystems IRIS for Health.

0
0 11
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 11
Discussão Heloisa Paiva · Mar. 6

Alguém a fim de uma rodada de golfe?

Você está cansado de fazer uma máquina escrever código para você? Sente falta de resolver problemas por conta própria? Então você está com sorte: nesta rodada, proponho adicionar a regra de não usar IA. Obviamente, é um jogo de honra sem prêmios, então não poderei fiscalizar, mas você saberá... 

Desafio:

Crie uma função que receba uma string como parâmetro e retorne o comprimento da maior sequência de vogais e consoantes alternadas. A sequência é interrompida ao haver duas vogais ou duas consoantes

0
0 17
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 24
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.
0
0 13
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 9
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 12
Artigo Heloisa Paiva · Mar. 2 2m read

Inspirado pela postagem de @Ashok Kumar T no portal de ideias aqui, bem como pelos meus próprios desejos de uma solução para este problema, criei uma maneira simples de permitir consultas JSON mais completas e consistentes sem ter que especificar cada campo desejado. Desenvolvi uma classe que estende a classe integrada %JSON.Adaptor e torna seus métodos %JSONExportToString e %JSONExportToStream acessíveis através de SQL com apenas alguns métodos SqlProc simples.

Class DH.JSONAdaptor Extends %JSON.Adaptor [ Abstract ]
{
ClassMethod jsonstring(id, map = "") [ SqlProc ]
{
	try{
		set myobj = .
0
0 18