Back to projects

Software & Backend / Data science / Academic research

Tanita Report Extractor

Private document-processing prototype exploring local PDF-to-table extraction through batch processing and a desktop interface, with explicit privacy boundaries.

PrototypePrivate codebase
  • Python
  • pdfplumber
  • pandas
  • openpyxl
  • PyQt5

Original code-generated category illustration; not a product screenshot.

Private codebase; this page shares a general technical summary. Source files, real records and organization-specific information remain private.

Overview

A Python prototype exploring extraction of fields from Tanita report layouts into Excel tables. Batch processing and a desktop interface organize repetitive document-preparation work. Parsing rules depend on document layout, and extracted fields require review. This public description includes no real reports, personal information or health measurements.

Problem and objectives

Manually moving fields from similar PDF reports into spreadsheets takes time and introduces transcription errors. Changes in document layout can also cause automated extraction to miss or misinterpret fields. Retaining raw text for troubleshooting may create unnecessary copies of personal information.

My role

Python report-processing development; extraction and cleaning of approximately 400 reports and contribution to preparation of a 395-patient research dataset.

Solution approach

Local document reading and layout-dependent parsing rules form a pipeline that converts extracted fields into tables. Batch and desktop entry points address the same general workflow. A review-branch change disables raw PDF debug-text retention by default, with explicit opt-in behavior checked using synthetic tests. Accuracy on real reports remains a separate evaluation task.

Implementation details

Structuring document data for research

In sleep-apnea research, I extracted and cleaned data from approximately 400 Tanita reports and contributed to an analysis dataset covering 395 patients. Converting documents into tables was the first step. Organizing fields for research and preparing them for linkage with other variables were also part of the data-preparation work. Only the aggregate scope is described here; no individual records are shared.

Separating PDF layout from data fields

Text order inside a PDF does not directly correspond to a research table. I treated local PDF reading, layout-dependent parsing and Excel export as separate stages. This makes it easier to identify which rules need review when a report layout changes. Batch commands and a desktop interface provide different entry points to the same document-preparation task, while the extracted output still requires review.

Reducing unnecessary copies during debugging

Writing raw PDF text to disk for debugging can duplicate health information into additional files. The improvement branch disables this behavior by default and requires explicit activation. Synthetic tests check the storage behavior. This change does not replace the separate responsibilities of managing spreadsheet outputs, filenames or historical records.

Architecture flow

01

Read authorized local PDF documents

02

Extract layout-dependent fields and identify incomplete results

03

Manage processing through a batch command or desktop interface

04

Review exported Excel tables before further use

Conceptual flow derived from project descriptions; not an application screenshot.

Core components

  • Batch processing of multiple documents
  • Layout-dependent field extraction
  • Formatted Excel export
  • Desktop processing interface

Technical challenges

  • Handling layout changes without overstating extraction accuracy
  • Balancing troubleshooting needs with data minimization

Engineering decisions

  • Require review of extracted outputs
  • Disable default raw-text retention in the review branch
  • Use synthetic content for demonstrations and tests

Testing and validation

  • The 7 November 2026 review branch passed 3 privacy regression tests using a mocked PDF reader and synthetic text.
  • Real reports, extraction accuracy and GUI interaction were not validated by those tests.

Outcomes

  • Data-preparation contribution through processing approximately 400 Tanita reports and preparing an analysis dataset covering 395 patients.
  • Prepared a change disabling default raw debug-text retention.
  • Verified default and explicit opt-in behavior with synthetic regressions.

Limitations and current status

  • Not a clinical measurement, diagnostic or validated healthcare system.
  • Spreadsheets, filenames and logs can still contain personal information.
  • Extraction accuracy requires separate evaluation against authorized report layouts.

Related work