検索

クリアフィルター
お知らせ
Mihoko Iijima · 2022年4月3日

【アーカイブ配信のお知らせ】Python Gateway のご紹介(2021年10月14日開催)

開発者のみなさん、こんにちは! 2021年10月に4回シリーズで開催した「InterSystems IRIS 開発者向けウェビナー」第2回目の「Python Gateway のご紹介」のアーカイブをYouTubeに公開いたしました。 InterSystems IRIS / IRIS for Health バージョン2021.1より、External Language Gateway に Python のサポートが追加されました。また、External Language Gateway の機能強化により外部ストアドプロシージャが利用できるようになり、Java、.Net、Python のコードを SQL から直接実行できるようになりました。 ウェビナーでは、Python からの利用法のついて、デモを交えながらご紹介しています。 ぜひご覧ください! (IRIS 2021.1新機能全体のご紹介については、こちらのYouTubeをご参照ください。) 【目次】 0:00 ご紹介内容の説明 2:26 PythonからIRISにアクセスする方法 5:07 キーバリュー形式でIRISにアクセスできる「Native API」とは 12:04 Python Gatewayのご紹介 16:21 Python Gateway 使用例 22:12 デモ 30:15 まとめ
お知らせ
Toshihiko Minamoto · 2022年3月15日

3/15 アラート: バージョン 2021.1.1 の非サポートについて

インターシステムズ社は、ObjectScript ルーチンのコンパイルが正しく行われない不具合を修正しました。 この不具合は、最近リリースされた 2021.1.1 バージョンのみに存在します。 InterSystems IRIS InterSystems IRIS for Health HealthShare Health Connect インターシステムズでは、2021.1.1 を使用しないことを推奨しています。ルーチンのコンパイルが正しく行われず、予測不可能なロジックの実行が発生する可能性があります。2021.1.1 のバージョンは、配布チャネルから削除されました。 インターシステムズ社は、この不具合を修正したバージョン 2021.1.2 をご利用ください。 ご参考までに、この修正プログラムはCDS3299として識別されます. この問題の影響を受けるのは2021.1.1 のみです。 このアラートについてご質問がございましたら、サポートセンター Worldwide Response Center までお問い合わせください。
記事
Hiroshi Sato · 2021年12月28日

MS Accessからのクエリで取得されるデータ項目値が全て"#Deleted"と表示される場合の対処方法

これは、InterSystems FAQサイトの記事です。 データ項目の値が”#Deleted"と表示される場合、MS Accessの設定でこの問題を回避することができます(MS Access2016以降)。 MS Accessのオプションより、「大きい数値(BigInt)データ型をサポート」にチェックを入れます。 設定後、リンクテーブルを一度閉じて、リンクの更新を行います。
記事
Tomoko Furuzono · 2022年3月29日

現在実行中のコードの位置(どの行を実行中か)を知る方法

これは、InterSystems FAQサイトの記事です。 現在実行中のコードの位置は、$STACK関数を使用して $STACK($STACK,"PLACE") で取得できます。 サンプルコードは以下ドキュメントをご参照ください。 現在実行中のコードの位置を取得する方法について【IRIS】現在実行中のコードの位置を取得する方法について

#Python

91 投稿1 フォロワー

#重要な質問

4 投稿0 フォロワー

#認証

5 投稿0 フォロワー
記事
Tomoko Furuzono · 2025年3月23日

クライアントーサーバ間の通信を暗号化する

これは、InterSystems FAQサイトの記事です。 クライアントーサーバ接続を担当するスーパーサーバで、SSLバージョン3とTLSバージョン1での通信が可能です。このオプションを利用することで、通信上のデータを暗号化できます。 その他、Kerberosを使うことで通信上の暗号化も可能です。
記事
Megumi Kakechi · 2022年7月26日

Embedded Python:lxmlを使用しWebスクレイピングした表の結果をグローバルに格納する

