#InterSystems IRIS

19 Followers · 5.6K Posts

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.

Article Brad Nissenbaum · Apr 3, 2024 3m read

How to create an ODBC connection on your native Windows laptop to IRIS running on a Windows VM on the same computer, test the connection, and pull data from IRIS into Excel.

Recently I learned that Excel can connect to external databases via ODBC. This includes basically any ODBC data source. Since IRIS speaks ODBC via the ODBC API, we can take advantage of the InterSystems ODBC Driver to establish an ODBC connection to IRIS on Windows that Excel can utilize.

Before getting started, make sure you have installed the latest InterSystems ODBC driver on your native Windows, which can either be f

2
2 941
Question Csaba Gyenge · Nov 15, 2024

Is there a way to create and establish DICOM Association with Extended Negotiation? 

I have implemented DICOM Query/Retrieve C-FIND, using EnsLib.DICOM.Operation.TCP and EnsLib.DICOM.Process base classes. My application, acting as an SCU, needs to query by Study Date-Time (combined date-time matching) range with timezone query adjustment. For this, I need to use Extended Negotiation.

I've checked the IRIS Manual - Creating DICOM Associations section but there is no mention of this.

0
0 127
Discussion Joel Solon · Nov 11, 2024

The IRIS Installation Guide for Linux, Installation Directory section, says "Do not choose the /home directory, any of its subdirectories, or the /usr/local/etc/irissys directory." but there are no suggestions or any default.

What are your opinions on this? For example, I see that IRIS in a Docker container is installed in /usr/irissys. I'm wondering why that directory was chosen.

The official Linux filesystem docs say:

  • /usr is the second major section of the filesystem. /usr is shareable, read-only data. That means that /usr should be shareable between various FHS-compliant hosts and mus
4
0 347
Article Megumi Kakechi · Nov 14, 2024 1m read

InterSystems FAQ rubric

By default, the order of columns in a table is determined automatically by the system. To change the order, explicitly set the order for each property using the property keyword SqlColumnNumber when defining the class.

Example:

Property Name As %String [SqlColumnNumber = 2];

Please see the documentation below.

SqlColumnNumber

If you want to change the SQL table name, specify SqlTableName. If you want to change the column name (field name), specify SqlFieldName.

Both apply only to persistent classes.

0
0 224
Question Fred Gustafsson · Oct 22, 2024

I just restarted an AWS instance that have been dormant for 6 months (license still valid) only to find that the web application on there doesn't work and that I cannot connect to the management portal. I can however connect to the web gateway fine but it reports the "Server is currently unavailable". 

Grateful any for any advice.

Fred Gustafsson

2
0 474
Question omer · Oct 1, 2024

Hello everyone, 
so lets say i have the following:

Hello
Q
say(arg)
    w arg
 Q


and i am trying to execute it by its name such as:


s a = "say^hello"

*execute the name inside a*
 

now I know for a fact that if say were written without any argument then do @a would work!

but I can I pass an argument in this case?
I don't want to use Xecute because I am in need of really high performance code.
 

10
1 317
Question David Hockenbroch · Nov 8, 2024

I'm having an issue with sending SMTP requests from a specific Microsoft 365 account to Gmail accounts. We can use other Microsoft 365 accounts, but something about this one specific account sending to Gmail fails. The error we get is just telling us that sending to the user xxxxx@gmail.com failed. In order to troubleshoot that, I'm looking for more detail than that.

I see %Net.SMTP objects have a Debug property, but when I set it to 1, I can't see anything happening differently. What does that debug value do? And is there any way to see a more fully detailed SMTP response that I'm just overl

4
0 195
Question Jani Hurskainen · Oct 30, 2024

I assume IPM manifest tag UnitTest is tightly coupled with the standard unit test framework, right? However we have our own one that predates the standard one and we are not going to switch.

I think I need to import the unit test cases and then be able to run a single class method for the test run. Any ideas how this would be possible?

9
0 190
Article Daniel Aguilar · Nov 11, 2024 4m read

Hi Community,

I want to share with you the lastest app that I have uploaded to the Open Exchange "IrisGoogleChat". 

IrisGoogleChat is a utility for InterSystems IRIS that allows seamless message integration with Google Chat using Cache ObjectScript. This application provides a set of tools to configure Google Chat Channels, create messages powered by moods generated with AI and send them to a Google Chat Channel.

In order to provide the desired mood to your messages you will need an API key and an organization ID of OpenAI Chat GPT. You must have too a paid account of Google Workspac

0
1 186
Article Rolano Rebelo · Nov 11, 2024 3m read

🌍 Inclusion & Innovation in Education 🌍
Our project reimagines learning for all students, with a focus on accessibility and interactive experiences. Built with the goal of making education engaging and inclusive, the tool is designed to support students of all abilities in learning complex material in an intuitive way.

💡 What It Does
This educational app transforms lesson presentations into interactive study sessions:

  • Transform Presentations: With Optical Character Recognition (OCR) technology, the app scans and converts presentation slides into digital text and vector data, creating accessi
0
1 260
Article Iryna Mykhailova · Nov 10, 2024 2m read

If you like Java and have a thriving Java ecosystem at work into which you need to incorporate IRIS, it's not a problem. Java External Language Gateway will do it seamlessly, almost. This gateway serves as a bridge between Java and Object Script in IRIS. You can create objects of Java classes in IRIS and call their methods. You just need a jar file to do this.

Connection diagram: proxy object <-> Gateway object <-> TCP/IP <-> External server <-> target object

0
4 442
Question Nicky Zhu · Nov 8, 2024

Hi guys,

Is it possible to apply business rule on a XML without Schema?

Say, I'm trying to make some business rules on FHIR XML payload. I transferred the XML stream as an EnsLib.EDI.XML.Document in a BPL and passed it to a General Business Rule.

Set context.xmlDocument = ##Class(EnsLib.EDI.XML.Document).ImportFromLibraryStream(##class(HS.SDA3.QuickStream).%OpenId(request.QuickStreamId))

I'm handling following XML document 

With this rule

Then I got stuck at visiting the elements in the XML.

I.e How may I evaluate the profile value?

Thanks。

6
0 208
Question Gautam Rishi · Jun 21, 2023

Hi everyone, 
I am new to "git-source-control", what i am doing so far will explain you in few steps.
1. installed git-source-control into a namsapace TEST using ZPM "install git-source-control"
2. configure the git settings and created a new mapping for as such 

3. Now when I am trying to ADD a new file which is created for eg - NewFolder/impl.cls , getting an error like this

exporting new version of NewFolder.impl.cls to /Users/abc/workspace/NewFolder/impl.cls

No mapping with a matching path found for file NewFolder/impl.cls

ERROR #5001: Create Directory failed: _err
Here workspace

5
2 640
Question Anthony Master · Nov 8, 2024

Throughout the forum, I find examples of using the method getSegmentByIndex to get the segment as I loop through the HL7 message segments.

Today I spent way too long trying to figure out why I could not modify the segment with this same method. I reached out to my more experienced team and I showed where I got the base code from what I was doing, but I myself could not find the documentation of the method.

After some time, we stumbled upon the GetMutableSegmentAt and GetSegmentAt methods and plugged the mutable method in its place and what do you know, it worked!

What is the purpose of the dif

1
0 197
Question Nicky Zhu · Nov 5, 2024

Hi Guys,

I'm helping a partner to integrate IRIS to their project. They want to integrate Rules in there system.

For testing I built a simple rule as below:

/// Class Test.TestRule Extends Ens.Rule.Definition
{

Parameter RuleAssistClass = "Ens.Rule.GeneralBusinessRuleAssist";

XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]
{
<ruleDefinition alias="" context="EnsLib.HL7.Service.Standard" production="">
<ruleSet name="" effectiveBegin="" effectiveEnd="">
<comment text="ForTest"></comment>
<assign property="a" value="1"></assign>
<return>1</return>
3
0 182
Question Jacopo Magliani · Nov 4, 2024

I am developing a business operation that receives a request, creates a message with the data contained in it and sends it to an outlook email. For testing purposes both the sender and the destination are the same email account
This is the code:
ClassBO.AlertEmailSenderExtendsEns.BusinessOperation{

ParameterADAPTER = "EnsLib.EMail.OutboundAdapter";
PropertyAdapterAsEnsLib.EMail.OutboundAdapter;
ParameterINVOCATION = "Queue";
MethodOnMessage(pRequestAsMessages.AlertMsgToEmail, OutputpResponseAsMessages.AlertResponse) As%Status
{
    setsc = $$$OK
    Setmsg = ##class(%Net.
7
0 297
Question Andreas Schneider · Sep 15, 2024

Has anyone successfully tested the new THROUGH command in IRIS 2024.2 with a FOREIGN SERVER?https://docs.intersystems.com/iris20242/csp/docbook/Doc.View.cls?KEY=RS…

I have connected from a Docker instance to a VM. I was able to successfully set up the JDBC connection through the UI.

I then configured a foreign server with this connection:

But I am unable to send a SQL 'THROUGH' to the DB. I always get a:

I've get the same message if i try it via Management Portal.
I've also tried this:
and this

Always with the same error. According to the documentation, the syntax without ‘ and "

11
0 403
Question Nicki Vallentgoed · Nov 7, 2024

Using the Basic template for InterSystems IRIS development environment with Docker: github

If I use the Dockerfile_mini file and COPY a backup, the file shows up.

COPY ./20241104_1448.cbk /home/irisowner/dev 

ARG IMAGE=intersystemsdc/iris-community
FROM $IMAGE

WORKDIR /home/irisowner/dev
COPY ./20241104_1448.cbk /home/irisowner/dev
...

However if I use the Dockerfile with the additional features, the file is copied (via logs) but not on the container filesystem.

Is this a bug?

2
0 139
Question Ashok Kumar T · Nov 6, 2024

Hello Community,

I have a stream property which uses %Stream.GlobalCharacter and I set some dummy texts like "a1a2a3a4a5a6a7...."(more than 1024 characters)   in to that stream and the stream values are not compressed. However, The streams are compressed If I use the Lorem ipsum is a dummy or placeholder text or other text "This is part four of a long memo." which length is greater than 1024 

I opened the stream object and confirmed the compress property is 0 for first entry and  1 for 2nd object

Class Samples.Strms Extends%Persistent
{
Property MyId As%String;Property MyBioStrm As
3
0 154
Question Paul Hula · Nov 6, 2024

So being forced to use VSCode out of the box for a new Community install I've hit a small problem, documentation hasn't helped and its a simple problem.

How do I enable auto complete and the property viewer in creating a new .MAC?

So I've created "test.mac" and 'assume' can't remember the method name to open a file (for example), typing

"s f=##class(%Library.File).   " in Studio would bring up the methods of %Library.File so I could click the appropriate one, VSCode does not do this (and also didn't show the classes under %Library).

Please don't reply telling me how to open a new file :

5
0 315
Question Dmitry Maslennikov · Aug 11, 2023

Well, now we got noPWS container with IRIS, and how to connect to it, simply, without any durable sys or files, using normal peoples way like Environment variables?

version: "3"
services:
  iris:
    image: containers.intersystems.com/intersystems/iris:2023.2.0.227.0
    ports:
      - 1972:1972
    volumes:
      - ~/iris.key:/usr/irissys/mgr/iris.key
  web:
    image: containers.intersystems.com/intersystems/webgateway:2023.2.0.227.0
    ports:
      - 52773:80
8
0 423
Article Timothy Leavitt · Nov 4, 2024 2m read

Summary: if you concatenate filenames into /STDOUT and /STDERR in a $zf(-100) call, quote them.

I hit an <ILLEGAL VALUE> error from the following that initially stumped me. This was part of a unit test that worked perfectly fine on Windows, but when CI ran on Docker it failed:

Set outFile = ##class(%Library.File).TempFilename()
Set outDir = ##class(%Library.File).NormalizeDirectory(##class(%Library.File).TempFilename()_"dir-out")
Do##class(%Library.File).CreateDirectoryChain(outDir)
Do$$$AssertEquals($zf(-100,"/STDOUT="_outFile_"/STDERR="_outFile,"tar","-xvf",tempDir_".tgz","-C",outDir)
2
2 353
Question Jani Hurskainen · Nov 5, 2024

I have a custom IPM resource processor like:

<Resource Name="example.json" ProcessorClass="OSEX.ipm.demo.IpmResourceProcessor" Foo="from manifest Resource attribute"/>

What is the best practice to deploy the custom resource processors to the IRIS instance? It can't be part of the module that uses it for obvious (?) chicken-egg situation.

My best idea atm is to put all those custom processors into a (library) module and all modules using any of them just have a dependency to the custom processors module.

0
0 103