Metadata-Version: 2.4
Name: medicafe
Version: 0.260621.2
Summary: MediCafe
Home-page: https://github.com/katanada2/MediCafe
Author: Daniel Vidaud
Author-email: daniel@personalizedtransformation.com
License: MIT
Project-URL: Source, https://github.com/katanada2/MediCafe
Project-URL: Bug Tracker, https://github.com/katanada2/MediCafe/issues
Keywords: medicafe medibot medilink medisoft automation healthcare claims
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.4
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.4, <3.5
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests==2.21.0
Requires-Dist: openpyxl==2.4.11
Requires-Dist: argparse==1.4.0
Requires-Dist: python-docx==0.8.11
Requires-Dist: lxml==4.6.5
Requires-Dist: chardet==3.0.4
Requires-Dist: cffi==1.8.2
Requires-Dist: msal==1.26.0
Provides-Extra: test
Requires-Dist: pytest==4.6.11; extra == "test"
Requires-Dist: pytest-timeout==1.4.2; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# MediCafe

MediCafe is a mixed-runtime healthcare workflow automation repository. It combines the current XP-compatible clinic operator system (`MediCafe`, `MediBot`, `MediLink`, and `xp_client`), a local shadow/readiness path that validates future architecture against local evidence, and a Python 3.11+ GCP orchestration path in `cloud/orchestrator`.

This repository intentionally supports more than one runtime model. It is not a single deployable app with one entrypoint.

## Runtime And Evidence Layers

| Layer | Primary code | Python | Primary use | Packaging posture |
| --- | --- | --- | --- | --- |
| Production XP/local operator system | `MediCafe`, `MediBot`, `MediLink`, `xp_client` | 3.4.4-compatible package path | Clinic-side claims, eligibility, deductible, reconciliation, download, Medisoft-oriented automation, and XP-side cloud queue consumption | Packaged by `setup.py` for PyPI / XP install |
| Local shadow validation system | `scripts/unified_model`, selected `MediCafe/cloud_readiness*` helpers | 3.4.4-compatible local/package path | Shadow A→F pipeline, local relational validation, lineage, parity, Phase C/D/F evidence, and future-process proof | Selected scripts are packaged because XP invokes them by file path |
| Local cloud-readiness / evidence layer | `MediCafe/cloud_readiness*`, `MediCafe/launcher_cloud_readiness_mixin.py`, support/evidence helpers | 3.4.4-compatible local/package path | Operator system-health packs, run-evidence bundles, Layer 1 Readiness, recommendations, post-update validation, and support-send workflows | Packaged when used by XP/local launcher and support flows |
| GCP cloud orchestrator | `cloud/orchestrator`, `cloud/orchestrator/tests` | 3.11+ repo-run / GCP path | Gmail ingestion, queueing, preprocessor validation, alerting, setup, runtime operations, and future cloud deployment work | Source lives in git for dev/GCP work; it is not part of the XP/PyPI package payload |

`setup.py` packages the XP/local operator system plus XP-required shadow/readiness files. The GCP cloud orchestrator is maintained as repo-run Python 3.11+ source and should remain inert with respect to the clinic-side PyPI release.

## Primary Entry Points

Package CLI:

```bash
medicafe launcher
python -m MediCafe launcher
```

Current routine package commands exposed by `MediCafe/__main__.py`:

- `medicafe launcher`
- `medicafe medibot [config_file]`
- `medicafe medilink`
- `medicafe claims_status`
- `medicafe deductible`
- `medicafe download_emails`
- `medicafe cloud_daemon [config_file]`
- `medicafe send_error_report`
- `medicafe send_queued_error_reports`
- `python -m MediCafe cleanup_local_artifacts`
- `medicafe docx_index_rebuild`
- `medicafe preflight`
- `medicafe reconcile`
- `medicafe version`

Support, analytics, and local evidence commands exposed by `MediCafe/__main__.py`:

- `medicafe send_cpt_dx_review`
- `medicafe send_minutes_charge_review`
- `medicafe build_service_line_charge_anchor_index`
- `medicafe local_failure_pattern_analyzer`
- `medicafe layer1_local_diagnostics`
- `medicafe docx_index_retry_failed`
- `medicafe csv_metadata_index_rebuild`
- `medicafe analyze_csv_excluded_insurance`

`medicafe deductible` is kept as the advanced/compatibility checker. The normal operator path for the consolidated deductible form is inside MediLink Claims as `Open deductible report (United, 90-day DOS)`.

Canonical cloud operator path:

```powershell
py -3.11 cloud/orchestrator/validate_and_complete_setup.py
```

## Repository Map

