Hi developers!
Want to share with you an exercise I tried with InterSystems IRIS Interoperability.
The sample shows how to use IRIS Interoperability with data transformation component to change the data in CSV file.

The story is below.
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.
Hi developers!
Want to share with you an exercise I tried with InterSystems IRIS Interoperability.
The sample shows how to use IRIS Interoperability with data transformation component to change the data in CSV file.

The story is below.
Hi Developers!
There is a recent update came for developer community images of InterSystems IRIS and IRIS For Health.
This release comes with Environment variables support.
Currently 3 variables are supported:
Here is what you can do - see below.
Start iris with your username and password created:
docker run --rm --name iris-sql -d -p 9091:1972 -p 9092:52773 -e IRIS_PASSWORD=demo -e IRIS_USERNAME=demo intersystemsdc/iris-communityDeltanji 7.1 is now available.
Key updates include:
* Interoperability Production component driver included, for customers who have purchased the add-on. You can watch a short demo of it here.
* Implement multi-select delete of objects and components
* Add setting to give a passable Beyond Compare launch command line
* Support simplified Locations & Routes diagram
For more information, read the release notes here >> https://bit.ly/3mHyJHc
Please get in touch with support@georgejames.com for your release kit.
The update is also available for Serenji debugger users on VS Code, which has the Deltanji solo edition embedded. Simply update the Serenji extension to version 3.2.3 or later and load the server-side code.
Git stores complete history - meaning you would never lose your files, even if they are deleted, they are still available. That, however, presents an issue if large or sensitive files have been committed. Deleting them DOES NOT remove them from history. Recently one of the repos I work on became unexpectedly large, so here's how you can resolve that:
Hi Devs!
For me, one of the most painful things about ObjectScript is ##class(Class).Method() typing to call a class method in code or in a terminal. I even submitted an idea to simplify it in ObjectScript.
But! There is a new feature in VSCode ObjectScript that was just introduced to the plugin - Copy Invocation!
Just hover Copy Invocation link above every classmethod in a code, click on it and the invocation is copied to the buffer:

Paste it anywhere you want it to execute!
USER>w ##class(dc.sample.ObjectScript).Test()Bazinga!
Here is the video that shows how it works.
Hi Developers!
As you know InterSystems IRIS Interoperability solutions contain different elements of the solution, such as: production, business rule, business process, data transformation, record mapper. And sometimes we can create and modify these elements with UI tools. And of course we need a handy and robust way to source-control the changes made with UI tools.
For a long time this was a manual (export class, element, global, etc) or cumbersome settings procedure, so the saved time with source-control UI automation was competing with lost time to setup and maintain the settings.
Now the problem doesn't exist any more. With two approaches: package first development and usage of IPM package git-source-control by @Timothy Leavitt
.

The details are below!
A common need for our customers is to configure both HealthShare HealthConnect and IRIS in high availability mode.
It's common for other integration engines on the market to be advertised as having "high availability" configurations, but that's not really true. In general, these solutions work with external databases and therefore, if these are not configured in high availability, when a database crash occurs or the connection to it is lost, the entire integration tool it becomes unusable.
I have a %GlobalBinaryStream object that I'm trying to save as a local file after being received through a SOAP Web Service.
To do this, I created a %Stream.FileBinary object and wanted to set where the stream copied to this object would be saved by using either the DefaultStreamDir() ClassMethod or the NewFileName() ClassMethod. However, the documentation isn't very helpful on how to use these ClassMethods.
Right now, I have the below code:
set localStream = ##class(%Stream.FileBinary).%New() set st = localStream.
Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ View From the Control Tower: From Source to Consumption @ Global Summit 2022
I have a csp page that is using embedded Runtime Expression (https://docs.intersystems.com/ens201817/csp/docbook/Doc.View.cls?KEY=RC…) and within that expression I am using a $data() modulo 2 to look for root-level data elements (https://docs.intersystems.com/ens201817/csp/docbook/Doc.View.cls?KEY=RC…).
E.g:
#($select($data(^ImportantFlag)#2:"Important!",1:"Normal"))#
However, my modulo sign (#) after the $data() call is seen as the ending tag for the runtime expression resulting in a broken compilation.
I have seen this post and appreciate that discussion: API RESTful Version | InterSystems Developer Community | Business Service
However our org requirement is for a caller to provide the API version in the HTTP request header. I am finding the cleanest way to route to the correct class using the header version. My classes are setup as
API.Service.v1
API.Service.v2
Of course only v1 exists now but when v2 goes live on future day, API.Service.v2 will extend API.Service.v1 so we only have to override the method that changes or add a new method if needed.
I am trying to write a message to a Kafta cluster programmatically (i.e. not in Ensemble or using a Production) using %External.Messaging. I am consistently getting a 'topic not found error' even though I have created the topic on the cluster. I dug into the client I created an when accessing the property KaftaClient.jclient.gateway I get the following output:
<THROW>%DispatchGetProperty+25^%Net.Remote.Object.1 *%Net.Remote.Exception <GATEWAY> com.intersystems.gateway.GatewayException com.intersystems.gateway.JavaGateway.dynamicExecuteGet(JavaGateway.java:3761) Field not found: com.
Multidimensional properties can be found on certain classes.
These operate as a collection of values much like a Python dictionary.
Examples of properties that might be encountered:
| Class | Property | Description |
| %Net.HttpRequest | Params | Name value pair of form parameters |
| %Net.HttpResponse | Headers |
HTTP Headers returned with web content returned:
|
| %Library.AbstractStream | Attributes | Name of originating file from FTP or mounted File system |
| %Library. |
Hi Community,
Watch this video to get an introduction to columnar storage, and see how it can be used in InterSystems IRIS data platform to improve the speed of your analytic queries and efficiently store data:
It is a recommended security practice to login into sensitive Administrator Portals without any input passwords. Thus, it is necessary to identify and authenticate the users correctly. A common technique employed by web portals and mobile applications is to use Google social login. Today, Google Gmail has 2 billion users (source: https://www.usesignhouse.com/blog/gmail-stats). Therefore, it is a perfect shared login service to utilize to login InterSystems IRIS users when they need to manage their instances. This article will detail all the steps to embed Google Login into your InterSystems Management Portal.
1. Go to https://console.cloud.google.com and log in with your Google user account.
2. On the header click Select a project:
Hi Developers!
Here is the score of technical bonuses for participants' applications in the InterSystems Developer Tools Contest 2023!
We have a rule to disable a user account if they have not logged in for a certain number of days. IRIS Audit database logs many events such as login failures for example. It can be configured to log successful logins as well. We have IRIS clusters with many IRIS instances. I like to run queries against audit data from ALL IRIS instances and identify user accounts which have not logged into ANY IRIS instance.
Hi Community!
Please welcome a new video on InterSystems Developers YouTube Channel:
Getting Sharded with InterSystems IRIS
Hi Community,
Watch this video to see how to connect to InterSystems Cloud Services from your Java application using the InterSystems JDBC driver:
Here're the technology bonuses for the InterSystems IRIS Cloud SQL and IntegratedML Contest 2023 that will give you extra points in the voting:
See the details below.
When you install an IRIS or Caché instance on Windows Server, you'll usually need to install it under a specific user account that has network access permissions. This is very handy when you needs to access network resources for creating files or directly accessing printers.
TL;DR: see key takeaways at the bottom!
When you need to change the Windows user account the IRIS/Caché service is running as, you can configure (after installation):
<install-dir>\bin\IRISinstall.Within IRIS I defined a task to export audit data every day.
I provide some sample files in my GitHub repo.
I wrote ObjectScript code to import all files into otw.audit.consolidator class.
I want to use Python SQLAlchemy, pandas and sqlalchemy-iris (created by Dmitry Maslenikov) to copy consolidated audit data from my consolidator class in my IRIS container to my InterSystems Cloud SQL deployment.
I updated my Dockerfile to pip3 install sqlalchemy-iris and pandas (dataframes).
docker-compose build –no-cache in my personal AWS took 700 seconds.
I am trying to finish build for moving to IRIS HealthShare Health Connect 2022.1 from HealthShare Health Connect 2018.1.3. I am currently using Delegated Authentication using an AD group to match up to the Role in IRIS. The Role has access to everything but the HS Resources because we don't really use the HS Resources for anything. We are mainly using IRIS for the Interoperability Engine.
When I run System Administration --> Security --> Security Advisor, I am getting the following error.... "It has been logged to system error log (System Operation>System Logs>Application Error
I wrote a function awhile back to take Encoded Base 64 and write the PDF out to a file that could be sent to a faxing system to fax out. We are trying to test this code out in IRIS and I am seeing an error that I have not seen before... ERROR #5034: Invalid status code structure
Here is the code...
ClassMethod DecodeBase64HL7ToFile(base64 As
.png)
Hi Community,
In this article, I will introduce my application iris-mlm-explainer
This web application connects to InterSystems Cloud SQL to create, train, validate, and predict ML models, make Predictions and display a dashboard of all the trained models with an explanation of the workings of a fitted machine learning model. The dashboard provides interactive plots on model performance, feature importances, feature contributions to individual predictions, partial dependence plots, SHAP (interaction) values, visualization of individual decision trees, etc.
With the improvement of living standards, people pay more and more attention to physical health. And the healthy development of children has become more and more a topic of concern for parents. The child's physical development can be reflected from the child's height and weight. Therefore, it is of great significance to predict the height and weight in a timely manner. Pay attention to the child's developmental state through scientific prediction and comparison.
I am trying to read binary data from HTTP Request Stream and build a Dynamic Object with multiple properties. I am getting MAXSTRING error with this code:
Set dynObject1.OriginalFilename = $P($P(request.HTTPHeaders.GetAt("RawParams"),"&",2),"=",2)
Set dynObject1.SiteId = $P($P(request.HTTPHeaders.GetAt("RawParams"),"&",1),"=",2)
For {
Set len = 1000000
Set tRead = request.Stream.Read(.len,.sc)
Set ^TESTutil($INCREMENT(^TESTutil),"len") = len
Set ^TESTutil($INCREMENT(^TESTutil),"sc") = $Get(sc)
If (len < 1) { Quit }
Set dynObject1.
I have Audit consolidator deployed in AWS where I scheduled Audit Export task to run daily.
Xml files are stored in mgr directory because the task runs in %SYS namespace.
/usr/irissys/mgr
-rwxrw-r--. 1 irisowner irisowner 249080 Apr 9 21:48 8eedba82d0ee_2023-04-09_auditexport.xml*
-rwxrw-r--. 1 irisowner irisowner 19487 Apr 10 00:02 8eedba82d0ee_2023-04-10_auditexport.xml*
-rwxrw-r--. 1 irisowner irisowner 23554 Apr 11 00:02 8eedba82d0ee_2023-04-11_auditexport.xml*
-rwxrw-r--. 1 irisowner irisowner 27624 Apr 12 00:02 8eedba82d0ee_2023-04-12_auditexport.xml*
-rwxrw-r--.
Data Initialization
1. Create a table with sql statements
create table IF NOT EXISTS MLTEST_MSG.HeightWeightPredictMSG (Id int primary key identity(101,2),number varchar(50), Height float, Weight float);
create table IF NOT EXISTS MLTEST_MSG.HeightWeightMSG (Id int primary key identity(101,2),number varchar(50), Height float, Weight float);
create table IF NOT EXISTS MLTEST_MSG.FamilyMSG(id int primary key identity(101,2),Csex int, Family float,Father float,Mother float, num int,Height float);
create table IF NOT EXISTS MLTEST_MSG.
InterSystems is pleased to announce the 2023.1 release of InterSystems IRIS Data Platform, InterSystems IRIS for Health, HealthShare Health Connect, and InterSystems IRIS Studio are now Generally Available (GA).
2023.1 is an Extended Maintenance (EM) release. Many updates and enhancements have been added in 2023.1.
There are also brand-new capabilities, such as production-ready support for Columnar Storage, ability to use Bulk FHIR, and support to MacOS 13 Ventura.