DIOS.Dev.CollimatorMoudle.hpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #pragma once
  2. #include <string>
  3. #include <minwindef.h>
  4. #include "ResDataObject.h"
  5. #include "DIOS.Dev.IODevice.hpp"
  6. #include "DIOS.Dev.IODevice.Detail.hpp"
  7. namespace DIOS::Dev::Detail::Collimator
  8. {
  9. //-----------------------------------------------------------------------------
  10. // Collimator
  11. //-----------------------------------------------------------------------------
  12. namespace nsDev = DIOS::Dev;
  13. static const char* CollimatorUnitType = "{566EC9F1-CE5A-4B31-9D2A-E9E80B4CA0CC}";
  14. class CollimatorDevice : public IODeviceDetail
  15. {
  16. using super = IODeviceDetail;
  17. int m_nXSize;
  18. int m_nYSize;
  19. int m_nFilter;
  20. int m_nSID;
  21. int m_nAngle;
  22. int m_nMode;
  23. void FireNotify(string key, int value);
  24. void FireNotify(string key, string value);
  25. protected:
  26. std::shared_ptr <DIOS::Dev::IOEventCenter> m_EventCenter;
  27. public:
  28. CollimatorDevice(std::shared_ptr <DIOS::Dev::IOEventCenter> EventCenter);
  29. ~CollimatorDevice();
  30. virtual std::string GetGUID() const override;
  31. virtual bool Prepare();
  32. virtual void Register();
  33. RET_STATUS JSSetStudyInfo(std::string in, std::string& out);
  34. RET_STATUS JSSetTechParamsInfo(std::string in, std::string& out);
  35. RET_STATUS JSSetCollimatorSize(std::string in, std::string& out);
  36. RET_STATUS JSSetCollimatorSID(std::string in, std::string& out);
  37. RET_STATUS JSSetCollimatorFilter(std::string in, std::string& out);
  38. RET_STATUS JSSetCollimatorAngle(std::string in, std::string& out);
  39. RET_STATUS JSSetCollimatorMode(std::string in, std::string& out);
  40. RET_STATUS JSSetCollimatorLight(std::string in, std::string& out);
  41. RET_STATUS JSGetCollimatorXSize(std::string& out);
  42. RET_STATUS JSGetCollimatorYSize(std::string& out);
  43. RET_STATUS JSGetCollimatorSID(std::string& out);
  44. RET_STATUS JSGetCollimatorFilter(std::string& out);
  45. RET_STATUS JSGetCollimatorAngle(std::string& out);
  46. RET_STATUS JSGetCollimatorMode(std::string& out);
  47. //RET_STATUS JSGetCollimatorLight(std::string& out);
  48. virtual RET_STATUS SetStudyInfo(ResDataObject& pParam);
  49. virtual RET_STATUS SetTechParamsInfo(ResDataObject& pParam);
  50. virtual RET_STATUS SetCollimatorSize(int xsize, int ysize);
  51. virtual RET_STATUS SetCollimatorSID(int sid);
  52. virtual RET_STATUS SetCollimatorFilter(int pParams);
  53. virtual RET_STATUS SetCollimatorAngle(int pParams);
  54. virtual RET_STATUS SetCollimatorMode(int pParams);
  55. virtual RET_STATUS SetCollimatorLight(int pParams);
  56. int GetCollimatorAngle();
  57. int GetCollimatorXSize();
  58. int GetCollimatorYSize();
  59. int GetCollimatorSID();
  60. int GetCollimatorFilter();
  61. int GetCollimatorMode();
  62. RET_STATUS UpdateCollimatorXSize(int Param);
  63. RET_STATUS UpdateCollimatorYSize(int Param);
  64. RET_STATUS UpdateCollimatorSID(int Param);
  65. RET_STATUS UpdateCollimatorAngle(int Param);
  66. RET_STATUS UpdateCollimatorFilter(int Param);
  67. RET_STATUS UpdateCollimatorMode(int Param);
  68. void ReportMessageToDicom();
  69. };
  70. }