As promised, here is Part 2 of our interview with Russ Leftwich! In this half, Adam Coppola talks with Russ about some of the InterSystems technologies that play a part in the concepts from Part 1, as well as some specific discussions about modern FHIR applications. After the interview with Russ, we were also joined by Jenny Ames to talk about the upcoming FHIR Dev Days. Check it out, and make sure to go subscribe to Data Points!
Hi,
I have a HealthShare HealthConnect operation which uses the EnsLib.HTTP.OutboundAdapter. It is using a custom Operation class to send HTTP Post request. The request data that is sent to the operation and the response back from the operation is not displayed on the visual trace. Is there anyway to display this data in the trace?
.png)
Thank you for your help.
I’m happy to announce that we have published another course to online learning from the InterSystems Change Control catalog! The course is ICC420: Items and ItemSets. To find all available CCR courses online, go to learning.intersystems.com and search for ICC or just click here.
Learn to use the Perforce Details pane of a CCR and additional important concepts related to Items and ItemSets that set the foundation for progressing a Tier 1 or Tier 2 CCR. CCR Transport — Items and ItemSets contains seven videos as well as quick quizzes to verify understanding following each video.
Hi Community!
We're pleased to invite you to the Online Meetup with the Winners of the 2nd IRIS Programming Contest! It's a virtual Meetup with some of the winners of the past InterSystems IRIS Online Programming Contest.
Date & Time: Friday, May 8, 2020 – 11:00 EDT
What awaits you at this virtual Meetup?
- Our winners' bios.
- Short demos on their applications.
- A short interview with all the winners about the past contest. Plans for the next contests.
If two globals have same structure, how to reuse one CacheSQLStorage-based class to read both locations?
Thanks!
Update:
Let's say we have two globals:
^a(1)="dataa1"
^a(2)="dataa2"
and
^b(1)="datab1"
^b(2)="datab2"
i.e. the structure difference is global name only.
I would like to have two classes TableA and TableB both are inherited from TableAB, and TableAB taking global name as a parameter.
As the title mentions, I'm trying to determine how best to handle an issue with nested data. Essentially I have a setting like the following:
Object A has a transient property with an array of Object B. I want to create a level with a list of Object B. I also want this level to contain properties belonging to each object B.
So I have a layout of something like
- Dimension:ObjectBD
- Level: Object B is list
- Object B property 1
- Object B property 2
- Level: Object B is list
Since this is transient I can't use the usual property configuration mentioned in the developer tutorial.
Suppose I have a web application named "/my/api", with a dispatch class configured (a subclass of %CSP.REST), and I want to be able to respond to:
GET /my/api/something/:id
by loading an object with the specified ID and returning it as JSON
GET /my/api/another-thing/data.js
by returning the contents of a file (data.js) in a configured location in the filesystem, ideally based on the "CSP files phsyical path" for /my/api.
Howdy everyone,
I am not a Cache Pro... Just an old hack with an idea to try to help my client.
We are running a medium sized salvage yard with Car-Part's Checkmate vehicle inventory software running Cache. Our part lookups sometimes run 10 seconds or more.
To improve database queries performance I created a 4Gb ram drive out of 16Gb system ram with AMD Radeon RAMDisk utility and have it set to save and auto load its contents upon graceful reboot. Battery backup is also running.
I am importing scriptlink wsdl in the form designer. I get the following error:
Error Importing WSDL. Please validate WSDL address. ERROR #6301: SAX XML Parser Error attribute value expected while processing Annonymous Stream at line 28 offset 73.
Please advise.
Thank you,
Chris Kennedy
Hello,
We would like to know if Ensemble could generate a CADES sign from a string and a certificate.
We have read:
https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=GXM…
So we have seen that we could create a class, to sign a document, and store the sign inside that new class. We have also seen that there are some different algorithms to choose from, like sha1.
In addition we have also consulted the CADES sign definition:
https://tools.ietf.org/html/rfc5126
The use case is to avoid being dependant of an external web service, and be able to generate it.
Hi Developers!
Enjoy watching the new video on InterSystems Developers YouTube and explore the basics of InterSystems Open Exchange Marketplace:
⏯ How to Publish an Application on InterSystems Open Exchange
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).
Hi 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.
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 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.
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).
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.

