Skip to main content

OpenInjectability

OpenInjectability is a transparent Python toolkit for estimating the pressure drop and predicted fluid-resistance force for a declared Newtonian liquid flowing through a specified needle.

Scientific boundary

The model is intentionally narrow:

  • In scope: idealized Hagen–Poiseuille needle-fluid resistance for Newtonian liquids with traceable viscosity, needle ID/length, barrel ID, volume, and rate.
  • Out of scope: syringe friction, break-loose force, device drivetrain losses, tissue backpressure, human factors, and non-Newtonian rheology.
  • A needle gauge label is metadata only; a traceable needle inner diameter is required.
  • The result is always named predicted fluid-resistance force, never total device force, “safe,” or “compliant.”

Non-Newtonian or otherwise unsupported inputs fail closed (typed rejection; no fallback rheology model).

Quick start

python -m pip install -e ".[dev,reports]"
openinjectability assess examples/formulation.csv `
  --config examples/assessment.json `
  --results assessment.json `
  --report assessment.md `
  --plot force-vs-needle.png `
  --audit-bundle audit.zip

PDF and plot output require the reports extra. Markdown and HTML reports require no optional dependency beyond the core install.

openinjectability version
openinjectability schema --format json
openinjectability validate-input examples/formulation.csv
openinjectability validation-status --json
openinjectability assess-one --viscosity-value 35 --viscosity-temperature 25 `
  --use-temperature 25 --rheology-evidence RHEO-1 --needle-id 0.21 `
  --needle-length 12.7 --needle-source drawing --barrel-id 6.35 `
  --barrel-source syringe --volume 2 --injection-time 15

Literature / experimental panel comparison

Compare a panel JSON of measured fluid-side force (or pressure × barrel area) to the model. Report status is only experimental_comparison or insufficient_data — this command never claims independently_validated and does not advance package validation_status.

openinjectability validate-experimental `
  validation/experimental/panel_allmendinger2014_glycerol_digitized.json `
  --out validation/experimental/reports/allmendinger2014_digitized

Panel schema and rules: validation/experimental/README.md.

Documentation: docs/scientific-basis.md, docs/input-schema.md, docs/interpretation.md, docs/roadmap.md, docs/phase-status.md, VALIDATION.md, PROJECT_SPECIFICATION.md, project.md.

Backend engine API

For services, notebooks, or another application backend, use the in-memory engine. It does not read files, produce plots or reports, or invoke the CLI. It preserves the same Newtonian-only scientific boundary as the command line.

from openinjectability import AssessmentInput, OpenInjectabilityEngine

engine = OpenInjectabilityEngine()
result = engine.assess(case)  # `case` is a validated AssessmentInput
batch = engine.assess_batch([case_a, case_b])
metadata = engine.metadata.to_dict()

assess_batch preserves accepted input order and records each invalid or unsupported case as a typed RejectedAssessment; it never applies a fallback rheology model. The returned value remains the predicted fluid-resistance force, not total device force.

Status

Version 0.1.0 is alpha. Development status on PyPI classifiers is 3 - Alpha.

Area State
Phases A–C (hardening, spec completion, release gates) Complete
Equations / internal reference cases internal_validation (unit-tested)
Independent experimental validation Pending — package experimental_validation_pending
Literature comparison (Allmendinger 2014 digitized panel) Report status experimental_comparison only; not independently_validated
Public PyPI release (Phase E) Blocked on independent D + credentials
  • Do not describe this release as experimentally validated.
  • Digitized figures, geometry setups from papers, or exploratory literature comparisons under validation/experimental/ are not accepted independent experimental validation evidence.
  • See VALIDATION.md for the claims-to-evidence map and status vocabulary, and docs/phase-status.md for phase tracking.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openinjectability-0.1.0.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openinjectability-0.1.0-py3-none-any.whl (28.5 kB view details)

Uploaded Python 3

File details

Details for the file openinjectability-0.1.0.tar.gz.

File metadata

  • Download URL: openinjectability-0.1.0.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.10

File hashes

Hashes for openinjectability-0.1.0.tar.gz
Algorithm Hash digest
SHA256 95007f68b1fb4027c91aee09c1ebe13f79bc720506ba19c93c04981adc23f64f
MD5 776247aca48f139a9fc39c827bb166c9
BLAKE2b-256 282d1888e3914aa8e31f7545ed89ebc6ebd76bafb9cb0a471d41ca42e7cf5e22

See more details on using hashes here.

File details

Details for the file openinjectability-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for openinjectability-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 410eb83dd464e70a30c3aa3f3942b5cb93bec5747b43cdc193e73c9c86468e81
MD5 614585e5c61ffbb8b1691f71f3f1107c
BLAKE2b-256 67170ae99df86cedaca415c92b5d6ac93bf4db4f0a2b4555fcc8bc92ec2c54b2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page