- InterSystems EMPI (formerly HealthShare Patient Index) – Virtual February 3-5, 2026
-
- Configure, tune, and work with InterSystems EMPI, an Enterprise Master Person Index
- This 3-day course teaches the installation, configuration, and use of InterSystems EMPI™ (formerly HealthShare® Patient Index). Starting with version 2025.1, HealthShare Patient Index has been renamed to InterSystems EMPI, but the core functionality remains the same.
- The first half of the class focuses on person identification issues and the tools for reviewing records and record matches. This part of the class is appr
Hello community!
We are delighted to invite all our customers, partners, and community members to InterSystems France & Benelux READY 2026!
This event promises to be an interactive experience highlighting inspiring case studies, technological innovations, and roadmaps for the coming year in the fields of healthcare and data platforms. Hands-on demonstrations will also allow you to explore the latest developments in a tangible way.
➡️ InterSystems Benelux & France Summit 2025
🗓 Dates: February 3-4, 2026
📍 Location: Les Jardins de Saint-Dominique, Paris, France
Hello everyone,
InterSystems Certification is still looking for InterSystems EHR (TrakCare/Intellicare) integration specialists to help us beta test our new InterSystems EHR Integration Specialist Certification exam. This is a great way to earn the certification for free! The deadline to participate in the beta test has been extended to March 15th.
Please note, there are eligibility requirements for this exam. For details, please see the original announcement. Please contact certification@intersystems.com with any questions.
Thank you!
If you want to generate JWT from x509 cert/key, any operation (including reading) on %SYS.X509Credentials requires U on %Admin_Secure resource.%Admin_Secure is required because %SYS.X509Credentials is persistent, and it's implemented this way to prevent all users from accessing private keys.
If %Admin_Secure resource is not available at runtime, you can use the following workaround.
Upon reviewing the code for JWT generation, I discovered that the JWT code utilizes %SYS.X509Credentials solely as a source of runtime data for PrivateKey, PrivateKeyPassword, and Certificate. As a workaround, yo
SETassigns 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%StringSet name = "Micheal Scott"#DIM age As%NumericSet age = 36#DIM employer As App.Employer ; compile timeSet employer = ##class(App.Employer).%New() ; runtime
SETor #DIM? Your design, your rules.
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.
New to using Analytics and using Dashboards. We have this Report, SQL Query that lists out the Activity per Data Source in Health Share Provider Directory. Instead of running it as a report, because it takes a while to run, was wondering if there is a way to do this as a Dashboard instead.
.png)
How can I take the SQL from this report and create a Dashboard instead?
– 955 announcements
– 755 questions
– 56 discussions
✓ 4,592members joined the Developer Community in 2025
✓ 25,158posts published in total
✓ 25,553 members joined in total
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.Algorithm=$Hey Community,
Enjoy the new video on InterSystems Developers YouTube:
⏯ Advancing Healthcare Interoperability - Strategy and Vision @ Ready 2025
Iris Health dashboard images not loading after first install, getting 404 on /csp paths, is there any setup I am missing?, found this old community post: https://community.intersystems.com/post/debugging-why-management-portal… but the links are outdated, can anyone please guide me to proper documentation. Thanks in advance.
Screenshot attached:
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.
The problems I'm facing are:
- I cannot execute an UPDATE statement via the same connection that was used before to selec
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:

