ctkDICOMPersonName.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 ctkDICOMPersonNameData;
  9. /**
  10. \brief A person's name as modelled in DICOM.
  11. */
  12. class CTK_DICOM_CORE_EXPORT ctkDICOMPersonName
  13. {
  14. public:
  15. ctkDICOMPersonName(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. ctkDICOMPersonName(const ctkDICOMPersonName& other);
  21. ctkDICOMPersonName& operator=(const ctkDICOMPersonName& other);
  22. virtual ~ctkDICOMPersonName();
  23. /**
  24. \brief "Lastname, FirstName MiddleName, Suffix" (useful for alphabetical sorting)
  25. */
  26. QString formattedName() const;
  27. QString lastName() const;
  28. QString firstName() const;
  29. QString middleName() const;
  30. QString namePrefix() const;
  31. QString nameSuffix() const;
  32. /// cast operator
  33. operator QString() const;
  34. std::string toStdString() const;
  35. private:
  36. QSharedDataPointer<ctkDICOMPersonNameData> d;
  37. };
  38. typedef QList<ctkDICOMPersonName> ctkDICOMPersonNameList;
  39. Q_DECLARE_METATYPE(ctkDICOMPersonName);
  40. #endif // ctkDICOMPersonName_h