Artículo
· 2 sep, 2024 Lectura de 4 min

IRIS Python nativo

Hola Comunidad

Anteriormente he experimentado con Python embebido en IRIS; sin embargo, aún no he tenido la oportunidad de implementar IRIS usando Python nativo. En este artículo, mi objetivo es esbozar los pasos que tomé para comenzar a aprender e implementar IRIS dentro de la fuente de Python. También me gustaría agradecer a @Guillaume Rongier y @Luis Angel Pérez Ramos su ayuda para resolver los problemas que encontré durante mi reciente instalación PIP de IRIS en Python, lo que finalmente permitió que funcionara correctamente.

Empecemos a escribir IRIS en python.

Lo primero es lo primero, tenéis que instalar el archivo intersystems_irispython-3.2.0-py3-none-any.whl desde el repositorio de github. He descargado e instalado en mi máquina de Windows.

py -m pip install intersystems_irispython-3.2.0-py3-none-any.whl

Verificado que los paquetes están instalados en mi máquina ejecutando py -m pip list

intersystems-irispython 3.2.0
iris                    0.0.5

 

Ahora listo para empezar a escribir el python. He creado un archivo .py e importar el paquete iris en la parte superior de la clase.

Ahora vamos a establecer la conexión a IRIS mediante el método de conexión y crear el uso del objeto de conexión para instanciar el objeto iris.IRIS mediante el uso de «createIRIS» y este es el paso crucial para proceder a otras operaciones.

import iris
impor time

args = {'hostname':'127.0.0.1', 'port':1972,'namespace':'LEARNING', 'username':'_SYSTEM', 'password':'SYS'}

try:
    """
    some other ways instead of kwargs
    conn = iris.connect(hostname='127.0.0.1', port=1972, namespace='LEARNING',username='_SYSTEM',password='SYS')
    """
    conn = iris.connect(**args)
    # A new IRIS object that uses the given connection.
    irispy = iris.createIRIS(conn)

    print('connected!')
except Exception as e:
    # Handling the exception and printing the error
    print(f"An error occurred: {e}")
    

 

Ahora hablemos de los Métodos para COS y global

Una vez que hayáis creado con éxito un objeto IRIS. Ahora estáis listos para utilizar diversas operaciones

set : Esta función se utiliza para definir los valores globales en la base de datos IRIS.

1. el primer parámetro es el valor establecido 

2. El segundo parámetro es el nombre global.

3. *args - tercer parámetro es subíndice(s)

def set_global(value=None,gbl=None,*args):
    #set method is in _IRIS from iris package
    irispy.set('set from irispy','mygbl','a',str(time.time()))
    print('global set done!')

set_global()

 

kill Esta función se utiliza para eliminar el global de la base de datos

def kill_global():
    irispy.kill('mygbl')
    print('global kill done!')

IsDefined: es igual a $data : verifica que existe

def data_isDefined():
    # equal to $data
    print(irispy.isDefined('mygbl','a')) # o/p 10
    print(irispy.isDefined('mygbl','a','1724996313.480835')) # o/p 1

nextSubscript: Es igual a $Order

irispy.nextSubscript(0,'mygbl','a')

tStart, tCommit y tRollback: lo mismo que TStart, TCommit, TRollback

def global_transaction_commit():
    irispy.tStart()
    print(irispy.getTLevel())
    irispy.set('set from irispy','mygbl','trans',str(time.time()))
    irispy.tCommit()

def global_transaction_rollback():
    irispy.tStart()
    print(irispy.getTLevel())
    irispy.set('set from irispy','mygbl','trans1',str(time.time()))
    irispy.tRollback() # tRollbackOne()

 

lock y unlock: por defecto incremental lock/exclusive lock

def global_lock():
    #default exclusive lock
    s = irispy.lock('',1,'^mygbl')
    time.sleep(10) # verify the lock in locktab
    irispy.unlock('','^mygbl')
    
def global_shared_lock():
    s = irispy.lock('S',1,'^mygbl')
    time.sleep(10)
    irispy.unlock('S','^mygbl')

node: subscript level igual que $Order

def node_traversal():
    # subscript level traversal like $Order
    for mrn in irispy.node('^mygbl'):
         for phone in irispy.node('^mygbl',mrn):
            print(f'patient mrn {mrn} and phone number: {phone}')
            
"""
o/p
patient mrn 912 and phone number: 3166854791
patient mrn 991 and phone number: 78050314
patient mrn 991 and phone number: 9128127353
"""

El nodo, el recorrido de valores y las definiciones de clase y sus miembros se tratan en el siguiente artículo.

Podéis consultar la documentación de IRIS para todas las funciones.

Comentarios (0)1
Inicie sesión o regístrese para continuar