Question Nezla · Mar 19, 2023

Hi Guys,

I've a task that runs every 10 mins executing the below code, but the issue is that it slowing the system down affecting other processes, so is there a way to maybe spread the execution of this so it doesn't slow down the system? I've tried spreading these fucntion in two different tasks but doesn't seem to change much.

Method OnTask() As %Status
{  
##class(MSDS.Common.ConditionMonitoring).GetKitList("20779")
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("21822")
J ##class(MSDS.Common.ConditionMonitoring).GetKitList("21147")
J

4
0 399
Announcement Jacquie Clermont · Mar 29, 2023

 Hi Community:

We've just posted session titles to our Global Summit website -- there are 65, and more are being planned. 

I've been working on Global Summit now for seven years, and I think this year's lineup is the best yet -- mostly because we asked users like you for topic suggestions.

I'm cutting and pasting from my master list 


1.    Adaptive Analytics in Action: Two Customer Use Cases
2.    Application of Design Thinking
3.    Artificial Intelligence Healthcare Solutions: Time to Take Action
4.    Best Practices for InterSystems IRIS System Performance in the Cloud
5.

0
0 312
Question Michoel Reach · Mar 28, 2023

In the documentation  Data Types | Caché SQL Reference | Caché & Ensemble 2018.1.4 – 2018.1.8 (intersystems.com)

it says that "by default, Caché establishes a system-wide ODBC VARCHAR maximum length of 4096; this ODBC maximum length is configurable"

Per instructions, I went to SMP -> System -> Configuration -> General SQL Settings, where most of the fields from  $SYSTEM.SQL.CurrentSettings()

appear. That one does not.

How does one change it, and can it be increased?

Thanks!

[Cross-posted from https://groups.google.com/g/intersystems-public-cache/c/eRFeORb_sb0]

2
0 441
Announcement Michelle Spisak · Mar 29, 2023

Just a few days left to tell us how you like to learn! 

Want a say in how we structure our learning content? Take this brief survey by March 31, and we’ll use your feedback to improve your learning experience.

  • Do you like to watch how-to videos? 
  • Hate videos, but love the doc?
  • Don't read the doc, but want more in-person classroom learning?

Let us know in this 3-min survey!

 

0
0 144
Question Robert Hildebrand · Mar 27, 2023

Hi,

we get HL7 MDM messages with embedded PDF documents that are Base64 encoded. When the embedded PDF document exceeds the size of 3.6 MB the following error occurs:

FEHLER <Ens>ErrBPTerminated: BP Main HL7 MDM # wird wegen folgenden Fehlers beendet: FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1
> FEHLER #5002: Caché-Fehler: <MAXSTRING>zgetAtFromArray+46^EnsLib.HL7.Segment.1

In other posts I read that you can avoid these errors, if you use the data type %VarString instead of normal %String.

3
0 435
Question Kalle Päplow · Mar 29, 2023

Hello,

I have a question regarding the Intersystems Caché Database and its jdbc driver. I need to set the connection timeout for the database, but I couldn't find any documentation stating that the jdbc driver for Caché supports setting the connection timeout. However, I noticed that the jdbc driver for the Intersystems Iris Database appears to support this feature.

My question is, can I use the Iris jdbc driver to set the connection timeout for the Caché Database?

The jdbc driver I use: cache-jdbc-2.0.0.jar

Thank you for your help.

Best regards,
Kalle

0
0 330
Article Guillaume Rongier · Mar 29, 2023 1m read

Quick Tips: Total Productive Maintenance

Named parameters can be achieved with SQLAlchemy :  

from sqlalchemy import create_engine, text,types,engine

_engine = create_engine('iris+emb:///')

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())

or with native api

from sqlalchemy import create_engine, text,types,engine

# set URL for SQLAlchemy
url = engine.url.URL.create('iris', username='SuperUser', password='SYS', host='localhost', port=33782, database='FHIRSERVER')

_engine = create_engine(url)

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())
0
0 580
Question Scott Roth · Mar 28, 2023

I am trying to pinpoint and troubleshoot an issue we have been seeing lately. We have several SQL Outbound Adapter Operations that are seeing issues trying to connect to our MS SQL Servers using the JDBC Gateway for calling insert, select, update, and stored procedure calls.

ERROR <Ens>ErrFailureTimeout: FailureTimeout of 20 seconds exceeded in osuwmc.Visit.ADTDBWriteBusinessOperation; status from last attempt was ERROR <Ens>ErrOutConnectExpired: JDBC Connect timeout period (15) expired for

0
0 372
Article Hiroshi Sato · Mar 23, 2023 1m read

InterSystems FAQ rubric

You can programmatically retrieve routine dates and sizes using the RoutineList query of the %Library.Routine (or just %Routine) class.

