#Portal de Administração

0 Seguidores · 8 Postagens

O Portal de Gerenciamento InterSystems é uma aplicação web que permite executar tarefas de administração e gerenciamento de sistemas para a Plataforma de Dados InterSystems.

Documentação sobre o Portal de Gerenciamento InterSystems.

Artigo Heloisa Paiva · Jul. 24, 2025 5m read

img

Claro, aqui está a tradução:

Módulos, que tópico! Não temos essa noção no ObjectScript, mas é um conceito fundamental em Python. Vamos descobri-lo juntos.

O que é um Módulo?

Eu vejo módulos como uma camada intermediária entre classes e pacotes. Vamos ver por exemplo.

Um exemplo ruim:

# MyClass.py
class MyClass:
    def my_method(self):
        print("Hello from MyClass!")

Quando você tentar usar essa classe em outro script, você faz:

# class_usage.py
from MyClass import MyClass # estranho, né?

my_instance = MyClass()
my_instance.my_method()

Por que este é um exemplo ruim?

Primeiro porque os nomes de arquivos devem estar em snake_case de acordo com a PEP 8, então deveria ser my_class.py. Segundo, porque você está importando uma classe de um arquivo que tem o mesmo nome da classe. Esta não é uma boa prática em Python.

Sei que isso pode ser confuso, especialmente se você vem do ObjectScript, onde as classes são definidas em arquivos com o mesmo nome da classe.

Noções Avançadas

Um Módulo é um Arquivo Python

Então, acabamos de ver que módulos podem ser um arquivo Python, mas sem a extensão .py.

Mas espere, isso significa que um script Python também é um módulo? Sim, é!

É por isso que você deve ter cuidado ao importar um script, pois ele executará o código contido nele. Consulte o artigo Introdução ao Python para mais detalhes.

Um Módulo é uma Pasta com um Arquivo __init__.py

Uau, uma pasta pode ser um módulo? Sim, pode!

Uma pasta pode ser um módulo se contiver um arquivo __init__.py file. Este arquivo pode estar vazio ou conter código de inicialização para o módulo.

Vamos ver um exemplo:

src/python/article/
└── my_folder_module/
    ├── __init__.py
    ├── my_sub_module.py
    └── another_sub_module.py
# my_folder_module/my_sub_module.py
class MySubModule:
    def my_method(self):
        print("Hello from MySubModule!")
# my_folder_module/another_sub_module.py
class AnotherSubModule:
    def another_method(self):
        print("Hello from AnotherSubModule!")
# my_folder_module/__init__.py
# Este arquivo pode estar vazio ou conter código de inicialização para o módulo.

Neste caso, my_folder_module e você pode importá-lo assim:

from my_folder_module import my_sub_module, another_sub_module

Ou se você definir um arquivo __init__.py com o seguinte conteúdo:

# my_folder_module/__init__.py
from .my_sub_module import MySubModule
from .another_sub_module import AnotherSubModule

Você pode importá-lo assim:

from my_folder_module import MySubModule, AnotherSubModule

Você percebe a sutileza? Você pode importar as classes diretamente do módulo sem especificar o submódulo, porque o arquivo __init__.py é executado quando você importa o módulo, e ele pode definir o que está disponível no namespace do módulo.

sys.path

Quando você importa um módulo, o Python o procura nos diretórios listados emsys.path. Esta é uma lista de strings que especifica o caminho de busca por módulos.

Você pode ver o sys.path atual executando o seguinte código:

import sys
print(sys.path)

Por padrão, ele inclui o diretório atual e outros vários diretórios, dependendo da sua instalação Python.

Você também pode adicionar diretórios ao sys.path em tempo de execução, o que é útil quando você deseja importar módulos de um local específico. Por exemplo:

import sys
sys.path.append('/path/to/your/module')
from your_module import YourClass

É por isso que no artigo anterior, adicionamos o caminho para o módulo antes de importá-lo:

Set sys = ##class(%SYS.Python).Import("sys")
do sys.path.append("/irisdev/app/src/python/article")
set my_module = ##class(%SYS.Python).Import("my_module")

sys.path e os outros diretórios

