#pragma once #include #include "ResDataObject.h" #include "CCOS.Dev.IODevice.hpp" #include "CCOS.Dev.IODevice.Detail.hpp" namespace CCOS::Dev::Detail::Collimator { //----------------------------------------------------------------------------- // Collimator //----------------------------------------------------------------------------- namespace nsDev = CCOS::Dev; static const char* CollimatorUnitType = "{566EC9F1-CE5A-4B31-9D2A-E9E80B4CA0CC}"; class CollimatorDevice : public IODeviceDetail { using super = IODeviceDetail; void FireNotify(string key, unsigned short value); void FireNotify(string key, string value); protected: std::shared_ptr m_EventCenter; unsigned short m_nXSize; unsigned short m_nYSize; unsigned short m_nFilter; unsigned short m_nSID; unsigned short m_nAngle; unsigned short m_nMode; 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(unsigned short xsize, unsigned short ysize); virtual RET_STATUS SetCollimatorSID(unsigned short sid); virtual RET_STATUS SetCollimatorFilter(unsigned short pParams); virtual RET_STATUS SetCollimatorAngle(unsigned short pParams); virtual RET_STATUS SetCollimatorMode(unsigned short pParams); virtual RET_STATUS SetCollimatorLight(unsigned short pParams); RET_STATUS UpdateCollimatorXSize(unsigned short Param); RET_STATUS UpdateCollimatorYSize(unsigned short Param); RET_STATUS UpdateCollimatorSID(unsigned short Param); RET_STATUS UpdateCollimatorAngle(unsigned short Param); RET_STATUS UpdateCollimatorFilter(unsigned short Param); RET_STATUS UpdateCollimatorMode(unsigned short Param); void ReportMessageToDicom(); }; }