データ キャプチャの設計ガイドライン

はじめに

モバイル デバイスを見ている地域医療従事者。

アンケートの回答は、モバイル ヘルスアプリを使用するほとんどの医療従事者にとって重要なタスクです。

データ入力は難しく、エラーが発生する可能性があります。構造化データ キャプチャ(SDC)ライブラリと設計ガイドラインの目的は、データ入力のユーザー エクスペリエンスとキャプチャされたデータの品質を向上させることです。

このセクションでは、次の 4 つのテーマについて説明します。

  1. レイアウトとナビゲーション
  2. 質問と手順
  3. データ キャプチャ
  4. データの検証とエラー メッセージ

レイアウトとナビゲーション

長いスクロールとページネーション レイアウトのスタイライズされたビュー。

ロング スクロールとページ分割レイアウト

ロング スクロール レイアウトとページ分割レイアウトの比較。ロング スクロールでは 1 ページに 3 つの質問が表示されますが、ページ分割では 1 つの質問が表示されます。
ロング スクロール レイアウト(左)とページ分割レイアウト(右)。

Android FHIR SDK には、次の 2 つのレイアウト オプションがあります。

  1. ロング スクロール(デフォルト)
  2. ページ分けあり

ロング スクロール アンケートでは、すべての質問が 1 つのページに表示され、ユーザーはスクロールして各質問に移動します。

ページ分割されたアンケートでは、コンテンツが別々のページに表示されます。関連する質問や入力フィールドを 1 つのページにグループ化できます。ページ間を移動するための「戻る」ボタンと「次へ」ボタンが、ページの下部に固定されています。

GitHub でアンケートをページ分割する方法

どのレイアウトを選択すべきですか?

各レイアウト オプションには、それぞれメリットとデメリットがあります。以下に、使用するレイアウトを選択する際に考慮すべき各レイアウト タイプの属性をいくつか示します。

ロング スクロール ページ分けあり
ナビゲーションの速度 ナビゲーションの高速化 ナビゲーションが遅い
ナビゲーションの精度 ナビゲーションの精度が低い より正確なナビゲーション
タスク切り替え後に質問に再度フォーカス 中断後に再開するのが難しい 中断後の再開が容易
訪問後にデジタル アンケートに回答する(紙からコピーする) 紙からコピーする場合に便利 紙からコピーする場合は難しい
小さい画面 小さい画面ではさらに悪化 小さい画面に最適
ユーザー補助機能 アクセシビリティの面では悪影響があります。操作しにくい。 ユーザー補助機能の向上。スクリーン リーダーやテキスト読み上げなどの技術で処理できる個別の画面。
指示と説明のためのスペース ガイダンスと指示の質が低い ガイダンスや手順の説明に適している

ロング スクロール

質問タイトルの前に番号が表示されているアンケート。
行うこと - 質問に番号を振る
質問に番号を振ることで、1 ページ レイアウトでの移動が容易になります。
質問のタイトルのフォントサイズを比較します。ロング スクロールは 16 ピクセルです。ページ分けありは 28px です。
推奨事項 - フォントサイズを調整する
長いスクロールを使用する場合は、質問のタイトルのフォントサイズを小さくして、画面に表示されるコンテンツを増やします。例: 長いスクロールは 16 px です。ページ分けありは 28px です。

ページネーション

ドロップダウン選択肢のあるページ分割された質問「お住まいの州はどこですか?」
推奨 — 1 ページに 1 つの質問
キーボードやプルダウンなどのコンポーネントはページ上のスペースを占有するため、1 ページに 1 つの質問を配置することをおすすめします。
画面に下部のフィールドが表示されないページ分割された住所フィールド。
不可 - スクロールしなければ見えない範囲の下にあるコンテンツを非表示にする
スクロールせずに見える範囲にコンテンツが表示されている必要があります。
複数のテキスト フィールドが 1 つの質問としてグループ化されています。質問のタイトルは「代替の連絡先担当者」で、名前、続柄、電話番号を入力フィールドとして使用します。
推奨 - 関連するコンテンツを 1 つの質問としてグループ化する
例: 3 つのテキスト フィールドがすべて代替連絡先情報に関連しているため、1 つのページにグループ化されています。
同じページに無関係な質問が含まれている。1 つ目の質問は保険の適用範囲、2 つ目の質問は既往歴です。
避けるべきこと - 無関係なコンテンツをグループ化する
混乱を避けるため、無関係なコンテンツを 1 つのページにグループ化することは避けてください。

