このチュートリアルでは、Azure Logic Apps を使って Azure Health Data Services FHIR® のイベントを処理する方法について説明します。 Logic Apps は、他のアプリケーションからのイベント データを処理するための自動化されたワークフローを作成して実行します。 ロジック アプリに FHIR イベントを登録し、指定したイベント条件を満たし、サービス操作を実行する方法について説明します。
ロジック アプリ ワークフローの例を次に示します。
ワークフローは左側にあり、トリガー条件は右側にあります。
概要
FHIR イベントを使用するロジック アプリ ワークフローを作成するには、次の手順に従います。
- 前提条件の設定
- ロジック アプリの作成
- ロジック アプリ ワークフローを作成する
前提条件
このチュートリアルを開始する前に、FHIR サービスと有効なイベントをデプロイしておく必要があります。 イベントのデプロイの詳細については、「Azure portal を使用してイベントをデプロイする」を参照してください。
ロジック アプリの作成
自動化されたワークフローを設定するには、まずロジック アプリを作成する必要があります。 Logic Apps の詳細については、「Azure Logic Apps とは」を参照してください。
ロジック アプリの詳細を指定する
次のステップを実行します。
- Azure ポータルにアクセスします。
- ロジック アプリを検索します。
- [追加] を選択します。
- [基本] の詳細を指定します。
- [ホスティング] を指定します。
- [監視] を指定します。
- [タグ] を指定します。
- ロジック アプリの [確認と作成] を実行します。
ここで、ロジック アプリの詳細を入力する必要があります。 個別のタブに一覧表示される 5 つのカテゴリの情報を指定します。
- タブ 1 - 基本
- タブ 2 - ホスティング
- タブ 3 - 監視
- タブ 4 - タグ
- タブ 5 - 確認と作成
基本 - タブ 1
まず、次の基本情報を指定します。
プロジェクトの詳細
- サブスクリプション
- リソース グループ
現在のサブスクリプションを選択し、既存または新しいリソース グループを指定します。
インスタンスの詳細
- ロジック アプリ名
- 発行の種類
- リージョン
ロジック アプリの名前を作成します。 発行の種類として、[ワークフロー] または [Docker コンテナー] のいずれかを選択する必要があります。 プランと互換性のあるリージョンを選択します。
プラン
- プランの種類
- App Service プラン
- SKU とサイズ
プランの種類 ([Standard] または [従量課金]) を選択します。 新しい Windows プラン名を作成し、SKU とサイズを指定します。
ゾーン冗長性
- ゾーン冗長デプロイ
プランを有効にすると、プランはゾーン冗長になります。
ホスティング - タブ 2
[次へ: ホスティング] を選択して、ロジック アプリの指定を続行します。
Storage
- ストレージの種類
- ストレージ アカウント
使用するストレージの種類とストレージ アカウントを選択します。 Azure Storage を使用することも、SQL 機能を追加することもできます。 新しいストレージ アカウントを作成するか、既存のストレージ アカウントを使用する必要があります。
監視 - タブ 3
[次へ: 監視] を選択して、ロジック アプリの指定を続行します。
Application Insights による監視
- Application Insights を有効にする
- Application Insights
- リージョン
Azure Monitor Application Insights を有効にして、アプリケーションを自動的に監視します。 Insights を有効にする場合は、新しい分析情報を作成し、リージョンを指定する必要があります。
タグ - タブ 4
[次へ: タグ] を選択して、ロジック アプリの指定を続行します。
タグを使用してリソースを分類する
タグは名前と値のペアで、同じタグを複数のリソースやリソース グループに適用することでリソースを分類したり、統合した請求を表示したりできるようにします。
この例では、タグ付けを使用しません。
確認と作成 - タブ 5
[次へ: 確認と作成] を選択して、ロジック アプリの指定を終了します。
ロジック アプリを確認する
提案されるロジック アプリについて、次の詳細が表示されます。
- サブスクリプション
- リソース グループ
- ロジック アプリ名
- ランタイム スタック
- ホスティング
- Storage
- プラン
- 監視
提案された構成に問題がなければ、[作成] を選択します。 問題がある場合は、[前へ] を選択して戻り、新しい詳細を指定します。
最初に、デプロイが初期化中であることを示すアラートが表示されます。 次に、デプロイが進行中であることを示す新しいページが表示されます。
エラーがない場合は、デプロイが完了したことを示す通知が表示されます。
ロジック アプリ ダッシュボード
ロジック アプリが完了すると、Azure によってダッシュボードが作成されます。 このダッシュボードには、アプリの状態が表示されます。 [ロジック アプリ] メニューで [概要] を選択すると、ダッシュボードに戻ることができます。 ロジック アプリ ダッシュボードの画像を次に示します。
ダッシュボードから次のアクティビティを実行できます。
- 参照
- 最新のステータスに更新
- Stop
- Restart
- Swap
- 発行プロファイルの取得
- 発行プロファイルのリセット
- 削除
ロジック アプリ ワークフローの作成
ロジック アプリの実行中、次の手順に従ってロジック アプリ ワークフローを作成します。
- ワークフローの初期化
- ワークフローの構成
- ワークフローの設計
- アクションの追加
- FHIR 閲覧者へのアクセスの付与
- 条件の追加
- 条件基準の選択
- 条件のテスト
ワークフローの初期化
始める前に、ロジック アプリを構成して正しく実行されるようにする必要があります。
ロジック アプリが実行されたら、ワークフローを作成して構成できます。 ワークフローを初期化するには、次の手順に従います。
- Azure portal から開始します。
- Azure サービスで [Logic Apps] を選択します。
- 作成したロジック アプリを選択します。
- 左側の [ワークフロー] メニューで [ワークフロー] を選択します。
- [追加] を選択してワークフローを追加します。
新しいワークフローの構成
右側に、ワークフローを作成するための新しいパネルが表示されます。
右側のパネルで、新しいワークフローの詳細を指定できます。
ロジック アプリの新しいワークフローの作成
新しいワークフローを設定するには、次の詳細を入力します。
- ワークフロー名
- 状態の種類
ワークフローの新しい名前を指定します。 ワークフローをステートフルとステートレスのどちらにするかを指定します。 ステートフルはビジネス プロセスに適しており、ステートレスは IoT イベントの処理に適しています。
詳細を指定したら、[作成] を選んでワークフローの設計を始めます。
ワークフローの設計
新しいワークフローで、有効なワークフローの名前を選択します。
アプリケーションのワークフローを設計するコードを記述できますが、このチュートリアルでは、[開発者] メニューで [デザイナー] オプションを選択します。
次に、[操作の選択] を選択すると、右側に [トリガーの追加] ブレードが表示されます。 次に、"Azure Event Grid" を検索して、次の [Azure] タブを選びます。Event Grid はロジック アプリに組み込まれていません。
[Azure Event Grid] アイコンが表示されたら、それを選んで Event Grid で使用できるトリガーとアクションを表示します。 Event Grid の詳細については、「Azure Event Grid とは」を参照してください。
[リソース イベントが発生したとき] を選択して、Azure Event Grid のトリガーを設定します。
トリガーへの応答方法を Event Grid に指示するには、パラメーターを指定し、アクションを追加する必要があります。
パラメーターの設定
トリガーのパラメーターを指定する必要があります。
- サブスクリプション
- リソースの種類
- リソース名
- イベントの種類の項目
サブスクリプションの詳細、リソースの種類、リソース名を入力します。 次に、応答するイベントの種類を指定する必要があります。 この記事で使用するイベントの種類は、次のとおりです。
- リソースが作成された。
- リソースが削除された。
- リソースが更新された。
サポートされるイベントの種類の詳細については、「イベントに関する FAQ」を参照してください。
HTTP アクションの追加
トリガー イベントを指定した後、その他の詳細を追加する必要があります。 [リソース イベントが発生したとき] ボタンの下にある [+] を選択します。
特定のアクションを追加する必要があります。 [操作の選択] を選択して続行します。 次に、操作で、"HTTP" を検索し、[組み込み] を選んで、HTTP 操作を選びます。 HTTP アクションを使うと、FHIR サービスのクエリを実行できます。
この例のオプションは、次のとおりです。
- [メソッド] は "Get" です
- [URL] は
"concat('https://', triggerBody()?['subject'], '/_history/', triggerBody()?['dataVersion'])"
です。 - [認証の種類] は、[マネージド ID] です。
- [対象ユーザー] は
"concat('https://', triggerBody()?['data']['resourceFhirAccount'])"
です。
FHIR 閲覧者にロジック アプリへのアクセスを許可する
この時点で、イベントの詳細が正しいことを確認できるように、FHIR 閲覧者にアプリへのアクセスを付与する必要があります。 アクセスを付与するには、次の手順に従います。
ロジック アプリに戻り、[ID] メニューを選びます。
[システム割り当て済み] タブで、[状態] が [オン] であることを確認します。
[Azure でのロールの割り当て] を選択します。 [ロールの割り当ての追加] を選択します。
次のオプションを指定します。
- スコープ = サブスクリプション
- サブスクリプション = 自分のサブスクリプション
- ロール = FHIR データ閲覧者。
最初の 4 つのステップを指定したら、[サブスクリプション、マネージド ID (ロジック アプリ Standard)] を使って、マネージド ID でロールの割り当てを追加します。次に、ロジック アプリの名前を選んでから [選択] ボタンを選んで、ロジック アプリを選びます。 最後に、[確認と作成] を選択してロールを割り当てます。
条件の追加
FHIR 閲覧者にアプリへのアクセス権を付与した後、ロジック アプリのワークフロー デザイナーに戻ります。 次に、イベントが処理対象のイベントであるかどうかを判断する条件を追加します。 HTTP の下にある [+] を選んで、[操作を選択してください] を選びます。 右側で、条件という語を検索します。 [組み込み] を選んで、[コントロール] アイコンを表示します。 次に、[アクション]、[条件] の順に選択します。
条件が準備できたら、条件が true または false の場合に発生するアクションを指定できます。
条件基準の選択
特定のイベントに対してアクションを実行するかどうかを指定するには、ワークフローで [条件] を選んで条件の指定を始めます。 条件の選択肢のセットが表示されます。
[And] ボックスの下に、次の 2 つの条件を追加します。
- resourceType
- イベントの種類
resourceType
resourceType を取得するための式は、body('HTTP')?['resourceType']
です。
イベントの種類
[動的コンテンツ] から [イベントの種類] を選択できます。
[条件] の基準の例を次に示します。
ワークフローを保存する
条件基準を入力したら、ワークフローを保存します。
ワークフロー ダッシュボード
ワークフローの状態を確認するには、ワークフロー メニューで [概要] を選択します。 次のようなワークフロー ダッシュボードが表示されます。
ワークフロー ダッシュボードから次の操作を実行できます。
- トリガーの実行
- 最新のステータスに更新
- [有効化]
- Disable
- 削除
条件のテスト
[保存] ボタンを選択して、ワークフローを保存します。
新しいワークフローをテストするには、次のようにします。
- 新しい患者 FHIR リソースを FHIR サービスに追加します。
- 更新が完了するまで待ってから、ロジック アプリ ワークフローの [概要] Web ページを確認します。
- アクションが成功した場合、イベントは緑色で網掛けされます。
- 失敗した場合、イベントは赤色で網掛けされます。
成功したワークフロー トリガー操作の例を次に示します。
次のステップ
このチュートリアルでは、Logic Apps を使用して FHIR イベントを処理する方法について説明しました。
イベントの詳細については、以下を参照してください。
イベントに関してよく寄せられる質問 (FAQ) については、以下を参照してください。