Question Colin Brough · Jan 13 DTL Transformation output: maxOccurs bug? We are using a DTL transformation to take HL7 and transform into custom XML (XML is a virtual document, held in an EnsLib.EDI.XML.Document object). The schema specifying the format of the XML says one element should occur no more than 24 times (maxOccurs="24" in the XSD schema). However, the transformation to produce one such element always produces 24 elements, all but the last one blank, when tested stand-alone. #Debugging #DTL #HL7 #XML #Ensemble 0 1 0 44
Question Colin Brough · Jan 10 DTL Transformation output: ordering of XML nodes We are using a DTL transformation to take HL7 and transform into custom XML. But the nodes in the resulting XML are appearing out of sequence - and therefore failing validation against the schema. The XSD schema for the XML looks fine when imported into Ensemble: root node in the XSD looks like this:And shows in Ensemble like this: #Debugging #DTL #HL7 #XML #Ensemble 0 5 0 71
Question Colin Brough · Jan 10 INFO level log entry from routing rule? Is it possible to generate INFO level logging events from within a routing rule?TRACE level events and debugging are easy enough, but we have a case where we have a rule where we want to log messages that are not routed for further processing in the event log as INFO events - in production tracing will be turned off, so TRACE level events won't be visible. #Business Rules #Ensemble 0 5 0 51
Question Colin Brough · Dec 10, 2024 HL7 ORCgrp() to XML subtransform We are building a data transformation from HL7 to custom XML. We've got an XML schema, and are using virtual documents (EnsLib.EDI.XML.Document). We can: #DTL #HL7 #Interoperability #XML #Ensemble #Health Connect 1 2 0 61
Question Colin Brough · Oct 28, 2024 Java gone missing - but only from Ensemble! An interface running on Ensemble generates PDFs by building a command line and invoking c:\InterSystems\Ensemble\fop\fop.bat One day last week the PDF generation stopped working. The output from the .bat script says: #Debugging #Java #Ensemble 0 2 0 81
Question Colin Brough · Sep 27, 2024 Local Ensemble instance clashing with another application's local client We are doing healthcare interface development. Developers have Ensemble installed locally on their laptops - code will be developed locally then deployed to integration, test/UAT and ultimately production servers in due course. One of the other applications we are developing around happens to utilise an Iris desktop client to a remote Iris server. We want to have the application available on the developers laptops alongside the local Ensemble instance. #Debugging #Development Environment #Startup #Tips & Tricks #Ensemble #InterSystems IRIS 0 3 0 72
Question Colin Brough · Aug 30, 2024 Changing a Setting value on a schedule? I can START and STOP a business process via its Schedule setting. Is it possible to change the value of another Setting in an analogous way? I can imagine a SettingSchedule that could look like action:YYYY-MM-DDThh:mm:ss[,action:YYYY-MM-DDThh:mm:ss] But rather than just START or STOP, action could be "SET Setting = value", overriding whatever the normal value is. Is there an existing way of achieving this kind of functionality? #Tips & Tricks #Ensemble 0 4 0 115
Question Colin Brough · Aug 20, 2024 Business Process, pool size and external program call (FOP) via $ZF Question: can a business process with pool size > 1 invoke external programs in parallel via $ZF(-100)? We have a production that takes HL7 (ORU_R01) messages in and produces a PDF from each one for onward transmission to a document store. #Callout #Debugging #ObjectScript #Performance #Ensemble #Caché 2 2 0 72
Question Colin Brough · May 9, 2024 Business Service error handling - exception not visible in Log We have a custom business service that is triggered by a scheduled task. The service queries a table, iterates over the result set and sends a message on to a business process for each result. Happy path functionality is all fine. However, when there is an error detected in the business service code, neither throwing an exception nor returning an error %Status behaves as we'd expect. #Business Service #Debugging #Interoperability #ObjectScript #Testing #Ensemble 0 1 0 110
Question Colin Brough · Apr 8, 2024 ObjectScript inheritance, parameters and settings We are writing a custom Business Operation to interact with a downstream SOAP web-service. Classes for the SOAP operation were originally generated using the SOAP Wizard, then modified. This is functioning OK, but we'd now like to set the ReplyCodeActions setting on the operation and are struggling to make it visible via the management portal. How can we achieve this? The classes are structured like this: #Business Operation #ObjectScript #Caché #Ensemble #InterSystems IRIS 0 1 0 143
Question Colin Brough · Feb 13, 2024 Does GetValueAt on an HL7 message have side-effects? Does the GetValueAt method of an EnsLib.HL7.message object change the contents of the HL7 message? We want to do two things, given an incoming HL7 message, in our production: #Debugging #HL7 #ObjectScript #Caché 0 3 0 322
Question Colin Brough · Nov 21, 2023 Scheduled task or scheduled message to run a BPL How do we trigger a BPL Business Process on a time schedule? We are building a production that takes a steady stream of (HL7) lab results messages, processes them and stores them in a temporary database table. At scheduled points during the day (eg 0800, 1300, 1600) the database is queried and messages sent on to the downstream system. Aiming that the Processes to be implemented in BPL if possible - but we are having trouble triggering code in a BPL as a scheduled job. #Business Process (BPL) #Key Question #ObjectScript #Ensemble 0 12 0 577
Question Colin Brough · Nov 13, 2023 System Default Settings and TestingEnabled / LogGeneralTraceEvents We are successfully using System Default Settings to manage differences in settings across environments where the production and underlying code are otherwise identical. However, the TestingEnabled and LogGeneralTraceEvents settings don't appear to be settable via this mechanism. While we appear to be able to set them on the SDS page, they do not show up as selectable when resetting the settings on the Production Settings tab in the management portal - see screenshots below. #Management Portal #System Administration #Testing #Tips & Tricks #Ensemble 0 3 0 221
Question Colin Brough · Oct 17, 2023 Debugging a SOAP web-client Pointers please for debugging a SOAP web-client. We have several clients in different productions all accessing a web-service. We are trying to add another client in a new production, and its not working. The messages between the relevant Process and the SOAP web-client Operation are the same in the working and the non-working productions. But the web-service is reporting an XML parsing error to the non-working production. Here's the error as reported in the SOAP web-client Operation... #Business Operation #Debugging #SOAP #Studio #Caché #Ensemble 0 3 0 289
Question Colin Brough · Oct 6, 2023 Failed to instantiate WebClient class - SOAP out bound adapter We are trying to call a SOAP web-service from Ensemble, following the documentation here: Creating an Ensemble Web Client | Creating SOAP Services and Web Clients with Ensemble | Caché & Ensemble 2018.1.4 – 2018.1.8 (intersystems.com) #Debugging #SOAP #Ensemble 0 2 0 209
Question Colin Brough · Oct 5, 2023 Routing rule equivalence question Is there a difference in outcome between the two screengrabs below? In both cases, when certain conditions are met, a transformation is called and the output sent on to two targets. In the first case we surmise the transformation is called twice, and the output of the first run sent to the first target, the output of the second run to the second target. In the second case we surmise the transformation is called once, and the output duplicated and sent to the two targets. #Business Rules #Interoperability #Performance #Ensemble 1 2 0 216
Question Colin Brough · Aug 15, 2023 Zen reports documentation or learning material question We need to generate a PDF file from an HL7 message as it passes through an Ensemble production. Looking for examples, tutorials, documentation aligned to our scenario.We are currently using Ensemble (so can't use InterSystems Reports at the moment). Thinking Zen reports...We can get from HL7 to XML OK, following Introduction to InterSystems Health Connect - YouTube (see c.1:11:00-1:13:00) #HL7 #ZEN #Ensemble #Health Connect #HealthShare 1 2 0 160
Question Colin Brough · Aug 9, 2023 Reports roadmap We are about to embark on a development where we'll be taking HL7 messages and generating PDF reports from them. We are wanting to future proof our development efforts within the constraints of our currently deployed platform and future upgrade options. We are currently running on Ensemble 2018, though an upgrade to Iris is anticipated - at some indeterminate point in the future. We are aware of Zen Reports and InterSystems Reports (Logi) as technology options, but are also unclear on some details. A roadmap and guidance from those who've done this kind of thing before would be great! #InterSystems Reports (Logi) #ZEN #Ensemble #InterSystems IRIS #InterSystems IRIS for Health 0 3 0 169
Question Colin Brough · Jun 6, 2023 Troubleshooting an Ensemble instance One of our development Ensemble instances is misbehaving. We suspect we'll just need to reinstall it - which would be a hassle. Before we do, we wanted to check we weren't missing some kind of easy fix. The symptoms we are seeing: #Debugging #DTL #Caché #Ensemble 0 12 0 464
Question Colin Brough · May 29, 2023 Handling Production class in source control Looking for advice on best practise (or at least reasonable approaches) for handling the Production class when utilising source control. (And perhaps wider advice around deployment.) #Deployment #Source Control #Ensemble 1 5 1 242