New and Enhanced Features for Health Connect 2022.1
This article describes the new and enhanced features in the 2022.1 release of HealthShare® Health Connect. This is an Extended Maintenance (EM) release. Some of these features were also available in the continuous delivery (CD) releases since 2021.1, the previous EM release.
Kafka Messaging Support
This release supports Apache Kafka https://kafka.apache.org/Opens in a new tab, an open-source distributed event streaming platform used for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications. You can use Kafka in interoperability productions (see Using Kafka Messaging) or use the Common Messaging APIs outside of productions.
Health Connect 2022.1 introduces Python fully integrated into the kernel, making Python a full peer to ObjectScript. Almost anything that you can do in ObjectScript, you can now also do in Python, including defining class methods. You can also interleave Python and ObjectScript, including directly calling Python libraries from ObjectScript without writing any Python code. Python provides access to many thousands of high-quality pre-built libraries, which can speed development and lower your maintenance cost. Python developers who are not familiar with ObjectScript can start developing without learning a new language. (first in 2021.2)
Any Health Connect object can be created and accessed with Embedded Python:
Objects implemented in Embedded Python are treated the same as objects implemented in ObjectScript.
In Embedded Python you have full and direct access from Python objects to ObjectScript objects and from ObjectScript objects to Python objects.
Embedded Python has full access to globals, which are accessed as normal Python objects. You can use Health Connect persistence to store objects in the database, making them available in future sessions until the objects are explicitly deleted.
Embedded Python augments the Health Connect Python SDK, which includes client libraries and the external Python gateway.
For an introduction to embedded Python, see the Embedded Python Overview.
Embedded Python is designed to run with whatever version of Python you have installed on your machine.
If you are running Microsoft Windows and do not have Python already installed, the Health Connect installation kit installs it for you.
Many flavors of UNIX or Linux come with Python installed. If you need to install it, use the version recommended for your operating system by your package manager, for example:
macOS: Install Python 3.9 using Homebrew (https://firstname.lastname@example.orgOpens in a new tab)
Ubuntu: apt-get install python3
Red Hat Enterprise Linux or Oracle Linux: yum install python3
SUSE: zypper install python3
If you get an error that says “Failed to load python,” it means that you either don’t have Python installed or an unexpected version of Python is installed on your system. Install it or reinstall it using one of the above methods.
On a UNIX-based system, you may want to install Python packages with the pip3 command. If you do not have pip3 installed already, install the package python3-pip with your system’s package manager.
Interoperability Productions in Python
In this release, you can develop interoperability productions in Python using the Production EXtension (PEX) framework. This gives you the choice of developing productions in Python, Java, .NET, or ObjectScript. You can easily combine production components developed in different languages. You can develop in the language you are familiar with even if the other production components were developed in a different language. You can use Python with PEX to create new protocol adapter, perform complex analysis or calculations, and to create persistent messaging and long-running business processes. For more information, see Developing Production Components with External Languages. (first in 2021.2)
Visual Studio Code ObjectScript Extension Pack Updates
The Visual Studio Code ObjectScript Extension Pack is available from the Visual Studio Code download pageOpens in a new tab and has the following enhancements that make developing code faster and easier:
Integrated documentation — hover-over in-line documentation, browse class hierarchies, and preview custom class documentation.
Server-side source improvements — search and support for many client-side web application workflows.
Debugging — inspect properties of objects and improved reliability.
The extension pack includes the ObjectScript extension and the Language Server extension. For more information, see the VSCode ObjectScript Extension documentation https://intersystems-community.github.io/vscode-objectscript/Opens in a new tab. (first in 2021.2)
Make SQL Queries With Minimal Code in Interoperability Productions
Enhancing Cloud and Operations
This release contains cloud connectors that make it easier for you to manage Health Connect applications in Amazon Web Services and use connectors to access services. This release has the following adapters:
Inbound and outbound adapters for S3 (Amazon Simple Storage Service) (first in 2021.2)
Outbound adapter for Cloudwatch (Amazon monitoring service) (first in 2021.2)
Outbound adapter for SNS (Amazon Simple Notification Service) for messaging (first in 2021.2)
Outbound adapter for Healthlake (Amazon health data service) (first in 2021.2)
This release makes it easier to deploy and manage Health Connect in Kubernetes with the following new InterSystem Kubernetes Operator (IKO) features:
IKO can deploy and manage InterSystems System Alert and Monitoring (SAM) and the InterSystems API Manager (IAM) with your Health Connect cluster. This makes it easier to administer and scale your system. (first in 2021.2)
IIKO can deploy locked down Health Connect and InterSystems Web Gateway containers. (first in 2021.2)
IKO can deploy InterSystems Web Gateway containers with Nginx as well as Apache web servers. (first in 2021.2)
IKO can include ephemeral as well as persistent volumes in deployments. (first in 2021.2)
Enhancing Speed, Scale, and Security
Adaptive SQL Optimizer
The Health Connect SQL Optimizer leverages table statistics to derive the best query plan for each user-submitted statement and uses an efficient query cache to reuse the generated code. When those statements include parameters, the values submitted at runtime may provide opportunities for faster execution using an alternative query plan. The new Run-Time Plan Choice (RTPC) infrastructure introduced with this release ensures Health Connect SQL takes advantage of such opportunities efficiently. RTPC scans for the use of outlier values and efficiently estimates the selectivity of range conditions based on more detailed table statistics. This leads to more adaptive query planning and significant savings in execution time and I/O for many real-world datasets. (first in 2021.2)
In addition, Health Connect now uses block-level sampling rather than full or row-based scanning to gather the table statistics used by the optimizer. This efficient algorithm enables gathering statistics (such as by using the TUNE TABLE command) for even the largest tables with billions of rows within seconds. Also, Health Connect SQL will now gather table statistics on-the-fly when a table has none to ensure appropriate query plans. (first in 2021.2)
Saving on Storage
In this release, stream and journal compression can significantly reduce storage needed for your Health Connect deployment:
Stream compression – is now on by default for all globals-based stream classes, with no application change required. Existing data remains readable and will be compressed upon the next write. Experiments with real-world data have indicated compression ratios ranging from 30% for short texts to 80% and more for XML and other document types. (first in 2021.2)
Journal compression — compresses inactive journal files immediately after journal switch. Rollback and roll forward are executed directly from the compressed format. This significantly reduces the storage requirements for this vital part of Health Connect data integrity strategy. See Journaling Best Practices for more information. (first in 2021.2)
TLS 1.3 Support (OpenSSL 1.1.1)
With this version, Health Connect includes support for OpenSSL 1.1.1 and fully supports TLS 1.3. With TLS 1.3 users will see faster performance among other improvements, such as cutting the encryptions latency in half. This is accomplished by eliminating an entire round trip from the handshake process. (first in 2021.2)
Beginning with Health Connect 2021.2 we will no longer ship OpenSSL libraries on UNIX but depend on the OS to provide those. One benefit of this change is that updates to the OpenSSL library no longer requires a new installation of Health Connect but can be performed with the usual OS updates. For more information on this new approach, see Relationship of TLS Version to Operating System and Its Version. Because InterSystems products require access to the OS provided OpenSSL library, the product will now perform a check during the installation and the startup of an instance. The call can also be manually invoked. See Installing the Required Dependencies for details.
The change to not ship OpenSSL libraries also triggered an adjustment we needed to make for kits. Every kit is specific to a major version of OpenSSL (OpenSSL 1.1.1 is the major version, minor versions are indicated by a letter following the major version, such as OpenSSL 1.1.1f).
On Windows, the kit does install the OpenSSL library.
If the correct version of OpenSSL is not installed on your UNIX system, the installation will not succeed. You must install OpenSSL and then reinstall Health Connect. For example, on MacOS, you can install OpenSSL using Homebrew, see https://email@example.comOpens in a new tab.
New ^TRACE Utility
This release introduces a new tool for tracing raw events from one or more processes. Existing utilities such as %SYS.MONLBL and PERFMON track mostly the same event types but immediately generate a report formatted for a specific type of analysis. The new ^TRACE tool captures these events in a more generic file format and allows interactive navigation and summarization of the captured information through a command-line interface or API. Supported event types include, but are not limited to global sets and kills, physical writes, network requests, cache hits and reads, and various journal events. Information captured for these events includes the routine line and call stack, as well as the full global reference where applicable. This offers a single interface for a broader set of performance analysis tasks. (first in 2021.2)
Other Enhancements and Efficiency Improvements
In each release, InterSystems makes many efficiency improvements and minor enhancements. This release includes:
DataMove is enhanced for general robustness and for recoverability around mirror failover.
Compact double support for external clients, including JDBC, .NET clients, Python, and IRISNative. (first in 2021.2)
In this release, the security tables now have an embedded version number, which allows finer access over allowable imports. You can export security tables from version 2021.1 and then import them to this version. For details, see ^SECURITY. (first in 2021.2)
This release updates the Log4j library to version 2.17.0. (first in 2021.2)
This release updates the node.js library to version 14. (first in 2021.2)