diff --git a/src/dialogs/DicomSettingsArea.cpp b/src/dialogs/DicomSettingsArea.cpp index 74310a9..f22e1ac 100644 --- a/src/dialogs/DicomSettingsArea.cpp +++ b/src/dialogs/DicomSettingsArea.cpp @@ -20,6 +20,18 @@ DicomSettingsArea::~DicomSettingsArea() delete mUI; } +bool DicomSettingsArea::isServerAETitleValid() +{ + + return InputFormatValidator::ValidateAETitleFormat(mUI->mServerAETitleEdit->text()); +} + +bool DicomSettingsArea::isLocalAETitleValid() +{ + + return InputFormatValidator::ValidateAETitleFormat(mUI->mMyAETitleEdit->text()); +} + bool DicomSettingsArea::isIpAddressValid() { return InputFormatValidator::ValidateIpAddressFormat(mUI->mServerIpAddressEdit->text()); diff --git a/src/dialogs/DicomSettingsArea.h b/src/dialogs/DicomSettingsArea.h index de33d1a..500126d 100644 --- a/src/dialogs/DicomSettingsArea.h +++ b/src/dialogs/DicomSettingsArea.h @@ -18,6 +18,8 @@ public: explicit DicomSettingsArea(QWidget* aParent = nullptr); ~DicomSettingsArea(); + bool isServerAETitleValid(); + bool isLocalAETitleValid(); bool isIpAddressValid(); bool isPortValid(); QString getServerIpAddress(); diff --git a/src/dialogs/MppsSettingsDialog.cpp b/src/dialogs/MppsSettingsDialog.cpp index 9972772..38b1307 100644 --- a/src/dialogs/MppsSettingsDialog.cpp +++ b/src/dialogs/MppsSettingsDialog.cpp @@ -113,6 +113,17 @@ bool MppsSettingsDialog::updateReferenceData() return false; } + if(!mSettingsArea->isServerAETitleValid()) + { + mErrorText->setErrorText(tr("Server AE is not valid")); + return false; + } + if(!mSettingsArea->isLocalAETitleValid()) + { + mErrorText->setErrorText(tr("Local AE is not valid")); + return false; + } + if(!mSettingsArea->isIpAddressValid()) { mErrorText->setErrorText(tr("Ip Address is not valid")); diff --git a/src/dialogs/WorklistSettingsDialog.cpp b/src/dialogs/WorklistSettingsDialog.cpp index 3f6aa09..61fb967 100644 --- a/src/dialogs/WorklistSettingsDialog.cpp +++ b/src/dialogs/WorklistSettingsDialog.cpp @@ -104,6 +104,16 @@ bool WorklistSettingsDialog::updateReferenceData() mErrorText->setErrorText(tr("Server Port can't be empty")); return false; } + if(!mSettingsArea->isServerAETitleValid()) + { + mErrorText->setErrorText(tr("Server AE is not valid")); + return false; + } + if(!mSettingsArea->isLocalAETitleValid()) + { + mErrorText->setErrorText(tr("Local AE is not valid")); + return false; + } if(!mSettingsArea->isIpAddressValid()) { diff --git a/src/utilities/InputFormatValidator.cpp b/src/utilities/InputFormatValidator.cpp index d502d96..3b18063 100644 --- a/src/utilities/InputFormatValidator.cpp +++ b/src/utilities/InputFormatValidator.cpp @@ -2,7 +2,13 @@ #include -bool InputFormatValidator::ValidateIpAddressFormat(const QString& aIpAddress) +bool InputFormatValidator::ValidateAETitleFormat(const QString &aAeTitle) +{ + QRegularExpression regex("^[0-9a-zA-Z_-]{1,16}$"); + return regex.match(aAeTitle).hasMatch(); +} + +bool InputFormatValidator::ValidateIpAddressFormat(const QString &aIpAddress) { QRegularExpression regex("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"); return regex.match(aIpAddress).hasMatch(); diff --git a/src/utilities/InputFormatValidator.h b/src/utilities/InputFormatValidator.h index f60a86a..1403541 100644 --- a/src/utilities/InputFormatValidator.h +++ b/src/utilities/InputFormatValidator.h @@ -8,7 +8,7 @@ class InputFormatValidator { public: InputFormatValidator() = delete; - + static bool ValidateAETitleFormat(const QString& aAeTitle); static bool ValidateIpAddressFormat(const QString& aIpAddress); static bool ValidatePortFormat(const QString& aPort); };