#pragma once #include #include #include "ResDataObject.h" #include "DIOS.Dev.IODevice.hpp" #include "DIOS.Dev.IODevice.Detail.hpp" namespace DIOS::Dev::Detail::Collimator { //----------------------------------------------------------------------------- // Collimator //----------------------------------------------------------------------------- namespace nsDev = DIOS::Dev; static const char* CollimatorUnitType = "{566EC9F1-CE5A-4B31-9D2A-E9E80B4CA0CC}"; class CollimatorDevice : public IODeviceDetail { using super = IODeviceDetail; int m_nXSize; int m_nYSize; int m_nFilter; int m_nSID; int m_nAngle; int m_nMode; void FireNotify(string key, int value); void FireNotify(string key, string value); protected: std::shared_ptr m_EventCenter; public: CollimatorDevice(std::shared_ptr EventCenter); ~CollimatorDevice(); virtual std::string GetGUID() const override; virtual bool Prepare(); virtual void Register(); RET_STATUS JSSetStudyInfo(std::string in, std::string& out); RET_STATUS JSSetTechParamsInfo(std::string in, std::string& out); RET_STATUS JSSetCollimatorSize(std::string in, std::string& out); RET_STATUS JSSetCollimatorSID(std::string in, std::string& out); RET_STATUS JSSetCollimatorFilter(std::string in, std::string& out); RET_STATUS JSSetCollimatorAngle(std::string in, std::string& out); RET_STATUS JSSetCollimatorMode(std::string in, std::string& out); RET_STATUS JSSetCollimatorLight(std::string in, std::string& out); RET_STATUS JSGetCollimatorXSize(std::string& out); RET_STATUS JSGetCollimatorYSize(std::string& out); RET_STATUS JSGetCollimatorSID(std::string& out); RET_STATUS JSGetCollimatorFilter(std::string& out); RET_STATUS JSGetCollimatorAngle(std::string& out); RET_STATUS JSGetCollimatorMode(std::string& out); //RET_STATUS JSGetCollimatorLight(std::string& out); virtual RET_STATUS SetStudyInfo(ResDataObject& pParam); virtual RET_STATUS SetTechParamsInfo(ResDataObject& pParam); virtual RET_STATUS SetCollimatorSize(int xsize, int ysize); virtual RET_STATUS SetCollimatorSID(int sid); virtual RET_STATUS SetCollimatorFilter(int pParams); virtual RET_STATUS SetCollimatorAngle(int pParams); virtual RET_STATUS SetCollimatorMode(int pParams); virtual RET_STATUS SetCollimatorLight(int pParams); int GetCollimatorAngle(); int GetCollimatorXSize(); int GetCollimatorYSize(); int GetCollimatorSID(); int GetCollimatorFilter(); int GetCollimatorMode(); RET_STATUS UpdateCollimatorXSize(int Param); RET_STATUS UpdateCollimatorYSize(int Param); RET_STATUS UpdateCollimatorSID(int Param); RET_STATUS UpdateCollimatorAngle(int Param); RET_STATUS UpdateCollimatorFilter(int Param); RET_STATUS UpdateCollimatorMode(int Param); void ReportMessageToDicom(); }; }