#Ensemble

23 Followers · 2.4K Posts

InterSystems Ensemble is a complete and easy-to-use integration platform that enables users to connect people, processes, and applications in record

time.

Learn more

Documentation

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 109
Article Henry Pereira · Jan 26 6m read

image1

Some concepts make perfect sense on paper, whereas others require you to get your hands dirty. Take driving, for example. You can memorize every component of the engine mechanics, but that does not mean you can actually drive.

You cannot truly grasp it until you are in the driver's seat, physically feeling the friction point of the clutch and the vibration of the road beneath. While some computing concepts are intuitive, Intelligent Agents are different. To understand them, you have to get in the driver's seat.

0
5 287
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 121
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 125
Article Thibault Odor · Dec 29, 2025 3m read

You probably know this situation:
Some time ago, you found a very special $ZU function for a very specific type of problem. Some kind of mystical formula. It became popular and was used by many developers throughout your code and across all your installations.

Several versions and updates later, you are informed by ISC that your mystical $ZU is deprecated and no longer supported. You are advised to replace it with a new $something().

So, how do you find and document the usage of this mysterious code?
It might be located in classes, in MAC, INT, or INC code.

2
0 139
Article Keren Skubach · Dec 29, 2025 2m read

When working with InterSystems Interoperability (Iris / Health Connect / Ensemble), configuration data is often spread across many production items: services, processes, operations, adapters, and their settings.

A common operational or security need is to answer questions like:

  • Which interfaces reference file system paths?
  • Where are directories, network shares, or absolute paths configured?
  • Can I quickly audit or document this information across all my productions?

The ObjectScript utility below solves exactly that problem by exporting selected configuration settings into a CSV file.

0
2 123
Article Hiroshi Sato · Apr 3, 2025 1m read

InterSystems FAQ rubric

The default settings for Stay Connected and Pool Size for business hosts using the TCP adapter are as follows:

StayConnected = -1(no timeout)
PoolSize = 1

If a network problem causes a connection to a business host to be lost, the production side will be unable to detect this and will not accept new connections. In this situation, no event is recorded in the event log. If StayConnected is set to its default value (-1), connections will not time out, and you will need to restart the business host before it can accept new connections.

1
0 244
Article Tani Frankel · Dec 24, 2025 2m read

You send an HTTP request and get back an HTTP error but with an HTML error page which you didn't expect... what's happening?... 🤔

Specifically for example, perhaps you tried to READ a FHIR Resource (e.g. /Patient/123) and you get back a 404 error page, even though with other Patient IDs, you get back the Resource payload, so "the page" definitely does exist... why should you be getting a 404 error page? 🙄

0
0 148
Question Nimisha Joseph · Dec 19, 2025

We have created a CSP application in the path /csp/ourapp. Due to some session handling issues, we created a new web application /csp/ourapp/hl7mapping that points to the sane namespace, and we now access the CSP pages using this new URL. This works fine in the local system.

After deploying the app to server, we are facing issues around compiling CSP pages.

We noticed that following compilation command works for CSP files located under the physical path /csp/ourapp, but it does not compile the CSP files placed under /CSP/ourapp/hl7mapping.

do $SYSTEM.CSP.

2
0 111
Article Megumi Kakechi · Dec 18, 2025 1m read

InterSystems FAQ rubric

If you try to kill a global that is mapped at the subscript level from the top node, you will get a <SLMSPAN> error and it will not be deleted. This is because the kill command for subscript-level mapped globals cannot be used across mappings.

// Suppose subscript-mapped globals exist in different databases, as shown below:^TESTK

To delete only the global in the current namespace (database), use the following:

NAMESPACE>

Globals mapped at the subscript level must be moved to the database and killed directly.

0
0 88
Article Hiroshi Sato · May 16, 2024 1m read

InterSystems FAQ rubric

Too run SQL in Terminal use $system.SQL.Shell().

Please refer to the sample below.

SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.
6
0 636
Question Julian Matthews · Dec 5, 2025

Hey everyone.