進行状況インジケーター

進行状況インジケーターは、アンケート内の進捗状況を反映します。

長いアンケートには、ユーザーがナビゲーションし、進捗状況を確認できるように、進行状況インジケーターを含めます。進行状況インジケーターには、アンケート内の現在地と、完了までの残り時間が表示されます。

アンケート タイトルの下にある上部の進行状況インジケーター。
推奨 — ロング スクロール レイアウト
質問の上部にアンカーを配置し、スクロールしても常に表示されるようにします。
進行状況インジケーターは、下部のナビゲーション ボタンの上に配置されています。
行う - ページネーション レイアウトのみ
代わりに、戻るボタンと次へボタンの上に配置することもできます。このレイアウトでは、ユーザーがどのページにいるかを表示することもできます。

ナビゲーション ボタン(戻る、次へ)は、アンケートの下部に固定されています。無限スクロールまたはページ分割されたアンケートの最後のページでは、[次へ] ボタンのラベルが [送信] になります。

ボタンは一貫した場所に配置し、[戻る] や [次へ] など、アクションがラベル付けされたアクティブなボタンを常に使用します。

ナビゲーション ボタンが有効になっています。青い塗りつぶしの [次へ] ボタン。
実行 - アクティブなボタン
フォームが未完了の場合でも、アクティブなボタンを常に表示します。[次へ] をタップすると、ポップアップ ダイアログが表示され、入力漏れのフィールドや検証エラーを完了するための手順が表示されます。
[次へ] ボタンが無効になっています。グレーの塗りつぶしがある [次へ] ボタン。
禁止事項 - 無効なボタン
無効なボタンがあると、ユーザーは問題を解決する方法を把握しにくくなります。
[次へ] ボタンには矢印アイコンのみが表示され、テキストの説明はありません。
禁止事項 - アイコンのみのボタン
アイコンのみのボタンは避けてください。ボタンには常にわかりやすいアクションのラベルを付けます。

質問と手順

質問と手順のコンポーネントを示すアノテーション付きのページ分割されたアンケート。
このセクションで説明する 9 つのコンポーネントの概要と、ページ分割されたアンケートでコンポーネントを組み合わせる方法。
  1. アンケートのタイトル。
  2. 進行状況インジケーター。
  3. グループ ヘッダー。
  4. 質問のタイトル。
  5. 手順。
  6. 入力フィールド。
  7. エントリの形式。
  8. 必須フィールド。
  9. ヘルプ] をタップすると、ヘルプが表示されます。

グループ ヘッダー

グループ ヘッダーは、質問のタイトルの上に表示されるテキスト ヘッダーです。

グループ ヘッダーを使用して、類似した質問をグループ化します。グループ ヘッダーは、役立つ情報が追加される場合にのみ使用します。

グループ ヘッダーは [Patient History](患者の病歴)です。
推奨 - 短いタイトル
短いタイトルを使用して、類似した質問をグループ化します。例: 患者の病歴に関連するすべての質問がグループ化されます。
グループ ヘッダーは個人情報とライフスタイル情報です。
避けるべきこと - 長いタイトル
複雑なタイトルや、1 行を超える長いタイトルは避けてください。

質問のタイトル

質問のタイトルには、要求されている情報が簡潔に記載されています。質問のタイトルは、ユーザーの注意を質問に引き付けるために、ページ内で最も大きなフォントサイズで表示されます。

すべてのページまたは質問に質問のタイトルが必要です。質問のタイトルは短くするか、質問の形式で記述します。

質問のタイトルは生年月日です。
推奨 - 短い質問のタイトル
短いタイトルにすると、ユーザーが読みやすくなります。
質問のタイトルは「生年月日を入力してください」です。生まれた都市はどこですか?
避けるべきこと - 長い質問のタイトル
非常に長い質問や、2 つの質問をネストすることは避けてください。
質問のタイトルがありません。
避けるべきこと - 質問のタイトルがない
ユーザーが入力すべき情報を把握しやすくするため、質問のタイトルは必ず含めてください。

