@Mihoko.Iijimaさん、ご返信ありがとうございます。 

クラス定義変更前のデータ(グローバル変数)を修正後の新しいクラス定義でも使用したいなどありますか?

簡単に背景をご説明しますと、永続クラスの定義の基となる標準規格のバージョンがあがり、一部の永続クラスの構造が変化してしまいました。

そのため、新バージョンクラスと旧バージョンクラスを別々に定義し(旧バージョンは名称変更はせず、現状のまま残しておきます)、導入時にはデータ移行プログラム(一度だけ実行するDTLを作成しようと思っています)で旧クラスから新クラスにデータコピーを検討しています。

旧バージョンから新バージョンへの切り替えも、ユーザーの任意のタイミングで実行できるよう、柔軟性を持たせた作りにする予定ですが、その部分はアイデアがあるためユーザーと相談中です。

クラス名が31文字を超える永続クラスをIRIS管理ポータルからクラスエクスポートしました。

一部リネームしたくて、エクスポートしたファイルを直接編集し、クラス名にパッケージ名を追加しました。

編集後、管理ポータルからクラスのインポート(元データはIRIS管理ポータルからエクスポートしたexport.xml)を行うと、グローバル名の31文字制限エラーが出力されますが、インポート対象のネームスペースにはクラスが取り込まれているようでした。(クラスは新規追加を想定)

ですが、ストレージ定義の部分で31文字制限にかかっているようで、一度VSCodeなどでインポートしたクラスを開いてストレージ定義をすべて消して保存(コンパイル)したらエラーが出なくなりました。

対応としてはこれで問題ないでしょうか。

@Mihoko Iijima さん、ご返信ありがとうございます。

ライブラリは既にインストール済でしたが、インストールコマンドが異なっていたためご連絡いただいたコマンドを実行しました。(元々実行していたコマンドは、以下の通りドキュメントを参考にしていました)

.\irispip install --target C:\InterSystems\IRISHealth\mgr\python flask

結果、同様の現象が出てしまっております。

irispip list した結果です。

 
Spoiler

irispip check でも「No broken requirements found.」と表示されており、依存関係の問題はなさそうです。

調べた結果、パスを通す必要があるのかと思い、関係ありそうなパスを設定して再起動なども試しましたが、それでもダメでした。なにか他に思い当たる問題はありますでしょうか。

■環境変数に登録したパス

  • <installDir>\mgr\python
  • <installDir>\lib\python
  • <installDir>\lib\python\Scripts
  • <installDir>\bin

確認のお知らせメールが届いたので内容を確認したところ、GitHubのリンクが貼られておりました。

こちらの案内にございます、(3) pythonライブラリのimport確認における

from flask import Flask,render_template
from sqlalchemy import create_engine
from nicegui import ui

を一行ずつ実行したところ、以下のようなエラーが出力されましたが、どのように対処すればよろしいでしょうか。(2024.1環境です)

Python 3.12.3 (tags/v3.12.3:f6650f9, Apr  9 2024, 14:05:25) [MSC v.1938 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from flask import Flask,render_template
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'flask'
>>> from sqlalchemy import create_engine
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sqlalchemy'
>>> from nicegui import ui
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'nicegui'

既に製品版のIRIS for Health 2024.1.1を開発ライセンスでインストール済で、

初期セキュリティ設定は「通常」で設定されておりますが、どこか構成を変更したほうがよいでしょうか。