1. A method comprising:
initiating a transaction on a first data by a first entity, the first data being stored in a basis memory;
moving a change in the first data as a second data to a transaction memory;
reading the second data from the transaction memory if a request for reading the first data is received from the first entity;
reading the first data from the basis memory if the request for reading the first data is received from a second entity; and
locking a write access of the second entity to the first data.
2. The method of claim 1 further comprising:
committing the transaction; and
replacing the first data with the second data in the basis memory.
3. The method of claim 1 further comprising:
initiating a rollback for the transaction; and
deleting the second data from the transaction memory.
4. The method of claim 1, wherein the write access of the second entity to the first data is locked till the first entity commits or rolls back the transaction.
5. The method of claim 1 further comprising the step of making a change to the second data in the transaction memory.
6. The method of claim 1 further comprising the step of assigning a unique identifier to the transaction.
7. The method of claim 1 further comprising the step of determining whether the request for reading the first data is received from the first entity or the second entity.
8. The method of claim 1 further comprising:
receiving the request for reading the first data from the first entity;
determining whether the second data exists in the transaction memory;
reading the second data from the transaction memory; and
reading the first data from the basis memory if the second data does not exist in the transaction memory.
9. The method of claim 1 further comprising the step of notifying the second entity that the transaction on the first data is already active.
10. A system comprising:
a basis memory for storing a first data;
a transaction memory electronically coupled to the basis memory for storing a change in the first data;
a transaction initiator for initiating a transaction on a first data by a first entity;
a transaction manager electronically coupled to the transaction initiator for moving a first change in the first data as a second data to the transaction memory;
a memory manager electronically coupled to the transaction manager, the basis memory and the transaction memory for reading the second data from the transaction memory if a request for reading the first data is received form the first entity and reading the first data from the basis memory if the request for reading the first data is received from a second entity; and
a write locking unit electronically coupled to the transaction manager for locking a write access of the second entity to the first data.
11. The system of claim 10 further comprising a transaction executor electronically coupled to the transaction manager for committing and rolling back the transaction.
12. The system of claim 10 further comprising a notification unit for notifying the second entity that the transaction on the first data is already active.
13. A machine-accessible medium that provides instructions that, when executed by a machine, cause the machine to perform operations comprising:
initiating a transaction on a first data by a first entity, the first data being stored in a basis memory;
moving a change in the first data as a second data to a transaction memory;
reading the second data from the transaction memory if a request for reading the first data is received from the first entity;
reading the first data from the basis memory if the request for reading the first data is received from a second entity; and
locking a write access of the second entity to the first data.
14. The machine-accessible medium of claim 13 further providing instructions which when executed by the machine cause the machine to perform further operations comprising:
committing the transaction; and
replacing the first data with the second data in the basis memory.
15. The machine-accessible medium of claim 13 further providing instructions which when executed by the machine cause the machine to perform further operations comprising:
initiating a rollback for the transaction; and
deleting the second data from the transaction memory.
16. The machine-accessible medium of claim 13, wherein the write access of the second entity to the first data is locked till the first entity commits or rolls back the transaction.
17. The machine-accessible medium of claim 13 further providing instructions which when executed by the machine cause the machine to perform further operations comprising the step of making a change to the second data in the transaction memory.
18. The machine-accessible medium of claim 13 further providing instructions which when executed by the machine cause the machine to perform further operations comprising the step of assigning a unique identifier to the transaction.
19. The machine-accessible medium of claim 13 further providing instructions which when executed by the machine cause the machine to perform further operations comprising the step of determining whether the request for reading the first data is received from the first entity or the second entity.
20. The machine-accessible medium of claim 13 further providing instructions which when executed by the machine cause the machine to perform further operations comprising:
receiving the request for reading the first data from the first entity;
determining whether the second data exists in the transaction memory;
reading the second data from the transaction memory; and
reading the first data from the basis memory if the second data does not exist in the transaction memory.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method for communicating Digital Imaging and Communications in Medicine (DICOM) data between two devices in a network, wherein the data comprises data elements, the method comprising:
providing a plurality of data elements from a first device;
providing a streaming threshold, wherein the streaming threshold comprises:
a maximum size of data elements to be transmitted between the first device and a second device, wherein the first device is a Service Class Provider capable of providing data packets and the second device is a Service Class User capable of receiving an output stream of bytes; and
a maximum number of data elements to be encoded in a data stream to be transmitted between the first device and the second device;
based at least in part on the streaming threshold, encoding at least some of the plurality of data elements into the data stream to be transmitted between the first device and the second device;
defining a limited number of presentation data values to be stored in the data stream, wherein the limited number is based at least in part on either a size of a storage device or performance of the network;
incrementally reading a set of data packets from the Service Class Provider so that each data packet is read one at a time;
creating the presentation data value stream with only a limited number of presentation data values;
incrementally reading pixel data elements one at a time from the data stream into the storage device, wherein an entire data element is incrementally read in small, fixed size portions into the storage device;
transmitting at least a portion of the stored data elements to the second device;
transmitting a presentation data value stream containing the limited number of presentation data values to a second Service Class Provider if the predefined limit of presentation data values is reached; and
extracting the presentation data values from the presentation data value stream.
2. The method of claim 1, wherein at least one of the devices is a file system comprising at least one selectable file configured for conversion to a stream of bytes, and wherein a data element source can be created.
3. The method of claim 2, wherein the data element source comprises an input transfer syntax.
4. The method of claim 1, wherein the network comprises a network connection configured for providing a data stream.
5. The method of claim 4, wherein the data stream comprises protocol data units containing presentation data values, the presentation data values comprising byte arrays.
6. The method of claim 4, wherein at least one byte arrays can be placed in a presentation data value input stream.
7. The method of claim 6, wherein the data element source comprises an input transfer syntax created from the presentation data value input stream.
8. The method of claim 6, wherein the presentation data value input stream is limited to buffering a predefined or limited number of presentation data values.
9. The method of claim 1, wherein at least one of the devices comprises a file system comprising a file with an output stream of bytes.
10. The method of claim 9, wherein a data element sink can be created from the output stream of bytes.
11. The method of claim 10, wherein the data element sink comprises an output transfer syntax created from the output stream of bytes.
12. The method of claim 1, wherein the network comprises a network connection configured for receiving an output stream of bytes.
13. The method of claim 12, wherein the output stream of bytes comprises a packetizer configured to create protocol data units containing presentation data values.
14. The method of claim 13, wherein the data element sink provides bytes to the packetizer.
15. The method of claim 14, wherein the data element sink comprises an output transfer syntax created with the packetizer.
16. The method of claim 1, further comprising a data element source having an input transfer syntax further comprising a streaming threshold configured to provide a byte limit.
17. The method of claim 16, wherein if the byte limit is exceeded by a stream of bytes comprising a data element, then the data element comprises a streaming data element.
18. The method of claim 17, wherein the streaming data element comprises incremental values obtained from the input transfer syntax.
19. The method of claim 1, wherein the data element sink comprises a streaming data element, and the data element sink comprises an output transfer syntax.
20. The method of claim 19, wherein the data element sink requests from the streaming data element values in fixed block size.
21. The method of claim 20, wherein the output transfer syntax encodes the streaming data element values as each block is received.
22. The method of claim 1, wherein at least one of the devices is capable of providing an input stream of bytes.
23. The method of claim 22, wherein at least one of the devices comprises at least one of the following: a database, a tape, a CD, or a storage medium.
24. The method of claim 1, wherein at least one of the devices is capable of receiving an output stream of bytes.
25. The method of claim 1 further comprising:
utilizing input transfer syntax to extract the data elements from the data stream for use by an application program, the input transfer syntax comprising a streaming threshold whereby if the extracted data element is longer than the streaming threshold the extracted data element will be a streaming data element.
26. The method of claim 25, wherein the data elements comprise presentation data values obtained from the input transfer syntax.
27. The method of claim 25 further comprising:
creating an output transfer syntax from said output stream of bytes; and
requesting the presentation data values in fixed block size.
28. The method of claim 27, wherein the output transfer syntax encodes the presentation data values as each block is received.
29. The method of claim 25, wherein employing transfer syntax to extract the data elements from the protocol data units is used to parse the presentation data values contained in the presentation data stream.
30. The method of claim 1, wherein defining a limited number of presentation data values comprises negotiating an association between the Service Class Provider andor the Service Class User.
31. The method of claim 1, wherein defining a limited number of presentation data values to be stored in the presentation data value stream sets the number of data values at five or less.
32. The method of claim 1, further comprising:
incrementally processing the protocol data units one at a time until all of the protocol data units from all of the presentation data stream have been processed.
33. The method of claim 1, further comprising:
incrementally writing data one at a time into the fixed size buffer.
34. A method for transmitting a Digital Imaging and Communications in Medicine (DICOM) image between two devices in a network, wherein the image comprises a plurality of protocol data units, the method comprising:
providing a plurality of protocol data units from a first device;
providing a streaming threshold, wherein the streaming threshold comprises:
a maximum size of data elements to be transmitted between the first device and a second device, wherein the first device is a Service Class Provider capable of providing data packets and the second device is a Service Class User capable of receiving said output stream of bytes; and
a maximum number of data elements to be encoded in a data stream to be transmitted between the first device and the second device;
based at least in part on the streaming threshold, encoding at least some of the plurality of protocol data units in the data stream, wherein the data stream is based at least in part on a capacity of a storage device;
defining a limited number of presentation data values to be stored in the data stream, wherein the limited number is based at least in part on either a size of a storage device or performance of the network;
incrementally reading a set of data packets from the Service Class Provider so that each data packet is read one at a time;
creating a presentation data value stream with only a limited number of presentation data values;
incrementally storing presentation data values from the data stream in the storage device;
transmitting at least a portion of the stored data stream to a second device using the presentation data values;
transmitting the presentation data value stream containing the limited number of presentation data values to a second Service Class Provider if the predefined limit of presentation data values is reached; and
extracting the presentation data values from the presentation data value stream.
35. The method of claim 34, wherein the data stream comprises at least five presentation data values.
36. The method of claim 34, wherein the storage device comprises at least one of the following: a memory, or a buffer.
37. The method of claim 34, wherein the data stream comprises a the presentation data value input stream.
38. The method of claim 34, further comprising:
encoding the plurality of protocol data units in additional data streams, wherein the additional data streams are each based at least in part on a capacity of an additional storage device;
incrementally storing presentation data values from the plurality of protocol data units in an additional storage device; and
transmitting the additional encoded data streams to the second device using the presentation data values, wherein the image is transferred from the first device to the second device.
39. The method of claim 34, wherein the data stream is further based at least in part on performance of the network.