#InterSystems IRIS

2 Seguidores · 969 Postagens

InterSystems IRIS é uma plataforma de dados completa
A InterSystems IRIS oferece tudo que você precisa para capturar, compartilhar, entender e agir com base no ativo mais valioso de sua organização - seus dados.
Como uma plataforma completa, a InterSystems IRIS elimina a necessidade de integração de múltiplas tecnologias de desenvolvimento. As aplicações requerem menos código, menos recursos do sistema e menos manutenção.

Artigo Heloisa Paiva · Fev. 12 6m read

image1

Alguns conceitos fazem todo sentido no papel, enquanto outros exigem que você coloque a mão na massa.
Veja dirigir, por exemplo. Você pode memorizar cada componente da mecânica do motor, mas isso não significa que você realmente saiba dirigir.

Você só consegue compreender de verdade quando está no banco do motorista, sentindo fisicamente o ponto de fricção da embreagem e a vibração da estrada sob você.
Embora alguns conceitos de computação sejam intuitivos, Agentes Inteligentes são diferentes. Para entendê-los, você precisa sentar no banco do motorista.

2
0 36
Artigo Heloisa Paiva · Fev. 17 3m read

O que são parâmetros variádicos?

O ObjectScript permite definir métodos que aceitam um número variável de argumentos usando a sintaxe `args...`. Em vez de fixar quantos parâmetros um método recebe, você deixa que quem chama decida quantos enviar.

Eles podem ser invocados de duas formas:

1. Com argumentos individuais: `metodo(val1, val2, val3)`

2. Expandindo um array: `metodo(args...)`

Crie seus próprios métodos variádicos

Você pode definir um método com um parâmetro fixo e um número variável de extras:

