Looking at the documentation, I see that the global ^ROUTINE brings the information and code of the .INT version of the routines. However, I would like to know where the equivalent information of the .MAC version is, as I did not find any reference to this in the documentation.
Some information in the .MAC version are hidden or already converted into the .INT version, and I would like to have access to this information through the system, and not just opening the routine in the studio.
IAM 3.2 Release
InterSystems API Manager (IAM) version 3.2.1 is now Generally Available. In additional to bug fixes and minor improvements IAM 3.2 adds new plug-ins that might be of interest to IRIS customers.
- OAS Validation (oas-validation)
- Validate HTTP requests and responses based on an OpenAPI 3.0 or Swagger API Specification.
- SAML (saml)
- Provides SAML v2.0 authentication and authorization between a service provider (Kong Gateway) and an identity provider (IdP).
- XML Threat Protection (xml-threat-protection)
- This new plugin allows you to reduce the risk of XML attacks by checking the structure of XML payloads. This validates maximum complexity (depth of the tree), maximum size of elements and attributes.
- AppDynamics (app-dynamics)
- Integrate Kong Gateway with the AppDynamics APM Platform.
- JWE Decrypt (jwe-decrypt)
- Allows you to decrypt an inbound token (JWE) in a request.
Most of the databases with SQL access offers the DATE_TRUNC function or analogs. This helps to easily truncate a date by any part while keeping the DateTime in a valid format
.png)
Hey Community,
We are glad to invite you to the upcoming kick-off webinar for the InterSystems IRIS Cloud SQL and IntegratedML Contest.
In this webinar, we'll present you the arena for the next contest: our new cloud offerings InterSystems IRIS Cloud SQL and InterSystems IRIS Cloud IntegratedML. We'll describe what these SaaS offers are all about and walk you through setting up your account and log on to the web portal, which includes an intuitive user interface to load data, create and train machine learning models, and then evaluate those models on test data. For the contest environment, we have included sample datasets so you can go from account signup to your first SQL query and IntegratedML model in a matter of seconds.
Date & Time: Monday, April 3 – 11 am EDT | 5 pm CEST
In some testing scenarios, I need to clone the database. While I use only SQL access.
I need all data to be cloned, not mapped from the original database, and a separate database to be accessed.
Is there any way to do so?
Something like
CREATEDATABASE [Databasetocreate]
WITHTEMPLATE [Databaseto copy]When using %JSONImport it seems to only report a single error, is there a way to report all the errors with out having to do multiple requests?
{
"errors": [
{
"code": 9406,
"domain": "%ObjectErrors",
"error": "ERROR #9406: Unexpected format for value of field, CurrencyCode, using Update mapping",
"id": "JSONImportError",
"params": [
"CurrencyCode",
"Update"
]
}
],
"summary": "ERROR #9406: Unexpected format for value of field, CurrencyCode, using Update mapping"
}
If you have worked with Caché Objects,
You know already all about Relationships (one:many , parent:child) ...
But you will not find a word on many:many relationships in the docs.
But I met the question quite often from new adopters of Caché objects:
"Is it possible to implement many:many relationships ?"YES - of course !
HowTo depends on the related tasks: There is a heavy and a lightweight solution.
Both have in common that they are not just out of the box and you have
to add some code to manage it.
Let's take an example based on SAMPLES namespace:

we have the case of an N:1 relationship
But how do
I've been working for some days in the connectivity between NodeJS client applications and IRIS as server using web sockets.
You can get all the information in relation to the web socket connections using IRIS as a client or as a server from this URL: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
For this example we are going to configure an asynchronous server, that would be really usefull to create a subscription manager for our productions.
First of all, we have created a really simple persistent object in which we are going to store the session
I have tried to parse the output of this call:
https://fhir.loinc.org/CodeSystem/$lookup?system=http://loinc.org&code=28890-2
and I don't know what's the right class to use.
I need to extract:
* different components of the LOINC code
* Component
* FSN
* LCN
Is there a nice class that I can use to extract the different components?
In this article, I am trying to walk through my deploying step of IAM on my EC2(ubuntu).
What is IAM?
IAM is InterSystems API Manager
you may reference to the link below to get more idea about IAM
https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_apimgr