Embedded Python で Excel のデータを IRIS グローバルに格納する方法 では Excel データを pandas.DataFrame に取り込んで、それを InterSystems IRIS グローバルに保存する方法をご紹介しました。 今回は「lxml を使用し Web スクレイピングした表(テーブル)のデータを InterSystems IRIS グローバルに格納する」方法をご紹介します。 ※以下は Windows 上の IRIS でのインストール方法になります。 UNIX ベースのシステムでは、pip3 コマンドを使用してインストールします。詳細は ドキュメント をご覧ください。 最初に、irispip コマンドで必要なライブラリをインストールします。今回は、pandas、lxml の2つのライブラリをインストールします。 >cd C:\InterSystems\IRIS\bin C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python pandas C:\InterSystems\IRIS\bin>irispip install --target C:\InterSystems\IRIS\mgr\python lxml 今回サンプルで使用するのは、Yahoo!ファイナンスでみる 日本郵政(株) の株価時系列データです。 https://finance.yahoo.co.jp/quote/6178.T/history VSCode または IRISスタジオで次のようなクラスを作成します。メソッドの宣言部に [ Language = Python ] と指定することで、クラスのメソッドに直接 Pythonコードを書くことができます。 Class User.PythonTest2 Extends %Persistent { ClassMethod fromPythonString(in As %String) { set ^ISJ2($increment(^ISJ2))=$LISTFROMSTRING(in,",") } ClassMethod PythonWebScraping(webadd as %String) [ Language = python ] { import iris import pandas as pd import lxml dfs = pd.read_html(webadd) for key,row in dfs[0].iterrows(): moji=",".join(list(map(str, row))) iris.cls(__name__).fromPythonString(moji)} } IRISターミナルから正しく実行できるかを確認します。 USER>kill ^ISJ2 USER>do ##class(User.PythonTest2).PythonWebScraping("https://finance.yahoo.co.jp/quote/6178.T/history") USER>zwrite ^ISJ2 ^ISJ2=20 ^ISJ2(1)=$lb("2022年7月25日","963.0","966.3","962.1","965.2","5200900","965.2") ^ISJ2(2)=$lb("2022年7月22日","965.1","967.1","959.0","965.0","8665700","965.0") ^ISJ2(3)=$lb("2022年7月21日","973.4","977.5","971.5","972.1","11539000","972.1") ^ISJ2(4)=$lb("2022年7月20日","971.2","974.8","968.2","974.8","8864700","974.8") ^ISJ2(5)=$lb("2022年7月19日","966.8","970.9","962.4","966.6","5714100","966.6") ^ISJ2(6)=$lb("2022年7月15日","970.0","970.6","956.6","962.7","9064300","962.7") ^ISJ2(7)=$lb("2022年7月14日","975.0","976.9","966.5","968.7","10921300","968.7") ^ISJ2(8)=$lb("2022年7月13日","984.0","986.5","981.8","982.3","6361500","982.3") ^ISJ2(9)=$lb("2022年7月12日","981.0","985.8","978.8","981.7","8801600","981.7") ^ISJ2(10)=$lb("2022年7月11日","979.0","987.0","975.0","981.5","10416500","981.5") ^ISJ2(11)=$lb("2022年7月8日","971.7","977.6","968.3","973.6","10220600","973.6") ^ISJ2(12)=$lb("2022年7月7日","979.0","984.0","965.1","969.8","10874300","969.8") ^ISJ2(13)=$lb("2022年7月6日","975.0","976.1","964.1","970.8","12283000","970.8") ^ISJ2(14)=$lb("2022年7月5日","985.0","989.6","980.2","988.4","9458900","988.4") ^ISJ2(15)=$lb("2022年7月4日","975.0","983.1","972.3","983.1","9618800","983.1") ^ISJ2(16)=$lb("2022年7月1日","974.0","986.7","969.2","971.0","15510400","971.0") ^ISJ2(17)=$lb("2022年6月30日","957.9","971.0","952.1","969.1","11908700","969.1") ^ISJ2(18)=$lb("2022年6月29日","965.5","972.8","961.3","962.9","28123200","962.9") ^ISJ2(19)=$lb("2022年6月28日","951.5","967.6","948.3","967.6","12559200","967.6") ^ISJ2(20)=$lb("2022年6月27日","960.0","960.6","946.8","952.3","15059600","952.3") USER> Pythonプログラムのデバッグを行いたい場合は、 Python シェルに切り替えて確認することができます。 USER>kill ^ISJ2 USER>do ##class(%SYS.Python).Shell() Python 3.9.5 (default, May 31 2022, 12:35:47) [MSC v.1927 64 bit (AMD64)] on win32 Type quit() or Ctrl-D to exit this shell. >>> import pandas as pd >>> import lxml >>> import iris >>> dfs = pd.read_html(f'https://finance.yahoo.co.jp/quote/6178.T/history') >>> for key,row in dfs[0].iterrows(): ... moji=",".join(list(map(str, row))) ... iris.cls('User.PythonTest2').fromPythonString(moji) ... >>> exit() USER>zw ^ISJ2 ^ISJ2=20 ^ISJ2(1)=$lb("2022年7月25日","963.0","966.3","962.1","965.2","5200900","965.2") ^ISJ2(2)=$lb("2022年7月22日","965.1","967.1","959.0","965.0","8665700","965.0") ^ISJ2(3)=$lb("2022年7月21日","973.4","977.5","971.5","972.1","11539000","972.1") ^ISJ2(4)=$lb("2022年7月20日","971.2","974.8","968.2","974.8","8864700","974.8") ^ISJ2(5)=$lb("2022年7月19日","966.8","970.9","962.4","966.6","5714100","966.6") ^ISJ2(6)=$lb("2022年7月15日","970.0","970.6","956.6","962.7","9064300","962.7") ^ISJ2(7)=$lb("2022年7月14日","975.0","976.9","966.5","968.7","10921300","968.7") ^ISJ2(8)=$lb("2022年7月13日","984.0","986.5","981.8","982.3","6361500","982.3") ^ISJ2(9)=$lb("2022年7月12日","981.0","985.8","978.8","981.7","8801600","981.7") ^ISJ2(10)=$lb("2022年7月11日","979.0","987.0","975.0","981.5","10416500","981.5" ) ^ISJ2(11)=$lb("2022年7月8日","971.7","977.6","968.3","973.6","10220600","973.6") ^ISJ2(12)=$lb("2022年7月7日","979.0","984.0","965.1","969.8","10874300","969.8") ^ISJ2(13)=$lb("2022年7月6日","975.0","976.1","964.1","970.8","12283000","970.8") ^ISJ2(14)=$lb("2022年7月5日","985.0","989.6","980.2","988.4","9458900","988.4") ^ISJ2(15)=$lb("2022年7月4日","975.0","983.1","972.3","983.1","9618800","983.1") ^ISJ2(16)=$lb("2022年7月1日","974.0","986.7","969.2","971.0","15510400","971.0") ^ISJ2(17)=$lb("2022年6月30日","957.9","971.0","952.1","969.1","11908700","969.1" ) ^ISJ2(18)=$lb("2022年6月29日","965.5","972.8","961.3","962.9","28123200","962.9" ) ^ISJ2(19)=$lb("2022年6月28日","951.5","967.6","948.3","967.6","12559200","967.6" ) ^ISJ2(20)=$lb("2022年6月27日","960.0","960.6","946.8","952.3","15059600","952.3" ) USER> いかがでしょうか? みなさんもWebスクレイピングでいろいろなデータをIRISに取り込んでみましょう! 今回使用したサンプルはこちらにあります。 👉https://github.com/Intersystems-jp/WebScrapingToGlobal
お知らせ
Toshihiko Minamoto · 2021年2月19日

