This topic and its replies were posted before the current version of LEADTOOLS was released and may no longer be applicable.
#1
Posted
:
Wednesday, August 25, 2010 8:29:07 AM(UTC)
Groups: Registered
Posts: 8
Is it possible to get the file progress when sending a particularly large dataSet via CSTORE request? I can see the events when individual dataSets are transferred, but within a single dataSet is there a percent complete or bytes transferred?
#2
Posted
:
Thursday, August 26, 2010 3:07:34 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
I don't think this feature is available, but I will check further if you tell me which LEADTOOLS version (16, 17, etc.) and programming interface (.NET classes, DLL API, C++ Classes, etc.) you are using.
If you're using our .NET classes, are they the low-level or high-level (PACS Framework Add-ins)
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#3
Posted
:
Thursday, August 26, 2010 3:28:22 AM(UTC)
Groups: Registered
Posts: 8
We're currently using the .NET classes, but if the functionality is available through one of the other API's I would gladly wrap it.
We're using version 16.
Thanks,
Rich
#4
Posted
:
Thursday, August 26, 2010 3:49:06 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
Rich,
You might be able to estimate it by tying into the DicomNet.OnSend event. You could ignore the event until after you have sent the SendCStoreRequest and then keep track of the bytes sent in the OnSend event when the type is DicomPduType.DataTransfer.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#5
Posted
:
Friday, September 2, 2011 12:30:59 AM(UTC)
Groups: Registered
Posts: 15
If you do that, you'll face the following issue:
sent fileSize == 6,232,294 bytes >>>>
total OnSend() bytesSent == 6,238,480 bytes >>>>
received fileSize == 6,234,060 bytes
using CDDicom_Srv (and probably other servers).
The problem here is that one cannot simply determine the size of the Data Set being sent (option 1, the worst) or the size of the OnSend operation (option 2, the best) using PACS Imaging SDK up to v17.5. Can you please provide some tips for a workaround?
#6
Posted
:
Sunday, September 4, 2011 1:30:53 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
I think you're using our C++ DICOM Class Library, is this correct? In this case, you can determine the size of the dataset file using Windows API file system functions before you send it, such as the GetFileSizeEx function.
If that doesn't work for you, please send full details about what you're trying to do and why this approach is not what you need.
Also, give me full details about which LEADTOOLS version (16, 17, etc.) and programming interface (.NET classes, DLL API, C++ Classes, etc.) you are using.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#7
Posted
:
Sunday, September 4, 2011 2:35:26 AM(UTC)
Groups: Registered
Posts: 15
I'm using LDicomNet and LDicomDS C++ classes (v17).
A dataset is created and subsequently sent to the CLDicomSrv_Original server (SDK demo). The dataset file size reported by the OS is 6,232,294 bytes. Total PDU_DATA_TRANSFER bytes sent (accumulated using OnSend()) for this C-STORE request is 6,238,480 bytes. Finally, the file size of the dataset received and saved to disk by the server demo is 6,234,060 bytes, as reported by the OS.
#8
Posted
:
Sunday, September 4, 2011 5:26:55 AM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
For the purpose of this thread, which is calculating progress, the 3 values are close enough to each other since percent progress is usually calculated to zero or one decimal point.
For example, if total bytes sent at one point were 1000000 (one million) bytes, that would be equal to 16.0% of data regardless on which of the 3 size values you divide it by.
If you're facing a different problem other than calculating Progress on CSTORE transfers, please do not reply to this thread and explain your problem in a new thread because we prefer to keep different issues in separate threads.
Thanks,
Maen Badwan
LEADTOOLS Technical Support
#9
Posted
:
Tuesday, September 13, 2011 10:21:57 AM(UTC)
Groups: Registered
Posts: 15
> ... if total bytes sent at one point were 1000000 (one million) bytes, that would be equal to 16.0% of data ...
If.
#10
Posted
:
Tuesday, September 13, 2011 11:28:21 PM(UTC)
Groups: Registered, Tech Support
Posts: 1,326
Was thanked: 1 time(s) in 1 post(s)
That number was just an example I used to calculate 16.0% by dividing it 3 times, each using one of the different summation values you had.
In general, adding the nBytes in LDicomNet::OnSend event for PDU_DATA_TRANSFER type should give you correct values.
Also, you could use the LDicomNet::OnReceive for PDU_DATA_TRANSFER type on the server to match the size.
The file size on disk vs transfer bytes will differ due to PDU package padding and difference in transfer syntaxes (original could be explicit VR and transferred dataset could be implicit VR (smaller) or compressed transfer syntax).
Thanks,
Maen Badwan
LEADTOOLS Technical Support
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.