Skip to content

fix(handoff,web,mobile): 핸드오프 리포트 환자명 마스킹·대시보드 PDF 인라인·OCR 대화반영·PII 재암호화 - #101

Merged
Seohyunjho merged 1 commit into
Masterfrom
fix/handoff-report-dashboard-pii
Jul 27, 2026
Merged

Seohyunjho merged 1 commit into
Masterfrom
fix/handoff-report-dashboard-pii

Conversation

@Seohyunjho

Copy link
Copy Markdown
Collaborator

요약

의료진 대시보드/핸드오프 리포트 관련 로컬 수정 통합. DGX 배포에 반영 목적.

변경

  • api handoff.py — 다세션 F5 리포트가 vp_id에 원본 DB UUID를 실어 리포트 본문·F4 차트·FHIR에 UUID가 노출되던 것 수정. 비가역 표시코드(VP-XXXXXX) + AES 복호화 실명을 persona_name으로 전달 → 마스킹 표기(예: 조서현 (VP-E62705)). (_display_vp / _patient_display_name)
  • web HandoffReportView — 리포트를 raw markdown 텍스트로 출력하던 것을 **editorial PDF 인라인 렌더(<object>)**로 전환. 원문 markdown은 접이식(<details>)으로 강등. PDF 없는 리포트는 기존 markdown 폴백.
  • web layout — 브라우저 확장의 속성 주입으로 인한 최상위 하이드레이션 미스매치 억제(suppressHydrationWarning).
  • mobile OCR — 처방전 OCR [확인 완료] 시 요약을 대화로 흘려보내 F1이 인지·응답하고 conversation_history(→리포트)에 남게 함(pendingInjection 큐 + chat 전송 훅).
  • scripts/reencrypt_pii.py — ENCRYPTION_KEY 불일치로 복호화 실패하는 환자 PII(profile name/phone/emergency, message content)를 현재 키로 재암호화. 레거시 키는 env 주입, dry-run 기본. 대시보드 "복호화 실패" 정리용(운영자 수동 실행).

배포

merge 후 DGX에서: git pull && docker compose -f infra/deploy/docker-compose.dgx.yml up -d --build api web (ai-server 무변경).
재암호화는 별도 수동 단계(운영자, LEGACY_ENCRYPTION_KEYS 주입).

검증(로컬)

  • api clinician/patients 200 · 리포트 markdown/PDF/차트/FHIR 생성 · 환자행 조서현 (VP-E62705)(UUID 미노출)
  • web 리포트 페이지 <object> PDF 인라인 렌더 200

🤖 Generated with Claude Code

의료진 대시보드/핸드오프 리포트 관련 로컬 수정 통합:

- api(handoff.py): 다세션 F5 리포트가 vp_id에 원본 DB UUID를 실어 리포트·차트·
  FHIR에 UUID가 노출되던 것 수정 → 비가역 표시코드(VP-XXXXXX) + 복호화 실명을
  persona_name으로 전달해 마스킹 표기(예: 조서현). (_display_vp/_patient_display_name)
- web(HandoffReportView): 리포트를 raw markdown 텍스트로 뿌리던 것을 editorial PDF
  인라인 렌더(<object>)로 전환, 원문 markdown은 접이식으로 강등. PDF 없는 리포트는
  기존 markdown 폴백.
- web(layout): 브라우저 확장 속성 주입으로 인한 최상위 하이드레이션 미스매치 억제
  (suppressHydrationWarning on html/body).
- mobile(OCR): 처방전 OCR 확인 완료 시 요약을 대화로 흘려보내 F1이 인지·응답하고
  conversation_history(→리포트)에 남게 함(pendingInjection 큐 + chat 전송 훅).
- scripts/reencrypt_pii.py: ENCRYPTION_KEY 불일치로 복호화 실패하는 환자 PII를
  현재 키로 재암호화(레거시 키 env 주입, dry-run 기본). 대시보드 "복호화 실패" 정리용.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Seohyunjho
Seohyunjho merged commit aef6022 into Master Jul 27, 2026
2 checks passed
@Seohyunjho
Seohyunjho deleted the fix/handoff-report-dashboard-pii branch July 27, 2026 09:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant