Research 도메인 요구사항
범위: Dashboard의 연구(Research) 시트 노출/접근, 연구 참여자(Research Participant) 등록·조회·수정·삭제(연구 목록 제외), 연구용 사용자 카드 지표 산출/표시, 불성실(NonCompliant) 판정
비범위(별도 도메인):
- 인증/토큰/세션: Auth Operation 도메인
- 운영자/서비스 계정 생명주기(회원가입/초대/계정 삭제 등): Operation User 도메인
- 권한/Role/Group/Permission 및 프로비저닝: IAM Operation 도메인
- 병원(Site) 생성 및 임상연구 여부(clinicalResearch) 관리: Site 도메인
- 처방/슬립큐 코드 발급, Connect DTx 연동: 처방/외부 연동 컨텍스트(본 문서 범위 아님)
- 앱 데이터(수면기록/설문/마지막 접속 등) 수집 및 정합성: 앱/데이터 컨텍스트(본 문서 범위 아님)
1. 기능 요구사항
1.1 연구(Research) 시트 접근 및 스코프
- RSC-FR-BE-001: 시스템은 로그인한 계정의 소속 기관(Site)이 임상연구 참여 Site인 경우에만 연구(Research) 관련 기능을 허용해야 한다.
- 임상연구 참여 Site 여부는 Site 도메인의
clinicalResearch(또는 동등 플래그)로 판단한다.
- 임상연구 참여 Site 여부는 Site 도메인의
- RSC-FR-BE-002: 시스템은 IAM 권한 평가 결과(그룹/권한)와
siteId컨텍스트에 따라 연구(Research) 데이터 조회 스코프를 다음과 같이 적용해야 한다.- 플랫폼 전체 조회 권한 보유자(예:
medi.platform-admin): 모든 임상연구 참여 Site의 연구 참여자 조회 가능 - 사이트 스코프 사용자(예:
medi.site-admin,medi.site-member): 본인 소속 Site의 연구 참여자만 조회 가능
- 플랫폼 전체 조회 권한 보유자(예:
- RSC-FR-FE-001: 클라이언트는 연구(Research) 시트 접근이 허용된 계정에 대해서만 상단 내비게이션에 연구(Research) 시트를 노출해야 한다.
1.2 연구 참여자 목록 조회(홈) 및 정렬/검색/필터
- RSC-FR-BE-003: 시스템은 연구 참여자 목록(홈)을 조회할 수 있어야 한다.
- RSC-FR-BE-004: 시스템은 플랫폼 전체 조회 권한 보유자(예:
medi.platform-admin)에 대해 전체 Site 연구 참여자 목록을 조회할 수 있어야 한다. - RSC-FR-BE-005: 시스템은 사이트 스코프 사용자(예:
medi.site-admin,medi.site-member)에 대해 요청자 소속 Site의 연구 참여자 목록만 조회할 수 있어야 한다. - RSC-FR-BE-006: 시스템은 연구 참여자 목록을 최근 등록 순(내림차순)을 기본 정렬로 제공해야 한다.
- RSC-FR-BE-007: 시스템은 정렬 옵션으로 최근 등록 순/오래된 순을 제공해야 한다.
- RSC-FR-BE-008: 시스템은 이름, 슬립큐 코드, 무작위번호로 연구 참여자를 검색할 수 있어야 한다.
- RSC-FR-BE-009: 시스템은 불성실 환자만 보기(NonCompliant only) 필터를 제공해야 한다.
- RSC-FR-BE-010: 시스템은 불성실 환자가 존재할 경우, 불성실 환자 카드가 전체 리스트의 최상단에 노출되도록 정렬을 적용해야 한다.
- 불성실 환자끼리의 정렬은 최근 등록 순(내림차순)을 따른다.
- RSC-FR-FE-002: 클라이언트는 연구 참여자 검색창을 제공해야 하며, 이름/슬립큐 코드/무작위번호를 입력하면 해당 카드만 표시해야 한다.
- RSC-FR-FE-003: 클라이언트는 정렬 드롭다운(최근 등록 순/오래된 순)과 불성실 환자만 보기 체크 옵션을 제공해야 한다.
1.3 연구 참여자 카드(Research Participant Card) 표시 및 산출 지표
1.3.1 카드 표시 필드
- RSC-FR-BE-011: 시스템은 연구 참여자 카드에 최소 다음 정보를 제공해야 한다.
- 개인정보: 이름, 생년월일
- 앱/처방 정보: 슬립큐 코드, 담당의, 처방일, 등록일(앱 활성화 시점), 마지막 앱 사용일
- 연구 정보: 무작위번호, 메모, 불성실 여부
- RSC-FR-FE-004: 클라이언트는 연구 참여자 카드에 표시되는 필드를 읽기 전용으로 표시해야 한다.
- 단, 무작위번호/메모는 수정 가능 필드로 처리한다(1.4 참조).
1.3.2 산출 지표(파생 데이터) 규칙
- RSC-FR-BE-012: 시스템은 치료주차를 사용자의 최초 시작일을 기준으로 다음 규칙으로 산출해야 한다.
- 1일
7일: 1주차, 8일14일: 2주차, 15일21일: 3주차, 22일28일: 4주차, 29일35일: 5주차, 36일42일: 6주차 - 43일 이후: 만료됨(43일)
- 1일
- RSC-FR-BE-013: 시스템은 앱 접속 횟수를
n/42형식으로 제공해야 한다.n: 00:00~23:59 사이에 1회 이상 접속한 “일자 수” (동일 일자 중복 접속은 1회로 카운팅)
- RSC-FR-BE-014: 시스템은 배워보기 진도를
n/6형식으로 제공해야 한다.n: 완료한 세션 수- 완료 기준: 해당 세션에 속한 모든 레슨을 열람한 경우에만 완료로 카운팅
- RSC-FR-BE-015: 시스템은 설문 횟수를
n회/4회형식으로 제공해야 한다.n: 완료한 설문 수
- RSC-FR-BE-016: 시스템은 수면 기록 횟수를
A/B형식으로 제공해야 한다.A: 수면 기록 작성 완료 횟수B: 치료 일차(최대 42)
- RSC-FR-BE-017: 시스템은 수면제 복용 횟수를
A/B형식으로 제공해야 한다.A: 수면제 복용 횟수B: 수면 기록 작성 완료 횟수
- RSC-FR-BE-018: 시스템은 기상시각 준수율을 다음 규칙으로 산출하고 퍼센트로 제공해야 한다.
- 분자: 목표 기상 시간 준수 횟수
- 분모: 첫 처방 다음날 이후로 작성한 수면 기록 수(RTIB 기준)
- DNS(수면 기록 미작성)는 “수면 기록은 작성한 것으로, 목표 기상 시간은 준수하지 않은 것”으로 해석한다.
- 소수점 첫째 자리에서 반올림
- RSC-FR-BE-019: 시스템은 취침시간 준수율을 다음 규칙으로 산출하고 퍼센트로 제공해야 한다.
- 분자: 목표 취침 시간 준수 횟수
- 분모: 첫 처방 다음날 이후로 작성한 수면 기록 수(RTIB 기준)
- DNS(수면 기록 미작성)는 “수면 기록은 작성한 것으로, 목표 취침 시간은 준수하지 않은 것”으로 해석한다.
- 소수점 첫째 자리에서 반올림
- RSC-FR-BE-020: 시스템은 평균 수면 기록 지표(SE, WASO, TST, SOL)를 다음 구간 기준으로 산출해야 한다.
- 1주차(8일차) 평균: 1일차~7일차 작성 데이터
- 6주차(43일차) 평균: 36일차~42일차 작성 데이터
- 7일 중 미작성 날의 데이터는 평균 계산에 포함하지 않는다.
- 포함된 데이터가 없어 값을 산출할 수 없는 경우 “-”로 표기한다.
- 소수점 셋째 자리에서 반올림하고, 소수점 첫째/둘째 자리가 0이어도 표기한다.
1.4 연구 참여자 수정(무작위번호/메모)
1.4.1 무작위번호(Randomization Number) 수정
- RSC-FR-BE-021: 시스템은 연구 참여자의 무작위번호를 저장/수정할 수 있어야 한다.
- RSC-FR-BE-022: 시스템은 무작위번호의 중복 검증 범위를 병원(Site) 단위로 적용해야 한다.
- 동일
siteId내에서randomizationNumber는 중복될 수 없다. - 서로 다른
siteId간 중복은 허용한다.
- 동일
- RSC-FR-BE-023: 시스템은 무작위번호 저장/수정 시 포맷 규칙을 검증할 수 있어야 한다.
- 포맷은 연구 종류에 따라 변경될 수 있으므로, 최소 요구사항은 “1개 이상의 문자 입력을 허용”하는 것이다.
- RSC-FR-FE-005: 클라이언트는 무작위번호 입력 시, 어떤 문자든 1개 이상 입력된 상태에서 0.5초 동안 추가 입력이 없으면 중복 여부/규칙 준수 여부/사용 가능 여부를 판단하여 안내 메시지를 표시해야 한다.
1.4.2 메모(Memo) 수정
- RSC-FR-BE-024: 시스템은 연구 참여자에 대해 메모를 저장/수정할 수 있어야 한다.
- RSC-FR-BE-025: 시스템은 메모를 단일 최신본으로만 관리해야 하며 과거 수정 이력을 제공하지 않아야 한다.
- RSC-FR-FE-006: 클라이언트는 메모 입력/수정 UI를 제공해야 하며 저장 성공 시 최신 메모만 카드에 표시해야 한다.
1.5 연구 참여자 등록
1.5.1 진료용 환자 목록에서 불러오기(연구 리스트 포함)
- RSC-FR-BE-026: 시스템은 진료용 환자 목록(이미 활성화된 사용자)에서 선택한 사용자를 연구 참여자로 등록할 수 있어야 한다.
- RSC-FR-BE-027: 시스템은 연구 참여자 등록 시 무작위번호 입력을 요구해야 한다.
- RSC-FR-FE-007: 클라이언트는 “환자 등록” 버튼에서 “진료용 환자 목록에서 환자 정보 불러오기” 옵션을 제공해야 한다.
1.5.2 임상 연구용 환자 신규 등록(코드 발송 포함)
- RSC-FR-BE-028: 시스템은 임상 연구용 환자를 신규 등록할 수 있어야 한다.
- RSC-FR-BE-029: 시스템은 신규 등록 시 슬립큐 코드 발송 수단으로 이메일/SMS/카카오톡 중 하나를 선택할 수 있어야 한다.
- RSC-FR-BE-030: 시스템은 신규 등록 시 담당의 정보를 기록해야 한다.
- RSC-FR-BE-031: 시스템은 신규 등록된 환자의 병원(Site) 정보를 등록을 수행한 계정의 소속 Site로 자동 설정해야 한다.
- RSC-FR-FE-008: 클라이언트는 “임상용 환자 정보 신규 등록” 폼을 제공해야 하며 발송 수단 선택 및 담당의 입력을 지원해야 한다.
- RSC-FR-FE-009: 클라이언트는 “담당의 선택 기억하기” 옵션을 제공해야 하며, 이후 등록 흐름에서 마지막 선택 값을 자동으로 설정할 수 있어야 한다.
1.6 연구 참여자 삭제(연구 목록에서 제외)
- RSC-FR-BE-032: 시스템은 연구 참여자를 연구 리스트에서 제거(연구 시트에서 더 이상 조회되지 않음)할 수 있어야 한다.
- RSC-FR-BE-033: 시스템은 연구 참여자 삭제 시 삭제 요청 계정의 비밀번호 검증을 요구해야 한다.
- 비밀번호 검증 메커니즘(인증/세션)은 Auth Operation 도메인 요구사항을 따른다.
- RSC-FR-BE-034: 시스템은 연구 참여자 삭제가 수행되어도 진료용 환자 데이터는 삭제하지 않아야 한다.
- RSC-FR-FE-010: 클라이언트는 카드에서 삭제(쓰레기통) 버튼을 제공해야 하며, 삭제 팝업에서 비밀번호 입력 후 “삭제하기” 버튼을 활성화해야 한다.
- RSC-FR-FE-011: 클라이언트는 서버 삭제 완료 시 삭제 완료 토스트를 표시해야 한다.
1.7 불성실(NonCompliant) 판정 및 노출
- RSC-FR-BE-035: 시스템은 연구 참여자에 대해 불성실 여부를 판정할 수 있어야 한다.
- RSC-FR-BE-036: 시스템은 다음 조건을 만족하면 불성실 환자로 해석해야 한다.
- 조건 1: 슬립큐 코드 등록 8일차부터 수면 기록률이 50% 이하인 경우
- 조건 2: 43일차에 도달했음에도 마지막 설문을 시행하지 않은 경우
- RSC-FR-FE-012: 클라이언트는 불성실 환자에 대해 카드에 “불성실” 라벨을 표시해야 한다.
- RSC-FR-FE-013: 클라이언트는 조건 1 해당 시 ‘설문 달성률’ 텍스트에, 조건 2 해당 시 ‘수면 기록률’ 텍스트에 색상 강조를 적용해야 한다.
1.8 플랫폼 전체 조회 권한 보유자 전용 UX 및 제한
- RSC-FR-FE-014: 클라이언트는 플랫폼 전체 조회 권한 보유자(예:
medi.platform-admin)에게 “환자 등록” 버튼을 노출하지 않아야 한다. - RSC-FR-FE-015: 클라이언트는 플랫폼 전체 조회 권한 보유자에게 카드에 병원(Site) 정보를 표시해야 한다.
- RSC-FR-FE-016: 클라이언트는 플랫폼 전체 조회 권한 보유자에게 메인 페이지 상단에 연구 협력 병원 리스트를 노출하고, 병원 클릭 시 해당 기관의 연구 참여자만 필터링해서 표시해야 한다.
- RSC-FR-BE-037: 시스템은 플랫폼 전체 조회 권한 보유자의 병원 필터 선택에 따라 해당 Site의 연구 참여자만 조회할 수 있어야 한다.
- RSC-FR-BE-038: 시스템은 플랫폼 전체 조회 권한 보유자의 연구 참여자 정보 추가/수정/삭제 기능을 제한할 수 있어야 한다.
2. 비기능 요구사항
2.1 보안/감사
- RSC-NFR-001: 시스템은 연구 참여자 등록/삭제, 무작위번호 변경, 메모 변경, 불성실 판정 변경을 감사 가능하도록 기록해야 한다.
3. 제약사항
3.1 데이터 제약
- RSC-CR-001: 무작위번호는 병원(Site) 단위로 유일해야 한다. (유니크 스코프:
siteId + randomizationNumber) - RSC-CR-002: 연구 참여자는 진료용 환자(활성 사용자)의 부분집합이어야 한다.
- RSC-CR-003: 연구 참여자 카드에서 사용자가 직접 수정 가능한 필드는 무작위번호와 메모로 제한한다.
4. 의존성
4.1 내부 의존성
- RSC-DR-001: 시스템은 연구 시트 접근/스코프 결정을 위해 IAM Operation 도메인에 의존한다.
- RSC-DR-002: 시스템은 비밀번호 검증 및 인증/세션을 위해 Auth Operation 도메인에 의존한다.
- RSC-DR-003: 시스템은 병원(Site) 및 임상연구 여부 확인을 위해 Site 도메인에 의존한다.
- RSC-DR-004: 시스템은 진료용 환자 목록(활성 사용자) 참조를 위해 진료/환자 컨텍스트에 의존한다.
- RSC-DR-005: 시스템은 카드 지표 산출을 위해 앱 원천 데이터(수면기록/설문/접속 등) 컨텍스트에 의존한다.
변경 이력
| 버전 | 날짜 | 작성자 | 변경 내용 |
|---|---|---|---|
| 0.1.0 | 2025-12-29 | jeff@weltcorp.com | 최초 작성 |