온보딩
iVigilance Square
Onboarding Edition · DevX

iVigilance Square,
한 권으로 읽는 이야기

약물감시(Pharmacovigilance) SaaS 플랫폼 iVigilance Square의 기획 문서 78편을 한 편의 이야기로 묶은 온보딩 가이드.
이 문서를 끝까지 읽고 나면, 당신은 이 프로젝트의 모든 흐름을 알게 된다.

2026-05-19 Sync78 docs · 1 storyKorean · Internal
CHAPTER 00Prologue

우리는 무엇을 만들고 있는가

상에 약(藥)이 나오면, 그 약을 먹은 사람의 몸은 의도하지 않은 방향으로 반응한다. 두통, 발진, 호흡 곤란, 때로는 사망까지. 이런 사건을 우리는 이상사례(Adverse Event, AE)라고 부른다. 그리고 제약회사는 법적으로, 이 모든 이상사례를 수집하고 평가하고, 정해진 기한 안에 규제기관(한국에서는 MFDS, 식약처)에 보고해야 한다.

이 일을 하는 부서를 PV(Pharmacovigilance, 약물감시) 부서라 부른다. PV 담당자는 매일 수십 건의 사례를 다룬다. 어떤 사례는 이메일로, 어떤 사례는 의사가 직접 쓴 종이로, 어떤 사례는 파트너사가 XML로 보낸다. 사례 하나마다 ICH가 정한 ICSR(Individual Case Safety Report)이라는 국제 표준의 수백 개 필드를 채워야 하고, 중대성/인과성/예측성을 판정해 SUSAR인지 ADR인지 분류해야 하고, 그에 따라 “7일 안에 보고할 사례인지, 15일 사례인지, 정기보고로 가는지”를 결정해야 한다.

보고가 끝나면 MFDS가 ACK(접수통지)를 회신하는데, 거기에서 또 오류가 나오면 다시 잠금을 풀고, 다시 평가하고, 다시 보고한다. 이 모든 것을, 한 화면에서, 감사 추적성(audit trail) 100%로, 멀티 조직 환경에서.

이것이 iVigilance Square가 존재하는 이유다.

iVigilance Square 존재 이유

이 플랫폼의 운영 주체는 셀타스퀘어(Seltasquare)이며, 코드네임으로는 IS(Information System)로 표기된다. 첫 릴리스의 메인 앱은 Safety DB이고, 그 뒤로 Tabulator, Sync, 그리고 AI App이 줄을 서 있다.

CHAPTER 01World

세계의 구조 — Org · Workspace · Application

iVigilance Square를 처음 그릴 때, 가장 먼저 결정해야 했던 것은 “고객사를 어떻게 담을 것인가” 였다. 답은 3층 구조다.

Diagram3-Layer Tenancy
Backoffice — 셀타스퀘어 내부 운영생성 · 관리ORG · 고객사 = 운영 주체WORKSPACE · 업무·데이터 범위Safety DBICSRLITUS추후Tabulator집계SYNC동기화

Backoffice가 Org를 만들고, Org 안에 Workspace가, Workspace 안에 Application이 활성화된다.

Org는 유일한 운영 주체다

Multi-Org 구조 및 관련 정책 문서는 단호하게 선언한다. “Org만 시스템 상태를 가진다.” Contract(계약)는 행동하지 않는다. Contract는 단지 Org가 어떤 상태로 전이될 수 있는지의 조건일 뿐이다.

Pre-Active
대기
계약은 등록됐지만 아직 시작 전. 고객 로그인 차단, Backoffice 사전 설정만 가능.
Active
운영
정상 사용 중. 모든 게이트 통과 시 사용자가 App에 진입한다.
Terminated
종료
계약 종료. 접근 차단, D+60일 후 hard delete. 그 사이 복원(Restoration) 가능.

Workspace는 독립 시스템이 아니다

Workspace는 Org 안의 데이터 범위 제한 레이어다. Org당 Main Workspace 1개는 자동 생성되고, 최대 100개까지 추가할 수 있다. Additional Workspace는 선택된 부분집합만 본다 — 복제가 아니라 범위 제한이다.

Workspace
최대 100
Org당
Main WS
자동 1개
Org 전체 접근
직접 이동
불가
Org 홈 경유
데이터 모델
범위 제한
복제 아님

Application은 Workspace에 활성화되어 동작한다

Safety DB
P1
ICSR 수집·평가·보고. 이번 릴리스의 주인공.
LITUS
P2
추후.
Tabulator
P3
데이터 집계.
SYNC
P4
데이터 동기화.
AI App
P5
AI 자동화 (추후).

3-Condition Gate — 접근을 허락받는 세 개의 문

