{"_id":"@davecook/healthcare-voc-compliance","name":"@davecook/healthcare-voc-compliance","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@davecook/healthcare-voc-compliance","version":"0.1.0","description":"Healthcare VOC compliance calculator — computes VOC exposure, OSHA PEL comparison, and multi-jurisdiction regulatory compliance for cleaning products used in healthcare facilities.","main":"engines/python/engine.py","keywords":["voc","healthcare","compliance","cleaning","osha","facility-management","regulatory","epa","carb"],"author":{"name":"Dave Cook","email":"dave@binx.ca"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/DaveCookVectorLabs/healthcare-voc-compliance.git"},"homepage":"https://www.binx.ca/commercial.php","gitHead":"5139f3d7ddd66adcf88e8f1437095f6ff5d483f8","bugs":{"url":"https://github.com/DaveCookVectorLabs/healthcare-voc-compliance/issues"},"_id":"@davecook/healthcare-voc-compliance@0.1.0","_nodeVersion":"20.18.1","_npmVersion":"9.2.0","dist":{"integrity":"sha512-78KsTMAw3QI1C4WkASyRllLBW25BGIa2A8kVgo0T0Dv8JEGPJDcx99nyNWP3HPSXjE3ptSPkOTvN2o9DXxZ1RA==","shasum":"4e1d7856383f791fcc14f5bbd8c51e621debfa19","tarball":"https://registry.npmjs.org/@davecook/healthcare-voc-compliance/-/healthcare-voc-compliance-0.1.0.tgz","fileCount":39,"unpackedSize":2874869,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDbSYIY9yUUcwm+mQCTIHz/uODlnfadSdco9w3YEjwXBwIgJUlmIz1e/J8tXtZt34gL+ugLiJO6klSJNErXf1EvIk8="}]},"_npmUser":{"name":"davecook","email":"dave.vectorlabs@proton.me"},"directories":{},"maintainers":[{"name":"davecook","email":"dave.vectorlabs@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/healthcare-voc-compliance_0.1.0_1775569770210_0.7344246523684854"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-07T13:49:30.139Z","0.1.0":"2026-04-07T13:49:30.391Z","modified":"2026-04-07T13:49:30.572Z"},"maintainers":[{"name":"davecook","email":"dave.vectorlabs@proton.me"}],"description":"Healthcare VOC compliance calculator — computes VOC exposure, OSHA PEL comparison, and multi-jurisdiction regulatory compliance for cleaning products used in healthcare facilities.","homepage":"https://www.binx.ca/commercial.php","keywords":["voc","healthcare","compliance","cleaning","osha","facility-management","regulatory","epa","carb"],"repository":{"type":"git","url":"git+https://github.com/DaveCookVectorLabs/healthcare-voc-compliance.git"},"author":{"name":"Dave Cook","email":"dave@binx.ca"},"bugs":{"url":"https://github.com/DaveCookVectorLabs/healthcare-voc-compliance/issues"},"license":"MIT","readme":"# Healthcare VOC Compliance Calculator\n\n[![PyPI version](https://badge.fury.io/py/healthcare-voc-compliance.svg)](https://pypi.org/project/healthcare-voc-compliance/)\n[![npm version](https://badge.fury.io/js/%40davecook%2Fhealthcare-voc-compliance.svg)](https://www.npmjs.com/package/@davecook/healthcare-voc-compliance)\n[![Crates.io](https://img.shields.io/crates/v/healthcare-voc-engine.svg)](https://crates.io/crates/healthcare-voc-engine)\n[![Gem Version](https://badge.fury.io/rb/healthcare_voc_compliance.svg)](https://rubygems.org/gems/healthcare_voc_compliance)\n[![Hex.pm](https://img.shields.io/hexpm/v/healthcare_voc.svg)](https://hex.pm/packages/healthcare_voc)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nAn open-source calculator and dataset collection for evaluating VOC (Volatile Organic Compound) exposure from cleaning products used in healthcare facilities. Covers 26 jurisdictions across the United States and Canada.\n\n---\n\n## What This Does\n\nGiven a cleaning product's VOC content, a room's geometry, and ventilation parameters, this tool calculates:\n\n- **VOC concentration** (mg/m³) at steady state during a cleaning cycle\n- **OSHA PEL comparison** — what percentage of the Permissible Exposure Limit the concentration represents\n- **Time to safe reentry** — how long until VOC concentration drops below 10% of PEL\n- **Annual VOC load** — total VOC released per year at the given cleaning frequency\n- **Multi-jurisdiction compliance** — whether the product meets VOC limits in each of 26 jurisdictions\n\n---\n\n## Datasets\n\nTwo CSV datasets are included in `datasets/`:\n\n### Dataset A: VOC Regulatory Limits by Jurisdiction (650 rows)\n\nVOC limits (g/L) for 25 cleaning product categories across 26 jurisdictions:\n\n- US Federal (EPA 40 CFR Part 59 Subpart C)\n- California (CARB Consumer Products Regulations)\n- 12 OTC states (CT, DE, ME, MD, MA, NH, NJ, NY, PA, RI, VA, DC)\n- 8 states with independent regulations (MI, CO, IL, IN, IA, OH, UT, WA)\n- Canada Federal (SOR/2021-268)\n- Ontario, British Columbia, Quebec\n\nEach row includes the product category, numeric VOC limit, regulation name, effective date, and healthcare-specific context notes.\n\n### Dataset B: Healthcare Cleaning Product VOC Compliance Matrix (5,000 rows)\n\nSynthetic product data modeled on real institutional cleaning product categories:\n\n- VOC content (g/L concentrate and effective diluted)\n- Certifications (Green Seal GS-37, UL ECOLOGO, EPA Safer Choice, UL GREENGUARD Gold, LEED v4)\n- Per-jurisdiction compliance flags (compliant/non-compliant in each of 26 jurisdictions)\n- Healthcare approval status, IPAC compatibility rating\n- Pricing (CAD/litre), dilution ratios, coverage rates\n- Recommended healthcare facility types\n\n---\n\n## Calculation Model\n\n```\neffective_voc     = product_voc_g_per_L × dilution_ratio\nproduct_applied_L = room_sqft / coverage_sqft_per_L\ntotal_voc_mg      = effective_voc × product_applied_L × 1000\n\n# Single-zone mass balance with ventilation\nemission_rate     = total_voc_mg / cleaning_duration_hr\nventilation_rate  = air_changes_per_hour × room_volume_m3\nsteady_state      = emission_rate / ventilation_rate\n\nosha_pel_percent  = (steady_state / 300) × 100\n```\n\nASHRAE 62.1-2022 minimum ventilation rates for healthcare spaces are built in as reference values:\n\n| Space Type | Minimum ACH |\n|-----------|------------|\n| Patient room | 6 |\n| ICU | 12 |\n| Operating room | 20 |\n| Exam room | 6 |\n| Corridor | 4 |\n| Laboratory | 12 |\n| Dietary kitchen | 10 |\n\n---\n\n## Engines\n\nThe calculation is implemented in seven languages. Each exposes `/calculate` (POST) and `/health` (GET) REST endpoints:\n\n| Language | Directory | Package |\n|----------|-----------|---------|\n| Python (FastAPI) | `engines/python/` | `healthcare-voc-compliance` on PyPI |\n| Rust | `engines/rust/` | `healthcare-voc-engine` on Crates.io |\n| Java | `engines/java/` | `io.github.davecookvectorlabs:healthcare-voc-engine` on Maven Central |\n| Ruby (Sinatra) | `engines/ruby/` | `healthcare_voc_compliance` on RubyGems |\n| Elixir (Plug) | `engines/elixir/` | `healthcare_voc` on Hex.pm |\n| PHP | `engines/php/` | `davecook/healthcare-voc-compliance` on Packagist |\n| Go (net/http) | `engines/go/` | `github.com/DaveCookVectorLabs/healthcare-voc-compliance` on pkg.go.dev |\n\n### Quick Start (Python)\n\n```bash\npip install healthcare-voc-compliance\n# or run from source:\ncd engines/python\npip install -r requirements.txt\npython engine.py          # CLI mode — runs sample calculation\npython engine.py --serve  # HTTP server on port 8001\n```\n\n### API Example\n\n```bash\ncurl -X POST http://localhost:8001/calculate \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"room_sqft\": 200,\n    \"ceiling_height_ft\": 9,\n    \"product_voc_g_per_L\": 8.0,\n    \"dilution_ratio\": 0.015625,\n    \"coverage_sqft_per_L\": 400,\n    \"air_changes_per_hour\": 6,\n    \"cleaning_frequency_per_year\": 365,\n    \"product_category\": \"General Purpose Cleaner\",\n    \"space_type\": \"patient_room\"\n  }'\n```\n\n---\n\n## Regulatory Sources\n\n- [EPA 40 CFR Part 59 Subpart C](https://www.ecfr.gov/current/title-40/chapter-I/subchapter-C/part-59/subpart-C) — US federal VOC emission standards for consumer products\n- [CARB Consumer Products Program](https://ww2.arb.ca.gov/our-work/programs/consumer-products-program/about) — California VOC limits\n- [Canada SOR/2021-268](https://laws-lois.justice.gc.ca/eng/regulations/SOR-2021-268/FullText.html) — Federal VOC concentration limits\n- [OSHA 29 CFR 1910.1000 Table Z-1](https://www.osha.gov/annotated-pels/table-z-1) — Permissible Exposure Limits\n- [ASHRAE 62.1-2022](https://www.ashrae.org/technical-resources/bookstore/standards-62-1-62-2) — Ventilation for healthcare facilities\n- [Green Seal GS-37](https://greenseal.org/standards/gs-37-cleaning-products-for-industrial-and-institutional-use/) — Institutional cleaning product standard\n- [UL GREENGUARD Gold](https://www.ul.com/services/ul-greenguard-certification) — Low-emission certification for sensitive environments\n- [EPA Safer Choice](https://www.epa.gov/saferchoice) — Product certification program\n\n---\n\n## Project Structure\n\n```\nhealthcare-voc-compliance/\n├── datasets/\n│   ├── generate_regulatory_limits.py     # Dataset A generator\n│   ├── generate_product_matrix.py        # Dataset B generator\n│   ├── voc_regulatory_limits.csv         # 650 regulatory limits\n│   └── healthcare_cleaning_products_voc.csv  # 5,000 products\n├── engines/\n│   ├── python/engine.py                  # Python (FastAPI)\n│   ├── rust/src/main.rs                  # Rust\n│   ├── java/src/.../VOCCalculator.java   # Java\n│   ├── ruby/lib/healthcare_voc_compliance.rb  # Ruby\n│   ├── elixir/lib/healthcare_voc.ex      # Elixir\n│   ├── php/src/VOCCalculator.php         # PHP\n│   └── go/main.go                        # Go\n├── notebooks/\n│   └── voc_compliance_analysis.ipynb     # Jupyter analysis notebook\n├── pdfs/\n│   └── generate_pdfs.py                  # PDF white paper generator\n├── docs/                                 # Sphinx documentation\n└── public/                               # PHP web frontend\n```\n\n---\n\n## License\n\nMIT License. See [LICENSE](LICENSE) for details.\n\nMaintained by Dave Cook — [Binx Professional Cleaning](https://www.binx.ca/commercial.php), North Bay and Sudbury, Ontario.\n","readmeFilename":"README.md","_rev":"1-72f81e93d31edc5d4ef2d16ccfaef029"}