123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- #include "stdafx.h"
- #include "DIOS.Dev.CollimatorMoudle.hpp"
- #include "DIOSDICOMInfo.h"
- using namespace DIOS::Dev;
- using namespace DIOS::Dev::Detail::Collimator;
- namespace nsColli = DIOS::Dev::Detail::Collimator;
- nsColli::CollimatorDevice::CollimatorDevice(std::shared_ptr <DIOS::Dev::IOEventCenter> EventCenter) :super(EventCenter)
- {
- m_EventCenter = EventCenter;
- m_nXSize = 0;
- m_nYSize = 0;
- m_nFilter = 0;
- m_nSID = 0;
- m_nAngle = 0;
- m_nMode = -1;
- }
- nsColli::CollimatorDevice::~CollimatorDevice()
- {
- }
- void nsColli::CollimatorDevice::FireNotify(string key, int value)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", value);
- std::string str = szInfo;
- m_EventCenter->OnNotify(1, key, str);//(int)ATTRACTION_SET 2
- }
- void nsColli::CollimatorDevice::FireNotify(string key, string value)
- {
- std::string str = value;
- m_EventCenter->OnNotify(1, key, str);//(int)ATTRACTION_SET 2
- }
- void nsColli::CollimatorDevice::Register()
- {
- auto Disp = &Dispatch;
- Disp->Action.Push("SetCollimatorSize", this, &nsColli::CollimatorDevice::JSSetCollimatorSize);
- Disp->Get.Push("Mode", this, &nsColli::CollimatorDevice::JSGetCollimatorMode);
- }
- bool nsColli::CollimatorDevice::Prepare()
- {
- Register();
- return true;
- }
- std::string nsColli::CollimatorDevice::GetGUID() const
- {
- return CollimatorUnitType;
- }
- RET_STATUS CollimatorDevice::JSSetStudyInfo(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- return SetStudyInfo(json);
- }
- RET_STATUS CollimatorDevice::JSSetTechParamsInfo(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- return SetTechParamsInfo(json);
- }
- RET_STATUS CollimatorDevice::JSSetCollimatorSize(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- int xsize, ysize;
- xsize = json[0];
- ysize = json[1];
- return SetCollimatorSize(xsize, ysize);
- }
- RET_STATUS CollimatorDevice::JSSetCollimatorSID(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- int nParam = json[0];
- return SetCollimatorSID(nParam);
- }
- RET_STATUS CollimatorDevice::JSSetCollimatorFilter(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- int nParam = json[0];
- return SetCollimatorFilter(nParam);
- }
- RET_STATUS CollimatorDevice::JSSetCollimatorAngle(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- int nParam = json[0];
- return SetCollimatorAngle(nParam);
- }
- RET_STATUS CollimatorDevice::JSSetCollimatorMode(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- int nParam = json[0];
- return SetCollimatorMode(nParam);
- }
- RET_STATUS CollimatorDevice::JSSetCollimatorLight(std::string in, std::string& out)
- {
- ResDataObject json;
- json.decode(in.c_str());
- int nParam = json[0];
- return SetCollimatorLight(nParam);
- }
- RET_STATUS CollimatorDevice::JSGetCollimatorXSize(std::string& out)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", m_nXSize);
- out = szInfo;
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::JSGetCollimatorYSize(std::string& out)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", m_nYSize);
- out = szInfo;
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::JSGetCollimatorSID(std::string& out)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", m_nSID);
- out = szInfo;
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::JSGetCollimatorFilter(std::string& out)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", m_nFilter);
- out = szInfo;
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::JSGetCollimatorAngle(std::string& out)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", m_nAngle);
- out = szInfo;
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::JSGetCollimatorMode(std::string& out)
- {
- char szInfo[64] = { 0 };
- sprintf_s(szInfo, "%d", m_nMode);
- out = szInfo;
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetCollimatorSize(int xsize, int ysize)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetCollimatorSID(int sid)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetCollimatorFilter(int pParams)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetCollimatorAngle(int pParams)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetCollimatorMode(int Param)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetCollimatorLight(int Param)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- int CollimatorDevice::GetCollimatorXSize()
- {
- return m_nXSize;
- }
- int CollimatorDevice::GetCollimatorYSize()
- {
- return m_nYSize;
- }
- int CollimatorDevice::GetCollimatorSID()
- {
- return m_nSID;
- }
- int CollimatorDevice::GetCollimatorFilter()
- {
- return m_nFilter;
- }
- int CollimatorDevice::GetCollimatorAngle()
- {
- return m_nAngle;
- }
- int CollimatorDevice::GetCollimatorMode()
- {
- return m_nMode;
- }
- RET_STATUS CollimatorDevice::UpdateCollimatorXSize(int Param)
- {
- if (m_nXSize != Param)
- {
- m_nXSize = Param;
- FireNotify("XSize", Param);
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::UpdateCollimatorYSize(int Param)
- {
- if (m_nYSize != Param)
- {
- m_nYSize = Param;
- FireNotify("YSize", Param);
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::UpdateCollimatorSID(int Param)
- {
- if (m_nSID != Param)
- {
- m_nSID = Param;
- FireNotify("SID", Param);
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::UpdateCollimatorAngle(int Param)
- {
- if (m_nAngle != Param)
- {
- m_nAngle = Param;
- FireNotify("Angle", Param);
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::UpdateCollimatorFilter(int Param)
- {
- if (m_nFilter != Param)
- {
- m_nFilter = Param;
- FireNotify("Filter", Param);
- }
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::UpdateCollimatorMode(int Param)
- {
- if (m_nMode != Param)
- {
- m_nMode = Param;
- FireNotify("Mode", Param);
- }
- return RET_STATUS::RET_SUCCEED;
- }
- void CollimatorDevice::ReportMessageToDicom()
- {
- FireNotify("XSize", m_nXSize);
- FireNotify("YSize", m_nYSize);
- FireNotify("SID", m_nSID);
- FireNotify("Angle", m_nAngle);
- FireNotify("Filter", m_nFilter);
- FireNotify("Mode", m_nMode);
- char strXY[48]{0};
- sprintf(strXY,"%03dx%03d", m_nXSize, m_nYSize);
- FireNotify("XYSize", strXY);
- }
- RET_STATUS CollimatorDevice::SetStudyInfo(ResDataObject & pParam)
- {
- return RET_STATUS::RET_SUCCEED;
- }
- RET_STATUS CollimatorDevice::SetTechParamsInfo(ResDataObject & pParam)
- {
- TECHPARAM_INFO info;
- info.SetVal(pParam.encode());
- string strcollimatorwidth = info.m_CollimatorWidth;
- string strcollimatorheight = info.m_CollimatorHeight;
- string strcollimatorfilter = info.m_CollimatorFilter;
- DWORD Width = 0;
- DWORD Height = 0;
- DWORD dwFilter = 0;
- if (strcollimatorwidth.find("IN") != string::npos)
- {
- Width = (DWORD)(atof(strcollimatorwidth.substr(0, strcollimatorwidth.size() - 2).c_str()) * 2.54);
- }
- else
- {
- Width = (DWORD)(atoi(strcollimatorwidth.substr(0, strcollimatorwidth.size() - 2).c_str()));
- }
- if (strcollimatorheight.find("IN") != string::npos)
- {
- Height = (DWORD)(atof(strcollimatorheight.substr(0, strcollimatorheight.size() - 2).c_str()) * 2.54);
- }
- else
- {
- Height = (DWORD)(atoi(strcollimatorheight.substr(0, strcollimatorheight.size() - 2).c_str()));
- }
- if (Width != 0 && Height != 0)
- {
- SetCollimatorSize(Width, Height);
- }
- dwFilter = (DWORD)atoi(strcollimatorfilter.c_str());
- if (dwFilter >= 0)
- {
- SetCollimatorFilter(dwFilter);
- }
- return RET_STATUS::RET_SUCCEED;
- }
|