Find

Question
· May 28, 2024

FSLog not populating when trying to test HS.FHIRServer.Interop.HTTPOperation

I am attempting to make a FHIR call against the Epic Repository through Intersystems. I have setup a Service client per Create FHIR REST Client | InterSystems Developer Community | Business

but I have set it up using OAuth and HTTPS.

I have verified that the OAuth works by executing it manually via a Terminal to verify I get a response. Of course, when I do it is writing to the ISCLOG

I am trying to now test making the FHIR call by initiating the test of HS.FHIRServer.Interop.HTTPOperation, however I keep getting mixed results with first a 404 not found error, and now a 401 unauthorized error. 

I want to see the actual call that is being made, so the Documentation and the Community suggested turning on FSLogChannel...

However, I am not seeing the FSLog global be created.  Any idea why?

I want to make sure that the Epic Client ID, and User is properly being sent to verify that I can make calls to the Epic FHIR repository.

IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2024.1 (Build 264_1U) Thu Apr 4 2024 14:54:11 EDT [HealthConnect:7.2.0-1.r1]

4 Comments
Discussion (4)1
Log in or sign up to continue
Article
· May 27, 2024 4m read

Linuxで SSL/TLS を使用して ODBC 接続を行う方法

こちら の記事では、LinuxでODBC接続を行う方法  をご紹介しました。

今回は、SSL/TLS を使用するように InterSystems IRIS スーパーサーバを構成 した IRIS に対して、ODBCで SSL/TLS 接続をする方法をご紹介します。

LinuxでODBC接続を行う方法 の記事で紹介している手順で、SSL/TLS なしでODBC接続できる環境を用意していることを前提にご説明します。

手順は以下のようになります。手順の詳細は、この後で説明します。


1.CA証明書を用意します

2.TLS 構成ファイルの設定を行います

3.TLS 構成ファイル odbcssl.ini を作成します

4.環境変数 ISC_SSLconfigurations で <path>/odbcssl.ini を指定します

5.IRISへのODBC接続確認をします



1.CA証明書を用意します

CA証明書に問題がないか証明書情報を確認します。
※ ***.***.***.*** :接続先IRISサーバのIPアドレス

# openssl s_client -connect ***.***.***.***:1972 -showcerts -CAfile /home/ec2-user/ca_certificate.crt < /dev/null
CONNECTED(00000003)
:
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
---
DONE

「Verify return code: 0 (ok)」が返れば、CA証明書に問題はありません。


2.TLS 構成ファイルの設定を行います

最初に、ODBCドライバインストール情報を確認します。

# odbcinst -j
unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /etc/odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8


/etc/odbc.ini に、SSL/TLS 接続を定義する [SampleTLS] という名前の、以下のエントリを追加します。

# /etc/odbc.ini
[ODBC Data Sources]
SampleTLS = SampleTLS

[SampleTLS]
Description=InterSystems ODBC
Driver = /intersystems/iris/bin/libirisodbcur6435.so
Host=***.***.***.***
Namespace=USER
UID=_SYSTEM
Password=SYS
Port=1972
Protocol = TCP

Authentication Method = 2
Security Level = 10
SSL Server Name = SampleTLS


3.TLS 構成ファイル odbcssl.ini を作成します

# /etc/odbcssl.ini
[SampleTLS]
CAFile=/home/ec2-user/ca_certificate.crt
CertFile=
KeyFile=
Password=
KeyType=2
VerifyPeer=0
TLSMinVersion=16
TLSMaxVersion=32
CipherList=ALL:!aNULL:!eNULL:!EXP:!SSLv2


各項目の内容については、以下のドキュメントを参照してください。
TLS 構成ファイルの設定

また、設定ファイルのサンプルは、IRISクライアントインストールディレクトリ下の \dev\odbc\redist\ssl に、
 irisodbc.ini.template
 odbcssl.ini.template
​​​がありますので、参考になさってください。


4.環境変数 ISC_SSLconfigurations で <path>/odbcssl.ini を指定します

# export ISC_SSLconfigurations=/etc/odbcssl.ini

# echo $ISC_SSLconfigurations
/etc/odbcssl.ini

※すべてのユーザで使用できるようにする場合は、環境変数を永続化させます。

# vi /etc/profile

# ---- 以下を追加
export ISC_SSLconfigurations=/etc/odbcssl.ini

 

5.IRISへのODBC接続確認をします

%SuperServer の設定 をした接続先のIRISでは、「スーパーサーバSSL/TLSサポート」を「有効」または「必須」に設定してください。

# isql -v SampleTLS
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> SELECT count(*) FROM INFORMATION_SCHEMA.TABLES
+---------------------+
| Aggregate_1         |
+---------------------+
| 430                 |
+---------------------+
SQLRowCount returns 1
1 rows fetched
SQL>


※(2024/5/27現在)2024.1までのバージョンについて

Failed to load irisconnect executable!
のエラーとなる場合、irisconnect.so ファイルを /usr/lib64/ ディレクトリにリンクする必要があります。
クライアントインストールディレクトリのbin下に、irisconnect.so ファイルがありますので、そちらをリンクするようにしてください。

ln /intersystems/iris/bin/irisconnect.so /usr/lib64/irisconnect.so


詳細は以下のドキュメントをご覧ください。
UNIX® での ODBC データ・ソースの定義

Discussion (0)0
Log in or sign up to continue
Announcement
· May 27, 2024

The 3rd InterSystems Ideas Contest

Hello Community,

We're super excited to invite all our Developer Community members (both InterSystems employees and not) to participate in our next contest!

💡 The 3rd InterSystems Ideas Contest 💡

