Question Jeffrey Drumm · May 5, 2023 Ens.Util.Statistics: LastActivity Value for Business Host I'm using the EnumerateJobStatus query of class Ens.Util.Statistics to obtain the LastActivity value of a Business Host. I would expect that this would return the timestamp of the last message received by the BH, understanding that any connect/disconnect activity would reset that timer. However, the time returned appears to actually be the time at which Ens.MonitorService generated the alert and is not directly related to anything that happened in the BH itself. #Interoperability #Monitoring #Ensemble #InterSystems IRIS 0 1 0 112
Question Jeffrey Drumm · Apr 16, 2023 Dissecting an OREF When an object is created in memory, the object reference (OREF) is represented as a string value when displayed with the Write command: #Object Data Model #ObjectScript #InterSystems IRIS 0 14 1 355
Question Jeffrey Drumm · Feb 10, 2023 IRIS OS Authentication on Ubuntu 20.04/22.04 I've been trying for a while now to get OS authentication working on IRIS running on Ubuntu 20.04 and subsequently 22.04. I have the following authentication methods enabled for %Service_Terminal: Operating System Password Operating System Delegated Authorization And i have these options selected in Authentication/Web Session Options: #Authentication #Security #Terminal #Ubuntu #InterSystems IRIS 0 2 0 131
Question Jeffrey Drumm · Jun 7, 2022 Troubleshooting VS Code Connection Issues I'm attempting to configure VS Code's InterSystems Server Manager to establish a connection to an IRIS for Health server. It has a standalone CSP gateway running on an Apache server with TLS enabled. The port for all IRIS api and browser traffic is 443. I've configured the webServer section's host, port, and variations on pathPrefix (including no pathPrefix entry), and have the correct user ID set. The password is stored in the server keychain. The connection simply fails with "Server could not be reached." Nothing in the Output or Problems tabs. #VSCode 3 5 1 984
Question Jeffrey Drumm · Feb 8, 2022 VS Code: Moving Classes Between Namespaces Is there a straightforward workflow in VS Code for moving a class from one namespace to another on the same server? With Caché/IRIS Studio, it was a (sort of) simple export/change namespace in file menu/import operation. But in VS Code it's not obvious (to me, at least). I can add multiple namespaces to a workspace, but when using isfs:// paths I see only a "Download" option and no "Upload" or "Import/Compile." When I'm navigating the local file tree, I see Import options, but no way to select the namespace into which I want to import. #ObjectScript #InterSystems IRIS #VSCode 1 8 0 1.1K
Question Jeffrey Drumm · Dec 20, 2021 How to Determine Where a Mapped Package is Located Programmatically? I've found a couple of methods that will tell me whether a package is mapped from another database, but not which database. Is there such a method/routine? #Mapping #ObjectScript #InterSystems IRIS 0 2 0 235
Question Jeffrey Drumm · Nov 21, 2021 Private Web Server: FQDN vs. Host name Issue Running HealthConnect 2021.1 on RedHat Linux 8.4. I've configured IRIS/HealthConnect with an external web server to support TLS encryption. It's installed on the same server as IRIS, but is a different instance and version of Apache httpd. That all works as expected. I would also like to keep the "private" web server available, but I'm having an issue with using the fully-qualified domain name in the URL vs. just the hostname itself. If I use http://servername:52773/csp/sys/UtilHome.csp to log on, all is well. #Web Gateway #InterSystems IRIS 1 7 1 312
Question Jeffrey Drumm · Nov 5, 2021 Interrogate Connection Status of HealthConnect/Interoperability Service EnsLib.HL7.Adapter.TCPInboundAdapter has a Connected property that I assume is set to the state of the connection session with the remote host; i.e. 1 when Connected, 0 when not. I'm assuming this is the property the Production Configuration web page uses to display the state of the service (green for Connected, red for not Connected, etc.). How can I interrogate the value of that property of an active service, via a method running in separate process? (It really seems like I should know this, but I'm just not finding the right magical incantation) #Ensemble #HealthShare #InterSystems IRIS for Health 0 3 0 125
Question Jeffrey Drumm · Jun 2, 2021 Query SearchTable Definitions? I've poked through the class documentation and globals and I can't seem to find what I'm looking for, namely a mechanism that will give me the PropName key and value for each of the Items in an EnsLib.HL7.SearchTable definition. Is there some sort of query that will turn the list of Items in the XData SearchSpec section into a key/value pair of some sort? For example: #HealthShare 0 1 0 192
Question Jeffrey Drumm · Jun 1, 2021 Storing a %DynamicObject I've been tasked with an interface that needs to supply some additional metadata for the indexing of HL7v2 messages. After toying with a couple of ideas, I thought that it would be useful to subclass EnsLib.HL7.Message, add a %DynamicObject property, and store the metadata in it (it ends up getting sent to the target in JSON form anyway). And, well, it seems to work just fine ... so far. #ObjectScript #InterSystems IRIS for Health 0 4 0 660
Question Jeffrey Drumm · Oct 23, 2020 Returning a Stream in an ObjectScript Custom SQL Function I'm attempting to extract some very large messages from Interoperability/Ensemble, and I'm just not getting something right ... The closest I've come to getting something useful is this: #Ensemble #HealthShare #InterSystems IRIS for Health 0 15 0 643
Question Jeffrey Drumm · Jan 7, 2020 IRIS Community Edition License Count (incl. IRIS for Health CE) I'm currently working with a developer to add IRIS/Caché functionality to his HL7 analysis tool that would allow its users to extract messages directly from the Ensemble message store. IRIS for Health Community Edition has been a great aid in debugging this, but I keep banging into the 5 connection license limit with Studio, the Management Portal, an IRIS terminal session and a client database connection using either ODBC or ADO.NET. #Development Environment #InterSystems IRIS #InterSystems IRIS for Health 4 1 1 544
Question Jeffrey Drumm · Jan 6, 2020 Querying EnsLib.HL7.Message via ADO/ODBC While I can query the HL7 message class EnsLib.HL7.Message (EnsLib_HL7.Message for SQL) to my heart's content in the SQL Shell or the Management Portal's SQL page, I can't seem to SELECT anything other than ID/%Id from an ADO/ODBC client. Properties such as TimeCreated, Name, MessageTypeCategory, etc. all seem to prevent the query from ever completing EXCEPT when I provide the ID as part of the WHERE criteria. This works fine in the Management Portal and Shell: #.NET #ODBC #InterSystems IRIS for Health 0 7 0 384
Question Jeffrey Drumm · Jan 4, 2020 Set SQL Error In ObjectScript SqlProc I've writing a short classmethod that extracts an HL7 message from EnsLib.HL7.Message by ID and returns it as a stream. It's to be called as a stored procedure via ODBC (or ADO.NET) to fetch messages into an application. I'm not using an SQL query in the classmethod itself, but it will be called as part of an SQL query via ODBC, but I can't figure out how to set a custom SQLCODE and error text from within the classmethod that propagates back to the external application. I thought %sqlcontext would be useful for this, but it doesn't appear to do anything. Here's the class: #Caché #InterSystems IRIS 1 13 1 364
Question Jeffrey Drumm · Sep 17, 2019 Mirror Backup vs. R/O Database Behavior - Scheduled Task for HL7 Message Dumps I've created a scheduled task that dumps HL7 messages to flat files. It uses the OutputToLibraryStream() method of EnsLib.HL7.Message. I'd like to be able to run it on a mirror member host whether it's primary or backup.When run against a database that's mounted read-only, it works fine. However, when I attempt to run it against a mirror backup database, I get the following error:#5002: Cache error: <PROTECT>%LoadData+7^EnsLib.HL7.Message.1Tracing that back to the source, I find: #Failover #Mirroring #ObjectScript #Ensemble 0 9 0 371
Question Jeffrey Drumm · Jul 18, 2019 GBLOCKCOPY Batch Configuration - Where is it stored? I need to copy a bunch of globals from some crufty old databases to spanking clean brand new ones. GBLOCKCOPY has this cool feature that lets you create a batch of global names to copy and save the list in a batch. You can then execute the batch and go take a nap.I like naps.I need to do this for a number of old-new database pairs, but it's the same global names every time. Is there a way to export the batch configuration created the first time and import it to another environment/namespace? These databases will be spread across multiple hosts.Thanks! #Databases #Globals #System Administration #Caché 0 2 0 282
Question Jeffrey Drumm · Jan 22, 2018 Get Message Header ID in Business Process I'm looking for a way to get the message header ID for the current message in a Request to a Business Process.I've located some code that gives me what I need, but it runs the risk of violating the "abstraction layer" ISC has in place around such things. And while I very much appreciate their efforts at keeping things simple for me ... well, sometimes you just have to dig through the guts to get what you want.Is there a documented, deprecation-resistant method for getting at %Ensemble("%Process").%PrimaryRequestHeader.%Id() from within a BP? #Business Process (BPL) #ObjectScript #Ensemble 0 6 0 829
Question Jeffrey Drumm · Jan 8, 2018 EnsLib.EDI.XML.Document from Caché %Registered Class? I've inherited a business service that takes a large XML document with repeating elements, extracts them via %XML.Reader and chunks them into separate persistent objects for delivery to a EnsLib.MsgRouter.RoutingEngine-based routing rule. Unfortunately, the lack of GetValueAt() for the message's class leaves me without much in the way of complex decision-making options. #Business Rules #Ensemble 0 3 0 604
Question Jeffrey Drumm · Dec 30, 2017 Ensemble Message Suspense/Work Queue? Synopsis: I need to "sideline" messages for subsequent selection and data enrichment while maintaining manageability within the Ensemble framework. #Ensemble #Business Process (BPL) #HL7 1 8 0 1.1K
Question Jeffrey Drumm · Jun 26, 2017 Answers to Deleted Posts I noticed this morning that a post to which I had responded was apparently deleted by the original poster. In most other discussion fora, once a post has any sort of followup, only a moderator may delete the thread.Nothing significant was lost in my followup, but I'm concerned that good information may, at some point, be lost due to the OP changing their mind about the original topic.Thoughts? Comments? #DC Feedback 0 5 0 189