グローバルマスターズの新たな賞品としてラズパイ4 8GB、Logitech Webカメラ、レザーウォレットが追加されました!

開発者の皆さん、こんにちは。 [スペシャリストレベル](https://community.intersystems.com/post/global-masters-levels-descriptions)以上の方へ、グローバルマスターズの新たな🎁賞品が加わりました! **➡️ Raspberry Pi 4 8GB + InterSystems IRIS Community Image セットの予約注文** このセットには、Ubuntu 18.04 64 bit + Docker + InterSystems IRIS Community Editionが入った64GB MicroSD カードと Raspberry Pi 4 8GB、 紅白ケースが入っています。 ![](/sites/default/files/inline/images/raspberri-pi-small.jpg)   **➡️ Logitech C920S Pro HD 1080p Webカメラ** C920sはフルHDガラスレンズ、78度の視野角、HD自動光補正に加え、クリアなステレオサウンドを実現するデュアルマイクを搭載し、驚くほど鮮明で繊細なフルHDビデオ(1080p、30fps)を実現しています。電話会議や美しいデモの録画に必要なすべてがそろっています。 ![](/sites/default/files/inline/images/webcam.jpg)   **➡️ ネーム入りプレミアムレザーウォレット** - 正面にネームが入ったクラシックなハンドメイド財布です。化粧箱に入れて、世界中にお届けします。 お好きな[フォントと色をお選びください](http://images.vfl.ru/ii/1607497346/355d5bf7/32599927.jpg) ![](/sites/default/files/inline/images/wallet.jpg)   ### グローバルマスターズの[賞品カタログ](https://intersystems.influitive.com/rewards)をチェック! * * * >> グローバルマスターズのメンバーでない方は[こちら](https://intersystems.influitive.com/) からWRCアカウントでサインインできます   グローバルマスターズに関する追加情報: _ グローバルマスターズアドボケートハブとは?InterSystems のグローバルマスターズでポイントを獲得する方法
お知らせ
Yoichi Miyashita · 2021年7月28日

警告: SQL標準でない GROUP BY クエリで間違った結果が返る

対象バージョン InterSystems IRIS および IRIS for Health: 2019.1.0 以降 対象プラットフォーム すべて InterSystemsは、間違ったクエリ結果が返る問題を修正しました。この問題は上記の InterSystems 製品のバージョンで発生する可能性があります。 問題の詳細以下のすべての条件をみたした場合、クエリ結果が不正確な可能性があります。 GROUP BY を使用し、かつ、COUNT などの集計を使って「いない」 GROUP BY で指定して「いない」フィールドを SELECT で指定し(*)、かつ、そのフィールドが WHERE 条件に含まれている 単一のインデックスによりクエリ結果が取得でき、かつ、そのインデックスが GROUP BY で指定されたフィールドから始まっている (*) グループ化していないフィールドを SELECT に含めることは、 InterSystems SQL独自の拡張であり、SQL標準でないことにご注意ください。 この問題により、上記をみたすクエリでは WHERE 条件が結果に正しく反映されません。すなわち、条件をみたさない行を含むクエリ結果を返すことになります。なお、この警告の最後に、問題の影響を受けるクエリと受けないクエリ例を掲載しています。 解決方法この問題は修正ID: AK1043 で解決します。この修正は今後リリースされるInterSystems IRIS および IRIS for Health 2020.1.2 や 2021.1.1 を含むすべての製品に含まれる予定です。また、お客様のご要望により、修正を現在お使いの製品に対するパッチとして個別に作成してご提供することが可能です。 ※HealthShare をお使いのお客様へInterSystems にて HealthShare ファミリーの製品をレビューした結果、上記条件をみたすクエリは、製品内部で使用されていないことが判明しました。ただし、HealthShare 製品とは別に InterSystems IRIS 機能を使われているお客様は、ご自身で作成されたアプリケーションやカスタマイズがこの問題の影響を受けるかご確認いただく必要があります。 クエリ例本問題の影響に関するクエリ例をお伝えします。ここでは test.TestTable テーブル を用いて説明します。テーブルには 3つのInteger プロパティと 1つのインデックスが、以下のように定義されています。 Property Int1 As %Integer;Property Int2 As %Integer;Property Int3 As %Integer;Index GroupBy On (Int1, Int2); 影響を受けるクエリ SELECT Int1, Int2 FROM test.TestTable WHERE Int2 > 1 GROUP BY Int1 このクエリは上記の条件をみたすため、本問題の影響を受けます。そのため Int2 <= 1 の行も誤って表示されます。 SELECT Int1, ID FROM test.TestTable WHERE Int2 <= 1 GROUP BY Int1 このクエリも本問題の影響をうけます。IDがインデックスに含まれるため結果をインデックスから直接取得できるからです。 そのため Int2 > 1 の行も誤って表示されます。 影響を受けないクエリ SELECT Int1, Int2 FROM test.TestTable WHERE Int2 > 1 GROUP BY を使用していないため、影響を受けません。 SELECT Int1, Int2, COUNT(*) FROM test.TestTable WHERE Int2 > 1 GROUP BY Int1 COUNT 集計を使用しているため、影響を受けません。 SELECT Int1, Int2 FROM test.TestTable WHERE Int1 > 1 GROUP BY Int1 SELECT Int1, Int2 FROM test.TestTable GROUP BY Int1 いずれのクエリも「GROUP BY で指定していないフィールドが WHERE 条件に含まれている」条件にあてはまらないため、影響を受けません。 SELECT Int1, Int2 FROM test.TestTable WHERE Int1 > 1 GROUP BY Int2 テーブルの複合インデックスが GROUP BY で指定しているフィールドから 始まっていないため、影響を受けません。 SELECT Int1, Int2 FROM test.TestTable WHERE Int2 > 1 AND Int3 > 1 GROUP BY Int1 SELECT Int1, Int3 FROM test.TestTable WHERE Int2 > 1 GROUP BY Int 1 いずれのクエリも Int3 フィールドを使っており、このフィールドはインデックスに格納されていません。つまり、このクエリは、インデックスのみから 結果を取得できないため、影響を受けません。
記事
Makiko Kokubun · 2021年4月6日

動画:他形式データからFHIR への変換

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。 既に運用されている電子カルテ・処方のデータや蓄積されているデータを、FHIR に変換して活用したいというニーズは、FHIR アプリケーションを構築するにあたり最も多いご要望の一つです。 この動画では、InterSystems IRIS for Health を使用して、HL7/SS-MIX2 やCSV など他形式のデータから FHIR データへ変換する方法について、デモをまじえてご紹介いたします。 この開発者コミュニティでは他にも IRIS の FHIR 機能に関連した多くの記事を公開しています。FHIR にご興味ある方はぜひご覧ください。 FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介 Azure 上で IRIS for Health をデプロイし、FHIR リポジトリを構築する方法 その他FHIR関連記事 (#FHIRタグ)
記事
Makiko Kokubun · 2021年5月11日

動画:FHIR プロファイル

*この動画は、2021年2月に開催された「InterSystems Japan Virtual Summit 2021」のアーカイブです。 国や地域のニーズに合わせて何のデータをどこにどのように格納するのかを定める共通ルールである FHIR プロファイルは、FHIR による標準化において、非常に重要な要素です。 この動画では、InterSystems IRIS for Health における FHIR リポジトリの構築・設定~ FHIR プロファイルの追加の方法を、最新バージョンおよび今後のバージョンでのサポート内容を含めてご紹介いたします。 この開発者コミュニティでは他にも IRIS の FHIR 機能に関連した多くの記事を公開しています。 FHIR にご興味ある方はぜひご覧ください。 FHIR R4 リソースリポジトリを簡単にお試しいただける開発環境テンプレートのご紹介 Azure 上で IRIS for Health をデプロイし、FHIR リポジトリを構築する方法 その他FHIR関連記事 (#FHIRタグ)
記事
Tomoko Furuzono · 2025年3月27日

ジャーナルの整合性チェックやサマリの表示をコマンドで実行する方法

これは、InterSystems FAQ サイトの記事です。 管理ポータルの [システムオペレーション] > [ジャーナル]のページで実行できる、 整合性チェックの実行や、サマリーの表示は、%SYS.Journal.File クラスのメソッドやクエリでも実行することができます。 クラスリファレンス:%SYS.Journal.File 以下、実行例です。※全て、%SYSネームスペースで実行します。 (1) 整合性チェック set status = ##class(%SYS.Journal.File).CheckIntegrity(<ジャーナルファイルパス>,1)// 整合性チェックで問題なければ status=1 (2)サマリー set status = ##class(%SYS.Journal.File).Summary(<ジャーナルファイルパス>,.info) (実行結果の表示) zwrite info---------------------------------------------------info("CreationTime")="2023-01-25 08:02:29"info("FileCount")=49info("FileGUID")="AFA2FDD7-63C4-4F28-BFB7-183F4B219ED8"info("MaxSize")=1073741824info("MinTransFileCount")=47info("MinTransFileIndex")=337795332info("PrevFile")="c:\intersystems\irishealth202211\mgr\journal\20230125.001"info("PrevFileEnd")=263504info("PrevFileGUID")="AFF93919-F5EA-4F9A-B5E7-C6E86834E619" (3) ジャーナルファイルに含まれるデータベースのリストの取得 set rset = ##class(%ResultSet).%New("%SYS.Journal.File:DatabaseList") set sc = rset.Execute(ジャーナルファイルパス) while (rset.Next()) { write rset.%GetData(1),"-", rset.%GetData(2),! } do rset.Close()
記事
Hiroshi Sato · 2021年12月21日

監査ログをプログラムで出力(ユーザやイベント指定など)する方法

これは、InterSystems FAQサイトの記事です。 監査ログをプログラミングで出力するために、監査ログの一覧を取得する%SYS.Audit クラスのListクエリを利用することができます。 サンプルコードは以下のようになります。 Set statement=##class(%SQL.Statement).%New() Set status=statement.%PrepareClassQuery("%SYS.Audit","List") Set rs=statement.%Execute() Set tab = $char(9) While rs.%Next() { Write rs.%Get("TimeStamp")_tab_rs.%Get("Event")_tab_rs.%Get("Username"),! }