We're looking for your innovative ideas to enhance InterSystems IRIS and related products and services. We encourage suggestions based on real-life use cases, highlighting the tangible benefits your idea will bring to other users and how it will enhance developers' experiences with InterSystems technology.

📅 Duration: June 10 - July 7, 2024

🏆 Prizes for the best ideas!

🎁 Gifts for everyone: A special gift will be given to each author whose idea is accepted in the contest.

 

>> VOTE FOR THE BEST IDEAS HERE <<

Accepted ideas should:

  • be created during the Ideas Contest period by a user registered on the InterSystems Ideas portal (you can log in via InterSystems SSO);
  • not be part of other already existing ideas - only new ideas are allowed;
  • not describe the existing functionality of InterSystems IRIS and related Products or Services;
  • be posted in English;
  • be written by a person, not generated by AI;
  • be specific rather than general, with an explanation of how this exact change will benefit users and is linked to a real-life use case;
  • be accepted as meaningful by InterSystems experts.

All ideas are subject to moderation. We may request to clarify the submitted idea. Ideas that meet the requirements will receive a special "Ideas Contest" status.

Who can participate?

We invite EVERYONE to join our new Ideas Contest. Both InterSystems employees and non-employees are welcome to participate and submit their ideas. 

Prizes

1. Participation gift - authors of all accepted ideas will get:

🎁 Branded T-shirt with InterSystems logo (unisex)

2. Expert award - the 3 best ideas will be selected by InterSystems experts. Winners will get:

🥇 1st place - JBL Tour Pro wireless Noise Cancelling earbuds

🥈 2nd place - Patagonia Unisex Nano Puff® Vest

🥉 3rd place -  LEGO Vespa 125 / Corvette / NASA Mars Rover Perseverance / Kawasaki Ninja H2R Motorcycle

3. Community Award - an idea with the most votes will get:

🎁 LEGO Vespa 125 / Corvette / NASA Mars Rover Perseverance / Kawasaki Ninja H2R Motorcycle

Note: InterSystems employees can only get the participation prize. Expert and Community awards can only be won by non-InterSystems members of the Community. 

Contest period

⚠️ Idea Submission: June 10 - 30

✅ Voting for ideas: July 1 - 7

🎉 Winners announcement: July 8

We encourage you to share your ideas on the Ideas portal during this period. Registered members can participate by voting and providing comments on published ideas.

Note: only votes from active Community users who have made at least one post on the Developer Community are counted for the Community Award.

--

Post your idea(s) on the InterSystems Ideas portal, and stay tuned for your idea's status updates:

>> VOTE FOR THE BEST IDEAS HERE <<

Good luck! 🍀 


Note: All prizes are subject to availability and shipping options. Some items may not be available for international shipping to specific countries, in this case, an equivalent alternative will be provided. We will let you know if a prize is not available and offer a possible replacement. Prizes cannot be delivered to residents of Crimea, Russia, Belarus, Iran, North Korea, Syria, or other US-embargoed countries.

5 Comments
Discussion (5)2
Log in or sign up to continue
Article
· May 24, 2024 15m read

VIP in GCP

If you're running IRIS in a mirrored configuration for HA in GCP, the question of providing a Mirror VIP (Virtual IP) becomes relevant. Virtual IP offers a way for downstream systems to interact with IRIS using one IP address. Even when a failover happens, downstream systems can reconnect to the same IP address and continue working.

The main issue, when deploying to GCP, is that an IRIS VIP has a requirement of IRIS being essentially a network admin, per the docs.

To get HA, IRIS mirror members must be deployed to different availability zones in one subnet (which is possible in GCP as subnets always span the entire region). One of the solutions might be load balancers, but they, of course, cost extra, and you need to administrate them.

In this article, I would like to provide a way to configure a Mirror VIP without using Load Balancers suggested in most other GCP reference architectures.

3 Comments
Discussion (3)3
Log in or sign up to continue
Question
· May 24, 2024

Cannot parse valid HL7 message

I'm having problems with an HL7 message that is not properly parsed by IRIS (any version, including Ensemble).

The message is a OML_O21 and is valid, in fact is similar of what is described in the document "IHE Laboratory Technical Framework, Volume 2a (LAB TF-2a) version 6.0".
This is the sample from the IHE document (paragraph 2315):

MSH|^~\&|OF|Chemistry|AM|Automation|200309060825||OML^O21^OML_O21|msgOF101|T|2.5|123||||USA||EN
PID|1||12345^5^M10^Memphis_Hosp^PI||EVERYMAN^ADAM^^JR^^^L|19800101|M 2320
PV1|1|O|Ward|||||||||||||||12345
ORC|NW|||666^gastric|||||200309060824|222221^NURSE^NANCY|||||||||||Entero-gastric^^^^^^FI^^^EG02
TQ1|||||||||A
OBR||555_1^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S|||||222222^PHYSICIAN^^^^DR|822325 1
SPM|1|123456781^gastric ||SER|||||||P||||||200309060735|200309060821||||||||1
ORC|NW|||666^gastric|||||200309060710|222221^NURSE^NANCY|||||||||||Entero-gastric^^^^^^FI^^^EG02
TQ1|||||||||A 2330
OBR||555_2^chemistry||GLUC^GLUCOSE^L||||||1234^BLEEDER|S||||| 222222^PHYSICIAN^^^^DR|821
SPM|1|123456782^gastric||SER|||||||P||||||200309060755|200309060821||||||||1

The result in IRIS is:

Is the IHE document sample an invalid message?
Because of this issue I cannot handle this message in rules and DTL

6 Comments
Discussion (6)4
Log in or sign up to continue