実行環境
- Mac OS 10.14.6 (Mojave)
- Forge 23.0 for R4 (Fall 2019 Edition Ver.23.0.0.0)
はじめに
- HL7 FHIR プロファイルエディタ 「Forge」 のインストール方法はこちらの記事を参照ください。
- 今回はForgeを使って新しいリソースプロファイルを作って、Simplifierにアップするところまでを解説します(いわゆる "Hello, World!!" まで)。
- より詳しい説明は公式ページのこのあたりを参照ください。
- Simplifierのアカウント作成までできている前提で始めます。
手順
1.プロジェクト作成
-
Simplifierにアクセスして、サインイン
-
Projectタブから "Create" をクリックします。(フリーアカウントだと1つのプロジェクトしか出来ないようです)
-
プロジェクトについて必要事項を入力します。
- Title : プロジェクト名を設定します。仕様を公開する場合にURLに反映されます。
例:https://simplifier.net/プロジェクト名/リソースプロファイル名(後述) - Description : プロジェクトの説明文
- FHIR version : ベースとするFHIRの仕様バージョン (選択肢:DSTU2, STU3, R4)
- Scope : 適用範囲 (選択肢:International, National, Institute, Regional, Test)
- Nationality : 適用国
- Title : プロジェクト名を設定します。仕様を公開する場合にURLに反映されます。
2.ワークスペースを作る
-
Fileメニューから、"Open Profile Folder" をクリック
-
適当な空フォルダを指定して、"Open"をクリック。(この時、保存形式をXMLかJSONを選べます)
-
今回は、
/Users/XXXXX/Documents/simplifier
を選択。JSON形式に設定。
(ForgeはWINDOWS仕様のため、Documentsフォルダが"My Documents"と表示されます。)
3.リソースプロファイルを作る
-
ダイアログの一番左側にあるラジオボタンから、"Resource profile"を選択
-
ここでは、例として "Observation" (患者やデバイスに関する検査・評価項目に関するリソース)をリストから選びます。
-
次に、定義するリソースプロファイル名を "Name" のテキストボックスから定義します。デフォルトでは"My〜"となります。("Canonical url" と "File name" は、Nameに応じて自動で設定されます。)
4.独自に仕様を変更してみる
- 先ほど作ったMyObservationを選択して、現在の仕様を確認できます。
- 例えば、"Element Tree"タブから、"Observation" -> "subject" -> "Identifier" を選択すると、"Cardinality" は
0...1
となっていることが確認できます。この場合、検体IDが0(つまり無くても良い)もしくは1つまで定義できることを意味します。ここで仮に、このプロジェクトでは独自の仕様変更として、1...1
(必ず1つ定義)に変更してみたいと思います。Cardnalityのところにある"1...1"というボタンをクリックしてみます。(最初これが、変更用のボタンであることに気づきませんでした・・・泣)
- すると、Cardinalityが
1...1
に変更されました。それと同時に、元々の仕様から変更された項目にペンマーク(?)が表示されます。
- "Save"ボタンをクリックして、一旦これを保存してみましょう。(先ほど設定したワークスペース配下に適当なファイル名で保存できます。ここでもXML形式かJSON形式か選べます。)
- 参考までに、保存したJSON形式のファイルの中身は下記のようになっていました。ちゃんと、
baseDefinition
に対して、differential
に"min": 1
という変更が加えられたことが書かれていました。
{
"resourceType": "StructureDefinition",
"id": "67bae5b9-b152-48d3-8942-4338e9b80cff",
"meta": {
"versionId": "1",
"lastUpdated": "2019-11-25T13:14:09.608+00:00"
},
"url": "http://example.org/fhir/StructureDefinition/MyObservation",
"name": "MyObservation",
"status": "draft",
"date": "2019-11-25T13:14:08.794913Z",
"fhirVersion": "4.0.0",
"mapping": [
{
"identity": "workflow",
"uri": "http://hl7.org/fhir/workflow",
"name": "Workflow Pattern"
},
{
"identity": "sct-concept",
"uri": "http://snomed.info/conceptdomain",
"name": "SNOMED CT Concept Domain Binding"
},
{
"identity": "v2",
"uri": "http://hl7.org/v2",
"name": "HL7 v2 Mapping"
},
{
"identity": "rim",
"uri": "http://hl7.org/v3",
"name": "RIM Mapping"
},
{
"identity": "w5",
"uri": "http://hl7.org/fhir/fivews",
"name": "FiveWs Pattern Mapping"
},
{
"identity": "sct-attr",
"uri": "http://snomed.org/attributebinding",
"name": "SNOMED CT Attribute Binding"
}
],
"kind": "resource",
"abstract": false,
"type": "Observation",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Observation",
"derivation": "constraint",
"differential": {
"element": [
{
"id": "Observation.subject.identifier",
"path": "Observation.subject.identifier",
"min": 1
}
]
}
}
5.Simplifierへアップロードしてみる
- 先ほど定義した独自仕様を公開してみましょう。"File"メニューから、"Publish to Simplifier.net"を選択
- 続けて、Simplifierに登録したアカウント情報("Username"と"Password")を入力して、"Connect"をクリック
- 次に"Project"のプルダウンをクリックすると、冒頭で作ったプロジェクト名が表示されるはずなので、それを選びます。
- 最後に"Save"ボタンをクリック! これでアップロード完了です。
- ブラウザからSimplifierのポータルサイトへ行ってみると、Resourcesに新しく"Profiles"というのが出来ているはずです。これをクリックすると・・・
- 先ほど作ったオリジナルのリソースプロファイル名が表示されます。さらに、これをクリックしてみましょう。
- 仕様を詳しく見ることができます。例えば、"Overview"タブから、先ほど定義した"subject"の"identifier"を見てみると、
Cardinality
が正しく1...1
と反映されていることが確認できるはずです。
今回はここまでで終わりです。お疲れ様でした。
(できれば、独自定義したリソースプロファイルを使ったサンプルプログラムの実装までいきたいなぁ・・・)