InterSystems IRIS for Health™ is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data. It includes powerful out-of-the-box features: transaction processing and analytics, an extensible healthcare data model, FHIR-based solution development, support for healthcare interoperability standards, and more. All enabling developers to realize value and build breakthrough applications, fast. Learn more.
VSCode is the most used IDE in the world. It is strategic have more extensions for VSCode for InterSystems technologies to keep increasing the developer community.
My new app IRIS VSCode Global Editor is an excellent sample to learn how to create extensions to IRIS. You can check it on https://openexchange.intersystems.com/package/IRIS-Global-VSCode-Editor.
To be ready to create extensions for VSCode
From https://code.visualstudio.com/api/get-started/your-first-extension you have all steps to get ready, but I will detail here to you.
1.
Very similar question posed here: https://community.intersystems.com/node/467496, but I am missing a piece of this:
How do I correctly call a EnsLib.HL7.MsgRouter.RoutingEngine class from the BPL?I can successfully call the BPL from the EnsLib.HL7.Service.TCPService, and I have the BPL created to delay then call the rule. And I set the context and the result location..png)
This rule is really basic just sending the HL7 content to a EnsLib.HL7.Operation.
.png)
When implementing deferred response there was a problem initially with a few responses which meant we had blank jobs spawned somehow. How do you get rid. All the operation does is:
SET sc =..SendRequestAsync($piece(..ForwardComponentNames,",", i),pRequest,1)These all sent ok and tried to update status to 9 from 6 hoping it would clear the blank jobs but it didn't . The original issue has been resolved weeks ago.
Implements Idea DPI-I-456
What The Sample Does
This sample was cloned from iris-interoperability-template. I have reconfigured the interoperability Production with an Inbound HTTP Adapter which is used by a HTTP Business Service. The configuration details for the business service are specified in System Default Settings.
I configured Call Interval setting to call HTTPServer once every hour. You can change both the URL and frequency in the service's settings.

