• English
  • Français (French)

Alert plugin specifications

General

  • The alert plugin is an alert/notification complete manager for the FreeMedForms project.
  • The alert plugin will allow to create alerts, notification using rules & conditions.
  • The alert plugin will provide a complete UI for users to add/edit/remove/share alerts/notifications.
  • And will provide a complete C++ interface for any other plugin to easily manage alerts/notifications.
  • Alerts can be defined using a XML content and can be exported to XML

Some words about the code

  • C++/Qt + (script engine, for the rules processing ?)
  • Database will be called “alerts”
  • Plugin is called “Alerts” and will be stored in /trunk/plugins/alertsplugin
  • A AlertCore
    • Manages
      • all singleton of the plugin
      • all configuration of internal classes
      • connection to Core::ICore::instance()
    • Allow
      • any plugins to register new alerts/notifications
  • A AlertBase (&& AlertBaseQuery)
    • Singleton in AlertCore
    • Inherits of Utils::Database (code to be done by Eric)
    • Created and initialized by AlertCore
    • Manages all database access && creation && connection
  • A AlertManager
    • Singleton in AlertCore
    • Manage alerts/notifications
  • A AlertItem
    • inert data class for alerts/notification
    • with a XML reader/writer
    • Provides
      • 1 identification (unique id)
      • 1 category uuid (the application will manage the classification of alerts)
      • 1 message
      • 1 color scheme (foreground, background), icon, background image… ⇒ this should be defined by default according to the ViewType, but users can define their own color schemes
      • 1 priority
      • 1 view type (see below)
      • 1 content type (see below)
      • 1 condition type (see below)
      • N timings
        • date start & end
        • cycling or not
      • N validations
        • date of validation
        • user uuid
        • isOverriden
        • user comment
        • validated uuid
      • N scripts (javascript): compute how to alert and what to alert
        • ScriptType: BeforeAlert, ForAlert, AfterAlert
        • ScriptContent
      • 1 patient profile:
        • when an alert is related to all patients, the patient profile defines the params to use for the patient selection
      • widgets viewer ?
    • Accessible by any plugins
  • Xml code for alerts

Defining the object IAlert

ViewType of alert

  • This enum will represent the type of view to use for the alert
    • dynamic (blocking dialog)
    • static alerts:
      • We need to define the placeholders of static alerts in the GUI
      • StatusBarAlert: alert is shown in the status bar
      • WidgetInherited: alert is shown in a specific (IAlertPlaceHolder widget) ?
      • NotificationArea: alert is shown usnig the OS notification system

ContentType of alert

  • Define the different type of alerts
    • ApplicationProblem: notify user an application related alert (database not available…)
    • PatientCondition: notify user a patient condition alert (prevention alerts, drug safety alerts…)
    • UserNotification: alerts/messages between users
    • AgendaNotification

Priority of alert

  • Define the level of severity of an alert
    • High
    • Medium
    • Low

Timing of alert

  • DateTime of the alert start/end
  • Code cycling alerts (eg: every quarter alert user to backup its databases)

ConditionType

  • At application startup → check alerts/notifications related to the connected user
  • When user changed → check alerts/notifications related to the connected user
  • When patient changed → check alerts/notifications related to the selected patient
  • When formUid is modified (script)

draft

  • Find all alerts related to one category or to one patient/user

TODOs

  • des alertes automatiques accompagnent les formulaires XML (alertes de prévention par exemple)
  • scripts dans les alertes (par exemple: alert si âge dans le range(…, …) ou que pour femmes…)
  • une alerte “pour tout patient” qui est validée n'est validée que pour le patient en cours
  • les alertes cycliques, une fois validées, il faut les revalider lorsqu'elles entrent dans un nouveau cycle (ex: tous les 5 ans → faut la valider tous les 5 ans à partir de la date de départ enregistrée)
  • gestion des droits utilisateur pour la validation (seulement les médecins peuvent valider, les secrétaires…)
  • Que faire des alertes expirées non validées par l'utilisateur ???
  • Blocking Alert Dialog: avec plusieurs alertes, certaines taggées “MustBeRead” → dialogue doit s'assurer et/ou forcer l'utilisateur à lire l'alerte (mettre un timer sur les labels des alertes et calculer le temps d'affichage à l'écran)
en/drafts/alertplugin/description.txt · Dernière modification: 2012/07/17 00:35 par Eric Maeker, MD
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki FreeMedForms © Eric Maeker, MD