Skip to content

feat: 인사이트맵 페이지 추가 (옵시디언 스타일 그래프) - #49

Merged
wonzz merged 2 commits into
mainfrom
feature/insight-map
Jul 2, 2026
Merged

wonzz merged 2 commits into
mainfrom
feature/insight-map

Conversation

@gpffh20

@gpffh20 gpffh20 commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Summary

근거 기반 임상 인사이트맵의 프론트엔드를 구현했다. /insight-map에서 온톨로지 개념 그래프를 옵시디언 그래프 뷰 스타일(다크 테마, force-directed, 클릭 시 연결 강조)로 보여준다.

Changes

  • /insight-map 라우트 + InsightMapPage.tsx: d3 force simulation 기반 그래프 렌더링. UtterAI_AI/docs/ontology_map.html 레퍼런스 디자인을 그대로 이식 (Catppuccin Mocha 팔레트, glow 노드, 클릭 시 이웃 강조 + 나머지 dim, 범례/힌트)
  • src/api/insightMap.ts: BE Graph API 클라이언트 (조회/검색/SOAP note 링크)
  • 사이드바 "템플릿 관리" 아래 인사이트맵 탭 추가 — 리포트 맥락 없이 접근 시 연구 근거 레이어만 표시
  • ReportChatPanel에 "인사이트맵" 버튼 추가 — 현재 리포트 맥락으로 새 창에서 열림 (ReportEditModal이 이 컴포넌트를 포함하므로 자동 적용)
  • react-flow 제거, d3 채택 (박스형 노드 레이아웃 대신 옵시디언 스타일 요구사항에 맞춤)
  • .nvmrc 추가 (Node 24.18.0) — vite 8이 Node 20+를 요구하는데 로컬 nvm 기본값이 18이라 dev 서버가 조용히 죽는 문제가 있었음

Why

03. 온톨로지맵 별도 창 설계서에 따른 UI 구현. 디자인은 사용자가 기존 UtterAI_AI/docs/ontology_map.html 문서 뷰어의 옵시디언 그래프 스타일을 그대로 원해서 해당 룩앤필을 그대로 포팅했다.

Impact

  • API: 없음 (BE의 신규 엔드포인트를 호출만 함)
  • DB: 없음
  • Permissions: 없음 (기존 인증 흐름 재사용)
  • Operations: 로컬 개발 시 Node 20+ 필요 (.nvmrc 참고)

Test

  • 로컬 테스트 수행 (tsc --noEmit 통과)
  • 수동 검증 수행 (헤드리스 브라우저로 사이드바 탭 진입, 리포트 연동 진입, 노드 클릭 하이라이트, SOAP note 링크 동작 확인)

Checklist

  • base branch가 main이다 (레포의 실질 통합 브랜치)
  • 관련 이슈를 연결했다
  • 민감 정보가 포함되지 않았다

References

  • 03. 인사이트용 온톨로지맵: 별도 창 구현 설계서
  • UtterAI_AI/docs/ontology_map.html (디자인 레퍼런스)

gpffh20 added 2 commits July 2, 2026 08:47
Add /insight-map route with a d3 force-directed graph (dark theme,
click-to-highlight neighbors, dimming) matching the existing
UtterAI_AI/docs/ontology_map.html reference design. Add a sidebar tab
for direct access and an "insight map" button in ReportChatPanel that
opens it scoped to the current report. Pin Node to 24.18.0 via .nvmrc
since vite 8 requires Node 20+.
Move /insight-map inside the authenticated AppShell layout so the
sidebar stays visible instead of taking over the whole screen. Add a
"문헌 근거 보기" section to the concept side panel that fetches related
paper/guide citations (with DOI links when available) from the new
BE endpoint. Enable "내 SOAP 기록 포함" in general (no report_id) mode
since it now works across the therapist's full caseload. Remove three
unused eslint-disable directives that were failing --max-warnings 0.
@gpffh20 gpffh20 self-assigned this Jul 2, 2026
@wonzz
wonzz requested review from jeongmin1999 and wonzz July 2, 2026 01:42
@wonzz
wonzz merged commit 061a7da into main Jul 2, 2026
2 checks passed
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.

2 participants