🎯 Obiettivo
Aggiungere supporto per tagging e categorizzazione dei Progetti Terapeutici, permettendo classificazioni flessibili oltre allo stato clinico (Active/Suspended/Completed/Deceased).
📋 Contesto
Nel dominio reale potrebbero servire categorizzazioni aggiuntive per i progetti:
- Tipologia intervento (es. "Riabilitazione Sociale", "Supporto Domiciliare", "Inserimento Lavorativo")
- Area tematica (es. "Salute Mentale", "Dipendenze", "Disabilità")
- Tag liberi per filtri/ricerche (es. "urgente", "famiglia coinvolta", "necessita supervisione")
- Priorità clinica (Alta/Media/Bassa)
Queste informazioni facilitano:
- filtri avanzati in PatientListView e Dashboard
- reportistica per tipologia di intervento
- assegnazione educatori con competenze specifiche.
📦 Estensioni Modello
1. Aggiungere campo InterventionType in TherapyProjectModel
public class TherapyProjectModel
{
// ... campi esistenti ...
/// <summary>
/// Tipologia di intervento terapeutico (opzionale)
/// </summary>
public string? InterventionType { get; set; }
/// <summary>
/// Priorità clinica del progetto
/// </summary>
public ProjectPriority Priority { get; set; } = ProjectPriority.Medium;
}
public enum ProjectPriority
{
Low,
Medium,
High,
Critical
}
2. Introdurre entità ProjectTag per tagging flessibile
public class ProjectTag
{
public Guid Id { get; set; }
public Guid TherapyProjectId { get; set; }
public TherapyProjectModel TherapyProject { get; set; } = null!;
public string TagName { get; set; } = string.Empty;
public string? TagCategory { get; set; } // es. "tema", "stato", "nota"
public DateTime CreatedAt { get; set; }
public string CreatedBy { get; set; } = string.Empty;
}
3. Relazione Many-to-Many in TherapyProjectModel
public ICollection<ProjectTag> Tags { get; set; } = new List<ProjectTag>();
📋 Tasks
✅ Acceptance Criteria
🔗 Riferimenti
CLUSTER: Domain & Data (gap 5.1)
FASE: 2A - Pazienti & Progetti
PRIORITÀ: 🔵 MEDIA
DIPENDENZE: #71, #72
OPZIONALE: Può essere implementata dopo il core se non richiesta dal dominio reale
🎯 Obiettivo
Aggiungere supporto per tagging e categorizzazione dei Progetti Terapeutici, permettendo classificazioni flessibili oltre allo stato clinico (Active/Suspended/Completed/Deceased).
📋 Contesto
Nel dominio reale potrebbero servire categorizzazioni aggiuntive per i progetti:
Queste informazioni facilitano:
📦 Estensioni Modello
1. Aggiungere campo
InterventionTypeinTherapyProjectModel2. Introdurre entità
ProjectTagper tagging flessibile3. Relazione Many-to-Many in
TherapyProjectModel📋 Tasks
TherapyProjectModelconInterventionTypeePriorityProjectTaginPTRP.Models/ProjectPriorityinPTRP.Models/Enums/DbContext(Fluent API se necessario)ITherapyProjectRepositorycon metodi di ricerca per tag:GetByInterventionTypeAsync(string type)GetByTagAsync(string tagName)GetByPriorityAsync(ProjectPriority priority)TherapyProjectServiceper gestire tag in creazione/modificaProjectFormView(feat: implementare ProjectFormView e integrazione in PatientListView #74) con campi per InterventionType, Priority, TagsPatientListView(FASE 2 - Core Features: PatientListView con Master-Detail Layout #51)✅ Acceptance Criteria
docs/DATABASE.mdcon nuove entità🔗 Riferimenti
docs/DATABASE.md- schema ER da aggiornareCLUSTER: Domain & Data (gap 5.1)
FASE: 2A - Pazienti & Progetti
PRIORITÀ: 🔵 MEDIA
DIPENDENZE: #71, #72
OPZIONALE: Può essere implementata dopo il core se non richiesta dal dominio reale