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 18
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 10
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 12
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 15
Artigo Larissa Prussak · Set. 18, 2025 1m read

Se um dos seus pacotes no OEX recebe uma avaliação, você é 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 fotografia instantânea e pode já ter mudado desde então.
As avaliações feitas por outros membros da comunidade são marcadas com * na última coluna.

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

1
0 34
Artigo Larissa Prussak · Ago. 29, 2025 1m read

InterSystems FAQ rubric

Existem dados, como registros de log de execução, que você pode não querer que voltem ao estado anterior mesmo se ocorrer um rollback durante uma transação.
Esse requisito pode ser atendido colocando esses dados no banco de dados IRISTEMP, que não sofre rollback.

Temporary Globals and the IRISTEMP Database

Ao mapear para esse banco as entidades de tabela que você não deseja que sofram rollback, é possível manter as informações após a reversão.

No entanto, o conteúdo desse banco será apagado quando o IRIS for reiniciado

0
0 30
Artigo Larissa Prussak · Ago. 29, 2025 1m read

Como parte de um projeto técnico recente de documentação para otimizar a busca, precisei usar Embedded Python no meu código ObjectScript.
O principal obstáculo foi passar uma lista do Python, criada em um método de classe Python, para um método ObjectScript.

Enviar a lista por referência para o método Python, preenchê-la com o método Insert(), e retornar a referência para o método ObjectScript resultava em uma lista do tipo %SYS.Python. Esse processo era simples, mas pouco eficiente.

0
0 50
Artigo Larissa Prussak · Ago. 29, 2025 1m read

InterSystems FAQ rubric

Por padrão, a ordem das colunas em uma tabela é determinada automaticamente pelo sistema.
Para alterar a ordem, defina explicitamente a ordem de cada propriedade utilizando a palavra-chave SqlColumnNumber ao definir a classe.

Exemplo:

Property Name As %String [SqlColumnNumber = 2];

Consulte a documentação abaixo.

SqlColumnNumber

Se você deseja alterar o nome da tabela SQL, especifiqueSqlTableName. Se você deseja alterar o nome da coluna (nome do campo), especifiqueSqlFieldName.

Ambos se aplicam apenas a classes persistentes.

0
0 25
Artigo Larissa Prussak · Ago. 5, 2025 1m read

Revisando meus pacotes publicados, identifiquei um bug sério na IRIS Native API.

Existe um método em %Net.DB.Iris chamado function().
Ele é equivalente ao comando ObjectScript $$label^routine(param).
Isso funcionava bem há 2 anos, quando publiquei meus pacotes de extensões para linha de comando.
Agora, está quebrado há pelo menos 1 ano e gera o erro <PROTECT>.

Identifiquei o problema em ObjectScript, Java, Python e Node.js.
Foi registrado como WRC# 1002589.

Para todos os 4 casos, também verifiquei uma solução alternativa:
Em vez de chamar uma Function do ObjectScript, você deve chamar um ClassMethod.

1
0 50
Artigo Larissa Prussak · Jul. 24, 2025 2m read

Se você está investigando Globals estruturadas complexas, isso pode facilmente se tornar um exercício cansativo de digitação.
Diferente do Global Explorer no System Management Portal, o Global-Inspector permite um tipo de navegação aprofundada (drill-down), permitindo explorar nível por nível dos subscritos. Você também tem a opção de visualizar o conteúdo armazenado ou mostrar apenas a estrutura de subscritos. Globals que armazenam tabelas SQL podem não ser tão interessantes, mas no espaço SYSTEM, você encontrará verdadeiras árvores com ramos e ramificações completamente diferentes.

2
0 54
Artigo Larissa Prussak · Jul. 24, 2025 1m read

Você está curioso para saber como executar scripts Python diretamente no terminal do InterSystems IRIS ou Caché? 🤔
Boa notícia: é fácil! 😆
O IRIS oferece suporte ao Embedded Python, permitindo que você use Python de forma interativa dentro do terminal do IRIS.

Como acessar o Shell do Python?

Para iniciar o shell do Python a partir do terminal do IRIS, basta executar o seguinte comando:

do ##class(%SYS.Python).Shell()

Esse comando abre um shell interativo do Python dentro do terminal do IRIS. A partir daí, você pode escrever e executar código Python como faria em um ambiente Python normal.

0
0 46
Artigo Larissa Prussak · Jul. 3, 2025 2m read

Fazendo Profiling de Documentos CCD com o CCD Data Profiler da LEAD North

