Article Andreas Schneider · Jan 12, 2025 1m read

Hi! I've extended my demo repository, andreas5588/demo-dbs-iris, to make it easy to test the FOREIGN SERVER and FOREIGN TABLE features in IRIS.

To achieve this, I created a namespace called FEDERATION. The idea is as follows:

  1. Set up JDBC connections for each namespace.
  2. Create a FOREIGN SERVER within the FEDERATION namespace for each connection.
  3. Define a FOREIGN TABLE a least for one table based on each foreign server.

The Script:  demo-dbs-iris/src/sql/02_create_foreign_server.sql

IRIS does not support executing SQL statements that combine tables from different namespaces.

3
1 296
Question Yuhong Snyder · Dec 23, 2024

We have a customized doctype with iterated PIDgrp, so I have a rule that needs to evaluate the pv1:3.1 value to decide which operation the HL& message should go, so I debugged the value in the rule and it definitely should go to the when #2 but it just won't.  so did I do anything wrong or it is just the InterSystems doesn't like the iteration value here? I only need to evaluate the first pv1:3.1

4
1 203
Question Hugh Hamilton · Nov 16, 2023

We have a service account that is running queries to pull some data.  It has read only access to the tables, but, unfortunately, the tool is starting a transaction before it reads the database.  The query takes more than 20 minutes (21 - 23 minutes), so we're getting the console message that the transaction is open longer than 20 mins.  Is there a way to prevent a user/service account from being able to start a transaction since it only has read access to all of the tables in the database?

12
0 661
Question Peter O'Halloran · Jan 14, 2025

As part of a migration project from a bunch of java classes to IRIS, we need to maintain a few jar files due to some external dependencies.

The problem I am seeing is that I cannot pass a byte array ( byte[] ) from ObjectScript to the Java Class. I have tried a number of different ways

I have reproduced in a java class and Objectscript class:
Java Class:

package wrc;

public class TestJava {
    
