diff 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
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Sphinx/source/faq/orthanc-ids.rst	Fri Apr 22 12:57:38 2016 +0200
@@ -0,0 +1,57 @@
+.. _orthanc-ids:
+
+Orthanc identifiers
+===================
+
+In Orthanc, each patient, study, series and instance is assigned with
+an unique identifier that is derived from the DICOM identifiers.
+Contrarily to the :ref:`identifiers of the DICOM standard
+<dicom-identifiers>`, the Orthanc identifiers are formatted as a
+`SHA-1 hash <http://en.wikipedia.org/wiki/Sha-1>`__ with a fixed
+length, so as to be more Web-friendly. More specifically:
+
+* Patients are identified as the SHA-1 hash of their PatientID tag
+  (0010,0020).
+* Studies are identified as the SHA-1 hash of the concatenation of
+  their PatientID tag (0010,0020) and their StudyInstanceUID tag
+  (0020,000d).
+* Series are identified as the SHA-1 hash of the concatenation of
+  their PatientID tag (0010,0020), their StudyInstanceUID tag
+  (0020,000d) and their SeriesInstanceUID tag (0020,000e).
+* Instances are identified as the SHA-1 hash of the concatenation of
+  their PatientID tag (0010,0020), their StudyInstanceUID tag
+  (0020,000d), their SeriesInstanceUID tag (0020,000e), and their
+  SOPInstanceUID tag (0008,0018).
+
+Because the DICOM standard guarantees the StudyInstanceUID,
+SeriesInstanceUID and SOPInstanceUID tags to be globally unique, the
+Orthanc identifiers for studies, series and instances are also
+globally unique (provided no hash collision occurs, which is highly
+improbable).
+
+The patient-level identifiers are *not* guaranteed to be globally
+unique, and might collide between different hospitals. For this
+reason, you should **always do queries at the study level** as soon as
+you deal with an application that handles patients from different
+hospitals.
+
+The actual implementation of the hashing is carried on by the
+`DicomInstanceHasher class
+<https://bitbucket.org/sjodogne/orthanc/src/default/Core/DicomFormat/DicomInstanceHasher.cpp>`_.
+
+
+The "Inexistent Tag" error
+--------------------------
+
+If you use an old version of Orthanc (< 0.7.4) and you receive the
+"*Exception while storing DICOM: Inexistent tag*" error while storing
+a DICOM instance into Orthanc, please make sure that all the 4
+following tags do exist in the DICOM file:
+
+* PatientID (0010,0020),
+* StudyInstanceUID (0020,000d),
+* SeriesInstanceUID (0020,000e),
+* SOPInstanceUID (0008,0018).
+
+These tags are all used to index the incoming DICOM instances. The
+error message is more explicit starting with Orthanc 0.7.4.