어떤 사용자가 어떤 App을 쓰려면, 다음 세 조건이 동시에 충족되어야 한다. 하나라도 빠지면 접근은 거부된다. 이 원칙은 Master Admin/Org Admin에게도 예외가 아니다 — Org 관리 권한과 실제 Workspace/App 접근 권한은 명시적으로 분리된다.

Diagram3-Condition Gate
01ContractApp이 계약에 포함REQUIRED02WorkspaceWS에서 App 활성화REQUIRED03User Permission사용자에게 권한 부여REQUIREDANDANDMaster Admin / Org Admin 에게도 예외 없음

이 셋이 모두 만족되어야 사용자가 App을 쓸 수 있다. 하나라도 빠지면 접근은 거부된다.

역할의 위계

Backoffice Admin
Backoffice
Org 생성·계약 관리·Master Admin 초대.
Backoffice Operator
Backoffice
잠금해제·비밀번호 메일 등 운영 작업.
Master Admin
Org
Org 최고 관리자. 최소 1명·최대 1명. 계약 종료 전 비활성화 불가.
Org Admin
Org
위임받은 운영. 최대 3명.
Org User
App
App Admin / App User. 안에서 실제 일을 하는 사람들.
Viewer · External
고도화
Viewer: 조회 전용. External: 외부에서 Safety DB만 접근.
CHAPTER 02Identity

신원 확인 — Account · Login · MFA

플랫폼의 첫 관문은 로그인 화면이다. Account (+Login, Password) 정책은 몇 가지 원칙을 못 박는다 — 자가 가입(Self-signup) 없음. 모든 계정은 초대를 통해서만 생성된다.

DiagramAccount States
Invitation
초대 메일 수신 · 비밀번호 미설정 · 7일 유효
Active
정상 사용
Inactive
관리자가 차단
Locked
5회 연속 실패 자동 잠금

계정의 4가지 상태. 잠금은 Org 무관 누적으로 시스템이 자동 처리한다.

비밀번호 정책

길이
9~20자
조합
영대문자(A~Z), 영소문자(a~z), 숫자(0~9), 특수문자 중 3종류 이상. 사용 가능한 특수문자 31자가 별도 정의.
금지 패턴
순차 문자/숫자 4자 이상 금지(1234, abcd) 그리고 반복 문자/숫자 4자 이상 금지(aaaa, 1111) — 두 규칙은 분리되어 적용된다.
재사용
직전 비밀번호 재사용 불가
재설정 쿨다운
비밀번호 재설정 메일은 30초 쿨다운
강제 변경
180일 경과 시 유예 없이 강제 변경. 재설정 완료 전까지 서비스 진입 불가. 과거의 “나중에 변경” 유예는 폐지되었다.

MFA — 조직 단위로 켜고 끄는 이중 인증

Org 단위 정책
MFA는 Org 단위로 활성화한다. 개인이 끄거나 켤 수 없다.
이메일 6자리 / 10분
인증 수단은 이메일 6자리 숫자, 유효기간 10분.
Resend 쿨다운 30초
코드 입력 시도 자체는 타이머를 리셋하지 않는다. Resend Code 클릭만이 새 코드와 새 타이머를 만든다.
잠금 임계 5회
비밀번호 또는 MFA 5회차 입력 시점에 Locked 전환, 즉시 로그아웃. 카운트는 Org 무관 누적.
정책 변경 적용
MFA 정책 변경은 다음 로그인부터 적용된다. 기존 활성 세션은 강제 종료하지 않는다.
잠금 안내
잠금 안내는 로그인 화면에서 노출된다.

계정 비활성화의 가드레일

“진행 중인 케이스의 Owner나 Assignee로 지정된 계정”은 비활성화할 수 없다. 케이스를 Close/Archive로 보내거나 다른 담당자에게 재배정한 뒤에야 가능하다. 데이터의 주인이 갑자기 사라지는 사고를 막기 위한 장치다.

CHAPTER 03First Impression

첫인상 — Home과 Navigation

로그인을 마친 사용자는 어디로 떨어질까? 설계 옵션은 A/B/C 세 가지가 있었고, 결국 C안이 확정되었다.

전 역할이 Org 홈으로 진입한다. Workspace는 새 탭으로 연다. 앱 간 전환은 사이드바에서.

C안 결정

Org 홈 — 모두의 공통 진입점

Org 홈에는 다음 다섯 가지가 놓인다.

공지사항
최근 5건.
내가 오너인 케이스
최근 업데이트 5건.
나에게 배정된 케이스
최근 5건.
다가오는 보고 마감
D-Day 임박순 10건. 신속보고 > 정기보고.
Workspace 바로가기
접근 가능한 워크스페이스 목록.
[Admin] 메뉴
Master Admin / Org Admin / Viewer 에게만 노출. App Admin/User 에게는 안 보임.

내비게이션의 방향성

DiagramNavigation
Org Home모두의 공통 진입점Workspace ASafety DBLITUSSYNCWorkspace BSafety DBTabulator새 탭으로새 탭으로WS↔WS 차단WS A → WS B 이동은 반드시 Org 홈을 경유

Org 홈은 모두의 공통 진입점. Workspace는 새 탭으로 단방향. WS 간 직접 이동은 차단된다.

글로벌 헤더와 사이드바

모든 화면에 고정되는 헤더에는 로고, Workspace명, 세션 시간(60분), 매뉴얼, CS, 프로필 드롭다운이 있다. 프로필을 누르면 My Profile, Version, 로그아웃이 펼쳐진다.

알림(Notification) — 인앱 채널 단일

보관
인앱 최대 100건, 패널에는 최근 20건만 표시. 보존 기간 2주.
읽음 처리
클릭 시 개별 읽음. [Mark all as read]는 확인 팝업을 거친 뒤, 같은 브라우저의 모든 탭에 즉시 동기화.
주요 트리거
라이선스 만료, 케이스 배정, 보고 시작/완료/실패, 케이스 상태 변경 ([Case ID] 상태가 변경되었습니다. [전] → [후]).
보고 기한 임박
D-3부터 매일 00:00–01:00 발송, D-Day까지. 당일에는 [Case ID]의 보고 기한이 오늘까지입니다.

딥링크와 세션

권한 있는 URL
직접 진입.
권한 없는 URL
안내 후 5초 카운트 → Org 홈 리다이렉트.
탭/창 공유 세션
동일 브라우저의 모든 탭/창은 하나의 세션을 공유한다.
전체 로그아웃
한 탭에서 로그아웃하면 전체 탭이 로그아웃된다.
CHAPTER 04Backstage

무대 뒤편 — Backoffice와 계약

고객이 보지 못하는 영역, Backoffice에서는 세 종류의 일이 벌어진다.

계약 생명주기 관리
Contract Created → Active → Renewed → Expired → Terminated
Org/Workspace/App 활성화
계약이 들어오면 Org가 생기고, Main Workspace가 자동 생성되고, 계약 범위에 따라 App이 활성화된다.
Master Admin 직접 초대
Backoffice Admin이 직접 메일을 보낸다.
CHAPTER 05Truth

진실의 세 가지 거울 — Audit Trail · Activity Log · Audit Log

이 플랫폼은 모든 행위를 기록한다. 단, 목적에 따라 셋으로 나눠서.

Activity Log
사용자
어드민 영역 밖의 행위 — 로그인/로그아웃, WS 전환 등.
일반 사용자도 볼 수 있다
Audit Log
관리자
어드민 영역 안의 행위 — 계정·권한·설정 변경.
Admin 권한자만
Audit Trail
케이스
Safety DB의 케이스 필드 변경 (before/after).
일반 사용자

핵심 원칙

Append-only
수정 API, 삭제 API는 존재하지 않는다.
읽기는 기록하지 않는다
조회 이벤트로 로그를 더럽히지 않는다.
중복 기록 없음
같은 행위는 한 번. 단, 행위자가 다르면 분리 (본인 → Activity, 관리자 → Audit).
Break-Glass / 양쪽 기록
Backoffice Admin이 고객 설정을 바꾸면 Backoffice 로그 + 고객 Org Audit Log 양쪽 기록.

보존 정책 · 조회

고객 로그
계약 기간
종료 후 60일 → 삭제
Backoffice
계속 보관
화면 기본
최근 2주
최대 1년 / 10만 건
CSV Export
최대 1년
10만 건 · 미설정 시 30일

Case Audit Trail의 3단 구조

Level 1 · Case ID
케이스 전체 기간의 모든 로그.
Level 2 · Report Type
Initial, Follow-up 1, Follow-up 2…
Level 3 · Save Point
각 리포트 안에서 ‘저장’이 발생한 시각.

각 Save Point에서 사용자/시스템 액션은 별개의 행으로 분리된다. 예: 사용자가 [Save] →CASE_CREATE로그(User), 동시에 시스템이 일련번호 부여 →FU Info로그(System) — 같은 시간, 두 줄. User Comment 이력도 포함되며 User Context > Comment 카테고리 아래 NEW / EDIT / DELETE 액션이 기록된다.

CHAPTER 06Main Stage

본진 — Safety DB

지금부터가 이 플랫폼의 심장이다.

Safety DB의 다섯 메뉴

Dashboard
Status / QC 시각화.
Tracker
케이스 일생을 다루는 메인 그리드. Manual Intake · Case Edit · Workflow를 품는다.
Data Hub
XML Import, Import History.
Submission
MFDS로 보고 전송 및 모니터링.
Case Audit Trail
케이스 변경 이력 조회.
Configuration
= Safety Admin.

