The 2025.1.2 and 2024.1.5 maintenance releases of InterSystems IRIS® data platform, InterSystems IRIS® for HealthTM, and HealthShare® Health Connect are now Generally Available (GA). These releases include the fixes for a number of recently issued alerts and advisories, including the following:
Hello community,
I wanted to share my experience about working on Large Data projects. Over the years, I have had the opportunity to handle massive patient data, payor data and transactional logs while working in an hospital industry. I have had the chance to build huge reports which had to be written using advanced logics fetching data across multiple tables whose indexing was not helping me write efficient code.
Here is what I have learned about managing large data efficiently.
Choosing the right data access method.
Hello!!!
Data migration often sounds like a simple "move data from A to B task" until you actually do it. In reality, it is a complex process that blends planning, validation, testing, and technical precision.
Over several projects where I handled data migration into a HIS which runs on IRIS (TrakCare), I realized that success comes from a mix of discipline and automation.
Here are a few points which I want to highlight.
1. Start with a Defined Data Format.
Hi all,
Recently we were experimenting with having a variable target on a routing rule and noticed some interesting behaviour, code below.
<rulename="My Rule"disabled="false"><constraintname="docCategory"value="Generic.2.3.1"></constraint><whencondition="((Document.{MSH:MessageType.triggerevent}="A43"))"><sendtransform=""target="To" _(pContext.Document.GetValueAt("MSH:SendingFacility"))_"FromServiceTCPOpr"></send></when></rule>Our application has a ZEN report that accepts a sorting parameter and a fundraiser parameter. Sorting tells us which order the pages are to be in and the fundraiser limits the data shown (e.g. which user has requested the report)
/// the passed in fundraiser parameter
Property fundraiser As %ZEN.Datatype.string(ZENURL = "FID");
Property SortOrder As %ZEN.Datatype.string(ZENURL = "SORTME") [ InitialExpression = "WorkId" ];
"Haul" a Portable Registry for Airgapped IrisClusters
Rancher Government Hauler streamlines deploying and maintaining InterSystems container workloads in air-gapped environments by simplifying how you package and move required assets. It treats container images, Helm charts, and other files as content and collections, letting you fetch, store, and distribute them declaratively or via CLI — without changing your existing workflows. Meaning your charts and what have yous, can have conditionals on your pull locations in Helm values, etc.
Hello InterSystems Community,
I hope you're all doing well. I'm reaching out to ask if there's any way to enable a dark theme or dark mode for the HealthShare Management Portal.
Background
I have a visual impairment (amblyopia/lazy eye) which means I'm nearly blind in one eye. Like many people with visual difficulties, I find that bright white backgrounds and interfaces cause significant eye strain and fatigue. This makes it challenging to work with the Management Portal for extended periods.
What I've Found So Far
Hi Community,
Enjoy the new video on InterSystems Developers YouTube:
Starting out with ObjectScript, it is really exciting, but it can also feel a little unusual if you're used to other languages. Many beginners trip over the same hurdles, so here are a few "gotchas" you'll want to watch out for. (Also few friendly tips to avoid them)
NAMING THINGS RANDOMLY
We have all been guilty of naming something Test1 or MyClass just to move on quickly. But once your project grows, these names become a nightmare.
➡ Pick clear, consistent names from the start. Think of it as leaving breadcrumbs for your future self and your teammates.
MIXING UP GLOBALS AND VARIABLES
Introduction
Businesses often use in-memory databases or key-value stores (caching layers) when applications require extremely high performance. However, in-memory databases incur a high total cost of ownership and have hard scalability limits, incurring reliability problems and restart delays when memory limits are exceeded. In-memory key-value stores share these limitations and introduce architectural complexity and network latency as well.
Hi Community,
It's time to announce the winners of the InterSystems .Net, Java, Python, and JavaScript Contest!
Thanks to all our amazing participants who submitted 11 applications 🔥
Now it's time to announce the winners!
Not sure where to ask for some helpful hints about IRIS 2019.1 in 2025, but here goes.
I'm trying to create a new Java gateway to run some Java code through ObjectScript, but I keep getting an error saying "Java executable not found in the given directory":
This is my Object Gateway Server definition:
I am not sure what is wrong, whether I am defining this gateway wrong, because I can verify that the executable exists in the provided directory.
Any help or hint is greatly appreciated!
Hi community,
I have a service that uses EnsLib.RecordMap.Service.FTPService to capture files in an FTP directory.
Instead of uploading them all at once, I would need to do so one at a time.
I have a class that extends this class because it preprocesses, saves everything in the RecordMap class, and then processes all the records at once.
When I invoke the BP, it does so through the method set tStatus = ..SendRequest(message, 1).
I've set the SynchronousSend flag to 1, but it continues processing all the files at once.
I am creating a class to validate JSON body of requests. When I use the method %ValidateObject to check errors in the object, if I define some properties with %DynamicObject or %DynamicArray and use the Required parameter, this method does not work, it ignores validation, only works with properties %String, %Integer etc.
In the modern world, the most valuable asset for companies is their data. Everything from business processes and applications to transactions is based on data which defines the success of the organization's operations, analysis, and decisions. In this scenario, the data structures need to be ready for frequent changes, yet in a managed and governed way. Otherwise, we will inevitably lose money, time, and quality of corporate solutions.For a long time, data management and governance were solely based on the data itself, with excellent backup, restoration, ACID (Atomicity, Consistency,
Hi Team,
Can I please check if anyone has built a simple web interface for maintaining custom SQL lookup class.
We have a simple persistent class in HealthShare which is used for storing Pathology test codes. Test codes in this lookup class is used for message filtering and applying additional logic when processing pathology results/orders.
We want to make this class available to external users from pathology (not the usual management portal users) to maintain so that they can add/edit/delete test codes as required.
Being impressed by the graphics of the package GBLSizeMonitor from @Ashok Kumar T
I ask for his help, and this is the result of our cooperation.
As in the previous package, all is running from a CSP page.
And it is all classic CSP written with InterSystems ObjectScript, JavaScript, HTML
Besides the graphic, you also get concrete numbers freshly collected from your local
instance or from remote instances that also installed the package.
The final result
The processing steps
Surely you wanted to use the OpenAPI Specification (OAS) JSON you used for your spec class on the iris-web-swagger-ui iris package. The generated OAS from the ##class(%REST.API).GetWebRESTApplication(...) method is very crude, with no description on the parameters or the expected response structure.
So after creating your REST application from an OAS you should have:
- A generated application.disp.cls class
- An application.spec.cls class (we'll add a path to the OpenAPI spec that's residing in the "XData OpenAPI" property)
- An application.impl.cls class (we'll just implement the GetSpec method)
Hello and welcome to the Developer Ecosystem News!
The third 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!
Hey Community!
We’re updating the Developer Community search engine till the end of the year to make it faster and more accurate (we hope 😉).
During this period, you may experience occasional slowness or brief interruptions in search performance. If you notice anything unusual or run into issues, please let us know in the comments below - your feedback helps us ensure everything runs smoothly.
Hi All,
In my DB, it has more than 10,000 files. I tried to search for a particular file (mac), but there is no search option to find it. Can you help me find that option to search for a file?
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:
⏯ Advanced SQL join table cardinality estimates @ Ready 2025
Overview
This web interface is designed to facilitate the management of Data Lookup Tables via a user-friendly web page. It is particularly useful when your lookup table values are large, dynamic, and frequently changing. By granting end-users controlled access to this web interface (read, write, and delete permissions limited to this page), they can efficiently manage lookup table data according to their needs.
The built-in task manager is limited. How can I implement a robust, distributed job scheduler in IRIS with support for dependencies, CRON syntax, and failover recovery?
We run mixed workloads in IRIS. For analytical queries, are bitmap indexes effective? What are the caveats for concurrent OLTP updates, and how should I maintain bitmap indexes efficiently?
We require user-specific row access (row-level security). How can we enforce this in SQL and ObjectScript using custom class parameters and dynamic WHERE clause injections?
When writing dynamic SQL queries using embedded SQL, how can I force or ensure that filter conditions are pushed down to the data access layer rather than evaluated in memory?
I have large joins involving millions of rows. How can I profile and tune the SQL engine’s parallel execution? Are there EXPLAIN plan features to inspect threading and task distribution?
We want to expose both REST and GraphQL endpoints over the same data models. Is there a way to implement or integrate GraphQL with ObjectScript and map to class methods?
What are the best practices for creating a multi-tenant app in IRIS? How can I isolate data per tenant using namespaces, control resource usage, and delegate access via roles securely?