Mercurial > hg > orthanc-book
comparison Sphinx/source/faq/orthanc-ids.rst @ 0:901e8961f46e
initial commit
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 22 Apr 2016 12:57:38 +0200 |
parents | |
children | 669ea65ba7fb |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:901e8961f46e |
---|---|
1 .. _orthanc-ids: | |
2 | |
3 Orthanc identifiers | |
4 =================== | |
5 | |
6 In Orthanc, each patient, study, series and instance is assigned with | |
7 an unique identifier that is derived from the DICOM identifiers. | |
8 Contrarily to the :ref:`identifiers of the DICOM standard | |
9 <dicom-identifiers>`, the Orthanc identifiers are formatted as a | |
10 `SHA-1 hash <http://en.wikipedia.org/wiki/Sha-1>`__ with a fixed | |
11 length, so as to be more Web-friendly. More specifically: | |
12 | |
13 * Patients are identified as the SHA-1 hash of their PatientID tag | |
14 (0010,0020). | |
15 * Studies are identified as the SHA-1 hash of the concatenation of | |
16 their PatientID tag (0010,0020) and their StudyInstanceUID tag | |
17 (0020,000d). | |
18 * Series are identified as the SHA-1 hash of the concatenation of | |
19 their PatientID tag (0010,0020), their StudyInstanceUID tag | |
20 (0020,000d) and their SeriesInstanceUID tag (0020,000e). | |
21 * Instances are identified as the SHA-1 hash of the concatenation of | |
22 their PatientID tag (0010,0020), their StudyInstanceUID tag | |
23 (0020,000d), their SeriesInstanceUID tag (0020,000e), and their | |
24 SOPInstanceUID tag (0008,0018). | |
25 | |
26 Because the DICOM standard guarantees the StudyInstanceUID, | |
27 SeriesInstanceUID and SOPInstanceUID tags to be globally unique, the | |
28 Orthanc identifiers for studies, series and instances are also | |
29 globally unique (provided no hash collision occurs, which is highly | |
30 improbable). | |
31 | |
32 The patient-level identifiers are *not* guaranteed to be globally | |
33 unique, and might collide between different hospitals. For this | |
34 reason, you should **always do queries at the study level** as soon as | |
35 you deal with an application that handles patients from different | |
36 hospitals. | |
37 | |
38 The actual implementation of the hashing is carried on by the | |
39 `DicomInstanceHasher class | |
40 <https://bitbucket.org/sjodogne/orthanc/src/default/Core/DicomFormat/DicomInstanceHasher.cpp>`_. | |
41 | |
42 | |
43 The "Inexistent Tag" error | |
44 -------------------------- | |
45 | |
46 If you use an old version of Orthanc (< 0.7.4) and you receive the | |
47 "*Exception while storing DICOM: Inexistent tag*" error while storing | |
48 a DICOM instance into Orthanc, please make sure that all the 4 | |
49 following tags do exist in the DICOM file: | |
50 | |
51 * PatientID (0010,0020), | |
52 * StudyInstanceUID (0020,000d), | |
53 * SeriesInstanceUID (0020,000e), | |
54 * SOPInstanceUID (0008,0018). | |
55 | |
56 These tags are all used to index the incoming DICOM instances. The | |
57 error message is more explicit starting with Orthanc 0.7.4. |