Say I've been developing a web application that uses IRIS as the back end. I've been working on it with unauthenticated access. It's getting to the point where I would like to deploy it to users, but first I need to add authentication. Rather than using the default IRIS password authentication, I'd like users to sign in with my organization's Single Sign On, or some other popular identity provider like Google or GitHub. I've read that OpenID Connect is a common authentication standard, and it's supported by IRIS. What is the simplest way to get up and running?
Introduction
There is a Link Procedure Wizard option within the Management Portal (System > SQL >Wizards > Link Procedure) which I had reliability issues with so I decided to use this solution instead.
Problem
You need to query an external SQL database to use the response within a namespace. This guide is assuming that you already have a working stored procedure in SSMS although you could instead use a SQL block within the operation. Stored procedures in SSMS are preferred to maintain integrity, Embedded SQL can get very confusing if you have a complicated SQL statement.
Visual Studio Code releases new updates every month with new features and bug fixes, and the March 2024 release is now available.
I am currently adding a field to our Existing messaging from Epic, however there might be a possibility I need to back load data into the Ancillary system. While I have the previous messages that can be sent, they do not have this additional field that I am adding to the message.
I can do a lookup against Epic Clarity SQL Database; however, I don't want to throw a wrench into the workflow if the system cannot connect to the Epic Clarity SQL Database.
Hi,
I am trying to connect to another server using %Net.HttpRequest.
I keep getting this error : SSL23_GET_SERVER_HELLO:unsupported protocol.
My guess is that the site I am reaching for uses TLS1.3 which is not supported in 2016, But I cant right now ask my client to upgrade.
Is it possible to override this ? install some kind of a patch or a more recent version of openssl on the server ?
Thanks
Amiram
InterSystems FAQ rubric
The Web/CSP Gateway management page is typically configured so that it cannot be accessed from client machines.
To access from any client, do the following:
- Launch a browser from a system with access to the Web/CSP Gateway management page and access the Management Portal.
- Under Management Portal > System Administration > Configuration > click CSP Gateway Management.
- Click Default Parameters that appear in the left pane of the page that appears.
- Enter *.*.*.* in the system management machine and press the Save Settings button.
For example, I have two timestamp values ('2024-04-01 10:00:00', '2024-04-01 11:30:30'). I would like to find the difference between these two timestamps, and I need the result in hours:minutes:seconds (hh:mm:ss) format.
Expected Output: 01:30:30
Note: I need an SQL query command. I should not use ClassMethod, Function, or Stored Procedure.
Could anyone please provide me with an SQL query for my question?
Hi Guys,
I'm converting our system from Ensemble 2014 to 2018 and we do have Security package of classes in deployed mode in our 2014 (eg. Users, Role, ...etc) which doesn't exist in our newly installed 2018, so how can I include those classes in 2018?
Thanks
Hi Community,
Watch this video to learn about InterSystems Startup Program and hear lightning pitches from startups innovating with InterSystems technology:
A report that I need to create - I need to write a class method that will execute a few queries and save the data to a class and then return the data in a result set that can be used in the Logi report as a Stored procedure.
I can create the class method that is a Stored procedure and do the queries and manipulate the data, however I am having an issue at the end of the method to return the fields back as a result set.
Hi Guys,
After converting from Ensemble 2014 to 2018 and ran my application I get the below error message:
MSDS.ZEN.Component.imageclickbuttom exits and compiles fine and also compiled the Zen page extending the class successfully but still getting the error so not sure why I'm still getting the error!?
Thanks
Hi Community!
It's time to celebrate our 19 fellow members who took part in the latest Technical Article Contest: InterSystems IRIS Tutorials and wrote
Our judges mentioned that it was a very tough challenge to choose only three articles each because more deserved points. Despite it all, they persevered and now it's time to announce the winners!
.jpg)
Let's meet the winners and look at their articles:
If one of your packages on OEX receives a review you get notified by OEX only of YOUR own package.
The rating reflects the experience of the reviewer with the status found at the time of review.
It is kind of a snapshot and might have changed meanwhile.
Reviews by other members of the community are marked by * in the last column.
I also placed a bunch of Pull Requests on GitHub when I found a problem I could fix.
Some were accepted and merged, and some were just ignored.
So if you made a major change and expect a changed review just let me know.
Hi Guys,
I've upgraded from Ensemble 2014 to 2018 and copied all classes across, ran Upgrade & CompileAll and looks fine, but when trying to search on dataCombo I get the below error
here is the definition of the Combo
<dataCombo id="dcLoc" enclosingStyle="font-size:14px;padding-bottom:5px;" placeholder="Choose Locations" controlClass="textLogin" valign="middle" buttonImage="images/expand-v2.png" buttonImageDown="images/expand-v2.png" OnCreateResultSet="getLocations"
searchKeyLen="15" editable="true" valueColumn="1" displayColumns="2,3"/>
and here is the Search method
After running many tests to kick the tires calling Python from COS (which worked fine) in any directory, I encountered problems when trying to access Python libraries like Numpy from any OTHER namespace. I saw some other posts about this but the resolution seems unclear. When I run the test program method numpytest below in %SYS it works just fine. If i run the Python method in any other namespace I get:
PITT>do ##class(test.python).numpytest()
DO ##CLASS(test.python).numpytest()
^
<OBJECT DISPATCH> *python object not found
Hello,
I am trying to find or locate all Intersystems business components using a particular class. Like I want to find component is using abc.test.cls class.
I know that you can use Do $SYSTEM.SQL.Schema.ImportDDL() to insert sql files into IRIS however I was wondering if there is a way that I can upload .sqlite files into iris? I have about 20 .sqlite files that I need to get into my database. I tried using the ImportDDL method but it said "SKIPPING non-SQL SOURCE:"
In The Business Process and the Business Operation, I am using the following code to get the value of TimeCreated and TimeProcessed
BP:
%Ensemble("Process").%PrimaryRequestHeader.TimeCreated
%Ensemble("Process").%PrimaryRequestHeader.TimeProcessed
BO:
..%RequestHeader.TimeCreated
..%RequestHeader.TimeProcessed
But I am trying to use ..%RequestHeader.TimeCreated in Business Service it is not storing any value.
How to get the value of TimeCreated and TimeProcessed in Business Service?
Hello
I am trying to convert some old rest classes using the OpenApi spec (e.g. %REST.Impl)
Say I want to return a 401 in my impl.cls for api and I can define the status code as follows, e.g.
Do ..%SetStatusCode("401")
Do ..%SetContentType("application/json")However the api client will see this as 401 OK which is not right.
In the past, I could just create a rest class that extends from %CSP.REST and return as follows:
Set%response.Status = ..#HTTP401UNAUTHORIZEDThis will return 401 Unauthorized, which what I expect to see reported in the api client.
When connectiong to IRIS from UBUNTU LTS 18.04, I got this error message:
ErrorException: odbc_connect(): SQL error: [unixODBC][Iris ODBC][State : S1000][Native Code 417]
[libirisodbcur6435.so]
Access Denied, SQL state S1000 in SQLConnect
I'm using "ODBC-2022.1.0.209.0-lnxubuntu1804x64.tar.gz" downloaded from
"https://github.com/intersystems-community/iris-driver-distribution/tree…"
and folowing guide from
https://community.intersystems.com/post/intersystems-iris-laravel-odbc
Here's my odbc.ini
[ODBC Data Sources]
TrakCare= TrakCare
Hi Community!
Do you usually work with automated tasks? Then let me share with you a pair of tips ;-)
Tip 1: How to know when my automated task will end (approximately)
Do you have an automated task that is running but you are not sure when it will end and you are at the crossroad of take the decision to stop it or wait and you are not sure if could be better wait for 5 o 10 minutes?
Here you are a tip to check when your task will finish (approximately).
For this example I have created a task with this code:
For one of the reports I need to produce through Logi, I need to create a parameter/filter and pre-populate it with items from a query. Has anyone done that before? And if so how did you do it?
Thanks,
Kris
Introduction
In the modern digital age, securing applications, particularly those handling sensitive health data, is paramount. The confidentiality, integrity, and availability of such data are crucial, necessitating robust security measures. Two-factor authentication (2FA) stands out as a critical enhancement in safeguarding access, adding an extra layer of security beyond just passwords. Recognizing the significance of this feature, InterSystems provides built-in support for 2FA in its database solutions. This tutorial aims to guide you through the process of configuring two-factor authentication in your InterSystems environment, ensuring that your data remains secure and accessible only to authorized users.
I built my rest api with ^%REST and update with CreateApplication.
Postman works fine and I suppose production server will work fine as UI and rest api will be on the same domain, but for now in dev, I need to have access from my local to the Iris rest api. I have a CORS error.
I do not know how to configure my swagger file to have either Parameter HandleCorsRequest=1 or <route Cors=true in the generated displ,cls.
What is Unstructured Data?
Unstructured data refers to information lacking a predefined data model or organization. In contrast to structured data found in databases with clear structures (e.g., tables and fields), unstructured data lacks a fixed schema. This type of data includes text, images, videos, audio files, social media posts, emails, and more.
Why Are Insights from Unstructured Data Important?
According to an IDC (International Data Corporation) report, 80% of worldwide data is projected to be unstructured by 2025, posing a significant concern for 95% of businesses. Forbes Article
As you have seen in the latest community publications, InterSystems IRIS has included since version 2024.1 the possibility of including vector data types in its database and based on this type of data vector searches have been implemented. Well, these new features reminded me of the article I published a while ago that was based on facial recognition using Embedded Python.
Introduction
– 34 new announcements
– 67 new questions
– 7 new discussions
✓ 555 new members joined in March
✓ 13,015 posts published all time
✓ 11,859 members joined all time
how we can retrieve SessionId in classMethod ??
i want to use sessionid outside the package...
Attempting to setup an outbound (I'm querying out, not querying the IRIS db) SQL connection. I am connecting to a PostgreSQL database, name "hl7interface".
I have setup the odbc.ini file at /usr/local/etc with the following contents:
[HL7Interface2] Driver = PostgreSQL Description = HL7 Interface DB Servername = localhost Port = 5432 Protocol = 7.4-1 #userName = postgres #Password = <real pw here> Database = hl7interface ReadOnly = no ServerType = Postgres
I have set the /etc/odbcinst.ini file with the location of the PostgreSQL driver:

