@Shuichi Igusa さん、こんにちは。

1つ目のご質問についてですが、

実際のデータが登録されているテーブルは「HSFHIR_X0001_S.Patient」かと思いますが、どこでInsert文が流れているのでしょうか。

IRIS for HealthのFHIRリポジトリの内部処理内で行われているため、詳細は非公開となります。申し訳ありません。

2つ目のご質問の「HSFHIR_X0001_S.Patient」のclsファイルですが、FHIRリポジトリ作成の中で自動生成されるクラスのため、お試しいただいているテンプレートの中には含まれないファイルです。

自動生成されたクラスは、クラスリファレンスであればご覧いただけます。(VSCodeの左下に見える接続文字列をクリックすると画面中央上部に「Open Class Reference」のリンクが表示されます)

クラスリファレンスの画面左でパッケージ名の階層を展開するとクラス名が確認できるのでクリックすると画面右側に詳細が表示されます。

ぜひご確認ください。

@Ohata.Yujiさん、こんにちは

単独で作成されているグローバル変数に対してSQLを発行するためには、クラス定義のストレージの定義を「デフォルトストレージ」から「SQLストレージ」に変更する必要があります。

丁度、似たグローバル構造に対してSQLストレージを作成する例がFAQトピックにありました。

既存のグローバルデータをオブジェクトやSQLインタフェースから利用する方法はありますか?

(添付の参考資料にあるPDFのP2~9までの ^KIONデータに対する定義が対象です。SQLストレージを作成する場合、スタジオのインスペクタを使っていただくと作りやすいかと思います。)

こんな感じで試してみました。

(^Testの右辺のデータを Data1プロパティで操作できるように定義してみました)

Class Gbl.Test Extends %Persistent [ StorageStrategy = MyGlobalStorage ]
{

Property Key1 As %Integer [ Required, SqlColumnNumber = 2 ];

Property Key2 As %String [ Required, SqlColumnNumber = 3 ];

Property Data1 As %String;

Index KeyIndex On (Key1, Key2) [ IdKey, Unique ];

ClassMethod createdata()
{
	set ^Test(1,2)="A"
	set ^Test(1,3)="B"
	set ^Test(2,1)="C"
	set ^Test(2,2)="D"
}

Storage MyGlobalStorage
{
<SQLMap name="GblMap">
<Data name="Data1">
<Delimiter>"^"</Delimiter>
<Piece>1</Piece>
</Data>
<Global>^Test</Global>
<RowIdSpec name="1">
<Expression>{L1}</Expression>
<Field>Key1</Field>
</RowIdSpec>
<RowIdSpec name="2">
<Expression>{L2}</Expression>
<Field>Key2</Field>
</RowIdSpec>
<Subscript name="1">
<Expression>{Key1}</Expression>
</Subscript>
<Subscript name="2">
<Expression>{Key2}</Expression>
</Subscript>
<Type>data</Type>
</SQLMap>
<StreamLocation>^Gbl.TestS</StreamLocation>
<Type>%Storage.SQL</Type>
}

}

DBeaverからの参照はこんな感じです。

このようなイメージであっていますでしょうか。

Hiroseさん、こんにちは。

独自のアプリケーションのパスのハンドラーマッピングの設定で、

要求パス(*.cspなど)の設定画面にある「要求の制限」ボタンクリック後に開く画面内「要求のマップ先が次の場合のみハンドラーを呼び出す」のチェックボックスに、チェックが入っていましたら、外してみていただけますでしょうか。

@Yuji Ohata さん、こんにちは。

試してみましたが、SECONDARYデータベースできませんねsad

マニフェストを使った方法ではないのですが、以下のメソッドを使うとできるようでした。

set st=##class(%EnsembleMgr).CreateNewDBForSecondary("ネームスペース名",1)

(別の内容についての注意書きですが、ドキュメントだとこちらに記載がありました。)

マニフェストの <Invoke> を使って呼び出してみた結果は以下の感じでした。

<Invoke Class="%EnsembleMgr" Method="CreateNewDBForSecondary" CheckStatus="true">
<Arg Value="${Namespace}"/>
<Arg Value="1"/>
</Invoke>

↓できあがったデータベース↓

Amanoさん、こんにちは。

settings.json に以下1行追記すると、サーバ側コードを直接VSCodeから編集できます(ローカルにExportせずサーバ側コードを操作できます)。

"objectscript.serverSideEditing": true,

全体だとこんな感じです。

{
    "objectscript.serverSideEditing": true,
    "objectscript.conn": {
        "server": "test",
        "active": true,
        "ns": "USER",
    },
    "intersystems.servers": {    
    "test": {
          "webServer": {
              "scheme": "http",
              "host": "localhost",
              "port": 52773
          },
          "username": "_SYSTEM",
      },
  }
}

CSPのExportのボタンですが、うまく動かないそうで(6つ目の箇条書き)crying 非表示になってるようでした。

その他、クラスやルーチンのように、ワークスペースで書いたCSPファイルをファイル保存の動作でサーバ側にインポート+コンパイルできるようにしてほしい!のリクエストは上がっていたのですが、まだできてないようでした。

進捗あったらお知らせします!