各製品の資料を入手。
詳細はこちら →FHIR のデータをDevExpress Data Grid にデータバインドする。
FHIR 用の CData ADO.NET プロバイダーをDevExpress Windows Forms とWeb コントロールとともに使用し、FHIR をチャートに入力します。
最終更新日:2022-01-31
この記事で実現できるFHIR 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
FHIR 用の CData ADO.NET プロバイダーはサードパーティーコントロールで使うことのできる通常のADO.NET データベースアクセスコンポーネントを実装しています。データバインドするための通常のADO.NET プロセスに従うことで、UI コントロールから実データへの双方向アクセスを可能にします。 この記事では、CData を使ってDevExpress Windows Forms とウェブコントロールにデータバインドする方法を説明します。ここでは、最新のデータを表示するチャートにデータバインドします。
URL をFHIR サーバーのService Base URL に設定します。これは接続したいFHIR サーバーでリソースが定義されているアドレスです。ConnectionType をサポートされている接続タイプに設定します。ContentType をドキュメントのフォーマットに設定します。AuthScheme をFHIR サーバーの認証要件に基づいて設定します。
汎用、Azure ベース、AWS ベース、およびGoogle ベースのFHIR サーバー実装がサポートされます。
Service Base URL のサンプル
- 汎用:http://my_fhir_server/r4b/
- Azure:https://MY_AZURE_FHIR.azurehealthcareapis.com/
- AWS:https://healthlake.REGION.amazonaws.com/datastore/DATASTORE_ID/r4/
- Google:https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/
汎用FHIR インスタンス
CData 製品はFHIR のカスタムインスタンスへの接続をサポートします。カスタムFHIR サーバーへの認証はOAuth で行います(OAuth の詳細はヘルプドキュメントを参照してください)。カスタムFHIR インスタンスに接続する前に、ConnectionType をGenericに設定する必要があります。
Windows Forms コントロール
下のコードでは、FHIR でDevExpress のチャートに追加する方法を説明します。FHIRDataAdapter はチャートコントロールのSeries プロパティにバインドします。コントロールのDiagram プロパティはx 軸とy 軸をカラム名として定義します。
using (FHIRConnection connection = new FHIRConnection(
"URL=http://test.fhir.org/r4b/;ConnectionType=Generic;ContentType=JSON;AuthScheme=None;")) {
FHIRDataAdapter dataAdapter = new FHIRDataAdapter(
"SELECT Id, [name-use] FROM Patient WHERE [address-city] = 'New York'", connection);
DataTable table = new DataTable();
dataAdapter.Fill(table);
DevExpress.XtraCharts.Series series = new DevExpress.XtraCharts.Series();
chartControl1.Series.Add(series);
DataTable table = new DataTable();
series.ValueDataMembers.AddRange(new string[] { "[name-use]" });
series.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Qualitative;
series.ArgumentDataMember = "Id";
series.ValueScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}

Web コントロール
下のコードではFHIR でDevExpress Web を操作するための設定方法を説明します。FHIRDataAdapter はチャートのSeries プロパティにバインドします。Diagram プロパティはx 軸とy 軸をカラム名として定義します。
using DevExpress.XtraCharts;
using (FHIRConnection connection = new FHIRConnection(
"URL=http://test.fhir.org/r4b/;ConnectionType=Generic;ContentType=JSON;AuthScheme=None;"))
{
FHIRDataAdapter FHIRDataAdapter1 = new FHIRDataAdapter("SELECT Id, [name-use] FROM Patient WHERE [address-city] = 'New York'", connection);
DataTable table = new DataTable();
FHIRDataAdapter1.Fill(table);
DevExpress.XtraCharts.Series series = new Series("Series1", ViewType.Bar);
WebChartControl1.Series.Add(series);
DataTable table = new DataTable();
series.ValueDataMembers.AddRange(new string[] { "[name-use]" });
series.ArgumentScaleType = ScaleType.Qualitative;
series.ArgumentDataMember = "Id";
series.ValueScaleType = ScaleType.Numerical;
((DevExpress.XtraCharts.SideBySideBarSeriesView)series.View).ColorEach = true;
}