ClassMethod MiMetodo(fijo As %String,
0
0 11
Artigo Heloisa Paiva · Fev. 17 6m read

Como eu "Vibecodei" um Backend (e Frontend) no InterSystems IRIS

Eu queria testar o **vibecoding** em uma configuração real de backend + frontend no InterSystems IRIS, idealmente usando algo realista em vez de um exemplo de brinquedo. O objetivo era simples: pegar um pacote persistente existente e bem conhecido no IRIS e construir rapidamente uma interface de usuário (UI) e uma API utilizáveis ao redor dele — deixando a IA cuidar do máximo possível de código repetitivo (boilerplate). Aqui está o resultado dos experimentos.

0
0 15
Artigo Heloisa Paiva · Fev. 17 12m read

cover

Na Parte 1, estabelecemos a base técnica do MAIS (Multi-Agent Interoperability Systems). Conectamos com sucesso o "Cérebro", construímos um Adapter robusto usando LiteLLM, protegemos nossas chaves de API com o IRIS Credentials e, finalmente, deciframos o código do quebra-cabeça da interoperabilidade com Python.

No entanto, neste momento, nosso sistema é apenas um cano bruto para um LLM. Ele processa texto, mas carece de identidade.

Hoje, na Parte 2, definiremos a Anatomia de um Agente Passaremos de simples chamadas de API para Personas estruturadas.

0
0 24
Artigo Henry Pereira · Fev. 14 3m read

cover

Imagine uma sala escura. A única luz vem de uma parede de telas e de um prompt piscando que educadamente informa:

“LINK PARA M-U5K-3T: ALTA LATÊNCIA – CONTROLE DIRETO DESABILITADO.”

Perfeito.

Você é o comandante de Rover da Musketeer Corp. Em algum lugar absurdamente distante, você tem uma unidade autônoma estacionada em um exoplaneta hostil. Este exoplaneta quer te destruir, mas também está coberta de minerais que poderiam financiar uma pequena civilização.

O minério em M-U5K-3T está por toda parte. Infelizmente, todo o resto na superfície está ativamente tentando matar você.

0
0 10
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 18
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 25
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:

import websocket
import argparse
import requests
import json


def terminal(host, port, namespace, username, password, command, secure):
    session = requests.Session()
    r = session.get(f"http{"s" if secure else ""}://{host}:{port}/api/atelier/", auth=(username, password))
    cookies = session.cookies.get_dict()
    ws = websocket.WebSocket()
    ws.
0
0 22
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 13
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   
Successfully connected to Kong!
Kong version:  3.4.3.11

  • 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.
0
0 17
InterSystems Oficial Danusa Calixto · Fev. 13

A versão de manutenção 2025.1.3 da plataforma de dados InterSystems IRIS®, InterSystems IRIS® for HealthTM, and HealthShare® Health Connect já estão disponíveis para o público em geral (GA).

0
0 23
InterSystems Oficial Danusa Calixto · Fev. 13

As terceiras versões de pré-visualização para desenvolvedores da plataforma de dados InterSystems IRIS®, InterSystems IRIS® for Health e do HealthShare® Health Connect 2026.1 foram publicadas no site de pré-visualização para desenvolvedores do WRC. Os contêineres podem ser encontrados em nosso registro de contêineres e estão marcados com a tag latest-preview.

Essas pré-visualizações para desenvolvedores incluem a remoção do suporte a Mac Intel a partir da versão 2026.1.0 e a reintegração do suporte ao Windows Server 2019 na versão 2026.1.0.

0
0 18
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 21
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 15
Artigo Heloisa Paiva · Fev. 9 4m read

A PEP 578 adicionou hooks de auditoria ao Python. Uma grande variedade de eventos (carregamento de módulos, interações com o sistema operacional e assim por diante) aciona eventos de auditoria aos quais você pode se inscrever.

Veja como fazer isso. Primeiro, crie um hook de Python embutido (embedded python hook):

Class User.Python {

/// do ##class(User.Python).
0
0 23
Artigo Heloisa Paiva · Fev. 9 7m read

Olá! 

No meu último artigo, fiz um passo a passo sobre como você pode tentar implantar o InterSystems IRIS Community Edition, ou IRIS for Health Community Edition, gratuitamente na AWS. Nesta continuação, mostrarei o mesmo para o próximo maior provedor de nuvem, o Microsoft Azure. 

Assim como na AWS, o Azure também oferece uma opção gratuita ao se cadastrar, embora seja um pouco menos generosa - você recebe US$ 200 de crédito gratuito para gastar no primeiro mês.

0
0 20
Artigo Heloisa Paiva · Fev. 4 5m read

Quantas vezes você teve que receber ou gerar um JSON e desejou poder trabalhar nele usando DTLs sem ter que lidar com DynamicObjects tentando lembrar o nome de cada campo? Você quer dividir e tornar seu arquivo JSON gigante mais digerível?

No meu caso, nunca, mas pensei que alguém poderia achar útil ter um recurso que captura seu JSON e o divide em uma série de classes ObjectScript com as quais você pode trabalhar de forma mais fácil e conveniente.

Pois bem... contemplem o JSON2Class em toda a sua glória!

Como o JSON2Class

1
0 32
Artigo Heloisa Paiva · Fev. 3 6m read

Olá Pessoal! 

Você sabia que pode implantar o InterSystems IRIS Community Edition na nuvem sem pagar por uma licença? Você pode experimentar gratuitamente, e pode até ser útil se quiser exibir aquele novo aplicativo brilhante que você criou (talvez para a competição full stack..? ) 

Neste artigo, fornecerei um passo a passo completo sobre como implantar o IRIS na Amazon Web Services (AWS), e também adicionarei um acompanhamento para a implantação no

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

Se você está começando com o InterSystems ObjectScript, certamente vai se deparar com o comando XECUTE.
E iniciantes podem se perguntar: onde e por que eu precisaria usar isso?

A documentação oficial traz uma rica coleção de trechos de código, mas nenhum caso prático.
Recentemente, encontrei um caso de uso que gostaria de compartilhar com você.

O cenário:
Quando você constrói um container do IRIS com Docker, na maioria dos casos,
você executa o script de inicialização.

iris session iris < iris.
1
0 25
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 26
Artigo Edilson Eberle Carvalho · jan 29 3m read

Pessoal, a quem interessar possa.....

Desenvolvi uma Classe utilizando o python para ler um arquivo excel e gravar o conteúdo em global. Vejam como ficou: (fiquem a vontade para melhorias ou ajustes)

Class Utils.Importador Extends %RegisteredObject
{ /// Importa uma planilha Excel para a global ^ExcelData
/// Parâmetro: caminhoArquivo (Ex: "C:\Temp\dados.xlsx")
/// Exemplo de uso: Do ##class(Utils.Importador).

1
0 23
Artigo Heloisa Paiva · jan 25 7m read

Às vezes é mais conveniente, eficiente e seguro limitar as Buscas FHIR por "Listas" de Recursos pré-definidas.

Desde a v2025.1, suportamos vários recursos relacionados a Listas em nosso Servidor FHIR.

Vou destacar estes recursos aqui e fornecer alguns exemplos.

Em geral, você pode ver os detalhes sobre o Recurso List na documentação oficial do FHIR.

0
0 32
Artigo Heloisa Paiva · jan 24 1m read

Em sua Produção de Interoperabilidade, você sempre pôde ter uma Business Operation que atua como um cliente HTTP utilizando OAuth 2.0 para autenticação, mas era necessário customizar a Operation para essa metodologia de autenticação. Desde a v2024.3, que foi lançada recentemente, há uma nova capacidade, fornecendo novas configurações para lidar com isso de forma mais fácil.

Em sua Business Operation que utiliza o HTTP Outbound Adapter, você encontrará novas Configurações (Settings), sob o grupo OAuth.

0
0 27
Artigo Heloisa Paiva · jan 23 2m read

A auditoria é uma capacidade crítica que garante a segurança do seu servidor e, há algum tempo, incluímos a capacidade de auditar instruções SQL executadas no servidor.

Com a v2024.3 já disponível, estamos fornecendo opções com granularidade mais refinada para definir esses eventos a serem auditados.

Anteriormente, você podia decidir auditar instruções SQL de acordo com o mecanismo de acesso, por exemplo, executando instruções via JDBC/ODBC vs. SQL embarcado (ex: usando &sql em seu código) vs. SQL Dinâmico (ex: usando %SQL.

0
0 33
Artigo Heloisa Paiva · jan 21 3m read

Olá, agora gostaria de continuar com o tópico que discutimos anteriormente

Usando o Postman para testar o OAuth2.0 do repositório InterSystems FHIR - Parte 1


Pergunta 1: De onde vêm meu client_id e meu client_secret?

Resposta curta: Do Servidor de Autenticação.

Se você não possui um Servidor de Autenticação, pode configurar um da seguinte forma:

Forneça o hostname (o host deve suportar Https), pelo menos 1 tipo de concessão (escolhemos client credential aqui) e a configuração SSL/TLS

Insira os escopos (aqui inserimos user/.read e user/.

0
0 30
Artigo Heloisa Paiva · jan 19 4m read

O InterSystems IRIS é construído sobre uma arquitetura que separa a organização lógica dos dados (namespaces) de seu local de armazenamento físico (bancos de dados). Compreender essa separação e a distinção entre Namespaces e Bancos de Dados é crucial para uma gestão de dados eficaz, segurança e, especialmente, para o compartilhamento de dados de alta performance.

Neste artigo, discutirei esses componentes fundamentais e fornecerei um guia prático sobre como aproveitar os mapeamentos de globals para compartilhar estruturas de dados nativas (globals) entre diferentes ambientes lógicos.

0
0 23
Artigo Evandro Wendt · jan 19 1m read

A nova versão do InterSystems Testing Manager, que lancei na semana passada, traz a incrível Test Coverage Tool do @Timothy Leavitt para o VS Code e é a minha participação no concurso Developer Tools 2025.

Aqui está uma imagem de prévia mostrando como os testes unitários do projeto IPM ainda não cobrem um recurso que aparentemente permite que um repositório IPM sobrescreva sua ordem de classificação.

Observe como a linha 88 é destacada em vermelho como um aviso para o desenvolvedor.

0
0 25
Artigo Evandro Wendt · jan 16 3m read

Olá comunidade,

Quero compartilhar minha experiência trabalhando em projetos que lidam com um volume masivo de dados. Ao longo dos anos, tive a oportunidade de lidar com enormes volumes de dados de pacientes, dados de pagadores e logs transacionais enquanto trabalhava na indústria hospitalar. Tive a chance de criar relatórios enormes, que precisavam ser escritos usando lógicas avançadas para buscar dados em múltiplas tabelas, cujos índices não ajudavam a escrever código eficiente.

Aqui está o que aprendi sobre como gerenciar grandes volumes de dados de forma eficiente.

Escolhendo o melhor método de acesso aos dados

Como todos nós da comunidade sabemos, o IRIS oferece múltiplas maneiras de acessar dados. A escolha do método correto depende do requisito.

  • Acesso direto a global: o mais rápido para operações de leitura/gravação em massa. Por exemplo, se eu precisar percorrer índices e buscar dados de pacientes, posso percorrer as globais para processar milhões de registros. Isso economiza muito tempo.
Set ToDate=+H
Set FromDate=+$H-1 For  Set FromDate=$O(^PatientD("Date",FromDate)) Quit:FromDate>ToDate  Do
. Set PatId="" For  Set PatId=$Order(^PatientD("Date",FromDate,PatID)) Quit:PatId=""  Do
. . Write $Get(^PatientD("Date",FromDate,PatID)),!
  • Usando SQL: Útil para relatórios ou necessidades analíticas, embora seja mais lento para conjuntos de dados muito grandes.
0
0 21
Artigo Evandro Wendt · jan 16 5m read

Entrei na InterSystems há menos de um ano. Mergulhar em ObjectScript e no IRIS foi empolgante, mas também cheio de pequenas surpresas que me pegaram de surpresa no começo. Neste artigo, reúno os erros mais comuns que eu, e muitos colegas novos, cometemos, explico por que eles acontecem e mostro exemplos concretos e correções práticas. Meu objetivo é ajudar outros desenvolvedores iniciantes a economizarem tempo e evitarem os mesmos tropeços no caminho.

1.

0
0 32
Artigo Evandro Wendt · jan 16 3m read

Em um projeto em que estou trabalhando, precisamos armazenar alguns XMLs arbitrários no banco de dados. Esse XML não tem nenhuma classe correspondente no IRIS; precisamos apenas armazená-lo como uma string (ele é relativamente pequeno e cabe em uma string).
Como existem MUITOS (milhões!) de registros no banco de dados, decidi reduzir o tamanho o máximo possível sem usar compressão. Sei que parte do XML a ser armazenado está indentada, parte não, isso varia.

Para reduzir o tamanho, decidi minificar o XML, mas como minificar um documento XML no IRIS?

0
0 16