ctkDICOMPersonName.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef CTKDICOMPERSONNAME_H
  2. #define CTKDICOMPERSONNAME_H
  3. #include "ctkDICOMCoreExport.h"
  4. #include <QString>
  5. #include <QSharedDataPointer>
  6. #include <QMetaType>
  7. #include <string>
  8. class QPersonNameData;
  9. /**
  10. \brief A person's name as modelled in DICOM.
  11. */
  12. class CTK_DICOM_CORE_EXPORT QPersonName
  13. {
  14. public:
  15. QPersonName(const QString& lastName = QString::null,
  16. const QString& firstName = QString::null,
  17. const QString& middleName = QString::null,
  18. const QString& namePrefix = QString::null,
  19. const QString& nameSuffix = QString::null);
  20. QPersonName(const QPersonName& other);
  21. QPersonName& operator=(const QPersonName& other);
  22. virtual ~QPersonName();
  23. /**
  24. \brief "Lastname, FirstName MiddleName, Suffix" (useful for alphabetical sorting)
  25. */
  26. QString GetFormattedName() const;
  27. QString GetLastName() const;
  28. QString GetFirstName() const;
  29. QString GetMiddleName() const;
  30. QString GetNamePrefix() const;
  31. QString GetNameSuffix() const;
  32. /// cast operator
  33. operator QString() const;
  34. std::string toStdString() const;
  35. private:
  36. QSharedDataPointer<QPersonNameData> d;
  37. };
  38. typedef QList<QPersonName> QPersonNameList;
  39. Q_DECLARE_METATYPE(QPersonName);
  40. #endif // CTKDICOMPERSONNAME_H