0 Seguidores · 14 Postagens

Linguagem de Marcação Estendida (XML) é uma linguagem de marcação que define um conjunto de regras para a codificação de documentos em um formato tanto legível por humanos quanto por máquina.

Saber mais.

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=+HSet FromDate=+$H-1ForSet FromDate=$O(^PatientD("Date",FromDate)) Quit:FromDate>ToDate  Do
. Set PatId=""ForSet 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 18
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?
Pesquisei em todas as classes e utilitários e

0
0 15
Artigo Evandro Wendt · jan 10 2m read

Eu gostaria de compartilhar com você um pequeno truque para personalizar como as mensagens são exibidas no Message Viewer. Em particular, como você pode exibir as mensagens em JSON (em vez da representação padrão em XML).

Mensagens são objetos usados para comunicar componentes de produções de interoperabilidade. No meu exemplo, eu defini uma mensagem que mais tarde eu serializo como JSON para enviar a uma API externa. Essa mensagem é definida como uma mensagem regular e também como um %JSON.Adaptor, para que eu possa exportar/importar diretamente para ou a partir de JSON.

Class interop.msg.De

image

0
0 21
Artigo Yuri Marx · Out. 9, 2025 4m read

A linguagem ObjectScript possui um suporte incrível a JSON por meio de classes como %DynamicObject e %JSON.Adaptor. Esse suporte se deve à imensa popularidade do formato JSON em relação ao domínio anterior do XML. O JSON trouxe menos verbosidade à representação de dados e aumentou a legibilidade para humanos que precisavam interpretar conteúdo JSON. Para reduzir ainda mais a verbosidade e aumentar a legibilidade, o formato YAML foi criado. O formato YAML, muito fácil de ler, rapidamente se tornou o formato mais popular para representar configurações e parametrizações, devido à sua legibilidade

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

Além do ambiente de transformação IRIS XML, XPath e CCDA, o pacote Interop DevTools agora inclui:

  • Configuração para transformação FHIR-SDA
  • Configuração para transformação SDA-FHIR
  • Exibição de erros de vali

0
0 57
Artigo Julio Esquerdo · Out. 10, 2024 10m read

Projeto 1 - Integração utilizando SOAP Inbound Adapter

A idéia deste novo conjunto de postagens é apresentar uma série de integrações utilizando o InterSystems IRIS. Vamos ver integrações REST, SOAP, utilizando adaptadores ODBC, Arquivos e outros.

Vamos montar nossa primeira integração completa, passando pelas camadas de BS, BP e BO, e devolvendo a resposta esperada. Vamos montar essa nossa primeira integração utilizando o SOAP como o adaptador de entrada, e como cliente vamos utilizar o SoapUI.

Vamos então começar:

1. SoapUI

Baixe o SoapUI do site de download dele (https://www.soapui.or








4
0 182
Artigo Julio Esquerdo · Out. 24, 2024 14m read

Projeto 7 – SQL Outbound Adapter

Vamos montar nossa próxima integração utilizando o adaptador SQL Onbound Adapter. Vamos criar um BS que utilizará o SOAP Inbound Adapter, que vai chamar dois BPs que por sua vez chamarão um BO que utilizará o SQL Outbound Adapter. Nosso BS terá duas capacidades: incluir e consultar. Cada capacidade chamará um BP diferente, porém os dois BPs chamarão o mesmo BO, que também terá duas capacidades. Cada capacidade será chamada de acordo com a mensagem recebida.

Vamos começar verificando a tabela que será acessada. Vamos cria-la utilizando o modelo abaixo:

Class 









0
0 101
Artigo Julio Esquerdo · Out. 23, 2024 9m read

Projeto 6 – Chamada Assíncrona no BP

Vamos montar nossa próxima integração utilizando o adaptador SOAP Inbound Adapter chamando um BP que vai orquestrar chamadas a dois BOs em modo assíncrono.

Vamos começar criando as mensagens de Request e Response do nosso serviço:

Class ws.credito.msg.Request Extends Ens.Request
{
Property cpf As %String(PATTERN = "1N.N");
}

Class ws.credito.msg.Response Extends Ens.Response
{
Property nome As %String;
Property cpf As %String(PATTERN = "1N.N");
Property autorizado As %Boolean;
Property servico As %String;
Property status As %Boolean;
Property mensagem As %String




0
0 67
Artigo Julio Esquerdo · Out. 16, 2024 8m read

Projeto 5 – SOAP Outbound Adapter

Vamos montar nossa próxima integração utilizando o adaptador SOAP Outbound Adapter. Este adaptador permite acessar um serviço SOAP externo e consumir este serviço.

No nosso exemplo vamos publicar um serviço SOAP no barramento de integração simulando um serviço externo. Vamos então consumir o WSDL deste serviço criando o BO automaticamente, e depois montaremos os BP e BS da integração.

O primeiro passo é criar um serviço que será consumido. Imagine que este é um serviço externo que você precisa consumir. Vamos então criar um BS que fará este papel para nós.









0
0 88
Artigo Heloisa Paiva · Maio 29, 2023 10m read

Programação e suas linguagens

Ser um programador hoje em dia é basicamente uma versão nerd de ser um poliglota. Claro, a maioria de nós aqui na comunidade InterSystems "falamos ObjectScript". Entretando, eu acredito que essa não foi a primeira língua de muita gente. Por exemplo, eu nunca tinha ouvido falar nela antes de receber o treinamento apropriado na Innovatium.

A parte mais fascinante disso é que mesmo que sejamos aptos a aprender qualquer linguagem e nos tornar fluentes nela, sempre teremos nossas favoritas - as que nos sentimos mais confortáveis e familiares. Geralmente isso tem muit


0
0 148
Artigo Danusa Calixto · Out. 10, 2022 1m read

Se estiver manipulando XML, muitas vezes ele pode ser não formatado para exibição humana.

Usando um pouco de magia XSLT você pode formatar o XML em apenas duas linhas de código...

ClassMethod Format(pXmlStream As %CharacterStream, Output pXmlStreamFormatted As %CharacterStream) As %Status
{
    set xslt=##class(%Dictionary.XDataDefinition).%OpenId(..%ClassName(1)_"||XSLT",-1,.sc)
    quit ##class(%XML.XSLT.Transformer).TransformStream(pXmlStream,xslt.Data,.pXmlStreamFormatted)
}
XData XSLT
{
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output omit-xml-dec
0
0 202
Job Rogerio de Oliveira · Jun. 24, 2021

Pessoal,

Procuro perfil de analista de integração / Ensemble (freelance). Interessados, por favor enviar mensagem de WhatsApp (61) 98405-2981.

Local de trabalho: 100% Remoto

Habilidades:  Cache DB, Object Script, InterSystems, Ensemble

Conhecimentos Necessários:

  • Habilidades de análise e desenvolvimento de softwares
  • Habilidades de Desenvolvimento baseado em especificações funcional e técnica
  • Tecnologias da plataforma Intersystems
  • Experiência com desenvolvimento Ensemble
  • Experiência de Programação em Intersystems COS (Cache Object Script)
  • Experiência com Banco de Dados Oracle
  • MS
0
0 133