#Health Connect

1 Follower · 668 Posts

InterSystems HealthShare Health Connect is a healthcare integration engine that delivers high-volume transaction support, process management, and monitoring to support mission-critical applications. 

At the heart of Health Connect is a high-performance, multi-model data engine that seamlessly handles multiple forms of data at high speed. Health Connect easily scales from serving small clinics to handling the transaction volumes of the largest and most complex healthcare delivery systems in the world. Capabilities include:

  • Interoperability by design
  • Mirroring with fast failover recovery
  • Source control for HL7 schemas
  • Intuitive drag-and-drop HL7 schema editing
  • A flexible, adaptable security model and more
InterSystems staff + admins Hide everywhere
Hidden post for admin
Question Gary Lusso · Apr 22, 2025

New at DTL. I need some pointers on this DTL

For all Prosthetics orders:
when ORC-1(Order Control) is "NW" (New Order), need to update OBR-18(Placer Field 1) based on PV1-2 (Patient Class) value.
assumption is that the selection logic is that all prosthetics orders with OBR-18 field is always blank.
Description :
If PV1-2 is I, insert I in OBR-18
If PV1-2 is O, insert O in OBR-18
If PV1-2 is E, insert O in OBR-18
If PV1-2 is P, insert O in OBR-18
If PV1-2 is R, insert O in OBR-18
If PV1-2 is B, insert O in OBR-18

1
0 150
Discussion Benny Verhamme · Apr 11, 2025

Hello 

We are pretty new to Ensemble and we are considering on using a default setup for our production. Let me explain the situation. We have one sender that sends HL7 ADT messages to our system. We have 60+ other systems that need to recieve ADT messages. We where thinking on a few ways on how to do the setup. 

Setup1:

We create one big ADTRouter that contains a first mapping. The result is send to another big ADTRouter that contains all the filters/expressions and mappings for the recieving systems. These' are the Pro's and Cons from my point of view I could be very wrong so please help

4
0 254
Question Gary M Lusso · Mar 27, 2025

My attempts to add CR/LF between segments