- `MediCafe/`: shared package, CLI entrypoint, launcher, preflight, cloud-readiness helpers (including **Layer 1 Readiness** for operator system-health and run-evidence bundles; see `MediCafe/layer1_readiness_model.py` and `AGENTS.md`), API utilities, reconciliation, error reporting, and shared runtime helpers
- `MediBot/`: Medisoft-oriented local preprocessing and data-entry support scripts
- `MediLink/`: claims, eligibility, deductible, remittance, Gmail helper, and Apps Script-related assets
- `cloud/orchestrator/`: Python 3.11+ Cloud Run service, auth/config/runtime helpers, preprocessor gate, watch/admin flows, setup scripts, and cloud tests; repo-run/dev/GCP source, not XP package payload
- `xp_client/`: XP-side cloud queue consumer (`medilink_cloud_daemon.py`)
- `tests/`: main regression suite for package/local workflows, API helpers, launcher behavior, preflight, cloud-readiness, and integration coverage
- `scripts/unified_model/`: XP-compatible local shadow-pipeline and unified relational validation scripts; selected scripts are packaged as runtime data files because XP flows invoke them by path
- `sql/`: SQL artifacts used by migration and validation work
- `docs/`: maintained documentation surface
- `tools/`: operator, build, audit, and verification helpers; only XP-required tools should be treated as runtime-critical

The workspace root also contains operational inputs, artifacts, and generated state such as `input/`, `TEST_CLAIMS/`, `ERA_TEST_DUMP/`, `reports_queue/`, `archive/`, `build/`, `dist/`, `.pytest_cache/`, and `tmp*`. Do not treat those folders as the canonical source layout.

Local artifact cleanup:

```bash
python -m MediCafe cleanup_local_artifacts
python -m MediCafe cleanup_local_artifacts --apply --purge-queue
```

The cleanup command preserves README markers, defaults to dry-run, and skips queued ZIP bundles unless queue purge or queue-age retention is explicitly requested.

Automatic cleanup runs only from a development checkout (`.git` present) and only when `MEDICAFE_LOCAL_ARTIFACT_AUTOCLEAN` is not disabled. It is checked at `python -m MediCafe ...` startup and before support bundle creation. Defaults: at most once every 6 hours; apply cleanup when generated artifacts exceed 200 files, 250 MB, or 50 queued ZIPs. Ordinary generated artifacts and queued ZIP bundles are pruned immediately once a threshold is crossed. Set `MEDICAFE_LOCAL_ARTIFACT_AUTOCLEAN_QUEUE_MAX_AGE_DAYS` to a positive value only if a machine needs delayed queue retention.

## Configuration

Primary local configuration files:

- `json/config.json`
- `json/crosswalk.json`
- `json/medisoftconfig.json`

Cloud/orchestrator runtime settings are managed through `cloud/orchestrator/config.py`, environment variables, and the validator/setup flow.

## Testing

Main test surfaces:

- `tests/`
- `cloud/orchestrator/tests/`

Canonical automated test entrypoint:

```bash
python3 -m pytest -v
```

Windows equivalent:

```powershell
py -3.11 -m pytest -v
```

XP/Python 3.4.4 local test environments should install the runtime pins from `requirements.txt` when needed, then use the package test extras for the legacy pytest pins before running pytest-driven files:

```powershell
py -3.4 -m pip install -r requirements.txt
py -3.4 -m pip install ".[test]"
py -3.4 -m pytest -q tests/test_json_io.py
```

`pytest.ini` collects `tests/` and `cloud/orchestrator/tests/`, with `manual` excluded from recursion. For focused runs:

```bash
python3 -m pytest -q tests/test_preflight.py
python3 -m pytest -q tests/test_config_loader_diagnostics.py
python3 -m pytest -q tests/test_error_reporter_configloader_degraded.py
python3 -m pytest -q tests/test_launcher_next_step_orchestration.py
python3 -m pytest -q tests/test_cloud_readiness_health.py
python3 -m pytest -q tests/test_cloud_readiness_artifacts.py::TestLayer1ReadinessModel tests/test_cloud_readiness_artifacts.py::TestLayer1ReadinessSurfacesAndContract tests/test_cloud_readiness_artifacts.py::TestSystemHealthPackWiring::test_send_latest_system_health_pack_extra_meta_merges_layer1_readiness_shallow_keys tests/test_cloud_readiness_artifacts.py::TestRunCentricArtifactTools::test_send_latest_run_evidence_bundle_extra_meta_merges_layer1_readiness_shallow_keys tests/test_cloud_readiness_recommendations.py
python3 -m pytest -q tests/cloud_readiness/test_self_test_bundle_build_telemetry.py
python3 -m pytest -q cloud/orchestrator/tests
```

See `docs/TESTING_GUIDE.md` for the current suite shape, selector lanes, default excludes, and standalone script-style harnesses that are not part of the canonical pytest run.

## Documentation

Start here:

- `docs/README.md`
- `docs/MEDICAFE_MASTER_GUIDE.md`
- `docs/TESTING_GUIDE.md`
- `docs/MEDICAFE_API_ARCHITECTURE.md`
- `docs/MEDILINK_CLOUD_MIGRATION.md`
- `docs/architecture/CSV_DOCX_DAT_JOIN_SCAFFOLDING_INVENTORY.md` (shadow CSV/DOCX/DAT correlation, cloud readiness read path, orchestrator context)
- `cloud/orchestrator/README.md`

## Security and Repo Hygiene

- Avoid PHI in logs, reports, and committed artifacts.
- Use `send_error_report` and `send_queued_error_reports` for diagnostics instead of ad hoc data exports.
- Treat tokens, certificates, raw client secrets, build outputs, and downloaded artifacts as operational state, not documentation or source of truth.

## License

MIT License. See `LICENSE`.