사례의 일생 — Tracker라는 무대

목적: 이상사례(AE) 사례의 인입부터 종결까지 단일 화면에서 관리한다.

Tracker 문서 첫 문장

Tracker는 한 줄이 한 케이스인 거대한 그리드다. 주요 컬럼은 다음과 같다.

Case ID · C.1.1
사례 고유 ID.
Worldwide Unique ID · C.1.8.1
전세계 고유 식별 번호. 묶인 케이스 중 Approved 이후가 있으면 검은색, 없으면 회색.
Day0 · C.1.5
최근 인지일.
FU No
후속보고 순번 (Null / Amend / 차수).
Report Type · C.1.3
Spontaneous / Study / Other / Unknown.
Study ID · C.5.1.r.1
Report Type이 Study(2)일 때 노출되는 시험계획서 식별자.
Reported AE · E.i.1.2
원보고자가 기술한 이상사례명.
AE Type (자동)
SUSAR / SADR / ADR / AE / Unclassifiable.
RA Due (자동)
Day-N / D-Day / Delay / On Time / Late / NA.
Workflow
Entry / QC / MA / Approval(In Progress) / Approval(Approved) / Complete / Archived[추후].
Assignee / Owner
배정 담당자 / 생성자.

사례를 만드는 두 가지 길

① Manual Intake
User
사용자가 직접 입력. 4대 요소(보고자·환자·약물·이상사례) 즉시 입력, 중대성/인과성 조기 판정.
② XML Import (Data Hub)
Partner
파트너사나 외부 시스템의 E2B(R3) XML 파일을 받아들임.

Manual Intake — 유효 ICSR의 4대 요소

ICH가 정한 ICSR의 4대 요소는 보고자 · 환자 · 약물 · 이상사례다. 이 넷 중 하나라도 없으면 유효한 케이스가 아니다. 필드는 셋으로 구분된다.

필수
모든 케이스에 입력. 미입력 시 저장 차단.
조건부 필수
예: C.1.3=2(Study)인 경우 C.5.3(시험계획서 번호)이 필수.
선택
입력 안 해도 OK.

의약품 코딩의 이중화

사용자가 Product Master에서 ‘성분만’ 또는 ‘성분+제형’만 선택하는 경우, 시스템은 두 가지를 동시에 저장한다.

보고서 코딩 데이터
ICSR 표준 필드 저장. 최종 ICSR 보고서에 사용 (성분만 코딩).
내부 식별 메타데이터
‘식별용 메타데이터’ 필드. Reporting Triage 로직의 비교 연산에 사용.

L1(성분) → L2(성분+용량) → L3(성분+제형) → L4(성분+제형+용량) → Lic(허가제품+국가)의 5단 계층 중, 사용자가 선택한 정밀도까지만 공식 코딩에 들어가고 나머지는 내부 메타로 보관된다.

Case ID Config 가드

Case Edit — 사례를 빚는 작업대

상단 헤더의 식별자들은 시스템이 자동 관리한다. 사용자는 손댈 수 없다. [+ Follow-up] 버튼은 FU(Follow-up, 후속보고) 자동 생성이다. 기존 사례의 모든 정보를 복사해 새 FU를 만들고 즉시 그 화면으로 전환된다. Case Complete는 별도 헤더 버튼이 아니라 Workflow 패널 안에서 명시적으로 누르는 액션이다.

충돌 처리

Lock과 Unlock

워크플로우가 Approved 또는 그 이후 단계에 들어가면 모든 필드는 Read-only. 수정하려면 [Unlock] 버튼을 누르고 모달에서 이동할 단계(Entry/QC/MA), 담당자, 사유(필수, 최대 1000자)를 입력해야 한다. Unlock 즉시 기존 Approved는 무효화된다.

삭제

보고 이력이 있는 케이스는 삭제할 수 없다. 다른 사용자가 편집 중이어도 안 된다. 삭제 가능한 경우라도 사유를 받는다.

룰과 로직 — 자동 분류의 엔진

이 셋은 케이스 생성 시점에 자동 실행되고, 결과가 Tracker에 즉시 반영된다.

보고 출처 분류 (Source Type)
SP(자발) / CT(임상) / PMS / LS / UNK 중 어디인지.
AE Type 분류
Death / SUSAR(사망·치명/기타) / SADR / ADR / AE / Unclassifiable.
MFDS 보고 기한 (RA Triage)
7일·15일 신속보고인지, 정기보고인지, 보고 대상이 아닌지.

중복과 후속 — 같은 사례인가, 새 사례인가

① New Case Check
C.1.8.1(전세계 고유 식별자) 기준 동일 식별자 보유 케이스 탐색.
② Duplicate Check
동일 식별자 케이스 중 주요 정보를 기반으로 중복/후속 confirm.