Quais são os outros diretórios em sys.path? Eles geralmente são:

  • O diretório contendo o script de entrada (ou o diretório atual se nenhum script for especificado).
  • Os diretórios da biblioteca padrão, que contêm os módulos built-in que vêm com o Python.
  • site-packages diretórios onde pacotes de terceiros são instalados.d.

site-packages

Como site-packages funciona? Quando você instala um pacote usando pip, ele é instalado no diretório site-packages que é automaticamente incluído em sys.path. Isso permite que você importe o pacote sem ter que especificar sua localização.This allows you to import the package without having to specify its location.

🤨🔍 Mas como e onde o diretório site-packages é definido e por quem?

O diretório site-packages é criado durante a instalação do Python e geralmente está localizado no diretório lib da sua instalação Python. O local exato depende do seu sistema operacional e de como o Python foi instalado.

Por exemplo, em uma instalação Linux típica, o diretório site-packages pode estar localizado em:

/usr/local/lib/python3.x/site-packages

No Windows, pode estar localizado em:

C:\Python3x\Lib\site-packages

Quando você instala um pacote usando pip, ele é instalado no diretório site-packages que é automaticamente incluído em sys.path. Isso permite que você importe o pacote sem ter que especificar sua localização.

import site
print(site.getsitepackages())

🤨🔍 Quando e onde o interpretador Python lê o arquivo site.py?

O arquivo site.py (que está localizado no diretório da biblioteca padrão) é executado automaticamente quando o interpretador Python é iniciado. Ele é responsável por configurar o diretório site-packages e adicioná-lo ao sys.path. Este arquivo está localizado no diretório da biblioteca padrão da sua instalação Python.

sys.path no IRIS

No IRIS, também temos um arquivo site.pyque está localizado em <installation_directory>/lib/python/iris_site.py. Este arquivo é executado quando você inicia ou importa um script/módulo no IRIS, e ele configura o sys.path para você.

e forma geral, o arquivo iris_site.pyfaz o seguinte:

  • Mantém o diretório site-packages padrão
  • Adiciona o diretório<installation_directory>/lib/python/ ao sys.path
    • É aqui que os módulos Python do IRIS estão localizados, por favor, não coloque seus módulos aqui.
  • Adiciona o diretório <installation_directory>/mgr/python/ ao sys.path -É aqui que você pode colocar seus módulos Python personalizados.
  • Adiciona a string de configuração PythonPath ao sys.path

Conclusão

Um módulo pode ser:

  • Um arquivo Python (com ou sem a extensão .py)
  • Uma pasta com um arquivo __init__.py.
  • Um script Python (que também é um módulo).
  • Se você não conseguir importar um módulo, verifique se ele está na lista sys.path.
0
0 26
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:

0
0 25
Anúncio Danusa Calixto · Abr. 2, 2025

Olá Comunidade! 

Animados com as novidades disponibilizadas na versão mais recente dos produtos InterSystems IRIS, InterSystems IRIS for Health, and HealthShare Health Connect ? 

A versão 2025.1 dos produtos está cheia de novidades incluindo melhorias na tela de Configuração da Produção e no Editor DTL.

0
0 26
Artigo Danusa Calixto · jan 27, 2025 1m read

Rubrica de perguntas frequentes da InterSystems

Você pode configurar o tamanho máximo do banco de dados IRISTemp na inicialização do IRIS ao definir um parâmetro de configuração chamado MaxIRISTempSizeAtStart.

Após a definição, o sistema truncará o IRISTemp para o valor definido (MB) na próxima inicialização do IRIS. Se o tamanho atual for menor que o MaxIRISTempSizeAtStart especificado, não ocorrerá nenhum truncamento. Além disso, se for especificado 0, o truncamento não será realizado, então o tamanho será inicializado sem alteração. As configurações (padrão) são realizadas no menu abaixo.

Portal de Gerenciamento
[Administração do Sistema] > [Configuração] > [Configurações adicionais] > [Inicialização] > "MaxIRISTempSizeAtStart"

Para mais detalhes, consulte a página de documentação abaixo.
MaxIRISTempSizeAtStart

0
0 31
Artigo Heloisa Paiva · jan 18, 2025 1m read

Neste tutorial, vou discutir como você pode conectar sua plataforma de dados IRIS a uma base de dados sql server.

