发布新帖

查找

文章
· 二月 13 阅读大约需 2 分钟

Usando o InterSystems Lite Terminal a partir do Python

As versões recentes do IRIS já vêm com o Lite Terminal disponível no VSCode. Ele funciona como um servidor WebSocket, com comunicação via mensagens JSON. Aqui está como se conectar a ele a partir do Python:

import websocket
import argparse
import requests
import json


def terminal(host, port, namespace, username, password, command, secure):
    session = requests.Session()
    r = session.get(f"http{"s" if secure else ""}://{host}:{port}/api/atelier/", auth=(username, password))
    cookies = session.cookies.get_dict()
    ws = websocket.WebSocket()
    ws.connect(f"ws{"s" if secure else ""}://{host}:{port}/api/atelier/v8/%25SYS/terminal",
               cookie="; ".join(["%s=%s" % (i, j) for i, j in cookies.items()]))
    print(ws.recv())
    ws.send(json.dumps({"type": "config", "namespace": namespace, "rawMode": False}))
    print(ws.recv())
    ws.send(json.dumps({"type": "prompt", "input": command}))
    print(ws.recv())
    ws.close()


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Connect to VSCode Terminal and execute a command')
    parser.add_argument('--username', default="_SYSTEM", help='InterSystems IRIS User')
    parser.add_argument('--password', default="SYS", help='Corresponding password')
    parser.add_argument('--host', default="localhost", help='IRIS Server')
    parser.add_argument('--port', default=52773, help='IRIS Web Server Port')
    parser.add_argument('--namespace', default="USER", help='IRIS Namespace')
    parser.add_argument('--command', default="w $zv", help='IRIS Command to execute')
    parser.add_argument('--secure', default=False, help='Use HTTPS/WSS')
    args = parser.parse_args()
    terminal(args.host, args.port, args.namespace, args.username, args.password, args.command, args.secure)

Ao executá-lo, será gerada a seguinte saída:

{"type":"init","protocol":1,"version":"IRIS for Windows (x86-64) 2025.1 (Build 223U) Tue Mar 11 2025 18:14:42 EDT"}
{"type":"prompt","text":"\u001b[1mUSER>\u001b[0m"}
{"type":"output","text":"IRIS for Windows (x86-64) 2025.1 (Build 223U) Tue Mar 11 2025 18:14:42 EDT"}

Para depurar a conexão, defina ^IRIS.Temp.Atelier("terminal") como 1; toda a comunicação será registrada nessa mesma global.

讨论 (0)1
登录或注册以继续
文章
· 二月 13 阅读大约需 3 分钟

hc-export-editor: Fazendo alterações nas interfaces exportadas antes de implantar em produção

Você já precisou alterar um IP ou porta antes de implantar uma interface em produção? Precisou remover itens de uma exportação? Ou modificar valores em uma tabela de lookup antes de implantar? Já quis desativar uma interface antes da implantação? Ou ainda adicionar um comentário, categoria ou configuração de alerta a uma interface antes de enviá-la para produção?

Se você já precisou fazer qualquer alteração em uma interface ou tabela de lookup antes de implantar em produção, então o Export Editor é para você!

O Export Editor é uma aplicação web Python/WSGI que fornece uma maneira de editar exportações antes de implantá-las em uma produção do IRIS/Health Connect.

Esta ferramenta permite que você:

  • altere qualquer configuração em uma interface (seja um Business Service, Process ou Operation)
  • modifique qualquer valor em uma tabela de lookup
  • remova itens de uma exportação.

Exemplo de uso

Então, como usar o Export Editor? Acompanhe os passos a seguir para ver como você pode utilizar o Export Editor para migrar interfaces e tabelas de um ambiente de teste para um ambiente de produção, alterando os endereços IP configurados para apontar para um servidor de produção, ajustando as portas para as portas de produção, desativando as interfaces antes da implantação em produção e editando os dados das tabelas para os valores apropriados de produção.

Primeiro, você precisa gerar uma exportação a partir de uma Produção de Interoperabilidade, provavelmente do seu ambiente não produtivo.

Create an Export

Após adicionar todos os itens desejados à exportação (e remover quaisquer itens indesejados), salve o arquivo em um dos diretórios configurados para serem lidos pelo Export Editor.

Agora, você deverá conseguir abrir a exportação no Export Editor.

Após abrir a exportação, note que existem várias seções. Você pode ler sobre cada seção na documentação do projeto (veja o link abaixo). Por enquanto, vamos focar na seção "Interface Settings". Essa seção permite editar quaisquer propriedades de Services, Processes ou Operations incluídos na exportação. Por exemplo, podemos alterar a configuração FilePath do HL7FileService que exportamos de "/test-filesystem" para "/prod-filesystem".

