Class TimeSection

java.lang.Object
it.uniupo.simnova.views.ui.helper.TimeSection

public class TimeSection extends Object
Rappresenta una singola sezione temporale (T0, T1, T2, ecc.) di uno scenario di simulazione. Questa classe gestisce i campi di input per i parametri medici, le azioni, le transizioni e i parametri aggiuntivi specifici per quel tempo.
Version:
1.0
Author:
Alessandro Zappatore
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final com.vaadin.flow.component.textfield.TextArea
    Area di testo per descrivere l'azione richiesta o l'evento scatenante per questo tempo.
    final com.vaadin.flow.component.textfield.TextArea
    Area di testo per ulteriori dettagli o note specifiche per questo tempo.
    final Map<String,com.vaadin.flow.component.orderedlayout.HorizontalLayout>
    Mappa che associa i parametri aggiuntivi (predefiniti o personalizzati) ai loro layout di campo, inclusi i pulsanti per rimuoverli dinamicamente.
    final Map<String,com.vaadin.flow.component.textfield.NumberField>
    Mappa che associa i parametri aggiuntivi (predefiniti o personalizzati) ai loro campi di input.
    Mappa che associa i parametri aggiuntivi (predefiniti o personalizzati) alle loro unità di misura.
    final com.vaadin.flow.component.orderedlayout.VerticalLayout
    Contenitore per i campi dei parametri aggiuntivi/personalizzati.
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per la Capnometria di fine espirazione (EtCO₂).
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per la Frequenza Cardiaca (FC).
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per la Frazione inspiratoria di Ossigeno (FiO₂).
    final com.vaadin.flow.component.orderedlayout.VerticalLayout
    Layout principale della sezione temporale, che contiene tutti i campi e le informazioni.
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per i Litri di Ossigeno (Litri O₂).
    final com.vaadin.flow.component.formlayout.FormLayout
    Layout che contiene i campi per i parametri medici base.
    final com.vaadin.flow.component.textfield.TextField
    Campo di input per la Pressione Arteriosa (PA) in formato "Sist/Diast".
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per la Frequenza Respiratoria (RR).
    final com.vaadin.flow.component.textfield.TextArea
    Area di testo per il ruolo del genitore, visibile solo in scenari pediatrici.
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per la Saturazione dell'Ossigeno (SpO₂).
    final com.vaadin.flow.component.textfield.NumberField
    Campo di input per la Temperatura Corporea (T), arrotondata a una cifra decimale.
    final com.vaadin.flow.component.textfield.IntegerField
    Campo per la navigazione condizionale al tempo successivo se la condizione è "NO".
    final com.vaadin.flow.component.textfield.IntegerField
    Campo per la navigazione condizionale al tempo successivo se la condizione è "SI".
    final int
    Numero identificativo del tempo (es. 0 per T0, 1 per T1, ...).
    final com.vaadin.flow.component.timepicker.TimePicker
    Selettore per il timer associato a questo tempo, utile per gestire la durata di azioni o attese.
  • Constructor Summary

    Constructors
    Constructor
    Description
    TimeSection(int timeNumber, ScenarioService scenarioService, List<TimeSection> timeSections, com.vaadin.flow.component.orderedlayout.VerticalLayout timeSectionsContainer, Integer scenarioId)
    Costruttore per creare una nuova sezione temporale.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    addCustomParameter(String key, String label, String unit)
    Aggiunge un parametro (predefinito o personalizzato) alla sezione temporale.
    Map<String,com.vaadin.flow.component.textfield.NumberField>
    Restituisce la mappa dei parametri aggiuntivi/personalizzati (chiave -> campo NumberField).
    com.vaadin.flow.component.orderedlayout.VerticalLayout
    Restituisce il layout principale (VerticalLayout) di questa sezione temporale.
    com.vaadin.flow.component.formlayout.FormLayout
    Restituisce il FormLayout che contiene i campi dei parametri medici base.
    int
    Restituisce il numero identificativo di questo tempo (0 per T0, 1 per T1, ...).
    void
    Nasconde il pulsante "Rimuovi Tempo" per questa sezione.
    Prepara i dati di questa sezione temporale per il salvataggio nel database.
    void
    Imposta il valore del campo Capnometria di fine espirazione (EtCO2) e lo rende non modificabile.
    void
    Imposta il valore del campo Frequenza Cardiaca (FC) e lo rende non modificabile.
    void
    Imposta il valore del campo Frazione inspiratoria di Ossigeno (FiO2) e lo rende non modificabile.
    void
    Imposta il valore del campo Litri di Ossigeno (Litri O2) e lo rende non modificabile.
    void
    Imposta il valore del campo Pressione Arteriosa (PA) e lo rende non modificabile.
    void
    Imposta il valore del campo Frequenza Respiratoria (RR) e lo rende non modificabile.
    void
    Imposta il valore del campo Saturazione dell'Ossigeno (SpO2) e lo rende non modificabile.
    void
    Imposta il valore del campo Temperatura Corporea (T) e lo rende non modificabile.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • timeNumber

      public final int timeNumber
      Numero identificativo del tempo (es. 0 per T0, 1 per T1, ...).
    • layout

      public final com.vaadin.flow.component.orderedlayout.VerticalLayout layout
      Layout principale della sezione temporale, che contiene tutti i campi e le informazioni.
    • timerPicker

      public final com.vaadin.flow.component.timepicker.TimePicker timerPicker
      Selettore per il timer associato a questo tempo, utile per gestire la durata di azioni o attese.
    • paField

      public final com.vaadin.flow.component.textfield.TextField paField
      Campo di input per la Pressione Arteriosa (PA) in formato "Sist/Diast".
    • fcField

      public final com.vaadin.flow.component.textfield.NumberField fcField
      Campo di input per la Frequenza Cardiaca (FC).
    • rrField

      public final com.vaadin.flow.component.textfield.NumberField rrField
      Campo di input per la Frequenza Respiratoria (RR).
    • tField

      public final com.vaadin.flow.component.textfield.NumberField tField
      Campo di input per la Temperatura Corporea (T), arrotondata a una cifra decimale.
    • spo2Field

      public final com.vaadin.flow.component.textfield.NumberField spo2Field
      Campo di input per la Saturazione dell'Ossigeno (SpO₂).
    • fio2Field

      public final com.vaadin.flow.component.textfield.NumberField fio2Field
      Campo di input per la Frazione inspiratoria di Ossigeno (FiO₂).
    • litriO2Field

      public final com.vaadin.flow.component.textfield.NumberField litriO2Field
      Campo di input per i Litri di Ossigeno (Litri O₂).
    • etco2Field

      public final com.vaadin.flow.component.textfield.NumberField etco2Field
      Campo di input per la Capnometria di fine espirazione (EtCO₂).
    • actionDetailsArea

      public final com.vaadin.flow.component.textfield.TextArea actionDetailsArea
      Area di testo per descrivere l'azione richiesta o l'evento scatenante per questo tempo.
    • timeIfYesField

      public final com.vaadin.flow.component.textfield.IntegerField timeIfYesField
      Campo per la navigazione condizionale al tempo successivo se la condizione è "SI".
    • timeIfNoField

      public final com.vaadin.flow.component.textfield.IntegerField timeIfNoField
      Campo per la navigazione condizionale al tempo successivo se la condizione è "NO".
    • additionalDetailsArea

      public final com.vaadin.flow.component.textfield.TextArea additionalDetailsArea
      Area di testo per ulteriori dettagli o note specifiche per questo tempo.
    • ruoloGenitoreArea

      public final com.vaadin.flow.component.textfield.TextArea ruoloGenitoreArea
      Area di testo per il ruolo del genitore, visibile solo in scenari pediatrici. Può contenere informazioni fornite dal genitore sul paziente.
    • medicalParamsForm

      public final com.vaadin.flow.component.formlayout.FormLayout medicalParamsForm
      Layout che contiene i campi per i parametri medici base.
    • customParamsContainer

      public final com.vaadin.flow.component.orderedlayout.VerticalLayout customParamsContainer
      Contenitore per i campi dei parametri aggiuntivi/personalizzati. Permette di aggiungere dinamicamente nuovi parametri con unità di misura specifiche.
    • customParameters

      public final Map<String,com.vaadin.flow.component.textfield.NumberField> customParameters
      Mappa che associa i parametri aggiuntivi (predefiniti o personalizzati) ai loro campi di input.
    • customParameterUnits

      public final Map<String,String> customParameterUnits
      Mappa che associa i parametri aggiuntivi (predefiniti o personalizzati) alle loro unità di misura.
    • customParameterLayouts

      public final Map<String,com.vaadin.flow.component.orderedlayout.HorizontalLayout> customParameterLayouts
      Mappa che associa i parametri aggiuntivi (predefiniti o personalizzati) ai loro layout di campo, inclusi i pulsanti per rimuoverli dinamicamente.
  • Constructor Details

    • TimeSection

      public TimeSection(int timeNumber, ScenarioService scenarioService, List<TimeSection> timeSections, com.vaadin.flow.component.orderedlayout.VerticalLayout timeSectionsContainer, Integer scenarioId)
      Costruttore per creare una nuova sezione temporale.
      Parameters:
      timeNumber - Il numero identificativo di questo tempo.
      scenarioService - Il servizio per la gestione dello scenario (usato per controllare tipo pediatrico).
      timeSections - La lista di tutte le sezioni temporali (per la rimozione).
      timeSectionsContainer - Il layout contenitore di tutte le sezioni (per la rimozione).
      scenarioId - L'ID dello scenario a cui appartiene questa sezione.
  • Method Details

    • getLayout

      public com.vaadin.flow.component.orderedlayout.VerticalLayout getLayout()
      Restituisce il layout principale (VerticalLayout) di questa sezione temporale.
      Returns:
      Il layout della sezione.
    • getTimeNumber

      public int getTimeNumber()
      Restituisce il numero identificativo di questo tempo (0 per T0, 1 per T1, ...).
      Returns:
      Il numero del tempo.
    • getMedicalParamsForm

      public com.vaadin.flow.component.formlayout.FormLayout getMedicalParamsForm()
      Restituisce il FormLayout che contiene i campi dei parametri medici base.
      Returns:
      Il FormLayout dei parametri medici.
    • getCustomParameters

      public Map<String,com.vaadin.flow.component.textfield.NumberField> getCustomParameters()
      Restituisce la mappa dei parametri aggiuntivi/personalizzati (chiave -> campo NumberField).
      Returns:
      La mappa dei campi dei parametri aggiuntivi.
    • hideRemoveButton

      public void hideRemoveButton()
      Nasconde il pulsante "Rimuovi Tempo" per questa sezione. Utile per la sezione T0 che non può essere rimossa.
    • addCustomParameter

      public void addCustomParameter(String key, String label, String unit)
      Aggiunge un parametro (predefinito o personalizzato) alla sezione temporale. Crea un campo numerico NumberField con un pulsante per rimuoverlo, e memorizza l'unità di misura associata.
      Parameters:
      key - La chiave identificativa del parametro (es. "PVC" o "CUSTOM_Nome_Parametro").
      label - L'etichetta completa da visualizzare per il campo (es. "Nome Parametro (unit)").
      unit - L'unità di misura (stringa) da associare a questo parametro per il salvataggio.
    • prepareDataForSave

      public Tempo prepareDataForSave()
      Prepara i dati di questa sezione temporale per il salvataggio nel database. Raccoglie i valori da tutti i campi dell'interfaccia utente (parametri medici e aggiuntivi), e li assembla in un oggetto Tempo.
      Returns:
      Un oggetto Tempo pronto per essere salvato, contenente tutti i dati della sezione.
    • setPaValue

      public void setPaValue(String value)
      Imposta il valore del campo Pressione Arteriosa (PA) e lo rende non modificabile.
      Parameters:
      value - Il valore PA da impostare (può essere null).
    • setFcValue

      public void setFcValue(Integer value)
      Imposta il valore del campo Frequenza Cardiaca (FC) e lo rende non modificabile.
      Parameters:
      value - Il valore FC da impostare (può essere null).
    • setRrValue

      public void setRrValue(Integer value)
      Imposta il valore del campo Frequenza Respiratoria (RR) e lo rende non modificabile.
      Parameters:
      value - Il valore RR da impostare (può essere null).
    • setTValue

      public void setTValue(Double value)
      Imposta il valore del campo Temperatura Corporea (T) e lo rende non modificabile. Il valore viene arrotondato a una cifra decimale.
      Parameters:
      value - Il valore T da impostare (può essere null).
    • setSpo2Value

      public void setSpo2Value(Integer value)
      Imposta il valore del campo Saturazione dell'Ossigeno (SpO2) e lo rende non modificabile.
      Parameters:
      value - Il valore SpO2 da impostare (può essere null).
    • setFio2Value

      public void setFio2Value(Integer value)
      Imposta il valore del campo Frazione inspiratoria di Ossigeno (FiO2) e lo rende non modificabile.
      Parameters:
      value - Il valore FiO2 da impostare (può essere null).
    • setLitriO2Value

      public void setLitriO2Value(Double value)
      Imposta il valore del campo Litri di Ossigeno (Litri O2) e lo rende non modificabile.
      Parameters:
      value - Il valore Litri O2 da impostare (può essere null).
    • setEtco2Value

      public void setEtco2Value(Integer value)
      Imposta il valore del campo Capnometria di fine espirazione (EtCO2) e lo rende non modificabile.
      Parameters:
      value - Il valore EtCO2 da impostare (può essere null).