Novo
Artigo Aziz Cotrim · Jun. 15 6m read

Durante minhas primeiras semanas estudando IRIS, cheguei a um momento que mudou bastante minha forma de olhar para essa plataforma. Eu estava explorando uma classe persistente simples, daquelas que a gente cria seguindo qualquer tutorial introdutório, e decidi abrir o Management Portal para ver como os dados estavam armazenados de fato. Esperava encontrar algo parecido com uma tabela do SQL Server, com linhas e colunas bem definidas. Em vez disso, encontrei uma global.

Para quem vem do modelo relacional, como é o meu caso, isso quebra um pouco a intuição.

0
0 18
Novo
Anúncio Vitor Leal da Silva · Jun. 11

Olá, Comunidade! 

Se você precisa ajudar os prestadores de serviços (médicos/hospitais) a atenderem aos requisitos de documentação de uma operadora de saúde, veja como o módulo de Modelos e Regras de Documentação (DTR) da solução InterSystems Payer Services ePrior Authorization pode ajudar:

 Modelos e Regras de Documentação

Neste vídeo, você aprenderá como o DTR facilita para os prestadores o cumprimento dos requisitos de documentação das operadoras de saúde ao enviarem solicitações de autorização prévia. 

Assista à playlist completa no YouTube  (10 min)

1
0 14
Novo
Artigo Moises Kerschner · Jun. 14 12m read

O problema real

Às 16h57 de uma sexta-feira, um pedido de exame de rotina falhou.

A amostra do paciente já estava em trânsito. O laboratório de referência externo rejeitou a requisição — não conseguiu identificar o paciente de forma única. A operadora de saúde rejeitou a autorização por um motivo diferente. Nenhum dos sistemas falava a mesma linguagem, nenhum expunha mensagens de erro compatíveis, e a única camada de integração no meio simplesmente repassava as requisições.

1
0 18
Novo
Artigo Aziz Cotrim · Jun. 12 1m read

Há um aumento constante na quantidade de metadados que preciso construir no fluxo de mensagens (entre BPs e DTLs) e estou interessado em um bom padrão a seguir que permita uma mistura de tipos de metadados (ex.: json, lista xml, etc.) e que seja acessível rapidamente tanto dentro de DTLs quanto de BPs.

Um exemplo disso seria adicionar diversos conjuntos de códigos localizados aos metadados durante os DTLs, que seriam usados posteriormente para enviar uma solicitação de tradução FHIR para um servidor de terminologia.

0
0 9
Novo
Discussão Aziz Cotrim · Jun. 12

Olá pessoal!

Suponha que uma nova versão da sua incrível solução de software construída sobre o IRIS precise de alguma mudança de persistência: alguns dados precisam ser convertidos, algumas classes recebem novas propriedades ou até são renomeadas, e alguns dados devem ser pré-populados para classes persistentes recém-introduzidas, para manter toda a base de dados da aplicação consistente.

Quais são as abordagens de vocês?

Scripts baseados em SQL? ObjectScript, ou Python? Para as duas direções da migração, up e down?

Vocês geram isso automaticamente com Claude/Codex?

0
0 8
Novo
Artigo Aziz Cotrim · Jun. 12 3m read

Olá!

Estou tentando compilar uma classe com Embedded Python e recebo este erro:

Compilation started on 06/12/2026 11:44:17 with qualifiers 'cuk'
Compiling class User.VectorSearch
ERROR #7802: Worker job/s '749:33' unexpectedly shut down in group '#Default:(446070926892):0'.
ERROR #7812: Work queue unexpectedly removed, shutting down.
ERROR #5002: ObjectScript error: <THROW>WaitForComplete+215^%SYS.WorkQueueMgr *%Exception.StatusException ERROR #7802: Worker job/s '749:33' unexpectedly shut down in group '#Default:(446070926892):0'.
ERROR #7812: Work queue unexpectedly removed, shutting down.
Detected 3 errors during compilation in 1.020s.
0
0 11
Pergunta Vitor Leal da Silva · Maio 25

