Question Norman W. Freeman · May 7, 2025

I use the following code to protect some code for being called by multiple processes at same time :

lock +^TEMP("FOO"):0 //don't wait
quit:'$test
//critical section
//...
lock -^TEMP("FOO")

This works between processes but it does not prevent the same process entering critical section twice.

How to do that, is there any lock option ? I would like it to behave as the lock in C# or Java.

It's OK for me to use something else than LOCK instruction (eg : signals)

8
0 200
Article Kunal Pandey · May 12, 2025 1m read

Introducing Smart Clinical Sidechick — the intelligent, no-drama partner your EHR wishes it could be. She reads FHIR data in real time, interprets lab results without ghosting, and explains clinical alerts like she actually cares. Built with GPT-4 brains and YAML sass, she’s not here to replace your main EHR—just to make it look bad. Tired of irrelevant alerts and cryptic warnings? Sidechick serves up real, explainable insights, not vague “elevated risk” vibes. And when your backend crashes, she doesn’t panic—she self-heals.

0
1 211
Question Scott Roth · May 9, 2025

I am running into an issue where a JSON response is missing keys...

{
    "count": 0,
    "pageInformation": {
        "offset": 0,
        "size": 10
    },
    "items": []
}

Within the JSON response I am only looking for two fields portalUrl and portalId. I have tried using $LENGTH and %IsDefined to check if they are valued but neither work. 

  If ((tHttpResponseIsObject) && ($ZCONVERT(tHttpResponseContentType,"L") [ "application/json"))
  {
    set responseData = {}.%FromJSON(tHTTPResponse.Data)
    set pResponse = ##class(osuwmc.COM.Response.
2
0 115
Article Sam Ferguson · May 9, 2025 10m read

Regardless of whether an instance of IRIS is in the cloud or not, high availability and disaster recovery are always important considerations. While IKO already allows for the use of NodeSelectors to enforce the scheduling of IRISCluster nodes across multiple zones, multi-region k8s clusters are generally not recommended or even supported in the major CSP's managed Kubernetes solutions. However, when discussing HA and DR for IRIS, we may want to have an async member in a completely separate region, or even in a different cloud provider altogether.

0
4 332
Question Ashok Kumar T · May 7, 2025

Hello Community,

When retrieving strings from the DAO, if the string exceeds the capacity of an ObjectScript string variable, it returns <MAXSTRING>. To prevent this, use dao.%Get(key, default, "stream") to retrieve the value as a stream (%Stream.DynamicBinary). However, Why can't we use other stream objects such as %Stream.TmpCharacter instead of %Stream.DynamicBinary/%Stream.DynamicCharacter (I understand It is not possible to create a direct object instance for %Stream.Dynamic* classes) .

5
0 172
Question Ewan Whyte · May 8, 2025

I'm trying to use the assign option within a ruleset. I can trace the value with no issues but when I try to assign the same value to a variable of Namespace I get an error.
Ideally I would like to use a variable instead of repeating the Piece repeatedly throughout the rules.
Ruleset


And this is the error that I am getting.
ERROR <Ens>ErrException: <PROPERTY DOES NOT EXIST>zevaluateRuleDefinition+14^SFT.RoutingRules.AlertManCreationRule.1 *Namespace,Ens.Alerting.Context.CreateAlert -- logged as '-' number - @' set pContext.Namespace=##class(Ens.Rule.FunctionSet).Piece((pContext.AlertRequest.

4
0 182
Question MikeC · May 4, 2025

We are receiving an ORU message and the vendor is requesting that we append a new OBX segment at the end of the message and I wanted to reach out to see what options might be available. 

So far, I tried the append action in the DTL editor with a single OBX-3 field but it seems to be appending to the field directly instead of creating a new OBX. I've started looking into if whether I could use a function but wanted to first check with the experts on the Discussion here in case there's an easier way to accomplish this. Thank you. 

2
0 231
Question Scott Roth · May 6, 2025

I am trying to replicate a REST call that I am able to make via a Postman call within a EnsLib.REST.GenericOperation.

It's been a while since I have messed around with trying to make external REST calls. When I execute my REST call, tSC is coming back with an error and I am trying to pinpoint why. I tried turning on ISCLOG = 5 but when calling the REST Operation from the Testing tool it is not logging anything to the ISC log.

How do we see the RAW request being sent out to verify that my request is formatted properly?

3
0 163
Question Juan Mota Sanchez · May 3, 2025

Hi,

I've been working on a very basic Interoperability production in my computer. I followed one of the examples in the courses and created a TEST.FileRouterRoutingRule, but when trying to edit this rule, it takes me to the Rule Editor Login Page, where I can't get in (Not even with the _SYSTEM credentials) - Is this functionality unavailable in the community edition?

2
0 144
Article Padmaja Konduru · May 6, 2025 3m read

It helps to remove special characters, such as non-utf-8 characters either control characters or unicode characters from text that is not printable or can't be parsed by downstream systems.

There is also $C(32) in this condition; sometimes NBSP appears in the text and it will not be recognized by TIE, but downstream it displays as "?".

In order to avoid the NBSP issue, the if condition is replaced with a space in order to prevent the error.

Unicode characters only Remove:

Class Test.Utility.

4
1 395
Article sween · May 6, 2025 13m read

 Hello IRIS Fans and Welcome to IRIS iRacing!

Here were going to take 3 laps of your time and demonstrate how I wired up my Racing SIM to IRIS for "As Real Time as It Gets" Metrics reporting.  I missed the window for the contest, which happens quite often, but I still ended up 3rd I think in the demo race in the video below.


Technical Salad

Below are the technical ingredients for this demonstration for a salad you can post on Instragram.

0
1 308
Question Colin Brough · Apr 30, 2025

We have classes in a Production environment that are causing us some issues - example attached.

When we export them from the production environment the XML contains a snippet like the following:

<UDLText name="T">
<Content><![CDATA[
//Property any As list Of %XML.String(XMLNAME = "any", XMLPROJECTION = "ANY") [ SqlFieldName = _any ];

]]></Content>
</UDLText>

When imported and compiled into an Ensemble instance this class works as expected.

When viewed/edited in a development environment we run into issues - the presentation is similar with both Studio and VS Code.

8
0 190
Announcement Anastasia Dyubaylo · Apr 16, 2025

Hi Community!

We know that every developer has small side projects — apps where you experiment with new technologies, test ideas before implementing them in bigger solutions, or just build something fun for the sake of curiosity. But what if one of those projects could take you all the way to the InterSystems READY 2025? 

We’re launching a unique opportunity: show us your passion, creativity, and love for IRIS, and win a free pass to the InterSystems READY + hotel accommodation!

The rules are simple: upload your fun IRIS-based side project to Open Exchange, and record a short inspirational video about why you should be the one to get the pass to THE event of the year and win!

Duration: April 21 - May 04, 2025

Prizes: hotel accommodation and free passes to the InterSystems READY 2025!

7
0 356
Question Ganesh Jagtap · May 1, 2025

Hi all,

I'm reviewing an older Cache routine and came across this line of code: from file ^ZDBKCRON

S $ZT="^%ETSDK"

Error trap

/home/oper/script/cache_db_backup -t        # Daily CacheDB Backup

 produced the following output:

 <NOROUTINE> *%ETSDK
<ERRTRAP>

-----------

From what I understand, this is setting up an error trap, but I'm not entirely clear on how it works, especially in modern InterSystems IRIS environments.

Could someone please help explain:

  1. What exactly does this line do?
  2. Is %ETSDK a standard system routine? I can't find it in our environment.
2
0 145
Question Marcio Coelho · May 4, 2025

Hello everyone,

I am using a class that inherits from %RegisteredObject and %JSON.Adaptor to generate a JSON string from its instances.

However, one of the properties in my class is of type %Library.DynamicObject, as in the example:

Class Faces.Option Extends (%RegisteredObject, %JSON.Adaptor)
{ 
Property legend As %String;
Property xAxis As %Library.DynamicObject; 
}

When calling %JSONExportToString() on an object of this class, the JSON generated for the xAxis property is incomplete or malformed. It seems the default %JSON.Adaptor doesn't correctly handle properties of type %Library.

1
0 151
Question Evgeny Shvarov · Apr 7, 2025

Hi devs!

Suppose I have an instance of a persistent class:

Set person = ##class(dc.Sample.Person).%OpenId(1)

Class is an ancestor of %JSON.Adapter.

How can I convert it to dynamic object with the properties that person.%JSONExport() provides?

{"Name":"Elon Mask","Title":"Associate Accountant","Company":"InterSystems","Phone":"799-933-5569","DOB":"1926-12-11"}

Couldn't find a right method. 

set dynObj = ##class(%ZEN.Auxiliary.altJSONProvider).%ObjectToAET(person) works, but adds id and classname, which I don't want to be added:

zw dynObj
dynObj={"_class":"dc.Sample.
17
0 428