#pragma once #include #include "DIOS.Dev.IODevice.hpp" #include "DIOS.Dev.IODevice.Detail.hpp" #include "MECH.BasicMoulds.hpp" #include "DriverConfigInfo.tlh" #include "DriverConfigInfo.tli" #include "DIOSDICOMInfo.h" namespace nsDetail = DIOS::Dev::Detail; #ifndef DIOSDEVMECHDEVICEMOULD_EXPORTS #ifdef _WIN64 #ifdef _DEBUG #pragma comment(lib, "DIOS.Dev.MECH.Mould64D.lib") #else #pragma comment(lib, "DIOS.Dev.MECH.Mould64.lib") #endif #else #ifdef _DEBUG #pragma comment(lib, "DIOS.Dev.MECH.MouldD.lib") #else #pragma comment(lib, "DIOS.Dev.MECH.MouldD.lib") #endif #endif #endif #ifdef DIOSDEVMECHDEVICEMOULD_EXPORTS #define _DIOSDEVMECHDEVICEMOULD_API __declspec(dllexport) #else #define _DIOSDEVMECHDEVICEMOULD_API __declspec(dllimport) #endif #pragma warning (disable:4251) // warning C4251: class “DIOS::Dev::Detail::Generator::DoseUnit”需要有 dll 接口由 class“DIOS::Dev::Detail::Generator::MECHMould”的客户端使用 namespace DIOS::Dev::Detail::MECH { //----------------------------------------------------------------------------- // MECHUnit //----------------------------------------------------------------------------- class _DIOSDEVMECHDEVICEMOULD_API MECHUnit : public IOLogicUnit { public: MECHUnit() {}; virtual ~MECHUnit() {}; public: std::unique_ptr m_PatientSize; std::unique_ptr m_ViewID; std::unique_ptr m_PostionNumber; std::unique_ptr m_GridState; std::unique_ptr m_GridType; std::unique_ptr m_GridOrientation; std::unique_ptr m_TID; std::unique_ptr m_SID; std::unique_ptr m_SOD; std::unique_ptr m_ENTRANCE; }; //----------------------------------------------------------------------------- // MAMMOMECHUnit //----------------------------------------------------------------------------- class _DIOSDEVMECHDEVICEMOULD_API MAMMOMECHUnit : public IOLogicUnit { public: MAMMOMECHUnit() {}; virtual ~MAMMOMECHUnit() {}; public: std::unique_ptr m_Mammo_Grid; std::unique_ptr m_Mammo_AE; std::unique_ptr m_Mammo_Thickness; std::unique_ptr m_Mammo_FT; std::unique_ptr m_Mammo_CompPressureDEC; std::unique_ptr m_Mammo_Depress; std::unique_ptr m_Mammo_MechAngle; std::unique_ptr m_Mammo_MechHeight; std::unique_ptr m_Mammo_PressureValue; std::unique_ptr m_Mammo_AGD; std::unique_ptr m_Mammo_MAG; }; //----------------------------------------------------------------------------- // MECHMould //----------------------------------------------------------------------------- namespace nDev = DIOS::Dev; class _DIOSDEVMECHDEVICEMOULD_API MECHMould { public: MECHMould (); ~MECHMould (); protected: virtual void RegisterExamInfo(Dispatch* Dispatch); virtual void RegisterPostionNumber(Dispatch* Dispatch); virtual void RegisterGridControl(Dispatch* Dispatch); virtual void RegisterMotionControl(Dispatch* Dispatch); virtual void RegisterTOMOControl(Dispatch* Dispatch); virtual void RegisterMammoInfo(Dispatch* Dispatch); private: //caoxue nDev::RET_STATUS JSSetStudyInfo(std::string in, std::string& out); nDev::RET_STATUS JSSetViewList(std::string in, std::string& out); nDev::RET_STATUS JSSelectViewInfo(std::string in, std::string& out); nDev::RET_STATUS JSSetTechParamsInfo(std::string in, std::string& out); nDev::RET_STATUS JSSetPositonNumber(std::string in, std::string& out); nDev::RET_STATUS JSSetGridType(std::string in, std::string& out); nDev::RET_STATUS JSSetAutoTracking(std::string in, std::string& out); nDev::RET_STATUS JSSetSID(std::string in, std::string& out); nDev::RET_STATUS JSSetSOD(std::string in, std::string& out); nDev::RET_STATUS JSGetTomoResults(std::string in, std::string& out); protected: virtual nDev::RET_STATUS SetStudyInfo(STUDAY_INFO info)=0; virtual nDev::RET_STATUS SetViewList(int ViewCount, const char* viewID[], const char* viewName[]) = 0; virtual nDev::RET_STATUS SelectViewInfo(const char* viewID, const char* viewName) = 0; virtual nDev::RET_STATUS SetAutoTracking(int nAutoTracking) = 0; virtual nDev::RET_STATUS SetGridType(AttrKey::MECH_GRIDTYPE GridType) = 0; virtual nDev::RET_STATUS SetSID(float value) = 0; virtual nDev::RET_STATUS SetSOD(float value) = 0; virtual nDev::RET_STATUS SetPositonNumber(int pn) = 0; virtual nDev::RET_STATUS GetTomoResults(std::string& result) = 0; protected: MECHUnit m_MECHUnit; MAMMOMECHUnit m_MAMMOMECHUnit; }; } namespace DIOS::Dev::Detail::MECH { class _DIOSDEVMECHDEVICEMOULD_API DriverMould : public DIOS::Dev::IODriver { public: DriverMould (); ~DriverMould (); virtual std::string GetGUID () const; protected: std::list m_ConfigInfo; }; }