Are there any mechanisms in Dicom standard to ensure the data integrity in Dicom storage services? Something similar to CRC checksum string of a internet file. If there is such a mechanism, DCMTK should'v implemented it, right?
There is no CRC checksum or anything like that in a DICOM dataset. What DICOM offers, however, are digital signatures which can be used to verify the integrity of DICOM datasets, if these are present. Very few devices actually support the creation and verification of such signatures. DCMTK, however, does have a working implementation of both a signature creation and a signature verification tool in module dcmsign (the command line tool has the same name).
Thank you so much for the answer! For the digital signature, my understanding is that, when storescu send any Dicom stream, by default, there is not any digital signature included, right? Thanks!
In case you only want to ensure data integrity during transmission, you could also use TLS (Transport Layer Security) without encryption. See documentation of storescu and storescp for details. Of course, both sender and receiver need to support this DICOM security extension.
I was just told that TCP will perform some weak integrity check with checksum. If storescu and storescp are using TCP protocol, we should automatically have some checksum to ensure data integrity. Please comment on this.
I was just told that TCP will perform some weak integrity check
This is correct. The TCP checksum will protect reliably against bit errors caused by network transmission, but will not protect against deliberate, malicious attacks.