Hey Developers,
Enjoy the new video on InterSystems Developers YouTube
⏯ Inside Vector Search - Technical Innovations In InterSystems IRIS @ READY 2025
Hey Developers,
Enjoy the new video on InterSystems Developers YouTube
⏯ Inside Vector Search - Technical Innovations In InterSystems IRIS @ READY 2025
Tags: #LangGraph #LangChain #AI #Agents #Python #LLM #StateManagement #Workflows
Hi everyone, I want to tell you a little about LangGraph, a tool that I'm studying and developing.
Basically traditional AI applications often face challenges when dealing with complex workflows and dynamic states. LangGraph offers a robust solution, enabling the creation of stateful agents that can manage complex conversations, make context-based decisions, and execute sophisticated workflows.
Hi noble developers!
Have a question/discussion. Sometimes, while developing, we'd need to connect VSCode directly to a remote server (e.g., stage one) for debugging purposes. And after change back to local one. And then to remote again.
How do you perform this switching in VSCode in a convenient way?
I have several settings.json files (settings_local, settings_remote) which I put to a main settings.json when I need to make VSCode to connect to switch the connection:

Is it the best practice?
Hi,
Our production FHIR server is populated by several processes from several sources,
some of those sources send test data or wrong data (by mistake or as part of an integration test),
the data is consumed by our BI every 15 minutes.
when I mark a resource as test (using meta security) BI knows to update it on their system.
everything is fine up to here (except that there is test data in Prod)
my problem is that if someone send the same patient again it will recreate the patient without the security tag.
any thoughts?
Hi Community,
As part of our birthday celebration, we’ve put together a special timeline video showcasing the key milestones, growth, and achievements of the Developer Community and its Ecosystem over the past decade 🎆
Take a look at how far we’ve come, and how much we’ve built together:
InterSystems IRIS embedded vector search capabilities lets us search unstructured and semi-structured data. Data is converted to vectors (also called ‘embeddings’) and then stored and indexed in InterSystems IRIS for semantic search, retrieval-augmented generation (RAG), text analysis, recommendation engines, and other use cases.
This is a simple demo of IRIS being used as a vector database and similarity search on IRIS.
Prerequisites:
Repository: https://github.
InterSystems API Manager (IAM) is a core component of the InterSystems IRIS Data Platform, offering centralized API management with a strong emphasis on security. IAM simplifies the entire API lifecycle, from creation to retirement, and provides a developer portal for easy API discovery and integration. Access control features allow administrators to define precise permissions, and IAM seamlessly integrates with the IRIS Data Platform, enhancing data management and integration capabilities.
Features of IAM include:
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? 🙄
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.
Before you even open your first file, make sure everyone, especially data providers, clearly understands the exact data format you expect. Defining templates early avoids unnecessary bank-and-forth and rework later.
While Excel or CSV formats are common, I personally feel using a tab-delimited text file (.txt) for data upload is best. It's lightweight, consistent, and avoids issues with commas inside text fields.
PatID DOB Gender AdmDate
10001 2000-01-02 M 2025-10-01
10002 1998-01-05 F 2025-10-05
10005 1980-08-23 M 2025-10-15Make sure that the date formats given in the file is correct and constant throughout the file because all these files are usually converted from an Excel file and an Basic excel user might make mistakes while giving you the date formats wrong. Wrong date formats can irritate you while converting into horolog.
The Power of Indexing in Database Tables
When working with databases, most developers understand the concept of an index and why it's used: to speed up data retrieval. But the real impact of indexing often becomes clear only when you compare scenarios with and without it.
Do you Know what Happens Without an Index?
Imagine a table with three columns: Name, Age, and MobileNumber.
.png)
Now, consider this query:
.png)
If the Age column does not have an index, the database engine will:
Also in previous versions you could define your FHIR Server to accept requests via OAuth 2.0 (e.g. for a SMART on FHIR client) but nowadays with v2024.3, which was released a while ago, there is a new feature, that enables doing this more easily - the OAuth FHIR Client QuickStart.
.png)
.png)
Hi Community,
We’d like to remind everyone of the value your feedback and observations bring to improving InterSystems products. Our customer support is world-famous, but if you're not a formal customer yet it can be confusing how to engage with us. We have now filled that gap.
Every time you notice an issue - whether it’s a broken feature, a UI glitch, or something that just doesn’t work as expected - the Ideas Portal is now also the way to submit bug reports.
***REMEMBER: If you have access to WRC, please submit the report via WRC as usual!***
Here’s how it works:
1. Go to the Ideas Portal and click Add a new idea
2. Provide the title, short description, choose “Bug reports” in the category field, and click Next
.png)
Looking at my database I see I have a very big ^rINDEXSQL global? Why is that? 😬
In the Management Portal SQL page, under "SQL Statements" I see a 'Clean stale' button - what does this do? 🤔
In the list of Statements some have a 'Location' value and some don't? How is that? 🤨
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.
Hey Developers,
Enjoy the new video on InterSystems Developers YouTube
⏯ First Customers Using Vector Search - Real World Experiences and Lessons Learned @ READY 2025
Hello Community,
What is the correct way to import and compile .dfi files when using zpm load? Do .dfi files need to be defined in module.xml?
I have code that imports the .dfi file successfully; however, when I runzpm "load /home/irisowner/dev/ -v"
I get the message: Unknown file type. Skipping file: .pivot.DFI
zpm "install isc-dev"
do ##class(dev.code).workdir(dir)
do ##class(dev.code).import("*.DFI")Thank you!
Developing and testing REST APIs in InterSystems IRIS often requires a significant amount of boilerplate code. While ObjectScript provides powerful tools for building APIs, writing consistent and repeatable tests can be time‑consuming. This is where IrisOASTestGen comes in.
IrisOASTestGen is a utility designed to generate the structure of test classes and the supporting utility code directly from an OpenAPI 2.0 specification
In this article, we will discuss all the debugging tools included in the Microsoft Visual Studio Code IDE.
What will be covered:
Let's start by learning about debugging requirements!
Prerequisites
There are two plugins (extensions) for debugging ObjectScript:
The first is part of the InterSystems ObjectScript Extension Pack. The second is Serenji, a standalone plugin that provides an editor, file manager, and debugging functionality. Both plugins can be installed from the plugin store. To activate key functionality, Serenji requires a license. For this article, we'll use the InterSystems ObjectScript Extension Pack to reduce the learning curve. After you've mastered the basics, you can consider purchasing a paid license for Serenji.
As part of our 10-year celebration, we are pleased to recognize certain members whose long-standing contributions have significantly shaped the InterSystems Developer Community.
Over the past decade, these individuals have shared knowledge, supported peers, and helped strengthen the collaborative spirit that defines our Community.