Before deploying IAM
Check the license of your API host
.png)
.png)
Enable the User IAM
.png)
.png)
Deploy IAM
Reference
https://community.intersystems.com/post/introducing-intersystems-api-manager
Download the image from the following link
https://wrc.intersystems.com/wrc/coDistGen.csp
I downloaded the following version to my pc
.png)
Upload the image to
During a migration from a rather old Caché Version (2016.1) to IRIS
I met the problem to migrate Streams.
The difference in the storage Global is minimal
It's not a big effort to do it manually for a few streams.
But for some thousand streams I hope there is a tool already available.
But where?
Here is a digest of new solutions and applications submitted to the InterSystems Open Exchange in March of 2023.
✓ 445 downloads in March
✓ 696 applications all time
✓ 24,346 downloads all time
✓ 2,088 developers joined
Hello Community,
After the last heated programming contest, we're happy to announce the next InterSystems technical article writing competition!
✍️ Tech Article Contest: InterSystems IRIS Tutorials ✍️
Write an article that can be considered a tutorial for InterSystems IRIS programmers of any level: beginner / middle / senior from March 1st to March 31st.
🎁 Prizes for everyone: A special prize pack for each author who takes part in the competition!
🏆 Main Prizes: There are 6 prizes to choose from.
.jpg)
– 43 new articles
– 39 new announcements
– 89 new questions
– 4 new discussions
✓253 new members joined in March
✓11,094 posts published all time
✓8,917 members joined all time
Our ERP solution runs on different sql databases (such as ms sql and posgre). We are using the same code for all plattforms, doing database-specific changes in the db driver for each type of database.
There is one function in our program, where the user can store long text to discribe something, which is used in print and web. This text is treated/stored as html and can include pictures. The pictures in the html are stored base64 coded inside the html and the html is stored as text in a column. In other database systems, this is treated as TEXT or BLOB, and workings just fine.
But with IRIS, we
Hey all,
I have been creating a class to handle file encryption by using GPG keys. I pushed my code out today and my encrypt and decrypt methods weren't working. About a half an hour later in troubleshooting I found out that it needed to be a syntax change. My method has three parameters to it. Examples below:
This is how I was calling it in the test system with no issues:
do gpg.Encrypt()
This is how I was having to call it in my production system to work with no issues:
do gpg.Encrypt("","","")
If I was to enter in my production environment do gpg.Encrypt() I would just get an undefined due to it
Why does my VSCode tell me I have 20 problems when I reference (20x) the class the method resides in? The compilation is without erros.
.png)
Am I doing something wrong?
Hey Community!

Here are the bonuses for participants' articles that take part in the Tech Article Contest: InterSystems IRIS Tutorials:
First of all, what is data anonymization?
According to Wikipedia:
Data anonymization is a type of information sanitization whose intent is privacy protection. It is the process of removing personally identifiable information from data sets, so that the people whom the data describe remain anonymous.
In other words, the data anonymization is a process that retains the data but keeps the source anonymous. Depending on the adopted anonymization technique the data is redacted, masked or substituted.
And that is the purpose of iris-Disguise, to provide a set of anonymization tools.
You can use in
What is the difference between "Apply" button and "Update" button on an Order Item screen?
.png)
Hi Team,
How to extract/export the event logs quicker from Ens_Util.Log (intersystems log) using query itself.
(Similar to OUTFILE in sql)
Is anyone like me, and felt really jealous that they didn't have enough points to acquire the IRIS-based Raspberry Pi system when it was offered? Do you have a spare Raspberry Pi 4 handy? If so, I'll walk you through setting up Docker and IRIS on your Raspberry Pi so you can have the smallest IRIS computer in town!
Things you'll need:
Raspberry Pi 4 (at least 4G RAM, but I have several with 8G so that's what I used. 2G RAM *might* work, but there might be a lot of swap file activity which would slow down the process considerably)
MicroSD card (at least 16G, but I'd recommend 32G or more)
Power
I had an interesting scenario come up, as when we moved from eGate to Ensemble and we will be moving to IRIS here in the near future I was taught to create Business Processes for writing to and extracting data from outside MS SQL Databases.
That works ok for simple messages but I have a case where I have a rather large MFN message coming in from a vendor.The normal Business Process of reading in the HL7, and parsing the message into Stored Procedure structure calls has worked in the past with smaller messaging like ADT, etc.
Hi Community,
There are two records of the same patient coming from the same source and when they are merged from the source they are not updating Health Information Exchange. I have blurred crucial information and the records are not falling off the worklist items after a merge from the source system.
The two records from the same source are in the middle section and the right section.
.png)
Keywords: ChatGPT, COS, Lookup Table, IRIS, AI
Purpose
Here is another quick note before we move on to GPT-4 assisted automation journey. Below are some "little" helps ChatGPT had already been offering, here and there, during daily works.
And what could be the perceived gaps, risks and traps to LLMs assisted automation, if you happen to explore this path too. I'd also love to hear anyone's use cases and experiences on this front too.
Lookup tables
One of the simplest tasks could be Lookup tables.
Hi Community,
Some of you would like to share an event (online or offline) with others on our Community and here is a how-to on how to actually create an Event to invite your fellow members.
.png)
The main challenge when creating an event is to fill in all the necessary pieces of information in the right places. So let's look at what needs to be done.
Hi,
Does anyone have experience with connecting to IRIS with OLEDB through an OLEDB-ODBC bridge? In this case the client can only speak OLEDB at this moment.
Regards,
Marcel
Hi folks!
Playing with InterSystems FHIR server.
You can easily install it in IRIS for Health using FHIR template:
zpm "install fhir-server"
NB! For now the IPM command mentioned above works for a namespace called FHIRSERVER only.
I have a FHIR server in a local docker container with endpoint:
localhost:52773/fhir/r4
WIN SQL is the normal editor used by most of the users .But we can't download large amount of data using winsql . So I have written a tutorial how to connect with a new Java based editor called Squirrel SQL which can easily download or export data in excel or any other formats. Also I included a Java JCBC connection program to connect with the IRIS database especially a mirroring/failover server.
SQL Java based Editor to Export large amount of data and Java JDBC program for IRIS connection
SQL Java based Editor to Export large amount of data
WinSql is the editor used normally to extract data
Hi Guys,
I've a task that runs every 10 mins executing the below code, but the issue is that it slowing the system down affecting other processes, so is there a way to maybe spread the execution of this so it doesn't slow down the system? I've tried spreading these fucntion in two different tasks but doesn't seem to change much.
Method OnTask() As %Status
{
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("20779")
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("21822")
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("21147")
J
