#InterSystems IRIS for Health

10 Followers · 2.4K Posts

InterSystems IRIS for Health™ is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data. It includes powerful out-of-the-box features: transaction processing and analytics, an extensible healthcare data model, FHIR-based solution development, support for healthcare interoperability standards, and more. All enabling developers to realize value and build breakthrough applications, fast. Learn more.

Question Anthony Master · Nov 8, 2024

Throughout the forum, I find examples of using the method getSegmentByIndex to get the segment as I loop through the HL7 message segments.

Today I spent way too long trying to figure out why I could not modify the segment with this same method. I reached out to my more experienced team and I showed where I got the base code from what I was doing, but I myself could not find the documentation of the method.

After some time, we stumbled upon the GetMutableSegmentAt and GetSegmentAt methods and plugged the mutable method in its place and what do you know, it worked!

1
0 210
Question Nicky Zhu · Nov 5, 2024

Hi Guys,

 

I'm helping a partner to integrate IRIS to their project. They want to integrate Rules in there system.

For testing I built a simple rule as below:

/// 
Class Test.TestRule Extends Ens.Rule.Definition
{

Parameter RuleAssistClass = "Ens.Rule.GeneralBusinessRuleAssist";

XData RuleDefinition [ XMLNamespace = "http://www.intersystems.com/rule" ]
{
<ruleDefinition alias="" context="EnsLib.HL7.Service.
3
0 189
Question Elisha Gould · Nov 7, 2024

We've got some web services that utilise EnsLib.SOAP.Service/EnsLib.REST.Service. These do some further requests to a few operations to call some other services and return the combined results.

An issue that we are noticing is that some of the usage involves users hitting the refresh button a few too many times and generating a lot of requests. This is mostly an issue when the service that the operations are calling are down or slow to respond. IRIS starts using a lot of RAM when this occurs and has caused outages by getting through an extra 50-60GB of RAM.

0
0 164
Question Ashok Kumar T · Nov 6, 2024

Hello Community,

I have a stream property which uses %Stream.GlobalCharacter and I set some dummy texts like "a1a2a3a4a5a6a7...."(more than 1024 characters)   in to that stream and the stream values are not compressed. However, The streams are compressed If I use the Lorem ipsum is a dummy or placeholder text or other text "This is part four of a long memo." which length is greater than 1024 

I opened the stream object and confirmed the compress property is 0 for first entry and  1 for 2nd object

Class Samples.Strms Extends %Persistent
{
Property MyId As %String;
Property MyBioStrm As %Stre
3
0 161
Question Jani Hurskainen · Oct 29, 2024

I'm working on my first (!) IPM module and I'm a little puzzled with the registry authorization.

I have a working local registry (I hope!) and the module is loaded (with load-command) to the namespace.

Now publish-command fails because of missing authorization. I have set nothing authorization related myself and I'm lost how the authorization should be configured. All the material I have read so far seems to ignore that and only mentions one have to authenticate ...

Here's the command output:

zpm:IPMTEST1>version

%SYS>     zpm          0.7.3
IPMTEST1> zpm-registry 1.3.2
https://pm.
6
0 211
Question Yone Moreno · Nov 4, 2024

Hello,
Please, we would need your help 🙂:

In a development environment, we have added quite a few presentation contexts to the DICOM configurations (the associations). We would need to find a way to export them from this environment to make it easier for us to import them in PRO (and avoid doing it by hand one by one).

 

We know that there is this method, the ImportAssociation(), that given a file, and the names of the local AET and the remote AET, creates it automatically:
    https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…?

2
0 164
Question Robert Stephens · Nov 4, 2024

I'm running a query, joining nine tables together. When I run it with a SELECT COUNT(*) I get about 200,000 rows. When I run the SELECT with the columns I want, I get about 2,700 rows. Is there something inherent with the queries that limits the result set size, or anything I can do to make sure I'm getting back all the results? Rather, than trying to run it about 100 times limiting all previously gotten accounts.

2
0 260
Question Yuhong Snyder · Nov 1, 2024

Hello,

Is there any document regarding the embedded sourceControl in HealthShare management portal GUI?

It has Status, Settings,GitWebUI,AddtoSC,Sync,NewBranch,SwitchBranch,Import, ImportForce buttons, I am pretty new to this and I am wondering what these buttons really do behind the scene and when I need to use them.

 

Thank you

2
0 147
Discussion Timothy Leavitt · Oct 31, 2024

Is anyone using the IPM client (e.g., running commands like zpm "install somepackagename") on an IRIS version earlier than 2022.1?

We're thinking about raising the minimum supported version so we can use Embedded Python in IPM. I'm curious if this would impact anyone. Of course, you'd be able to continue to use an earlier version of IPM.

3
0 175
Question Kaveh Kaviani · Oct 30, 2024

i am trying to embed a dynamic SQL into Objectscript code , but the %NEXT() will return 0 , however when i copy the same query and run it in the SQL bit it will give me the result i want 
the code :

set myquery = "SELECT"
set myquery = myquery_" $PIECE(Substring(M.Rawcontent,Charindex('PD1|',M.Rawcontent),1000),'|',4),"
set myquery = myquery_" H1.TargetConfigName,"
set myquery = myquery_" H.Timecreated,"
set myquery = myquery_" H.MessageBodyId"
set myquery = myquery_" FROM"
set myquery = myquery_" Ens.MessageHeader H"
set myquery = myquery_" left outer join Enslib_HL7.Message M ON (H.MessageBodyId=M.

2
0 242
Announcement Renan Lourenco · Feb 28, 2023

We are excited to announce the newest addition to our early access program - the Health Data De-ID tool.

The tool will de-identify structured clinical data according to HIPAA Safe Harbor and allow for re-identification if required. It uses InterSystems’ SDA canonical format which is utilized for all our standard transformation from one format to another such as HL7 to CDA, HL7 to FHIR, etc.

1
0 1044
Question Jonathan Harris · Oct 24, 2024

If both fields are numeric and the result of subtraction of field1-field2 is positive, only then put the result is a data field.

I am doing this within an Iris DTL.

I don't find any functions like IsNumeric(). Once I get that, I can test if field1>0 and field2>0, do the subtraction, and test if diff>0.

I just need a function to determine if they are numeric, rather than some cumbersome way like a regex where the only characters are 0-9.

I see functions in documentation but don't see them used at tests, only in WRITE statements.

Thanks,

Jonathan

10
0 219
Article Kate Lau · Oct 28, 2024 8m read

I am just writing something to share what I encountered last night, which is the IRIS 2024.3 does not comes with Python by default any more!!!

Which means that I need to install it by myself!!😅 The pros is, I can select my python version😁🤭💃 The trouble is.... at the first place.... I don't know what I should do😥. By going through the community (I am much more prefer than the official document, sorry InterSystems document team😓 ), I found the following piece 

https://docs.intersystems.com/iris20242/csp/docbook/DocBook.UI.

0
0 353
Question Scott Roth · Oct 28, 2024

Our TEST environment and PROD environment are on two different versions of HealthShare Health Connect.


TEST IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2024.1 (Build 267_2U) Tue Apr 30 2024 16:06:39 EDT [HealthConnect:7.2.0-1.r1]
PROD IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2022.1.4 (Build 812_0_22913U) Thu Dec 7 2023 17:06:30 EST [HealthConnect:3.5.0-1.m1] [HealthConnect:3.5.0-1.
4
0 185
Question Mary George · Oct 16, 2024

Is it possible to use one IIS server to configure Webgateway and external Webserver for management portal when implementing synchronous mirroring with VIP  i.e Is it necessary to have two mirror servers(primary and Backup) , one Arbiter server, one Webserver for Webgateway and a sperate webserver for management portal? 

If anyone can please point to any documentation on Mirroring with Webgateway and external webserver for management  portal will be really helpful. 

 

Thank you for your help

6
0 270
Question Jani Hurskainen · Oct 28, 2024

I'm trying out the package manager (IPM). I'm trying to create a local (private) registry. To me it looks like the local registry installation succeeded but I can't figure out how to use it.

I'm using latest stable v0.7.3.

I have uploaded one module there (as told in one forum post):

$ curl http://localhost:52774/registry/
{"version":"1.3.2"}
$ curl http://localhost:52774/registry/packages/-/all
[{"name":"objectscript-math","description":"Math library for InterSystems ObjectScript","repository":"https://github.com/psteiwer/ObjectScript-Math/","origin":"","versions":["0.0.
4
0 176
Discussion Enrico Parisi · Oct 25, 2024

The IRIS Management Portal is localized (translated) for some (many?) languages and the language used by the Management Portal interface is determined by the browser settings, often derived from the OS settings (can be changed).

This means that if a user, like me, want to use ONLY the English version of the Management Portal, each and every time you login you need to change the language. VERY annoying.

I know I can change the language configured in Browser, BUT, I want to use English for the IRIS management portal non for all my internet activity!

9
1 325
InterSystems Official Bob Kuszewski · Oct 23, 2024

Maintenance Releases 2023.1.5 & 2024.1.2 of InterSystems IRIS, IRIS for Health, & HealthShare HealthConnect are now available

Two extended maintenance releases of InterSystems IRISInterSystems IRIS for Health, and HealthShare Health Connect are now available.

2023.1.5

Release 2023.1.5 provides bug fixes for any of the previous 2023.1.x releases.

You can find the detailed change lists & upgrade checklists on these pages:

2024.1.2

Release 2024.1.2 provides bug fixes for any of the previous 2024.1.x releases.

2
0 369
Question prashanth ponugoti · Oct 23, 2024

Hello Experts ,

Could you help to search message details based on MRN in intersytems iris. 

We have created 100+ interfaces and currenly in live (interystems cloud) . Now I try to search message details based on MRN using below query. it is working fine in DEV. but in prod it is taking ages.

SELECT Header.SessionId, Header.SourceConfigName ,Body.RawContent
FROM Ens.MessageHeader AS Header 
JOIN EnsLib_HL7.Message AS Body ON Header.MessageBodyId = Body.ID     
 where  Body.TimeCreated BETWEEN '2023-03-15 13:10:22.993' AND '2023-03-15 13:10:25.993'
 AND Body.

2
0 177
Article Tomoko Furuzono · Oct 24, 2024 1m read

InterSystems FAQ rubric

The maximum number of namespaces that can be created in one instance is 2047. However, to use a large number of namespaces, you will need to configure memory accordingly.

The maximum number of databases (including remote databases) that can be created in one instance is 15998. Depending on the type of license, there may be restrictions on the number that can be created. For details, please refer to the following document.
Database Configuration [IRIS]
Database Configuration
 

0
0 212
Question Oleksandr Kyrylov · Oct 22, 2024

Are there any objectscript functions (not wizards) to export and then import table data (including RowID)?

It doesn't matter what format the exported file is.

The import and export process should preserve all relationships, foreign keys, etc. I need to be able to export and import multiple tables at the same time.

I need this to implement the ability to export multiple tables from one instance and load them into another.

For export I tried %SQL.StatementResult.DisplayFormatted with the CSV option, but it doesn't handle column names. The first line of the file is not csv for some reason.

3
0 272
Question David.Satorres6134 · Oct 7, 2024

Hello everybody,

I’m trying to install WebTerminal but I’m not able to have it working. I’ve looked all around the in github and the community but no-one seems to have the same problem. So I hope sharing this someone can give me a hint
So, I’m installing it on IRIS HEALTH:

IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2023.1.3 (Build 517U) Wed Jan 10 2024 13:30:33 EST [Health:5.1.0-2.m3] 

I install the packageWebTerminal-v4.9.5.xml via Portal Manager and all goes fine:

Importing Selected Classes from /intersystems/prog/IRISHEALTH/mgr/Temp/importfromlocal.stream
Import to Namespace %SYS.
10
0 276
Article Anthony Master · Oct 17, 2024 2m read

I was working on a DTL but kept getting ERROR #5002... MAXSTRING errors. The problem was that most of the DTL GUI action steps only support the string data type when working with the segments. A %String has a limit of 3,641,144 characters and my OBX5.1 was 5,242,952 characters long as the example provided. Of course PACS admin stated ultra high quality up to and including 4K resolution files were needed, so we could not get the vendor to compress or reformat these files to compressed jpg or something similar.

Initially this vendor sends a 2.3 ORU^R01 and our EHR (Epic) is expecting a

7
1 473
Question Dmitrii Baranov · Oct 20, 2024

I'm experimenting with adapting SDA3 object model to store medical data in relational form, e.g.:

class Demo.DemoPatient extends (%Persistent, HS.SDA3.Patient) {}

The HS.SDA3.Patient class has the Aliases property which is a nested collection (list) of objects of type HS.SDA3.Name:

#dim record as Demo.DemoPatient = ##class(Demo.DemoPatient).%New()
set record.Name.FamilyName = "Clemens"
set record.Name.GivenName = "Samuel"
set record.BirthTime = "1935-11-30T12:00:00"
    
#dim alias as HS.SDA3.Name = ##class(HS.SDA3.Name).%New()
set alias.FamilyName = "Twain"
set alias.
6
0 171
Discussion Otto Medin · Oct 19, 2024

In the past, I've created custom SQL operations, but now I had something trivial to do, so I decided to take EnsLib.SQL.Operation.GenericOperation out for a spin. There's no example in the docs, so it was a little tricky. Here's what I ended up doing:

In my external database, I have 'mytable' with two fields 'id1' and 'id2'. Here are the pertinent Business Operation settings:

SQL: select id2 from mytable where id1 = ?
Input Parameters: [1] *id1
RequestClass: Ens.

2
0 226
Question Shashvati Dash · Oct 18, 2024

json file failing in conversion to SDA

  • DO^zToQuickXML+11^HS.SDA3.NVPair.1 +2
  • DO^zToQuickXML+34^HS.SDA3.CustomObject.1 +1
  • DO^zToQuickXML+8^HS.Local.SDA3.CodeTableDetail.HealthCareFacilityExtension.1 +1
  • DO^zToQuickXML+28^HS.SDA3.CodeTableDetail.HealthCareFacility.1 +1
  • DO^zToQuickXML+6^HS.SDA3.Location.1 +1
  • DO^zToQuickXML+12^HS.Local.SDA3.ProcedureExtension.1 +1
  • DO^zToQuickXML+29^HS.SDA3.Procedure.1 +1
  • DO^zToQuickXML+155^HS.SDA3.Container.1 +1
  • $$^zToQuickXMLStream+5^HS.SDA3.QuickXML.1 +1
1
0 259