Home Applications Webinar-Leveraging-Embedded-Python

Webinar-Leveraging-Embedded-Python

This application is not supported by InterSystems Corporation. Please be notified that you use it at your own risk.
4.25
2 reviews
0
Awards
130
Views
0
IPM installs
1
0
Details
Releases
Reviews  (2)
Issues
Videos  (1)
Follow along the Leveraging Embedded Python Webinar!

What's new in this version

Initial Release

Webinar: Leveraging Embedded Python

These demos are to make it easier for you to follow along with the webinar. Additional resources are available as well, details at the end.

Change From ObjectScript Shell to Python Shell

WEBINAR> do ##class(%SYS.Python).Shell()
Python 3.9.5 (default, Jul 31 2023, 18:25:30) [MSC v.1927 64 bit (AMD64)] on win32
Type quit() or Ctrl-D to exit this shell.
>>> 

Change Namespace within Python Shell

>>> do iris.execute('zn "USER"')

Open An Object With Python Shell and Change a Value

>>> person = iris.cls('Webinar.Human')._OpenId(5)
>>> person.Name = "Golda Meir"
>>> st = person._Save()
>>> print(st)
1
>>>

SQL Query From Python Shell

>>> stmnt = iris.sql.prepare("Select ID, Name, Address, PostalCode From Webinar.Human WHERE ID < ?")
>>> rs = stmnt.execute()
>>> for idx, row in enumerate(rs):
...     print(f"{row}")

...RESULTS HERE...

Globals and Embedded Python

>>> myGref = iris.gref('^Days')
>>> myGref[None] = 7
>>> myGref[1] = 'Sunday'
>>> myGref[7] = 'Shabbat'
>>> print(myGref[7])

Libraries

Installing a Library, Importing and Using it via ObjectScript Shell: geopy

Powershell:

PS C:\InterSystems_Webinar\bin> .\irispip install --target C:\InterSystems_Webinar\mgr\python geopy

ObjectScript Shell:

WEBINAR> set geopy = ##class(%SYS.Python).Import("geopy.distance")
WEBINAR> set builtins = ##class(%SYS.Python).Builtins()
WEBINAR> set TelAviv = builtins.list()
WEBINAR> do TelAviv.append(32.0853)
WEBINAR> do TelAviv.append(34.7818)
WEBINAR> set Jerusalem = builtins.list()
WEBINAR> do Jerusalem.append(31.7683)
WEBINAR> do Jerusalem.append(35.2137)
WEBINAR> set route = geopy.distance(TelAviv, Jerusalem)
WEBINAR> write route.km
53.88684225580475839

Installing a Library, Importing and Using it via Python Shell: jsondiff

Powershell:

PS C:\InterSystems_Webinar\bin> .\irispip install --target C:\InterSystems_Webinar\mgr\python jsondiff

Python Shell:

>> from jsondiff import diff
>>> diff({'a': 1, 'b': 2}, {'a': 1, 'b':3})
{'b':3}

Converting JSON to Excel: json2excel

Powershell:

PS C:\InterSystems_Webinar\bin> .\irispip install --target C:\InterSystems_Webinar\mgr\python json2excel

Python Shell:

>>> from json2excel import Json2Excel
>>> json2excel = Json2Excel()
>>> jsons = [{"studentNo":1001, "Name": "Rivka"},{"studentNo":1002, "Name":"Benny"}]
>>> print(json2excel.run(jsons))
<file location>

Interoperability

The TCP Service receives the HL7 message, and forwards it to the Buisness Process. Here it goes through a transformation, where the Name, Address, and Hebrew Update Date are put into the message and sent to the Buisness Operation. It in turn finds the postal code from the Python Library geopy, adds all fields from the message, and the postal code to the human, and saves the human into the table. We see the query results from the table using the SQL Tools InterSystems extension in Visual Studio code.

image

image

image

image

Running a Python Script

PS C:\InterSystems_Webinar\bin> $env:IRISUSERNAME = "aglikman"
PS C:\InterSystems_Webinar\bin> $env:IRISPASSWORD = "1234"
PS C:\InterSystems_Webinar\bin> $env:IRISNAMESPACE = "WEBINAR"
PS C:\InterSystems_Webinar\bin> .\irispython C:\Users\aglikman\Documents\MyProjects\Webinar\test.py

Fibonacci series:
0 1 1 2 3 5 8
Run IRIS Code:

Hi! I'm Issac Herzog.
I live at 3 HaNassi, Jerusalem.
My postal code is: 9218801.

Additional Resources

Want to learn more? Don’t speak Hebrew? There are numerous resources available for you:

Docker

Namespace WEBINAR is prepared and IRIS classes ready to use
Webinar.Human is preloaded with 25 records
All requred Python libraries are loaded

Prerequisites

Make sure you have git and Docker desktop installed.

Installation

Clone/git pull the repo into any local directory

$ git clone https://github.com/rcemper/PR_Webinar-Leveraging-Embedded-Python.git

to build and start the container run

$ docker compose up -d && docker compose logs -f

you can start Pythosn shell using alias :py

To open IRIS Terminal do:

$ docker-compose exec iris iris session iris 
USER>ZN "WEBINAR"  
WEBINAR>:py     

Python 3.10.12 (main, Nov 20 2023, 15:14:05) [GCC 11.4.0] on linux
Type quit() or Ctrl-D to exit this shell.
>>>

or using WebTerminal
http://localhost:42773/terminal/

To access IRIS System Management Portal
http://localhost:42773/csp/sys/UtilHome.csp

Made with
Version
1.0.018 Sep, 2023
Category
Technology Example
Works with
InterSystems IRISInterSystems IRIS for HealthHealthShare
First published
18 Sep, 2023
Last checked by moderator
01 Nov, 2023Works