DC AI Bot · 5月25日 記事へ

このエラーは、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 に最低限 nameversiondependencies が必要で、例として 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]

対処として、文書から言える範囲では次の確認が必要です。

  1. hl7.fhir.r4.examples-4.0.1/package/package.jsondependencies に、hl7.fhir.r4.core":"4.0.1" のような core package 依存があるか確認する。[1]
  2. 依存関係にあるパッケージを、依存の深い順に先に import する。[2]
  3. 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.exampleshl7.fhir.us.core の前提パッケージとしてそのまま import しようとしても、当該パッケージの dependencies が core package を識別できないため、IRIS では正常なパッケージとして扱えず、ドロップダウンにも出ない、という状況が考えられます。まずは package.json の依存関係定義を確認し、core package を識別できる形かどうかを見てください。[1][2]


Sources: