dw.jang 2e0ca889d9 fix(bv): PiezoMonitoringView Method D BV → estimateBv() wrapper — Python 1:1
D2: 기존 PiezoMonitoringView 는 Method D BV 를 estimateBladderVolume6ch()
직접 호출로 계산 → adaptive_large_bladder_relax + b_si_floor + subsample
refined walls 모두 미적용. Alignment V3 / Clinical Live 는 이미
estimateBv(walls) wrapper 통과 (Python 1:1) 로 정상 동작 중이었음.

- MethodDResult 를 methodDDets 변수에 캐시 (METHOD_D detection 경로 +
  useMethodDBv 분기 둘 다).
- BV 계산 분기에 useMethodDBv 케이스 추가: WallWithSpan(antRefined,
  postRefined, lowStart, lowEnd) 만들어서 estimateBv(walls) 호출.
  antOffset 은 refined ant 에 samples 단위 subtract (기존 Int 경로와
  동일 시맨틱).
- 신규 test MethodDBvWrapperParityTest:
  · wrapper (Monitoring D2) == wrapper (Alignment/Clinical) : bit-exact
  · wrapper vs legacy int-only : data123 33 케이스에서 최대 20.4% 차이
    (96 mL @ 471 mL). Legacy 가 큰 방광에서 systematically 저추정.

3 소비자 경로 (Monitoring · Alignment V3 · Clinical Live) 모두 이제
Python `runners.estimate_bv` 와 완전 동일.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-27 15:24:54 +09:00
S
Description
No description provided
20 MiB
Languages
Kotlin 97.1%
Python 2.9%