In Episode 8 of Data Points, senior clinical advisor for interoperability at InterSystems @Russ Leftwich joined the podcast to talk about healthcare interoperability standards. In the first part of our two-part interview, Russ tells us about the history of healthcare standards and electronic record-keeping, some of the biggest challenges in the field, and how software has evolved to meet those ever-growing challenges.

Introduction
In the first article in this series, we’ll take a look at the entity–attribute–value (EAV) model in relational databases to see how it’s used and what it’s good for. Then we'll compare the EAV model concepts to globals.
Sometimes you have objects with an unknown number of fields, or perhaps hierarchically nested fields, for which, as a rule, you need to search.
Take, for example, an online store with diverse groups of products.Each product group has its own unique set of properties and has common properties as well.
After I loaded the intersystems/iam:0.34-1-1 image in local, I am trying to do the next step of configuration.
2) Configure your InterSystems IRIS instance
2a) Enable the /api/IAM web application
2b) Enable the IAM user
2c) Change the password for the IAM user
Do we need to change these settings in iris.cpf file? any inputs where we have to configure? I have IRIS 2019.1.1 installed in my machine.
Thanks,
Nag.
Hi,
I want to insert custom hook into message send and receive flow. for example:
1. parse request or response message, pick up bussiness field to do bussiness logic
Is it have method to do this?
Tks.
I have created a fairly simple process for taking a HL7 message and sending it to an external provider via a HTTP Post and this is all working correctly. However for the request and response messages I am using e a simple structure containing only a message stream and when looking in Ensemble Message viewer none of this stream content is showing (it is all blank). Would I have to create a particular message type to make this show in message viewer and if so could someone provide some guidance around how to achieve this (outline of code included below)
Read message to Stream and forward:
MethodHi again!
I logged into the demo IRIS again, and for some reason, today, I had an "Classpath is incomplete" warning message. The classpath is defined under quickstarts-multimodel-java. Here is the contents of the file :
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="lib/intersystems-jdbc-3.0.0.jar"/>
<classpathentry kind="lib" path="lib/intersystems-xep-3.0.0.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
My steps are as follows:
1. Switch to the system user using psTool
2. Start instance in emergency way
3. Journal restore
4. Stop instance
A dialog box appears:
.png)
The parameter “quielty” seems to have no effect in the windows environment
Is there any non-interactive way to close the instance?
See Part 1 here.
Part 2: Index Handling
Now you have a good idea of what kind of indices you need for your class and how to define them. Next, how do you handle them?
Query Plan
(REMEMBER: Like any modifications to a class, adding indices in a live system has its risks – if users are accessing or updating data while an index is populated, they may encounter empty or incorrect query results, or even corrupt the indices that are being built.
Hi,
I have a bit of code that does a find and replace on a "template" and inserts additional content. For example it replaces the @DATA@ with an html table:
<html>
<body>
<div id="data">@DATA@</div>
</body>
</html>
Currently doing this with the $replace function:
Set text=$replace(text, "@DATA@", data)
The problem is the "data" is now too big for a %String (yes even with large strings) so will switch to use a stream instead.
Is there an equivalent to $replace that works on a stream?If not, how would I best implement this sort of find/replace functionality in cache object script?
Hi, we have mirrored databases, now we have three nodes. Primary, backup, async. They are sync by journals and with some TB each node (expensive storage).
I would like to have a scenario where the two nodes (Primary and backup) have the same amount of messages (purge task of x days) , both as failover, but the asynchronous node should have more messaging, as much as the storage allows us. We want to use this node so provider can give support(search old messages), but not have databases in production that are so large that they are hardly consulted.
Any ideas?
Thanks in advance!
We are getting CoClass not available [80040111] when using %Net.SSH.Session. Does anyone know if there is a security setting that would disable this object?
Any help would be greatly appreciated.
Dear All,
I'm looping through a list with characters (Parenthesis, square brackets etc) and I wish to remove these from the list.
The for loop and IF logic are effectively removing these items from a list.
However the variable I use for the maximum number of loops carries on beyond the number of items of the list after removal.
In the output value for these I get the integer of the for loop instead of a null for the empty list fields.
I can see in the documentation that the end variable is not editable once the loop is started.
I looked at quitting out of the loop if the list value returned is
I have just started to experiment with Using IRIS in Docker.
My first objective was to be able to enable global persistence within a Docker container. Using the following command I have managed to achieve this:
docker run --detach --publish 52773:52773 --volume /data/dur:/dur --env ISC_DATA_DIRECTORY=/dur/iconfig --name iris21 store/intersystems/iris-community:2020.1.0.199.0
Within this container, I have created a simple global:
for i=1:1:10 set ^tmp(i)=""
I then stopped and removed the container. On reloading and restarting the container the global has persisted.
However, I have just discovered
Hi Developers!
The second InterSystems Online Programming Contest is over. Thank you all for participating in our IRIS Competition!
As a result - 7 great apps! And now it's time to announce the winners!
objectscript-json-patch

An implementation of JSON-Patch in ObjectScript.
Why you should use JSON-Patch
JSON-Patch (RFC6902) is a standard format that allows you to update a JSON document by sending the changes rather than the whole document. JSON Patch plays well with the HTTP PATCH verb (method) and REST style programming.
Install
With zpm :
USER>zpm
zpm:USER>install objectscript-json-patch
How-To use it
Use it with this call :
Do ##class(Grongier.JSON.Utils).Patch(tDoc,tPatch)
Where :
- tDoc is a %DynamicObject (JSON)
- tPatch is a %DynamicArray of the patches (the JSON Patch).
The result will be tDoc p
Rather than doing a PnR I can register documents in the XDS.b Registry and store the data elsewhere, such as in the file system. Upon retrieval, however, how can I fetch it from a non-standard location? For example, a progress note whose body is stored in a SDA3 streamlet?
Hi Developers!
We are going to establish a series of InterSystems IRIS Online Programming contests this year.
In March we started with ObjectScript CLI and here is the schedule of topics for the next few months:
- April - InterSystems IRIS with REST API
- May - InterSystems IRIS Native API application: use Python, JS, .NET, Java native APIs in your application to use IRIS
- June-July - InterSystems IRIS AI/ML solutions. IntegratedML as a bonus
- August - InterSystems IRIS for Health FHIR application
- September - InterSystems IRIS Full-stack application: IRIS as a server and UI on any framework and any form: and web, desktop, mobile UI
- October - Interoperability solutions for InterSystems IRIS and InterSystems IRIS for Health
- November - Analytics Solution using InterSystems IRIS
- December - Multi-model solution using InterSystems IRIS
All applications should be runnable with InterSystems IRIS in a docker container.
Hi
Sometimes I search mesage with inappropriate sql, It caused query hanged long time.
So Is it have way to find these hanged query and kill it?
Tks.
Every time I click Save on System > Configuration > Memory and Startup page, I get "ERROR #5005: Cannot open file '/var/cache/cache.cpf_XXX' " error message, where XXX is a random number. This problem appeared some time ago without any clear reason. All file access right are seems OK.
Any ideas?
Hi,
Would appreciate some guidance on this. I am creating a transform to replace values using a functionset. But for some reason the values arent getting replaced. What I want to do is to replace if the observation value [For Eg: if Migraine should replace with M1]
<assign value='##class(ClassName.FunctionSet).illnessConv(source.{OBX():ObservationValue})' property='target.{OBX():ObservationValue}' action='set' />
My function set class is as below:
ClassMethod illnesConv(observationValue As %String) As %String [ Final ]
{
set ret = ""
set ^TEST("observation") = observationValue
if observationValue =
I am using studio 2015 version which does not have dynamic objects and I need to read xml and convert that to a json I have managed to come close to json string but with little difficulties .I need to be able to identify the root element and specify where to put braces between objects anyone with any idea is welcome he is my code so far
ClassMethod WriteNodes(myfile As %String = "C:\Testdata\data.xml")
{
set status=##class(%XML.TextReader).ParseFile(myfile,.textreader)
if $$$ISERR(status)
{
do $System.Status.DisplayError(status)
quit
}
setHello.
I want to know how can I convert XML String intro a %SerialObject.
This is an example:
<Body>
<RESULT>
<SUCCESS>TRUE</SUCCESS>
<LIST>
<ID>11111</ID>
<NAME>one</NAME>
</LIST>
<LIST>
<ID>22222</ID>
<NAME>two</NAME>
</LIST>
</RESULT>
</Body>
</Envelope>
And this are the %SerialObject classes I have created:
{
Property Body As test.Body;
}
{
Property
Hi Developers,
Enjoy watching the new video on InterSystems Developers YouTube:
⏯ Developing Progressive Web Apps
I am trying to install IAM in my local and I downloaded IAM-0.34-1-1.tar.gz and extracted. I went to the location where iam_image.tar is available and run below command in the command prompt.
C:\ESB\HC\IAM-0.34-1-1.tar\IAM-0.34-1-1\IAM>docker load -i iam_image.tar
unsupported os linux
Getting unsupported os Linux issue. Kindly let me know if anyone had this issue. Thanks!
Keywords: Deep Learning, Grad-CAM, X-Ray, Covid-19, HealthShare, IRIS
Purpose
Over the Easter Weekend I touched on some deep learning classifier for Covid-19 Lungs. The demo result seems fine, seemingly matching some academic research publications around that time on this topic. But is it really "fine "?
Recently I happened to listen to an online lunch webinar on "Explainability in Machine Learning", and Don talked about this classification result at the end of his talk:

The above figure is also presented in this research paper: “Why Should I Trust You?” Explaining the Predictions of Any
(We are in contact with IS support for this problem but I would like to ask Community too, perhaps somebody experienced this problem in the past)
Hello Community,
we need your help with Cache 2017.2 freezing on Linux machine.
Since we moved our primary production Cache from Windows to Linux in the begging of this year, we have experienced system freezing twice. Yesterday without any good reason Cache stopped to respond with the log shown below.
Questions:
- Any idea what could cause WRTDMN freezing?
- What actions it makes sense to take in order to have enough info when the system freezes next time.
Hi -- at a customer site we have 8 Access Gateways, with a couple of different load balancers that decide which projects go to which subset of AGs.
We're about to go live with a project that uses a subscription, and we have that subscription pointing to one of the AGs. What if that AG goes down? The project is dead until the AG is back up. The subscription forces us to pick an AG that's registered in the Gateway Registry -- I don't see a way to get a cluster or load balancer address in there.
Has anyone found a way around this?
I'm wondering if anybody has done an implementation of the https://www.shibboleth.net/products/service-provider/ interface in Caché / IRIS to have a application running in Caché / IRIS be acception the shibboleth tokens and data as usage credentials.
Does anyone use EnsLib.ITK.DTS.Framework.Operation.DTSTransferFile ? and how id you manage the transition to MESH?
I just noticed this PR from 2011
which led me to this class EnsLib.ITK.DTS.Framework.Operation.DTSTransferFile
Given this was 2011, and DTS (now called MESH) is widely used by GP practices , I'm hoping someone in the community used this class?
If so - how did you manage the transition to MESH in Jan-2017?
Notes:
Hi Team,
We weren't able to start the InterSystems cache server. I attached error screenshot and console log details on below.
.png)
Console log error:
Retry CLNDMN job start after timeout with last job error = <UNKNOWN ERROR>.
JOBTRACE: Create job indirect, rtnref = START^CLNDMN.
JOBTRACE: Create job by control, rtnref = START^CLNDMN, pid = 6944.
JOBTRACE: Timed out waiting for child (6944) to appear in PIDTAB.
Error: ERROR #5001: Cannot start CLNDMN job - Shutting down the system
Please guide me, how we resolve this issue.
Thanks & Regards,
Ponnumani G.

