New
Question Julian Matthews · Feb 10

Hey everyone.

I have a web service which is receiving XML as a stream, and I'm intending to then correlate the stream into an object. Unfortunately I am hitting a road block where the sender places a large chunk of the XML within a cdata block which is then causing the correlate of %XML.Reader to not work.

The structure of my xml is along the lines of:

<abc><def>010203</def><ghi>040506</ghi><jkl><mno><pqr>070809</pqr><stu>101112</stu></mno></jkl></abc>
5
0 66
Question Julian Matthews · Dec 31, 2025

Hey everyone.

I have been taking a look at the External Language Server functionality to hook into some Dotnet functions, and I am hitting a bit of a wall.

Based on the example in the documentation here I can get the same result doing:

ENV>Set netGate = $System.external.getDotNetGateway()
ENV>Set netProxy=netGate.new("System.DateTime",0)
ENV>Write netProxy.Now,!
2025-12-3114:37:58.6022705

However, if I then try another system class, I get an error:

6
0 81
Question Julian Matthews · Dec 5, 2025

Hey everyone.

As part of an ongoing mission to track down orphaned HL7 Messages in our integration engine, I have been digging into our environment to track down the causes.

Having looked at various posts here (including one of my own) there are a few scenarios that can create orphaned messages resulting in excessive disk space usage. These scenarios are generally:

  1. Purging an environment with the option "Bodies Too" deselected
  2. Code creating/saving a Message but then not sending it
  3. BPL errors similar to 2, or a scenario where the response to a Call component is not set.
2
0 87
Question Julian Matthews · Apr 11, 2025

Hey everyone.

I'm currently looking at a process where we're utilising the Class Ens.StreamContainer, and was looking to do some deletions outside of any purge routines.

Having been burned before, I wanted to make sure that deleting the container also deletes the contents within.

From looking in the class, the  %OnDelete ClassMethod appears to be removing an index from a search table and nothing more.

Am I looking in the right place, or is there a extended class for Ens.StreamContainer that does in fact delete the %Stream.Object
contained within the Ens.StreamContainer?

2
0 150
Question Julian Matthews · Jul 16, 2024

Hi all.

Recently, I have noticed Scott Roth's mission to resolve issues with Orphaned messages with a lot of focus on prevention, and I envy that level of dedication.

Not wanting to be left out, this has sparked an interest in checking my environments for orphaned messages. Amongst a few different posts on the subject, I came across this post from Suriya Murugan in 2016 that included an interesting class in a Github Gist that seems to be built to do a deep dive into the identification and cleanup of Orphaned Messages.

10
0 409
Question Julian Matthews · Apr 18, 2024

Hi everyone.

I have a function that may end up being called from a number of transformations at the same time, and within the function there's some Embedded SQL to first check if a local table has an entry, and then adds the entry if it doesn't exist.

To prevent a race condition where the function is called by two transformations and they both end up attempting to insert the same value, I'm looking to use the table hint "WITH TABLOCK" on the insert, but this seems to be failing the syntax checks within vscode.

Are table hints supported with embedded sql?

4
0 189
Question Julian Matthews · Apr 8, 2024

Hi everyone.

Is there a sensible approach to having a lookup table in Namespace A, and then accessing this from Namespaces B, C, D (etc)?

I'm trying to avoid creating a Global mapping of the lookup table global (^Ens.LookupTable) as I fear that it would then link all other lookups in that global and lead to some unexpected behaviour, but would be open to trying something in this realm if it's the best option.

Another approach I have considered is creating a custom lookup function that is run from the secondary namespaces that does some namespace hopping, but it feels messy. Something like:

4
0 414
Question Julian Matthews · Dec 21, 2023

Hi everyone.

I have a few processes where I rely on them being triggered by a schedule to run, and in the past I have relied on the following setup:

The Scheduled Task is a custom class that runs a minimal amount of code to simply create and send the specified service an Ens.Request, and equally the Service is also a custom class that simply passes the Ens.Request to the Process for it to kick the process off.

8
0 656
Discussion Julian Matthews · Mar 23, 2023

Hi everyone!

If you are working with IRIS 2021+ and you remove all of the built in entries for External Language Servers, there is an unexpected consequence that may prevent you from running an installer to upgrade your version of IRIS. This does appear to be a bug which has been raised with WRC, however there are some people that may have recently removed these settings and then will soon be upgrading their environment and could face this same issue.

1
0 329
Article Julian Matthews · Mar 17, 2023 7m read

Introduction

Say you have a receiving system that accepts HL7 and provides error messages in field ERR:3.9 in the ACK it returns. You require a different reply code action depending on the error message, however the Reply Code Actions settings for the operation do not provide this level of granularity. One option could be to create a process that takes the ACK and then completes the action you were expecting, however things can get a bit messy if the action is to retry the message, especially when trying to view a message trace.

2
1 901
Question Julian Matthews · Jan 16, 2023

Hi everyone.

I have a use case where I'm using embedded SQL within a Business Process to interact with a SQL table. However, when it comes to deployment into our production, the table wont form part of the deployment package created from the production.

Beyond manually creating the table on the production system, is there a standard way of ensuring that a table needed for a class is created during deployment?

2
0 243
Question Julian Matthews · Oct 25, 2022

Hi all.

I have a scenario where I am receiving NACKs and I'd like to adjust the error handing of the operation based on the content of the NACK.

For example, I could receive the following and want to move onto the next message:

MSH| ^~\&|||||20221025083135.489+0100||ACK ^A02^ACK|9271|D|2.5.1
MSA|AE|1664378390234
ERR|||207 ^Application internal error ^HL70357^^^^^^Cannot transfer patient, encounter is cancelled.|E

However, I could also receive the following and want to keep retrying:

1
0 425
Question Julian Matthews · Sep 28, 2022

Hi all.

I have setup a HL7 Operation using the HTTP adapter, and I'm getting what seems to me as an unusual response. When sending a sample message to the operation, I am getting a nested ACK. For example:

MSH|^~\&|||xxx|xxx|202209230806||ACK^HTTP^200|00|D|2.1|1
MSA|AA|RWSD7V5iuEC5F6zscDWz|HTTP ACK 'HTTP/1.1 200 OK' : MSH|^~\&|yyy|yyyy|xxx|xxx|20220923080633||ACK^A01|1663916793965||2.3||||||
MSA|CR|RWSD7V5iuEC5F6zscDWz|Error Message Goes Here. 

The adapter is spotting the positive ACK in the first part of the message, but the second part is the actual response I need the adapter to be evaluating.

1
0 227
Question Julian Matthews · Sep 16, 2022

Hi all.

I'm currently looking at a use case where I need to take a Stream, and then encode the contents as a Base64 Stream. This is currently achieved with a snippet of code that has previously been placed in multiple classes within this particular environment, and relied on the dotnet gateway (which suffers with a bug in 2022.1, corrected 2022.1.1).

9
1 2236
Question Julian Matthews · Apr 1, 2022

Hi everyone.

I was wondering how people manage viewing messages that use a character encoding incompatible with the Management Portals use of UTF-8.

For example, a message that looks like this in Windows-1252/Latin1:

Will display as this under the message "Full Contents"

and this under the "Raw Contents"

*EDIT*

I tripped myself up early on, but this covers how I went wrong - https://www.i18nqa.com/debug/table-iso8859-1-vs-windows-1252.html

6
0 1105
Question Julian Matthews · Nov 3, 2021

Hey everyone.

I was wondering if anyone had come across a way of reformatting ObjectScript within VSCode.

I have the various Intersystems Extensions installed (InterSystems Language Pack,  InterSystems ObjectScript,  InterSystems ObjectScript Extension Pack,  InterSystems Server Manager) but a formatter does not seem to be something included within this variety of extensions.

20
0 1111
Question Julian Matthews · Sep 17, 2021

Hey everyone.

I was curious if anyone had any success/tips with regards to using a global or a system parameter/property to control the behavior of a transform or process/operation.

Is there a parameter I can currently reference from the system that can be used for an if/else, or am I best off creating a simple Global and setting it according to the environment I am in?

2
0 211
Article Julian Matthews · Jul 21, 2021 4m read

