aibilly_backend_code/project_structure_detailed.md

91 lines
3.8 KiB
Markdown

# Detailed File-Level Project Structure: IamBilly Backend
This document provides an exhaustive file-level breakdown of the IamBilly backend, adhering to the monolithic modular pattern and the stack requirements (FastAPI, PostgreSQL, Redis, AI Layer).
---
## 1. Global Core Structure (`app/`)
### `app/core/`
- `config.py`: Centralized environment variable management (Pydantic Settings).
- `security.py`: JWT token generation, password hashing, and OAuth2 scopes.
- `encryption.py`: AES-256 logic for at-rest storage of audio and PHI.
- `logging.py`: HIPAA-compliant JSON logging with audit trail metadata.
- `exceptions.py`: Custom HTTP exception handlers for global error responses.
### `app/api/`
- `v1/api.py`: Main router that includes all module-level routers.
- `dependencies.py`: Global FastAPI dependencies (e.g., `get_current_active_user`).
### `app/database/`
- `base.py`: Import all SQLAlchemy models here for Alembic detection.
- `session.py`: Database engine and async session factory setup.
- `crud.py`: Common CRUD operations for shared entities.
---
## 2. Domain Modules (`app/modules/`)
Every module below follows this structure: `<module>/[models.py, schemas.py, service.py, router.py, tasks.py]`.
### `modules/auth/`
- `models.py`: `User`, `Role`, `Permission` tables.
- `schemas.py`: Login, Token, and User management schemas.
- `service.py`: Authentication logic, role verification.
- `router.py`: `/login`, `/refresh`, `/me` endpoints.
### `modules/patient/`
- `models.py`: `Patient`, `PatientEMRMap`.
- `schemas.py`: Patient search results and metadata.
- `service.py`: Real-time Lookup logic (caching EMR results).
- `router.py`: `/patients/search`, `/patients/{id}`.
### `modules/audio/`
- `models.py`: `Recording`, `AudioSession`.
- `schemas.py`: Upload validation and status updates.
- `service.py`: Secure file handling, metadata extraction.
- `router.py`: `/audio/upload`, `/audio/{id}/status`.
- `tasks.py`: Background task to move files to encrypted object storage.
### `modules/ai_service/`
- `service.py`: Orchestrator for the "Voice-to-Claim" pipeline.
- `extraction.py`: NLP logic for entity extraction (Diagnosis, Procedure, Laterality).
- `transcription.py`: Integration with Whisper STT.
- `tasks.py`: Celery worker for long-running STT/LLM inference.
### `modules/billing/`
- `models.py`: `PayerRule`, `NCCIEdit`, `ModifierMap`.
- `service.py`: Rules engine logic, optimization strategies for 10-20 spine procedures.
- `rag_service.py`: Logic to query the `ai_layer` vector store for scrubbing.
- `router.py`: `/billing/payer-rules`.
### `modules/claim/`
- `models.py`: `Claim` (State Machine), `ClaimRevision`, `AuditTrail`.
- `schemas.py`: Full CMS-1500 JSON representation.
- `service.py`: Lifecycle management (Draft -> Human Review -> Exported).
- `router.py`: `/claims/queue`, `/claims/{id}/approve`, `/claims/{id}/reject`.
---
## 3. Infrastructure & Integration Layer
### `app/ai_layer/`
- `models/`: Loader scripts for Llama/Mistral/Qwen models.
- `rag/`: Vector DB initialization (pgvector), indexing policy docs/manuals.
- `inference/`: `whisper_service.py` (STT extraction) and `llm_service.py` (Entity Extraction).
### `app/integration/`
- `base_adapter.py`: Abstract base class for EMR integrations.
- `epic_fhir.py`: Epic R4 FHIR client (Patient, Encounter, DocRef resources).
- `athena_api.py`: Custom client for Athena Centricity.
- `curemd_api.py`: CureMD REST client.
---
## 4. Root Config Files
- `main.py`: App initialization, Middleware (CORS/HIPAA logging), and API Mounting.
- `celery_app.py`: Celery configuration for async tasks.
- `alembic.ini`: Database migration config.
- `docker-compose.yml`: Definition for `api`, `worker`, `db`, `redis`.
- `requirements.txt`: To include: `fastapi`, `sqlalchemy[asyncio]`, `pgv-sdk`, `pydantic-settings`, `celery`, `redis`, `python-multipart`, `cryptography`.