/*! * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * \copyright * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * \file VTreatmentVitals.h * \author (last) Behrouz NematiPour * \author (original) Behrouz NematiPour * \date (last) 22-Jun-2021 * \date (original) 22-Jun-2021 * */ #pragma once #include // Project #include "main.h" // Doxygen : don't remove #include "VAdjustmentResponseBase.h" namespace View { /*! * \brief The VTreatmentVitals class * \details View for Model's Data representation. * * \sa Model::TreatmentLogAvrgeData * */ class VTreatmentVitals : public VAdjustmentResponseBase { Q_OBJECT // friends friend class ::tst_views; int _timerId = 0; int _timerCounter = 0; // coco begin validated: // The property adjustment_Triggered has to be always true // and to always trigger the change event to work as a notifier for GUI // has been manually tested that it works perfectly fine TRIGGER( bool , adjustment , 0) // coco end // Vitals data // formatting PROPERTY( QString , datetimeFormat ,"yyyy/MMM/dd - HH:mm") // constant range variables / units / ... CONSTANT( quint16 , systolicMin , 60) CONSTANT( quint16 , systolicMax , 250) CONSTANT( quint16 , diastolicMin , 40) CONSTANT( quint16 , diastolicMax , 200) CONSTANT( quint16 , heartRateMin , 40) CONSTANT( quint16 , heartRateMax , 180) // timer PROPERTY( bool , enabled , 0) // enable the vital screen timer PROPERTY( quint8 , interval , 0) // show the vital screen in min PROPERTY( quint8 , timeout , 1) // close the vital screen in min // timestamp PROPERTY( quint64 , epoch , 0) PROPERTY( QString , lastRead , "") // vitals PROPERTY( quint32 , systolic , 0) PROPERTY( quint32 , diastolic , 0) PROPERTY( quint32 , heartRate , 0) // placeholder for later connection and receiving data from BtCuff [Not used Yet] struct VitalsData_PlaceHolder { quint32 mAccepted = 0; quint32 mReason = 0; quint32 mSystolic = 0; quint32 mDiastolic = 0; quint32 mHeartRate = 0; }; typedef VitalsData_PlaceHolder AdjustVitalsResposeData; VIEW_DEC_CLASS_ADJUSTMENT(VTreatmentVitals, AdjustVitalsResposeData) void update (quint32 vSystolic, quint32 vDiastolic, quint32 vHeartRate); void treatmentLog(); // timer void start(); void stop (); void timerEvent(QTimerEvent *) override; private slots: void onTimerChanged(); public slots: // vitals void doConfirm (quint32 vSystolic, quint32 vDiastolic, quint32 vHeartRate); void doSkip (); void doTimeout (); void doReset (); signals: /*! * \brief didAdjustment * \details the notification signal to send the user's Request * \param vData - data model includes request information */ void didAdjustment(const AdjustHDAlarmVolumeRequestData &vData); /*! * \brief didTrigger * \details the signal to trigger the Gui to notify the user for the vitals measurement */ void didTrigger(); /*! * \brief didTrigger * \details the signal to trigger the Gui to close the vitals measurement screen on no user interaction */ void didTimeout(); }; }