#InterSystems IRIS for Health

10 Followers · 2.4K Posts

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.

Article Luis Angel Pérez Ramos · Jan 28 5m read

How many times have you had to receive or generate a JSON and wished you could work on it using DTLs without having to deal with DynamicObjects trying to remember the name of each field? Do you want to break down and make your giant JSON file more digestible?

In my case, never, but I thought that someone might find it useful to have a feature that captures your JSON and breaks it down into a series of ObjectScript classes that you can work with more easily and conveniently.

Well then...behold JSON2Class in all its glory!

0
0 101
Job Ratnesh Shrivastava · Jan 27

Job Title: InterSystems Developer / Specialist (IRIS / HealthShare)
Location: New York City, NY (Hybrid / Remote)
Duration: Contract (2+ years)
Experience: Min. 8 Years 


Job Summary

We are looking for an experienced InterSystems Developer / Specialist with expertise in InterSystems IRIS / HealthShare to support healthcare integration and interoperability initiatives. The ideal candidate should have hands-on experience in ObjectScript development, healthcare data standards, and integration protocols supporting EHR/HIE environments.


0
0 86
Article Ashok Kumar T · Jan 14 14m read

What is a FHIR Profile?

A FHIR profile is a collection of rules and constraints used to customize and refine a base Fast Healthcare Interoperability Resources (FHIR) resource. Profiling is a vital process that adapts the base FHIR resource standard to satisfy the unique requirements of a specific use case, geographic region, medical institution, or clinical workflow.

While the base FHIR specification provides generic, flexible definitions for resources (such as Patient, Observation, or Medication), profiles transform these generic resources into more precise ones. This ensures consistent and interoperable data exchange tailored for a particular community or implementation.

FHIR is designed to cover various healthcare scenarios globally. Profiles allow implementers to adapt this general platform without losing the benefits of standardization.

2
2 134
Article Sylvain Guilbaud · Jan 23 5m read

 

A question that quickly arises when configuring IAM (aka Kong Gateway) is how many routes should be created to reach all the business objects in an IRIS API.

A common mistake is to create one route per business object, unnecessarily multiplying the number of routes.

0
0 10
Article Yuri Marx · May 5, 2025 10m read

RabbitMQ is a message broker that allows producers (those who send a data message) and consumers (those who receive a data message) to establish asynchronous, real-time, and high-performance massive data flows. RabbitMQ supports AMQP (Advanced Message Queuing Protocol), an open standard application layer protocol. 
The main reasons to employ RabbitMQ include the following:

  • You can improve the performance of the applications using an asynchronous approach.
  • It lets you decouple and reduce dependencies between services, microservices, and applications with the help of a data message mediator, meaning that there is no need for producers and consumers of exchanged data to know each other.
  • It allows the long-running processing of sent data (with the results) to be delivered after utilizing a response queue.
  • It helps you migrate from monolithic to microservices, where microservices exchange data via Rabbit in a decoupled and asynchronous way.
  • It offers reliability and resilience by making it possible for messages to be stored and forwarded. A message can be delivered multiple times until it is processed.
  • Message queueing is the key to scaling your application. As the workload increases, you will only have to add more workers to handle the queues faster.
  • It works well with data streaming applications.
  • It is beneficial for IoT applications.
  • It is a must for Bots’ communication.
2
3 307
Job Tricia Scanlon · Jan 19

We are hiring!  100% Remote W2 Contract | 3-6+ Months (numerous extensions likely)

Two Roles:
🔹InterSystems Engineer
🔹Epic Bridges Certified/InterSystems Engineer  

Having solid experience with the below: 

  • Interface Development: Building and configuring message routes, business processes, and transformations using components like IRIS, Ensemble, or HealthShare.
  • Interoperability Standards: Implementing and supporting workflows for healthcare standards including HL7 (v2/v3), FHIR, etc.
0
0 95
Article Kate Lau · Jan 5 3m read

Hi, now I would like to continuous on the topic that we talk about previously

Using Postman for testing the OAuth2.0 of the InterSystems FHIR repository - Part1

 


Question 1: Where is my client_id and client_secret come form?

Short answer: Authentication Server.

 

If you don't have an Authentication Server, you may set up one as following

 

Provide the hostname (the host must support Https), at least 1 grand type (we choose client credential here), and SSL/TSL configuration

 

