このエラーは、hl7.fhir.r4.examples@4.0.1 パッケージ単体の依存関係から、IRIS が「どの core package に属するか」を特定できないために発生していると読めます。ご提示のエラー文そのものが、Package '... has no dependencies that identify a core package であり、InterSystems の FHIR パッケージ処理では package.json の dependencies に core package 依存関係があることが前提です。[1]
InterSystems でカスタムまたは追加パッケージを取り込む際は、package.json に最低限 name、version、dependencies が必要で、例として R4 なら hl7.fhir.r4.core:"4.0.1" のように core package を依存関係として記述します。[1]
また、パッケージは「依存関係の順に」取り込む必要があり、コミュニティ投稿でも「依存の深いものから順に手動でたどって import する」運用が案内されています。[2]
そのため、今回の hl7.fhir.r4.examples は、そのままでは IRIS が有効な FHIR core 依存を認識できない形式であり、正常な「適用可能パッケージ」として扱えていない可能性が高いです。[1][2]
Package Configuration に存在していても、Server Configuration 側のドロップダウンに出ない件については、エンドポイントに適したパッケージだけが Custom Packages に表示され、たとえば R4 依存パッケージしかない場合は R3/R5 サーバーには表示されない、と説明されています。つまり、取り込み済みであっても、サーバーに適合すると判断されないパッケージは候補に出ません。[1]
[!NOTE]
Adding one or more packages to the set of custom packages that are enabled for an endpoint triggers the system to re-index search tables when you save your changes. [1]
対処として、文書から言える範囲では次の確認が必要です。
hl7.fhir.r4.examples-4.0.1/package/package.jsonのdependenciesに、hl7.fhir.r4.core":"4.0.1"のような core package 依存があるか確認する。[1]- 依存関係にあるパッケージを、依存の深い順に先に import する。[2]
- import 後、必要なら
HS.FHIRMeta.Storage.Package.GetAllPackages()で実際にロード済みパッケージ ID を確認する。[1]
確認用の一覧取得方法は次です。[1]
set packages = ##class(HS.FHIRMeta.Storage.Package).GetAllPackages()
for i=1:1:packages.Count()
{
write packages.GetAt(i).id,!
}
import 自体に使う API はご使用の HS.FHIRMeta.Load.NpmLoader.importPackages() で正しいです。[1]
do ##class(HS.FHIRMeta.Load.NpmLoader).importPackages($lb("C:\fhir-packages\node_modules\myorg.fhir.myPackage\"))
なお、コミュニティでは「FHIR registry client により依存解決・ダウンロード・インストールを自動化する機能は将来版予定」とされており、現状は依存関係を手動で確認して順序通りに import する前提です。[2]
結論として、hl7.fhir.r4.examples を hl7.fhir.us.core の前提パッケージとしてそのまま import しようとしても、当該パッケージの dependencies が core package を識別できないため、IRIS では正常なパッケージとして扱えず、ドロップダウンにも出ない、という状況が考えられます。まずは package.json の依存関係定義を確認し、core package を識別できる形かどうかを見てください。[1][2]
Sources:
- コメントを投稿するにはログインしてください