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….
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.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.Resumo
| Id do Alerta | Produtos & Versões afetados | Categoria e Pontuação de Risco | Requisitos Explícitos |
| DP-448888 |
Produtos: Versões: |
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).
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.
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?
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
GETePOST - 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.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).
O Sr.
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.
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.

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?
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.
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".
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:

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-emEm 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-emJá incluído no SystemPerformance
Existem comandos de disco nfs (incluindo nfsiostat) incluídos no SystemPerformance, mas desativados por padrão.
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.
À 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
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.
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.
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.
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.
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
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:
- 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.
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.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.
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.
Rubrica de FAQ da InterSystems
Ao se conectar ao banco de dados usando uma arquitetura cliente-servidor, por exemplo, usando language binding, o nome da máquina do cliente pode ser obtido usando o seguinte código:
set client=##CLASS(%SYS.ProcessQuery).Open("P"_$j).ClientNodeNameInspirado 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 = .Global Guard AI
1 Introdução
Em ambientes que utilizam InterSystems IRIS, os globals são a base física do armazenamento de dados. Apesar de existirem consultas de sistema e ferramentas administrativas para inspeção de métricas, a análise de crescimento de globals costuma ser reativa: o problema geralmente é percebido apenas quando há pressão de disco ou impacto de performance.