    public static void testByteArr(byte[] keyBytes) {

        System.out.println("keyBytes getClass() = " + keyBytes.getClass() );
        System.out.println("keyBytes toString() = " + keyBytes.
2
0 184
Question Jeffrey Drumm · Nov 21, 2024

I'm attempting to streamline a process for renaming PDF documents received from multiple vendors to conform to a specification provided by an EMR vendor for ingestion. Things like Document ID, Document Type, Date of Service, Account Number, MRN, etc. all must be included in the filename at defined offsets and lengths. Most of the required values can be extracted from the inbound file's name and the few remaining are static values that would be the same (or handled via a lookup table based on source) for all documents.

22
0 341
InterSystems Official Daniel Palevski · Jan 14, 2025

InterSystems has corrected a defect that causes invalid database and journal records to be introduced when using a specific $LIST syntax. The likelihood of encountering this defect is very low but the operational impacts can be significant.

Products Affected

  • InterSystems IRIS® data platform: Versions 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • InterSystems IRIS® for Health: Versions 2023.3, 2024.1.0, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Health Connect: Versions 2023.3.0, 2024.1, 2024.1.1, 2024.1.2, 2024.2, 2024.3
  • HealthShare® Unified Care Record and Suite: Version 2024.
0
0 212
Announcement Irène Mykhailova · Jan 14, 2025

Hello Community !

We are delighted to invite all our customers, partners and community members to participate in the InterSystems Benelux & France Summit 2025! The registration for the Summit 2025 is already open.

This event promises to be an interactive experience highlighting inspiring case studies, technological innovations and roadmaps for the coming year in the fields of healthcare and data platforms. Hands-on demonstrations will also allow you to explore the latest developments in a tangible way.

➡️ InterSystems Benelux & France Summit

🗓 Dates : February 11 - 12, 2025

📍 Place : Hilton Rotterdam | Weena 10 | 3012 CM Rotterdam | Netherlands

Image preview

1
0 238
Question Serena Judge · Jan 14, 2025

I am hoping for some guidance.

I am new to creating a new chart in Trakcare for use with Clinical Viewer.  My organization only has LDAP users, (we don't have the ability to use local users), that dictate what role/group a user is in, they are all the same across our Prod, Test, and Dev environments. 

I need to customize a chart for our end users.  BUT the how-to's all talk about creating a custom role for the new chart, which if I do this I would have to be added to this role/group which could cause issues with my ability to work in Prod and Test.

0
0 146
Question John McBride · Jan 13, 2025

Hi, I'm trying to use the iris python package to create a connection to and Iris Health instance (Docker Container), but getting and error. I can login to the instance using the UI with the same uname/password but unable to create the python connection. Any suggestions?

conn = iris.connect("testserver",52222,"%SYS","username","password")

After executing this I get an exception trap
An error occurred: Invalid Message Count: expected: 1 got: 825110831

1
0 190
Question Marc Mundt · Jun 21, 2016

A customer is using Caché online backups and needs to automatically purge the cbk files with a scheduled task.

This is a wheel has been reinvented uncountable times already and I know somebody out there has a well written, extremely robust version that has already stood the test of time.

Does anyone have a nice routine/class/task for purging old Caché backup files? 

11
1 1823
Question omer · Jan 12, 2025

Hello, 
In short, I am trying to get the Content-Length of my response, 

We have a CSP application, when we get a new request we begin to process it, throughout the app we WRITE to the response in different places, 
now when the response is about to be sent back to the client - we would like to know its Content-Length (in the RESPONSE HEADERS). 
So it comes down to two questions:
1. How can we access the Content-Length of our response?

2. In case we CAN'T - Where in the broker.cls/page/base classes can I observe the moment we actually write the response itself and attach its headers?
Thank you!

1
0 150
Question Jeffrey Drumm · Jan 13, 2025

I'm sure I've seen this issue reported before, but a search hasn't turned it up.

This appears to happen randomly, but once it starts it doesn't seem to stop ... at least for a while. I attempt to compile a class and compilation fails but produces no error explaining why. Here's an example:

The last two compilation errors repeat indefinitely (or at least until I've found and fixed the issue), but I can open the class in Studio, compile, and get the error information in the output panel every time. The compilation qualifiers are the same in both.

1
0 189
Question Steven Henry Suhendra · Jan 13, 2025

Hy Friends,

I have a little problem, I need to diplay the data based on input status (first time and after)

this is the data:

and this what I need to display

the notes become new because it is the first time that the data has been inputed, and it will become old if we have the data before (2nd data, 3rd data  the notes will become old).

I've try to use SubQuery (with LAG Script also) but it doesn't works, because it will give a notes Old even it's a New Data

Does anyone could help me ?

Thank You

Best Regards,

Steven Henry

1
0 100
Question Scott Roth · Apr 11, 2024

I downloaded IAM-3.4.2.0-5604.tar.gz from the Online Distribution site this morning, it the implementation to install it on our Development environment to see if it is a viable solution. Following the instructions, I have ran into an issue trying to make sure I am entering the information into the prompts correctly.

I have IRIS HealthShare Health Connect 2024.1 running locally using a Local Web Server, so when prompted I have entered the IP Address and port 443 is that correct? 

:>iam-setup.sh
Welcome to the InterSystems IRIS and InterSystems API Manager (IAM) setup script.

9
0 318
Question Corentin Blondeau · Dec 17, 2024

Hello
I am trying to work with UDP Connection/Adapter and I get this error.

ERREUR #5002: Erreur Cache: <WRITE>zSend+5^EnsLib.UDP.Common.1

 Here is the method
 

Class TEMPLATE.BO.UDPSend Extends Ens.BusinessOperation
{

Parameter ADAPTER = "EnsLib.UDP.OutboundAdapter";

Property Adapter As EnsLib.UDP.OutboundAdapter;

Method SendData(pInput As Ens.Request, Output pOutput As Ens.Response) As %Status
{
    Try {
        Set status=$$$OK
        Set pOutput=##class(Ens.Response).%New()
        
        Set stream = ##class(%Stream.GlobalCharacter).%New()
        Do stream.

2
0 213
Question Lee Butcher · Dec 3, 2024

I'm attempting to build a fairly complicated object graph, with nested objects and collections, in order to create a FHIR bundle.

In its most basic form there is a <bundle></bundle> element that represents the root, and there can be a number of nested <entry></entry> child elements.

I'm attempting to represent this as such:

class Bundle (%RegisteredObject, %XML.Adaptor)
{
    Property Entries As List Of Entry;
}

The problem is when this is projected it nests each Entry object within an Entries container, which makes sense but I don't want this.

8
0 250
Article Eduard Lebedyuk · May 24, 2024 15m read

If you're running IRIS in a mirrored configuration for HA in GCP, the question of providing a Mirror VIP (Virtual IP) becomes relevant. Virtual IP offers a way for downstream systems to interact with IRIS using one IP address. Even when a failover happens, downstream systems can reconnect to the same IP address and continue working.

The main issue, when deploying to GCP, is that an IRIS VIP has a requirement of IRIS being essentially a network admin, per the docs.

To get HA, IRIS mirror members must be deployed to different availability zones in one subnet (which is possible in GCP as subnets always span the entire region). One of the solutions might be load balancers, but they, of course, cost extra, and you need to administrate them.

In this article, I would like to provide a way to configure a Mirror VIP without using Load Balancers suggested in most other GCP reference architectures.

3
1 670
Question Anthony Master · Dec 18, 2024

References:

ObjectScript always follows strict left-to-right execution of arithmetic operators. 

The && operator evaluates the left operand and returns a value of FALSE (0) if it evaluates to a value of zero.

5
0 241
Question Ashok Kumar T · Jan 8, 2025

I tried executing the SQL JSON_TABLE query with large JSON string(more than 200000 characters) and I got the below error. I'm curious about this under the hood workflow and how does it reach reaches MAXSTRING.

ERROR #5002: ObjectScript error: <MAXSTRING>CompileRtns+295^%occRoutine > ERROR #5030: An error occurred while compiling class '%sqlcq.LEARNING.cls247'

 Thanks!

2
0 141
Question Oleksandr Kyrylov · Jan 8, 2025

Hello, community.

I have a problem with running a SQL query on a linked MySQL table.

The connection works fine, but the following query throws an error:

SELECT   TOP 10 * FROM   linkedinternal_test.persons

 [SQLCODE: <-400>:<Fatal error occurred>]

  [%msg: <Remote JDBC error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '10 T1.PersonID AS C1,T1.LastName AS C2,T1.FirstName AS C3,T1.Address AS C4,T1.Ci' at line 1. >]

 

Linked table class:

/// Generated by the Link Table wizard on 2025-01-08 16:09:03.
6
1 186
Question Colin Brough · Jan 10, 2025

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.

5
0 171