Prerequisitos: 

0
0 65
Artigo Heloisa Paiva · Out. 18, 2024 4m read

wsgi_logo

Contexto

A Interface de Gateway de Servidor Web (WSGI) é uma convenção de chamada simples para servidores web encaminharem solicitações para aplicativos web ou frameworks escritos na linguagem de programação Python. WSGI é um padrão Python descrito detalhadamente em PEP 3333.

🤔 Ok, ótima definição, e qual o objetivo com o iris?

O IRIS 2024.2+ possui um novo recurso que permite que você execute aplicativos WSGI diretamente no IRIS. Esse recurso é uma ótima maneira de integrar o IRIS com outros frameworks e bibliotecas Python.

Isso segue a tendência de primeira experiência com Python, onde você pode usar Python para interagir com o IRIS, e agora você também pode executar aplicativos Python diretamente no IRIS.

Como usasr

Para instanciar um aplicativo WSGI no IRIS, você precisa configurá-lo na seção Segurança->Aplicações->Aplicações Web do Portal de Gerenciamento IRIS.

Exemplo simples com Flask:

Arquivo chamado app.py no diretório /irisdev/app/community:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

Configuração UI

imagem

Nesta seção, você pode configurar a aplicação WSGI providenciando:

  • Nome da aplicação

  • Isso corresponde ao nome de arquivo da aplicação WSGI

  • ex: app.py, mas sem a extensão .py : app

  • Nome chamável

    • A função chamável que será chamada pelo servidor WSGO

    • ex: app corresponde à variável app no arquivo app.py

      • app = Flask(__name__)
  • Diretório de aplicação WSGI

    • O caminho onde o aplicativo WSGI está localizado
    • ex: /irisdev/app/community
  • Tipo de protocolo Python

    • Pode ser wsgi ou asgi
      • wsgi é o valor padrão e será usado neste exemplo
      • asgi é para aplicações assíncronas
        • nós suportamos asgi sincronicamente por hora com o adaptador a2wsgi
  • DEBUG *Se marcado, o aplicativo WSGI será executado no modo de depuração

    • Isso é útil para fins de desenvolvimento, pois quaisquer alterações no aplicativo WSGI serão recarregadas automaticamente

CPF Merge

Você também pode configurar o aplicativo WSGI usando CPF. Aqui está um exemplo de configuração

[Actions]
CreateApplication:Name=/flask,NameSpace=IRISAPP,WSGIAppLocation=/irisdev/app/community/,WSGIAppName=app,WSGICallable=app,Type=2,DispatchClass=%SYS.Python.WSGI,MatchRoles=:%ALL,WSGIDebug=0,WSGIType=0

Arquivos de Log

Os logs do aplicativo WSGI são armazenados no arquivo WSGI.log localizado no diretório mgr da instância.

Exemplos

Here are some examples of WSGI applications that you can run on IRIS, they aim to show how to run different Python frameworks on IRIS.

Basically, the use case will be the same for all the frameworks:

Endpoints

  • /iris - Retorna um objeto JSON com as 10 principais classes presentes no namespace IRISAPP.
  • /interop - Um endpoint de ping para testar o framework de interoperabilidade do IRIS.
  • /posts - Um endpoint CRUD simples para um objeto Post
  • /comments - Um endpoint CRUD simples para um objeto Comentário.

Modelo de Objeto

Objeto Post:

  • id
  • título
  • conteúdo

Objeto Comentário

  • id
  • post_id (chave estrangeira para Post)
  • conteúdo

Flask

Django

FastAPI

Limitações

  • O ASGI é suportado de forma síncrona por enquanto com o adaptador a2wsgi
  • aplicações tornado ( jupyter, streamlit, .. ) não são suportadas, pois não são compatíveis com WSGI.
0
0 58
Anúncio Angelo Bruno Braga · Ago. 22, 2022

Olá Comunidade, 

Neste vídeo, você aprenderá como utilizar o Assistente de Transformação de Dados no Portal de Administração da plataforma de dados IRIS® da InterSystems para converter mensagens para outros formatos: 

⏯ Transformando Mensagens de Saúde em Integrações com a Tecnologia  InterSystems

0
0 53