Tem dois ótimos artigos WRC de melhores práticas Mensagens Órfãs do Ensemble | Comunidade de Desenvolvedores InterSystems | Melhores
e a postagem sobre a ajuda de eliminação DeleteHelper - Uma classe para ajudar a deletar Classes Persistentes Referenciadas que tratam de registros órfãos e como lidar com eles.
Rubrica InterSystems FAQ
Isso pode ser conseguido usando o procedimento CSV() da classe %SQL.Util.Procedures .
Abaixo está o exemplo de uso do código. (Assumindo que o arquivo test.csv está em c:\temp.)
Set filename="c:\temp\test.csv"
Set result=##class(%SQL.Statement).%ExecDirect(,"call %SQL_Util.CSV(,?,?)",.rowtype,.filename)
Set rset =result.%NextResult()
// To display all results, use do rset.%Display()
While rset.%Next() {
Write "Name:",rset.%GetData(1)," UID:",rset.%GetData(2)," PHONE:",rset.%GetData(3),!
Incluo esse post para ajudar os usuários de WebTerminal que atualizaram à versão IRIS 2024.2 -- (Build 247U) Tue Jul 16 2024 09:52:30 EDT -- liberada recentemente, ou estão considerando fazê-lo.
Essa versão 2024.2 contém uma mudança (DP-432503) que precisa que o usuário através do qual se conecta inicialmente ao Web Gateway (normalmente CSPSystem) deva ter permissões de leitura (READ) sobre a base de dados em que se encontra a classe de dispatching da aplicação web de tipo REST.
Como parte do concurso IRIS Python 2024, meu colega Damir e eu tivemos uma ideia de onstruir uma plataforma chamada ShelterShare para conectar vítimas e voluntários para requisições de abrigo. Para isso, escolhemos Django como uma framework e procedemos para construir a primeira versão ccom 3 docker containers diferentes, django, iris e nginx, que iriam então utilizar o IRIS puramente como uma máquina de base de dados pelo muito bem composto django_iris (cumprimentos ao Dimitry).
Faz bastante tempo desde a última vez que escrevi uma postagem de atualização do IoP.

Então, o que há de novo desde o lançamento da interface de linha de comando IoP?
Dois novos grandes recursos foram adicionados ao IoP:
- Rebranding: o módulo
grongier.pexfoi renomeado paraioppara refletir o novo nome do projeto. - suporte Async: IoP agora suporta funções assíncronas e co-rotinas.
Rebranding
O módulo grongier.pex foi renomeado para iop para refletir o novo nome do projeto.
O módulo grongier.pex ainda está disponível para compatibilidade retroativa, mas será removido no futuro.
Rubrica InterSystems FAQ
Os dados dos produtos InterSystems (linha de tabela, instância de objeto) são guardados em variáveis globais.
O tamanho de dados de cada global pode ser obtido clicando nas propriedades da global que você quer ver da página Portal de Adminitração > Sistema > Configuração > Base de dados Local > Globais, então clicando no botão Calcular Tamanho na página de atributos globais que aparece.
Se você encontrou o problema de que nem todas as linhas do seu resultado estão retornando no seu snapshot, você está no lugar certo.
Ao usar snapshots, existe uma informação não trivial de que eles têm um máximo de linhas que vem por padrão como 250.
Para mudar isso é muito simples. Ao invés de enviar o snapshot como referência direto no seu método de execução de query ou procedure, vamos inicializá-lo antes e definir um valor na propriedade MaxRowsToGet.
Set resultSet = ##class(%ListOfObjects).%New()
Set snapshot = ##class(EnsLib.SQL.Snapshot).%New()
Set snapshot.Tenho orgulho de anunciar o novo lançamento de iris-pex-embedded-python (v2.3.1) com uma nova interface de linha de comando.
Essa linha de comando é chamada iop, de Interoperability On Python.
Primeiro, eu gostaria de apresentar em algumas palavras as maiores mudanças no projeto desde a primeira versão.
Um breve histórico do projeto
A versão 1.0 foi uma prova de conceito para mostrar como a framework de interoperabilidade do IRIS pode ser usada com uma abordagem primeiro python enquanto permanece compatível com qualquer código ObjectScript existente.
O que isso significa? Significa que qualquer desenvolvedor python pode usar a framework de interoperabilidade do IRIS sem ter nenhum conhecimento de ObjectScript.
Exemplo:
from grongier.pex import BusinessOperation
class MyBusinessOperation(BusinessOperation):
def on_message(self, request):
self.log.info("Received request")
Incrível, não é?
Rubrica do InterSystems FAQ
Aqui, vamos introduzir um código de exemplo para registrar e referenciar agendas de tarefas.
①Exemplo de registro de agenda de tarefa
*Crie uma tarefa para executar ^TEST todos os dias à 1:00 da manhã.
set task=##class(%SYS.Task).%New()
set task.Name="MyTask1"
set task.Description="Execute ^xxx every day at 1:00 AM" // Optional
set task.NameSpace="USER"
set task.TimePeriod=0
set task.DailyFrequency=0
set task.DailyFrequencyTime=""
set task.DailyIncrement=""
set task.DailyStartTime=$ZTimeh("01:00:00")
set task.DailyEndTime=""
set task.TaskClass="%SYS.Task.
Um experimento sobre como usar a framework LangChain, Busca por Vetor IRIS e LLMs para gerar SQL compatível com IRIS de prompts de usuários.
Esse artigo foi baseado neste notebook. Você pode rodar com um ambiente pronto para uso com esta aplicação no OpenExchange.
Setup
Primeiro, precisamos instalar as livrarias necessárias:
Perguntas Frequentes de InterSystems
Se necessita migrar seu servidor por algum motivo, pode reduzir o trabalho de configuração do novo ambiente. Basta copiar a informação de configuração de seu ambiente prévio ao novo.
Você pode migrar as seguintes informações de configuração.
- iris.cpf
- Configuração do SQL gateway
- Configuração do web gateway *Nota 1
- rotinas de usuário, etc... armazenadas na base de dados IRISSYS *Nota 2
- Configuração de segurança
- Configuração de tarefas
Rubrica InterSystems FAQ
Globais temporárias armazenadas nas bases de dados IRISTEMP/CACHETEMP são usadas quando um processo não precisa guardar dados indefinidamente, mas requere a poderosa performance das globais. As bases de dados IRISTEMP/CACHETEMP não são jounralizadas, então usar globais temporárias não cria arquivos de journal.
O sistema usa as bases de dados IRISTEMP/CACHETEMP para armazenamento temporário e estão disponíveis para usuários para o mesmo objetivo.
Iris-python-template
Projeto template com vários códigos Python para ser usado com InterSystems IRIS Community Edition com container.
Apresentando:
- Notebooks
- Kernel de Python Embutido
- ObjectScript Kernel
- Vanilla Python Kernel
- Python Embutido
- Exemplo de código
- Flask demo
- IRIS Python Native APIs
- Exemplo de código

2. Tabela de Conteúdos
Os lançamentos de 2024.2 do InterSystems IRIS Data Platform, InterSystems IRIS for Health, e HealthShare Health Connect são agora Generally Available (GA), ou geralmente disponíveis.
DESTAQUES DO LANÇAMENTO
2024.2 é um lançamento de Continuous Delivery (CD), ou entrega contínua. Muitas atualizações e melhorias foram adicionadas a esse lançamento:
Melhorando a Experiência do Desenvolvedor
- Remoção do Studio - 2024.2 instalações de Windows não incluem o IDE Studio, e atualizar uma instância existente remove o Studio do diretório bin dela.
Hoje teremos um code golf diferente: construir um programa (usando apenas caracteres ASCII imprimíveis, tabs e caractere de nova linha) que imprima exatamente os caracteres no espaço imprimível ASCII (de 32 a 126) que não apaecem no código fonte do seu programa (em qualquer ordem, mas quantas vezes você quiser).
Como sempre o objetivo é produzir o menor código fonte que seja capaz disso.
O meu (admito que não muito bom, mas faz o trabalho!) código:
Class ascii.ascii {
ClassMethod ascii()
{
set x="!#$%&'()*+,-./0123456789:;<>?Desenvolvimento de frontend pode ser uma tarefa muito difícil, especialmente para desenvolvedores focados em backend. Mais cedo na minha carreira, as linhas entre frontend e backend eram borradas, e se experava de todos que conseguissem manejar ambos. CSS em particular era um desafio constante, parecia uma missão impossível.
Apesar de eu aproveitar trabalho de frontend, CSS ainda é um desafio complexo para mim, especialmente porque aprendi por tentativa e erro.
Introdução
Talvez você já tenha reparado que a base HSAUDIT não tem uma tarefa de expurgo já configurada na maioria das versões do HealthShare, e isso pode ser um problema já que ela tem mapeamentos de globais em vários namespaces.
Se você notou que essa base está ocupando muito espaço em disco e está com dificuldades de limpá-la, esse artigo é para você.
Se você já tem uma ideia de como fazer isso, mas está utilizando uma versão mais antiga do HealthShare, onde a tarefa não existe pronta, ou o PurgeByDaysToKeep não existe, esse artigo também é para você.
Com a introdução dos tipos de dados vetoriais e da funcionalidade de Vector Search em IRIS, se abre todo um mundo de possibilidades para o desenvolvimento de aplicações para nós, e um exemplo delas é a que vi recentemente publicada num concurso do Conselho de Saúde de Valencia, onde solicitavam uma ferramenta para ajudar na codificação CID-10 utilizando modelos de IA.
Como poderíamos implementar uma aplicação similar à solicitada? Vejamos o que seria necessário:
- Lista de códigos do CID-10, que usaremos como contexto da nossa aplicação RAG para buscar diagnósticos dentro dos textos livres.
Olá Comunidade,
Temos disponível um novo vídeo (em ingês) no Canal de YouTube da InterSystems:
⏯ Apresentação de InterSystems Supply Chain Orchestrator @ Global Summit 2023
Olá Comunidade,
Nesse artigo, demonstrarei os seguintes passos para criar seu próprio chatbot utilizando spaCy (spaCy é uma biblioteca de software de código aberto para o processamento avançado de linguagem natural, escrita nas linguagens de programação Python e Cython):
-
Passo 1: Instalar as livrarias necessárias
-
Passo 2: Criar o arquivo de padrões e respostas
-
Passo 3: Treinar o modelo
-
Passo 4: Criar uma aplicação ChatBot baseada no modelo treinado
Comecemos
Introdução ao WSGI em IRIS
Com o IRIS 2024+, os usuários podem hospedar aplicações WSGI usando Security.Applications. Por exemplo, um usuário pode fazer algo como o seguinte:
Exemplo funcional mínimo
zn "%SYS"
Kill props
Set props("Description") = "Sample WSGI Application"
Set props("MatchRoles") = ":%All"
Set props("WSGIAppLocation") = "/path/to/flaskapp"
Set props("WSGIAppName") = "myapp"
Set props("WSGICallable") = "app"
Set props("DispatchClass") = "%SYS.Python.WSGI" // importante, se não será reconhecido como uma aplicação CSP
Set sc = ##class(Security.Applications).Create("/flask", .Olá!
Recentemente estive investigando uma situação incômoda enquanto editava classes ou rotinas ObjectScript no VSCode. O que acontecia era que, como estava escrevendo as linhas de código na minha classe (por exemplo: a adição de um novo método, mudança da assinatura de classe ou de um bloco de código) isso ocasionava uma rápida revisão da sintaxe, reformatação e compilação - e inevitavelmente (já que eu estava apenas na metade da escrita), isso gerava erros de compilação.
.png)
IS Comunidade de Desenvolvedores, Eu 👑 você.
Por que usá-la?
Esse app oferece uma interface fácil para analisar armazenamento:
- Filtro por base de dado (namespace), nome da global, tamanho utilizado ou tamanho alocado;
- Veja a soma dos tamanhos usado e alocado para os filtros aplicados;
- Exporte a tabela para JSON, CSV, ou XML.
Como usar
Siga as instruções no arquivo README do repositório GitHub e configure as definições para conectar à sua instância.
Como adaptar às suas necessidades
Já que foi construído com Python e Django, você pode facilmente adicionar métodos de análises específicas em api/methods.py e usar as views em views.
Nosso objetivo
Hoje vamos continuar expandindo o último artigo compartilhando informações sobre alguns recursos que adicionamos em nosso portal. Vamos incluir uma pitada de CSS para visualizar os dados disponíveis melhor e exportá-los. Finalmente, estudaremos como adicionar opções de filtros e ordenação. Ao fim deste artigo, você deve ser capaz de exibir esteticamente uma query simples completa.
Anteriormente, em "Um portal para administrar armazenamento feito com Django"...
Oi Comunidade,
Estamos felizes em convidar vocês para a próxima competição online de programação da InterSystems, que será focada em Python!
🏆 Competição InterSystems Python 🏆
Duração: Julho 15 - Agosto 4, 2024
Premiação total: $14,000
.jpg)
Integrar aplicações frontend de React com serviços backend como a base de dados IRIS através de APIs REST pode ser uma forma poderosa de contruir aplicações web robustas. No entanto, um obstáculo comum que os desenvolvedores costumam encontrar é o problema de Cross-Origin Resource Sharing (CORS), que pode impedir que o frontend acesse os recursos no backend devido a restrições de segurança impostas pelos navegadores web. Nesse artigo, exploraremos como abordar os problemas de CORS ao integrar aplicações web de React com serviços backend de IRIS.
Nosso objetivo
No último artigo, falamos sobre alguns fatores iniciais do Django. Aprendemos como começar um projeto, garantir que temos todos os requisitos e fazer um CRUD. No entanto, hoje vamos um pouco mais além.
Às vezes precisamos acessar métodos mais complexos, então hoje vamos conectar o IRIS a um ambiente Python, construir algumas funções e exibir seus resultados numa página web. Será similar à última discussão, mas mais adiante para que você possa fazer algo novo, mas não demais para que você se sinta perdido.
Por que conectar Flask com InterSystems IRIS?
A primeira coisa que vem à mente quando pensamos sobre a combinação de Flask com IRIS é um portal para interagir com seus clientes e parceiros. Um bom exemplo seria um website para pacientes acessarem seus exames clínicos. É claro, nesse caso seria necessário uma boa camada de segurança, que nós não cobrimos no último artigo. No enteando, podemos adicioná-la sem esforços com o Werkzeug, por exemplo.
Olá, comunidade!
Você já reparou nesse novo quadro que aparece no canto direito da tela no feed de postagens?.png)
E mais importante... Já clicou nele?
É isso mesmo: agora a comunidade de desenvolvedores InterSystems tem sua própria IA, desenvolvida, é claro, com tecnologia InterSystems, para te ajudar com suas dúvidas e ideias sobre programação com nossos produtos.
Você pode usar a nova ferramenta para fazer perguntas, criar códigos e pesquisar assuntos discutidos nas comunidades em todas as línguas.