후속보고 순번은 시스템이 부여하며, 수정(Amend)/무효화(Null)도 같은 순번 안에서 표시된다.

단계와 상태 — Workflow의 큰 강

DiagramCase Workflow
Entry데이터 최초 입력QC품질 검수MA의학 평가ApprovalIn Progress → ApprovedComplete사용자 명시 클릭RejectLock— Approved 직후 자동, Unlock에는 단계/담당자/사유 필수Edit— 편집 중에는 라우팅 비활성, Chat Room은 항상 열려 있음Submission은 Workflow 단계가 아니다 — Approved 이후 별도 모듈에서 진행

Approved 직후 케이스는 Lock된다. Reject는 Entry/QC/MA로 역라우팅. 단계 이동마다 사유가 필수다.

Entry
입력자가 데이터 최초 입력.
QC
리뷰어가 품질 검수 및 정합성 확인.
MA
Medical Assessor가 의학적 인과성 평가.
Approval (In Progress)
승인 대기.
Approval (Approved)
최종 승인. 즉시 Lock.
Reject
승인 거절. 역라우팅 단계와 사유를 받는다.
Complete
Case Complete 버튼을 명시적으로 누른 시점.
Archived
(고도화) 보관.

통합 커뮤니케이션 패널 — 채팅과 라우팅의 결합

[Chat Room]
채팅방 형태. 작성자/시각/내용 시계열로 누적.
[Workflow]
단계 선택, 담당자 지정, 사유 입력 후 [Send].

[Send] 클릭 시 편집 권한(Assignee)이 즉시 새 담당자에게 이월되고 기존 담당자는 Read-only로 전환된다. 단계 변경, 코멘트, 저장 이력, Lock/Unlock이 모두 같은 타임라인에 시계열 순으로 적층된다.

데이터 허브 — XML Import

외부에서 E2B(R3) XML 파일이 도착하면 Data Hub가 그것을 받아들인다. Import 상태는 다음과 같이 진행된다.

Submission — 규제기관 보고의 전용 무대

Submission List
보고 대상 케이스 선정 및 배치 생성.
Submission Monitoring
배치 전송 상태 추적 및 ACK 처리.

보고 상태의 진화

DiagramSubmission State
DraftVISIBLEDraftVISIBLEValidatedReady to SubmitVISIBLESubmittingINTERNALSubmittedINTERNALValidation 통과담당자 승인[Submit] 클릭ACK 수신실패 (AE/AR/CR/타임아웃) → Draft 복귀

화면에 노출되는 상태는 Draft / Ready to Submit 둘. Validated는 Draft 위 뱃지. Submitting·Submitted는 내부 상태.

신속 vs 정기

Submission List는 Expedited(신속, 디폴트) Periodic(정기) 두 페이지로 분리된다. 신속보고 여부 체크가 되어 있으면 Expedited, 안 되어 있으면 Periodic.

배치 단위 전송

사용자가 케이스를 선택해 [Submit]을 누르면, 동일 Receiver의 케이스끼리 묶여 하나의 배치(Batch)가 생성된다. Receiver는 MFDS의 10가지 코드 중 하나로 매핑된다.

MFDS-O-CT
임상 국내
임상시험 국내.
MFDS-T-CT
TEST
임상시험 국내 (TEST).
MFDS-O-CF
임상 국외
임상시험 국외.
MFDS-O-CU
치료 목적
치료 목적 사용.
MFDS-O-KR
시판후 국내
시판 후 국내.
MFDS-O-FR
시판후 국외
시판 후 국외.

Progress의 4단계

DiagramSubmission Progress
1Queued전송 대기2Transmitting전송 중3Waiting ACK응답 대기4Receive ACK수신 완료

Submission Monitoring 화면의 `Progress` 컬럼 — 4단계 흐름.

각 단계는 진행중/완료/오류로 흐름 상태가 표시된다. 이 흐름은 Progress 컬럼/필드 하나로 통일되어 노출된다 (과거 명칭 Submission Status에서 변경).

ACK — 규제기관의 응답

MFDS는 AS2 게이트웨이로 보낸 배치 XML에 대해 ACK 파일을 회신한다. ACK는 두 레벨로 평가된다.

배치 레벨 · ACK.A.4
AA(승인) / AE(접수 오류) / AR(접수 거절).
케이스 레벨 · ACK.B.r.6
CA(접수 완료) / CR(접수 실패, 치명적 오류).

CR이 발생한 케이스의 ACK.B.r.7에는 상세 사유 코드가 붙는다.

DiagramACK Result
AA + 전체 CA
Success

보고 완료. 케이스는 내부 Submitted로 종료.

AE 또는 AR (배치 실패)
Fail / —

모든 케이스 Draft 복귀. ICSR Processing 재진행.

