JASPEHR Implementation Guide
0.5.5 - draft

JASPEHR Implementation Guide - Local Development build (v0.5.5). See the Directory of published versions

Details Questionnaire

Profiling 検討結果

ベースとなる Questionnaire resource を SDC Questionnaire、Advanced Rendering Questionnaire、Advanced Behavior Questionnaire に近づけていくことを前提とし、それぞれの Profile に含まれる Extension や MustSupport、Cardinality について JASPEHR プロジェクトとしての採用可否を検討していった。ここでは、各項目についての判断根拠や運用想定等を記載する。ベース Questionnaire に対して変更を行った点は赤字で記載する。

ベース Questionnaire に存在するエレメントについて、SDC Profiles を参考に Cardinaliity・MustSupport の検討を行った


項目 判断 詳細 SDC Profile での指定(差異がある場合は青字
Questionnaire.url Cardinality: 1..1 Questionnaire を、ユニークに特定するためのキー。
【JASPEHR】現時点ではシステム的には特に利用しない想定なので MustSupport とはしない。
SDC Questionnaire:
MustSupport
Questionnaire.identifier Cardinality: 0..* Questionnaire の識別子が追加で必要な場合はこの項目を利用する。 -
Questionnaire.version Cardinality: 1..1
MustSupport
Questionnaire の“業務的な”バージョンを記載する。Questionnaire を改版する場合はこの version を変更する。
【JASPEHR】想定運用では version を必須とするため、Cardinality: 1..1 とする。電子カルテ等システムは version の違いを適切に管理する必要がある。TODO: version の記載ルール決定
SDC Questionnaire:
Cardinality: 0..1
MustSupport
Questionnaire.name Cardinality: 1..1
MustSupport
Questionnaire の名称。システムとして利用する値。
【JASPEHR】いわゆる “テンプレートコード” がこの項目に該当する。
-
Questionnaire.title Cardinality: 1..1
MustSupport
Questionnaire の名称。人が読むための値。
【JASPEHR】いわゆる “テンプレートタイトル” がこの項目に該当する。
-
Questionnaire.derivedFrom Cardinality: 0..* 【JASPEHR】現時点では利用する予定なし。 -
Questionnaire.status Cardinality: 1..1 draft | active | retired | unknown
【JASPEHR】想定運用フローでは、status をシステム的には利用しない想定なので、MustSupport とはしない。
SDC Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.experimental Cardinality: 0..1 テスト用の Questionnaire の場合は true とする。 -
Questionnaire.subjectType Cardinality: 1..1 Questionnaire の “subject” なので、JASPEHR での想定運用フローでは “Patient” のみ想定される。システム的には本エレメントは使用しない想定なので、MustSupport とはしない。 SDC Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.date Cardinality: 0..1 Questionnaire の最終更新日 -
Questionnaire.publisher Cardinality: 0..1 Questionnaire の publisher 名称。JASPEHR 事務局等を記載する想定。 -
Questionnaire.contact Cardinality: 0..* publisher の連絡先。 -
Questionnaire.description Cardinality: 0..1 Questionnaire の説明を markdown で記載できる項目。
【JASPEHR】記載された内容をどう使うか現時点では特に定めない想定。
-
Questionnaire.useContext Cardinality: 0..* JASPEHR では現時点で利用する予定なし。 -
Questionnaire.jurisdiction Cardinality: 0..* この Questionnaire が利用することが想定される国・地域等。 -
Questionnaire.purpose Cadinality: 0..1 Questionnaire が作成された目的を記載する。 -
Questionnaire.copyright Cardinality: 0..1 著作権に関する記載。 -
Questionnaire.approvalDate Cardinality: 0..1 Questionnaire が publisher により承認された日付。 -
Questionnaire.lastReviewDate Cardinality: 0..1 Questionnaire が最後にレビューされた日付。 -
Questionnaire.effectivePeriod Cardinality: 0..1 Questionnaire の利用を想定している期間。 -
Questionnaire.code Cardinality: 0..* この Questionnaire 全体のコンセプトを示すコード。例として、 http://loinc.org のコードが挙げられている。 -
Questionnaire.item Cardinality: 1..*
MustSupport
Questionnaire の質問項目定義部分。 SDC Questionnaire:
Cardinality: 1..*
MustSupport
Questionnaire.item.linkId Cardinality: 1..1
MustSupport
Questionnaire の質問と、QuestionnaireResponse の回答を紐づける項目。
【JAPSHER】 想定運用においては、Questionnaire は一度各社電子カルテのテンプレートを経由し QuestionnaireResponse に変換されるため、各社はこの間 linkId が失われないように注意する必要がある。
※Constraints を追加する。3.2に記載。
SDC Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.definition Cardinality: 0..1 URI で ElementDefinition を指定する。
【JASPEHR】definition-based extraction でデータを抽出する場合に使用する。今後検討が必要。
-
Questionnaire.item.code Cardinality: 0..* 用語集の中から、この item(質問)が該当するものを記載する。
【JASPEHR】JASPEHR として今後用語集を整備する予定。Value set が定義され次第、本プロファイルは改版される。
選択型の質問(item.type = “choice”)の場合、本項目には “質問” レベルの概念を記載し、”選択肢” レベルの概念は item.answerOption.answerCoding に記載することとする。(例:”性別” は本項目に記載し、”男性”、”女性” は answerCoding に記載する。)
-
Questionnaire.item.prefix Cardinality: 0..0 質問項目に表示する接頭語。
【JASPEHR】文言の表示にはもっぱら Questionnaire.item.text を用いることとし、本項目は使用しない。
SDC Questionnaire: Cardinality: 0..1
MustSupport
Questionnaire.item.text Cardinality: 0..1
MustSupport
質問項目に表示する文言。 SDC Questionnaire:
Cardinality: 0..1
MustSupport
Questionnaire.item.type Cardinallity: 1..1
MustSupport
item の分類を表す。
※Value set の制限を行う。3.2に記載。
SDC Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.enableWhen Cardinality: 0..1 別の質問項目の回答を参照し、この item の有効/無効の制御を行いたい場合、その条件をここに記載する。
【JASPEHR】上記のような動作に対応できないシステムは、あらかじめすべての item を有効にした状態でフォームを描画する必要がある。また、複数の質問項目の回答を同時に参照し、all | any で評価を行う動作は、電子カルテシステム等が対応できない場合があるため、本項目は最大 1 つまでに制限する。
※Constrains を追加する。3.2に記載。
Advanced Behavior Questionnaire:
Cardinality: 0..*
MustSupport
Questionnaire.item.enableWhen.question Cardinality: 1..1 enableWhen の判断先となる item.linkId を string で記載する。
※Constraints を追加する。3.2に記載。
Advanced Behavior Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.enableWhen.operator Cardinality: 1..1 enableWhen の判断先となる item.answer との比較方法。
※Fixed value を設定する。3.2に記載。
Advanced Behavior Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.enableWhen.answer[x] Cardinality: 1..1 enableWhen の判断先となる item.answer との比較に用いる値。
※Data type の制限を行う。3.2に記載。
Advanced Behavior Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.enableBehavior Cardinality: 0..0 複数の enableWhen が設定された場合の判断方法を all | any で規定する。
【JASPEHR】enableWhen は最大 1 つとするため、本項目は使用しない。
Advanced Behavior Questionnaire:
Cardinality: 0..1
MustSupport
Questionnaire.item.required Cardinality: 0..1
MustSupport
必須回答項目であるかどうかを boolean で指定する。 SDC Questionnaire: Cardinality: 0..1
MustSupport
Questionnaire.item.repeats Cardinality: 0..1
繰り返し可能項目であるかどうかを boolean で指定する。繰り返し項目に対応できるシステムは本項目が true であれば、該当 item を繰り返し入力可能な UI で表現する。
【JASPEHR】対応できないシステムは本項目を無視し、 item.maxOccurs の数だけ、あらかじめ該当 item を繰り返して表示する事とする。
※Constraints を追加する。3.2に記載。
SDC Questionnaire: Cardinality: 0..1
MustSupport
Questionnaire.item.readOnly Cardinality: 0..1 読み取り専用項目であるかどうかを boolean で指定する。
【JASPEHR】用途としては、自動計算・自動入力される項目について、エンドユーザーで変更できないようにする、ということが主に想定される。読み取り専用制御に対応できない電子カルテ等システムは、本項目を無視してもよい。
SDC Questionnaire:
Cardinality: 0..1
MustSupport
Questionnaire.item.maxLength Cardinality: 0..1
MustSupport
回答方法が入力方式である項目について、回答可能な最大文字数を integer で指定する。
【JASPEHR】 日本語等のマルチバイト文字においても、”文字数” での指定とする。
SDC Questionnaire:
Cardinality: 0..1
MustSupport
Questionnaire.item.answerValueSet Cardinality: 0..1 回答方法が選択方式である項目について、選択肢の参照先を canonical 形式で指定する。
【JASPEHR】現状の電子カルテ等システムでは、質問の選択肢として外部リンク(もしくは施設内ターミノロジーサーバー等)が指定されても、対応出来ない可能性がある。一方、JASPEHR では今後 “用語集” の整備が検討されており、質問の選択肢としてそれらの利用が想定される。これらを鑑み、本 Profile としては、本項目は Cardinality: 0..1 のまま残し、MustSupport とはしない。JASPEHR として当面は answerOption を利用することを基本とするが、”用語集” の整備後等に本項目を利用する場合、選択肢の外部リンクに対応できない電子カルテ等システムについては、Questionnaire からテンプレート形式に変換する際に参照先の Value set をテンプレートに埋め込む、等の対応が必要になる。本項目の運用を開始する場合は、本取り組み参加各施設へ確認が必要である。
SDC Questionnaire:
Cardinality: 0..1
MustSupport
Questionnaire.item.answerOption Cardinality: 0..*
MustSupport
回答方法が選択方式である項目について、選択肢を設定する。外部リンク参照を利用せず、answerValueSetよりもシンプルに利用できる。
【JASPEHR】当面はこちらを主に利用する想定。
SDC Questionnaire:
Cardinality: 0..*
MustSupport
Questionnaire.item.answerOption.value[x] Cardinality: 1..1
MustSupport
選択型の回答項目の場合の(item.type = “choice” の場合)選択肢を設定する。
※Data type の制限を行う。3.2に記載。
Advanced Behavior Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.answerOption.initialSelected Cardinality: 0..1 回答の初期値を設定する。
【JASPEHR】item.type = “choice” の場合は本項目を使用することとする。初期値の設定に対応していない電子カルテ等システムの場合は、本項目を無視してもよい。
SDC Questionnaire:
Cardinality: 0..1
Questionnaire.item.initial Cardinality: 0..1 回答の初期値を設定する。
【JASPEHR】item.type = “choice” の場合は本項目ではなく answerOption.initialSelected を使用することとする。初期値の設定に対応していない電子カルテ等システムの場合は、本項目を無視してもよい。
SDC Questionnaire:
Cardinality: 0..*
MustSupport
Questionnaire.item.initial.value[x] Cardinality: 1..1 回答の初期値を設定する。
【JASPEHR】item.type = “choice” の場合は本項目ではなく answerOption.initialSelected を使用することとする。初期値の設定に対応していない電子カルテ等システムの場合は、本項目を無視してもよい。
※Data type の制限を行う。3.2に記載。
SDC Questionnaire:
Cardinality: 1..1
MustSupport
Questionnaire.item.item Cardinality: 0..*
MustSupport
item を入れ子にする場合は本項目を使用する。 SDC Questionnaire:
Cardinality: 0..*
MustSupport


Extension の検討

SDC Questionnaire に採用されている Extension について採用可否の検討を行った

項目 判断            詳細
Questionnaire.extension:designNote 採用する Questionnaire の作者・開発者により記載される内部メモ。
【JASPEHR】エンドユーザーへの表示は行わない項目であるため、Questionnaire から電子カルテテンプレート形式への変換時には考慮不要。
Questionnaire.extension:preferredTerminology
Server
採用しない ターミノロジーサーバを利用するクエリを実行する際、URL の指定がない場合に利用するターミノロジーサーバを指定する。
【JASPEHR】現時点では利用想定なし。
Questionnaire.item.extension:designNote 採用する Questionnaire の作者・開発者により記載される内部メモ。エンドユーザーへの表示は行わない項目であるため、Questionnaire から電子カルテテンプレート形式への変換時には考慮不要。
Questionnaire.item.extension:preferredTerminology
Server
採用しない ターミノロジーサーバを利用するクエリを実行する際、URL の指定がない場合に利用するターミノロジーサーバを指定する。
【JASPEHR】現時点では利用想定なし。


Advanced Rendering Questionnaire に採用されている Extension について採用可否の検討を行った

項目 判断 詳細
Questionnaire.extension:styleSensitive 採用しない 描画形式(フォント等)に関する extension(style、markdown、xhtml)が回答に影響を及ぼすため、必ずそれらに従わなければならない場合は true を設定する。
【JASPEHR】フォント等の変更は電子カルテ等システムが対応不可なので、本 extension は採用しない。
Questionnaire.title.extension:title-renderingStyle 採用しない title の描画形式を HTML の “style” 形式で設定できる。
【JASPEHR】フォント等の変更は電子カルテ等システムが対応不可なので、本 extension は採用しない。
Questionnaire.title.extension:title-xhtml 採用しない title の描画形式を XHTML マークアップで設定できる。
【JASPEHR】フォント等の変更は電子カルテ等システムが対応不可なので、本 extension は採用しない。
Questionnaire.item.extension:itemOptionalDisplay 採用しない この extension が true でセットされると、Questionnaire を描画するシステム側でこの item を描画するかしないかを選択できる。
【JASPEHR】このような運用は想定しない。
Questionnaire.item.extension:itemHidden 採用する
(MustSupport)
この item を非表示とするかどうかを設定する。
Questionnaire.item.extension:itemControl 採用する
(MustSupport)
回答入力部分の描画形式を設定する。
“※Value set を規定する。3.2に記載。
Questionnaire.item.extension: choiceOrientation 採用する 選択肢を描画する際、横に並べるか縦に並べるかを horizontal | vertical で指定する。
Questionnaire.item.extension:displayCategory 採用しない
(MustSupport)
この item の text を表示する目的を設定し、システムに対して目的に合った表示を期待する項目。
【JASPEHR】文字表示方法の変更は電子カルテ等システムが対応していないため、本 extension は採用しない。
Questionnaire.item.extension:supportLink 採用しない この item (質問)について “ヘルプ” を参照するための URL を設定する項目。
【JASPEHR】ヘルプへのジャンプは電子カルテ等システムが対応していないため、本 extension は採用しない。
Questionnaire.item.extension:choiceColumn 採用しない 例として、drop-down で描画する項目について、”複数カラムでの選択肢の描画” を行う際の詳細を設定する項目。
【JASPEHR】電子カルテ等システムが複数カラムでの選択肢の描画に対応していないため、本 extension は採用しない。
Questionnaire.item.extension:width 採用しない 質問項目を表形式で描画する場合に、列幅を設定できる。
【JASPEHR】電子カルテ等システムが表形式での質問描画に対応していないため、本 extension は採用しない。
Questionnaire.item.extension:sliderStepValue 採用しない スライダー形式のコントロールを表示する場合に、1 ステップの大きさを設定する。
【JASPEHR】電子カルテ等システムがスライダー形式のコントロール描画に対応していないため、本 extension は採用しない。
Questionnaire.item.extension:entryFormat 採用しない 入力項目において、入力形式を nnn-nnnn-nnnn のように示すために設定する項目。システムは、”ghost” のようにその文字列を表示することを期待される。
【JASPEHR】電子カルテ等システムがそのような表示に対応していないため、本 extension は採用しない。
Questionnaire.item.prefix.extension:itemLabel-renderingStyle 採用しない 【JASPEHR】item.prefix を使用しないため、本 extension は採用しない。
Questionnaire.item.prefix.extension:itemLabel-xhtml 採用しない 【JASPEHR】item.prefix を使用しないため、本 extension は採用しない。
Questionnaire.item.text.extension:groupText-renderingStyle 採用しない text の描画形式を HTML の “style” 形式で設定できる。
【JASPEHR】フォント等の変更は電子カルテ等システムが対応不可なので、本 extension は採用しない。
Questionnaire.item.text.extension:groupText-xhtml 採用しない text の描画形式を XHTML マークアップで設定できる。
【JASPEHR】フォント等の変更は電子カルテ等システムが対応不可なので、本 extension は採用しない。


Advanced Behavior Questionnaire に採用されている Extension について採用可否の検討を行った

項目 判断 詳細
Questionnaire.extension:entryMode 採用しない
(MustSupport)
フォームの制御について、下記のいずれのパターンを採用するかを設定する。
・質問が1つだけ表示され、回答するたびに次の質問が表示され、戻ることができない。
・前の質問に回答すると、次の質問が表示される。以前回答した内容も後で編集できる。
・有効な質問が全て表示された状態で表示され、ユーザーは好きな順番で回答できる。
【JASPEHR】電子カルテ等システムは3つ目の表示方法にしか対応できないため、本 extension は採用しない。
Questionnaire.extension:submissionEndpoint 採用しない
(MustSupport)
Questionnaire への回答を送信する先の URL を設定する。
【JASPEHR】現時点では URL に対しての回答の送信は想定しないため、本 extension は採用しない。
Questionnaire.extension:signatureRequired 採用しない QuestionnaireResponse を完成させるにあたり、署名が必要かどうかを設定する。
【JASPEHR】現時点では回答時に署名をとる運用を想定しないため、本 extension は採用しない。
Questionnaire.extension:constraint 採用しない 回答を完了させるときに満たしていなければならない制約を設定する。
【JASPEHR】回答を完了させる際の高度な制約は電子カルテが対応できないため、本 extension は採用しない。
Questionnaire.extension:library 採用しない 使用する cql ライブラリの URL を指定する。
【JASPEHR】現時点で cql は使用しない想定なので本 extension は採用しない。
Questionnaire.extension:launchContext 採用しない データの自動引用等、フォームで何らかの処理を行うときの、”context” を設定する。例としては、「患者」「イベント(Encounter)」「職員」等が挙げられている。
【JASPEHR】想定運用において、Questionnaire は電子カルテのテンプレート(カルテ記載機能)として表現される想定であるため、”context” は暗黙的に「患者」であると特定できるため、本 extension は現時点では採用しない。
Questionnaire.extension:variable 採用する フォームで処理を行う場合に、FHIRPath で使用するための変数(評価式・FHIR query を含めることも可)を設定できる。
【JASPEHR】基本的にはデータの自動引用のための FHIR query(およびそれに埋め込まれた FHIRPath)を記述する。
Questionnaire.item.extension:usageMode 採用しない
(MustSupport)
フォームを起動している “モード” によって、この項目を表示するかしないかを設定する。(モード:表示・入力モード、入力のみモード 等)
【JASPEHR】フォームを起動している “モード” によって、項目の表示/非表示制御を行うことは電子カルテ等システムが対応できないため、本 extension は採用しない。
Questionnaire.item.extension:itemSignatureRequired 採用しない 回答(QuestionnaireResponse)を完成させるにあたり署名が必要かどうかを設定する。【JASPEHR】現時点では回答時に署名をとる運用を想定しないため、本 extension は採用しない。
Questionnaire.item.extension:itemMinOccurs 採用しない
(MustSupport)
繰り返し項目について、最低何回以上繰り返さなければならないかを設定する。
【JASPEHR】最低回数の制限については対応できない電子カルテ等システムがあるため、本 extension は採用しない。
Questionnaire.item.extension:itemMinOccurs.
valueInteger.extension:itemMinOccursCalculated
採用しない minOccurs の値を、動的に変更するための項目。
【JASPEHR】動的な変更には電子カルテ等システムが対応できないため、本 extension は採用しない。
Questionnaire.item.extension:itemMaxOccurs 採用する
(MustSupport)
繰り返し項目について、最大何回まで繰り返して良いかを設定する。
【JASPEHR】Questionnaire.item.repeats が求める繰り返し入力 UI に非対応のシステムは、本 extension の設定値分だけ、あらかじめ item.repeats = “true” の項目を繰り返し表示してフォームを描画することとする。繰り返し UI に対応できるシステムは、本 extension は無視するか、本来の用途として、繰り返し項目の最低入力数チェックを行う。
Questionnaire.item.extension:itemMaxOccurs.
valueInteger.extension:itemMaxOccursCalculated
採用しない maxOccurs の値を、動的に変更するための項目。
【JASPEHR】動的な変更には電子カルテ等システムが対応できないため、本 extension は採用しない。
Questionnaire.item.extension:minLength 採用しない
(MustSupport)
入力項目において、入力が必要な最低文字数を設定する。
【JASPEHR】そのような制御に対応できない電子カルテがあるため、本 extension は採用しない。
Questionnaire.item.extension:regex 採用する
(MustSupport)
入力項目について、有効な入力内容を正規表現で規定する項目。
【JASPEHR】item.type = “string” または “text” の項目において、IME を制御する目的、及び入力値の全角・半角を制限する目的で利用する。Fixed value を 正規表現の “^([ -~]|\n|\t)+$”(半角英数字記号、改行、タブから構成される任意の文字列)とし、この項目が記載された item のテキストボックスについては IME を無効、ないしは OFF にすることを電子カルテ等システムに期待する。本項目は MustSupport とはせず、現時点の実装で可能な範囲で対応することとする。
※Fixed value を設定する。3.2に記載。
Questionnaire.item.extension:minValue 採用する
(MustSupport)
入力項目について、有効とみなされる最小値を設定する。
【JASPEHR】最小値のチェックを行えない電子カルテ等システムは、本項目を無視してもよい。
※Data type の制限を行う。3.2に記載。
Questionnaire.item.extension:minValue.value[x].
extension:minValueCalculated
採用しない minValue の値を、動的に変更するための項目。
【JASPEHR】動的な変更には電子カルテ等システムが対応できないため、本 extension は採用しない。
Questionnaire.item.extension:maxValue 採用する
(MustSupport)
入力項目について、有効とみなされる最大値を設定する。
【JASPEHR】最大値のチェックを行えない電子カルテ等システムは、本項目を無視してもよい。
※Data type の制限を行う。3.2に記載。
Questionnaire.item.extension:maxValue.value[x].
extension:maxValueCalculated
採用しない maxValue の値を、動的に変更するための項目。
【JASPEHR】動的な変更には電子カルテ等システムが対応できないため、本 extension は採用しない。
Questionnaire.item.extension:maxDecimalPlaces 採用する
(MustSupport)
decimal 型の項目について、小数点以下の最大桁数を設定する。
【JASPEHR】小数点以下最大桁数の制御に対応していない電子カルテ等システムの場合、本項目は無視してもよい。
Questionnaire.item.extension:mimeType 採用しない
(MustSupport)
item.type = “attachment” の場合、添付ファイルの MIME タイプを指定する。
【JASPEHR】想定運用においては item.type = “attachment” は使用しないため、本 extension は採用しない。
Questionnaire.item.extension:maxSize 採用しない item.type = “attachment” の場合、添付ファイルの最大容量を MB で指定する。
【JASPEHR】想定運用においては item.type = “attachment” は使用しないため、本 extension は採用しない。
Questionnaire.item.extension:unitOption 採用しない
(MustSupport)
item.type = “quantity” の項目に回答する際、ユーザーが選択できる単位を設定する。【JASPEHR】item.type = “quantity” は使用しない想定のため、本 extension は採用しない。decimal | integer の項目に対して単位を指定する場合、単位の表示は item.text に含めることとする(すなわち、入力するユーザーが単位を選ぶことはできず、固定となる)。収集したデータの分析等で単位のシステム的な処理を行いたい場合は、 questionnaire-unit extension を使用する。
Questionnaire.item.extension:unitValueSet 採用しない
(MustSupport)
item.type = “quantity” の項目に回答する際、ユーザーが選択できる単位を canonical 形式で設定する。
【JASPEHR】 item.type = “quantity” は使用しないうえ、単位を選択させる運用は想定しないため、本 extension は採用しない。
Questionnaire.item.extension:allowedResource 採用しない
(MustSupport)
item.type = “reference” の場合、許可される resource タイプを指定する。
【JASPEHR】 item.type = “resource” は使用しないため、本 extension は採用しない。
Questionnaire.item.extension:allowedProfile 採用しない item.type = “reference” の場合、回答とするResource が基づいていなければならないProfile を指定する。
【JASPEHR】 item.type = “resource” は使用しないため、本 extension は採用しない。
Questionnaire.item.extension:referenceFilter 採用しない item.type = “reference” の場合、回答とするResource の検索条件を指定する。
【JASPEHR】 item.type = “resource” は使用しないため、本 extension は採用しない。
Questionnaire.item.extension:lookupQuestionnaire 採用しない item.type = “reference” であるが、回答とすべき Resource が見つからない場合、それを作成するための Questionnaire を urlで指定する。
【JASPEHR】 item.type = “resource” は使用しないため、本 extension は採用しない。
Questionnaire.item.extension:itemConstraint 採用しない 回答を完了させるときに満たしていなければならない制約を設定する。
【JASPEHR】回答を完了させる際の高度な制約は電子カルテ等システムが対応できないため、本 extension は採用しない。
Questionnaire.item.extension:initialExpression 採用する フォームを初期表示する際、本項目に設定した評価式に基づいて回答の初期値がセットされる。
【JASPEHR】本項目はデータの自動引用を表現するために使用する。すなわち、variable extension に記述した FHIR Query により取得された値を、本項目に記載された FHIRPath により取得・評価して、フォームに初期表示させる(このような動作に対応できない電子カルテ等システムは、既存機能により類似の動作を行うことが望ましい)。なお、フォーム内部の他の item を参照する評価式の設定については、フォーム初期表示時のみ評価を行う本 extension ではなく、calculatedExpression を採用する。
※評価式の記述言語を制限する。3.2に記載。
Questionnaire.item.extension:calculatedExpression 採用する 他の項目の回答が入力された際、本項目に設定した評価式に基づいて、回答を自動計算する(例:BMI)。
【JASPEHR】 想定運用では Questionnaire を電子カルテテンプレート形式に変換してフォームとして表現することになるため、本項目に記載された FHIRPath を電子カルテテンプレートが実行できる評価式に変換する必要がある。プログラムによる自動変換が望ましいが、難しい場合は、
・評価式のみ手入力で変換する
・自動計算は使用しない
等の運用対処も可とする。
※評価式の記述言語を制限する。3.2に記載。


その他の Extension から採用が必要と判断したもの

項目 判断                    詳細 出典
Questionnaire.item.extension:unit 採用する item.type = “integer” または “decimal” の項目について、入力された値を後に機械的に処理するための単位を設定できる。ユーザーに表示するための単位は本項目には設定せず、item.text に設定することとされている。
【JASPEHR】従って、想定運用においては Questionnaire から電子カルテテンプレートを生成する際、本項目は基本的に無視してよい。単位のコード体系については、UCUM コードの利用が想定される。
Core extensions for Questionnaire


JASPEHR Profile において必要と判断した Constraints や Value Set Binding


項目 判断              詳細
Questionnaire.item.linkId Constraints の追加を行う。(jsp-4) Questionnaire の質問と、QuestionnaireResponse の回答を紐づける項目。
【JASPEHR】ベース Questionnaire や SDC では、「string 型」ということ以外に制限がないが、あまりに長い文字列や、システム上扱いが難しい文字が設定されることを防ぐため、「半角英数字記号(一部を除く)からなる、1~255 文字の文字列」という制約を行う。
Questionnaire.item.type Value set の制限を行う 本エレメントは、item の type を規定する項目。Value Set “QuestionnaireItemType” の使用が必須である。
【JASPEHR】 QuestionnaireItemType には電子カルテシステム等で現状対応ができない項目(=JASPEHR での運用を想定しない項目)が含まれるため、制限を行う。
具体的には、http://hl7.org/fhir/ValueSet/item-type|4.0.1 をベースに、JASPEHR プロジェクトで使用しない項目(下記)を除外した、http://www.hosp.ncgm.go.jp/JASPEHR/fhir/ValueSet/item-type-Jaspehr (URLは仮)を Value set reference とする。
・boolean: Boolean 型は、item.type = “choice” にしたうえで answerOption に “はい” “いいえ” 等を用意することで代用する。
・url: URL を使用する質問項目であり、電子カルテが対応できない。
・open-choice: 選択肢に加え、”その他” 用のフリー入力を用意する質問項目。”その他” が選択された場合に有効になる item.type = “string” または “text” の項目を用意することで代用できるため、open-choice は使用しない。
・attachment: PDF等の添付ファイルを回答項目とする質問。電子カルテがテンプレートへの添付ファイルに対応していない。
・reference: 他の resource への参照を回答とする質問。電子カルテがそのような形式に対応していない。
・quantity: ※下記に詳細を記載する。

※quantity について
単位表示のためには、quantity 型が利用できるが、以下の理由から採用を見送った。
・quantity は “量” であり、それは ”値” と “単位” に分けられる。”量” について、電子カルテのテンプレートへ変換する際、それが integer であるべきなのか decimal であるべきなのか判断がつかず、変換する側によって解釈が分かれ、結果として収集されるデータで小数点以下の取り扱いが非統一的になる可能性がある。
・quantity には、comparator(< | <= | >= 等)を含めることができるが、電子カルテテンプレートで comparator 情報を取り扱うことができない。
・単位表示については、item.text を利用すれば代用でき、その後の集計等においても unit extension を利用すれば代用できる。
Questionnaire.item.enableWhen Constraints の追加を行う(jsp-1) 別の質問項目の回答を参照し、この item の有効/無効の制御を行いたい場合、その条件をここに記載する。
【JASPEHR】電子カルテ等システムが現状対応できる範囲に制限するため、item.type = “group” の場合のみ設定可とする。
Questionnaire.item.enableWhen.question Constraints の追加を行う(jsp-2) 本項目には、質問の有効/無効の判断先となる item.answer の linkId を string 形式で記載する。
【JASPEHR】電子カルテ等システムが現状対応できる範囲に制限するため、設定できる linkId を一つ上の階層の item のみに制限する。
Questionnaire.item.enableWhen.operator Fixed value を設定する 本項目には、質問の有効/無効の判断先となる item.answer との比較方法を記載する。Value set “QuestionnaireItemOperator” (exists | = | != | > | < | >= | <=)の使用が必須である。
【JASPEHR】電子カルテ等システムが現状対応できる範囲に制限するため、任意入力項目(例:体重等)に対しての評価は行わず、選択項目(例:1型糖尿病 または 2型糖尿病)に対してのみの評価を行う。本項目は「=」のみ設定可とする。
Questionnaire.item.enableWhen.answer Data type の制限を行う 【JASPEHR】 電子カルテ等システムが現状対応できる範囲に制限するため、質問の有効/無効の判断において、入力項目(例:体重等)に対しての評価は行わず、選択項目(例:1型糖尿病 または 2型糖尿病)に対してのみの評価を行う。そのため、本項目では Coding 型のみ許可する。
Questionnaire.item.repeats Constraints の追加を行う(jsp-3) 繰り返し可能項目であるかどうかを boolean で指定する。電子カルテで実現できる範囲に制限するため、item.type = “group” の項目のみ設定可とする Constrains を追加する。(単一の質問を繰り返す場合も、必ず group で囲うこととする)
Questionnaire.item.answerOption.value[x] Data type の制限を行う 回答方法が選択方式である項目について、選択肢を設定する。
【JASPEHR】選択肢の「型」は電子カルテが保持できないため、Coding 型固定とする。
Questionnaire.item.initial.value[x] Data type の制限を行う 回答の初期値を設定する。
【JASPEHR】 item.type で設定可能とする型であり、かつ Coding 型以外の(decimal | integer | date | dateTime | time | string)のみ許可する。Coding 型の場合(JASPEHR 運用においては、item.type = ‘choice’ の場合)は、answerOption.initialSelected を使用することとする。
Questionnaire.item.extension:itemControl Value set を規定する 回答入力部分の描画形式を設定する。基本のValue set として、”QuestionnaireItemUIControlCodes” が定義されている。
【JASPEHR】 QuestionnaireItemControlCodes には電子カルテ等システムが現状対応できない形式が含まれているため、http://hl7.org/fhir/ValueSet/questionnaire-item-control|4.0.1 をベースにした http://www.hosp.ncgm.go.jp/JASPEHR/fhir/ValueSet/questionnaire-item-control-Jaspehr (URL は仮)を Value set reference とする。具体的には、list | inline | drop-down | check-box | radio-button | text-box を選択可能とする。ただし、drop-down については単一項目選択型として扱う。
Questionnaire.item.extension:itemControl Constraints の追加を行う(jsp-6) extention:itemControl で、選択肢の描画方法を決めている(ラジオボタン、チェックボックス、ドロップダウン)。変換時に支障をきたすことを避けるため、choice である場合は必須とする。
Questionnaire.item.extension:regex Fixed value を設定する 入力項目について、有効な入力内容を正規表現で規定する項目。
【JASPEHR】item.type = “string” または “text” の項目において、IME を制御する目的、及び入力値の全角・半角を制限する目的で利用する。Fixed value を 正規表現の “^([ -~]|\n|\t)+$”(半角英数字記号、改行、タブから構成される任意の文字列)とし、この項目が記載された item のテキストボックスについては IME を無効、ないしは OFF にすることを電子カルテ等システムに期待する。本項目は MustSupport とはせず、現時点の実装で可能な範囲で対応することとする。
Questionnaire.item.minValue Data type の制限を行う 入力項目について、有効とみなされる最小値を設定する項目。
【JASPEHR】設定できる型として、date | dateTime | time | decimal | integer が規定されているが、電子カルテが対応できる範囲に制限するため、decimal | integer のみを許可する。
Questionnaire.item.maxValue Data type の制限を行う 入力項目について、有効とみなされる最大値を設定する項目。設定できる型として、date | dateTime | time | decimal | integer が規定されているが、電子カルテが対応できる範囲に制限するため、decimal | integer のみを許可する。
Questionnaire.item.extension:initialExpression.
valueExpression.language
Fixed value を設定する 本項目は、calculatedExpression に記述する評価式の言語を規定している。Value set “ExpressionLanguage” (CQL | FHIRPath | FHIR Query)が例として挙げられているが、JASPEHR 運用では記述の統一のため、FHIRPath のみ使用可とする。
※データの自動引用を目的とした FHIR query は、variable extension に記述することとする。
Questionnaire.item.extension:calculatedExpression.
valueExpression.language
Fixed value を設定する 本項目は、calculatedExpression に記述する評価式の言語を規定している。Value set “ExpressionLanguage” (CQL | FHIRPath | FHIR Query)が例として挙げられているが、JASPEHR 運用では記述の統一のため、FHIRPath のみ使用可とする。
※データの自動引用を目的とした FHIR query は、variable extension に記述することとする。
Questionnaire.extension:variable Value set の制限を行う 本項目は、calculatedExpression に記述する評価式の言語を規定している。Value set “ExpressionLanguage” (CQL | FHIRPath | FHIR Query)が例として挙げられているが、JASPEHR 運用では記述の統一のため、FHIRPath | FHIR Query のみ使用可とする。そのため、http://hl7.org/fhir/expression-language|4.0.1 をベースにした http://www.hosp.ncgm.go.jp/JASPEHR/fhir/ValueSet/expression-language-Jaspehr (URLは仮)を Value set reference とする。
Questionnaire.name Constraints の追加を行う(jsp-5) linkId と同様、あまりに長い文字列や、システム上扱いが難しい文字が設定されることを防ぐため、「半角英数字記号(一部を除く)からなる、15 バイトの文字列」という制約を行う。


作成した Constraints


Id Path Details
jsp-1 Questionnaire.item Only ‘group’ items can have enableWhen
: type = ‘group’ or enableWhen.empty()
jsp-2 Questionnaire.item The link ids for enableWhen question must the same to parent item’s link id
: children().select(item).enableWhen.exists() implies linkId=children().select(item).where(enableWhen.exists()).linkId
jsp-3 Questionnaire.item Only ‘group’ items can have repeats
: type = ‘group’ or repeats.empty()
jsp-4 Questionnaire.item Link id should consist of half-width English numbers, letters, and several symbolic-characters, or either of them
: linkId.matches(‘([A-Za-z0-9!#%/:;?@_~]{1,255})’)
jsp-5 Questionnaire.name Name should consist of half-width English numbers, letters, and several symbolic-characters, or either of them
: name.matches(‘([A-Za-z0-9!#%/:;?@_~])’)
name should be 15 bytes or less
jsp-6 Questionnaire.item If item.type = ‘choice’ then item.extension:itemControl should be required
: type = ‘choice’ and item.extension:itemControl.exists()


Notes: (運用想定・注意点等)

特に注意が必要な内容について、下記に記載した。

詳細なレイアウト制御について

本 Profile においては、インデントやテキストボックスの大きさ、選択肢間のスペースの広さ等、フォームを表示する際の細かなレイアウトを指定することはできない。JASPEHR 運用においては Questionnaire を電子カルテ等システムのテンプレート形式に変換する際、必要に応じてQuestionnaire の構造を解釈し適切なレイアウト情報を含むように変換を行うか、変換後に手動でレイアウトを修正する必要がある。

なお、文字列のフリー入力を求める項目としては、item.type = “string”、”text” の2通り定義することができる。”string” は “数単語から短文”、”text” は “複数段落を含むこともあるような長文” と定義されているため、本 Profile としてはテキストボックスの大きさを具体的に指定することはしないものの、”string” “text” のいずれであるかは、Questionnaire 作成者およびテキストボックスを描画するシステム側で留意する必要がある。

日本語等マルチバイト文字の取り扱いについて

ベース Questionnaire および SDC は英語圏を中心に検討されたためか、IME 制御やマルチバイト文字の取り扱いについては詳細が記載されていない。そこで、本 Profile においては下記ように取り扱うこととした。

IME 制御について

regex extension を利用することとした。本来の用途としては、フリー入力項目の入力可能様式を正規表現で規定することである。JASPEHR においては regex extension について、正規表現の “^([ -~]\|\n|\t)+$”(半角英数字記号・改行・タブから構成される任意の文字列)を Fixed value とし、item.type = “string” または “text” の項目において regex extension が設定された場合は、ユーザーに半角英数字記号・改行・タブのみの入力を促す制御として IME を無効、ないしは OFF とすることをシステム側に期待する。なお、フリー入力型のテキストボックスであっても decimal | integer の項目は半角数値を入力できれば良いと分かるので、regex extension が設定されていなくても IME を無効、または OFF にすべきである。

マルチバイト文字のカウント方法について

本 Profile においては、maxLength エレメントにおいて考慮が必要になる。その定義は “The maximum number of characters that are permitted in the answer to be considered a “valid” QuestionnaireResponse.”(有効な回答とみなされるために入力してよい最大の文字数)であるが、英語圏で検討されたエレメントであることを踏まえると、マルチバイト文字環境においてもこれを文字通り “文字数” ととらえてよいのか、”バイト数” だと考えるべきか、ルールの明示が必要である。JASPEHR においては、元々の定義の “The maximum number of charanters …” を尊重し、マルチバイト文字についても “1” と数えることとする。すなわち、maxlength = 5 と設定された項目においては、”apple” 、”さつまいも”(5文字)のいずれも許可される一方、”orange” 、”パイナップル”(6文字)はいずれも許可されない。
現状、バイト数で入力値のチェックを行っている電子カルテ等システムの場合は、Questionnaire を対応するテンプレート形式に変換する際に考慮が必要である。すなわち、type = “string” または “text” の項目について、maxLength = 6 と設定されているとき、regex extension (“^([ -~]|\n|\t)+$”) が設定されていれば基本的に “文字数” = “バイト数” となるため、6バイト以下の入力を受け付ければよい。一方、regex extension が設定されていなければ、”文字数” = “バイト数” * 2(2バイト文字までを想定する場合)となるため、12バイト以下の入力を受け付けてよいこととなる。(ただし、この場合に半角英数字記号で入力がなされた場合、maxLength = 6 を超えてしまうことになる。)

#### 単位の画面表示等について

integer 型、または decimal 型の質問項目について、単位は item.text に含めて記述することが想定される。例として item.type = “integer”、item.text = “体重” の項目がある場合、設定すべき単位は “kg” となり、入力画面の表示は以下のようになることが理想である。
  体重 _____ kg
しかし、”接尾語” extension は定義されていないため、明示的に kg を後ろに表示させることはできない。また、次の item を利用し、item.type = “display”、item.text = “kg” としても、基本的には次の行に表示されるため、
  体重 _____
  kg
のようになってしまう。item.text = “体重(kg)”のように、text に含めるのが有効な方法である。
  体重(kg) _____
データの集計等で、単位のシステム的な解釈が必要な場合は、unit extension を使用する。

項目の繰り返しについて(item.repeats の扱いについて)

本 Profile においては、item.type = “group” の項目のみ繰り返し表現可とし、単一の “display”・”question” の繰り返しは許可しない(制約:jsp-3 で規定)。単一の item の繰り返しを行いたい場合は、単一の item を内包する group を作成し、それを繰り返すことで表現する。item.repeats = “true” にセットされたgroup は、エンドユーザーがフォームに入力を行うとき、任意に繰り返し入力を行えるような UI での描画をシステムに要求するものであるが、そのような制御に非対応のシステムの場合は、itemMaxOccurs extension に設定された値の回数だけ、事前に group を繰り返した状態でフォームに描画する必要がある。

フォームに入力された値を用いた自動計算・電子カルテ等システムに登録されたデータの自動引用について

フォーム内の別の質問項目の回答に基づいた自動計算を行う場合は、calculatedExpression extension を使用し、FHIRPath で記述する。例えば、体重(linkId = “weight”、単位は kg)と身長(linkId = “height”、単位は cm)の項目を基に BMI を計算する場合、expression には以下のように記述することができる。
“expression”: “%resource.repeat(item).where(linkId=’weight’).item.answer.valueDecimal/((%resource.repeat(item).where(linkId=’height’).item.answer.valueDecimal*0.01).power(2))”
既存の電子カルテシステムは FHIRPath を解釈できないと考えられるため、Questionnaire に上記のような項目が盛り込まれた場合は、電子カルテテンプレートへの変換プログラムで電子カルテが解釈できる型式に変換するか、手入力で自動計算ロジックを電子カルテテンプレートに入力することが望ましい。

データの自動引用(例:検査結果値を検索し、フォーム描画時にあらかじめ記入しておく)は、SDC の Form population に記載のある FHIRPath-based 方式を想定している。すなわち、variable extension に記述された FHIR Query により、データ引用元となる resource からデータを取得・格納し、各 item の initialExpression extension に記述された FHIRPath によって variable の値を使用しながらフォームに初期値としてセットする。このような動きを忠実に表現するためには、

  • FHIR Query、FHIRPath を解釈できるフォームプログラム
  • 電子カルテのデータを FHIR resource として提供できる、ファサード型ないしはリポジトリ型の “FHIR サーバ”

の2つが必要になる。現時点ではこれらが用意されていない環境も想定されるため、その場合は Questionnaire に記載された FHIR Query、FHIRPath の意味を解釈し、電子カルテの既存機能で代替し同等の自動引用を行うことが望ましい。

前回値引用について

“前回入力内容をコピーして新しいフォームを作成する”、”途中まで入力したフォームを続きから入力する” 場合(以下、前回値引用)の制御は、SDC においても Profile としては表現されていないため、本検討で作成する Profile にも表現されない。前回値引用制御については、Basic SDC workflow においては ”Form Filler” と “Form Response Manager” で実施することとなっている。JASPEHR 運用においても、Basic SDC workflow に準じた前回値引用を行うか、既存の電子カルテプログラムが可能な方法で適宜前回値引用を行うことが想定される。

質問や選択肢の “意味” の管理につて

各質問項目の “意味” の管理には item.code、及び item.answerOption.valueCoding を利用することが想定される。すなわち、JAPSHER プロジェクトとして利用する “用語集” を FHIR の Value set として定義し、Questionnaire 作成時にその Value set から該当する項目を選んで item.code または item.answerOption.valueCoding に記載する。

  • 選択型の項目(item.type = “choice”)の場合、”質問” に該当するコードを item.code に記載し、”選択肢” に該当する項目を item.answerOption.valueCoding に記載する。
  • それ以外の項目(テキスト入力・数値入力等)の場合は、item.code のみを利用する。

ベース Questionnaire では、item.code には Value set: QuestionnaireQuestionCodes(= https://loinc.org/ で定義された全項目)が example として紐づけられている。 参考:QuestionnaireQuestionCodes JASPEHR では今後独自に Value set を整備する方針。検討結果は、本プロジェクトで作成する Profile に盛り込まれる。
なお、item.code の値は QuestionnaireResponse には出力されないため、QuestionnaireResponse 収集後に、元となった Questionnaire を参照しながら意味コードの解釈を行う必要がある。

参照先のバージョン管理について

本 Profile の運用において、”参照” が使われるのは以下の3つが主に想定される。

  • 回答の元となった Questionnaire の参照 (QuestionnaireResponse.questionnaire)
  • 質問の選択肢となる Value set の参照 (Questionnaire.answerValueSet)
  • 質問・回答の選択肢における “ターミノロジーシステム” の明示 (Questionnaire.item.answerOption.valueCoding 、および QuestionnaireResponse.item.answer.valueCoding)

これらのうち最初の2つは canonical 型であるため、References ページにもあるように、URI に続いて “|” で区切ってバージョンを記載することで、特定のバージョンを指定した参照が可能である。一方、3つ目は Coding 型であるため、system に “ターミノロジーシステム” を、version にそのバージョンを分けて記載することで、こちらについても特定のバージョンを明示することができる。 参考:Coding

その他

本 Implementation guide に特に記載のない項目については、SDC、ないしはベースの Questionnaire リソースに記載されている内容に従うこととする。