手順

[課題の詳細] は、質問のタイトルの下に表示される省略可能なテキスト フィールドです。

手順フィールドを使用して、質問が必須かどうか、選択できる数(1 つまたは複数)、すべての情報を入力できない場合や質問に回答できない場合にユーザーがすべきことなど、関連する手順を説明します。

手順: 1 つ選択します。必須の質問。
推奨 - 必要なものを説明する
質問が必須かどうか、選択できる数などを説明欄で知らせます。
手順: 正確な生年月日が不明な場合は、[生年月日不明] チェックボックスをオンにします。
すべきこと - エッジケースの対処方法を説明する
すべてのフィールドを完了できないなどのシナリオにユーザーが遭遇した場合の対処方法を、手順に沿って説明します。
手順: 緊急時に使用される代替連絡先は、近親者(パートナー、母親、兄弟など)になります。
行うこと - コンテキストまたは定義を説明する
質問のタイトルで使用されている用語のコンテキストや定義を追加するために、手順を使用します。

ラベルテキスト

ラベルテキストは、テキスト フィールドまたはプルダウンでどのような情報が求められているかをユーザーに知らせます。フィールドを選択すると、ラベルテキストがテキスト フィールドの中央から上部に移動します。

すべてのテキスト フィールドドロップダウン ボックスにはラベルが必要です。ラベルテキストは、短く、明確で、完全に表示されるようにします。

ラベルのテキスト: 名。
推奨事項 - 簡潔にする
ラベルのテキストは短く、明確で、完全に表示されるようにします。
ラベルのテキスト: クライアントの名前を入力します。
しない - 長文にする
ラベルのテキストが長すぎたり、切り捨てられたり、複数行にわたったりしないようにします。
ラベルのテキストがありません。
ラベルなし - 避ける
ユーザーが入力すべき情報を把握できるよう、テキスト フィールドには常にラベルを付けます。

エントリの形式

EntryFormat は、テキスト フィールドの下に表示され、入力する必要があるデータの特定の形式をユーザーに通知します。エラー メッセージは EntryFormat フィールドに表示され、既存の EntryFormat の指示に置き換わります。

日付、電話番号、単位、整数には EntryFormat を使用します。

日付の形式: dd/mm/yyyy。
推奨 - EntryFormat を使用する
フィールドの下に日付形式を表示し、説明的なフレーズを含めます。
日付の形式がありません。
しない - EntryFormat なし
データ形式が表示されないと、データが誤って入力される可能性があります。
[心拍数] テキスト フィールドの下に、[入力形式] として [正常範囲: 60 ~ 100 bpm] と表示されます。[血中酸素飽和度] テキスト フィールドの下に、[入力形式] として [正常範囲: 95 ~ 100%] と表示されます。
推奨 - 基準値を示す
医療範囲を入力する際は、基準値の例を示します。これにより、ユーザーはエラーや範囲外の数値を検出できます。

必須項目

必須項目は、ユーザーがその項目を完了する必要があることを示します。その項目が完了するまで、ユーザーは次のステップに進むことができません。

フィールドが必須であることを示すには、質問タイトルの末尾にアスタリスク(*)を表示します。アスタリスク(*)が何を示しているのかが誰にでもわかるわけではないため、説明欄に「必須の質問」と記載してください。質問のタイトルがない場合は、ラベル テキストにアスタリスク(*)を表示します。

質問タイトルの後のアスタリスクと、以下の手順の必須の質問。
推奨事項 - 説明文
アスタリスク(*)でフィールドが必須であることを示し、「必須の質問」であることを示す説明文を含めます。アスタリスク(*)の意味を理解していないユーザーも多いため、説明文があると便利です。
質問のタイトルの後にアスタリスクが付いているが、アスタリスクの意味を説明する記述がない。
避けるべきこと - 説明がない
アスタリスク(*)のみを表示し、その意味の説明を記載しないことは避けてください。
質問のタイトルの後のアスタリスクと必須の質問は、以下の手順に示されています。
推奨 - 用語をローカライズする
ユーザーが最もよく知っている用語を使用します。例: 「必須」の代わりに「必須」という用語が一部の国でより一般的で、使用されている場合があります。
アスタリスクは使用しません。省略可能な質問が手順に表示されます。
推奨 - 省略可能な質問を示す
ほとんどの質問が必須の場合は、省略可能な質問を示します。
ラベルテキストの後のアスタリスク。[入力形式] フィールドに表示された必須の質問。
推奨 - ラベルテキストにアスタリスクを表示する
質問のタイトルがない場合は、ラベルテキストにアスタリスクを表示します。

ヘルプ

質問のタイトルの横にヘルプ アイコンが表示されます。アイコンをタップすると、追加情報を含むヘルプ情報ボックスが表示されます。アイコンをもう一度タップすると、ヘルプ情報ボックスが閉じます。

これはオプションのコンポーネントです。常に表示する必要のない追加情報を表示するのに役立つ場合にのみ使用します。

ヘルプ: 季節性インフルエンザ ワクチンは、インフルエンザ予防接種とも呼ばれます。
行うべきこと - ヘルプボックスにオプションの情報を表示する
ユーザーが一度だけ確認する必要がある情報や、追加情報を提供する場合は、ヘルプを使用します。
ヘルプ: 1 つ選択してください。
しない - ヘルプボックス内の手順を非表示にする
すべてのユーザーに表示されるべき手順をヘルプボックス内に隠さないようにします。

データ キャプチャ

8 つのデータ収集コンポーネント(テキスト フィールド、日付選択ツール、プルダウン、スライダー、単一選択、ブール値選択、複数選択、自由回答)。
Android FHIR SDK の 8 つの主要なデータ キャプチャ コンポーネント。

どのコンポーネントをいつ使用するか

データ入力の種類 ブール値の選択 単一選択 多肢選択式 選択肢を開く プルダウン 日付選択ツール テキスト フィールド スライダー 予測入力
[Yes] または [No] を選択します。
オプションを 1 つ選んでください
注意
複数のオプションを選択する
注意
テキスト
日付
Numbers
注意

テキスト フィールド

テキスト フィールドは、ユーザーが情報を入力できることを示します。

名前、電話番号、住所など、アンケートにテキストを入力する必要がある場合は、テキスト フィールドを使用します。事前入力された選択肢(複数選択または単一選択)を使用できる場合は、テキスト(キーボード)入力が必要なデータ入力を制限します。

material.io のテキスト フィールドの詳細

質問のタイトル: 新しいユーザーを登録します。テキスト フィールド 1: 名前。テキスト フィールド 2: 電話番号。
推奨 - 一意のデータ入力にはテキスト フィールドを使用する
一意の単語や数字の入力が必要なデータ入力には、テキスト フィールドを使用します。
質問のタイトル: 受診理由テキスト フィールド: 理由を説明する
避けるべきこと - 自由記述の回答の使用を制限する
複数選択、プルダウン、単一選択のいずれかで済む場合は、自由記述の回答の使用を避けてください。

単一選択とブール値の選択

単一選択ブール値選択は、ユーザーがオプションから 1 つの選択肢を選択するよう求められたときにラジオボタンとして表示される選択コントロールです。

「はい」または「いいえ」の二者択一の場合は、ブール値の選択を使用します。それ以外の場合は、単一選択コンポーネントを使用します。リストに 10 個以上のオプションがある場合は、単一選択ではなくプルダウンを使用します。オプションが多い場合は、プルダウンの方が密度が高く、操作しやすくなります。

質問のタイトル: 初めてのアクセスですか?ブール値の選択オプションは「はい」と「いいえ」です。
Do - Boolean choice
オプションが「はい」と「いいえ」の場合、ブール値の選択を使用します。
質問のタイトル: 最終学歴を教えてください。
            単一選択オプションは次のとおりです。1. わからない 2. 教育なし

            3.  小学校 4. 中学校。
Do — 単一選択
ユーザーがリストから 1 つのオプションを選択できる場合は、単一選択を使用します。
州の長いリストが表示された単一選択リスト。状態 23 ~ 27 が表示されます。
避けるべきこと - 長すぎるリスト
長すぎるリスト(10 個以上)で単一選択を使用しないでください。代わりにプルダウンを使用してください。

日付選択ツール

日付選択ツールを使用すると、ユーザーはカレンダーの日付選択ツールとキーボードの両方で日付を入力できます。カレンダー アイコンをタップすると、カレンダーの日付選択ツールが有効になります。

カレンダーの日付選択ツールは、最終月経や次の受診日など、今日に近い日付にのみ使用してください。それ以外の場合は、生年月日などの日付のキーボード入力が優先されます。

生年月日。キーボードによる日付入力が有効になっています。テキスト フィールド ボックスの右側にあるカレンダー アイコン。チェックボックスがオンになっており、日付が概算であることを示しています。
Do — Both entry options
日付を入力する際は、キーボード入力(テキスト ボックスをタップ)とカレンダーの日付選択ツール(アイコンをタップ)の両方を有効にします。
日付選択ツールのカレンダー ビュー。
しない - カレンダーのみを避ける
生年月日の入力方法としてカレンダーの日付選択ツールのみを有効にすることは避けてください。月と年への移動が難しい。

プルダウン メニューを使用すると、ユーザーは複数のオプションから選択できます。ユーザーが入力を開始すると、入力された内容に基づいてオプションがフィルタされます。これにより、ユーザーは長いリストから適切なオプションをすばやく見つけることができます。

プルダウン メニューは、選択肢のリストが非常に長い場合(10 個以上の選択肢がある場合)に、単一選択の代わりとして最適です。プルダウン メニューは、占有するスペースが少ないためです。

[State](都道府県 / 州)のプルダウンで、A ~ F の都道府県 / 州がリスト表示されている。
使用する - 長いリストの場合
都道府県や市区町村の選択など、非常に長いオプションのリストから 1 つのオプションを選択する場合は、プルダウンを使用します。
年齢のプルダウン。1 ~ 6 の数字がリスト表示されています。
しない - 入力が簡単な場合
年齢など、すべてのオプションをスクロールするよりも入力する方が簡単な場合は、プルダウンを使用しないでください。

多肢選択式

複数選択は、ユーザーがオプションのリストから複数の選択を行える場合にチェックボックスとして表示される選択コントロールです。

ユーザーが事前に決められたオプションのリストからのみ選択できる場合は、複数選択を使用します。ユーザーが自由回答を追加できる場合は、代わりにオープン選択コンポーネントを使用します。[手順] フィールドに「該当するものをすべて選択してください」と入力して、ユーザーが複数のオプションを選択できることを知らせます。

質問のタイトル: 本日お問い合わせいただいた理由をお聞かせください。4 つのチェックボックスとオプションが 1 行に 1 つずつ表示されています。
行うこと - 行ごとに 1 つ選択
デフォルトでは、タップ可能な領域をわかりやすくするために、チェックボックスの周りにコンテナが表示されます。
質問のタイトル: 今日アクセスした理由。6 つのチェックボックスとオプションが 2 つずつ 3 行に表示されています。2 つのオプションでテキストが途中で切れています。
避けるべきこと - 1 行に複数のオプション
スマートフォンの画面サイズや文字サイズはさまざまであるため、1 行に複数のオプションを表示すると、テキストが途中で切れてしまう可能性があります。

選択肢を開く

自由回答形式は多肢選択式に似ていますが、ユーザーが [その他] を選択して自由形式のテキストを入力できる機能が追加されています。

オープン選択は、オプションのリストが事前に設定されているが、ユーザーがオプションを追加することもできる場合に使用します。ほとんどの選択肢がわかっているが、提供された選択肢のいずれも当てはまらないため、一部のユーザーが [その他] を選択すると予想される場合は、オープン選択を使用します。

[その他] が選択されている。自由形式のテキストを追加するためのテキスト フィールドがアクティブです。キーボードが表示されます。
使用する - より正確なデータの収集に使用する
正確なデータを収集することが重要で、事前定義されたオプションのいずれも適用されない場合に使用します。例: 職業。
質問のタイトル: 他に何か追加することはありますか?3 つの選択肢(はい、いいえ、その他)があります。[その他] が選択されている。自由形式のテキストを追加するためのテキスト フィールドがアクティブになっています。
使用しない - すべての回答が「その他」になる場合
回答の大部分で [その他] を選択する必要がある場合は、使用を避けてください。その場合は、代わりにテキスト フィールドまたは段落フィールドを使用してください。

スライダー

スライダーを使用すると、ユーザーは値の範囲から選択できます。Android FHIR SDK のスライダーは離散スライダーです。離散スライダーを使用すると、ユーザーは事前に設定された範囲から特定の値を選択できます。利用可能な値を示すために、目盛りを使用できます。数値データの入力にスライダーを使用しない。 代わりに、テキスト フィールドまたはプルダウン メニューを使用してください。

material.io のスライダーの詳細

質問のタイトル: クライアントには何人の子供がいますか?スライダーで数字の 4 が選択されている。
避けるべきこと - 特定の数値にスライダーを使用する
範囲が大きい場合は、特定の値にスライダーを使用しないでください。代わりに、キーボード入力が可能なテキスト フィールドを使用してください。

データの検証とエラー

データの検証

データ検証では、テキスト フィールドに入力できるデータの種類や値を制限します。データ検証により、収集されるデータの品質を向上させることができます。

EntryFormat フィールドを使用して、形式または値の制限を表示します。ユーザーがエラーを修正できるように、意味のあるデータ検証エラー メッセージをインラインですぐに表示します。

ラベルのテキスト: 電話番号。入力形式: 8 桁。
行う - 検証の制限を表示する
データ検証の制限を事前に表示して、ユーザーがデータを入力する方法を把握できるようにします。
ラベルのテキスト: 電話番号。エントリ形式: なし。
しない - 検証制限を非表示にする
電話番号に必要な桁数が表示されないと、ユーザーがエラーに遭遇する可能性が高く、完了までに時間がかかります。
入力した日付は 22/33/4444 です。エラー メッセージ: Wrong date format(日付の形式が正しくありません)。形式は dd/mm/yyyy にする必要があります。
行うべきこと - 検証エラーをすぐに表示する
フィールドの入力が完了したら、すぐに意味のあるデータ検証エラーを表示します。エラー メッセージは、既存のエントリ形式のテキストを置き換えます。
ダイアログ。次のエラーを修正してください。1. 電話番号。2. 生年月日。
            ボタン 1: このまま送信。ボタン 2: エラーを修正します。
しない - 送信後に待機する
ユーザーが [送信] を押すまで待ってから、検証エラーを初めて表示しないでください。

エラー

エラー メッセージは、問題が発生したときにユーザーに警告し、問題を解決する方法を伝えます。

色、アイコン、テキストを使用してエラーを伝えます。

material.io のエラー メッセージの詳細

エラー メッセージは「必須の質問です。1 つ選択してください。」
Do — エラーの修正方法を明確に説明する
エラーが発生した理由(必須の質問)と、エラーを修正するためにできること(1 つ選択)を説明します。
エラー メッセージは「Error」です。
避けるべきこと - 「エラー」のみを記述する
「エラー」のみのエラー メッセージでは、ユーザーがエラーを修正する方法を知るうえで役に立ちません。
生年月日。入力した日付は 22/33/4444 です。エラー メッセージは「Wrong date format」です。形式は dd/mm/yyyy である必要があります。
Do — 責任を追及せずにエラーの修正方法を説明する
例: 「日付形式が間違っています。形式は dd/mm/yyyy".
生年月日。入力した日付は 22/33/4444 です。エラー メッセージは「日付の形式が正しくありません」です。
しないこと - ユーザーを責める
「あなた」を含むエラー メッセージでユーザーを責めることは避けてください。例: 「日付の形式が間違っています。」
赤い文字で「必須の質問です」と表示されている前にアイコンが付いたエラー メッセージ。オプションを 1 つ以上選択してください。」チェックボックス コンテナは赤い枠で囲まれています。
適切 - 複数のキュー
色、アイコン、テキストを使用して、エラーが発生したことをユーザーに知らせます。
エラー メッセージやアイコンは表示されません。チェックボックス コンテナの枠線が赤色で表示されます。これがエラーを示す唯一のインジケータです。
しない - 色のみに依存する
赤緑色覚異常などの一般的な視覚障がいをサポートするため、エラーを伝えるために色のみに依存することは避けてください。
チェックボックス コンテナの枠線が赤色になり、各コンテナの背面にエラーアイコンが 1 つ表示されます。3 つのアイコンが表示されます。
しない - アイコンを使いすぎない
アイコンは 1 つで十分な場合が多いです。エラーを伝えるためにアイコンを過度に使用しないでください。