Hi, I have simple email alert setup (EnsLib.EMail.AlertOperation) where in operations I have SMTP server setup and Recipients emails.

Also I find Alert Groups dropdown option in operations, processes, how this is different from setting up simple email alert with recipients list?

Please advise.

0 0
0 3
InterSystems Developer Community is a community of 25,759 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

Hi Community,

We’re excited to invite you to take part in shaping the next generation of ObjectScript development tools. We’re working on an AI-powered ObjectScript coding assistant designed specifically for IRIS developers. Not a generic AI adapted for ObjectScript, but a solution built from the ground up to understand ObjectScript idioms, IRIS APIs, interoperability productions, and real-world developer workflows.

To make sure we build something truly useful, we need your input.

👉 ObjectScript Coder Agent Developer Survey 👈

2 0
0 21

We’re excited to announce the first mini hackathon “Building AI Agents with InterSystems”, taking place on a pre-conference day as part of InterSystems READY 2026.

In this hands-on challenge, participants will design and build AI agents using upcoming InterSystems capabilities, exploring how intelligent automation, orchestration, and reasoning can be applied to practical use cases.

    📅 Event date: 27 April 2026
    📍 Location: Gaylord National Resort & Convention Center, National Harbor, Maryland
    🔗 Learn more here: Building AI Agents with InterSystems mini-hackathon at InterSystems READY 2026

    1 0
    1 10

    Needs some help with FHIR return code 200 or 201 when processing HL7 messages in HealthConnect.

    Issue:

    1. If FHIR code is 200 or 201, HealthConnect keep processing HL7 messages

    2. If FHIR code is NOT 200 or 201, HealthConnect keep suspend the HL7 messages in the messages queue, then keep processing NEXT subsequent HL7 messages in the TEXT file if the FHIR code is 200 or 201

    0 5
    0 60
    Article
    · May 12, 2025 7m read
    An Overview of Database Degrade

    Introduction

    Hello! In this article, I will be discussing database degrade, a type of data integrity issue one can face when using IRIS. First, I will be going over a review of the structure of IRIS databases. I'll then discuss how database degrade can manifest and common causes of degrade issues. I'll then conclude with general tips we give our customers about how to prevent or prepare for database degrade issues.

    12 3
    3 310

    Where can I download the Cache ODBC drivers?

    Where can I download the Cache ODBC drivers for Windows?

    I need to connect to a cache database by odbc but the FPTs that I have found do not work,
    could you tell me where to download the ODBC drivers

    0 16
    0 10.8K

    Hey Community!

    We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:

    How Big Research Bets Are Made Without a Crystal Ball

    https://www.youtube.com/embed/JE2ssBbsh8w
    [This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

    2 0
    0 7
    Article
    · Jan 21 2m read
    Archiving my OEX packages

    Over the last 9 years, I published more than 90 packages in OEX.
    And over this time, conditions and environments changed.
    In the beginning, there was

    • no Docker
    • no IPM/ZPM
    • no embedded Python, no AI
    • Caché, Ensemble, CSP, ZEN, .... were dominating

    As time changed, also product versions and external languages changed.
    Adjustment of a few packages was no issue in the beginning,
    and was a matter of support quality to my "consumers".

    2 0
    0 23

    Why do these clauses affect SQL performance?

    select ID from some_table where row_status in ('I','U') order by ID limit 5 - makes the query infinite
    select top 10 ID from some_table where row_status in ('I','U') order by ID - the same
    select ID from some_table where row_status in ('I','U') order by ID - is fast

    Actually there are no rows in the table having row_status 'I' or 'U'.

    I asked Gemini and it recommended me rewrite the query as

    0 13
    0 88

    Here at InterSystems, we often deal with massive datasets of structured data. It’s not uncommon to see customers with tables spanning >100 fields and >1 billion rows, each table totaling hundred of GB of data. Now imagine joining two or three of these tables together, with a schema that wasn’t optimized for this specific use case. Just for fun, let’s say you have 10 years worth of EMR data from 20 different hospitals across your state, and you’ve been tasked with finding….

    10 2
    4 310

    As applications grow, every database eventually hits scaling limits. Whether it's storage capacity, concurrent users, query throughput, or I/O bandwidth, single-server architectures have inherent constraints. This guide explains fundamental approaches to database scalability and shows how InterSystems IRIS implements these patterns to support enterprise-scale workloads.

    We'll explore two complementary scaling strategies: horizontal scaling for user volume (distributing computational load) and sharding for data volume (partitioning datasets). Understanding the general principles behind these approaches will help you make informed decisions about when and how to scale your IRIS applications.

    The examples in this guide use InterSystems IRIS in Docker containers.

    6 2
    3 49

    Hi Community!

    Starting from January 2026, developers who turn product ideas from the Ideas Portal into real, working solutions with be awarded with 7,000 points on Global Masters and a badge.

    ✨ What you get:
    🧙‍♂️ Idea to Reality Wizard badge —
    awarded once to community members who implement a product idea suggested at the Ideas Portal
    ⭐ 7,000 Global Masters points — awarded for every implemented idea from the "Community Opportunity" list.

    Details:

    5 1
    0 97

    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.

    6 2
    3 266

    There are numerous excellent tools available for testing your REST APIs, especially when they are live. Postman, various web browser extensions, and even custom ObjectScript written with %Net.HttpRequest objects can get the job done. However, it is often difficult to test just the REST API without inadvertently involving the authentication scheme, the web application configuration, or even network connectivity. Those are a lot of hoops to jump through just to test the code within your dispatch class. The good news is that if we take our time to understand the inner workings of the %CSP.REST class, we will find an alternative option suited for testing only the contents of the dispatch class. We can set up the request and response objects to invoke the methods directly.

    8 5
    6 167
    Article
    · Apr 28, 2025 2m read
    Minimum IRIS container footprint

    Sometimes customers need a small IRIS instance to do something in the cloud and shut it down, or they need hundreds of containers (i.e. one per end user or one per interface) with small workloads. This exercise came about to see how small an IRIS instance could be. For this exercise we focused on what is the smallest amount of memory we can configure for an IRIS instance. Do you know all the parameters that affect the memory allocated by IRIS ?

    10 4
    5 334

    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

    13 4
    9 524

    Hey Community,

    Enjoy the new video on InterSystems Developers YouTube:

    Innovations in FHIR Data Management@ Ready 2025

    https://www.youtube.com/embed/Q5CrlqcJAkA
    [This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]

    0 0
    0 23

    If one of your packages on OEX receives a review, you get notified by OEX only of YOUR own package.
    The rating reflects the experience of the reviewer with the status found at the time of review.
    It is kind of a snapshot and might have changed meanwhile.
    Reviews by other members of the community are marked by * in the last column.

    3 0
    0 28

    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.

    Tried this:

    0 7
    0 78

    Hi developers!

    There is a very neat variable in IPM ${ipmdir} that lets packages be installed on a particular IRIS server and ensures that the data and resources they bring don't mess around as ${ipmdir} variable during the installation transforms into:

    iris installation dir/ipm/package_name/version/whatever_you_install_here

    It is very convenient, e.g., to bring some data and resource files that can be useful during the installation setup, e.g., via FILECOPY. Indeed, suppose you bring some csv_file, e.g. titanic.csv via FILECOPY as:

    <FileCopy Name="data/titanic.csv" Target="${ipmdir}data/titanic.csv"/>

    or even the whole folder of data in the source code repo into the package:

    <FileCopy Name="data/" Target="${ipmdir}data/"/>

    And in the case of Iris in Docker it resides in:

    /usr/irissys/ipm/package_name/1.0.0/data/titanic.csv

    This is all great, but is there any way for the installed code to determine the location of the data files? It'd be neat to let the installed app know somehow where is the data that came with it? Could it be the method in the IPM client that will resolve ${ipmdir} for the app?

    0 2
    0 55