DicomFile.hpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /***************************************************************************
  2. * E-Com Technology Ltd.
  3. *
  4. * ECOMPACS DICOM Network Transport Libraries * Version 0.1 Beta
  5. ***************************************************************************/
  6. #ifndef _DICOM_FILE_
  7. #define _DICOM_FILE_
  8. class MetaInfo;
  9. class DICOMFileSet;
  10. class InBuffer;
  11. //////////////////////////////////////////////////////////////////////
  12. // class DICOMFile
  13. class DICOM_API DICOMFile : public DICOMDataSet
  14. {
  15. public:
  16. DICOMFile ();
  17. DICOMFile (const DICOMFile & DcmFile);
  18. DICOMFile (const DICOMVRSet & VRSet);
  19. DICOMFile (const char * FullFileName);
  20. virtual ~DICOMFile ();
  21. void GetTransferSyntax (UID & TrnsynUID) const;
  22. void SetTransferSyntax (const UID & TrnsynUID);
  23. virtual BOOL ConvertTo (const UID & TrnsynUID);
  24. virtual BOOL IsValid (void) const { return TRUE; } // I don't know whether it is valid
  25. virtual BOOL FixMe (void) { return TRUE; } // I don't know how to fixe me
  26. BOOL ValidateFileName (const char * filename) const;
  27. virtual BOOL ReadFile (const char * filename);
  28. virtual int ReadFileTillTag (const char * filename, UINT32 Tag);
  29. virtual int ReadFileNoImage (const char * filename);
  30. virtual BOOL ReadMetaHead (const char * filename);
  31. virtual BOOL WriteFile (const char * filename, BOOL IsPart10 = TRUE) const;
  32. virtual int Serialize (BYTE * pBuffer, int BufferSize) const;
  33. virtual int Deserialize (const BYTE * pBuffer, int BufferSize);
  34. virtual int DeserializeTillTag (const BYTE * pBuffer, int BufferSize, UINT32 Tag);
  35. BOOL Load (void);
  36. const char * GetFileName (void) const { return FileLocation; }
  37. UINT32 GetFileSize (void) const;
  38. virtual void Reset (void);
  39. BOOL SetSourceApplicationAE (const char * AETitle);
  40. BOOL SetImplementationClassUID (const char * ClassUID);
  41. BOOL SetImplementationVersionName (const char * VersionName);
  42. BOOL TransferTo (DICOMFile & ToFile);
  43. BOOL TransferTo (DICOMVRSet & VRS);
  44. BOOL CopyTo (DICOMFile & ToFile) const;
  45. BOOL CopyTo (DICOMVRSet & VRS) const;
  46. BOOL GetMetaInfo (DICOMDataSet * DDS) const;
  47. UINT32 GetEncodeSize (BOOL IsPart10 = true) const;
  48. virtual DString ToString (void) const;
  49. protected:
  50. virtual BOOL BuildMetaHead (void) const;
  51. BOOL RemoveMetaHead (void);
  52. BOOL LoadMetaInfo (InBuffer & VRBuffer);
  53. virtual BOOL Load (InBuffer & VRBuffer);
  54. virtual BOOL Write (OutBuffer & VRBuffer, BOOL IsPart10) const;
  55. virtual int LoadTillTag (InBuffer & VRBuffer, UINT32 Tag, BOOL IsImplicit);
  56. virtual int BigEndianLoadTillTag (InBuffer & VRBuffer, UINT32 Tag);
  57. protected:
  58. mutable MetaInfo * MetaInfo;
  59. mutable char FileLocation[_MAX_PATH]; // FileName
  60. friend DICOMFileSet;
  61. friend void DumpDicomFile (const DICOMFile &);
  62. friend void DumpDicomFile (const DICOMFile &, Array <DStringArray> *);
  63. };
  64. #endif