DICOM @ OFFIS

Discussion Forum for OFFIS DICOM Tools - For registration, send email with desired user name to the OFFIS DICOM team
It is currently Tue, 2017-11-21, 09:15

All times are UTC + 1 hour




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Fri, 2017-10-13, 16:14 
Offline

Joined: Fri, 2017-10-13, 08:48
Posts: 3
Hello,

I've recently switched to your library and enjoyed it so far. Howerver, I have some issues
regarding partial edit of large tags. And I didn't find the answer in the documentation, here or anywhere else.

In particular, I would like to edit several frames of uncompressed frame data,
reorder frame or even remove some frames from the dataset. And the complication heere is that
my datasets are about 1GB or so and I cannot allocate enough space to change this tag completely.

The only option I found was temporal file. Could you please tell me if there is any other way of perfroming this?

Thank you.


Top
 Profile  
 
PostPosted: Fri, 2017-10-13, 17:42 
Offline
DCMTK Developer

Joined: Tue, 2011-05-03, 14:38
Posts: 1874
Location: Oldenburg, Germany
You mean you've enough main memory to load this large element value once (i.e. the original one) but not another time in order to replace it?


Top
 Profile  
 
PostPosted: Fri, 2017-10-13, 18:05 
Offline

Joined: Fri, 2017-10-13, 08:48
Posts: 3
To be honest, I do not use frame data so I am not completely sure that it was loaded into memory. However, I did try
Code:
findAndGetUint8Array()
method and it succeed, so I guess, it was loded. And yes, when I tried to allocate space for another object of the same size, the space was not enough.
And I was wondering about the opportunity for partial tag editing or something like that.


Top
 Profile  
 
PostPosted: Fri, 2017-10-13, 19:06 
Offline
DCMTK Developer

Joined: Tue, 2011-05-03, 14:38
Posts: 1874
Location: Oldenburg, Germany
There is a DcmElement::getPartialValue() method but no ready-to-use method to modify only parts of the element value. If the length of the value does not change, I would use DcmOtherByteOtherWord::getUint8Array() which returns a non-const pointer to the element value (which, therefore, allows for modifying its content).


Top
 Profile  
 
PostPosted: Fri, 2017-10-13, 19:54 
Offline

Joined: Fri, 2017-10-13, 08:48
Posts: 3
Hm, I noticed the "getUint8Array()" method. But is was said that:
Quote:
This method does not copy, but returns a pointer to the element value,
* which remains under control of this object and is valid only until the next
* read, write or put operation.


So I thought that all modifications would be somehow wiped. Apparantly, it was a mistake.
Thank you very much for your help, I will try this approach.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC + 1 hour


Who is online

Users browsing this forum: Bing [Bot], Yahoo [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group