/*! * * Copyright (c) 2020-2024 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 VView.h * \author (last) Dara Navaei * \date (last) 28-Feb-2024 * \author (original) Behrouz NematiPour * \date (original) 26-Aug-2020 * */ #pragma once /*! * \page MessageView Denali Message View usage instruction in QML * \details This comment explains how to use a Denali Message populated data in Denali UI Application \verbatim 1 - Look at the message structure in the "message list.xlsx" 2 - View Implementation : Implement a view like VDDPressures by copy/paste the closest model .h/.cpp file and adding it to project and modify to fit the new model. 3 - Register View : - Add the required lines like the other models in the VView.h file. - Also add the #include in the GuiGlobals.cpp 4 - Usage in UI : Import : import VDDPressures 0.1; Instantiate : VDDPressures { id: vDDPressures } Access : value: vDDPressures.drainInletPSI \endverbatim */ //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// // The child declaration in header #define VIEW_DEC_CLASS(vCLASS) \ private: \ /*! \brief Connection Initializer \details All the class signal/slot connections are defined here. */\ void initConnections(); \ public: \ /*! \brief Class Constructor \details Only calls initConnections to initialize the signal/slot connection(s). \param parent - The QObject parent pointer which is passed as nullptr and is not set. */\ explicit vCLASS(QObject *parent = nullptr); \ //--------------------------------------------------------------------------------// #define VIEW_DEC_CLASS_EX(vCLASS, vPARENT) \ private: \ /*! \brief Connection Initializer \details All the class signal/slot connections are defined here. */\ void initConnections(); \ public: \ /*! \brief Class Constructor \details Only calls initConnections to initialize the signal/slot connection(s). \param parent - The QObject parent pointer which is passed as nullptr and is not set. */\ explicit vCLASS(vPARENT *parent = nullptr); \ //--------------------------------------------------------------------------------// #define VIEW_DEC_SLOT(vDATATYPE) \ private Q_SLOTS: \ /*! \brief Model data received message handler. \details When signal received this method is called to update the view properties. \param vData - Model data */\ void onActionReceive (const vDATATYPE &vData); \ //--------------------------------------------------------------------------------// #define VIEW_DEC(vCLASS, vDATATYPE) \ VIEW_DEC_CLASS(vCLASS) \ VIEW_DEC_SLOT(vDATATYPE) \ //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// // The child definition in cpp #define VIEW_DEF_CLASS(vCLASS) \ using namespace View; \ vCLASS::vCLASS(QObject *parent) : QObject(parent) { \ initConnections(); \ } \ //--------------------------------------------------------------------------------// #define VIEW_DEF_CLASS_EX(vCLASS, vPARENT) \ using namespace View; \ vCLASS::vCLASS(vPARENT *parent) : vPARENT(parent) { \ initConnections(); \ } \ //--------------------------------------------------------------------------------// #define VIEW_DEF_CONNECTION(vCLASS, vDATATYPE) \ void vCLASS::initConnections() { \ ACTION_RECEIVE_BRIDGE_CONNECTION( \ Gui::_GuiController, vDATATYPE); \ } \ //--------------------------------------------------------------------------------// #define VIEW_DEF(vCLASS, vDATATYPE) \ VIEW_DEF_CLASS(vCLASS) \ VIEW_DEF_CONNECTION(vCLASS, vDATATYPE) \ //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// // The Adjustment child DEFinition in cpp and DEClaration in .h #define VIEW_DEC_CLASS_ADJUSTMENT(vCLASS, vDATATYPE)\ VIEW_DEC_CLASS(vCLASS) \ VIEW_DEC_SLOT(vDATATYPE) \ //--------------------------------------------------------------------------------// #define VIEW_DEF_CLASS_ADJUSTMENT(vCLASS) \ using namespace View; \ vCLASS::vCLASS(QObject *parent) : VAdjustmentResponseBase(parent) { \ initConnections(); \ } \ //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// //--------- Please add the view type to the lists below to register them ---------// //--------------------------------------------------------------------------------// //--------------------------------------------------------------------------------// #define REGISTER_VIEW_TYPES \ using namespace View; \ REGISTER_TYPE( VGeneralEvent ) \ /* CONFIRM */ \ REGISTER_TYPE( VConfirm ) \ /* POST */ \ REGISTER_TYPE( VHDPOSTData ) \ REGISTER_TYPE( VDGPOSTData ) \ /* Device */ \ REGISTER_TYPE( VDevice ) \ /* Settings */ \ REGISTER_TYPE( VSettings ) \ REGISTER_TYPE( VLocalization ) \ REGISTER_TYPE( VAdjustmentVersions ) \ REGISTER_TYPE( VAdjustmentServiceMode ) \ REGISTER_TYPE( VAdjustmentServiceDates ) \ REGISTER_TYPE( VDateTime ) \ REGISTER_TYPE( VAdjustmentAlarmVolume ) \ REGISTER_TYPE( VBluetooth ) \ REGISTER_TYPE( VDuetRoWaterDG ) \ REGISTER_TYPE( VCloudSync ) \ REGISTER_TYPE( VHDUsageInfo ) \ REGISTER_TYPE( VAdjustmentInstitutionalRecord ) \ /* Alarm */ \ REGISTER_TYPE( VAlarmStatus ) \ REGISTER_TYPE( VAlarmActiveList ) \ /* Treatment Common */ \ REGISTER_TYPE( VTreatmentVitals ) \ /* Data - States */ \ REGISTER_TYPE( VTDOpMode ) \ REGISTER_TYPE( VPreTreatmentStates ) \ REGISTER_TYPE( VTDTreatmentStates ) \ REGISTER_TYPE( VPostTreatmentStates ) \ /* In-Treatment - Data */ \ REGISTER_TYPE( VTreatmentBloodFlow ) \ REGISTER_TYPE( VTreatmentDialysateFlow ) \ REGISTER_TYPE( VTreatmentUltrafiltration ) \ REGISTER_TYPE( VTreatmentPressureOcclusion ) \ REGISTER_TYPE( VTreatmentTime ) \ REGISTER_TYPE( VTreatmentParametersSetPoint ) \ REGISTER_TYPE( VTreatmentRanges ) \ REGISTER_TYPE( VTreatmentSaline ) \ REGISTER_TYPE( VTreatmentHeparin ) \ /* End-Treatment */ \ REGISTER_TYPE( VTreatmentRinseback ) \ REGISTER_TYPE( VTreatmentRecirculate ) \ REGISTER_TYPE( VTreatmentBloodPrime ) \ REGISTER_TYPE( VTreatmentStop ) \ /* Device - Data */ \ REGISTER_TYPE( VHDAccelerometer ) \ REGISTER_TYPE( VHDSyringePump ) \ REGISTER_TYPE( VHDBloodLeak ) \ REGISTER_TYPE( VTDAirBubble ) \ REGISTER_TYPE( VTDAirPump ) \ REGISTER_TYPE( VTDAirTrap ) \ REGISTER_TYPE( VTDVoltage ) \ REGISTER_TYPE( VTDValves ) \ REGISTER_TYPE( VTDBattery ) \ REGISTER_TYPE( VTDSwitches ) \ REGISTER_TYPE( VTDEjector ) \ REGISTER_TYPE( VTDTemperature ) \ /* DD - Data */ \ REGISTER_TYPE( VDGDrainPump ) \ REGISTER_TYPE( VDDHeaters ) \ REGISTER_TYPE( VDGLoadCellReadings ) \ REGISTER_TYPE( VDGOperationMode ) \ REGISTER_TYPE( VDDPressures ) \ REGISTER_TYPE( VDGROPump ) \ REGISTER_TYPE( VDGReservoir ) \ REGISTER_TYPE( VDDConcentratePump ) \ REGISTER_TYPE( VDDTemperatures ) \ REGISTER_TYPE( VDDDialysatePump ) \ REGISTER_TYPE( VDDValvesStates ) \ REGISTER_TYPE( VDGAccelerometer ) \ REGISTER_TYPE( VDDConductivity ) \ REGISTER_TYPE( VDDGenDialysate ) \ REGISTER_TYPE( VDDLevel ) \ REGISTER_TYPE( VDDBloodLeak ) \ /* FP - Data */ \ REGISTER_TYPE( VFPValvesStates ) \ REGISTER_TYPE( VFPROPump ) \ REGISTER_TYPE( VFPPressures ) \ REGISTER_TYPE( VFPLevel ) \ REGISTER_TYPE( VFPFlow ) \ REGISTER_TYPE( VFPConductivity ) \ REGISTER_TYPE( VFPTemperature ) \ REGISTER_TYPE( VFPBoostPump ) \ /* Pre-Treatment */ \ REGISTER_TYPE( VPreTreatmentAdjustmentInitTreatment ) \ REGISTER_TYPE( VDGFilterFlush ) \ REGISTER_TYPE( VPreTreatmentAdjustmentWaterSample ) \ REGISTER_TYPE( VPreTreatmentAdjustmentConsumablesConfirm ) \ REGISTER_TYPE( VPreTreatmentSelfTestNoCartridge ) \ REGISTER_TYPE( VPreTreatmentAdjustmentDisposablesConfirm ) \ REGISTER_TYPE( VPreTreatmentSelfTestDry ) \ REGISTER_TYPE( VPreTreatmentAdjustmentDisposablesPrime ) \ REGISTER_TYPE( VPreTreatmentDisposablesPrime ) \ REGISTER_TYPE( VPreTreatmentAdjustmentPatientConnectionBegin ) \ REGISTER_TYPE( VPreTreatmentAdjustmentUltrafiltrationInit ) \ REGISTER_TYPE( VPreTreatmentAdjustmentPatientConnectionConfirm ) \ REGISTER_TYPE( VPreTreatmentAdjustmentStartTreatment ) \ /* In-Treatment */ \ REGISTER_TYPE( VTreatmentAdjustmentDuration ) \ REGISTER_TYPE( VTreatmentAdjustmentFlows ) \ REGISTER_TYPE( VTreatmentAdjustmentUltrafiltrationState ) \ REGISTER_TYPE( VTreatmentAdjustmentUltrafiltrationEdit ) \ REGISTER_TYPE( VTreatmentAdjustmentUltrafiltrationConfirm ) \ REGISTER_TYPE( VTreatmentAdjustmentSaline ) \ REGISTER_TYPE( VTreatmentAdjustmentVitals ) \ REGISTER_TYPE( VTreatmentAdjustmentHeparin ) \ REGISTER_TYPE( VTreatmentAdjustmentRinseback ) \ REGISTER_TYPE( VTreatmentAdjustmentRecirculate ) \ REGISTER_TYPE( VTreatmentAdjustmentEnd ) \ REGISTER_TYPE( VTreatmentAdjustmentPressuresLimits ) \ REGISTER_TYPE( VTreatmentCreate ) \ /* Post-Treatment */ \ REGISTER_TYPE( VPostTreatmentAdjustmentPatientDisconnectionConfirm ) \ REGISTER_TYPE( VPostTreatmentAdjustmentDisposablesRemovalConfirm ) \ REGISTER_TYPE( VPostTreatmentAdjustmentTreatmentLog ) \ /* Disinfection */ \ REGISTER_TYPE( VDisinfectAdjustDisinfect ) \ REGISTER_TYPE( VAdjustDGCleaningUsage ) \ //--------------------------------------------------------------------------------//