/*************************************************************************** * E-Com Technology Ltd. * * ECOMPACS DICOM Network Transport Libraries * Version 0.1 Beta ***************************************************************************/ #ifndef _DICOM_FILE_ #define _DICOM_FILE_ class MetaInfo; class DICOMFileSet; class InBuffer; ////////////////////////////////////////////////////////////////////// // class DICOMFile class DICOM_API DICOMFile : public DICOMDataSet { public: DICOMFile (); DICOMFile (const DICOMFile & DcmFile); DICOMFile (const DICOMVRSet & VRSet); DICOMFile (const char * FullFileName); virtual ~DICOMFile (); void GetTransferSyntax (UID & TrnsynUID) const; void SetTransferSyntax (const UID & TrnsynUID); virtual BOOL ConvertTo (const UID & TrnsynUID); virtual BOOL IsValid (void) const { return TRUE; } // I don't know whether it is valid virtual BOOL FixMe (void) { return TRUE; } // I don't know how to fixe me BOOL ValidateFileName (const char * filename) const; virtual BOOL ReadFile (const char * filename); virtual int ReadFileTillTag (const char * filename, UINT32 Tag); virtual int ReadFileNoImage (const char * filename); virtual BOOL ReadMetaHead (const char * filename); virtual BOOL WriteFile (const char * filename, BOOL IsPart10 = TRUE) const; virtual int Serialize (BYTE * pBuffer, int BufferSize) const; virtual int Deserialize (const BYTE * pBuffer, int BufferSize); virtual int DeserializeTillTag (const BYTE * pBuffer, int BufferSize, UINT32 Tag); BOOL Load (void); const char * GetFileName (void) const { return FileLocation; } UINT32 GetFileSize (void) const; virtual void Reset (void); BOOL SetSourceApplicationAE (const char * AETitle); BOOL SetImplementationClassUID (const char * ClassUID); BOOL SetImplementationVersionName (const char * VersionName); BOOL TransferTo (DICOMFile & ToFile); BOOL TransferTo (DICOMVRSet & VRS); BOOL CopyTo (DICOMFile & ToFile) const; BOOL CopyTo (DICOMVRSet & VRS) const; BOOL GetMetaInfo (DICOMDataSet * DDS) const; UINT32 GetEncodeSize (BOOL IsPart10 = true) const; virtual DString ToString (void) const; protected: virtual BOOL BuildMetaHead (void) const; BOOL RemoveMetaHead (void); BOOL LoadMetaInfo (InBuffer & VRBuffer); virtual BOOL Load (InBuffer & VRBuffer); virtual BOOL Write (OutBuffer & VRBuffer, BOOL IsPart10) const; virtual int LoadTillTag (InBuffer & VRBuffer, UINT32 Tag, BOOL IsImplicit); virtual int BigEndianLoadTillTag (InBuffer & VRBuffer, UINT32 Tag); protected: mutable MetaInfo * MetaInfo; mutable char FileLocation[_MAX_PATH]; // FileName friend DICOMFileSet; friend void DumpDicomFile (const DICOMFile &); friend void DumpDicomFile (const DICOMFile &, Array *); }; #endif