As part of an ongoing mission to track down orphaned HL7 Messages in our integration engine, I have been digging into our environment to track down the causes.

Having looked at various posts here (including one of my own) there are a few scenarios that can create orphaned messages resulting in excessive disk space usage. These scenarios are generally:

  1. Purging an environment with the option "Bodies Too" deselected
  2. Code creating/saving a Message but then not sending it
  3. BPL errors similar to 2, or a scenario where the response to a Call component is not set.
2
0 119
Question Yuriy Borokhov · Apr 1, 2017

Hello,

Are there any utilities/api in HealthConnect 2016.2.1 that will allow conversion of XML virtual document to Json format? We were thinking to convert HL7 ADT message to XML via Ensemble DTL and then send it to another BP to convert to Json format for transmission via Web Services. To my understanding there isn't anyway to represent Json as a virtual object so it can be use for direct mapping of HL7 2.x message to Json via Ensemble DTL.

Thanks

Yuriy

6
0 3024
Question Matheus Augusto · Dec 4, 2025

Recently, we implemented some Java-based services using JDBC. And some time ago, I refactored some legacy PHP programs that used "csession" for communication between systems to use PDO with ODBC.

This raised a question for me about how license management is done in this scenario.
Is a license used per pool? Or per connection? How is this management done?

0
0 89
Article John Murray · Oct 6, 2025 1m read

gj :: configExplorer is a new VS Code extension integrating with Server Manager and leveraging Structurizr to produce configuration diagrams of your servers.

Here's a short introductory video.

By using the InterSystems IRIS Native API for Node.js it avoids the need for any support code to be installed on the servers. This technology choice also qualifies it for entry into the current Developer Community contest.

The initial release focuses on two aspects of server configuration:

  • Namespaces and databases
  • ECP connectivity

Suggestions for what to add next are welcome, as is general feedback.

7
0 226
Article Padmaja Konduru · Nov 21, 2025 1m read

Terminal Commands for Production:

  • Production Start, Stop, Update, Recover and Clean Production

Do ##class(Ens.Director).StartProduction(“ProductionName”)

Do ##class(Ens.Director).StopProduction()

Do ##class(Ens.Director).UpdateProduction()

Do ##class(Ens.Director).RecoverProduction()

Do ##class(Ens.Director).CleanProduction()

Abort Messages in the queue:

               d ##class(Ens.Queue).AbortQueue(“Component Name”)

Get InstanceName :

              W !,##class(%SYS.System).GetUniqueInstanceName()

Get Node Name:

              W  !,##class(%SYS.System).GetNodeName()

Terminate JobId :

   d $SYSTEM.

0
4 126
Question Mikael Toivonen · Aug 17, 2017

My issue is that I don't know why Ensemble processes incoming data in the wrong encoding.

Update: Issue was solved, I think, see my answer below.

our customer uploads UTF-8 encoded CSV files to our sFTP server. When I view the files on the server side, the scandinavian characters Ä and Ö (A and O with two dots on top of themselves, respectively) display correctly in the source file. When Ensemble downloads the files using a FTP Service, the characters display incorrectly in Ensemble. 

I am unable to pinpoint the reason for this behavior and I was hoping this is easily solvable.

8
0 9787
Article Robert Cemper · Nov 16, 2025 2m read

In my previous article, I structured network communications
in these 3 possible layers, and covered the last

  • Client <---> Transport
  • Server <---> Transport
  • Client <---> Server

In fact, you have the most control over the last one.
The IRIS side as a server is yours and under your full control. 
Up to now, the Transport layer was assumed to be as passive as a bare wire.

This assumption should be verified. I once met a Windows environment with
a quite surprising setup where a Firewall-like filter was isolating internal
processes and causing a lot of trouble.

0
2 108
Article Robert Cemper · Nov 16, 2025 3m read

Chasing errors or misbehavior in the network can be quite a challenge.
Differently to  a local application on the DB server, you always have at least 3 players:

  • A client  to place a request 
  • some kind of transport layer
  • and a server to provide a reply.