Originally the HTTP Service had two targets.
Hello,
The title says it all. I’m building an IRIS image with docker-compose using a separate Dockerfile. Pretty straightforward procedure: I import a Installer script inside the container containing a Installer Manifest I defined. Within the manifest, I create a namespace with code and data databases in separate locations. My intention is to keep the code database inside the container, so whenever I build the container, the imported code is replaced. The data, however, should be persistent.
Hi Community,
In this article, I will introduce my application iris-HL7v2Gen .
IRIS-HL7v2Gen is a CSP application that facilitates the dynamic generation of HL7 test messages. This process is essential for testing, debugging, and integrating healthcare data systems. The application allows users to generate a wide variety of HL7 message types, validate their structure against HL7 specifications, explore the message hierarchy, and transmit messages over TCP/IP to production systems. These features are particularly useful in settings where compliance with HL7 standards is mandatory for interoperability between different healthcare organizations or systems.
Application Features
- Dynamic HL7 Message Generation: Instantly create HL7 messages for a range of message types, facilitating comprehensive testing.
- Message Structure Exploration: Visualize the structure of generated messages based on HL7 specifications.
- Value Set Visualization View predefined sets of allowable coded values for specific fields.
- Message Validation: Validate messages against HL7 standards to ensure compliance.
- TCP/IP Communication: Easily transmit messages to production using TCP/IP settings.
- Broad Message Type Support: Supports 184 different HL7 message types, ensuring versatility for various healthcare integration needs.
- ClassMethod: Generate a Test Message by Invoking a Class Method
- Version Support: Currently Supports HL7 Version 2.5
Hello Community,
Is there any option or log is available to identify who killed/terminated the running process?
Thanks!
My IRIS instance is connected to a Postgres database using SQL Gateway and linked tables. One of these tables is projected to the Patient class. I want to select a record from this table by ID and convert it to a FHIR resource using the %ExistsId and %OpenId methods. I noticed that if I call these two methods from the console, the record is always found. But, if I do the same from the FHIR Facade layer, the %OpenId method returns NULL.
in the InterSystems management portal, I am in the lookup table viewer (interoperability>lookup Tables, I would like to use import function to convert our existing table from other system to intersystems lookup table.
so I converted our existing one like below and saved it as xxx.xml file locally. when I try to import, it says it is not a valid export file.
my question is " what's the valid format for a file to be valid to use to import for lookup table?
Hey everyone, I am implementing version control with git-source-control on our codebase and I ran into a pretty strange issue. I believe I have the set up (mostly) correct as the behavior with .cls files is exactly as expected. However, I noticed that git is not keeping track of any changes to CSP files.
Specifically, if a new CSP file is created and saved, I will get the following output:
exporting new version of /csp/testdb/wrc.csp to C:\InterSystems\IRIS\mgr\repo\TESTDB\csp\testdb\wrc.csp
Added /csp/testdb/wrc.csp to source control.
C:\InterSystems\IRIS\mgr\repo\TESTDB\csp\testdb\wrc.
As part of fully decoupling code we send a snapshot from a business service (running a SQL statement).
sql service Processor File Out
.png)
This is picked up by a processer and puts it into a file .txt.
Issue is if you open it up via the SQL.snapshot message as this is 46,819 rows it'll take too long to respond to opening up the sql.snapshot in the message viewer when viewing the session if looking from the business service
Is there any way to not have this xml open up in full in the portal? I.e. have a see more?
The latest "Bringing Ideas to Reality" InterSystems competition saw me trawling through the ideas portal for UI problems to have a go at.
Hello Community,
Is there any way to permanently clear all the commands displayed in the line recall History. The :clear deletes all the commands in that particular process/recall buffer.
Thanks!
Like many others probably find themselves, we were stuck doing live data mapping in our Interface Engine that we really didn't want to do, but had no good alternative choice. We want to only keep mappings for as long as possibly needed and then purge expired rows based upon a TTL value. We actually had 4 use cases for it ourselves before we built this. Use cases:
By "unsuccessful installation" I mean IRIS Community Edition for Healthcare is not running and the server won't start after a fresh installation.
The events in the Events Viewer are not particularly informative, but the messages.log file suggests it's shutting down on start up because the laptop has "too many Cores" - which it true, it has 24 of them (it's pretty beefy, a Lenovo Legion gaming PC that I use on account of its specs for AI development). Any suggestions appreciated.
InterSystems is announcing an end of maintenance event for Zen Reports beginning in Intersystems IRIS and IRIS for Health 2025.1. This follows the deprecation notice made when InterSystems IRIS was introduced in 2018 and subsequent inclusion of InterSystems Reports in 2020 to provide replacement reporting functionality. An overview of the timeline is:
March 2018. InterSystems IRIS 2018.1: Announcement of Zen Reports deprecation, continued shipment to provide continuity for existing applications
April 2020. InterSystems IRIS 2020.
I am developing locally on my IRIS instance using VSCode and client-side editing approach. How can I automatically export a single .cls file/a whole package to a remote TEST/PREPROD server using a script or command line and recompile the unit remotely? Are there any more simple and straightforward ways than CI/CD explained in the series of articles by Eduard?
We have error - ERROR #5821: Cannot instantiate query: 'SQLCODE = -146, %msg = Error: '' is an invalid DISPLAY Date value' not able to see what is causing:
CASE When P.PatReltoGuar->Name = 'SELF' then P.Lnm Else Substring(P.GuarNmIfNotPat, 1,Charindex(',',P.GuarNmIfNotPat)-1) End as DemoGuarLastName,
CASE When P.PatReltoGuar->Name = 'SELF' then P.Fnm Else Substring(P.GuarNmIfNotPat,Charindex(',',P.GuarNmIfNotPat)+1,LEN(P.GuarNmIfNotPat)) End AS DemoGUARFIRSTNAME,
CASE When P.PatReltoGuar->Name = 'SELF' then P.StreetAddrL1 Else P.GuarStreetAddrL1 End as DemoGuarAddresslineOne,
CASE When P.
s sc = connection.%Connect("127.0.0.1",53274)
s classpath="C:\Users\ME9Y1PM\Downloads\wrapper_jar\wrapper-drools-1.0.0-20241127.071529-1.jar"
if (sc=$$$OK) {
s SCJavaDroolsObj.connection=connection
s sc = SCJavaDroolsObj.connection.%Import("com.lca.smc.drools.DroolsRules")
s SCJavaDroolsObj.drools = ##class(com.lca.smc.drools.DroolsRules).%New()
d SCJavaDroolsObj.drools.applyRules(patientjson)
{ Parameter IMPORTTIMESTAMP As STRING = "2024-11-29 09:14:27.
Iris for Health is sending back ACKs back to the vendor for incoming X12 messages but, they are not making it there. Instead, the vendor is getting Reset packets and it seems they are coming out from Iris for Health.
Questions:
- Does Iris indeed generates Reset Packets?
- What causes Reset Packets to be triggered?
- What settings does InterSystems recommend to not send Reset packets?
- Are settings needed in the BS to prevent Reset Packets?
I already tried different settings unsuccessfully, and read much of the instructions provided by Intersystems but, we still can't resolve this issue.
First time trying to use Foreign Tables/Servers instead of Linked Tables...
Within the SQL Editor inside of the Managment Portal, or connecting through DBeaver JDBC how we can see what Foreign Servers have been defined? Is there a way to query and verify structure of the Foreign Server connection to know that we are building the correct Foreign Tables?
I attempted to create my first Foreign table but it failed when I tried to query the tables because it said the table could not be found. But when I sign into the Database via SQL Management Studio, I can see the table.
Experience & feedback from online course "Hands-On with InterSystems API Manager for Developers"
With my basic knowledge of Docker container and REST API, I would like to have my first try on using InterSystems API manager to take control of APIs and microservices. I have completed this online course using my local IRIS instance as host (Windows OS) and IAM running on a Linux VM (guest).
Firstly, I will introduce InterSystems API Manager (IAM), then explain the steps for setting up my local environment and lastly walk through the course chapters.
Dear All,
I have been sent an HL7 message as a file with the MSH segment as follows....
MSH|^~\&|SendingApp|pms3medd|HealthLink|cribrumt|20241121050000|PKI|ORU^R01|01_ASCIItest_2|P|2.3.1||||||UNICODE
I try picking up the file with a "EnsLib.HL7.Service.FileService" business service using a EnsLib.File.InboundAdapter adaptor. The Character set is set to "Native" and the Default Char Encoding to latin 1.
I am seeing the following error:
ERROR <Ens>ErrGeneral: Incorrect Character Encoding/Translation Table used for file.(Native/RAW)
+
ERROR <Ens>ErrException: <TRANSLATE>ParseIOStream+71 ^EnsLib.
Hi there,
I'm attempting to use the newest version of git-web-ui now that we've also updated to 2024.1.2. I'm having an issue though where I'm getting a 404 when launching the web gui from the Source Control menu in a production. If I look in the nginx logs I see the following:
2024/11/19 22:00:47 [error] 16#0: *237 open() "/opt/nginx/html/isc/studio/usertemplates/gitsourcecontrol/webuidriver.csp/CUSTRUSH/CUSTRUSHPKG.FoundationProduction.CLS" failed (2: No such file or directory), client: 172.18.0.1, server: localhost, request: "GET /isc/studio/usertemplates/gitsourcecontrol/webuidriver.
Hi all,
I'm performing a migration of some services from one instance to another, and I noticed that the technique defined within the InterSystems Server Migration Guide does not include OAuth client configurations. The recommended technique is to use the ##class(Security.System).ExportAll() and ##class(Security.System).ImportAll() methods.
Is there a way to migrate OAuth client configurations, or do those have to be re-created manually?
InterSystems FAQ rubric
It can be obtained with a List query of the %SYS.Namespace class.
1. Create a routine like this:
getnsp
set statement=##class(%SQL.Statement).%New()
set status=statement.%PrepareClassQuery("%SYS.Namespace","List")
set resultset=statement.%Execute()
while resultset.%Next() {
write resultset.%Get("Nsp"),!
}
quit2. Run it in your terminal
%SYS
DOCBOOK
SAMPLES
USER
The method of executing class queries introduced in this article can be applied in a variety of cases.
You can see various class queries in the class reference.
I want to integrate IRIS with Keycloak OAuth2 provider to use delegated authentication everywhere and to secure everything - sys*/Portal applications, REST services, FHIR server and so on. If an unathenticated user tries to access any IRIS URL - he or she should be redirected to Keycloak. After the user has successfully authenticated, i would like to access his requistes (username, email, roles, scopes) extracted from the JWT token, programmatically. What should be done to achieve that?
.png)