1. interoperability-embedded-python
This proof of concept aims to show how the iris interoperability framework can be used with embedded python.
InterSystems IRIS is a Complete Data Platform
InterSystems IRIS gives you everything you need to capture, share, understand, and act upon your organization’s most valuable asset – your data.
As a complete platform, InterSystems IRIS eliminates the need to integrate multiple development technologies. Applications require less code, fewer system resources, and less maintenance.
This proof of concept aims to show how the iris interoperability framework can be used with embedded python.
I am trying to setup our first SSL/TLS configuration so we can possibly connect to the EMR FHIR server to pull data into the Interoperability engine.
I am running on Red Hat, and created and submitted a openssl CSR request to our Windows ADCS system.
I used the following command to generate the key and CSR request to submit to Windows ADCS
openssl req -new -sha512 -nodes -newkey rsa:4096 -keyout xxxxxxx.key -out xxxxxxxx.csr
When the certificate was generated I was able to download the individual certificate (cer) and the certificate chain (p7b) in DER or Base64.
This is a bit of an IRIS question but also and OAuth 2.0 questions:
I am using %OAuth2.JWT.JWTToObject() to "validate" a JWT. My questions:
- While I am checking claims with the returned body, does the return status of the method "count" as a validation step? In other words, if I weren't checking claims and $$$OK was returned from that method call (passing in the token and public keys), I could feel confident that this token came from the expected auth server?
When manually coding REST services and using GET /api/mgmnt/v1/:namespace/spec/:application/ to return an OpenAPI spec, how do you specify supported properties (OpenAPI Properties in Use | Creating REST Services | InterSystems IRIS Data Platform 2021.1) like responses, definitions, and information in paths like summary and description?
Using a very basic manual REST service that returns a JSON string I get a pretty basic spec that is not really helpful when it comes to documentation.
I have the following setup: REST broker calls inProc BO via BS. As BO initialization is time-consuming, I want to reuse the same BO during the CSP process lifetime.
I have tried the following approaches:
%session.Preserve to 1 (I would prefer not to use it as the BO object is not linked to a specific client)
$$$EnsInProcPersist to 1 (looked relevant)
However, every time I call my REST endpoint, I get a new BO. Is there a way to cache inProc BOs in the CSP context?
To run the sample, import it into any interoperability-enabled namespace, start in.
Hi InterSystems Community
We recently had an issue where we weren't able to parse a JSON HTTP request, but the issue went by unnoticed. We also did not have a trace of what the raw HTTP request was that we couldn't parse. I'm looking at improving our this by:
Tracing the raw request using $$$TRACE
Raising an alert which will hit our Ens.Alert router which will compose and send an email
I'm having an issue with consistently raising the alert (I've seen it raise an alert before, and then it wouldn't raise it again on a subsequent message), and also the error back does not really make sense.
The InterSystems documentation https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl… says: "If you do not already have these files, contact the InterSystems Worldwide Response Center (WRC) for download information."
Hibernate is the most used framework to do database persistence. All databases in the market allows get hibernate driver in public repositories, InterSystems no. It is a barrier to InterSystems adoption in the Java Community.
When InterSystems will provide Hibernate jar file to public download, into a public maven repository?
Any news about JDBC driver and Hibernate dialect on a public java repository, like mvnrepository? Today I need to download the jdbc driver and hibernate jar, add as an external resource on my maven config file to works.
Good morning!
I am developing a Java project (Spring Boot + Maven + Hibernate) but I've a big issue when I try to define the Hibernate Dialect org.hibernate.dialect.InterSystemsIRISDialect... that dialect is neither in the Hibernate library nor in the IRISDriver class com.intersystems.jdbc
How should I define the IRISDialect in my project?
Thank you in advance!
I am hoping someone can let me know if I've gone down a dark path or not:
InterSystems announces its sixth preview, as part of the developer preview program for the 2023.2 release. This release will include InterSystems IRIS and InterSystems IRIS for Health.
Many updates and enhancements have been added in 2023.2 and there are also brand-new capabilities, such as Time-Aware Modeling, and enhancements of Foreign Tables (but still as an experimental feature). Note that some of these features or improvements may not be available in this current developer preview.
Another important topic is the removal of the Private Web Server (PWS) from the installers.
Hi all,
I'd like to start playing around with some simple Angular app with IRIS REST Api but I'd like to do so in the best way possible, did you have any best practices and/or VSCode setup to make life easier?
Keep in mind I've never developed an Angular APP before, so also some simple example will be really useful.
Tnx.
Hi Community,
Watch this video to learn how InterSystems software enables both horizontal and vertical scaling:
I'm open for new opportunities and challenges. Remote Job for any part of the world. Languages: portuguese, english and spanish.
I have more tha 20 year of experience with InterSystems Technologies.
Two InterSystems Certifications.
Large HealthCare Interoperability Experience.
I'm worked on large projects in Brazil, Chile, United States.
Knowledge in other program languages then COS, like Java, Python, C#, JavaScript, R.
mail: cristiano.js@gmail.com
LinkedIn: https://www.linkedin.com/in/cristianojs/
In response to a community question asking to view Request and Response message types in Production settings..
A community helper class was implemented should people need this. ( alwo.EnsHelper.HostRequestResponseInfo )
zpm install alwo-enshelper
The code may serve as an example, to project bespoke configuration into Production settings.

Class myService extends (Ens.BusinessService, alwo.EnsHelper.HostRequestResponseInfo)
{
...
}Class myBusinessProcess extends (Ens.BusinessProcess, alwo.EnsHelper.
ObjectScript is a powerful language used in InterSystems products like InterSystems IRIS, enabling developers to build robust applications. To enhance the ObjectScript development experience, the OwnObjectScriptExtension is a Visual Studio Code extension that provides a range of tools and features. In this article, we will explore how the OwnObjectScriptExtension can improve your ObjectScript development workflow.
Writing comprehensive method descriptions is essential for maintaining code clarity and promoting collaboration.
I have created a global say ^myglobal and entered some data. I am storing the name of global in databases and fetching the name based on some criteria. I am getting "^myglobal" in return from databases but i am not able to fetch the data I stored in the global.
I tried set var = result.global which gives me "^myglobal" in var. Doing WRITE var will return "^myglobal" and not the data i stored in this global.
It can sometimes be useful to list or export all of the subclasses that are derived, directly or indirectly, from a given class. In Studio, the Class -> Derived Classes menu option will show such a list, but I'm not aware of a built-in API for programmatically exporting their source code.
Yesterday I wrote some code for exporting derived classes, and I'm thinking about cleaning it up and putting it on Open Exchange. But if there's a simple way to do this that someone has already figured out, I'd be happy to know about that (and help others find that solution) rather than reinventing the wheel.
As previously announced at Global Summit 2022, InterSystems will discontinue shipping or installing an Apache-based web server (often referred to as the private web server or PWS); this change is currently planned for InterSystems IRIS 2023.2.
With this new approach, you have full control to choose which web server best suits your purposes, and how you configure, maintain, and update it. A key benefit of this change is that you will no longer have to wait for an updated kit from InterSystems to get the latest version, which is important especially in security vulnerability situations.
Hey Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
I want to fetch value from a global without being limited by the namespace. Is there any way of referencing the values from a global to a different namespace?
_________ ___ ____
|__ / _ \_ _| _ \
/ /| |_) | || |_) |
/ /_| __/| || __/
/____|_| |___|_|
Starting in version 2021.1, InterSystems IRIS began shipping with a python runtime in the engine's kernel. However, there was no way to install packages from within the instance. The main draw of python is its enormous package ecosystem. With that in mind, I introduce my side project zpip, a pip wrapper that is callable from the iris terminal.
Hi Community,
I'm pleased to announce DEVBOX, the code anywhere IDE for IRIS.
Please watch the video and let me know what you think. Would you use it?
All the best,
Sean.
Hi devs!
How one can understand the classnames of request and response messages of a given operation?

E.g. when I build the data transformation, how do I know which message will come to the operation?
Now the Classes/Rutines/DeepSee files will be automatically exported to the working directory after saving or compiling and files will be automatically deleted .
To install isc-dev , you just need to download and import the file isc-dev.xml from last release.
Some ways to import isc-dev .xml file:
NS>do $system.OBJ.Load("yourpath/isc-dev.xml","ck")
NS>zpm
zpm: NS>install isc-dev
NS>do ##class(dev.code).workdir("/path/to/your/working/directory/src/")
dev.FileManExtension class as the main one and save it.It can be obtained by using the Size query of the system-provided %SYS.GlobalQuery class.
See the sample code below for usage examples.
*Please check the class reference for specifying columns and parameters.
set dir="C:\intersystems\iris\mgr\user" // IRIS.DAT(or CACHE.DAT) folder
set rs = ##class(%ResultSet).%New("%SYS.GlobalQuery:Size")
do rs.Execute(dir) // You can also specify a mask with the 3d parameter
while (rs.Next()) {
set gname= rs.Get("Name") // global name
set gsize= rs.Get("Used MB") // global size (MB)
write gname," : ",gsize,!I'm trying to execute SQL on a EC2 via SSM:
import boto3
instanceid = "i-123456789"
sql = """SELECT path FROM Security.Applications WHERE ID = '/csp/sys'"""
template = """su - irisusr -c 'cat << EOF | iris sql iris -U %SYS
""" + sql + """
q
EOF'
"""
template = [line.strip() for line in template.splitlines()]
template = """\n""".join(template)
ssm_client = boto3.client('ssm')
response = ssm_client.send_command(
InstanceIds=[instanceid],
DocumentName="AWS-RunShellScript",
Comment=AWS,
Parameters={'commands': template})With rapid evolution of Generative AI, to embrace it and help us improve productivity is a must. Let's discuss and embrace the ideas of how we can leverage Generative AI to improve our routine work.
Is it possible to hide certain properties in a class from displaying in the BPL visual editor, if you want to prevent drag and drop from accessing them or otherwise controlling or restricting their behavior?
Virtual document messages, such as EnsLib.HL7.Message, have hidden fields, such as Source, that do not show, presumably since the field list is rebuilt from the document schema. Setting the flag Internal, or XMLPROJECTION = "NONE" doesn't do it. Trying to follow the Virtual Document precedent to rebuild or edit the field list seems like a heavy list.
The extended maintenance releases of InterSystems IRIS, InterSystems IRIS for Health, and HealthShare Health Connect 2023.1.1 are now available. This release provides bug fixes for the previous 2023.1.0 releases.
You can find the detailed change lists / upgrade checklists on these pages:
The software is available as both classic installation packages and container images. For the complete list of available installers and container images, please refer to the Supported Platforms webpage.