Novo
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, extras...) As%Status
{
    Write"Parâmetro fixo: ",
0
0 2
Novo
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.

Escolhendo o Modelo de Dados

Para este experimento, escolhi o Samples BI

0
0 4
Novo
Artigo Heloisa Paiva · Fev. 17 3m read

Utilizamos o JDBC Gateway do Caché para servidores Oracle e SQL para invocar diretamente seus stored procedures a partir do Ensemble. A obtenção de resultados de dados rápidos e em linha é normalmente tratada dentro da classe Functions.Library como uma função para envolver a consulta e formatar o retorno adequadamente.

Mas e quanto a stored procedures mais elaborados, feitos para postar dados sem congestionar um Router?As operações para construir esses pipelines de dados podem se tornar cansativas, especialmente quando mudanças são necessárias.

0
0 9
Novo
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 12
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.

Em meus artigos anteriores sobre agentes

2
0 23
Anúncio Heloisa Paiva · Fev. 10

Olá comunidade InterSystems EHR,

A InterSystems Certification está desenvolvendo atualmente um exame de certificação para usuários CCR Tier 2 e, se você corresponder à descrição do candidato abaixo, gostaríamos que você fizesse o teste beta do exame! O exame estará disponível para testes beta a partir de 27 de janeiro de 2026.

Os testes beta serão concluídos em 28 de março de 2026.

Quais são minhas responsabilidades como testador beta?

Como testador beta, pedimos que você agende e faça o exame até 28 de março de 2026. O exame será administrado em um ambiente monitorado online gratuitamente (a

0
0 16
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).Audit() ClassMethod Audit() [ Language = python ] 
{ 
    import sys 
    import time
    
    def logger(event,args):      
        if event=='import':         
        module = args[0]         
        print(f"Carregando
0
0 16
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 16
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 funciona?

É muito simples: ele aproveita os recursos do Embedded Python

1
0 20
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 Azure. 

Agora, antes de começar o passo a passo, quero admitir que fiquei apavorado ao usar a AWS pela primeira vez porque vi memes sobre como é

0
0 19
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.

Mas aqui está uma breve descrição baseada no link acima:

O Recurso FHIR List representa uma coleção plana (opcionalmente ordenada) de registros usados para listas clínicas (ex: alergias, medicamentos, alertas, históricos) e gerenciamento de fluxo de

0
0 17
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.

Por exemplo:

  • Access Token Placement (Header | Body | Query)
  • Grant Type (Password | JWT
0
0 22
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.

0
0 25
Artigo Heloisa Paiva · jan 22 1m read

O InterSystems IRIS for Health v2024.3 já está disponívelcomo Developer Preview há algum tempo, e eu gostaria de destacar o novo suporte relacionado à Busca FHIR (FHIR Search) que foi introduzido.

Foram adicionados suportes a dois Modificadores -

Estes permitirão consultas de busca mais flexíveis, sofisticadas e ricas.

E um Parâmetro de Resultado de Busca -

Isso permitirá resultados mais compactos (e potencialmente mais eficientes).

Veja também as Notas de Lançamento (Release Notes) relacionadas.

0
0 16
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/.write, que são baseados no suporte de escopo do servidor

0
0 22
Artigo Heloisa Paiva · jan 20 4m read

Olá a todos, sou eu novamente para compartilhar o que ando estudando recentemente.😓

Recentemente, estou estudando como configurar a autenticação OAuth2 para o repositório InterSystems FHIR. E descobri que os seguintes artigos são muito bons e fáceis de seguir.😁

SMART on FHIR EHR Launch com IRIS for Health

Construindo um Repositório FHIR + Configuração de Servidor de Autorização OAuth2/Servidor de Recursos no IRIS for Health Parte 2

Para mim, como um usuário que não possui muito conhecimento sobre OAuth2.0, acho bastante difícil entender como configurar todo o ambiente OAuth2.0 antes de saber

0
0 20
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.

Bancos de

0
0 16
Artigo Heloisa Paiva · jan 12 5m read

Motivação

Eu não conhecia ObjectScript até começar meu novo emprego. Objectscript não é exatamente uma linguagem de programação jovem. Comparada a C++, Java e Python, a comunidade não é tão ativa, mas estamos empenhados em tornar este lugar mais vibrante, não estamos?

Notei que alguns dos meus colegas acham complicado entender as relações de classes nesses projetos enormes. Não existe nenhuma ferramenta moderna de diagrama de classes fácil de usar para ObjectScript.

Trabalhos Relacionados

Eu testei trabalhos relevantes:

- InterSystems class view: 1.

0
0 22
Artigo Heloisa Paiva · jan 8 22m read

Sumário

  1. Propósito do artigo
  2. O que são containers e por que eles fazem sentido com o IRIS
    1. Containers e Imagens em poucas palavras
    2. Por que containers são úteis para desenvolvedores
    3. Por que o IRIS funciona bem com o Docker
  3. Pré-requisitos
  4. Instalando a imagem do InterSystems IRIS
    1. Usando o Docker Hub
    2. Puxando a imagem
  5. Executando a imagem do InterSystems IRIS
    1. ​​​​​​​Iniciando um container do IRIS
    2. Verificando o status do container
    3. Executando código no terminal do container
    4. Acessando o IRIS Management Portal
    5. Conectando o container ao VS Code
    6. Parando ou removendo o container
    7. Definindo uma senha específica com uma montagem de vínculo (bind mount) 
    8. Usando volumes %SYS duráveis                       
      1. O que é armazenado com o %SYS durável            
      2. Como habilitar o %SYS durável
  6. Usando Docker Compose
     6.1 Exemplo de Docker Compose
     6.2 Executando Docker Compose
  7. Usando um Dockerfile para executar código-fonte personalizado
    1. Exemplo de Dockerfile
    2. Exemplo de Docker Compose
    3. Entendendo camadas, tagging de imagem e tempo de build vs. tempo de execução
    4. Código-fonte e script de inicialização (init script)
    5. Construindo a imagem com Dockerfile
    6. Executando instruções no terminal IRIS containerizado
  8. Conclusão e próximos passos
0
0 41
Artigo Heloisa Paiva · Dez. 27, 2025 2m read

Você envia uma requisição HTTP e recebe de volta um erro HTTP, mas com uma página de erro HTML que você não esperava... o que está acontecendo? 🤔

Especificamente, por exemplo: talvez você tenha tentado ler um recurso FHIR (ex: /Patient/123) e recebeu uma página de erro 404, embora com outros IDs de pacientes você receba o payload do recurso normalmente — então "a página" definitivamente existe... por que você estaria recebendo uma página de erro 404? 🙄

1
0 37
Artigo Heloisa Paiva · Dez. 26, 2025 1m read

As capacidades integradas de busca vetorial do InterSystems IRIS nos permitem pesquisar dados não estruturados e semiestruturados. Os dados são convertidos em vetores (também chamados de ‘embeddings’) e, em seguida, armazenados e indexados no InterSystems IRIS para busca semântica, geração aumentada de recuperação (RAG), análise de texto, motores de recomendação e outros casos de uso.

Esta é uma demonstração simples do IRIS sendo usado como um banco de dados vetorial e de busca por similaridade no IRIS.

Pré-requisitos:

  • Python
  • InterSystems IRIS for Health – que será utilizado como o banco de
0
0 35
Artigo Heloisa Paiva · Dez. 23, 2025 3m read

Olá amigo! 😊 Como você está hoje?

Gostaria de compartilhar uma pequena parte dos meus aprendizados no meu primeiro projeto oficial: a integração de máquinas de POS/EDC com nosso sistema de faturamento. Foi um desafio empolgante onde tive experiência prática trabalhando com APIs e fornecedores.

Como uma máquina de pagamento realmente funciona?

É simples: comece iniciando/criando uma transação e, depois, recupere o status do pagamento dela.

Aqui, iniciar/criar refere-se ao método POST, e recuperar refere-se ao GET.

0
0 39
Artigo Heloisa Paiva · Dez. 22, 2025 2m read

O Poder da Indexação em Tabelas de Banco de Dados

Ao trabalhar com bancos de dados, a maioria dos desenvolvedores entende o conceito de um índice e por que ele é usado: para acelerar a recuperação de dados. Mas o real impacto da indexação muitas vezes só fica claro quando comparamos cenários com e sem ela.

Você sabe o que acontece sem um índice?
Imagine uma tabela com três colunas: Name, Age, e MobileNumber.


Considere esta consulta:

Se a coluna Idade (Age) não tiver um índice, o motor do banco de dados irá:

  • Verificar se o campo da condição WHERE possui um índice.
  • Se não houver, ele fará uma
0
0 36
Artigo Heloisa Paiva · Dez. 17, 2025 6m read

Sumário

  1. Introdução
  2. Controle de Versão
  3. Exportando Classes
  4. Exportando Classes de BI Analytics
  5. Exportando Globals

Introdução

Neste artigo, cobriremos um início rápido para o desenvolvimento com Git na Comunidade de Desenvolvedores InterSystems e as práticas de controle de versão ao trabalhar com IRIS InterSystems. Abordaremos cenários em que precisamos exportar classes de Interoperabilidade, globals e elementos de analytics, como cubos e dashboards. Esses cenários englobam as principais práticas de controle de versão com o IRIS.

Para começar, você precisará:

  1. Registrar-se e fazer login noGit
0
0 53
Artigo Heloisa Paiva · Dez. 15, 2025 5m read

Olá Comunidade!👋
Bem-vindos à segunda parte da série Utilitário IRIS IO. Esta extensão representa minha inscrição para o Concurso "Trazendo Ideias à Realidade" 2025 da InterSystemse oferece uma interface intuitiva e poderosa para importar e exportar dados diretamente no VS Code.

Se você achar esta extensão útil, por favor, considere votar em mim no concurso!


No artigo anterior,

0
0 40
Artigo Heloisa Paiva · Dez. 9, 2025 4m read

Um dos recursos mais recentes do .Net Core 10 com C# 14 são os aplicativos baseados em arquivo. Este recurso permite que você execute código C# em um arquivo .cs simples, sem a necessidade de criar uma solution, um projeto ou qualquer uma das estruturas relacionadas.

Por exemplo, você pode criar um arquivo script.cs usando o bloco de notas com o seguinte conteúdo:

Console.WriteLine(“This is a script in c#.”);

Então, na linha de comando ou no terminal, você executa o comando:

dotnet run script.cs

Há muitas informações sobre este novo recurso do .Net 10.

0
0 36
Artigo Heloisa Paiva · Dez. 5, 2025 3m read

Boas-vindas ao resumo mensal de atualizações e lançamentos do VS Code e das extensões relacionadas à InterSystems que são relevantes para os desenvolvedores IRIS.

Vamos detalhar as atualizações que são relevantes para os desenvolvedores InterSystems com dicas sobre como elas podem ser aplicadas em seus projetos diários.

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

VS Code versão 1.106

Painel unificado do agente de IA - A

0
0 37
Artigo Heloisa Paiva · Nov. 24, 2025 4m read

Olá!

A migração de dados costuma parecer uma simples "tarefa de mover dados de A para B" até você realmente fazê-lo. Na realidade, é um processo complexo que combina planejamento, validação, testes e precisão técnica.

Em vários projetos nos quais lidei com a migração de dados para um HIS (Sistema de Informação Hospitalar) que roda em IRIS (TrakCare), percebi que o sucesso é resultado de uma combinação de disciplina e automação.

Aqui estão alguns pontos que desejo destacar:

1. Comece com um Formato de Dados Definido.

Antes mesmo de abrir seu primeiro arquivo, certifique-se de que todos, especialmente os fornecedores de dados, entendam claramente o formato de dados exato que você espera. Definir modelos (templates) logo no início evita idas e vindas desnecessárias e retrabalho mais tarde.

Embora os formatos Excel ou CSV sejam comuns, eu pessoalmente sinto que usar um arquivo de texto delimitado por tabulação (.txt) para upload de dados é a melhor opção. É leve, consistente e evita problemas com vírgulas dentro de campos de texto.

PatID   DOB Gender  AdmDate
10001   2000-01-02  M   2025-10-01
10002   1998-01-05  F   2025-10-05
10005   1980-08-23  M   2025-10-15

Certifique-se de que os formatos de data fornecidos no arquivo estejam corretos e constantes em todo o arquivo, pois todos esses arquivos geralmente são convertidos de um arquivo Excel e um usuário básico de Excel pode cometer erros ao fornecer formatos de data incorretos. Formatos de data errados podem ser irritantes ao tentar converter para o formato $Horolog.

0
0 51
Artigo Heloisa Paiva · Nov. 15, 2025 1m read

O ObjectScript não inclui nenhum método embutido para anexar um array dinâmico JSON a outro. Aqui está um trecho de código que uso, que é equivalente ao método concat() do JavaScript.

Chame-o com qualquer número de argumentos para concatená-los em um novo array. Se um argumento for um array dinâmico, seus elementos serão adicionados. Caso contrário, o próprio argumento será adicionado.

ClassMethod ConcatArrays(pArgs...) As %DynamicArray
{
	set outArray = ##class(%DynamicArray).%New()
	for i=1:1:pArgs {
		set arg = pArgs(i)
		if ($IsObject(arg) && arg.%IsA("%DynamicArray")) {
			set iter =
0
0 39
Artigo Heloisa Paiva · Nov. 13, 2025 2m read

Rubrica de FAQ da InterSystems

Ao exportar usando o método Export() da classe %Library.Global, se o formato de exportação (quarto argumento: OutputFormat) for definido como 7, "Block format/Caché block format (%GOF)", os globais mapeados não podem ser exportados (apenas os globais no banco de dados global padrão do namespace são exportados). Para exportar globais mapeados no formato "Block format/Caché block format (%GOF)", especifique o diretório do banco de dados para o qual você deseja mapeá-los no primeiro parâmetro de %Library.Global.Export().

Um exemplo de execução é mostrado abaixo:

 set
0
0 43