Input the scopes (here we input user/*.read and user/*.

3
2 134
Article Ashok Kumar T · Feb 17, 2025 6m read

What is JWT?

JWT (JSON Web Token) is an open standard (RFC 7519) that offers a lightweight, compact, and self-contained method for securely transmitting information between two parties. It is commonly used in web applications for authentication, authorization, and information exchange.

A JWT is typically composed of three parts:

1. JOSE (JSON Object Signing and Encryption) Header
2. Payload
3. Signature

These parts are encoded in Base64Url format and concatenated with dots (.) separating them.

4
9 687
Question Dmitrii Baranov · Jan 14

I have a Postgres table which should be migrated to IRIS. The table has a computed column, like:

CREATE TABLE example_table (
    id VARCHAR(10) PRIMARY KEY,
    normalized_id VARCHAR(10) GENERATED ALWAYS AS (LPAD(id, 10, '0')) STORED
);

IRIS also has the LPAD function but I can't figure out how to achieve the same result using pure SQL DDL.

7
0 100
Question Michael Derr · Dec 4, 2025

We are a group of interface analysts in a healthcare setting, running IRIS for Health 2024, having upgraded over time from an old ENSEMBLE environment.  We have been working on a wish list of development goals, but are having trouble finding the correct, best practice method/path for getting to what we envision.

Current state:  We run IRIS for Health on a Redhat 8 virtual machine.  We run Interoperability productions (IE.cls) out of 6 namespaces.  We have a dev/test box and a production box.

10
0 162
Article Vachan C Rannore · Dec 28, 2025 1m read

SET assigns value to the variable at RUNTIME.

#DIM declare the variable and it's Data Type at COMPILE TIME.







SET #DIM
Makes the variables Dynamic. Improves Readability.
No Data Type Declaration. Enables IDE auto-completion.
Runtime Useful for Object references.

#DIM name As %String
Set name = "Micheal Scott"
#DIM age As %Numeric
Set age = 36
#DIM employer As App.Employer               ; compile time
Set employer = ##class(App.Employer).%New() ; runtime 

 

SET or #DIM? Your design, your rules.

18
4 304
Announcement Larry Finlayson · Jan 13

Managing InterSystems Servers – Virtual  February 2-6, 2026

  • Configure, manage, plan, and monitor system operations of InterSystems Data Platform technology
  • This 5-day course teaches system and database administrators how to manage InterSystems® Data Platform technology which powers all of our products.
  • Learn to install, configure and secure the data platform, configure for high availability and disaster recovery, and monitor the system.
  • Students also learn troubleshooting techniques.

SELF REGISTER HERE

0
1 36
Question Preedhi Garg · Jan 12

I’m working on XML Digital Signature in InterSystems IRIS using %XML.Security.Signature

I start with an XML document that is created by parsing an input XML string, and I want to digitally sign this document using an X509 certificate.

Set x509 = ##class(%SYS.X509Credentials).GetByAlias(credAlias)
Set signature = ##class(%XML.Security.Signature).CreateX509(x509,$$$SOAPWSIncludeNone ,$$$KeyInfoX509Certificate)

Set signature.Id = "SIG1"
DO signature.SetSignatureMethod($$$SOAPWSrsasha1)
DO signature.SetDigestMethod($$$SOAPWSsha1)
Set signature.SignedInfo.CanonicalizationMethod.
2
0 72
Question Dmitrii Baranov · Dec 21, 2025

I have a business service that actively reads data from a remote Postgres database. OnProcessInput opens a XDBC (actually JDBC) connection, executes an SQL query, fetches several thousand rows, iterates the resultset, and closes the connection. On each iteration I also need to update each source row in the remote database using PreparedStatement.

In other words, in every OnProcessInput call I have a long running SELECT statement and several thousands small UPDATE statements.

11
0 143
Article Iryna Mykhailova · Jan 12 4m read

InterSystems IRIS is built on an architecture that separates the logical organization of data (namespaces) from its physical storage location (databases). Understanding this separation and the distinction between Namespaces and Databases is crucial for effective data management, security, and especially, high-performance data sharing.

In this article, I will discuss these foundational components and provide a practical guide on leveraging global mappings to share native data structures (globals) across different logical environments.

Databases: Physical Reality

A database represents the physical reality of where the data is stored on the disk. First and foremost, it’s a file in a file system called IRIS.dat (e.g., <Install folder>\mgr\user\IRIS.DAT). The maximum size of this file is 32TB. It is the container for all the actual data and the code. Databases are managed by the IRIS kernel, which handles caching, journaling, and transaction logging at the physical file level.

When you install InterSystems IRIS DBMS, the following databases are installed automatically:

0
2 109
Article Tani Frankel · Dec 28, 2025 6m read

Sometimes it is more convenient, more efficient, and more secure, to limit FHIR Searches per pre-defined "Lists" of Resources.

Since v2025.1 we support several List-related features in our FHIR Server.

I will highlight these here, and provide some samples.

2
1 98
Question Ashish Rathor · Jan 7

Hi Everyone!

We have an existing process (running in FIFO order), all business hosts having pool size=1.

Currently we are reading records from a file (one record at a time) then that record goes to business process for further processing and finally through the business operation. As of now we are using synchronous call in our existing code. Before processing the last record we are using hang of 50 seconds because we need to initiate a batch once the processing of last record is finished.

This process is taking too much time for a file having 0.1 million records (max records in a file).

5
0 103
Announcement Larry Finlayson · Jan 8

Developing Custom Components for Integrations – In Person (Boston, MA) February 10-12, 2026

  • This 3-day course teaches implementation partners, integrators, developers, and analysts how to create custom interfaces using InterSystems integration technologies.
  • Students build a Production using InterSystems® Objects, graphical tools in the Management Portal, Business Process Language (BPL), the adapter library, and an IDE.
  • Students create business services, business processes, business operations, and messages.
0
0 42
Question Scott Roth · Jan 7

I was trying to see if we could connect to another Server, we use to execute external scripts using %Net.SSH.Session.

TESTCLIN>set sshSession = ##class(%Net.SSH.Session).%New()

TESTCLIN>set user = <omitted>

TESTCLIN>set host = <omitted>

TESTCLIN>set privateKey = "/nfs/data/ssh/<omitted>"
TESTCLIN>set publicKey = "/nfs/data/ssh/<omitted>.pub"
TESTCLIN>Set statusConnection = sshSession.Connect(host)

TESTCLIN>set statusAuth = sshSession.
2
0 82
Question Scott Roth · Jan 2

Defining my first REST API within InterSystems using iris-rest-Api-template as a basis and I am seeing if someone could provide me some guidance to see if I can make it work.  

In some of my other posts, I have been trying to come up with a way for our Enterprise Application Development team which works with .Net to build Applications to make a REST call to our instance of InterSystems to query some of the Cache Tables we have defined. 

Using the iris-rest-api-template, I have created the osuwmc.DataLookup.REST.Base.cls

Class osuwmc.DataLookup.REST.Base Extends %CSP.
4
0 84
Question Julian Matthews · Dec 31, 2025

Hey everyone.

I have been taking a look at the External Language Server functionality to hook into some Dotnet functions, and I am hitting a bit of a wall.

Based on the example in the documentation here I can get the same result doing:

ENV>Set netGate = $System.external.getDotNetGateway()
ENV>Set netProxy=netGate.new("System.DateTime",0)
ENV>Write netProxy.Now,!
2025-12-31 14:37:58.6022705

However, if I then try another system class, I get an error:

ENV>Set netGate = $System.external.getDotNetGateway()
ENV>Set netProxy=netGate.new("System.Convert",0)
ENV>Write netProxy.
6
0 87
Question Scott Roth · Jan 2

There is a Master Table within IRIS that I am populating from Epic but want to share it with our Enterprise Application Development Team (Web). As a test I was able to use _SYSTEM from postman to execute the following.

POST /api/atelier/v1/xxxx/action/query HTTP/1.1
Host: xxxxxxxx
Content-Type: application/json
Authorization: ••••••
Cookie: CSPSESSIONID-SP-443-UP-api-atelier-=00f0000000000AKyLjBfUvU$MpFD8UT8y$EoNKNw1ixZeXN4_Q; CSPWSERVERID=hzZAT5rb
Content-Length: 86

{"query": "SELECT * FROM osuwmc_Epic_Clarity.
7
0 83
Question Leigh Burns · Jan 2

I am migrating from HealthShare 2015 to Health Connect 2025 as part of an infrastructure upgrade. We have several C# .NET Razor web apps that interact with HealthShare using the InterSystems.Data.CacheClient assembly, and the Cache Object Binding Wizard for .NET to build the C# proxy classes. This has worked flawlessly for about 6 years.

I am now switching to using the Native SDK with the InterSystems.Data.IRISClient assembly and using the C# IRISReference and IRISObject.

2
0 67