dcm_dict 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG +6 -0
- data/LICENSE +1 -1
- data/README.md +2 -2
- data/bin/dcm_dict_converter.rb +2 -2
- data/lib/dcm_dict/dictionary/base_dictionary.rb +1 -1
- data/lib/dcm_dict/dictionary/base_record.rb +1 -1
- data/lib/dcm_dict/dictionary/data_element_dictionary.rb +1 -1
- data/lib/dcm_dict/dictionary/data_element_record.rb +1 -1
- data/lib/dcm_dict/dictionary/uid_record.rb +1 -1
- data/lib/dcm_dict/encoder/data_to_code.rb +1 -1
- data/lib/dcm_dict/error/dictionary_error.rb +1 -1
- data/lib/dcm_dict/ext/object_extension.rb +1 -1
- data/lib/dcm_dict/refine/array_refine.rb +1 -1
- data/lib/dcm_dict/refine/data_element_refine.rb +1 -1
- data/lib/dcm_dict/refine/internal/array_refine_internal.rb +1 -1
- data/lib/dcm_dict/refine/internal/hash_refine_internal.rb +1 -1
- data/lib/dcm_dict/refine/internal/string_refine_internal.rb +1 -1
- data/lib/dcm_dict/refine/string_refine.rb +1 -1
- data/lib/dcm_dict/refine/symbol_refine.rb +1 -1
- data/lib/dcm_dict/refine/uid_refine.rb +1 -1
- data/lib/dcm_dict/rubies/rb_ext.rb +1 -1
- data/lib/dcm_dict/source_data/data_elements_data.rb +153 -19
- data/lib/dcm_dict/source_data/detached_data.rb +1 -1
- data/lib/dcm_dict/source_data/uid_values_data.rb +14 -1
- data/lib/dcm_dict/version.rb +3 -3
- data/lib/dcm_dict/xml/constant.rb +1 -1
- data/lib/dcm_dict/xml/field_data.rb +1 -1
- data/lib/dcm_dict/xml/nokogiri_tool.rb +1 -1
- data/lib/dcm_dict/xml/rexml_tool.rb +1 -1
- data/lib/dcm_dict/xml/tag_field_data.rb +1 -1
- data/lib/dcm_dict/xml/uid_field_data.rb +15 -4
- data/lib/dcm_dict/xml/xml_tool.rb +1 -1
- data/lib/dcm_dict.rb +1 -1
- data/spec/data_element_sample_spec_helper.rb +1 -1
- data/spec/data_element_shared_example_spec_helper.rb +1 -1
- data/spec/dcm_dict/dictionary/data_element_dictionary_spec.rb +1 -1
- data/spec/dcm_dict/dictionary/data_element_record_spec.rb +1 -1
- data/spec/dcm_dict/dictionary/uid_dictionary_spec.rb +9 -2
- data/spec/dcm_dict/dictionary/uid_record_spec.rb +1 -1
- data/spec/dcm_dict/encoder/data_to_code_spec.rb +1 -1
- data/spec/dcm_dict/ext/object_extension_spec.rb +1 -1
- data/spec/dcm_dict/refine/array_refine_spec.rb +1 -1
- data/spec/dcm_dict/refine/internal/array_refine_internal_spec.rb +1 -1
- data/spec/dcm_dict/refine/internal/hash_refine_internal_spec.rb +1 -1
- data/spec/dcm_dict/refine/internal/string_refine_internal_spec.rb +1 -1
- data/spec/dcm_dict/refine/string_refine_spec.rb +1 -1
- data/spec/dcm_dict/refine/symbol_refine_spec.rb +1 -1
- data/spec/dcm_dict/rubies/rb_ext_spec.rb +1 -1
- data/spec/dcm_dict/source_data/data_elements_data_spec.rb +1 -1
- data/spec/dcm_dict/source_data/detached_data_spec.rb +1 -1
- data/spec/dcm_dict/source_data/uid_values_data_spec.rb +1 -1
- data/spec/dcm_dict/version_spec.rb +1 -1
- data/spec/dcm_dict/xml/tag_field_data_spec.rb +1 -1
- data/spec/dcm_dict/xml/uid_field_data_spec.rb +1 -1
- data/spec/dictionary_shared_example_spec_helper.rb +1 -1
- data/spec/refine_shared_example_spec_helper.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data/spec/xml_sample_spec_helper.rb +36 -2
- metadata +3 -3
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
#
|
3
|
-
# Copyright (C) 2014-
|
3
|
+
# Copyright (C) 2014-2016 Enrico Rivarola
|
4
4
|
#
|
5
5
|
# This file is part of DcmDict gem (dcm_dict).
|
6
6
|
#
|
@@ -92,6 +92,7 @@ module DcmDict
|
|
92
92
|
{ uid_value: '1.2.840.10008.1.5.3', uid_name: "Hot Metal Blue Color Palette SOP Instance", uid_type: :well_known_sop_instance},
|
93
93
|
{ uid_value: '1.2.840.10008.1.5.4', uid_name: "PET 20 Step Color Palette SOP Instance", uid_type: :well_known_sop_instance},
|
94
94
|
{ uid_value: '1.2.840.10008.1.9', uid_name: "Basic Study Content Notification SOP Class (Retired)", uid_type: :sop_class},
|
95
|
+
{ uid_value: '1.2.840.10008.1.20', uid_name: "Papyrus 3 Implicit VR Little Endian (Retired)", uid_type: :transfer_syntax},
|
95
96
|
{ uid_value: '1.2.840.10008.1.20.1', uid_name: "Storage Commitment Push Model SOP Class", uid_type: :sop_class},
|
96
97
|
{ uid_value: '1.2.840.10008.1.20.1.1', uid_name: "Storage Commitment Push Model SOP Instance", uid_type: :well_known_sop_instance},
|
97
98
|
{ uid_value: '1.2.840.10008.1.20.2', uid_name: "Storage Commitment Pull Model SOP Class (Retired)", uid_type: :sop_class},
|
@@ -102,6 +103,11 @@ module DcmDict
|
|
102
103
|
{ uid_value: '1.2.840.10008.1.42.1', uid_name: "Substance Administration Logging SOP Instance", uid_type: :well_known_sop_instance},
|
103
104
|
{ uid_value: '1.2.840.10008.2.6.1', uid_name: "DICOM UID Registry", uid_type: :dicom_uids_as_a_coding_scheme},
|
104
105
|
{ uid_value: '1.2.840.10008.2.16.4', uid_name: "DICOM Controlled Terminology", uid_type: :coding_scheme},
|
106
|
+
{ uid_value: '1.2.840.10008.2.16.5', uid_name: "Adult Mouse Anatomy Ontology", uid_type: :coding_scheme},
|
107
|
+
{ uid_value: '1.2.840.10008.2.16.6', uid_name: "Uberon Ontology", uid_type: :coding_scheme},
|
108
|
+
{ uid_value: '1.2.840.10008.2.16.7', uid_name: "Integrated Taxonomic Information System (ITIS) Taxonomic Serial Number (TSN)", uid_type: :coding_scheme},
|
109
|
+
{ uid_value: '1.2.840.10008.2.16.8', uid_name: "Mouse Genome Initiative (MGI)", uid_type: :coding_scheme},
|
110
|
+
{ uid_value: '1.2.840.10008.2.16.9', uid_name: "PubChem Compound CID", uid_type: :coding_scheme},
|
105
111
|
{ uid_value: '1.2.840.10008.3.1.1.1', uid_name: "DICOM Application Context Name", uid_type: :application_context_name},
|
106
112
|
{ uid_value: '1.2.840.10008.3.1.2.1.1', uid_name: "Detached Patient Management SOP Class (Retired)", uid_type: :sop_class},
|
107
113
|
{ uid_value: '1.2.840.10008.3.1.2.1.4', uid_name: "Detached Patient Management Meta SOP Class (Retired)", uid_type: :meta_sop_class},
|
@@ -190,11 +196,14 @@ module DcmDict
|
|
190
196
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.11.3', uid_name: "Pseudo-Color Softcopy Presentation State Storage SOP Class", uid_type: :sop_class},
|
191
197
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.11.4', uid_name: "Blending Softcopy Presentation State Storage SOP Class", uid_type: :sop_class},
|
192
198
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.11.5', uid_name: "XA/XRF Grayscale Softcopy Presentation State Storage", uid_type: :sop_class},
|
199
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.11.6', uid_name: "Grayscale Planar MPR Volumetric Presentation State Storage", uid_type: :sop_class},
|
200
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.11.7', uid_name: "Compositing Planar MPR Volumetric Presentation State Storage", uid_type: :sop_class},
|
193
201
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.12.1', uid_name: "X-Ray Angiographic Image Storage", uid_type: :sop_class},
|
194
202
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.12.1.1', uid_name: "Enhanced XA Image Storage", uid_type: :sop_class},
|
195
203
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.12.2', uid_name: "X-Ray Radiofluoroscopic Image Storage", uid_type: :sop_class},
|
196
204
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.12.2.1', uid_name: "Enhanced XRF Image Storage", uid_type: :sop_class},
|
197
205
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.12.3', uid_name: "X-Ray Angiographic Bi-Plane Image Storage (Retired)", uid_type: :sop_class},
|
206
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.12.77', uid_name: "1.2.840.10008.5.1.4.1.1.12.77 (Retired)", uid_type: :sop_class},
|
198
207
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.13.1.1', uid_name: "X-Ray 3D Angiographic Image Storage", uid_type: :sop_class},
|
199
208
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.13.1.2', uid_name: "X-Ray 3D Craniofacial Image Storage", uid_type: :sop_class},
|
200
209
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.13.1.3', uid_name: "Breast Tomosynthesis Image Storage", uid_type: :sop_class},
|
@@ -204,12 +213,14 @@ module DcmDict
|
|
204
213
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.14.2', uid_name: "Intravascular Optical Coherence Tomography Image Storage - For Processing", uid_type: :sop_class},
|
205
214
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.20', uid_name: "Nuclear Medicine Image Storage", uid_type: :sop_class},
|
206
215
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.30', uid_name: "Parametric Map Storage", uid_type: :sop_class},
|
216
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.40', uid_name: "1.2.840.10008.5.1.4.1.1.40 (Retired)", uid_type: :sop_class},
|
207
217
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.66', uid_name: "Raw Data Storage", uid_type: :sop_class},
|
208
218
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.66.1', uid_name: "Spatial Registration Storage", uid_type: :sop_class},
|
209
219
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.66.2', uid_name: "Spatial Fiducials Storage", uid_type: :sop_class},
|
210
220
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.66.3', uid_name: "Deformable Spatial Registration Storage", uid_type: :sop_class},
|
211
221
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.66.4', uid_name: "Segmentation Storage", uid_type: :sop_class},
|
212
222
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.66.5', uid_name: "Surface Segmentation Storage", uid_type: :sop_class},
|
223
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.66.6', uid_name: "Tractography Results Storage", uid_type: :sop_class},
|
213
224
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.67', uid_name: "Real World Value Mapping Storage", uid_type: :sop_class},
|
214
225
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.68.1', uid_name: "Surface Scan Mesh Storage", uid_type: :sop_class},
|
215
226
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.68.2', uid_name: "Surface Scan Point Cloud Storage", uid_type: :sop_class},
|
@@ -258,6 +269,7 @@ module DcmDict
|
|
258
269
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.88.68', uid_name: "Radiopharmaceutical Radiation Dose SR Storage", uid_type: :sop_class},
|
259
270
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.88.69', uid_name: "Colon CAD SR Storage", uid_type: :sop_class},
|
260
271
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.88.70', uid_name: "Implantation Plan SR Storage", uid_type: :sop_class},
|
272
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.88.71', uid_name: "Acquisition Context SR Storage", uid_type: :sop_class},
|
261
273
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.104.1', uid_name: "Encapsulated PDF Storage", uid_type: :sop_class},
|
262
274
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.104.2', uid_name: "Encapsulated CDA Storage", uid_type: :sop_class},
|
263
275
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.128', uid_name: "Positron Emission Tomography Image Storage", uid_type: :sop_class},
|
@@ -319,6 +331,7 @@ module DcmDict
|
|
319
331
|
{ uid_value: '1.2.840.10008.5.1.4.34.7', uid_name: "RT Beams Delivery Instruction Storage", uid_type: :sop_class},
|
320
332
|
{ uid_value: '1.2.840.10008.5.1.4.34.8', uid_name: "RT Conventional Machine Verification", uid_type: :sop_class},
|
321
333
|
{ uid_value: '1.2.840.10008.5.1.4.34.9', uid_name: "RT Ion Machine Verification", uid_type: :sop_class},
|
334
|
+
{ uid_value: '1.2.840.10008.5.1.4.34.10', uid_name: "RT Brachy Application Setup Delivery Instruction Storage", uid_type: :sop_class},
|
322
335
|
{ uid_value: '1.2.840.10008.5.1.4.37.1', uid_name: "General Relevant Patient Information Query", uid_type: :sop_class},
|
323
336
|
{ uid_value: '1.2.840.10008.5.1.4.37.2', uid_name: "Breast Imaging Relevant Patient Information Query", uid_type: :sop_class},
|
324
337
|
{ uid_value: '1.2.840.10008.5.1.4.37.3', uid_name: "Cardiac Relevant Patient Information Query", uid_type: :sop_class},
|
data/lib/dcm_dict/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C) 2014-
|
2
|
+
# Copyright (C) 2014-2016 Enrico Rivarola
|
3
3
|
#
|
4
4
|
# This file is part of DcmDict gem (dcm_dict).
|
5
5
|
#
|
@@ -22,6 +22,6 @@
|
|
22
22
|
# applicable local, state, national or international regulations.
|
23
23
|
#
|
24
24
|
module DcmDict
|
25
|
-
VERSION = "0.
|
26
|
-
DICOM_DOC_VERSION = "
|
25
|
+
VERSION = "0.7.0"
|
26
|
+
DICOM_DOC_VERSION = "2016a"
|
27
27
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C) 2014-
|
2
|
+
# Copyright (C) 2014-2016 Enrico Rivarola
|
3
3
|
#
|
4
4
|
# This file is part of DcmDict gem (dcm_dict).
|
5
5
|
#
|
@@ -28,6 +28,8 @@ module DcmDict
|
|
28
28
|
class UidFieldData < FieldData
|
29
29
|
using DcmDict::Refine::Internal::StringRefineInternal
|
30
30
|
|
31
|
+
MISSING_NAME_VALUE = "(Retired)"
|
32
|
+
|
31
33
|
# Initialize object using +extract_proc+ as proc to extract data from xml element
|
32
34
|
def initialize(extract_proc)
|
33
35
|
super
|
@@ -40,9 +42,18 @@ module DcmDict
|
|
40
42
|
|
41
43
|
private
|
42
44
|
def extract_base_data
|
43
|
-
|
44
|
-
|
45
|
-
|
45
|
+
value = extract_content_data(:uid_value)
|
46
|
+
type = extract_content_data(:uid_type).uid_type_to_sym
|
47
|
+
name = check_uid_name_for(extract_content_data(:uid_name), value, type)
|
48
|
+
{ uid_value: value,
|
49
|
+
uid_name: name,
|
50
|
+
uid_type: type }
|
51
|
+
end
|
52
|
+
|
53
|
+
# patch for 2016a source data ...
|
54
|
+
def check_uid_name_for(name, value, type)
|
55
|
+
name = "#{value} #{MISSING_NAME_VALUE}" if (name == MISSING_NAME_VALUE)
|
56
|
+
name
|
46
57
|
end
|
47
58
|
end
|
48
59
|
end
|
data/lib/dcm_dict.rb
CHANGED
@@ -33,9 +33,15 @@ describe DcmDict::Dictionary::UidDictionary do
|
|
33
33
|
{
|
34
34
|
'1.2.3.4.5.6' => { :uid_value => '1.2.3.4.5.6',
|
35
35
|
:uid_name => 'Unknown UID',
|
36
|
-
:uid_type => :unknown }
|
36
|
+
:uid_type => :unknown },
|
37
|
+
'1.2.840.10008.5.1.4.1.1.12.77' => { :uid_value => '1.2.840.10008.5.1.4.1.1.12.77',
|
38
|
+
:uid_name => '1.2.840.10008.5.1.4.1.1.12.77 (Retired)',
|
39
|
+
:uid_type => :sop_class },
|
40
|
+
'1.2.840.10008.5.1.4.1.1.40' => { :uid_value => '1.2.840.10008.5.1.4.1.1.40',
|
41
|
+
:uid_name => '1.2.840.10008.5.1.4.1.1.40 (Retired)',
|
42
|
+
:uid_type => :sop_class }
|
37
43
|
}.each do |uid, data|
|
38
|
-
include_examples "Handle specific record",
|
44
|
+
include_examples "Handle specific record", data[:uid_name],
|
39
45
|
uid, data, DcmDict::Dictionary::TheUidDictionary
|
40
46
|
end
|
41
47
|
|
@@ -57,4 +63,5 @@ describe DcmDict::Dictionary::UidDictionary do
|
|
57
63
|
{uid_value: '1.2.840.10008.1.2',
|
58
64
|
uid_name: "Implicit VR Little Endian: Default Transfer Syntax for DICOM",
|
59
65
|
uid_type: :transfer_syntax}
|
66
|
+
|
60
67
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
#
|
3
|
-
# Copyright (C) 2014-
|
3
|
+
# Copyright (C) 2014-2016 Enrico Rivarola
|
4
4
|
#
|
5
5
|
# This file is part of DcmDict gem (dcm_dict).
|
6
6
|
#
|
@@ -526,8 +526,42 @@ END
|
|
526
526
|
{xml_string => data}
|
527
527
|
end
|
528
528
|
|
529
|
+
def self.uid_sample_retired_noname
|
530
|
+
xml_string=<<END
|
531
|
+
<book xmlns="http://docbook.org/ns/docbook">
|
532
|
+
<tr valign="top">
|
533
|
+
<td align="left" colspan="1" rowspan="1">
|
534
|
+
<para xml:id="para_0b48f6f3-b2fe-49cf-a870-c6d3635f4266">
|
535
|
+
<emphasis role="italic">1.2.840.10008.5.1.4.1.1.12.77</emphasis>
|
536
|
+
</para>
|
537
|
+
</td>
|
538
|
+
<td align="left" colspan="1" rowspan="1">
|
539
|
+
<para xml:id="para_6ca19788-eac9-4d90-b754-aaa06bebe9e9">
|
540
|
+
<emphasis role="italic">(Retired)</emphasis>
|
541
|
+
</para>
|
542
|
+
</td>
|
543
|
+
<td align="left" colspan="1" rowspan="1">
|
544
|
+
<para xml:id="para_ca5d2e50-63ea-4008-80ae-896296e83fdd">
|
545
|
+
<emphasis role="italic">SOP Class</emphasis>
|
546
|
+
</para>
|
547
|
+
</td>
|
548
|
+
<td align="center" colspan="1" rowspan="1">
|
549
|
+
<para xml:id="para_178cccfe-86a2-41a1-b905-70e5fbc5eebf">
|
550
|
+
<emphasis role="italic"/>
|
551
|
+
</para>
|
552
|
+
</td>
|
553
|
+
</tr>
|
554
|
+
</book>
|
555
|
+
END
|
556
|
+
data = {uid_value: "1.2.840.10008.5.1.4.1.1.12.77",
|
557
|
+
uid_name: "1.2.840.10008.5.1.4.1.1.12.77 (Retired)",
|
558
|
+
uid_type: :sop_class}
|
559
|
+
{xml_string => data}
|
560
|
+
end
|
561
|
+
|
529
562
|
def self.xml_uid_set
|
530
|
-
{}.merge(uid_single_standard)
|
563
|
+
{}.merge(uid_single_standard).
|
564
|
+
merge(uid_sample_retired_noname)
|
531
565
|
end
|
532
566
|
|
533
567
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dcm_dict
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Enrico Rivarola
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
179
|
version: '0'
|
180
180
|
requirements: []
|
181
181
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.4.
|
182
|
+
rubygems_version: 2.4.8
|
183
183
|
signing_key:
|
184
184
|
specification_version: 4
|
185
185
|
summary: A simple way to handle DICOM Data Dictionary
|