hospital-management/current_prompt.md
Marwan Alwali 4ca3f7159a update
2025-09-22 01:37:55 +03:00

173 lines
9.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Agent Instructions:
You are a senior Django architect and full-stack developer. This is a very large, mission-critical project—do **not** dump all code at once. Follow this strict phased plan-and-approve workflow to minimize hallucination and ensure accuracy:
**Phase 1 Planning**
1. Produce a high-level outline of every app/module, its responsibilities, and the key models, views/endpoints, HTMX interactions, Celery tasks, HL7 and DICOM/PACS interfaces, AI analytics hooks, and compliance/multitenancy considerations.
2. Pause and wait for my confirmation before proceeding.
**Phase 2 Scoping & Approval (per app)**
For each confirmed app (one at a time):
1. List all models, fields, relationships, and choice enums in full detail.
2. List required UI views (with HTMX attributes) and REST API endpoints/URLs.
3. List any Celery tasks, HL7/DICOM integration points, IoT hooks, and AI rule triggers.
4. Pause and wait for my “👍 go ahead with [app_name]” before generating any code.
**Phase 3 Implementation (per app)**
When I approve an app:
1. Generate **models.py** for that app only.
2. Pause for my review and approval.
3. Generate **serializers.py** and/or **forms.py**, then pause for review.
4. Generate **views.py**, **templates/**, and any necessary HTMX snippets, then pause for review.
5. Generate **static asset scaffolding** (SASS partials, HTMX/JS modules) and pause for review.
**Phase 4 Shared Tooling & Final Integration**
After all apps are complete:
1. Generate Webpack (or Django-Webpack-Loader) setup, SCSS/JS bundling, and `django-compressor` config.
2. Generate Celery configuration with Redis broker and example tasks (including HL7/DICOM polling, IoT data ingestion, AI analytics jobs).
3. Generate the **hl7_interface** and **pacs_interface** apps: models, utilities, management commands, and Celery tasks for HL7 v2.x and DICOM messaging.
4. Generate DRF API docs (Swagger) config, pytest setup, and GitHub Actions CI workflow.
5. Generate example Gunicorn + Nginx deployment snippets with multitenancy and SSL/TLS, and notes on GDPR/HIPAA compliance (encryption at rest, audit logs, consent management).
6. Provide a comprehensive README covering:
- Python virtualenv setup
- `npm install && npm run build`
- `manage.py migrate`, superuser setup
- ColorAdmin license integration
- HTMX usage guidelines
- HL7/DICOM endpoint configuration
- IoT device onboarding
- AI risk-scoring configuration
- Multitenancy setup
- Compliance controls (2FA, encryption, consent capture)
---
**Project Specification**
Project name: `hospital_management`
UI theme: ColorAdmin template (all CSS/JS centralized—no inline or per-template scripts/styles)
Dynamic behavior: HTMX for all interactive features
Messaging: Optional inbound/outbound HL7 and DICOM/PACS interfaces
Analytics: AI-driven predictive risk scoring hooks in `decision_support`
Security & Compliance:
- Two-factor authentication, encryption at rest, GDPR/HIPAA audit trails
- Consent management, digital signatures, detailed audit logs
- Tenant-scoped data isolation for multi-hospital support
**Apps, Models & Fields**
1. **accounts**
- `User` (extends AbstractUser): username, email, first_name, last_name, password, role (choices: Admin, Doctor, Nurse, LabTech, Pharmacist, Receptionist, Patient, EMS), is_active, date_joined, tenant
- `TwoFactorDevice`: user FK, device_type, secret_key, confirmed
- `SocialAccount` (django-allauth)
2. **core**
- `AuditLogEntry`: user FK, action, timestamp, object_type, object_id, change_detail
- HL7Utility & DICOMUtility modules (no models; parsing/building functions)
3. **patients**
- `PatientProfile`: user FK (Patient), medical_record_number, date_of_birth, gender, blood_type, allergies (text), address, phone, emergency_contact FK, insurance_info FK
- `EmergencyContact`: patient FK, name, relationship, phone, email
- `InsuranceInfo`: patient FK, provider, policy_number, group_number, coverage_start_date, coverage_end_date
- `ConsentForm`: patient FK, form_type, document (FileField), signed_at, signed_by FK
4. **appointments**
- `AppointmentRequest`: patient FK, doctor FK, department, requested_datetime, status (Pending/Confirmed/Cancelled), created_at, updated_at
- `SlotAvailability`: doctor FK, date, start_time, end_time, is_available
- `WaitingQueue`: appointment FK, position, created_at
- VirtualCare scheduled via `TelemedicineSession`: patient FK, provider FK, session_url, start_time, end_time, status
5. **inpatients**
- `Ward`: name, floor, capacity, department
- `Bed`: ward FK, bed_number, bed_type (choices: General/ICU/Private), status
- `Admission`: patient FK, ward FK, bed FK, admitted_at, admitted_by FK, reason, status
- `DischargeSummary`: admission FK, summary_text, discharged_at, discharged_by FK
- `Transfer`: admission FK, from_ward FK, to_ward FK, transferred_at, reason
- `SurgerySchedule`: patient FK, surgeon FK, or_block FK, scheduled_at, duration, status
6. **emr**
- `Encounter`: patient FK, encounter_date, provider FK, encounter_type, notes
- `VitalSigns`: encounter FK, recorded_at, temperature, heart_rate, bp_systolic, bp_diastolic, respiratory_rate, oxygen_saturation
- `ProblemList`: patient FK, description, onset_date, status, notes
- `CarePlan`: encounter FK, goal, interventions, status
- `ClinicalNote`: encounter FK, note_type, content, created_at, created_by FK
7. **billing**
- `Invoice`: patient FK, date_issued, due_date, total_amount, status
- `ChargeItem`: invoice FK, description, code, quantity, unit_price, total_price
- `Payment`: invoice FK, amount, method, paid_at, transaction_id
- `InsuranceClaim`: invoice FK, claim_number, status, submitted_at, adjudicated_at
8. **pharmacy**
- `Medication`: name, code, description, unit, dosage_form
- `Prescription`: patient FK, prescriber FK, prescribed_at, status
- `DispenseRecord`: prescription FK, medication FK, quantity, dispensed_at, dispenser FK
- `StockItem`: medication FK, batch_number, expiration_date, quantity_on_hand, minimum_threshold
9. **laboratory**
- `LabTest`: name, code, description, specimen_type, department
- `Specimen`: lab_test FK, patient FK, collected_at, collected_by FK, status
- `Result`: specimen FK, result_value, units, reference_range, result_date, verified_by FK
- `LISIntegrationLog`: message_id, direction, payload, status, processed_at
10. **radiology**
- `RadiologyOrder`: patient FK, imaging_type, ordered_by FK, order_date, priority, status
- `ImagingStudy`: order FK, modality, study_date, images_count, report_status
- `RadiologyReport`: study FK, report_text, dictated_by FK, dictated_at, approved_by FK, approved_at
- `DICOMStudy`: study_instance_uid, patient_fk, modality, study_date, series_data (JSON)
11. **inventory**
- `SupplyItem`: name, sku, description, category, unit, reorder_level, location
- `PurchaseOrder`: supplier FK, order_date, expected_date, status, total_amount
- `StockTransaction`: item FK, transaction_type, quantity, transaction_date, reference
12. **decision_support**
- `CDSSRule`: name, trigger_event, condition_expression, action, active
- `AlertLog`: rule FK, patient FK, triggered_at, message, status
- AI hooks: risk_scoring_config (JSON), last_run, score_thresholds
13. **reporting**
- `CustomReport`: name, description, owner FK, query_definition (JSON), created_at, updated_at
- `DashboardWidget`: name, report FK, widget_type, settings (JSON), position
14. **hl7_interface**
- `HL7Endpoint`: name, host, port, protocol, is_active, last_checked
- `HL7MessageLog`: endpoint FK, direction, message_type, raw_message, parsed_message, sent_at, received_at, status
15. **pacs_interface**
- `PACSConnection`: name, ae_title, host, port, is_active
- `PACSLog`: connection FK, direction, dicom_uid, raw_payload, processed_at, status
16. **operating_theatre**
- `ORBlock`: name, theater_number, department, available_slots (JSON)
- `EquipmentReservation`: device FK, or_block FK, reserved_from, reserved_to, status
17. **assets**
- `MedicalDevice`: name, serial_number, category, location, status, last_maintenance
- `MaintenanceLog`: device FK, performed_at, performed_by FK, notes
- `IoTSensorReading`: device FK, timestamp, data (JSON)
18. **ems**
- `DispatchRequest`: caller_info, location, priority, status, created_at
- `Ambulance`: identifier, capacity, status, location
- `CrewMember`: user FK, ambulance FK, role
- `TripLog`: dispatch FK, ambulance FK, start_time, end_time, patient_fk
19. **nutrition**
- `MealPlan`: patient FK, date, meals (JSON), dietary_restrictions
- `DietaryOrder`: patient FK, meal_type, order_time, status
- `KitchenTask`: plan FK, task_description, assigned_to FK, status, completed_at
20. **security**
- `EncryptionKey`: key_name, key_type, created_at, rotation_date
- `AuditLogEntry` (enhanced for GDPR/HIPAA as above)
---
**Shared Tooling, Interactivity & Deployment**
- **Assets**: SCSS in `assets/scss/``static/dist/main.css`; JS in `assets/js/``static/dist/main.js` via Webpack + Babel; `django-compressor` for compression.
- **HTMX**: All dynamic features use `hx-*` attributes—no per-template JS.
- **API**: DRF ModelViewSets under `/api/v1/`, secured with JWT/OAuth2, Swagger UI at `/api/docs/`.
- **Background**: Celery+Redis for notifications, HL7/DICOM messaging, IoT ingestion, AI scoring.
- **Testing/CI**: `pytest` + GitHub Actions for lint/test/build.
- **Deployment**: Gunicorn+Nginx configs, multitenancy notes, SSL/TLS, GDPR/HIPAA compliance checklist, 2FA setup, consent management, and monitoring guidance.
Ensure phased execution and strictly pause for approvals at each step. Good luck!