The RoutineList query has an argument, and the routine name to be searched can be specified by prefix match or middle match. (For wildcards, specify * or ?)

In the example below, *.MAC is specified as an argument.

SET tStatement =  ##class(%SQL.Statement).%New()
 DO tStatement.%PrepareClassQuery("%Routine" , "RoutineList") 
 SET rs = tStatement.%Execute("*.MAC",,0) 
 DO rs.%Display() 

In addition to the routine list, you can also get

2
0 690
Question Neil Thaiss · Mar 28, 2023

Hi,

I know little about SOAP security and am trying to apply a WS-Policy to a simple HL7 web service, but when I do I get object script errors.

The most latest one being:

ObjectScript error: &lt;UNDEFINED&gt;zValidateTransport+4^%SOAP.Security.Policy.1 *%request

The web service, shown below, simply extends UHSx.Common.Services.Twinkle.SOAP, and works perfectly well using basic HTTPS over SSL/TLS:
Class UHSx.Common.Services.Twinkle.SOAP Extends UHSx.Common.Services.HL7.SOAP
{Parameter LOCATION = "https://ryr-hc-test.sussex.nhs.uk:50800/UHSX_EPR/Twinkle_QRY_HL7_Web_Se…";Parameter SERVICENAME

0
0 225
Question Dmitrii Baranov · Mar 21, 2023

Hi, could someone tell me please how can I "unlock" a .cls file which author is Intersystems? I want to make some modifications and add some trace messages there. The file resides in the HS.FHIRServer namespace and it looks like read-only

6
0 451
Article Zhong Li · Jan 23, 2023 11m read

Fun or No Fun - how serious is it?


Large language models are stirring up some phenomena in recent months. So inevitably I was playing ChatGPT too over last weekend, to probe whether it would be a complimentary to some BERT based "traditional" AI chatbots I was knocking up, or rather would it simply sweep them away. 
A thought comes to mind while playing.By going slightly theoretical or philosophical, eventually interoperability standards such as HL7 and FHIR etc are kind of "languages", right?HL7 has its own grammar, rules, vocabulary and even dialects - every system speaks its own tone.

3
1 1164
Announcement Anastasia Dyubaylo · Mar 28, 2023

Hi Developers,

See how the Production Extension framework (PEX) allows you to build custom interoperability components in .NET or Java without first learning ObjectScript.

With PEX, you can code in a familiar language and take advantage of established code libraries to add components to a production.

 What is PEX

0
1 318
Question Oliver Wilms · Mar 21, 2023

Hello, I want to show a fellow DC member how to convert JSON file into HL7 message. I personally do not work with HL7. I set up a production with EnsLib.File.PassthroughService. It passes Ens.StreamContainer to BPL process. I call a DTL to transform StreamContainer to HL7 message. I run into an error:

ERROR <Ens>ErrBPTerminated: Terminating BP JSON2HL7 # due to error: ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''
> ERROR #5035: General exception Name 'Parsing error' Code '3' Data ''

The code is in this GitHub repo:

https://github.com/oliverwilms/HL7

2
0 835
Article Oliver Wilms · Apr 4, 2023 6m read

IRIS configurations and user accounts contain various data elements that need to be tracked, and many people struggle to copy or sync those system configurations and user accounts between IRIS instances. So how can this process be simplified?

In software engineering, CI/CD or CICD is the set of combined practices of continuous integration (CI) and (more often) continuous delivery or (less often) continuous deployment (CD). Can CI/CD eliminate all our struggles?

I work in a team which develops and deploys IRIS clusters. We run IRIS in containers on Red Hat OpenShift container platform.

Please do

1
2 818
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.

My approach went a different direction, and makes use of an

2
1 905
Article Alberto Fuentes · Feb 23, 2023 3m read

Hi all!

In a project we needed to define topics to publish messages and register different subscribers which will receive those messages asynchronously. We also needed it to be as simple as possible and that we could use it on InterSystems IRIS directly.

As an experiment, I'm sharing this iris-pubsub open exchange example.

Infrastructure

This is built on top of InterSystems IRIS interoperability features, it needs a running production.

The first time we need to define how many partitions we want to dedicate to handle messages.The more partitions you add, the more capacity to handle messages.

4
2 600
Question Nezla · Mar 26, 2023

Hi Guys,

How can I include an Expando  in a tablepane, I would like that each row have an expando that I can use to include some other things as in the below screenshot

<column colName="SerialNo" header="Serial No" OnDrawCell="DrawLink" width="10%" filterType="text" filterOp="["/>

i've used the below so i can include the expando but its not working, so how can I include a zen control like expando onDrawCell or in my tablepane ?


 

Method DrawLink(pTable As %ZEN.Component.tablePane, pName As %String, pSeed As %String) As %Status
{
  WRITE "<expando caption=""Subexpando"" OnDrawContent=""GETlink""

0
0 244
Announcement Anastasia Dyubaylo · Mar 24, 2023

Hi Developers,

Often we create and edit InterSystems IRIS Interoperability solutions via a set of UI tools that is provided with IRIS. But it is sometimes difficult to setup the development environment to handle changes we make in the UI to source control.  

This video illustrates how git-source-control helps with source control Interoperability components while changing it in the UI.

⏯ Git Source Control for InterSystems IRIS Interoperability with Docker and VSCode

0
2 876
Article Peter Steiwer · Jan 17, 2020 1m read

If you are seeing this error during import: ERROR #6301 Line: 2 Offset: 118 This does not appear to be a Cache exported file, unable to import.

This error is caused by exporting from InterSystems IRIS and trying to import into Caché. If you plan on exporting from IRIS to Caché, you can use the following qualifier to export your classes so that Caché does not throw an error on import:

w $SYSTEM.OBJ.Export(<items>,<filename>,"/exportversion=cache2018.1")

Please see the Documentation for more information about this Export Qualifier

3
0 939
Article Robert Cemper · May 22, 2022 1m read

I'm sure you have met this situation:

  • There is a bug in a System that you can't reproduce yourself locally
  • You need to run a few lines in the affected instance
  • You get full access to System Management Portal
  • But there is just  no terminal, nor console, nor access with Studio, Atelier or VSCode
  • How to run your few lines for testing ???
3
5 1114
Article Guillaume Rongier · Nov 30, 2022 2m read

If you are using Python, you can use the built-in venv module to create a virtual environment. This module is the recommended way to create and manage virtual environments.

A virtual environment is a tool that helps to keep dependencies required by different projects separate by creating isolated python virtual environments for them. It solves the “Project X depends on version 1.x but, Project Y needs 4.x” dilemma, and keeps your global site-packages directory clean and manageable.

So if like me you work a lot with Python, you can use the venv module to create a virtual environment for your project. This will allow you to install packages without affecting the global Python installation.

You will find here two neat alias to create and activate a virtual environment.

Python aliases

alias venv="python3 -m venv .venv; source .venv/bin/activate"
alias irisvenv="python3 -m venv .venv; source .venv/bin/activate; pip install https://github.com/grongierisc/iris-embedded-python-wrapper/releases/download/v0.0.3/iris-0.0.3-py3-none-any.whl"
3
2 2087
Article Benjamin De Boe · Dec 15, 2021 4m read

This is the second piece in our series on 2021.2 SQL enhancements delivering an adaptive, high-performance SQL experience. In this article, we'll zoom in on the innovations in gathering Table Statistics, which are of course the primary input for the Run Time Plan Choice capability we described in the previous article.

4
1 925
Article 王喆 👀 · Mar 12, 2023 5m read

SSH framework is a relatively representative framework of Java, which was popular many years ago. There are Struts+Spring+hibernate and Spring MVC+Spring+hibernate. Of course, I used the second one in college. If I can connect IRIS to Hibernate as a library, does it also mean that IRIS can be developed using SSH framework in theory?

Tools and environment

JDK 1.8

       Maven

       Hibernate 5.X.X

       IRISHealth-2022.1.3

       intellij idea

       Windows 10 64

Create database

       Create several tables in code mode

Class BKIP.SOA.MonitorScreen.CacheTable.logError Extends%Persistent
{
///
6
0 738
Article 姚 鑫 · Mar 22, 2023 25m read

Brief

What is Query

Query is a method for finding data that meets the conditions and presenting the results as a data set.

Type of Query

  • SQL Query,Using %SQLQuery and SQL SELECT.
  • Custom Query,Using Class %Query and custom logic to generate result.

Note: Before we talk about the general Query solution, let's first understand the basics of Query to help understand the implementation principles. If you already know the basic use of Query, please skip this section and go straight to "Challenges".

Query Basics

SQL Query Basics

Query QueryPersonByName(name As %String = "") As %SQLQuery(COMPILEMODE =
1
3 769
InterSystems Official Jeff Fried · Mar 23, 2023

InterSystems is committed to providing high quality product support to customers for all products, new and old.   As products age – Caché is now 25 – that support will evolve.

InterSystems IRIS was released in 2018 and it is the successor to Caché and Ensemble.  Many Caché/Ensemble customers have migrated to IRIS or have plans to do so in the next few years.  Customers continuing to use Caché or Ensemble should be aware of the following important announcement:

Caché/Ensemble maintenance releases will continue for the next 4 years - through Q1 of 2027.

0
1 1392