AA + 일부 CR
혼합

CA 케이스는 접수 완료, CR 케이스만 Draft 복귀.

AE + CR 조합
CR 우선

별도 재배치 팝업 없이 Draft 복귀 (2026-04-28 변경).

2영업일 내 ACK 미수신
Timeout

ACK Timeout. Draft 복귀. (1영업일 = 8h, 토·일·공휴일 제외)

CR 사유 코드
R / P / C / N

필수 누락 · 조건부 필수 누락 · 코드 미정의 · nullFlavor 부적절.

배치 레벨(ACK.A.4)과 케이스 레벨(ACK.B.r.6)의 조합으로 처리가 결정된다.

무결성 보장 · 정시 판정 · 영구 보관

System Freeze
보고가 시작된 케이스는 보고가 끝날 때까지 수정 불가. Submission List에서도 제외. ACK 수신 또는 타임아웃 시 풀린다.
성공 건 보존
전송 성공으로 끝난 보고 건은 별도 행으로 영구 보존되므로 Unlock 불필요. 추가 변경은 새 FU(후속보고)로.
On-Time / Late
ACK 수신 시점과 Due Date 비교 — 이전·동일은 On-Time, 이후는 Late.
Archive
전송한 XML과 받은 ACK 파일은 계약 종료까지 보관. 변조·삭제 불가 (GxP Audit Trail 요건).

Dashboard — Status와 QC

대시보드는 Safety DB를 단일 데이터 원천으로 1시간 주기 배치 갱신된다.

Status 대시보드
수집 시점
현재 DB의 케이스 상태. ICSR/SUSAR 건수, Serious 비율, 누적 총계 카드 + AE Type 분포 / Source별 유입경로 / Domestic·Foreign 차트.
QC 대시보드
보고 완료 시점
Regulatory Authority Submission Compliance · Timeline Compliance, SDEA Partner Exchange Compliance · Timeline Compliance.
CHAPTER 07Administration

관리자의 영역 — Org Admin과 App Admin

Org Admin은 메뉴 8선을 다루고, App Admin은 그 설정을 조회만 한다.

Org Admin 메뉴 8선

사용자 관리
고라이브
계정 CRUD, 초대, MFA, 권한 조회.
라이선스 관리
고라이브
MedDRA / WHODrug 등록 및 상태.
사용량 조회
고도화
계정/앱/WS 사용 현황 및 한도.
오딧 로그
최우선
관리자 작업 이력.
워크플로우 설정
고도화
Unit-사용자 매핑.
기준 정보 설정 (Company Config)
최우선
Product, Sender, Receiver, Study.
ICSR 설정 (ICSR Config)
최우선
Case ID, Sender, Mapping Rule, Auto Narrative.
공지사항
고도화
Org 내 공지 작성·노출 관리.

사용자 관리의 한도

전체 Active+Locked
200
Viewer 미포함
Org Admin
3
최대
App Admin
5
WS-App당
External User
50
Org당, 200에 포함

Viewer는 Org당 최대 5명 (200명에 미포함). 한도 도달 시 생성 버튼은 비활성화되고 안내가 뜬다.

라이선스 관리 — MedDRA와 WHODrug

이 둘은 의약품/이상사례 코딩에 쓰이는 외부 라이선스다. ID 입력 → [Verify] → Status(Active/Expired) + Last Verified가 표시된다. 매주 월요일 자동 체크로 갱신된다.

MedDRA
사용자가 버전 선택 가능. 지원 버전 13종 — 29.0, 28.1, 28.0, 27.1, 27.0, 26.1, 26.0, 25.1, 25.0, 24.1, 24.0, 23.1, 23.0.
WHODrug
최신 버전 자동 적용.
중복 등록
다른 Org가 점유한 MedDRA ID로 등록 시:
“이 ID는 [회사명]에 등록되어 있습니다. 해당 조직의 구성원이십니까?”로 차단.
기능 게이트
라이선스가 있어야 자동 변환과 코드 자동 입력, 수동 코드 선택이 가능. 없으면 봉인.

Company Config — 기준 정보

Product Config
Family (성분 단위 + RSI Datasheet) · Products (제형·용량) · Licenses (Trade Name, 허가국).
Study Config
Project · Study · Study Design (Arm/Period/Treatment/Product List).
Partner
파트너사 관리.

ICSR Config

Case ID
생성 규칙. 미설정 시 Manual Intake가 차단된다 (게이트).
Sender
보고자 정보 + 규제기관별 Batch Sender ID.
Mapping Rule
필드 매핑 규칙.
Auto Narrative
내러티브 자동 생성.

App Admin 영역

App Admin은 Workspace-App 단위로 다음만 한다 — 모두 조회 전용이다.

