A shareable, browser-based version of pdet_fft_denoised_annotation_widget.ipynb. It loads urodynamic tracing CSVs, FFT-denoises Pdet, marks permission-to-void times, snaps annotations to a local Pdet peak, and exports the same annotation columns as the notebook.
Patient files are processed entirely in the browser. The site does not upload or persist them.
The site uses JavaScript modules, so serve the directory instead of opening index.html directly:
npm run serveThen open http://localhost:8000.
Python works too:
python3 -m http.server 8000- Add one or more tracing files. Tab-separated
.csvfiles like3514620.csvand ordinary comma-separated files are both supported. Each filename should contain the MRN. - Optionally add a permission-to-void lookup CSV. Both a simple
MRN, Timefile and the supplied wide spreadsheet export are supported. - Start the review. Click the chart to add a point, or enter a time manually. As in the notebook, each point snaps to the highest denoised Pdet within ±5 seconds.
- Select Export review to download
tracing_review_export.zip. It containspdet_annotated_points.csv, sure tracing files insure_tracings/, and unsure/flagged tracing files inflagged_tracings/.
The chart supports click-to-annotate, drag-to-pan, scroll-to-zoom, patient navigation, an unsure review queue, manual permission correction, raw-signal visibility, adjustable Y-axis limits, configurable FFT cutoff/transition values, undo, deletion, and clearing a patient's points. When present in the tracing file, Pves, Pabd, Flow, and Volume are shown as stacked, time-aligned charts below Pdet.
This is a static site with no build step. Deploy these files to any static host:
index.htmlstyles.cssapp.jscore.js
For example, they can be hosted with GitHub Pages, Netlify, Cloudflare Pages, or an internal static web server. Because there is no backend, uploaded tracings remain on the user's device.
npm testThe tests cover both supplied example files and compare the browser FFT output against NumPy output from the original notebook settings.