diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index 1e61367..6d1bbc5 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -13,14 +13,93 @@ const char* strProductFileNameDefault = "./cfgs/usct-product"; JsonObject::JsonObject() { loadcfg(); - + init(); } + JsonObject::~JsonObject() { savecfg(); - - } + +void JsonObject::init() +{ + char* defaultUser = getJsonString("login", "defaultUser"); + mDefaultUser = defaultUser; + + cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, "protocol"); + cJSON* second = cJSON_GetObjectItem(first, "lists"); + if(nullptr != first && nullptr!= second) + { + std::string protocals = second->valuestring; + mProtocalList = QString::fromLocal8Bit(QByteArray::fromRawData(protocals.c_str(), protocals.size())).split(";"); + } + + mDefaultProtocal = getJsonString("protocol", "default"); + + first = cJSON_GetObjectItem((cJSON*)json_root, "general"); + second = cJSON_GetObjectItem(first, "lockScreenTimes"); + if(nullptr != first && nullptr!= second) + { + std::string times = second->valuestring; + mLockScreenTimeList = QString::fromLocal8Bit(QByteArray::fromRawData(times.c_str(), times.size())).split(";"); + } + + first = cJSON_GetObjectItem((cJSON*)json_root, "general"); + second = cJSON_GetObjectItem(first, "language"); + if(nullptr != first && nullptr!= second) + { + std::string lagunage = second->valuestring; + mLanguageList = QString::fromLocal8Bit(QByteArray::fromRawData(lagunage.c_str(), lagunage.size())).split(";"); + } + + mDefaultLanguage = getJsonString("general", "defaultlanguage"); + mInstitutionName = getJsonString("general", "institutionName"); + mInstitutionAddr = getJsonString("general", "institutionAddr"); + mLockScreenTime = QString(getJsonString("general", "lockscreen")).toInt(); + mStorageAlarmSize = getJsonString("storagepolicy", "mininum"); + mInterfaceName = QString(getJsonString("address", "device")); + mDhcp = QVariant(QString(getJsonString("address", "dhcp"))).toBool(); + mGateway = QString(getJsonString("routing", "defaultgateway")); + mScanConfirm = getBool("general","ScanConfirm"); + mCompleteNotify = getBool("general","CompleteNotify"); + mAnonymousMode = getBool("general","AnonymousMode"); + mScreenSaverMode = getBool("screensaver","open"); + mScreenSaverInfoList = QString(getJsonString("screensaver", "content")).split(";"); + mDmsSimulator = getBool("dms","simulator"); + mOperationLogExpireDays = QString(getJsonString("operatorlog", "expire")).toInt(); + mPatientListExpireDays = QString(getJsonString("patientlist", "expire")).toInt(); + + mWorklistHost.ae = QString(getJsonString("worklist", "ae")); + mWorklistHost.ip = QString(getJsonString("worklist", "ip")); + mWorklistHost.name = QString(getJsonString("worklist", "name")); + mWorklistHost.port = QString(getJsonString("worklist", "port")); + + mPacsHost.ae = QString(getJsonString("pacs", "ae")); + mPacsHost.ip = QString(getJsonString("pacs", "ip")); + mPacsHost.name = QString(getJsonString("pacs", "name")); + mPacsHost.port = QString(getJsonString("pacs", "port")); + + mLocalHost.ae = QString(getJsonString("address", "ae")); + mLocalHost.ip = QString(getJsonString("address", "ip")); + mLocalHost.name = QString(getJsonString("address", "name")); + mLocalHost.port = QString(getJsonString("address", "port")); + + mReconHost.ae = QString(getJsonString("recon", "ae")); + mReconHost.ip = QString(getJsonString("recon", "ip")); + mReconHost.name = QString(getJsonString("recon", "name")); + mReconHost.port = QString(getJsonString("recon", "port")); + + mMppsHost.ae = QString(getJsonString("mpps", "ae")); + mMppsHost.ip = QString(getJsonString("mpps", "ip")); + mMppsHost.name = QString(getJsonString("mpps", "name")); + mMppsHost.port = QString(getJsonString("mpps", "port")); + + mDefaultIpAddress.ip = QString(getJsonString("address", "ip")); + mDefaultIpAddress.mask = QString(getJsonString("address", "mask")); + mDefaultIpAddress.gateway = QString(getJsonString("address", "gateway")); + mDefaultIpAddress.dhcp = getBool("address","dhcp"); +} + void JsonObject::setJsonString(const char* catergory, const char* stringName, const char* stringValue, bool save) { if (!loadcfg()) @@ -145,65 +224,32 @@ int JsonObject::getArraySize(const char* catergory, const char* stringName) void JsonObject::setDefaultUser(const QString& str) { setJsonString("login", "defaultUser", str.toStdString().c_str()); + mDefaultUser = str; } QString JsonObject::defaultUser() { - char* str = getJsonString("login", "defaultUser"); - return QString(str); + return mDefaultUser; + } QStringList JsonObject::protocals() { - if (!loadcfg()) - return QStringList(); - - cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, "protocol"); - if (!first) return QStringList(); - - cJSON* second = cJSON_GetObjectItem(first, "lists"); - std::string lans = second->valuestring; - - - QString str = QString::fromLocal8Bit(QByteArray::fromRawData(lans.c_str(), lans.size())); - return str.split(";"); - + return mProtocalList; } QString JsonObject::defaultProtocal() { - char* str = getJsonString("protocol", "default"); - return QString(str); + return mDefaultProtocal; } void JsonObject::setDefaultProtocal(const QString& str) { setJsonString("protocol", "default", str.toStdString().c_str()); + mDefaultProtocal = str; } QStringList JsonObject::lockScreenTimes() { - if (!loadcfg()) - return QStringList(); - - cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, "general"); - if (!first) return QStringList(); - - cJSON* second = cJSON_GetObjectItem(first, "lockScreenTimes"); - if (!second) return QStringList(); - - std::string times = second->valuestring; - QString str = QString::fromLocal8Bit(QByteArray::fromRawData(times.c_str(), times.size())); - return str.split(";"); -} - -QString JsonObject::defaultLockScreenTime() -{ - char* str = getJsonString("general", "defaultLockScreenTime"); - return QString(str); -} - -void JsonObject::setDefaultLockScreenTime(const QString& str) -{ - setJsonString("general", "defaultLockScreenTime", str.toStdString().c_str()); + return mLockScreenTimeList; } QString JsonObject::defaultFilter() @@ -211,10 +257,12 @@ QString JsonObject::defaultFilter() char* str = getJsonString("worklistfilter", "default"); return QString(str); } + void JsonObject::setDefaultFilter(const QString& str) { setJsonString("worklistfilter", "default", str.toStdString().c_str()); } + QStringList JsonObject::worklistFilters() { if (!loadcfg()) @@ -232,79 +280,57 @@ QStringList JsonObject::worklistFilters() } - - -QStringList JsonObject::language() +QStringList JsonObject::languageList() { - if (!loadcfg()) - return QStringList(); - - cJSON* first = cJSON_GetObjectItem((cJSON*)json_root, "general"); - if (!first) return QStringList(); - - cJSON* second = cJSON_GetObjectItem(first, "language"); - if (!second) return QStringList(); - - std::string lans = second->valuestring; - QString str = QString::fromLocal8Bit(QByteArray::fromRawData(lans.c_str(), lans.size())); - return str.split(";"); - + return mLanguageList; } void JsonObject::setDefaultLanguage(const QString& str) { setJsonString("general", "defaultlanguage", str.toStdString().c_str()); + mDefaultLanguage = str; } QString JsonObject::defaultLanguage() { - char* str = getJsonString("general", "defaultlanguage"); - return QString(str); + return mDefaultLanguage; } QString JsonObject::institutionName() { - char* str = getJsonString("general", "institutionName"); - return QString(str); + return mInstitutionName; } void JsonObject::setInstitutionName(const QString& str) { setJsonString("general", "institutionName", str.toStdString().c_str()); + mInstitutionName = str; } QString JsonObject::institutionAddr() { - char* str = getJsonString("general", "institutionAddr"); - return QString(str); + return mInstitutionAddr; } void JsonObject::setInstitutionAddr(const QString& str) { setJsonString("general", "institutionAddr", str.toStdString().c_str()); + mInstitutionAddr = str; } -int JsonObject::lockerCount() +int JsonObject::getLockScreenTime() { - char* str = getJsonString("general", "lockscreen"); - int interval = QString(str).toInt() * 1000; - return interval; + return mLockScreenTime; } -QString JsonObject::lockScreenTimeout() +void JsonObject::setLockScreenTime(int aTime) { - char* str = getJsonString("general", "lockscreen"); - return QString(str); -} - -void JsonObject::setLockScreenTimeout(const QString& str) -{ - setJsonString("general", "lockscreen", str.toStdString().c_str()); + setJsonString("general", "lockscreen", QString::number(aTime).toStdString().c_str()); + mLockScreenTime = aTime; } QString JsonObject::storageAlarmSize() { - char* str = getJsonString("storagepolicy", "mininum"); - return QString(str); + return mStorageAlarmSize; } bool JsonObject::loadcfg() @@ -380,28 +406,16 @@ host JsonObject::getServer(ServerType type) { case JsonObject::WORKLIST: - typeName = "worklist"; - break; + return mWorklistHost; case JsonObject::PACS: - typeName = "pacs"; - break; + return mPacsHost; case JsonObject::LOCAL: - typeName = "address"; - break; + return mLocalHost; case JsonObject::RECON: - typeName = "recon"; - break; + return mReconHost; case JsonObject::MPPS: - typeName = "mpps"; - default: - break; + return mMppsHost; } - host list; - list.ae = QString(getJsonString(typeName.toStdString().c_str(), "ae")); - list.ip = QString(getJsonString(typeName.toStdString().c_str(), "ip")); - list.name = QString(getJsonString(typeName.toStdString().c_str(), "name")); - list.port = QString(getJsonString(typeName.toStdString().c_str(), "port")); - return list; } void JsonObject::setServer(ServerType type, const host& list) @@ -411,22 +425,25 @@ void JsonObject::setServer(ServerType type, const host& list) { case JsonObject::WORKLIST: - typeName = "worklist"; - break; + typeName = "worklist"; + mWorklistHost = list; + break; case JsonObject::PACS: typeName = "pacs"; + mPacsHost = list; break; case JsonObject::LOCAL: typeName = "address"; + mLocalHost = list; break; case JsonObject::RECON: typeName = "recon"; + mReconHost = list; break; case JsonObject::MPPS: typeName = "mpps"; + mMppsHost = list; break; - default: - break; } setJsonString(typeName.toStdString().c_str(), "ae", list.ae.toStdString().c_str(), false); setJsonString(typeName.toStdString().c_str(), "ip", list.ip.toStdString().c_str(), false); @@ -439,7 +456,7 @@ void JsonObject::setServer(ServerType type, const host& list) QString JsonObject::interfaceName() { - return QString(getJsonString("address", "device")); + return mInterfaceName; } QString JsonObject::passWord() @@ -449,35 +466,29 @@ QString JsonObject::passWord() void JsonObject::setPassword(const QString& pwd) { - tmp_psw = pwd; } void JsonObject::setInterfaceName(const QString& name) { setJsonString("address", "device", name.toStdString().c_str()); + mInterfaceName = name; } bool JsonObject::isDHCP() { - QVariant tempValue = QString(getJsonString("address", "dhcp")); - return tempValue.toBool(); + return mDhcp; } void JsonObject::autoDHCP(bool ena) { QString str = QVariant(ena).toString(); setJsonString("address", "dhcp", str.toStdString().c_str()); + mDhcp = ena; } IpAddr JsonObject::getDefaultIpAddr() { - IpAddr obj; - //lhost.ip = IPConfig::getDeviceIP(); - obj.ip = QString(getJsonString("address", "ip")); - obj.mask = QString(getJsonString("address", "mask")); - obj.gateway = QString(getJsonString("address", "gateway")); - obj.dhcp = getBool("address","dhcp"); - return obj; + return mDefaultIpAddress; } void JsonObject::setDefaultIpAddr(const IpAddr& addr) @@ -486,6 +497,7 @@ void JsonObject::setDefaultIpAddr(const IpAddr& addr) setJsonString("address", "mask", addr.mask.toStdString().c_str()); setJsonString("address", "gateway", addr.ip.toStdString().c_str()); setBool("address","dhcp", addr.dhcp, true); + mDefaultIpAddress = addr; } QList JsonObject::getIpAddrList() @@ -516,12 +528,13 @@ void JsonObject::setIpAddrList(const QList& list) QString JsonObject::getDefaultGateway() { - return QString(getJsonString("routing", "defaultgateway")); + return mGateway; } void JsonObject::setDefaultGateway(const QString& gw) { setJsonString("routing", "defaultgateway", gw.toStdString().c_str()); + mGateway = gw; } QList JsonObject::getIpRouteList() @@ -560,58 +573,61 @@ const char *JsonObject::getEmptyScanID() { } bool JsonObject::getScanConfirm() { - return getBool("general","ScanConfirm"); + return mScanConfirm; } void JsonObject::setScanConfirm(bool val) { setBool("general","ScanConfirm", val, true); + mScanConfirm = val; } bool JsonObject::getCompleteNotify() { - return getBool("general","CompleteNotify"); + return mCompleteNotify; } void JsonObject::setCompleteNotify(bool val) { setBool("general","CompleteNotify", val, true); + mCompleteNotify = val; } bool JsonObject::getAnonymousMode() { - return getBool("general","AnonymousMode"); + return mAnonymousMode; } void JsonObject::setAnonymousMode(bool val) { setBool("general","AnonymousMode", val, true); + mAnonymousMode = val; } bool JsonObject::getScreenSaverMode() { - return getBool("screensaver","open"); + return mScreenSaverMode; } void JsonObject::setScreenSaverMode(bool aIsOpen) { setBool("screensaver","open", aIsOpen, true); + mScreenSaverMode = aIsOpen; } QStringList JsonObject::getScreenSaverInfomation() { - return QString(getJsonString("screensaver", "content")).split(";"); + return mScreenSaverInfoList; } - bool JsonObject::isDmsSimulator() { - return getBool("dms","simulator"); + return mDmsSimulator; } int JsonObject::getOperationLogExpireDays() { - return QString(getJsonString("operatorlog", "expire")).toInt(); + return mOperationLogExpireDays; } int JsonObject::getPatientListExpireDays() { - return QString(getJsonString("patientlist", "expire")).toInt(); + return mPatientListExpireDays; } diff --git a/src/json/jsonobject.h b/src/json/jsonobject.h index ffe6caa..cb94bd1 100644 --- a/src/json/jsonobject.h +++ b/src/json/jsonobject.h @@ -3,29 +3,29 @@ //#include #include -class QStringList; +#include class QTranslator; #include struct host { - QString name; - QString ae; - QString ip; - QString port; - //QString isDefault; + QString name; + QString ae; + QString ip; + QString port; + //QString isDefault; }; struct IpAddr { bool dhcp; - QString ip; - QString mask; + QString ip; + QString mask; QString gateway; }; struct IpRoute { - QString des; - QString gw; - QString mask; + QString des; + QString gw; + QString mask; }; @@ -33,65 +33,62 @@ class JsonObject { public: - static JsonObject* Instance() - { - static JsonObject obj; - return &obj; - } - enum ServerType - { + static JsonObject* Instance() + { + static JsonObject obj; + return &obj; + } + enum ServerType + { WORKLIST, PACS, LOCAL, RECON, MPPS - }; + }; - // - QString storageAlarmSize(); - // - //for login - void setDefaultUser(const QString& str); - QString defaultUser(); + // + QString storageAlarmSize(); + // + //for login + void setDefaultUser(const QString& str); + QString defaultUser(); - QStringList language(); - void setDefaultLanguage(const QString& str); - QString defaultLanguage(); + QStringList languageList(); + void setDefaultLanguage(const QString& str); + QString defaultLanguage(); - QString institutionName(); - void setInstitutionName(const QString& str); + QString institutionName(); + void setInstitutionName(const QString& str); - QString institutionAddr(); - void setInstitutionAddr(const QString& str); + QString institutionAddr(); + void setInstitutionAddr(const QString& str); - int lockerCount(); - QString lockScreenTimeout(); - void setLockScreenTimeout(const QString& str); + int getLockScreenTime(); + void setLockScreenTime(int aTime); - QStringList protocals(); - QString defaultProtocal(); - void setDefaultProtocal(const QString& str); + QStringList protocals(); + QString defaultProtocal(); + void setDefaultProtocal(const QString& str); QStringList lockScreenTimes(); - QString defaultLockScreenTime(); - void setDefaultLockScreenTime(const QString& str); - QStringList worklistFilters(); - QString defaultFilter(); - void setDefaultFilter(const QString& str); + QStringList worklistFilters(); + QString defaultFilter(); + void setDefaultFilter(const QString& str); - host getServer(ServerType type); - void setServer(ServerType type, const host& list); + host getServer(ServerType type); + void setServer(ServerType type, const host& list); - //for network manager + //for network manager - QString passWord(); - void setPassword(const QString& pwd); + QString passWord(); + void setPassword(const QString& pwd); - QString interfaceName(); - void setInterfaceName(const QString& name); + QString interfaceName(); + void setInterfaceName(const QString& name); - bool isDHCP(); + bool isDHCP(); bool isDmsSimulator(); - void autoDHCP(bool); + void autoDHCP(bool); bool getScanConfirm(); void setScanConfirm(bool val); @@ -108,46 +105,83 @@ public: const char* getEmptyScanID(); void setEmptyScanID(const char* id); - IpAddr getDefaultIpAddr(); - void setDefaultIpAddr(const IpAddr& addr); + IpAddr getDefaultIpAddr(); + void setDefaultIpAddr(const IpAddr& addr); - QList getIpAddrList(); - void setIpAddrList(const QList& list); + QList getIpAddrList(); + void setIpAddrList(const QList& list); - QString getDefaultGateway(); - void setDefaultGateway(const QString& gw); + QString getDefaultGateway(); + void setDefaultGateway(const QString& gw); - QList getIpRouteList(); - void setIpRouteList(const QList& list); - - QStringList getScreenSaverInfomation(); + QList getIpRouteList(); + void setIpRouteList(const QList& list); + + QStringList getScreenSaverInfomation(); int getOperationLogExpireDays(); int getPatientListExpireDays(); private: - void setJsonString(const char* catergory, const char* stringName, const char* stringValue, bool save = true); - char* getJsonString(const char* catergory, const char* stringName); + void setJsonString(const char* catergory, const char* stringName, const char* stringValue, bool save = true); + char* getJsonString(const char* catergory, const char* stringName); - void setBool(const char* catergory, const char* stringName,bool val, bool save = true); + void setBool(const char* catergory, const char* stringName,bool val, bool save = true); bool getBool(const char* catergory, const char* stringName); - char* getArrayNode(const char* catergory, const char* stringName, int index, const char* id); - void setArrayNode(const char* catergory, const char* stringName, int index, const char* id, const char* stringValue); - int getArraySize(const char* catergory, const char* stringName); + char* getArrayNode(const char* catergory, const char* stringName, int index, const char* id); + void setArrayNode(const char* catergory, const char* stringName, int index, const char* id, const char* stringValue); + int getArraySize(const char* catergory, const char* stringName); - bool loadcfg(); - bool loadcfgDefault(); - bool savecfg(); + bool loadcfg(); + bool loadcfgDefault(); + void init(); + bool savecfg(); + + JsonObject(); + ~JsonObject(); + + void* json_root = nullptr; + bool m_bLoaded = false; + + QString tmp_psw; + + QString mStorageAlarmSize; + QString mDefaultUser; + QString mDefaultLanguage; + QString mInstitutionName; + QString mInstitutionAddr; + QString mDefaultProtocal; + QString mInterfaceName; + QString mGateway; + + + QStringList mLockScreenTimeList; + QStringList mProtocalList; + QStringList mLanguageList; + QStringList mScreenSaverInfoList; + + int mLockScreenTime; + int mOperationLogExpireDays; + int mPatientListExpireDays; + + host mWorklistHost; + host mPacsHost; + host mLocalHost; + host mReconHost; + host mMppsHost; + IpAddr mDefaultIpAddress; + + bool mDhcp; + bool mDmsSimulator; + bool mScanConfirm; + bool mCompleteNotify; + bool mAnonymousMode; + bool mScreenSaverMode; - JsonObject(); - ~JsonObject(); - void* json_root = nullptr; - bool m_bLoaded = false; - QString tmp_psw; }; #endif // JSONOBJECT_H