// Add CR/LF after "Total Cost:" if multiple "Item Number:" exist
            //$$$LOGINFO(tItemNumberCount_" "_tTotalCostSegment_"----cr/lf")
            If (tItemNumberCount > 1) && (tTotalCostSegment > 0) {
                Set tOBXSegment = pOutput.GetSegmentAt("ORCgrp(1).OBRuniongrp.OBXgrp("_tTotalCostSegment_").OBX", .tStatus)
                //$$$LOGINFO(tOBXSegment_"----"_"tOBXSegment from cr/lf")
                Set tOBXText = tOBXSegment.GetValueAt(5) //_"||||||\X0D\\X0A\" // Append escaped CR/LF representation
                //Do tOBXSegment.SetV

2
0 132
Question Gary M Lusso · Mar 5, 2025

Sample with multiple Items;

MSH|^~\&|GMRC IF CONSULT|XXX^XXXXX^DNS|GMRC IF CONSULT|YYY^^DNS|20250123175341+0000|CRNR|ORM^O01^ORM_O01|Q5808332894T6790522104|T|2.3|||State|State|USA

PID|1||1013570973V041977^^^ICN^ID~1110106796^^^EDIPI^EDIPI||PROSTEST^EHR||19760902|M||||||||||129256619|678235672

ORC|NW|15207778763^XXX^GMRCIFR|||||^^^20250123175300+0000^^R||20250123175331+0000|XXX8051652^PCP1^Physician||XXX8051652^PCP1^Physician|||20250123175341+0000||YYY

OBR|1|15207778763^XXX^GMRCIFR||YYY^PROSTHETICS IFC^757Office1235||20250123175300+0000||||||||||XXX8051652^PCP1^Physician|||Implant Usage

15
0 274
Question Gary M Lusso · Apr 9, 2025

I need to add an extra blank OBX segment after a segment containing text, Total Cost:

I get the OBX segment but it is in incorrect location.

It should be after the line containing Total Cost:

It needs to contain:

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|

code:

    //Do pOutput.SetValueAt(tOBXText_"~~","ORCgrp(1).OBRuniongrp.OBXgrp("_i_").OBX:5","set") //
         If (tOBXText[ "Total Cost:") {
             Set tSegmentOBX = ##class(EnsLib.HL7.Segment).%New()
             Set tSegmentOBX.SegType = "2.3:OBX"
             Set tSC = tSegmentOBX.SetValueAt("OBX", 0, "set")
             Set tSC =

2
0 165
Question Scott Roth · Apr 9, 2025

I have a segment within a Group (grp) that needs to be validated that it is populated within the message. 

When you use a Foreach within a Business Rule how should you account for the counter in the group?

For example, Epic sends their MFN message in the following format.

MSH~MFI~[~{~MFE~STF~PRA~[~ZPR~]~[~ZLK~]~[~CER~]~[~ZMG~]~[~ZTF~]~[~ZGP~]~[~ZDD~]~}~]

so, the ZLK segment might not exist until the last MFEgrp that is in the message. I need to verify if there is an Employee ID associated with the Provider in the HL7 message before I run it through the translation.

1
0 122
Question Scott Roth · Apr 2, 2025

Trying to start investigating an error we are seeing with multiple of the same messages getting sent to the same vendor. We receive an HL7 message with an RTF embedded from our EMR, send it through a DTL to just update the Patient Class, and then send it onto the Operation which is TCP.

We are starting to see this error message...

ERROR <Ens>ErrBPTerminated: Terminating BP DocOutRptRouting3M360 # due to error: ERROR <Ens>ErrException: <INVALID OREF>zOutputToIOStream+6^EnsLib.HL7.Message.1 -- logged as '-' number - @''
> ERROR <Ens>ErrException: <INVALID OREF>zOutputToIOStream+6^EnsLib.HL7.M

4
0 129
InterSystems Official Daniel Palevski · Apr 2, 2025

Summary of Alerts

Alert ID Product & Versions Affected Explicit Requirements
DP-439207 InterSystems IRIS® data platform 2024.3 (AIX) AIX installations Using JSON processing and Unicode non-Latin-1 character sets
DP-439280 InterSystems IRIS 2024.3 (containers with IntegratedML) IntegratedML Containers using TensorFlow

Detail of Alerts

DP-439207 - AIX JSON Unicode Parsing Issue

A bug has been identified in InterSystems IRIS 2024.3.0 on AIX instances that affects the parsing of JSON Unicode strings. The issue arises when either the %FromJSON() or %FromJSONFile

0
0 131
Article Sanjib Pandey · Apr 1, 2025 3m read

 JSON Web Token (JWT) Authentication

Hi Everyone,

I would like to share the code and step-by-step instructions/or guideline for generating a JWT (JSON Web Token) signature, as well as how to test it using Postman / HealthConnect.

JWT is an open standard (RFC 7519) that defines a compact, URL-safe method for securely transmitting information between parties in the form of a JSON object.

Structure of a JWT:

A JWT consists of three parts, separated by dots (.):

Header

.

Payload

.

Signature

  1. Header: The header contains about the token, specifying its type and

0
5 216
Article Cecilia Yang · Mar 31, 2025 2m read

The complex record mapper can help you process text file data consisting of various types of records to persistent messages in IRIS. To gain a basic understanding of the complex record mapper and see an example implemented in the production, check out the learning services video below:

https://community.intersystems.com/post/video-using-complex-record-mapper

This article is going to help troubleshoot when you see <Method DOES NOT EXIST> when handling record objects. For example, when purging messages in the production, you might see errors that indicate issues when deleting certain records:
<

0
0 185
Question Padmaja Konduru · Mar 29, 2025

We are receiving the report in text format and it has special characters like ', - like that in the text. Source system is using the UTF8 encoding format hence the text is showing as ' � ' . Is there a way to convert the utf8 to actual character in the DTL.

Thank you,

6
0 270
Question Gary M Lusso · Mar 22, 2025

I need to make changes to  OBX 5 which shows as immutable

I have tried ConstructClone, ThrowOnError, and Streams but I can't get the syntax correct

Example

OBX|1|TX|2000.02^REASON FOR REQUEST^AS4|142|REASON FOR REQUEST:      Total Cost:           0.00||||||O
                                        ^^^^ remove "REASON FOR REQUEST"                                                                            ^^ add cr/lf so down stream reports can be formatted more easily

I have the code done to parse out the "REASON FOR REQUEST" but I need to make the OBX 5 show the change.

Before:

OBX|1|T

27
0 287
Question Leonardo Carvalho · Mar 27, 2025

I'm working with routes for a rest service with intersystems iris. I have a working /test path, but I want to create a regex that accepts any path passed after /test. example /test/sdjklsbdk or /test/sdfkjgbskdbf/skjbksdb/ksdjbdks

I used <Route Url="/test/(.*)" Method="POST" Call="test"/> and <Route Url="/test/:path" Method="POST" Call="test"/> and I got the error <PARAMETER> what could it be?

{

"errors":[{

"code": -5002,

"domain": "%ObjectErrors",

"error":"ERROR #5002: ObjectScript error: <PARAMETER>test+1^test.Dispatcher.1",

"id": "ObjectScriptError",

"params": ["&lt;PARAMETER&gt;tes

2
0 85
InterSystems Official Daniel Palevski · Mar 26, 2025

InterSystems Announces General Availability of InterSystems IRIS, InterSystems IRIS for Health, and HealthShare Health Connect 2025.1

The 2025.1 release of InterSystems IRIS® data platform, InterSystems IRIS® for HealthTM, and HealthShare® Health Connect is now Generally Available (GA). This is an Extended Maintenance (EM) release.

Release Highlights

In this exciting release, users can expect several new features and enhancements, including:

  1. Advanced Vector Search Capabilities
    • A new disk-based Approximate Nearest Neighbor (ANN) index significantly accelerates vector search queries,
0
1 333
Article Adam Coppola · Mar 26, 2025 3m read

Hello interface engineers and app developers,     

Did you know that you can use Python in productions or integrations?

The production configuration user interface is low-code, but in many projects, you may reach a point where you need to write some code. As discussed in the Integration Architecture course, business processes are full of places for inserting code, specifically the BPL editor (for BPL business processes) and the DTL editor (for data transformations).

😯 As of InterSystems IRIS 2025.1, both Python and InterSystems ObjectScript are supported in the BPL and DTL editors. 😄 You ca

A code activity from a DTL data transformation, with the language set to Python. The contents of the code field say bidders = [bid.User for bid in source.Lot.Bids()]. New line. bidders = set(bidders). New line. target.NumOutbid = (len(bidders) - 1).

0
0 279
Question Darin Kurth · Mar 19, 2025

I have a HL7 DTL in which I'm doing a lookup to a table based on a code value in the IN1:3 field.  That incoming code may have a 1 to 1 mapping, or 1 to many mapping in a table.  If it's a 1 to many, the values in the lookup table are comma delimited.  If it's 1 to 1, that IN1 segment will map straight across.  If it's one to many, I need to create additional IN1 segments.  For example, if the incoming code maps to three, I need to map the original IN1 segment with one of the mapped codes, then create two additional IN1 segments with the other 2 codes for a total of 3 IN1 segments.  I'd like t

2
0 115
Job varsha Vijay · Mar 6, 2025

Role: Principal Architect and Integration Engineer

Employment Type: Full Time 

Note: Expertise in Rhapsody/Intersystems is Mandatory.

Main Responsibilities  

  1. Technology Strategy Key contributor to the technology strategy for the business, setting a north star, and driving excellence for our adoption and implementation of technologies to deliver Data Sharing/Integration, API Enablement, and Data Migration Services now and into the future. 
  1. Customer Facing This technical leader will represent technology in the public eye, can think quick on their feet and are a confidence building
1
0 246
Question Scott Roth · Mar 21, 2025

I was using VSCode to edit a DTL because it seemed easier to copy/paste code from parts of the DTL I was editing. I tried to add <sql> tag and code to call a SELECT statement, but when I compiled I got the following error...

ERROR <Ens>ErrInvalidDTL: Invalid DTL

  > ERROR #5490: Error running generator for method 'GetSourceDocType:osuwmc.Epic.MFN.DTL.EpicMFN949002Normalization'

ERROR: Ens.DataTransformDTL.cls(GetSourceDocType) of generated code compiling subclass 'osuwmc.Epic.MFN.DTL.EpicMFN949002Normalization'

    > ERROR #5030: An error occurred while compiling class 'osuwmc.Epic.MFN.DTL

2
0 133
Question Mike Strout · Mar 13, 2025

I am starting a conversion project for a health system that is currently migrating to Health Connect. They have their DEV and TST environments in one production and their PRD in another.  What is the best practice for standing up conversion environments...separate name spaces in the two productions or separate productions? Keep in mind the interfaces are temporary?

Mike

3
0 117
Article Yuri Marx · Mar 10, 2025 5m read

The FHIR standard establishes a powerful but flexible data model that can smoothly adapt to the complexities of operational healthcare data management. This flexibility comes at the cost of a data model with many tables and relationships, even for simple data such as the patient's record of telephone numbers, addresses, and emails. It would easily require querying 4 different tables. However, FHIR SQL Builder eliminates this problem, allowing you to create visual projections (mappings) in web wizards. It lets you consolidate data from 4 or more tables into just 1 and gives you the advantage of































Interface gráfica do usuário, Aplicativo O conteúdo gerado por IA pode estar incorreto.

2
4 366
Question Scott Roth · Mar 12, 2025

I have the need to query an external database and write the result set/snapshot to an internal %Persistent [ DdlAllowed ] table that I built. I have built inbound SQL Services before and write them externally to replace SSIS jobs, but how would querying a database via a Service and writing the data to an internal table work?

Can I just take the inbound query structure and write it to the class file of the internal table in a DTL? If so, what would be the Target? Or does this need to be done within a BPL as a Code block?

2
0 111
Question Scott Roth · Mar 12, 2025

My query that I am running on my Custom SQL Inbound Service has columns that are larger than the typical string length. How do I enlarge the SQL Snapshot Column limitations 

Class osuwmc.Epic.Clarity.DepartmentMaster Extends%Persistent [ DdlAllowed ]
{
Parameter USEEXTENTSET = 1;Property CostCenter As%String(MAXLEN = 15) [ SqlColumnNumber = 2 ];Property ID As%String [ Required, SqlColumnNumber = 3 ];
Index IDIndex On ID;Property Abbr As%String(MAXLEN = 20) [ SqlColumnNumber = 4 ];Property Name As%String(MAXLEN = 254) [ SqlColumnNumber = 5 ];Property ExternalName As%String(M
4
0 122
Announcement Anastasia Dyubaylo · Mar 12, 2025

Hey Community,

We're excited to invite you to the next InterSystems UKI Tech Talk webinar: 

👉 Cloud Health: FHIR Server

Join this webinar to dive into the world of HealthShare Health Connect Cloud with our upcoming session on Cloud Health: FHIR Server.

⏱ Date & Time: Thursday, March 20, 2025 2:30 PM GMT

👨‍🏫 Speaker: @Regilo Regilio Guedes de Souza, Director of Cloud Delivery, InterSystems

2025 Tech Talk Social Tile 20 березня (чернетка).png

0
0 119
Announcement Evgeny Shvarov · Jul 25, 2022

Hi Community,

There is a new PDF Resource published on our official site depicting key features and a comparison of InterSystems healthcare interoperability products: Health Connect and IRIS For Health.

>> https://www.intersystems.com/health-data-integration-chart.pdf

I think this could be useful for the Community.

2
1 868
Question Scott Roth · Mar 4, 2025

I already mentioned in a Previous post I am trying to build a list from a repeatable field within a HL7 message. I figured out how to build the list by using a context list string variable within the Business Process (BPL) and doing a

do context.<variable>.Insert = <value>

 when I am looping through the field. I want to do it one step farther though... I want to search the list to see if the value exists before I do the insert. I only want to insert if the value is different than what is in the list already.

IF$LF(context.Facilities,##class(Ens.Rule.FunctionSet).SubString(context.EpicDepar


1
0 144
Question Lokesh Parakh · Mar 3, 2025

How to send the HL7 Batch messages over a SOAP webservice which takes 3 credentials(Username, Password& Org.ID) using IRIS Management Portal V 2019.1?

WSDL   xsd : element - 1.Username , 2.Password ,3.Org.ID ,4.HL7 Message.

Info I had -  

Source is CSV File will be translated to HL7 using data Transformations. All the transformed messages need to be sent to destination System through SOAP request as a single Batch File.

Challenge faced was - How to send the request message (Message Structure asked : Username , Password, Org.ID and HL7 message )in batch transformation. - I can add the usern

0
0 89