Now zpm support is available ![]()
zpm "install pex-embbeded-python"
Happy coding in pure python ![]()
- Log in to post comments
Now zpm support is available ![]()
zpm "install pex-embbeded-python"
Happy coding in pure python ![]()
Here a simple demo to show how this module can work with almost no effort to existing production :
https://github.com/grongierisc/iris-python-interoperability-template
Look how python code and ObjectScript code are similar :
Service :

Operation :

Here :

With this image you will see the difference between Kong Enterprise and Kong Community :

In short Kong EE (Enterprise Edition) bring :
If you need training on Kong EE you can follow this guide :
https://community.intersystems.com/post/iam-intersystems-api-manager-zero-hero
The app wasn't published, now it's should be ok.
This demo is now 100% python :
https://github.com/grongierisc/iris-python-interoperability-template/tree/master/src/python/Demo
Look at this beauty :
FileOperation.py
import grongier.pex
import datetime
import os
import iris
class FileOperation(grongier.pex.BusinessOperation):
def OnInit(self):
if hasattr(self,'Path'):
os.chdir(self.Path)
def OnMessage(self, pRequest):
ts = title = author = url = text = ""
if (pRequest.Post is not None):
title = pRequest.Post.Title
author = pRequest.Post.Author
url = pRequest.Post.Url
text = pRequest.Post.Selftext
ts = datetime.datetime.fromtimestamp(pRequest.Post.CreatedUTC).__str__()
line = ts+" : "+title+" : "+author+" : "+url
filename = pRequest.Found+".txt"
self.PutLine(filename, line)
self.PutLine(filename, "")
self.PutLine(filename, text)
self.PutLine(filename, " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *")
return iris.cls('Ens.StringResponse')._New("hello")
@staticmethod
def PutLine(filename,string):
try:
with open(filename, "a",encoding="utf-8") as outfile:
outfile.write(string)
except Exception as e:
raise e
FileOperationWithIrisAdapter (we can use native iris adapter :)):
import iris
import grongier.pex
class FileOperation(grongier.pex.BusinessOperation):
def getAdapterType():
"""
Name of the registred adaptor
"""
return "EnsLib.File.OutboundAdapter"
def OnMessage(self, pRequest):
ts = title = author = url = text = ""
if (pRequest.Post != ""):
title = pRequest.Post.Title
author = pRequest.Post.Author
url = pRequest.Post.Url
text = pRequest.Post.Selftext
ts = iris.cls("%Library.PosixTime").LogicalToOdbc(iris.cls("%Library.PosixTime").UnixTimeToLogical(pRequest.Post.CreatedUTC))
line = ts+" : "+title+" : "+author+" : "+url
filename = pRequest.Found+".txt"
self.Adapter.PutLine(filename, line)
self.Adapter.PutLine(filename, "")
self.Adapter.PutLine(filename, text)
self.Adapter.PutLine(filename, " * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *")
return 1
Welcome :)
Have a look those depots :
BTW, there were an issue on the transformation from FHIR to HL7 on the github demo. This has been fix with this commit : https://github.com/grongierisc/iris-healthtoolkit-service/commit/c9d68c…
Since the launch of IRIS, ENSDEMO namespace is gone.
Now to have demo or anything else you have to go with ZPM : https://community.intersystems.com/post/install-zpm-one-line (the package manager).
Check the list here :
https://openexchange.intersystems.com/
If you still want EnsDemo check those githubs :
Thanks for sharing this neat trick.
Nice,
I love this article because we have a side by side examples in ObjectScript and Python
Have a look at this article/openexchange example :
https://community.intersystems.com/post/how-quickly-publish-restful-api…
it might suit you.
What a great article, very useful and with lot of details.
Thanks @Lorenzo Scalese
link to a solution with IRIS 2021.1+ with the use of the new window (OVER) function :
https://community.intersystems.com/post/scrollable-resultset-pagination…
Great initiative,
I will try to apply this to most of my repository.
BTW, there is an easy way to enable BuildKit without editing the config file of docker :
Unix :
DOCKER_BUILDKIT=1 docker-compose build
Windows :
set "DOCKER_BUILDKIT=1" & docker-compose build
For your information, these benchmarks are a comparison of an ObjectScript interoperability code and a 100% python code based on this module :
https://github.com/grongierisc/interoperability-embedded-python ( build a production without a single line of code in objectscript while remaining compatible, neat
)
Hi Yuri,
Can you add this neat training on how to build an production (interoperability framework) in 100% Python :
Another solution can be with SAM :
Hi, BTW, starting with IRIS 2021.1+ you can enable the interoperability metrics with those command lines :
// Enable Intero metrics for SAM
zw ##class(Ens.Util.Statistics).EnableSAMForNamespace()
zw ##class(Ens.Util.Statistics).EnableSAMIncludeHostLabel()
Hi Paul,
You can log with SuperUser/SYS.
The last version of main should fix your issue.
I still have to fix, CDA to FHIR but others are working.
I join you in all these considerations:
For all these reasons I use the community versions for building my demos (thanks @Evgeny Shvarov).
However, for the problem of disappearing versions what we did with some customers is to copy the images in a private repository, it is not the most elegant solution but it works.
What a neat series of articles !
Thanks !
To help anyone in this journey, you can find a template to start working on django and an IRIS database :
You are right there still is some issue in the IRIS DB-API, they will be fix in future release.
I love this project.
What I love the most is that is a full fix experience with an acceptor server and an initiator client (iris).
Some screenshot of a quote + an order :
The order :

The quote before the order :

The result of the quote :

The order with the quote id :

The result of the order :

Result of a market request :

What a neat demo, looking forward to have something with picture like Dall-E (https://huggingface.co/spaces/dalle-mini/dalle-mini).
I don't have access to Dall-E 2, I use mini-Dall-E : https://huggingface.co/dalle-mini.
Great article, in fact, with Fine Tuning, we can use pre-built and famous models like BERT (text classification by google) and adapt them to our need.
Moreover, in this case, we are not in theory but in a practical case of classification of more or less positive comments.
Thanks for this contribution!
What I like with this demo is the auto-completion of FHIR resources thanks to the "fhir.resources" library in python.
Is it also possible to do validation with this library?