This results in a minimum of 3 possible communication layers

  • Client <---> Transport
  • Server <---> Transport
  • Client <---> Server

The last one is probably the easiest  to check, while the other 
two deal with the same counterpart just from opposite sides.

0
3 146
Question Colin Brough · Oct 3, 2025

Is there any way of saving a representation of the results of a query created in the Message Viewer to a file - most obviously CSV.

We are reasonably adept at creating queries. We'd like to be able to send the output to a file, rather than resorting to cut'n'pasting from the message viewer window...

Is this possible? (on any version of Ensemble/Iris?)

Desired output to file something like:

ID,TimeCreated,Session,Status,Error,Source,Target,Body_MSH_MessageControlId,.....
1,8888888,2025-08-20 05:03:14.324,8438123,Completed,OK,ICE ADT Validator,ICE ADT TCP,1z123456,20220822......
13
0 220
Question Touggourt · Nov 6, 2025

Hi Guys,

I'm a newbie in term of MQTT clients & brokers, and I've created a MQTT adapter to connect to a broker and I asked our system admin for the user/pass and the URL and this where we got stuck.

The admin is saying that all he has is IP address to the PEM key to the server itself, so my question is, is the broker the server itself and the url is the url to the server or is the Broker an application (eg. Mosquito) that runs in a server and if that's the case and if its Mosquito,  where do I find the connection details to it (user/pass & URL) ?
Thanks

Thanks

1
0 176
Article Tomoko Furuzono · Nov 6, 2025 2m read

InterSystems FAQ rubric

When exporting using the Export() method of the %Library.Global class, if the export format (fourth argument: OutputFormat) is set to 7, "Block format/Caché block format (%GOF)," mapped globals cannot be exported (only globals in the default global database of the namespace are exported). To export mapped globals in "Block format/Caché block format (%GOF)," specify the database directory to which you want to map them in the first parameter of %Library.Global.Export().

An example of execution is shown below.

0
0 149
Article Corentin Blondeau · Feb 24, 2025 4m read

Hello
This article follows up on the question I had asked the community UDP Adapter not working
In this article, I will present to you
1) What is "UDP"?
2) The current state of Iris with UDP
3) My solution with the UDP adapter


1) What is "UDP"?

UDP stands for User Datagram Protocol. It is one of the core protocols of the Internet Protocol (IP) suite, used for transmitting data over a network. Here are some key features of UDP:

  1. Connectionless: UDP does not establish a connection before sending data, which means it can send messages (datagrams) without prior handshaking.
4
4 466
Question Robert Hildebrand · Oct 30, 2025

Hello,
I am currently facing the task of retrieving or sending HL7 messages from a web API. Since we only send HL7 messages via internal sockets, web APIs are relatively new to me.
The following is my plan for the new interface:
I have created a new custom business service that periodically sends requests to a business process. In this business process, the HTTP request (HTTP.GenericMessage) is then created from scratch. The special feature is the "Authorisation" header field, where a signature is inserted, which consists of a base64-encoded hash value.

4
0 145
Question Colin Brough · Apr 10, 2025

InterSystems ObjectScript extension for VS Code, version 3.0.1

Am also asking this question on the extension's GitHub page: Request textDocument/documentSymbol failed. Error: name must not be falsy · intersystems-community/vscode-objectscript · Discussion #1530 - but suspect more eyes will see it here, which might help gather additional information.

Tried to compile some legacy ObjectScript code via Import/Compile in VS Code using the vscode-objectscript extension. Getting an error, and the content of the file is left changed on the filesystem simply by being compiled.

6
0 404
Question Nimisha Joseph · Oct 27, 2025

Hi,

I’m working in Ensemble and trying to resend a message from the Message Viewer. The message is in XML format.

When I try to edit the XML before resending,

  • I open the message in the Message Viewer.
  • I click Resend or Edit & Resend.

I’m looking for guidance on:

  1. How to make a message editable in Message Viewer.
  2. The proper way to modify an XML message before resending in Ensemble/IRIS.

Any suggestions or examples would be very helpful.

1
1 94