SYSTEM BLUEPRINT

검사지 한 장이
검증된 데이터가 되기까지

의료진의 확정 없이는 어떤 값도 기존 시스템에 들어가지 않습니다. 업로드부터 반영·되돌림·감사 기록까지 실제 순서대로 담았습니다.

스토리보드란?

스토리보드는 만들 화면을 실제 모습에 가깝게 미리 그려 보는 문서입니다. 사용자 유형별로 화면을 담고, 검사지를 올리는 순간부터 값이 기존 시스템에 반영되고 기록으로 남기까지의 순서대로 배치했습니다.

  1. 의료진이 검사지를 올려 AI 추출 결과를 항목별로 검증하고 확정하는 흐름
  2. 운영 담당자가 반영 실패를 되돌리고 검증 기록·규칙 버전을 관리하는 흐름

마지막까지 보시면 확인되지 않은 값이 어디에서 막히는지 눈으로 확인하실 수 있습니다.

의료진 시나리오

의료진이 검사지를 처리하는 흐름

올리는 것으로 끝나지 않습니다. 항목마다 확인이 끝나야 확정이 열리고, 확정된 값만 기존 시스템으로 넘어갑니다.

검사지 올리기

PDF·사진 그대로
원본은 접근 기록과 함께 보관

AI 추출

항목·값·단위를 읽어내고
읽어낸 위치를 함께 저장

항목별 확인

원본과 나란히 대조
고치면 고친 내역이 남음

검증 확정

미확인·미추출이 남으면
확정 자체가 거부됨

권고 확인

규칙 ID·버전·근거와 함께
최종 판단은 의료진

의료진 | 화면 01

검사지 업로드 · 추출 대기열

cdss.poc/upload
감염질환 CDSS
검사지 업로드환자 검사 결과반영 현황감사 기록설정
3
감염내과 김*준
검사지 올리기
여기로 끌어다 놓으세요
PDF · JPG · PNG
1건 최대 20MB · 8쪽
파일 선택
등록된 검사지 서식
혈액배양 보고서CBC 정밀소변배양항생제 감수성
등록된 서식은 항목 위치를 알고 읽습니다. 서식 밖 검사지는 확인 필요로 올라옵니다.
올릴 때 지켜지는 것
원본은 권한 있는 계정만 열 수 있고 기록이 남습니다
환자 식별자는 목록에서 가려서 표시됩니다
추출에 실패해도 원본은 지워지지 않고 재시도만 합니다
지금 처리 중
검증 대기 3건
전체 18 오늘 7 실패 1
혈액배양_보고서_0917.pdf
환자 #****-0417 · 12개 항목 추출
10:24
검증 대기
CBC_정밀_0917_2.pdf
환자 #****-1188 · 4 / 9쪽 처리
10:31
추출 중
소변배양_스캔본.jpg
환자 #****-0742 · 1쪽 판독 불가 — 재촬영 필요
10:18
추출 실패
염증수치_추적표.pdf
환자 #****-0417 · 9개 항목 반영
09:52
확정 완료
항생제감수성_0916.pdf
환자 #****-2305 · 15개 항목 추출
09:41
검증 대기
혈액검사_재촬영본.jpg
환자 #****-0742 · 2 / 3쪽 처리
09:38
추출 중
CRP_추적_0915.pdf
환자 #****-1188 · 6개 항목 반영
09:07
확정 완료
추출은 자동으로 끝나지 않습니다. 검증 대기 건은 의료진이 확인해야 다음으로 넘어갑니다.

[화면 개요 및 목적]

의료진이 검사지 PDF·이미지를 올리고, 추출이 끝나기를 기다리는 화면입니다. 추출은 즉시 끝나지 않기 때문에 대기열이 화면의 절반을 차지하고, 각 건이 지금 어느 단계인지를 상태 칩으로 먼저 알립니다. 여기서 '검증 대기'로 바뀐 건만 다음 화면(검증 워크스페이스)으로 들어갈 수 있습니다.

[핵심 기능 로직]

적용 규칙: 1건 최대 20MB·8쪽, 형식은 PDF·JPG·PNG. 상태는 추출 중 · 검증 대기 · 확정 완료 · 추출 실패 네 가지뿐이고, 추출 실패 건은 원본을 지우지 않고 재시도만 허용합니다(스캔본 건이 그 경우). 환자 식별자는 목록에서 가려서 표시하고, 원본은 권한 있는 계정만 만료 링크로 접근하며 접근 기록이 남습니다.

  • 화면이 멈추지 않는 추출
    작업 대기열 + 상태 폴링
  • 원본 접근 추적
    오브젝트 스토리지 · 만료 서명 링크
의료진 | 화면 02

검증 워크스페이스 · 확정 게이트

cdss.poc/verify/2409
감염질환 CDSS
검사지 업로드환자 검사 결과반영 현황감사 기록설정
3
감염내과 김*준
원본 검사지
3 / 9쪽
원본 검사지 이미지
혈액배양_보고서_0917.pdf
선택 항목의 근거 위치
오른쪽 항목을 누르면 원본의 해당 위치가 여기에 표시됩니다.
추출 항목 검증
10 / 12 항목 확인
추출 모델 extract-v2.3
수정 1건
CRP
14.2 mg/dL
확인 완료
WBC
16,800 /µL
확인 완료
체온
38.6
확인 완료
Procalcitonin
2.4 ng/mL
신뢰도 61% — 원본과 대조하세요
확인 필요
채취 시각
3쪽 표에서 읽어내지 못했습니다
미추출
…이 아래로 7개 항목
확인 필요 1건 · 미추출 1건이 남아 있어 확정할 수 없습니다.
검증 확정
임시 저장

[화면 개요 및 목적]

이 제안의 중심 화면입니다. 왼쪽에 원본 검사지, 오른쪽에 AI가 뽑아낸 항목을 나란히 두어 의료진이 원본을 따로 열지 않고 화면 안에서 대조를 끝내게 합니다. 오른쪽 항목을 누르면 왼쪽 원본의 해당 위치가 표시됩니다. 지금은 12개 중 10개만 확인돼 확정 버튼이 잠겨 있습니다.

[핵심 기능 로직]

적용 규칙: ① 미확인 항목이 1개라도 남으면 확정 버튼은 비활성입니다. ② 필수 항목이 '미추출'이면 확정할 수 없습니다(채취 시각이 그 경우). ③ 신뢰도가 기준 아래인 값은 '확인 필요'로 표시되고 의료진이 직접 확인해야 넘어갑니다. ④ 근거 위치가 없는 값은 확정 대상에 올라가지 않습니다. ⑤ 값을 고치면 고치기 전 값이 함께 저장됩니다. 확신이 없는 항목은 그럴듯한 숫자로 채우지 않고 비워 둡니다.

  • 근거 되짚기
    원본 좌표 저장 · PDF 캔버스 오버레이
  • 확정 전 차단
    서식 강제 출력 + 항목 확인 기반 확정 게이트
의료진 | 화면 03

환자 검사 결과 · CDSS 권고

cdss.poc/patient/0417
감염질환 CDSS
검사지 업로드환자 검사 결과반영 현황감사 기록설정
3
감염내과 김*준
본 화면의 권고는 의료진의 판단을 보조합니다. 최종 결정과 책임은 의료진에게 있습니다.
환자 #****-0417
입원 3일차 · 감염내과 · 최근 반영 오늘 10:41
검증 확정 반영ruleset v1.4.2
검증을 거쳐 반영된 검사값
CRP
14.2 mg/dL
▲ 상승
WBC
16,800 /µL
▲ 상승
체온
38.6 ℃
▲ 상승
Procalcitonin
2.4 ng/mL
▲ 상승
혈소판
148 ×10³/µL
▼ 감소
Lactate
1.9 mmol/L
정상 범위
감염 지표 상승 — 배양 결과 확인과 항생제 적정성 검토
확정된 CRP·WBC·체온·Procalcitonin이 기관 등록 규칙셋의 기준선을 동시에 넘었습니다. 배양 결과 회신 여부와 현재 투여 중인 항생제의 적정성을 함께 확인하도록 안내합니다.
규칙 RULE-SEP-014규칙셋 v1.4.2근거 #IR-0142적용 10:41
이 권고를 띄운 근거
CRP 14.2 · 기준선 10.0 mg/dL 초과
체온 38.6℃ · 6시간 이상 지속
배양 결과 회신 미확인 — 확인 후 권고가 갱신됩니다
진료 기록에 인용
근거 규칙 열기
해당 없음으로 표시
이 값은 어디서 왔나
혈액배양_보고서_0917.pdf 3쪽
검증 김*준 · 10:39
수정 1건 14.014.2
추출 extract-v2.3
근거를 붙일 수 없는 권고는 띄우지 않습니다.

[화면 개요 및 목적]

확정된 값이 기존 시스템에 반영된 뒤의 화면입니다. 위에서 아래로 '무엇이 들어왔는가 → 그래서 무엇을 보조하는가' 순서로 읽히게 두었습니다. 권고를 검사값보다 위에 올리면 시스템이 판단하는 것처럼 보이기 때문에 반드시 값 다음에 배치합니다. 오른쪽 패널은 이 값들이 어느 파일 몇 쪽에서, 누구의 확인을 거쳐 왔는지 되짚어 줍니다.

[핵심 기능 로직]

적용 규칙: ① 권고에는 규칙 ID(RULE-SEP-014) · 규칙셋 버전(v1.4.2) · 근거 출처 · 적용 시각이 함께 붙습니다. ② 근거를 붙일 수 없는 권고는 띄우지 않습니다. ③ '최종 결정과 책임은 의료진에게 있다'는 문구가 상시 노출됩니다. ④ 검증을 거치지 않고 이월된 값은 '참고값'으로 구분합니다. 이 시스템은 진단이나 처방을 결정하지 않습니다.

  • 권고 근거 추적
    버전이 붙은 규칙셋 · 권고별 버전 고정
  • 값 출처 조회
    추출·검증·반영 이력 조인
운영 담당자 시나리오

운영 담당자가 시스템을 쥐고 있는 흐름

자동 입력은 실패합니다. 실패를 조용히 삼키지 않고 되돌리며, 무엇이 언제 어떤 버전으로 처리됐는지 남깁니다.

반영 현황

오늘 확정·반영·실패를
한 화면에서 확인

실패 되돌림

검사 건 단위로 되돌리고
원인이 풀린 건만 재시도

감사 기록

누가 무엇을 언제 고쳐
확정했는지 건별 보관

버전 관리

추출 서식·규칙셋 버전
과거 권고 재현

흐름 전환

새 흐름을 비율로 켜고
문제가 나면 즉시 되돌림

운영 담당자 | 화면 01

반영 현황 · 실패 재처리

cdss.poc/admin/sync
감염질환 CDSS
검사지 업로드환자 검사 결과반영 현황감사 기록설정
3
감염내과 김*준
기존 시스템 반영 현황 · 오늘
확정된 검사 건
38
의료진 검증 완료
반영 완료
35
기존 시스템 입력됨
반영 실패
2
되돌림 처리됨
재시도 대기
1
원인 해소 후 가능
손봐야 함 3 전체 38 완료 35
검사 #2409-0117 · 환자 #****-0742
환자 식별자 불일치
기존 시스템에 같은 등록번호가 없습니다
10:44
반영 실패
검사 #2409-0109 · 환자 #****-1188
필수 항목 누락
채취 시각이 비어 있어 반영 규칙을 통과하지 못했습니다
10:12
반영 실패
검사 #2409-0104 · 환자 #****-2305
중복 검사 건
같은 검사 건이 09:58에 이미 반영되었습니다
09:59
재시도 대기
반영은 검사 건 단위로 묶여 처리됩니다. 일부 항목만 들어간 상태는 만들지 않습니다.
검사 #2409-0117
확정 10:41 · 반영 시도 10:44
환자 식별자 불일치
검사지에서 읽어낸 등록번호가 기존 시스템에 없습니다. 이 건은 12개 항목 전체가 되돌려졌습니다.
되돌림 결과
반영된 항목0 / 12
남은 확정 기록유지
원본 파일보관
재시도 (원인 해소 필요)
등록번호 직접 지정

[화면 개요 및 목적]

'기존 시스템 자동 입력'의 뒷면입니다. 운영 담당자가 이 화면에 들어오는 이유는 '오늘 문제 있나'이기 때문에 통계 4칸을 가장 위에 두고, 그 아래에 손봐야 하는 건만 모았습니다. 오른쪽은 선택한 실패 건의 사유와 되돌림 결과입니다.

[핵심 기능 로직]

적용 규칙: ① 반영은 검사 건 단위로 묶여 처리됩니다. 12개 중 3개만 들어간 상태는 만들지 않고, 실패하면 그 건 전체를 되돌립니다(오른쪽 '반영된 항목 0 / 12'). ② 실패 사유는 식별자 불일치 · 필수 항목 누락 · 중복 건 세 갈래로 분류되어 그대로 노출됩니다. ③ 재시도는 원인이 해소된 건만 가능합니다. ④ 되돌려도 확정 기록과 원본은 삭제되지 않습니다.

  • 부분 반영 방지
    검사 건 단위 트랜잭션 · 실패 시 롤백
  • 실패 원인 구분
    반영 규칙 위반 코드별 분류
운영 담당자 | 화면 02

검증 감사 기록

cdss.poc/admin/audit
감염질환 CDSS
검사지 업로드환자 검사 결과반영 현황감사 기록설정
3
감염내과 김*준
검증 감사 기록
확정된 값은 수정되지 않습니다. 다시 확정하면 새 이력으로 쌓입니다.
최근 30일 1,284건
9월 17일 (목) 검증자 전체 값 수정 9
10:39
검사 #2409-0117
CRP 14.0 → 14.2
김*준
값 수정
10:38
검사 #2409-0117
11개 항목 원값 확정
김*준
원값 확정
09:52
검사 #2409-0098
채취 시각 직접 입력
박*서
값 수정
09:31
검사 #2409-0091
9개 항목 원값 확정
박*서
원값 확정
08:47
검사 #2409-0083
WBC 16,200 → 16,800
이*원
값 수정
08:22
검사 #2409-0079
14개 항목 원값 확정
이*원
원값 확정
07:58
검사 #2409-0071
체온 38.1 → 38.4
김*준
값 수정
기간·검증자 조건 그대로 내려받아 주관기관 검수 자료로 제출할 수 있습니다.
선택한 기록
검사 #2409-0117 · CRP
수정 전 → 수정 후
14.0 14.2
mg/dL
근거 위치3쪽 · 상단표 2행
추출 모델extract-v2.3
규칙셋v1.4.2
검증자김*준
반려 이력
반려된 기록이 없습니다
확정 후 되돌린 건이 생기면 여기에 쌓입니다

[화면 개요 및 목적]

'의료진이 검증했다'는 말이 기록으로 남는 자리입니다. 왼쪽은 시간순 목록, 오른쪽은 선택한 한 건의 변경 전후와 근거입니다. 오른쪽 아래 '반려 이력' 칸은 아직 되돌린 건이 없을 때의 빈 상태를 그대로 보여줍니다 — 빈 화면도 설계 대상입니다.

[핵심 기능 로직]

적용 규칙: ① 확정된 값은 수정되지 않습니다. 다시 확정하면 덮어쓰지 않고 새 이력으로 쌓입니다. ② 기록은 삭제되지 않습니다. ③ 한 건마다 변경 전/후 값, 근거 위치, 추출 모델 버전, 규칙셋 버전, 검증자가 함께 저장됩니다. ④ 기간·검증자 조건 그대로 내려받아 검수 자료로 제출할 수 있습니다.

  • 덮어쓰지 않는 이력
    추가 전용 이력 테이블
  • 검수 자료 제출
    조건별 기록 내보내기
운영 담당자 | 화면 03

서식 · 규칙셋 버전과 흐름 전환

cdss.poc/admin/versions
감염질환 CDSS
검사지 업로드환자 검사 결과반영 현황감사 기록설정
3
감염내과 김*준
서식 · 규칙셋 버전과 신규 흐름 전환
지금 돌아가는 화면을 멈추지 않고 새 검증 흐름을 켜고 끕니다.
기존 MVP 기반 Next.js · TypeScript
검사지 추출 서식
extract-v2.3
서식 4종 · 적용 9월 15일 (화)
활성
extract-v2.2
보관
서식 추가 등록
권고 규칙셋
ruleset v1.4.2
규칙 26개 · 적용 9월 15일 (화)
활성
ruleset v1.4.1
보관
과거 권고 재현
신규 검증 흐름
25% 적용
나머지는 기존 화면 그대로
문제가 보이면 토글을 내려 기존 동작으로 즉시 돌아갑니다. 확정된 기록과 원본은 그대로 남습니다.
기존 흐름으로 되돌리기
인수 진단 이후 정리 현황 · 기존 코드 기준
1주차 진단 보고서 열기
타입 오류
118 12
빌드 경고
64 8
취약 의존성
7 0
권한 경계 미검증
5 0
적용 이력
최근 6건
9월 15일 (화) 14:20
권고 규칙셋
v1.4.1 → v1.4.2
규칙 3개 추가 · 과거 권고는 v1.4.1로 재현
적용
9월 15일 (화) 11:05
검사지 추출 서식
v2.2 → v2.3
배양 보고서 서식 1종 추가
적용
9월 12일 (토) 09:40
신규 검증 흐름
0% → 25%
지정 계정 대상으로만 먼저 전환
부분 적용
규칙셋을 바꿔도 과거에 나간 권고는 그때의 버전으로 재현됩니다. 기록을 덮어쓰지 않습니다.

[화면 개요 및 목적]

'운영 중인 MVP를 멈추지 않고 고도화한다'가 말이 아니라 스위치라는 것을 보여주는 화면입니다. 왼쪽부터 추출 서식, 권고 규칙셋, 신규 검증 흐름 전환 세 블록이고, 블록마다 지금 켜진 버전을 가장 크게 둡니다. 아래는 기존 라이브 코딩 코드를 인수한 뒤의 정리 현황입니다.

[핵심 기능 로직]

적용 규칙: ① 새 검증 흐름은 전면 교체가 아니라 비율 전환으로 켭니다(지금 25%). 문제가 보이면 토글을 내려 기존 동작으로 즉시 돌아갑니다. ② 규칙셋을 올려도 과거 권고는 그때 버전으로 재현됩니다. ③ 서식이 늘어나면 코드가 아니라 서식 등록으로 흡수합니다. ④ 아래 진단 수치는 화면 예시이며 실제 값은 1주차 진단 보고서에서 확정합니다.

  • 멈추지 않는 전환
    기능 플래그 · 비율 롤아웃과 즉시 롤백
  • 과거 권고 재현
    권고별 규칙셋 버전 고정 · 서식 템플릿 등록
시나리오

| 화면 01

[화면 개요 및 목적]

[핵심 기능 로직]

    | 화면 02

    [화면 개요 및 목적]

    [핵심 기능 로직]

      | 화면 03

      [화면 개요 및 목적]

      [핵심 기능 로직]