{"id":51240128,"url":"https://github.com/celpha2svx/docflow","last_synced_at":"2026-06-29T00:00:18.671Z","repository":{"id":366848723,"uuid":"1277840774","full_name":"celpha2svx/DocFlow","owner":"celpha2svx","description":null,"archived":false,"fork":false,"pushed_at":"2026-06-23T14:52:43.000Z","size":367,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-23T16:08:35.172Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/celpha2svx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-23T08:31:50.000Z","updated_at":"2026-06-23T15:38:44.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/celpha2svx/DocFlow","commit_stats":null,"previous_names":["celpha2svx/docflow"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/celpha2svx/DocFlow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celpha2svx%2FDocFlow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celpha2svx%2FDocFlow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celpha2svx%2FDocFlow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celpha2svx%2FDocFlow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/celpha2svx","download_url":"https://codeload.github.com/celpha2svx/DocFlow/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/celpha2svx%2FDocFlow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34907985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-29T00:00:16.184Z","updated_at":"2026-06-29T00:00:18.612Z","avatar_url":"https://github.com/celpha2svx.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DocFlow\n\nClinical calculation tool for Nigerian doctors. Built with Flutter.\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/celpha2svx/DocFlow/releases/latest\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/celpha2svx/DocFlow?label=version\u0026logo=github\" alt=\"Latest release\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/celpha2svx/DocFlow/actions/workflows/release.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/celpha2svx/DocFlow/release.yml?logo=github\" alt=\"Release build\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/flutter-3.44+-blue?logo=flutter\" alt=\"Flutter 3.44+\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"MIT License\"\u003e\n  \u003ca href=\"https://celpha2svx.github.io/DocFlow/\"\u003e\u003cimg src=\"https://img.shields.io/badge/website-docs-1F4E79?logo=githubpages\" alt=\"Website\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Features\n\n- **50+ medical calculators** across 12 specialties — Body Metrics, Cardiac, Renal, Fluids \u0026 Drips, Paediatrics, Neurology, Respiratory, Sepsis \u0026 ICU, Obstetrics \u0026 Gynaecology, Gastroenterology, Haematology \u0026 Oncology, Endocrinology \u0026 Metabolic\n- **Full formula transparency** — every calculation shows step-by-step working with substituted values\n- **JSON-driven calculator engine** — new calculators added via `assets/calculators.json`, no app store update required\n- **Patient records** — save calculations to patient profiles (local SQLite)\n- **PIN-protected access** — SHA-256 hashed, with lockout after 3 failed attempts\n- **Cloud sync** — optional Firebase Firestore backup and restore\n- **Offline-first** — all features work without internet\n\n## Calculators\n\n| Category | Calculators |\n|---|---|\n| Body Metrics | BMI, BSA (Mosteller/DuBois), Ideal Body Weight (Devine) |\n| Cardiac | MAP, QTc (Bazett/Fridericia), Cardiac Output \u0026 Index |\n| Renal | eGFR (Cockcroft-Gault), Anion Gap, FeNa |\n| Fluids \u0026 Drips | IV Drip Rate (Nigerian giving sets), Maintenance Fluids (4-2-1), Parkland Formula |\n| Paediatrics | Weight by Age (Nelson/APLS), Paediatric eGFR (Schwartz), Drug Dosing |\n| Neurology | GCS, NIHSS, ABCD², Revised Trauma Score, Ramsay Sedation Scale |\n| Respiratory | CURB-65, Wells PE, PERC Rule, A-a Gradient, P/F Ratio (ARDS) |\n| Sepsis \u0026 ICU | qSOFA, SOFA, SIRS, Shock Index, APACHE II |\n| Obstetrics \u0026 Gynaecology | Naegele's EDD, Bishop Score, Preeclampsia Risk, APGAR, PPH Estimator |\n| Gastroenterology | Child-Pugh, MELD, Ranson's, Glasgow-Blatchford, Rockall |\n| Haematology \u0026 Oncology | ANC, CHA₂DS₂-VASc, HAS-BLED, Corrected Calcium, Transfusion Volume |\n| Endocrinology \u0026 Metabolic | HbA1c ↔ eAG, Osmolality, Corrected Sodium, Bicarbonate Deficit, Burch-Wartofsky |\n\n## Tech Stack\n\n- Flutter 3.44+ (Dart 3.12+)\n- SQLite (sqflite) — local patient data\n- Firebase Firestore — optional cloud backup\n- Cloudflare Workers — issue reporting (feature requests \u0026 feedback)\n- SharedPreferences — auth state + lockout tracking\n- GitHub Actions — CI/CD (release build triggered on `v*` tags)\n\n## Setup\n\n### Prerequisites\n\n- Flutter SDK \u003e=3.12.2\n- Android SDK (for building APK)\n- Java JDK 17+ (for release signing)\n\n### Getting started\n\n```bash\ngit clone https://github.com/celpha2svx/DocFlow.git\ncd DocFlow/docflow_app\nflutter pub get\nflutter run\n```\n\n### Issue reporting (feature requests \u0026 feedback)\n\nFeature requests and feedback are sent through a Cloudflare Worker that creates GitHub Issues. No user GitHub account needed.\n\n**Setup:**\n\n1. Go to https://github.com/settings/tokens?type=beta — create a fine-grained PAT with **Issues → Read and write** on this repo\n2. Deploy the worker (requires a free Cloudflare account + Node.js):\n\n```bash\ncd cloudflare-worker\nnpm install -g wrangler\nwrangler login\nwrangler secret put GITHUB_TOKEN    # paste your PAT\nwrangler deploy\n```\n\n3. Copy the deploy URL (e.g. `https://docflow-issues.your-subdomain.workers.dev`) and paste it into `docflow_app/lib/services/issue_reporter.dart`:\n\n```dart\nstatic const String _workerUrl = 'https://docflow-issues.your-subdomain.workers.dev/submit';\n```\n\n### Release signing\n\n```bash\nchmod +x generate-keystore.sh\n./generate-keystore.sh\nflutter build apk --release\n```\n\n## Project Structure\n\n```\ndocflow_app/\n├── assets/\n│   └── calculators.json      # 50+ JSON-driven calculator definitions\n├── lib/\n│   ├── models/                # Doctor, Patient, Calculation, Category\n│   ├── services/              # Database, FormulaEvaluator, CalculatorLoader, Cloud Sync\n│   ├── screens/               # UI screens (onboarding, calculator, patient, etc.)\n│   ├── widgets/               # Reusable UI components\n│   └── utils/                 # Constants, validators, formatters\n└── android/                   # Android platform config\n```\n\n## Architecture\n\nDocFlow uses a JSON-driven calculator engine. Each calculator is defined in `assets/calculators.json` with:\n- **Inputs** — typed fields (number, toggle, dropdown) with validation\n- **Formulas** — evaluated by `FormulaEvaluator` (recursive descent parser) supporting arithmetic, comparisons, ternary, and 12 built-in functions\n- **Results** — primary and intermediate values with units and precision\n- **Interpretations** — severity-graded clinical guidance based on result thresholds\n- **Transparency templates** — human-readable formula breakdown with substituted values\n\nNo app store update is needed to add new calculators — just edit the JSON file.\n\n## License\n\nMIT. Clinical interpretation remains the responsibility of the attending clinician.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelpha2svx%2Fdocflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcelpha2svx%2Fdocflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcelpha2svx%2Fdocflow/lists"}