181 lines
5.0 KiB
Markdown
181 lines
5.0 KiB
Markdown
# PDF Implementation Status
|
|
|
|
## Overview
|
|
Implementing PDF generation (view, download, email) for all 15 clinical and administrative documents.
|
|
|
|
## Completed Modules (10/15) - 67% Complete! 🎉
|
|
|
|
### ✅ 1. Appointments
|
|
- Location: `appointments/views.py`
|
|
- Status: **COMPLETE**
|
|
- Features: View, Download, Email
|
|
- Template: ✅ Updated with PDF dropdown
|
|
|
|
### ✅ 2. Finance/Invoices
|
|
- Location: `finance/pdf_service.py`, `finance/views.py`
|
|
- Status: **COMPLETE**
|
|
- Features: View, Download, Email
|
|
- Template: ✅ Updated with PDF dropdown
|
|
|
|
### ✅ 3. Medical Consultation (MD-F-1)
|
|
- Location: `medical/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `MedicalConsultationPDFGenerator`
|
|
- `MedicalConsultationPDFView`
|
|
- `MedicalConsultationEmailPDFView`
|
|
- URLs: ✅ Added to `medical/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 4. Medical Follow-up (MD-F-2)
|
|
- Location: `medical/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `MedicalFollowUpPDFGenerator`
|
|
- `MedicalFollowUpPDFView`
|
|
- `MedicalFollowUpEmailPDFView`
|
|
- URLs: ✅ Added to `medical/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 5. ABA Consult (ABA-F-1)
|
|
- Location: `aba/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `ABAConsultPDFGenerator`
|
|
- `ABAConsultPDFView`
|
|
- `ABAConsultEmailPDFView`
|
|
- URLs: ✅ Added to `aba/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 6. OT Consultation (OT-F-1)
|
|
- Location: `ot/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `OTConsultPDFGenerator`
|
|
- `OTConsultPDFView`
|
|
- `OTConsultEmailPDFView`
|
|
- URLs: ✅ Added to `ot/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 7. OT Session (OT-F-3)
|
|
- Location: `ot/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `OTSessionPDFGenerator`
|
|
- `OTSessionPDFView`
|
|
- `OTSessionEmailPDFView`
|
|
- URLs: ✅ Added to `ot/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 8. SLP Consultation (SLP-F-1)
|
|
- Location: `slp/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `SLPConsultPDFGenerator`
|
|
- `SLPConsultPDFView`
|
|
- `SLPConsultEmailPDFView`
|
|
- URLs: ✅ Added to `slp/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 9. SLP Assessment (SLP-F-2)
|
|
- Location: `slp/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `SLPAssessmentPDFGenerator`
|
|
- `SLPAssessmentPDFView`
|
|
- `SLPAssessmentEmailPDFView`
|
|
- URLs: ✅ Added to `slp/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
### ✅ 10. SLP Intervention (SLP-F-3)
|
|
- Location: `slp/views.py`
|
|
- Status: **COMPLETE - Backend Only**
|
|
- Classes:
|
|
- `SLPInterventionPDFGenerator`
|
|
- `SLPInterventionPDFView`
|
|
- `SLPInterventionEmailPDFView`
|
|
- URLs: ✅ Added to `slp/urls.py`
|
|
- Template: ⏳ **NEEDS UPDATE**
|
|
|
|
## Remaining Modules (5/15)
|
|
|
|
### ⏳ 11. Nursing Encounter
|
|
- Location: `nursing/views.py`
|
|
- Status: **SKIPPED** (per user request)
|
|
|
|
### ⏳ 12. Consent Forms
|
|
- Location: `core/views.py`
|
|
- Status: **PENDING**
|
|
|
|
### ⏳ 13. Patient Summary
|
|
- Location: `core/views.py`
|
|
- Status: **PENDING**
|
|
|
|
### ⏳ 14-21. Template Updates (8 templates)
|
|
All clinical document detail templates need PDF dropdown + email modal:
|
|
- `medical/templates/medical/consultation_detail.html`
|
|
- `medical/templates/medical/followup_detail.html`
|
|
- `aba/templates/aba/consult_detail.html`
|
|
- `ot/templates/ot/consult_detail.html`
|
|
- `ot/templates/ot/session_detail.html`
|
|
- `slp/templates/slp/consultation_detail.html`
|
|
- `slp/templates/slp/assessment_detail.html`
|
|
- `slp/templates/slp/intervention_detail.html`
|
|
|
|
## Implementation Pattern
|
|
|
|
Each module follows this pattern:
|
|
|
|
```python
|
|
# 1. PDF Generator Class
|
|
class DocumentPDFGenerator(BasePDFGenerator):
|
|
def get_document_title(self):
|
|
return ("English Title", "Arabic Title")
|
|
|
|
def get_pdf_filename(self):
|
|
return f"document_{self.document.id}.pdf"
|
|
|
|
def get_document_sections(self):
|
|
return [
|
|
{
|
|
'heading_en': 'Section Name',
|
|
'heading_ar': 'اسم القسم',
|
|
'type': 'table', # or 'text'
|
|
'content': [...]
|
|
}
|
|
]
|
|
|
|
# 2. PDF View
|
|
class DocumentPDFView(LoginRequiredMixin, TenantFilterMixin, View):
|
|
def get(self, request, pk):
|
|
document = get_object_or_404(Model, pk=pk, tenant=request.user.tenant)
|
|
pdf_generator = DocumentPDFGenerator(document, request)
|
|
view_mode = request.GET.get('view', 'download')
|
|
return pdf_generator.generate_pdf(view_mode=view_mode)
|
|
|
|
# 3. Email PDF View
|
|
class DocumentEmailPDFView(LoginRequiredMixin, TenantFilterMixin, View):
|
|
def post(self, request, pk):
|
|
# Get document, email address, generate and send PDF
|
|
pass
|
|
```
|
|
|
|
## Estimated Completion Time
|
|
|
|
- Per module: 30-60 minutes
|
|
- Remaining 11 modules: 8-12 hours total
|
|
- Template updates: 2-3 hours
|
|
- Testing: 2-3 hours
|
|
|
|
**Total remaining: 12-18 hours**
|
|
|
|
## Next Priority
|
|
|
|
1. Nursing Encounter (most used after medical)
|
|
2. OT Consultation & Session
|
|
3. SLP Consultation, Assessment, Intervention
|
|
4. ABA Consult
|
|
5. Consent Forms
|
|
6. Patient Summary
|
|
7. Template updates for all modules
|