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') |
  

이 예시에서:

  • 사용자의 역할이 ‘viewer’인 경우에만 ‘age’ 필드가 읽기 전용입니다.
  • 상태가 ‘closed’이면 ‘comments’ 필드가 읽기 전용이 됩니다.

동적 읽기 전용 상태

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. 성능 문제: 복잡한 계산을 최적화하거나 읽기 전용 데이터를 표시하기 위한 대안적 접근 방식을 고려합니다.
이 페이지가 도움이 되었나요?