Hi friends,
I am facing one serious problem in my application.
I am trying to open dicom image file (.dcm) has size around 400 MB.
But I am getting and unhandy exceptions,
Some time,
{System.AccessV iolationExcepti on: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at ?readMedia@BASE _SESSION_CLASS@ @$$FQAEPAVFILE_ DATASET_CLASS@@ V?$basic_string @DU?$char_trait s@D@std@@V?$all ocator@D@2@@std @@W4MEDIA_FILE_ CONTENT_TYPE_EN UM@@000_N2@Z(BA SE_SESSION_CLAS S* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Int32 , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Boolean , Boolean )
at Wrappers.MBaseS ession.ReadMedi a(String pFileName)
at Dvtk.Sessions.S ession.ReadFile (String mediaFileName)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, ScriptSession dvtkScriptSessi on)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, String[] definitionFiles FullName)
at _3disytems.Dico mAnonymiserLibr ary.DicomImageP rocessor.Modify DicomFile(Strin g filePath) in E:\Projects\Wor king\Dicom Project\DicomEd itorLibrary\Dic omImageProcesso r.cs:line 63}
and Some times
{System.Runtime .InteropService s.SEHException: External component has thrown an exception.
at ?readMedia@BASE _SESSION_CLASS@ @$$FQAEPAVFILE_ DATASET_CLASS@@ V?$basic_string @DU?$char_trait s@D@std@@V?$all ocator@D@2@@std @@W4MEDIA_FILE_ CONTENT_TYPE_EN UM@@000_N2@Z(BA SE_SESSION_CLAS S* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Int32 , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Boolean , Boolean )
at Wrappers.MBaseS ession.ReadMedi a(String pFileName)
at Dvtk.Sessions.S ession.ReadFile (String mediaFileName)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, ScriptSession dvtkScriptSessi on)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, String[] definitionFiles FullName)
at _3disytems.Dico mAnonymiserLibr ary.DicomImageP rocessor.Modify DicomFile(Strin g filePath) in E:\Projects\Wor king\Dicom Project\DicomEd itorLibrary\Dic omImageProcesso r.cs:line 63}
These exception not getting for every files, only for large files when I am trying to read them.
I am using DVTK Library for Dicom images provided by DVTK. It's open source
http://www.dvtk.org
Following code ex I am using..
I am want to tell you that this is working for small files(2-5mb) but it giving problem me when I am trying to read 400MB files
Please solve this problem.
This is .Dot net only
Thanks,
Manesh
I am facing one serious problem in my application.
I am trying to open dicom image file (.dcm) has size around 400 MB.
But I am getting and unhandy exceptions,
Some time,
{System.AccessV iolationExcepti on: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
at ?readMedia@BASE _SESSION_CLASS@ @$$FQAEPAVFILE_ DATASET_CLASS@@ V?$basic_string @DU?$char_trait s@D@std@@V?$all ocator@D@2@@std @@W4MEDIA_FILE_ CONTENT_TYPE_EN UM@@000_N2@Z(BA SE_SESSION_CLAS S* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Int32 , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Boolean , Boolean )
at Wrappers.MBaseS ession.ReadMedi a(String pFileName)
at Dvtk.Sessions.S ession.ReadFile (String mediaFileName)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, ScriptSession dvtkScriptSessi on)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, String[] definitionFiles FullName)
at _3disytems.Dico mAnonymiserLibr ary.DicomImageP rocessor.Modify DicomFile(Strin g filePath) in E:\Projects\Wor king\Dicom Project\DicomEd itorLibrary\Dic omImageProcesso r.cs:line 63}
and Some times
{System.Runtime .InteropService s.SEHException: External component has thrown an exception.
at ?readMedia@BASE _SESSION_CLASS@ @$$FQAEPAVFILE_ DATASET_CLASS@@ V?$basic_string @DU?$char_trait s@D@std@@V?$all ocator@D@2@@std @@W4MEDIA_FILE_ CONTENT_TYPE_EN UM@@000_N2@Z(BA SE_SESSION_CLAS S* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Int32 , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , basic_string<ch ar\,std::char_t raits<char>\,st d::allocator<ch ar> >* , Boolean , Boolean )
at Wrappers.MBaseS ession.ReadMedi a(String pFileName)
at Dvtk.Sessions.S ession.ReadFile (String mediaFileName)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, ScriptSession dvtkScriptSessi on)
at DvtkHighLevelIn terface.Dicom.F iles.DicomFile. Read(String fullFileName, String[] definitionFiles FullName)
at _3disytems.Dico mAnonymiserLibr ary.DicomImageP rocessor.Modify DicomFile(Strin g filePath) in E:\Projects\Wor king\Dicom Project\DicomEd itorLibrary\Dic omImageProcesso r.cs:line 63}
These exception not getting for every files, only for large files when I am trying to read them.
I am using DVTK Library for Dicom images provided by DVTK. It's open source
http://www.dvtk.org
Following code ex I am using..
Code:
public static void ModifyDicomFile(string filePath) { DicomFile theDicomFile; try { theDicomFile = new DicomFile(); theDicomFile.Read(filePath); if (attrInfo.PatientName == null || attrInfo.PatientName == "" || attrInfo.PatientID == null || attrInfo.PatientID == "" || attrInfo.PatientDOB == null || attrInfo.PatientDOB == "") Logger.Log(dirSettings.LogDirectory, "some information of Patient is missing in App.config"); theDicomFile.DataSet.Set("0x00100010", VR.PN, attrInfo.PatientName); theDicomFile.DataSet.Set("0x00100020", VR.LO, attrInfo.PatientID); theDicomFile.DataSet.Set("0x00100030", VR.DA, attrInfo.PatientDOB); string relPath; if (!filePath.Contains(".dcm")) { relPath = dirSettings.TargetDirectory + filePath.Substring(dirSettings.SourceDirectory.Length) + ".dcm"; } else { relPath = dirSettings.TargetDirectory + filePath.Substring(dirSettings.SourceDirectory.Length); } theDicomFile.Write(relPath); // File.Delete(filePath); } catch (Exception e) { Logger.Log(dirSettings.LogDirectory, "Error: Dicom File Modification : " + e.Message); } }
I am want to tell you that this is working for small files(2-5mb) but it giving problem me when I am trying to read 400MB files
Please solve this problem.
This is .Dot net only
Thanks,
Manesh
Comment