Over the years, I have found myself needing to create multiple HL7 messages based on a single inbound message. Usually these take the form of an order or result from a lab. Each time I have approached it, I have tried to start from scratch under the belief that the previous attempt could have been done better.

Recently, the need arose again and I was able to create a solution that I wasn't ashamed of. My main concern was that I would always either find myself getting buried in a BPL, or use ObjectScript and attempt to edit messages using the SetValueAt Method for the HL7 Message Class.

Problem

1
2 1463
Article Julian Matthews · Apr 14, 2021 3m read

Hey everyone.

I came across some issues when setting up Freeze and Thaw batch scripts for use with VMWare in a Windows ecosystem, and I wanted to share what I found in the hopes it can help others. This was undertaken in an environment using Healthconnect 2019.1.x.

IRIS not up (2)

It seems that the sample script from the documentation in my my case would tell me that the environment was not running (despite it running). To correct this, I provided the filepath to the Mgr location as so:

3
0 1434
Question Julian Matthews · Apr 9, 2021

Hey everyone.

I have been revisiting our backup strategy, and spotted that IRIS supports VSS (Volume Shadow Copy Service) in Windows. This is quite attractive as an approach, as it automatically calls the external freeze and thaw commands.

However when calling these manually, there's quite a few parameters that can be set, and the documentation around VSS only states that the freeze/thaw commands are called.

Is there a way of controlling the parameters used, or at the very least know what the defaults are?

1
0 600
Question Julian Matthews · Apr 1, 2021

Hey everyone.

I'm attempting to convert a date from UTC to my locale, and for some reason I can't seem to get the Ensemble ConvertDateTime Utility Function to detect the timezone to then convert. I'm hoping it's just a syntax issue, and that someone can show me the error of my ways.

2
0 604
Question Julian Matthews · Mar 17, 2021

Hey everyone.

I have a process where I create a new %Stream.FileCharacter object, specify the filename (including it's path), write data to the stream, and then save. However for some reason, if the user account does not have write access to the directory, the %Save method is still returning true even though it was unable to actually write the file to the folder.

The location is a UNC path, and I'm wondering if this is tripping me up?

3
0 449
Article Julian Matthews · Feb 9, 2021 2m read

Hey everyone!

I recently learnt something new while working with WRC on an issue, and I wanted to share with everyone on the off chance it could help someone else.

Scenario:

Files are being inexplicably written to a folder on your server and, due to the number of files in the folder and general system throughput, it is not possible to work through the files to track down the source.

0
0 451
Question Julian Matthews · Nov 11, 2020

Hey everyone.

It seems that my email address being updated with Intersystems has created a new account on here, and when I attempt to login with the old email address it logs into the new account meaning it looks like I have no post history.

Has anyone else faced this and have any advice on how to resolve it or any thoughts on if this is likely to affect other services like Learning and Global Masters?

3
0 180
Question Julian Matthews · Nov 5, 2020

Hey everyone.

I have noticed that my backup mirror is warning that the MirrorDatabaseLatencyTime is having a bad time (time in ms is 3000, and warnvalue is 3000). While I look into what may be causing this latency between the two servers, I was considering if reducing the size of the journal files would improve this value in any way.

My assumption is that reducing the file size would mean that the frequency of the journal files being created would be increased, but the reduced size would mean that the transfer and application of each file would be reduced.

Has anyone had experience in this area?

2
0 900
Question Julian Matthews · Jul 7, 2020

Hey everyone.

I have a use case where I need to write files to a handful of locations, and 2-3 subfolders in each location.

My plan was to extend EnsLib.File.PassthroughOperation and then pass  that operation the file and the subfolder details, and then have an operation per destination.

Has anyone done anything similar and can highlight any pitfalls I may be about to make?

3
0 364
Question Julian Matthews · Apr 27, 2020

Hi all.

A long time ago I enabled Activity Monitoring to be able to save myself headaches in the future when looking at the performance of various message routes through our productions.  It's served it's purpose of answering questions on how many messages we process a week etc but I had not had the chance to really dig down into the stats for specific message types or destinations to pin point issues.

That time has come, as I have an outbound that periodically queues up without much rhyme or reason.

3
0 350