Já abriu um CCD e foi recebido por uma parede de XML confuso? Você não está sozinho. Apesar de ser um formato essencial para a troca de dados clínicos, os CCDs são notoriamente densos, verbosos e pouco amigáveis à leitura humana. Para desenvolvedores e analistas que tentam validar sua estrutura ou extrair informações significativas, navegar por esses documentos pode parecer mais arqueologia do que engenharia.


0
0 54
Artigo Larissa Prussak · Jun. 30, 2025 3m read

Olá, desenvolvedores!

Observando a avalanche de ferramentas para desenvolvedores movidas por IA e baseadas em vibe-coding que vêm surgindo quase todo mês, com recursos cada vez mais interessantes, eu fiquei me perguntando se seria possível aproveitá-las com o InterSystems IRIS. Pelo menos para construir um frontend. E a resposta é: sim! Pelo menos com a abordagem que eu segui.

Aqui está minha receita para construir a interface via prompting conectada ao backend IRIS:

  1. Tenha uma REST API no lado do IRIS, que siga uma especificação Open API (swagger).
  2. Gere a interface com alguma ferramenta de vibe-coding (por exemplo, Lovable) e aponte essa interface para o endpoint da REST API.
  3. Pronto!

Aqui está o resultado do meu próprio exercício — uma interface 100% criada via prompt conectada a uma REST API IRIS, que permite listar, criar, atualizar e excluir registros de uma classe persistente (Open Exchange, código do frontend, vídeo):

Qual é a receita em detalhes?

0
0 59
Artigo Larissa Prussak · Jun. 29, 2025 3m read

Talvez isso já seja bem conhecido, mas quis compartilhar para ajudar.

Considere que você tem as seguintes definições de classes persistentes:

Uma classe Invoice (Fatura) com uma propriedade de referência para Provider (Prestador de serviço):