Olá a todos. 

Após tentar executar métodos Python no Docker intersystemsdc/irishealth-community, que agora não permite executar nenhum método com Python, decidi deixar essa versão e começar a trabalhar com o [containers.intersystems.com/intersystems/iris-community](https://containers.intersystems.com/intersystems/iris-community)

Neste ambiente os métodos Python funcionam, o que já foi um passo bem grande. Estou tentando importar minhas bibliotecas com pip install -r requirements.txt

3
0 26
Novo
Artigo Vitor Leal da Silva · Jun. 12 2m read

Para desmontar/montar um banco de dados, use os métodos Dismount() e Mount() na classe SYS.Database, disponível no namespace . 

Nota: o ID do banco de dados é o seu diretório (Directory). 

Você encontrará alguns exemplos de como desmontar/montar e verificar se um banco de dados está montado () ou não (), além de visualizar rapidamente todos os atributos de um banco de dados (via zwrite).


%SYS>set db="/opt/irisapp/data" 

%SYS>w ##class(SYS.Database).%OpenId(db).Mounted                     
1
%SYS>w ##class(SYS.Database).%OpenId(db).Dismount()
1
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted   
0
%SYS>w ##class(SYS.Database).%OpenId(db).Mount()   
1
%SYS>w ##class(SYS.Database).%OpenId(db).Mounted
1
%SYS>zw ##class(SYS.Database).%OpenId(db)
+----------------- general information ---------------
|      oref value: 3
|      class name: SYS.Database
|           %%OID: $lb("/opt/irisapp/data","SYS.Database")
| reference count: 2
+----------------- attribute values ------------------
|       %Concurrency = 0  <Set>
|        BlockFormat = 2
|          BlockSize = 8192  <Set>
|             Blocks = 780288
|       BlocksPerMap = 62464
|   ClusterMountMode = 0  <Set>
|     ClusterMounted = 0  <Set>
|        CurrentMaps = 13
|          Directory = "/opt/irisapp/data/"  <Set>
|     DirectoryBlock = 3
|        EncryptedDB = 0  <Set>
|    EncryptionKeyID = ""
|          Expanding = 0
|      ExpansionSize = 0  <Set>
|               Full = 0
| GlobalJournalState = 3  <Get,Set>
|     InActiveMirror = 0
|  LastExpansionTime = "09/06/2023 20:00:01"
|            MaxSize = 0  <Set>
|MirrorActivationRequired = 0
|    MirrorDBCatchup = 0
| MirrorDBCreatedNew = 0
|       MirrorDBName = ""
|     MirrorDBPaused = 0
|   MirrorFailoverDB = 0
|      MirrorNoWrite = 0
|     MirrorObsolete = 0
|      MirrorSetName = ""
|           Mirrored = 0
|            Mounted = 1
| NewGlobalCollation = 5  <Set>
|NewGlobalGrowthBlock = 50  <Set>
|    NewGlobalIsKeep = 0  <Set>
|NewGlobalPointerBlock = 16  <Set>
|   NumberOfConfigDB = 0
|       ROReasonCode = 0
|       ROReasonText = ""
|           ReCreate = 0
|           ReadOnly = 0  <Set>
|    ReadOnlyMounted = 0
|       Reinitialize = 0
|        RequestSize = 0
|       ResourceName = "%DB_IRISAPP-DATA"
|RunCatchupDBOnCreate = 1
|                SFN = 6
|               Size = 6096  <Set>
|           Skeleton = 0
|           SparseDB = 0
+----------------------------------------------------- 
%SYS>
2
0 14
Novo
Artigo Yuri Marx · Jun. 11 2m read

A construção e implementação bem-sucedidas de agentes de IA para atender a diversos casos de uso no setor de saúde dependem de dados e APIs de alta qualidade, governança eficaz e gerenciamento eficiente. O servidor InterSystems IRIS FHIR oferece tudo isso e também é fluente em Python, vetores e interoperabilidade. Combinado com um LLM robusto, pacientes, médicos, cuidadores e gestores obtêm acesso à tecnologia de ponta para saúde pessoal e pública.

2
0 21
Artigo Vitor Leal da Silva · Jun. 5 2m read

Se o seu código em Embedded Python chamar a biblioteca tkinter (que é utilizada por várias bibliotecas de geração de gráficos, incluindo a matplotlib), você poderá se deparar com o seguinte erro:

<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test() 
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:

c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library

This probably means that Tcl wasn't installed properly.
2
0 22
Novo
Artigo Aziz Cotrim · Jun. 11 7m read

Introdução

Quando comecei a trabalhar com InterSystems IRIS no meu estágio, o primeiro obstáculo não foi o banco de dados nem a arquitetura da plataforma. Foi a linguagem em si. Olhei para o ObjectScript (COS) pela primeira vez e não consegui ler o que estava na tela. Parecia familiar o suficiente para me dar confiança, e diferente o suficiente para me confundir logo em seguida.

Venho do C# e do .NET, com foco em arquitetura em camadas, Windows Forms e SQL Server.

0
0 12
Artigo Heloisa Paiva · Jun. 10 6m read

Bem-vindo ao próximo capítulo da minha série sobre CI/CD, onde discutimos possíveis abordagens para o desenvolvimento de software com tecnologias InterSystems e GitLab. Hoje, continuamos falando sobre Interoperabilidade, especificamente sobre o monitoramento de implantações de Interoperabilidade. Se você ainda não fez isso, configure o Alerting para todas as suas produções de Interoperabilidade para receber alertas sobre erros e sobre o estado geral da produção.

Inactivity Timeout é uma configuração comum a todos os Business Hosts de Interoperabilidade.

1
0 13
Novo
Artigo Aziz Cotrim · Jun. 11 1m read

Assim como no pacote anterior, tudo roda a partir de uma página CSP. O código é todo escrito no estilo clássico de CSP, usando InterSystems ObjectScript, JavaScript e HTML.
Além do gráfico, você também obtém números concretos coletados em tempo real da sua instância local ou de instâncias remotas que também tenham o pacote instalado. 

O resultado final

As etapas do processamento

  • Uma página CSP é chamada pela sua URL
  • No método OnPreHTTP
    • A System Query preenche a tabela temporária a partir do %SYS
    • Se o parâmetro de URL correto for fornecido: 
0
0 7
Artigo Vitor Leal da Silva · Jun. 5 3m read

No artigo anterior, usamos o pyprod para criar componentes de produção enquanto dependíamos da interface de usuário (UI) para a configuração da produção. Essa mesma produção agora pode ser definida inteiramente em Python:

from intersystems_pyprod import Production, ServiceItem, ProcessItem, OperationItem

iris_package_name = "HelloWorld"

class MyProduction(Production):
    services = [
        ServiceItem(
            "MyServiceName",
            "HelloWorld.MyService",
            host_settings={"target": "MyProcessName"},
        )
    ]
    processes = [
        ProcessItem(
            "MyProcessName",
            "HelloWorld.MyProcess",
            host_settings={"target": "MyOperationName"},
        )
    ]
    operations = [
        OperationItem("MyOperationName", "HelloWorld.MyOperation")
    ]
2
0 25
Artigo Heloisa Paiva · Jun. 3 6m read

O IRIS 2026.1 trouxe as Partitioned Tables (tabelas particionadas) como uma nova opção para grandes conjuntos de dados. É uma excelente melhoria, pois padroniza esse recurso de forma nativa.

No entanto:
Já era possível atingir esse mesmo objetivo antes, atendendo aos requisitos e deixando espaço para a criatividade. Uma abordagem menos elegante, com um pouco mais de código e menos automatismos.

3
0 31
Artigo André Dienes Friedrich · Jun. 3 13m read

Um passeio de engenharia pela arquitetura do projeto IRIS-CardioFlow com código real de suas camadas de IA, FHIR e conectividade e o papel do iris-agentic-dev em um fluxo de trabalho moderno em ObjectScript.


Introdução

Monitorar o fluxo cirúrgico cardiovascular em tempo real é um problema clássico de integração em saúde: os dados chegam de fontes heterogêneas, precisam ser persistidos com semântica clínica, expostos por uma API e apresentados de uma forma sobre a qual a equipe assistencial possa agir.

0
0 14
Artigo Vitor Leal da Silva · Jun. 2 1m read

Ao desenvolver produções de interoperabilidade, pode ser útil ter configurações fora de um Business Host. O motivo principal é quando você precisa que uma configuração afete vários Business Hosts diferentes e quer garantir que o valor seja o mesmo. Embora as Configurações Padrão do Sistema (System Default Settings - SDS) possam ser usadas para propagar configurações para Business Hosts, elas podem ser alteradas ao sobrescrever o valor no nível do BH (embora a vantagem das configurações de Business Host definidas via SDS seja que elas não exigem código personalizado, o que a nossa abordagem atual exige).

Outro motivo é quando você precisa afetar partes da configuração do Business Host que não são propriedades de configuração padrão (PoolSize, Enabled, etc.).

Nós adicionaremos uma configuração de ambiente (env setting) a uma produção.

0
0 11
Artigo Vitor Leal da Silva · Jun. 2 6m read

Olá,

Sou eu de novo 😁, recentemente estou trabalhando na geração de alguns dados fictícios de pacientes para fins de teste com a ajuda do Chat-GPT usando Python. E, ao mesmo tempo, gostaria de compartilhar minha curva de aprendizado. 😑

Antes de mais nada, construir um serviço de API REST personalizado é fácil estendendo a classe %CSP.REST. Criando um Serviço REST Manualmente Vamos começar! 😂

1. Crie uma classe datagen.restservice que estende %CSP.REST

ClassExtends%CSP.REST

2. Adicione uma função

0
0 15
Artigo Vitor Leal da Silva · Jun. 1 6m read

Geralmente, parece haver um uso generoso de ClassMethods no código ObjectScript. Espero que minhas próprias experiências não sejam representativas, mas aposto que são. Perdoe-me por revelar o final deste artigo, mas em resumo: não os use. A menos que você consiga apresentar um argumento bastante convincente de que precisa, simplesmente nunca os use.¹

O que é um ClassMethod? Em uma classe ObjectScript, você pode definir métodos de duas maneiras diferentes: em um Method (método de instância), você deve instanciar uma instância da classe para chamar o método; e em um ClassMethod (método de classe), você pode chamar o método sem instanciar a classe. Claro que, em um ClassMethod, você não tem acesso a nenhuma propriedade do objeto (porque não há objeto), mas pode acessar globais (afinal, elas são globais) e Parâmetros (que são constantes da classe).

0
0 12
InterSystems Oficial Danusa Calixto · Maio 29

A InterSystems tem o prazer de anunciar a disponibilidade geral de:

  • InterSystems IRIS Data Platform 2026.1.0.237.3
  • InterSystems IRIS for Health 2026.1.0.237.3
  • HealthShare Health Connect 2026.1.0.237.3

Esta versão adiciona suporte ao sistema operacional Ubuntu 26.04. O Ubuntu 26.04 inclui o kernel Linux 7.0, melhorias de segurança, além de melhorias no instalador e na interface do usuário.

No momento, estamos lançando o IRIS apenas para processadores Intel/AMD (x86_64) Observamos problemas ocasionais de rede em servidores ARM.

0
0 10
Artigo Aziz Cotrim · Maio 29 8m read

Introdução

Quando comecei meu estágio com foco em desenvolvimento usando InterSystems IRIS, uma das primeiras dificuldades que encontrei foi justamente a configuração do ambiente local. Documentações técnicas, instaladores e extensões — parecia muita coisa para ligar ao mesmo tempo.

Se você está chegando agora ao ecossistema InterSystems, possivelmente com background em outra linguagem (C#, Java, PHP, ou qualquer outra), este artigo é para você.

0
0 24
Anúncio Danusa Calixto · Maio 29

Olá Comunidade, 

Estamos lançando uma nova iniciativa na qual ideias do Portal de Ideias se tornam aplicativos reais no Open Exchange, e seus autores são recompensados ​​por meio do Global Masters:

💡 Programa de Incentivo à Comunidade “Da Ideia à Aplicação” ⚙️

0
0 13
Anúncio Danusa Calixto · Maio 29

Olá Comunidade,

A primeira rodada do Programa de Recompensas da Comunidade "Da Ideia à Aplicação" está oficialmente aberta. Três ideias do Portal de Ideias estão prontas para serem implementadas — escolha uma ou mais, desenvolva-as, publique-as no Open Exchange e ganhe pontos Global Masters.

🏅Cada envio qualificado garante um selo Credly, um selo Global Masters e mais de 10 mil pontos. Implemente todas as ideias desta rodada e desbloqueie as recompensas do Nível 2.

0
0 13
Artigo Evandro Wendt · Maio 27 3m read

Atualizado em 14/04/26

Antes de começar a desenvolver com o InterSystems IRIS, você precisa de uma instalação local ou em servidor funcionando. Este guia mostra como baixar a distribuição e instalar o IRIS no Windows de forma direta, focando nas etapas e decisões que realmente importam em um ambiente de desenvolvimento.

Vou abordar onde obter a versão apropriada, quais pré-requisitos verificar antes da instalação e como executar o instalador na sua plataforma. O objetivo é proporcionar um ambiente limpo e utilizável com o mínimo de atrito, para que você possa seguir para a escrita de código, exploração da plataforma de dados e integração com suas ferramentas existentes.

Para baixar uma versão Community, leia este artigo: How to get InterSystems IRIS Community Edition. Ele explica as diferentes formas de obter o InterSystems IRIS Community Edition, destacando opções para ambientes locais, conteinerizados e baseados em nuvem. Também mostra como usar o Docker para baixar e executar rapidamente uma instância IRIS pronta para uso. Você também pode aprender como implantar o IRIS na nuvem por meio de marketplaces como AWS para evitar uma instalação local. O mais importante aqui é que este guia mostra como baixar um kit de instalação a partir do InterSystems Evaluation Service e selecionar a versão e a plataforma corretas.

0
0 19
Artigo Heloisa Paiva · Maio 27 4m read

    O tutorial publicado recentemente "Introduction to InterSystems Data Studio" me inspirou a conhecer esse produto. E acho que é uma visão bem interessante de como gerenciar um data fabric sem precisar mergulhar em códigos complexos. Ele permite conectar silos de dados distintos, transformar esses dados por meio de pipelines automatizados e carregá-los em um ambiente unificado para análise. Por isso, decidi escrever um exemplo prático de como utilizá-lo. Basicamente, vou guiar você pelo tutorial caso não tenha tempo de fazê-lo por conta própria. Embora eu sugira fortemente que você faça o tutorial — ele traz muitas informações úteis.

    Para ver como funciona, me coloquei no papel de um administrador do sistema, fazendo o login com as credenciais fornecidas para explorar a interface. O layout é focado em alguns pilares centrais: definir a origem dos dados (sources), catalogar sua estrutura e criar "recipes" (receitas) automatizadas para movê-los para a produção.

    E o primeiríssimo passo é estabelecer uma conexão com os meus dados. 

0
0 16
Artigo Evandro Wendt · Maio 26 5m read

Contexto

Por diversos motivos, os usuários podem desejar montar um volume persistente em dois ou mais pods distribuídos por múltiplas zonas de disponibilidade. Um desses casos de uso é disponibilizar dados armazenados fora do IRIS para ambos os membros do espelhamento (mirror) em caso de failover.

0
0 11