Find

Question
· Oct 5, 2023

Routing rule equivalence question

Is there a difference in outcome between the two screengrabs below?

In both cases, when  certain conditions are met, a transformation is called and the output sent on to two targets. In the first case we surmise the transformation is called twice, and the output of the first run sent to the first target, the output of the second run to the second target. In the second case we surmise the transformation is called once, and the output duplicated and sent to the two targets. 

  • Are there any cases where they would not be functionally the same (eg because of side-effects of the transformation?)
  • Could there be performance differences - from only calling the transformation once rather than twice? If so, how significant could those be in a Production handling 40K-50K messages a day (Healthcare, HL7), especially since this pattern of coding is replicated in several places across the production.

2 Comments
Discussion (2)1
Log in or sign up to continue
Announcement
· Oct 2, 2023

InterSystems Ideas News #8

Hey Community!

Welcome to the 8th edition of the InterSystems Ideas news bulletin! Here's what you can expect from it:

​​​​✓ New video describing all pages of the Ideas Portal  

✓ Ideas implemented since the previous news bulletin

⏯Watch the video: Join the Hall of Fame

 

 Ideas Portal contains, in addition to the "Ideas" page, 4 new pages:

  • Portal Guide
  • News
  • Polls 
  • Hall of Fame

Check them out to always be up to date about what's going on on Ideas Portal

 Since the launch of the Ideas Portal, 24 of the ideas have already been implemented by the Community members. And 6 of them were realized during the last 3 months: 

👏 Thank you for implementing and posting these ideas 👏

Stay tuned to read our next announcements!


In the meantime post your brilliant ideas, vote for existing ideas, and comment on them on our InterSystems Ideas Portal!

1 Comment
Discussion (1)1
Log in or sign up to continue
Article
· Sep 27, 2023 2m read

Listing Production Item connections recursively

If you work with Productions, highlighting connections between Business Hosts is a very convenient feature, allowing developers to get a visual representation of a data flow.

This feature works by default with all system Business Hosts. If a user writes their own Business Services, Processes, or Operations, they must implement the OnGetConnections method for this functionality to work with their custom Business Hosts (or use Ens.DataType.ConfigName properties for connections).
That said, the SMP shows only the first layer of connections of the selected Business Host. Sometimes, we need to get connections of connections recursively to build a complete data flow graph. Or we might need this connection information to check which downstream systems might be affected by a change upstream.To do all that, I wrote an Utils.Connections class, which offers the GetConnectionsJSON method. You can pass an Item ID or Item Name, and it will return you a dynamic object containing all the connections. Here's how it works. Assuming this production:


You'll get this JSON for in.REST service (##class(Utils.Connections).GetConnections("in.Rest")):

{
  "in.REST":[
    {
      "EnsLib.HL7.SequenceManager":[
        "Ens.Alert",
        {
          "Router":[
            "Ens.Alert"
          ]
        },
        "in.BO",
        "s3.BusinessOperation"
      ]
    }
  ]
}

Each item has an array of connections. If a connection has connections itself, it would be an object with an array inside, otherwise, it will be just a string.
There are also SQL queries to get connections for one item or list all connections for all items:

SELECT Utils.Connections_GetConnections(ID)
SELECT * FROM Utils.Connections_ListConnections()

Code on GitHub.

5 Comments
Discussion (5)3
Log in or sign up to continue
Article
· Sep 21, 2023 1m read

Getting started with the Jupyter Server Proxy extension for VS Code

Earlier this year I announced availability of a VS Code extension for coding in ObjectScript, Embedded Python or SQL using the notebook paradigm popularized by Jupyter. Today I published a maintenance release to correct a "getting started" problem.

Here's a video of the installation steps from the extension's README:

(video superseded by an update in a later comment)

Why not try it for yourself?

4 Comments
Discussion (4)3
Log in or sign up to continue
Please note that this post is obsolete.
InterSystems Official
· Sep 18, 2023

Sep. 18, 2023 – Alert: Failed login handling and OAuth2 client errors

InterSystems has corrected two defects regarding connectivity. These defects and their corrections are independent of each other.

This alert addresses them both because there are point releases containing both corrections.

Both defects only impact versions 2019.1.4 and 2020.1.4 of:

  • InterSystems IRIS®
  • InterSystems IRIS for Health
  • HealthShare® Health Connect

Neither defect impacts any released version of HealthShare Unified Care Record®, Information Exchange, Health Insight, Patient Index, Provider Directory, Care Community, Personal Community, or Healthcare Action Engine.

The first defect causes failed login attempts to hang for 60 seconds before returning. The correction reduces this to two seconds and provides a better notification message. The correction is identified as DP-421918.

The second defect causes a <PROTECT> error in OAuth2 clients configured on an InterSystems IRIS instance in /csp/sys/oauth2/OAuth2.JWTServer.cls. The correction is identified as DP-418534.

InterSystems has replaced the original distributions with point releases to make these corrections available on an expedited basis. The relevant version identifiers are:

 Original posting  Point Release
 2019.1.4.755.0  2019.1.4.756.1
 2020.1.4.536.0  2020.1.4.538.1

The corrections are also available via Ad hoc distribution. 

If you have any questions regarding this alert, please contact the Worldwide Response Center.

Discussion (0)1
Log in or sign up to continue