#pragma once #include #include #include "ResDataObject.h" #include "DIOS.Dev.IODevice.hpp" #include "DIOS.Dev.IODevice.Detail.hpp" namespace DIOS::Dev::Detail::Mechanical { //----------------------------------------------------------------------------- // Collimator //----------------------------------------------------------------------------- namespace nsDev = DIOS::Dev; static const char* MechanicalUnitType = "{A6C288B9-8C4F-3A6C-9C5F-12345A0F7284}"; class MechanicalDevice : public IODeviceDetail { using super = IODeviceDetail; unsigned int m_Grid; unsigned int m_Mammo_AE;//AEC unsigned int m_Mammo_FT;//filter unsigned int m_Mammo_PressureState;//thickness unsigned int m_Mammo_CompPressureDEC;//自动释放设定 unsigned int m_Mammo_Depress; float m_Mammo_MechAngle; float m_Mammo_MechSecAngle; float m_Mammo_MechHeight; float m_Mammo_PressureValue;//压迫值 float m_Mammo_AGD; float m_Mammo_MAG; unsigned int m_InvalidPressureThreshold; //无效压力闯值 //压迫板信息(主要是尺寸,目前不确定) string m_Mammo_CompressPaddle; void FireNotify(string key, unsigned int value); void FireNotify(string key, float value); void FireNotify(string key, string value); protected: std::shared_ptr m_EventCenter; public: MechanicalDevice(std::shared_ptr EventCenter); ~MechanicalDevice(); virtual std::string GetGUID() const override; virtual bool Prepare(); virtual void Register(); RET_STATUS JSSetGrid(std::string in, std::string& out); RET_STATUS JSSetAutoTracking(std::string in, std::string& out); RET_STATUS JSGetTomoResults(std::string in, std::string& out); RET_STATUS JSGetGrid(std::string& out); RET_STATUS JSGetMammo_AE(std::string& out); RET_STATUS JSGetMammo_FT(std::string& out); RET_STATUS JSGetMammo_PressureState(std::string& out); RET_STATUS JSGetMammo_CompPressureDEC(std::string& out); RET_STATUS JSGetMammo_Depress(std::string& out); RET_STATUS JSGetMammo_MechAngle(std::string& out); RET_STATUS JSGetMammo_MechSecAngle(std::string& out); RET_STATUS JSGetMammo_MechHeight(std::string& out); RET_STATUS JSGetMammo_PressureValue(std::string& out); RET_STATUS JSGetMammo_AGD(std::string& out); RET_STATUS JSGetMammo_MAG(std::string& out); RET_STATUS JSGetMammo_CompressPaddle(std::string& out); virtual RET_STATUS GetTomoResults(ResDataObject& resultAngle, ResDataObject& resultHeight); virtual RET_STATUS SetGrid(unsigned int GridType); virtual RET_STATUS SetAutoTracking(unsigned int nAutoTracking); void UpdateGrid(unsigned int Value); void UpdateMammo_AE(unsigned int Value); void UpdateMammo_FT(unsigned int Value); void UpdateMammo_PressureState(unsigned int Value); void UpdateMammo_CompPressureDEC(unsigned int Value); void UpdateMammo_Depress(unsigned int Value); void UpdateMammo_MechAngle(float Value); void UpdateMammo_MechSecAngle(float Value); void UpdateMammo_MechHeight(float Value); void UpdateMammo_PressureValue(float Value); void UpdateMammo_AGD(float Value); void UpdateMammo_MAG(float Value); void UpdateMammo_CompressPaddle(std::string Value); void ReportMessageToDicom(); void UpdateMammo_PressureErrorValue(unsigned int Value); unsigned int GetGrid(); unsigned int GetMammo_AE(); unsigned int GetMammo_FT(); unsigned int GetMammo_PressureState(); unsigned int GetMammo_CompPressureDEC(); unsigned int GetMammo_Depress(); float GetMammo_MechAngle(); float GetMammo_MechHeight(); float GetMammo_PressureValue(); float GetMammo_AGD(); float GetMammo_MAG(); }; }