Could someone help me with this error?
.png)
Hello,
We are accessing an InterSystems Cacha database from Microsoft SQL Server using a linked server over ODBC (ODBC35). Queries are executed using OPENQUERY.
On the SQL Server side, there is a linked server property called Query Timeout. By default it is set to 0 (no timeout). We are considering setting it to 15 seconds and would like to understand how Cache behaves in this scenario.
Specifically, I would like clarification on the following points:
- When SQL Server sets a query timeout (for example, 15 seconds), is this timeout visible to or enforced by Cache itself, or is it handled
I have a new project to store information from REST responses into an IRIS database. I’ll need to sync information from at least two dozen separate REST endpoints, which means creating nearly that many ObjectScript classes to store the results from those endpoints.
Could I use ChatGPT to get a headstart on creating these classes? The answer is “Yes”, which is great since this is my first attempt at using generative AI for something useful. Generating pictures of giraffes eating soup was getting kind of old….
Here’s what I did:
- Get some sample JSON REST call output using “curl” to query
.png)
Hello. Here is XDataReportDefinition
/// XML that defines the contents of this report.
XData ReportDefinition [ XMLNamespace = "http://www.intersystems.com/zen/report/definition" ]
{
<report xmlns="http://www.intersystems.com/zen/report/definition" name='bills' runonce="true">
<attribute name='runTime' expression='$ZDT($H,3)' />
<attribute name='runBy' expression='..GetUserName()' />
<attribute name='author' expression='..ReportAuthor'/>
<group name='bills' OnCreateResultSet="CreateRS">
<parameter name="MonthDt" expression="..Month"/>
<parameter name="Company" expression="..Company"/>
<para
Hello
How to hide a table completely in pdf generation when a row is empty?
A table has style with borders
<table group="services" removeEmpty="1" style="border:1px solid black;">
<item field="TotalSum" suppressEmpty="1" />
<item field="TotalAvSum" suppressEmpty="1" />
</table>
With removeEmpty="1" and suppressEmpty="1" all data are hidden when a row is empty but top and bottom borders are remain on the page.
How to hide also table's top and bottom borders when a data row is empty?
Hey Community,
It's time for the new batch of #KeyQuestions from the previous month.

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.
Dear Community members,
We are currently performing technical work, and during this time, you may experience issues with the Developer Community portal, Developer Community AI, and search functionality:
🔹 Ask DC AI is temporarily unavailable
🔹 Search may take longer than usual or may not return results
🔹 You may experience problems with logging into the Developer Community and Open Exchange
We’re working to restore full functionality as quickly as possible. Thank you for your patience and understanding.
I frequently use the #call (https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…) feature to make asynchronous calls in the CSP. However, in some cases, I encounter a timeout issue with the CSP Gateway. Is there any way to change this call timeout? I don't want to change the default configuration in the CSP Gateway.
I have see this discussed on the community but I'm not quite finding an answer.
I have a method that is called in the OnPreHttp() method of a CSP page. That method returns a dynamic object and a set a new variable to the %ToJSON method of the object so I can use it in my JavaScript code later to init a table of data (using the #(variable)# syntax). This creates a MAXSTRING error. So I changed it to return a %Stream.TmpCharacter. But if I call Read($$$MaxStringLenght) I only get part of the data. I loop over it and read it in chunks to the end, that kind of work, but I can't set the chun
Hello and welcome to the Developer Ecosystem News!
The fourth quarter of the year was full of exciting activities in the InterSystems Developer Ecosystem. In case you missed something, we've prepared a selection of the hottest news and topics for you to catch up on!
(2).png)
I have a Photo that is stored as an VARBINARY within MS SQL. I would like to Select the data into a EnsLib.SQL.Snapshot, is that possible? I would take it out of the Snapshot and send it to a %Stream so it can be written out to a file.
Motivation
I didn't know about ObjectScript until I started my new job. Objectscript isn't actually a young programming language. Compared to C++, Java and Python, the community isn't as active, but we're keen to make this place more vibrant, aren't we?
I've noticed that some of my colleagues are finding it tricky to get their heads around the class relationships in these huge projects. There aren't any easy-to-use modern class diagram tool for ObjectScript.
Related Work
I have tried relavant works:
- InterSystems class view:
1. https://github.com/intersystems-community/ClassExplorer
Thi

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).
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.
- This course is applicable for users of InterSystems IRIS® data platform, InterSys
Hi, Community!
Ready to strengthen your deployment of InterSystems IRIS® data platform?
👨💻See how to configure a mirrored pair to preserve the integrity of your data:

