rtSurveyの読み取り専用フィールドは回答者が編集できない情報を表示できます。この機能は事前入力されたデータ、計算結果、または調査全体を通じて一定に保つべき情報を表示するのに特に有用です。

基本的な使い方

フィールドを読み取り専用にするには、XLSFormのread_only列を使用します:

  | type    | name | label                 | read_only | default |
|---------|------|----------------------|-----------|---------|
| integer | num  | 患者番号は:    | yes       | 5       |
  

この例では、患者番号は5に設定され、回答者が変更することはできません。

読み取り専用とデフォルト値の組み合わせ

読み取り専用フィールドは、事前に決められた情報や計算された情報を表示するためにデフォルト値と組み合わせてよく使用されます:

  | type    | name     | label               | read_only | default        |
|---------|----------|---------------------|-----------|----------------|
| text    | username | ログインユーザー:     | yes       | ${current_user}|
| date    | today    | 今日の日付:       | yes       | today()        |
  

ここでは、ユーザー名と現在の日付が表示されますが、編集することはできません。

rtSurvey固有の機能

条件付き読み取り専用

rtSurveyは条件付きロジックで読み取り専用機能を拡張します:

  | type    | name     | label           | read_only                |
|---------|----------|-----------------|--------------------------|
| integer | age      | 年齢:            | ${role} = 'viewer'       |
| text    | comments | コメント:       | selected(${status}, 'closed') |
  

これらの例では:

  • ‘age’フィールドはユーザーのロールが’viewer’の場合のみ読み取り専用になる。
  • ‘comments’フィールドはステータスが’closed’の場合に読み取り専用になる。

動的読み取り専用ステータス

rtSurveyは読み取り専用ステータスを動的に変更できます:

  | type      | name     | label    | read_only              |
|-----------|----------|----------| ----------------------|
| text      | address  | 住所: | ${edit_mode} = 'false' |
  

これにより、特定の条件やユーザーアクションに基づいて編集可能モードと読み取り専用モードを切り替えることができます。

読み取り専用フィールド使用のベストプラクティス

  1. 明確さ:視覚的な手がかりやラベルを通じて、どのフィールドが読み取り専用かを明確に示す。
  2. 一貫性:調査全体で読み取り専用フィールドを一貫して使用する。
  3. 検証:読み取り専用フィールドは編集できなくても、データ検証プロセスに含める。
  4. パフォーマンス:読み取り専用フィールドの複雑な計算はフォームの読み込み時間に影響する場合があるので注意する。
  5. アクセシビリティ:スクリーンリーダーのために読み取り専用フィールドが適切にマークされていることを確認する。

高度なテクニック

計算された読み取り専用フィールド

読み取り専用フィールドを使って他の回答に基づく計算を表示する:

  | type      | name     | label           | read_only | calculation            |
|-----------|----------|-----------------|-----------|------------------------|
| calculate | bmi      | BMI:            | yes       | ${weight} / (${height} * ${height}) |
  

履歴データの表示

読み取り専用フィールドは以前の調査や外部ソースからのデータを表示できます:

  | type    | name           | label                  | read_only | default                    |
|---------|----------------|------------------------|-----------|----------------------------|
| text    | last_visit_date| 前回の受診日:    | yes       | ${pulldata('visits', 'date', 'id', ${patient_id})} |
  

データ管理の考慮事項

  • 読み取り専用フィールドはデータエクスポートに含まれ、通常は読み取り専用ステータスを示すフラグが付きます。
  • 既存レコードを更新する際、読み取り専用フィールドはバックエンドから明示的に上書きされない限り元の値を保持します。

モバイルアプリの動作

  • rtSurveyモバイルアプリは条件付き読み取り専用ロジックを含む読み取り専用設定を尊重する。
  • オフラインモードは動的および計算された読み取り専用フィールドを含む読み取り専用機能を完全にサポートする。

既知の制限

  • 一部の複雑な動的読み取り専用条件は低スペックのデバイスでわずかなパフォーマンスへの影響がある場合がある。
  • 読み取り専用フィールドはエクスポートされたデータファイルでのすべてのデータ操作形式を防げない可能性があるため、重要なデータにはサーバーサイドの検証をお勧めします。

読み取り専用フィールドのトラブルシューティング

  1. フィールドが予期せず編集可能read_only列または条件付きロジックの構文エラーを確認する。
  2. 計算値が更新されない:計算ロジックを確認してすべての参照フィールドが正しく名前付けされていることを確認する。
  3. パフォーマンスの問題:複雑な計算を最適化するか読み取り専用データを表示するための代替アプローチを検討する。
このページは役に立ちましたか?