기준 정보 조회
Read-only.
ICSR 설정 조회
Read-only.
App Audit Log 조회
Read-only.

설정 변경 권한은 없다. Org 레벨 설정을 그저 본다.

CHAPTER 08Lifecycle

시간의 흐름 — 케이스 하나의 여정

지금까지의 모든 조각을 한 줄기로 꿰어보자.

DiagramCase Journey
  1. 01외부 세계
    의사·환자·파트너사가 이상사례 발견
  2. 02Data Hub / Manual Intake
    XML Import 또는 직접 입력 · C.1.8.1 매칭 · Case ID 부여
  3. 03Rule & Logic
    Source Type · AE Type · MFDS 보고 기한 자동 산출
  4. 04Tracker
    Workflow: Entry
  5. 05Case Edit + Workflow
    Entry → QC → MA → Approval(In Progress) → Approved
  6. 06Submission List
    Draft → Validated 뱃지 → Ready to Submit
  7. 07Submission Monitoring
    Queued → Transmitting → Waiting ACK → Receive ACK · AS2 → MFDS
  8. 08ACK 평가
    AA+CA → Success · AE/AR/CR → Draft 복귀 · On-Time / Late 판정
  9. 09Case Complete
    사용자 명시 클릭
  10. 10Archived
    고도화 — 보관

ICSR 한 건이 인입에서 종결까지 거치는 길. 모든 변경은 Case Audit Trail에, 관리자 행위는 Audit Log에, 일반 행위는 Activity Log에.

이 모든 단계에서 발생한 변경은 Case Audit Trail에, 관리자 행위는 Audit Log에, 일반 사용자 행위는 Activity Log에, 공지·알림·세션 등은 별도 시스템 메시지로 잔존한다.

CHAPTER 09Future

미래의 무대들

릴리스 1에서는 Safety DB가 주인공이지만, 같은 플랫폼 위에 더 많은 앱이 예고되어 있다.

Tabulator
02
표 기반 데이터 집계/리포팅 도구. 2026-04-22~23 개발 방향 논의 문서가 별도. Safety DB가 만든 케이스 데이터를 다양한 시각과 단위로 재구성.
Sync
03
데이터 동기화 앱. 현재는 본문이 거의 비어 있고, 향후 외부 시스템과의 양방향 동기를 담당할 것으로 보인다.
AI App
고도화
AI Convert (자동 추출), Auto Narrative 등 AI 기반 자동화. 별도 앱 분리 또는 add-on 형태. Org Admin에서 on/off 관리하는 구조로 예약.
검색 팝업 인프라
공통
MedDRA · NeDrug · WHODrug 검색 팝업. Safety DB의 여러 화면에서 공통 호출. 라이선스 상태에 따라 자유 입력/코드 선택 모드 토글.
CHAPTER 9.5Multi-country Prep

멀티-국가 보고를 위한 사전 설계

릴리스 1은 MFDS 단일 채널이지만, 그 다음 버전에서 다국적 보고를 받아내기 위한 Lock 구조의 사전 분리가 개발 착수 전 결정되었다 (2026-05-19).

즉시 반영 — Release 1 개발에 포함

Lock 단위 = Submission Report
확정
Lock 플래그를 Case 테이블이 아닌 Submission 테이블에 둔다. Submission 테이블에 fu_number 컬럼 추가. 단일 규제기관 시기에는 사용자 UX가 기존 Case Lock과 동일.
전송 성공 건 별도 행 영구 보존
확정
Unlock 불필요. 추가 변경은 새 FU로 진행한다.

다음 버전 반영 — 멀티-국가 추가 시점

FU Number 독립 관리
Submission Report 단위로 FU Number를 별도 관리. ICSR Contents의 FU 버전과 분리. 동일 콘텐츠 FU 5라도 한국은 3rd FU, 미국은 Initial일 수 있다.
Lock 시 필드 편집 범위
Submission Lock 시 해당 Message Profile에 포함되는 필드만 차단. Global Core는 한 국가라도 Lock된 Submission이 있으면 편집 불가. Regional Required는 해당 국가가 Lock일 때만.

필드 분류 4타입 (Draft, 향후 정착)

Global Core
공통
어느 국가 보고에도 동일하게 들어가는 핵심 필드.
Global + Regional Rules
조건부
글로벌이지만 국가별 규칙(필수 여부 등)이 다른 필드.
Regional Required
지역
특정 국가 보고에서만 필수가 되는 필드.
Selta
내부
셀타스퀘어 내부 관리용 필드 (보고 XML에 나가지 않음).

이 사전 분리 덕분에, 다음 버전에서 EMA·FDA를 붙일 때 데이터 구조를 다시 갈아엎지 않아도 된다.

CHAPTER 10Priorities

우선순위, 그리고 미결의 강