To honor their impact, we are introducing a special set of 10th Anniversary Edition awards and Global Masters badges:
Hey Community!
We're happy to share a new video from our InterSystems Developers YouTube:
⏯ Using InterSystems Data Studio with Supply Chain Module as a Data Gateway @ Ready 2025
I am experimenting with OpenTelemetry and recently connected all IRIS instances to telemetry servers.
I'm not interested in emitting custom metrics since IRIS does it fine, regarding tracing - we can use %Trace classes to emit custom traces, but what about logging?
I see that IRIS is able to send system log messages to the OpenTelemetry servers:
{
"when": "2025-12-10 10:46:25.185",
"pid": "11852",
"level": "SEVERE",
"event": "Generic.Event",
"text": "ISCLOG: CSPServer Error displaying login page $ZE= ns=TEST rtn=%SYS.cspServer .When I was younger (a question about exactly how much younger is outside the scope of this article), the word “token” meant fun. You see, just a couple of times a year, I would get to go to an arcade and play some amusing video games with my friends.
These days, tokens signify security. JSON Web Token (JWT) Authentication has become one of the most popular standards for securing REST APIs. Fortunately for IRIS users, we have a straightforward way to set up applications to be protected this way. Yet, the idea is still similar to my old arcade days.
Hi,
I have Cache 2024.1. I attached the process ID from my terminal to the Cache Studio for Debugger. When I click on "Call Stack" tab I only see first 500 shown. Anyone know how to extend so I can see the rest of the information when i click on "Call Stack" tab? Thank you very much.
.png)
Second question: Using Cache Studio Debugger, anyone know how to expand the value of this variable when it display F,...
.png)
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:
^TEST(A*~K*) -> database A
^TEST(L*~Z*) -> database B
// Trying to kill from the top level will result in a <SLMSPAN> error.
NAMESPACE>Kill ^TEST
<SLMSPAN> <- This error is output.An extension “extends” or enhances a FHIR resource or a data element in a custom way. The extension can be added to the root of a resource, such as “Patient.ethnicity” in US Core profile, and they can be added to individual elements such as HumanName, Address or Identifier.
Did you know that you can also add an extension to a primitive data type?
Primitives usually store a single item and are the most basic element in FHIR. For example: "Keren", false, 1234, 12/08/2024 etc.
Hello Community,
✨ As we wrap up another incredible year on the Developer Community, it’s time to look back at everything you accomplished in 2025! Your personal 2025 Recap is now live — a tailored snapshot of your activity, milestones, and the value you brought to the community this year.
From the articles you shared to the discussions you sparked, your contributions helped shape the knowledge and collaboration on our platform. Now you can revisit all of it in one place!
(2).jpg)
Hi everyone.
I'm going to give you a quick tip on how to implement an AI agent to search the Intersystems documentation integrated into Teams.
Yes, I know the documentation page has its own AI search engine and it's quite effective, but this way we'd have faster access, especially if Teams is your company's corporate tool.
You can also create another AI agent to search articles published in the developer community (which also has its own integrated AI search engine).
I want to extract data from IRIS (Health Share Provider Directory) and write the data out to a file that I can use within an external system. Using EnsLib.SQL.Service.GenericService do I need to supply Credentials if I am querying IRIS locally? I have always used JDBC to connect externally when creating Services and Operations to read/write SQL data from external Databases, but never internally. Normally I would just use sql or code to pull the data within a Process or DTC. But in this case, I want the Service to drive the workflow, and query the data from Local Tables
Using a Workflow Task within HealthShare Provider Directory, when a user clicks on Resubmit message within my Business Process, I check the status of the response. If the response is "Resend Message", I have my Business Process executing the following....png)
set tSC = ##class(Ens.MessageHeader).ResendDuplicatedMessage(context.SessionID)
if $$$ISERR(tSC) $$$LOGSTATUS(tSC)the context.SessionID is the Session ID of the message as it is being pass thru the Business Process. Does anyone see why that would not work off hand?
Hello everyone.
I have a question regarding the priority when applying a default configuration.
I have several Business Services that use the same class, so I want them all to have a common "Schedule" configuration.
However, there's one that I don't want this default configuration applied to, so I've tried setting the Schedule value to empty for that element based on its name:
In this case, the elements that use the class Kurro.BS.SFTP.Marca have the default value "CargaFicheros".
.png)
However, one of the elements (Kurro.BS.SFTP.