Usando a caixa de filtro no canto superior direito da seção Interface Settings, podemos filtrar as configurações para mostrar apenas aquelas que contêm a palavra "server". Isso nos permite focar em configurações específicas de todas as interfaces de uma só vez. Vamos alterar os valores de "test-server" para "prod-server".

Da mesma forma, podemos usar o filtro para mostrar apenas as configurações de portas. Vamos alterar as portas para corresponder às portas de produção desejadas para essas operações (1111, 2222 e 3333 neste exemplo).

Vamos alterar todos os atributos "Enabled" das operações de "true" para "false":

Por fim, vamos modificar os valores da tabela "User.ExampleTable" para que façam referência a "prod" em vez de "test":

Agora, clique no botão "Generate Modified Export" (ou pressione "Enter" enquanto estiver em um dos campos editáveis) e salve a exportação modificada com o nome/local desejado. Lembre-se desse caminho, pois usaremos este arquivo para implantar nossas alterações em produção.

Agora, navegue até o seu ambiente de produção e abra "Interoperability > Manage > Deployment Changes > Deploy" para o seu namespace de produção:

Clique no botão "Open Local Deployment" no topo da página e selecione a exportação modificada que você salvou nos passos anteriores:

Verifique se a implantação inclui todos os itens desejados. Além disso, clique no botão "Select Target Production" no lado direito para selecionar o ambiente de produção desejado. Quando estiver pronto, clique no botão "Deploy" no topo para implantar em produção:

Você agora editou e implantou uma exportação com sucesso! Verifique se suas alterações foram aplicadas em produção (ou seja, se as operações foram desativadas e se os caminhos de arquivo, nomes de servidores, portas e valores das tabelas foram atualizados para os valores desejados).

Mais informações

Para mais informações sobre como instalar e usar o Export Editor, consulte o projeto hc-export-editor no Open Exchange.

讨论 (0)1
登录或注册以继续
文章
· 二月 13 阅读大约需 3 分钟

Como gerenciar uma configuração do InterSystems API Manager em um pipeline de CI/CD?

A Kong fornece uma ferramenta open source de gerenciamento de configuração (escrita em Go), chamada decK (que significa Kong declarativo).

  • Verifique se o decK reconhece sua instalação do Kong Gateway por meio do comando deck gateway ping
deck gateway ping   
Successfully connected to Kong!
Kong version:  3.4.3.11

  • Exporte a configuração do Kong Gateway para um arquivo chamado "kong.yaml" por meio do comando deck gateway dump
deck gateway dump -o kong.yaml

  • Após modificar os endereços IP no arquivo kong.yaml, verifique as diferenças por meio do comando deck gateway diff  
deck gateway diff kong.yaml

updating service test-iris  {
   "connect_timeout": 60000,
   "enabled": true,
-  "host": "192.168.65.1",
+  "host": "172.24.156.176",
   "id": "8fc9849d-9e61-402d-bcad-c3e611808892",
   "name": "test-iris",
   "port": 9092,
   "protocol": "http",
   "read_timeout": 60000,
   "retries": 5,
   "write_timeout": 60000
 } updating service uct  {
   "connect_timeout": 60000,
   "enabled": true,
-  "host": "192.168.65.1",
+  "host": "172.24.156.176",
   "id": "96ad587e-8921-4d6c-acb7-3f7f7a7cc072",
   "name": "uct",
   "path": "/api/uct/",
   "port": 9092,
   "protocol": "http",
   "read_timeout": 60000,
   "retries": 5,
   "write_timeout": 60000
 } Summary:
  Created: 0
  Updated: 2
  Deleted: 0
deck gateway sync kong.yaml

updating service uct  {
   "connect_timeout": 60000,
   "enabled": true,
-  "host": "192.168.65.1",
+  "host": "172.24.156.176",
   "id": "96ad587e-8921-4d6c-acb7-3f7f7a7cc072",
   "name": "uct",
   "path": "/api/uct/",
   "port": 9092,
   "protocol": "http",
   "read_timeout": 60000,
   "retries": 5,
   "write_timeout": 60000
 } updating service test-iris  {
   "connect_timeout": 60000,
   "enabled": true,
-  "host": "192.168.65.1",
+  "host": "172.24.156.176",
   "id": "8fc9849d-9e61-402d-bcad-c3e611808892",
   "name": "test-iris",
   "port": 9092,
   "protocol": "http",
   "read_timeout": 60000,
   "retries": 5,
   "write_timeout": 60000
 } Summary:
  Created: 0
  Updated: 2
  Deleted: 0