기획 문서들 곳곳에는 "최우선 / 고라이브 / Release1 / Release2 / 고도화"의 라벨이 붙어 있다.

최우선 (Release 1, Go-live)

Multi-Org · 3-Condition Gate
기반 구조.
계정 / 로그인 / MFA
신원 체계.
Org 홈 + Workspace 바로가기
공통 진입점.
Safety DB Tracker · Manual Intake · Case Edit · Workflow
본진.
Submission List & Monitoring
MFDS 단일 채널.
Case Audit Trail · Activity Log · Audit Log
감사 추적성.
Org Admin 사용자/라이선스/오딧 로그
관리 기능.
Company Config / ICSR Config
생성·관리.

고도화

Workspace 홈
현재 우선순위 미뤄짐.
Viewer / External User
조회 전용 · 외부 접근.
Cross-Org / Cross-Tenant
초대 · 데이터 이동.
워크플로우 커스텀
Unit 정의, 권한 매트릭스 편집.
Break-Glass 승인
현재는 즉시 허용.
다국어, 자주가기 기억
UI 편의.
AI / LITUS / TUBE / SYNC
추가 앱들.
배치 오류 자동 재배치
신규 배치 자동 생성.
수동 보고 처리
RA 값 없는 케이스 강제 보고.

주요 미결 사항

Audit Trail 기획
Case Audit Trail은 일부만 정의됨.
Backoffice Audit Log 보존 기간
미정.
다국어 / 시간대 처리
미정.
워크플로우 유닛 정의
현재는 단순 담당자 배정.
백오피스 사용 계정 MFA
적용 여부 미정.
CHAPTER Epilogue

이 플랫폼의 정신

iVigilance Square의 기획 문서를 모두 읽고 나서 남는 인상은 다음과 같다.

  1. 1

    격리(Isolation)에 대한 집착

    Org는 유일한 운영 주체다. Workspace는 데이터 범위 제한 레이어다. Backoffice Admin은 고객 데이터에 직접 접근할 수 없다.

    이 플랫폼은 처음부터 ‘여러 제약회사가 한 인프라 위에 올라가는’ SaaS로 설계되었고, 고객 데이터 격리는 가장 윗줄에 놓인 원칙이다. 그래서 Break-Glass라는 비상구가 별도로 정의되었다.

  2. 2

    자동 분류 + 사람의 판단

    AE Type 분류, 보고 출처 분류, RA Due 산출은 시스템이 한다. 단계 이동, Lock 해제, 보고 승인은 사람이 한다.

    기계가 할 일과 사람이 할 일을 명확히 나눴다. 사용자는 ‘왜 이렇게 분류됐는지’를 이해할 수 있는 자리에 결과를 본다.

  3. 3

    모든 행위는 기록된다 — Append-only

    Audit Trail, Activity Log, Audit Log는 수정 API도 삭제 API도 없다.

    규제 감사(Audit) 대응이 본질인 도메인이기에, 데이터의 진실성이 다른 모든 가치보다 우선한다.

  4. 4

    잠금과 사유

    Approval 즉시 자동 Lock. Unlock에는 사유가 필수. 보고 진행 중에는 System Freeze. 케이스 삭제, 단계 역라우팅, MFA 해제 — 모두 사유가 따라붙는다.

    이 플랫폼은 ‘왜?’라는 질문에 항상 답할 수 있도록 만들어진다. 누가, 언제, 왜 그 변경을 했는가. 이 질문에 침묵하면 GxP 환경에서 살아남을 수 없다.

  5. 5

    단일 진입점, 명확한 방향성

    전 역할이 Org 홈으로 진입한다. 앱 간 이동은 같은 탭에서. Workspace 이동은 새 탭에서. Workspace 간 직접 이동은 차단. 반드시 Org 홈을 경유한다.

    복잡한 멀티 차원 구조에 사용자가 길을 잃지 않도록, 방향성이 명확히 정의되어 있다.

Closing

이제 당신은 iVigilance Square의 전체 흐름을 알게 되었다.

누구를 위해 만드는가
약물감시 부서의 PV 담당자, 그리고 그를 관리하는 조직.
무엇을 다루는가
ICSR 한 건의 일생 — 인입에서 보고까지, 그리고 그 모든 변경 이력.
어떻게 동작하는가
Multi-Org → Workspace → App의 3층 격리, 3-Condition Gate로 통제, Tracker로 일생 관리, Workflow로 단계 이행, Submission으로 규제기관 보고, 3가지 로그로 모든 행위 보존.
무엇이 미래인가
AI 자동화, Tabulator, Sync, Cross-Org, External User…

다음에 어떤 기획 문서를 펼치든, 당신은 그것이 이 거대한 지도 위 어느 지점에 있는지 알아볼 수 있을 것이다. 좋은 항해가 되기를.