dcm_dict 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|