deck gateway dump --workspace workspace1
deck gateway sync workspace1.yaml --workspace workspace1

Para mais informações:

https://docs.konghq.com/deck/get-started

https://docs.konghq.com/deck/reference/faq/

https://github.com/Kong/deck/blob/main/CHANGELOG.md/

讨论 (0)1
登录或注册以继续
文章
· 二月 13 阅读大约需 2 分钟

Use InterSystems Lite Terminal from python

Recent versions of IRIS come with Lite Terminal available from VSCode. It's a websocket server, with JSON messaging. Here's how to connect to it from Python:

import websocket
import argparse
import requests
import json


def terminal(host, port, namespace, username, password, command, secure):
    session = requests.Session()
    r = session.get(f"http{"s" if secure else ""}://{host}:{port}/api/atelier/", auth=(username, password))
    cookies = session.cookies.get_dict()
    ws = websocket.WebSocket()
    ws.connect(f"ws{"s" if secure else ""}://{host}:{port}/api/atelier/v8/%25SYS/terminal",
               cookie="; ".join(["%s=%s" % (i, j) for i, j in cookies.items()]))
    print(ws.recv())
    ws.send(json.dumps({"type": "config", "namespace": namespace, "rawMode": False}))
    print(ws.recv())
    ws.send(json.dumps({"type": "prompt", "input": command}))
    print(ws.recv())
    ws.close()


if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Connect to VSCode Terminal and execute a command')
    parser.add_argument('--username', default="_SYSTEM", help='InterSystems IRIS User')
    parser.add_argument('--password', default="SYS", help='Corresponding password')
    parser.add_argument('--host', default="localhost", help='IRIS Server')
    parser.add_argument('--port', default=52773, help='IRIS Web Server Port')
    parser.add_argument('--namespace', default="USER", help='IRIS Namespace')
    parser.add_argument('--command', default="w $zv", help='IRIS Command to execute')
    parser.add_argument('--secure', default=False, help='Use HTTPS/WSS')
    args = parser.parse_args()
    terminal(args.host, args.port, args.namespace, args.username, args.password, args.command, args.secure)

Running it produces the following output:

{"type":"init","protocol":1,"version":"IRIS for Windows (x86-64) 2025.1 (Build 223U) Tue Mar 11 2025 18:14:42 EDT"}
{"type":"prompt","text":"\u001b[1mUSER>\u001b[0m"}
{"type":"output","text":"IRIS for Windows (x86-64) 2025.1 (Build 223U) Tue Mar 11 2025 18:14:42 EDT"}

To debug the connection set ^IRIS.Temp.Atelier("terminal") to 1, all communication would be logged to the same global.

讨论 (0)2
登录或注册以继续
InterSystems 官方
· 二月 13

Versões de manutenção 2025.1.3 do InterSystems IRIS, IRIS for Health e HealthShare HealthConnect já estão disponíveis.

A versão de manutenção 2025.1.3 da plataforma de dados InterSystems IRIS®, InterSystems IRIS® for HealthTM, and HealthShare® Health Connect já estão disponíveis para o público em geral (GA). Essas versões incluem correções para diversos alertas e avisos emitidos recentemente, incluindo os seguintes

Compartilhe seu feedback através do Portal de Ideias, utilizando a categoria Feedback de Pós-Lançamento, para que possamos construir juntos um produto melhor.

Documentação

Você pode encontrar as listas de alterações detalhadas e as listas de verificação de atualização nestas páginas:

Programas de Acesso Antecipado (EAPs)

Existem muitos programas de assistência ao empregado (PAE) disponíveis atualmente. Confira esta página e inscreva-se naqueles que lhe interessarem.

Como Obter o Software?

Os pacotes de instalação completos para o InterSystems IRIS e o InterSystems IRIS for Health estão disponíveis na página de Kits Completos da Plataforma de Dados InterSystems IRIS do WRC. Os kits do HealthShare Health Connect estão disponíveis na página de Kits Completos do HealthShare do WRC. As imagens de contêiner estão disponíveis no Registro de Contêineres da InterSystems.

Informações de Disponibilidade e Pacote

Esta versão inclui pacotes de instalação clássicos para todas as plataformas suportadas, bem como imagens de contêiner no formato Docker. Para obter uma lista completa, consulte o documento Plataformas Suportadas. Os números de compilação para estas versões de manutenção são: 2025.1.3.481.1.

讨论 (0)1
登录或注册以继续