Question Julian Matthews · Jul 16 Orphan Message Cleanup Approaches 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. #Databases #HL7 #Namespace #Caché #Ensemble 2 10 0 152
Question Julian Matthews · Apr 18 Does Embedded SQL support Table Hints? 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? #SQL #Caché #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 4 0 108
Question Julian Matthews · Apr 8 Sharing lookup tables between namespaces 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. #Mapping #Namespace #Caché #Ensemble #InterSystems IRIS for Health 0 4 0 183
Question Julian Matthews · Dec 21, 2023 Is it possible Triggering services/processes to run without a separate task? 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. #InterSystems IRIS for Health 0 8 0 383
Question Julian Matthews · Jun 26, 2023 Returning a DICOM Worklist using a non-DICOM external data source Hi everyone. Has anyone here had any luck with receiving a DICOM C-FIND-RQ and returning a worklist using data gathered from a non-DICOM source (for example, an external SQL query) and would be able to share how they achieved this? #InterSystems IRIS 0 2 0 164
Discussion Julian Matthews · Mar 23, 2023 A Word of Warning - Removing Default External Language Server Settings 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. #InterSystems IRIS 3 1 0 265
Article Julian Matthews · Mar 17, 2023 7m read Tutorial - Creating a HL7 TCP Operation for Granular Error Handling 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. #Business Operation #HL7 #SQL #Tutorial #Caché #Ensemble #InterSystems IRIS for Health 9 2 1 689
Question Julian Matthews · Jan 16, 2023 Including SQL Tables when deploying between productions 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? #ObjectScript #SQL #Caché #Ensemble 0 2 0 160
Question Julian Matthews · Oct 25, 2022 Extending EnsLib.HL7.Operation.TCPOperation for custom error handling 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: #HL7 #ObjectScript #InterSystems IRIS 0 1 0 254
Question Julian Matthews · Sep 28, 2022 Is a nested ACK on EnsLib.HL7.Operation.HTTPOperation response expected 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|1MSA|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. #HL7 #Ensemble 0 1 0 160
Question Julian Matthews · Sep 16, 2022 Encoding Base64 from a Stream - Chunk Sizes 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). #InterSystems IRIS for Health 0 4 0 1.4K
Question Julian Matthews · Jun 10, 2022 Do messages created within objectscript processes get picked up by production purges. Hi all. I have a transform that I am calling from within an objectscript process, and I need to pass it a few values. I have in the past done this using the aux property, however I have got away with only needing to pass in a single value, so I have not had to worry about passing in anything other than a string container. #DTL #Ensemble 0 2 0 276
Question Julian Matthews · Apr 1, 2022 Issues with Character Encoding when viewing messages 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" #HL7 #Management Portal #Ensemble 0 6 0 705
Question Julian Matthews · Nov 3, 2021 Reformatting ObjectScript in VSCode 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. #ObjectScript #VSCode 2 20 0 702
Question Julian Matthews · Sep 17, 2021 Use of environment info to control HL7 transformations 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? #HL7 #HealthShare 0 2 0 163
Article Julian Matthews · Jul 21, 2021 4m read Splitting ORU Messages using ObjectScript and DTL 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. #Best Practices #DTL #HL7 #ObjectScript #Caché #Ensemble 12 1 1 1.1K
Article Julian Matthews · Apr 14, 2021 3m read Backup Freeze/Thaw batch script pitfalls for VMWare (and solutions) 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. #Backup #HealthShare #InterSystems IRIS for Health 2 2 0 1.1K
Question Julian Matthews · Apr 9, 2021 Help with VSS backups - Freeze/Thaw control 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? #Backup #InterSystems IRIS 0 1 0 462
Question Julian Matthews · Apr 1, 2021 Syntax for datetime conversions from UTC 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. #Ensemble 0 2 0 443
Question Julian Matthews · Mar 17, 2021 Saving a file character stream to a UNC path not reporting a failure to save the file 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? #ObjectScript #Caché #InterSystems IRIS 0 3 0 329