Class Sample.Invoice Extends (%Persistent, %Populate)
{
Parameter DSTIME = "AUTO";
Property InvoiceNumber As %Integer(MINVAL = 100000) [ Required ];
Property ServiceDate As %Date(MINVAL = "+$h-730") [ Required ];
Index InvoiceNumber On InvoiceNumber;
Property Provider As Sample.
0
0 62
Artigo Larissa Prussak · Jun. 17, 2025 2m read

Público-alvo

  • Pessoas interessadas em explorar novos usos para Generative AI.
  • Desenvolvedores e analistas que buscam uma forma rápida de lidar com o operador Pattern Match.

Em ObjectScript e SQL, esse operador costuma ter um formato bastante denso visualmente.

Exemplo:

 if booking?2A1"-"1(1"CARD",1"RAD")1.5N
SELECT DISTINCT PatientRef
FROM APPOINTMENT.BOOKING
WHERE Active='Y' AND
LocationCode %PATTERN '2A1"-"1(1"CARD",1"RAD")1.5N'

Desafio

Usar Generative AI para ajudar a criar e modificar códigos de pattern match a partir de descrições em linguagem natural.

1
0 37
Artigo Larissa Prussak · Jun. 17, 2025 3m read

Se você está migrando do Oracle para o InterSystems IRIS — como muitos dos meus clientes — pode se deparar com padrões específicos de SQL do Oracle que precisam ser adaptados.

Veja esse examplo:

SELECT (TO_DATE('2023-05-12','YYYY-MM-DD') - LEVEL + 1) AS gap_date
FROM dual
CONNECT BY LEVEL <= (TO_DATE('2023-05-12','YYYY-MM-DD') - TO_DATE('2023-05-02','YYYY-MM-DD') + 1);

No Oracle:

  • LEVEL é uma pseudo-coluna usada em consultas hierárquicas (com CONNECT BY). Ela começa em 1 e incrementa de 1 em 1.
  • CONNECT BY LEVEL <= (...)
0
0 65
Artigo Larissa Prussak · Jun. 5, 2025 5m read

Por muito tempo, eu quis aprender o framework Django, mas sempre surgia algum projeto mais urgente que acabava tomando prioridade. Como muitos desenvolvedores, eu uso Python para projetos de machine learning, mas quando comecei a aprender programação para web, o PHP ainda dominava. Então, quando precisei escolher um framework mais robusto para criar aplicações web e publicar meu trabalho de machine learning, acabei voltando para o PHP.

0
0 70
Artigo Larissa Prussak · Jun. 5, 2025 3m read

O IRIS oferece suporte nativo para transformações CCDA e FHIR, mas o acesso e a visualização desses recursos exigem tempo considerável de configuração e conhecimento do produto. O aplicativo IRIS Interop DevTools foi desenvolvido para preencher essa lacuna, permitindo que implementadores comecem a utilizar e visualizar imediatamente as capacidades de transformação embutidas no produto.

0
0 64
Artigo Larissa Prussak · Maio 23, 2025 1m read

Depois que implementamos um novo container baseado em containers.intersystems.com/intersystems/irishealth:2023.1 esta semana, percebemos que nosso FHIR Repository começou a responder com um Erro 500. Isso aconteceu devido a violações de PROTECT no novo namespace e banco de dados HSSYSLOCALTEMP utilizado por essa versão dos componentes FHIR do IRIS for Health.

A solução para isso é adicionar a permissão "%DB_HSSYSLOCALTEMP" nas Aplicações Web que processam as requisições FHIR.

0
0 37
Artigo Larissa Prussak · Maio 23, 2025 1m read

Apresento o FHIRCraft, uma ferramenta leve para gerar recursos FHIR sintéticos.

Talvez vocês estejam pensando:
“Mas... já não existe o Synthea, que gera um monte de recursos FHIR?”
Exatamente — e foi justamente por isso que criei este aplicativo.

O FHIRCraft foi desenvolvido para gerar recursos FHIR mais simples, pequenos e focados. Diferente do Synthea, ele não pretende simular prontuários clínicos completos nem fluxos assistenciais.

0
0 46
Artigo Larissa Prussak · Mar. 20, 2024 2m read

Você já editou arquivos no VS Code, mas precisou verificar um valor global ou executar alguns comandos do ObjectScript? Agora você pode, sem necessidade de configuração! Se você tem vscode-objectscript extension version 2.10.0 ou posterior e estiver conectado ao InterSystems IRIS 2023.2 ou posterior, agora você pode abrir uma conexão de terminal com seu servidor, independentemente de onde ele esteja localizado.

1
0 260
Artigo Larissa Prussak · Mar. 18, 2024 4m read

Ao usar o InterSystems IRIS como mecanismo de interoperabilidade, todos sabemos e amamos como é fácil usar o Message Viewer para revisar rastreamentos de mensagens e ver exatamente o que está acontecendo em sua produção. Quando um sistema lida com milhões de mensagens por dia, você pode não saber exatamente por onde começar sua investigação.

Ao longo dos meus anos apoiando as produções da IRIS, muitas vezes me peguei investigando coisas como...

  • Que tipo de rendimento esse fluxo de trabalho tem?
  • Onde está o gargalo?
0
0 96
Artigo Larissa Prussak · Mar. 15, 2024 1m read

Rubrica de perguntas frequentes da InterSystems


Os mapas de registros são usados ​​para mapear com eficiência arquivos contendo registros delimitados ou registros de largura fixa para classes de mensagens usadas pela função de interoperabilidade e para mapear arquivos de classes de mensagens da função de interoperabilidade para arquivos de texto.

As definições de mapeamento do mapa de registros podem ser criadas usando o Portal de Gerenciamento, e também fornecemos um assistente de registro CSV que permite definir durante a leitura de um arquivo CSV.

0
0 81
Artigo Larissa Prussak · Mar. 14, 2024 1m read

Participei do concurso InterSystems Women’s Health FHIR porque adorei o desafio de aprender uma tecnologia nova para mim. Eu queria desenvolver um aplicativo que recebesse dados de um dispositivo móvel como meu Fitbit ou Smart Watch. Não tive acesso a esses dados, exceto quando baixei uma planilha (arquivo CSV) mostrando meus passos diários e dados de sono. Vi no iris-fhir-template que ele importou alguns dados do paciente para um servidor FHIR.

0
0 81
Artigo Larissa Prussak · Fev. 14, 2024 1m read

Rubrica de perguntas frequentes da InterSystems

No Linux, siga as etapas a seguir para excluir uma instância do InterSystems IRIS (doravante denominada IRIS).

(1) Pare a instância IRIS que você deseja desinstalar usando iris stop 

# iris stop <instance name>

(2) Exclua as informações da instância usando o seguinte comando

# iris delete <instance name>

(3) Exclua o diretório de instalação do IRIS usando o comando rm -r 

# rm -r <install directory>

Além do diretório de instalação, o IRIS também usa (a) e (b) abaixo.

0
0 133
Artigo Larissa Prussak · Fev. 14, 2024 3m read

Após dois Webinars locais, focamos no VS Code ["Intro" e "Beyond Basics"; em hebraico], preparei para os participantes alguns links relacionados de recursos relevantes que enviamos como acompanhamento. Compartilhando-os aqui também para o benefício da Comunidade.
É claro que todos vocês são bem-vindos para adicionar mais recursos úteis.

0
0 104