dcm_dict 0.29.0 → 0.30.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.
@@ -22,6 +22,6 @@
22
22
  # applicable local, state, national or international regulations.
23
23
  #
24
24
  module DcmDict
25
- VERSION = "0.29.0"
26
- DICOM_DOC_VERSION = "2020c"
25
+ VERSION = "0.30.0"
26
+ DICOM_DOC_VERSION = "2020d"
27
27
  end
@@ -32,7 +32,8 @@ module DcmDict
32
32
 
33
33
  UidNodeSetIdx = { uid_value: 0,
34
34
  uid_name: 1,
35
- uid_type: 2}.freeze
35
+ uid_key: 2,
36
+ uid_type: 3}.freeze
36
37
 
37
38
  end
38
39
  end
@@ -27,6 +27,7 @@ module DcmDict
27
27
  # Class to handle uid data
28
28
  class UidFieldData < FieldData
29
29
  using DcmDict::Refine::Internal::StringRefineInternal
30
+ using DcmDict::Refine::Internal::HashRefineInternal
30
31
 
31
32
  MISSING_NAME_VALUE = "(Retired)"
32
33
 
@@ -38,18 +39,27 @@ module DcmDict
38
39
  # Extract and build uid data
39
40
  def uid_data
40
41
  extract_base_data
42
+ @data.check_base_data_uid_field!
43
+ # extend_base_data
44
+ @data
41
45
  end
42
46
 
43
47
  private
44
48
  def extract_base_data
45
49
  value = extract_content_data(:uid_value)
46
50
  type = extract_content_data(:uid_type).uid_type_to_sym
51
+ key = extract_content_data(:uid_key)
47
52
  name = check_uid_name_for(extract_content_data(:uid_name), value, type)
48
- { uid_value: value,
49
- uid_name: name,
50
- uid_type: type }
53
+ @data = { uid_value: value,
54
+ uid_name: name,
55
+ uid_type: type,
56
+ uid_key: key }
51
57
  end
52
58
 
59
+ # def extend_base_data
60
+ # @data[:uid_sym] = @data[:uid_key].tag_key_to_sym
61
+ # end
62
+
53
63
  # patch for 2016a source data ...
54
64
  def check_uid_name_for(name, value, type)
55
65
  name = "#{value} #{MISSING_NAME_VALUE}" if (name == MISSING_NAME_VALUE)
@@ -24,37 +24,73 @@ require 'spec_helper'
24
24
  describe DcmDict::Dictionary::UidDictionary do
25
25
 
26
26
  include_examples "Map all source data",
27
- [:uid_value, :uid_name],
27
+ [:uid_value, :uid_name, :uid_key, :uid_sym],
28
28
  DcmDict::SourceData::UidValuesData,
29
29
  DcmDict::Dictionary::TheUidDictionary,
30
30
  DcmDict::Dictionary::UidRecord,
31
- [:uid_value, :uid_name, :uid_type]
31
+ [:uid_value, :uid_name, :uid_key, :uid_sym, :uid_type]
32
32
 
33
33
  {
34
34
  '1.2.3.4.5.6' => { :uid_value => '1.2.3.4.5.6',
35
- :uid_name => 'Unknown UID',
36
- :uid_type => :unknown },
35
+ :uid_name => '1.2.3.4.5.6 (Unknown UID)',
36
+ :uid_type => :unknown,
37
+ :uid_key => 'UID_1_2_3_4_5_6',
38
+ :uid_sym => :uid_1_2_3_4_5_6,
39
+ },
37
40
  '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
41
  :uid_name => '1.2.840.10008.5.1.4.1.1.12.77 (Retired)',
39
- :uid_type => :sop_class },
42
+ :uid_key => 'UID_1_2_840_10008_5_1_4_1_1_12_77',
43
+ :uid_sym => :uid_1_2_840_10008_5_1_4_1_1_12_77,
44
+ :uid_type => :sop_class
45
+ },
46
+ '1.2.840.10008.5.1.4.1.1.12.77 (Retired)' => { :uid_value => '1.2.840.10008.5.1.4.1.1.12.77',
47
+ :uid_name => '1.2.840.10008.5.1.4.1.1.12.77 (Retired)',
48
+ :uid_key => 'UID_1_2_840_10008_5_1_4_1_1_12_77',
49
+ :uid_sym => :uid_1_2_840_10008_5_1_4_1_1_12_77,
50
+ :uid_type => :sop_class
51
+ },
52
+ 'UID_1_2_840_10008_5_1_4_1_1_12_77' => { :uid_value => '1.2.840.10008.5.1.4.1.1.12.77',
53
+ :uid_name => '1.2.840.10008.5.1.4.1.1.12.77 (Retired)',
54
+ :uid_key => 'UID_1_2_840_10008_5_1_4_1_1_12_77',
55
+ :uid_sym => :uid_1_2_840_10008_5_1_4_1_1_12_77,
56
+ :uid_type => :sop_class
57
+ },
58
+ :uid_1_2_840_10008_5_1_4_1_1_12_77 => { :uid_value => '1.2.840.10008.5.1.4.1.1.12.77',
59
+ :uid_name => '1.2.840.10008.5.1.4.1.1.12.77 (Retired)',
60
+ :uid_key => 'UID_1_2_840_10008_5_1_4_1_1_12_77',
61
+ :uid_sym => :uid_1_2_840_10008_5_1_4_1_1_12_77,
62
+ :uid_type => :sop_class
63
+ },
40
64
  '1.2.840.10008.5.1.4.1.1.40' => { :uid_value => '1.2.840.10008.5.1.4.1.1.40',
41
65
  :uid_name => '1.2.840.10008.5.1.4.1.1.40 (Retired)',
42
- :uid_type => :sop_class },
66
+ :uid_key => 'UID_1_2_840_10008_5_1_4_1_1_40',
67
+ :uid_sym => :uid_1_2_840_10008_5_1_4_1_1_40,
68
+ :uid_type => :sop_class
69
+ },
43
70
  '1.2.840.10008.5.1.4.39.3' => { :uid_value => '1.2.840.10008.5.1.4.39.3',
44
71
  :uid_name => 'Color Palette Query/Retrieve Information Model - MOVE',
45
- :uid_type => :sop_class },
46
- '1.2.840.10008.5.1.4.34.6.5' => { :uid_value => '1.2.840.10008.5.1.4.34.6.5',
47
- :uid_name => 'Unified Procedure Step - Query SOP Class',
48
- :uid_type => :sop_class },
49
- '1.2.840.10008.1.2.4.70' => { :uid_value => '1.2.840.10008.1.2.4.70',
50
- :uid_name => "JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression",
51
- :uid_type => :transfer_syntax},
52
- '1.2.840.10008.1.2.4.60' => { :uid_value => '1.2.840.10008.1.2.4.60',
53
- :uid_name => 'JPEG Extended, Hierarchical (Process 17 & 19) (Retired)',
54
- :uid_type => :transfer_syntax },
55
- '1.2.840.10008.5.1.4.1.1.481.19'=> { :uid_value => '1.2.840.10008.5.1.4.1.1.481.19',
56
- :uid_name => "C-Arm Photon-Electron Radiation Record Storage",
57
- :uid_type => :sop_class},
72
+ :uid_key => 'ColorPaletteQueryRetrieveInformationModelMove',
73
+ :uid_sym => :color_palette_query_retrieve_information_model_move,
74
+ :uid_type => :sop_class
75
+ },
76
+ 'Color Palette Query/Retrieve Information Model - MOVE' => { :uid_value => '1.2.840.10008.5.1.4.39.3',
77
+ :uid_name => 'Color Palette Query/Retrieve Information Model - MOVE',
78
+ :uid_key => 'ColorPaletteQueryRetrieveInformationModelMove',
79
+ :uid_sym => :color_palette_query_retrieve_information_model_move,
80
+ :uid_type => :sop_class
81
+ },
82
+ 'ColorPaletteQueryRetrieveInformationModelMove' => { :uid_value => '1.2.840.10008.5.1.4.39.3',
83
+ :uid_name => 'Color Palette Query/Retrieve Information Model - MOVE',
84
+ :uid_key => 'ColorPaletteQueryRetrieveInformationModelMove',
85
+ :uid_sym => :color_palette_query_retrieve_information_model_move,
86
+ :uid_type => :sop_class
87
+ },
88
+ :color_palette_query_retrieve_information_model_move => { :uid_value => '1.2.840.10008.5.1.4.39.3',
89
+ :uid_name => 'Color Palette Query/Retrieve Information Model - MOVE',
90
+ :uid_key => 'ColorPaletteQueryRetrieveInformationModelMove',
91
+ :uid_sym => :color_palette_query_retrieve_information_model_move,
92
+ :uid_type => :sop_class
93
+ },
58
94
  }.each do |uid, data|
59
95
  include_examples "Handle specific record", data[:uid_name],
60
96
  uid, data, DcmDict::Dictionary::TheUidDictionary
@@ -64,7 +100,7 @@ describe DcmDict::Dictionary::UidDictionary do
64
100
  '1.2.abc.3.4', 'this string is not a valid uid', '1.2.3.04.5'
65
101
  ].each do |uid|
66
102
  include_examples "Dictionary with wrong key",
67
- uid, [:uid_value, :uid_name, :uid_type],
103
+ uid, [:uid_value, :uid_name, :uid_type, :uid_key, :uid_sym],
68
104
  DcmDict::Dictionary::TheUidDictionary
69
105
  end
70
106
 
@@ -1,3 +1,4 @@
1
+ # coding: utf-8
1
2
  #
2
3
  # Copyright (C) 2014-2020 Enrico Rivarola
3
4
  #
@@ -27,14 +28,17 @@ describe DcmDict::Dictionary::UidRecord do
27
28
  [
28
29
  { uid_value: '1.2.840.10008.1.2',
29
30
  uid_name: "Implicit VR Little Endian: Default Transfer Syntax for DICOM",
31
+ uid_key: "ImplicitVRLittleEndian",
32
+ uid_sym: :implicit_vr_little_endian,
30
33
  uid_type: :transfer_syntax }
31
34
  ].each do |data|
32
- it "Handle Data Element Data correctly" do
35
+ it "Handle Data Element Data correctly (#{data[:uid_name]})" do
33
36
  ur = DcmDict::Dictionary::UidRecord.new(data.dup)
34
37
  expect(ur.uid_value).to eq(data[:uid_value])
35
38
  expect(ur.uid).to eq(data[:uid_value])
36
39
  expect(ur.uid_name).to eq(data[:uid_name])
37
40
  expect(ur.uid_type).to eq(data[:uid_type])
41
+ expect(ur.uid_key).to eq(data[:uid_key])
38
42
  end
39
43
 
40
44
 
@@ -42,12 +46,12 @@ describe DcmDict::Dictionary::UidRecord do
42
46
  DcmDict::Dictionary::UidRecord.new(data),
43
47
  data
44
48
 
45
- it "data should be not modifiable" do
49
+ it "data should be not modifiable (#{data[:uid_name]})" do
46
50
  uid = DcmDict::Dictionary::UidRecord.new(data.dup)
47
51
  old_value = uid.uid_value.dup
48
52
  expect{uid.uid_value << 'aaa'}.to raise_error(RuntimeError)
49
53
  expect(uid.uid_value).to eq(old_value)
50
54
  end
51
-
52
55
  end
56
+
53
57
  end
@@ -92,7 +92,7 @@ END
92
92
  XmlSampleSpecHelper.xml_uid_set.each do |xml_string, data|
93
93
  it "for uid sample as #{data[:uid_value].inspect}" do
94
94
  indent = 4
95
- src_text = "#{' '*indent}{ uid_value: '#{data[:uid_value]}', uid_name: \"#{data[:uid_name]}\", uid_type: #{data[:uid_type].inspect}},"
95
+ src_text = "#{' '*indent}{ uid_value: '#{data[:uid_value]}', uid_name: '#{data[:uid_name]}', uid_key: '#{data[:uid_key]}', uid_sym: #{data[:uid_sym].inspect}, uid_type: #{data[:uid_type].inspect}},"
96
96
  src_line = DcmDict::Encoder::DataToCode.uid_data_to_code(data)
97
97
  expect(src_line).to eq(src_text)
98
98
  src_line = DcmDict::Encoder::DataToCode.uid_data_to_code(data, indent)
@@ -26,6 +26,24 @@ require 'spec_helper'
26
26
  describe "Hash internal refinement" do
27
27
  using DcmDict::Refine::Internal::HashRefineInternal
28
28
 
29
+ {
30
+ '1.2.3.4.5.6' => { :uid_value => '1.2.3.4.5.6',
31
+ :uid_name => '1.2.3.4.5.6 (Unknown UID)',
32
+ :uid_type => :unknown,
33
+ :uid_key => 'UID_1_2_3_4_5_6',
34
+ :uid_sym => :uid_1_2_3_4_5_6,
35
+ }
36
+ }.each do |uid_ref, expected_data|
37
+ it "should check base uid fields for '#{uid_ref}" do
38
+ data = {uid_value: uid_ref}
39
+ data.check_base_data_uid_field!
40
+ expect(data).to eq(expected_data)
41
+ end
42
+
43
+ end
44
+
45
+
46
+
29
47
  it "should check for lowercase tag_ps field" do
30
48
  h = {tag_ps: '(fffe,E000)'}
31
49
  h.check_tag_ps!
@@ -60,9 +60,9 @@ describe "String refinement" do
60
60
  describe "should permit access to single data uid dictionary information" do
61
61
  describe "for regular uids" do
62
62
  [
63
- '1.2.840.10008.1.1', "Verification SOP Class",
64
- '1.2.840.10008.1.2.1', "Explicit VR Little Endian",
65
- '1.2.840.10008.5.1.4.1.2.1.1', "Patient Root Query/Retrieve Information Model - FIND",
63
+ '1.2.840.10008.1.1', "Verification SOP Class", 'Verification',
64
+ '1.2.840.10008.1.2.1', "Explicit VR Little Endian", 'ExplicitVRLittleEndian',
65
+ '1.2.840.10008.5.1.4.1.2.1.1', "Patient Root Query/Retrieve Information Model - FIND", 'PatientRootQueryRetrieveInformationModelFind',
66
66
  '1.2.3.4.5.6'
67
67
  ].each do |uid|
68
68
  describe "as #{uid.inspect}" do
@@ -38,4 +38,29 @@ describe "Symbol refinement" do
38
38
  [],
39
39
  Proc.new {|tag| tag.inspect}
40
40
 
41
+ {
42
+ :uid_1_2_840_10008_5_1_4_1_1_12_77 => { :uid_value => '1.2.840.10008.5.1.4.1.1.12.77',
43
+ :uid => '1.2.840.10008.5.1.4.1.1.12.77',
44
+ :uid_name => '1.2.840.10008.5.1.4.1.1.12.77 (Retired)',
45
+ :uid_key => 'UID_1_2_840_10008_5_1_4_1_1_12_77',
46
+ :uid_sym => :uid_1_2_840_10008_5_1_4_1_1_12_77,
47
+ :uid_type => :sop_class
48
+ },
49
+ :color_palette_query_retrieve_information_model_move => { :uid_value => '1.2.840.10008.5.1.4.39.3',
50
+ :uid => '1.2.840.10008.5.1.4.39.3',
51
+ :uid_name => 'Color Palette Query/Retrieve Information Model - MOVE',
52
+ :uid_key => 'ColorPaletteQueryRetrieveInformationModelMove',
53
+ :uid_sym => :color_palette_query_retrieve_information_model_move,
54
+ :uid_type => :sop_class
55
+ },
56
+ }.each do |sym, sym_data|
57
+ it "for uid as symbol (#{sym.inspect})" do
58
+ DcmDict::Dictionary::UidMethod.each do |method|
59
+ expr = "#{sym.inspect}.#{method.to_s}"
60
+ expected_value = sym_data[method]
61
+ value = eval(expr)
62
+ expect(value).to eq(expected_value)
63
+ end
64
+ end
65
+ end
41
66
  end
@@ -502,26 +502,33 @@ END
502
502
  end
503
503
 
504
504
  def self.uid_single_standard
505
- xml_string=<<END
505
+ xml_string=<<END
506
506
  <book xmlns="http://docbook.org/ns/docbook">
507
- <tr valign="top">
508
- <td align="left" colspan="1" rowspan="1">
509
- <para>1.2.840.10008.1.​2</para>
510
- </td>
511
- <td align="left" colspan="1" rowspan="1">
512
- <para>Implicit VR Little Endian: Default Transfer Syntax for DICOM</para>
513
- </td>
514
- <td align="left" colspan="1" rowspan="1">
515
- <para>Transfer Syntax</para>
516
- </td>
517
- <td align="center" colspan="1" rowspan="1">
518
- <para><olink targetdoc="PS3.5" targetptr="PS3.5" xrefstyle="select: labelnumber"/></para>
519
- </td>
520
- </tr>
507
+ <tr valign="top">
508
+ <td align="left" colspan="1" rowspan="1">
509
+ <para xml:id="para_893becfb-16cd-4300-923d-e422781af211">1.2.840.10008.1.​2</para>
510
+ </td>
511
+ <td align="left" colspan="1" rowspan="1">
512
+ <para xml:id="para_ccbbb435-5d2e-4d4d-b2c2-a27a5a762f75">Implicit VR Little Endian: Default Transfer Syntax for DICOM</para>
513
+ </td>
514
+ <td align="left" colspan="1" rowspan="1">
515
+ <para xml:id="para_6871172d-db56-4b45-b5d5-446f82a22c89">Implicit​VR​Little​Endian</para>
516
+ </td>
517
+ <td align="left" colspan="1" rowspan="1">
518
+ <para xml:id="para_6e075f3d-2392-4c57-908c-889b50ebcbcd">Transfer Syntax</para>
519
+ </td>
520
+ <td align="center" colspan="1" rowspan="1">
521
+ <para xml:id="para_c2a11bee-08cc-422f-a64c-01dcb4baf73b">
522
+ <olink targetdoc="PS3.5" targetptr="PS3.5" xrefstyle="select: labelnumber"/>
523
+ </para>
524
+ </td>
525
+ </tr>
521
526
  </book>
522
527
  END
523
528
  data = {uid_value: "1.2.840.10008.1.2",
524
529
  uid_name: "Implicit VR Little Endian: Default Transfer Syntax for DICOM",
530
+ uid_key: 'ImplicitVRLittleEndian',
531
+ uid_sym: :implicit_vr_little_endian,
525
532
  uid_type: :transfer_syntax}
526
533
  {xml_string => data}
527
534
  end
@@ -529,39 +536,80 @@ END
529
536
  def self.uid_sample_retired_noname
530
537
  xml_string=<<END
531
538
  <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>
539
+ <tr valign="top">
540
+ <td align="left" colspan="1" rowspan="1">
541
+ <para xml:id="para_0b48f6f3-b2fe-49cf-a870-c6d3635f4266">
542
+ <emphasis role="italic">1.2.840.10008.​5.​1.​4.​1.​1.​12.​77</emphasis>
543
+ </para>
544
+ </td>
545
+ <td align="left" colspan="1" rowspan="1">
546
+ <para xml:id="para_6ca19788-eac9-4d90-b754-aaa06bebe9e9">
547
+ <emphasis role="italic">(Retired)</emphasis>
548
+ </para>
549
+ </td>
550
+ <td align="left" colspan="1" rowspan="1">
551
+ <para xml:id="para_336821ef-5d70-4332-9b88-f4704825ac91">
552
+ <emphasis role="italic"/>
536
553
  </para>
554
+ </td>
555
+ <td align="left" colspan="1" rowspan="1">
556
+ <para xml:id="para_ca5d2e50-63ea-4008-80ae-896296e83fdd">
557
+ <emphasis role="italic">SOP Class</emphasis>
558
+ </para>
559
+ </td>
560
+ <td align="center" colspan="1" rowspan="1">
561
+ <para xml:id="para_178cccfe-86a2-41a1-b905-70e5fbc5eebf">
562
+ <emphasis role="italic">(2015c)</emphasis>
563
+ </para>
564
+ </td>
565
+ </tr>
566
+ </book>
567
+ END
568
+ data = {uid_value: "1.2.840.10008.5.1.4.1.1.12.77",
569
+ uid_name: "1.2.840.10008.5.1.4.1.1.12.77 (Retired)",
570
+ uid_key: 'UID_1_2_840_10008_5_1_4_1_1_12_77',
571
+ uid_sym: :uid_1_2_840_10008_5_1_4_1_1_12_77,
572
+ uid_type: :sop_class}
573
+ {xml_string => data}
574
+ end
575
+
576
+ def self.uid_standard_sop
577
+ xml_string=<<END
578
+ <book xmlns="http://docbook.org/ns/docbook">
579
+ <tr valign="top">
580
+ <td align="left" colspan="1" rowspan="1">
581
+ <para xml:id="para_de68fe97-b7cf-497e-af8f-a653669ac4e4">1.2.840.10008.1.​1</para>
537
582
  </td>
538
583
  <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>
584
+ <para xml:id="para_935df29c-2e6c-4d50-aa93-83225337b0ba">Verification SOP Class</para>
542
585
  </td>
543
586
  <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>
587
+ <para xml:id="para_5b280f39-109f-416f-bbc7-fb65409d9574">Verification</para>
588
+ </td>
589
+ <td align="left" colspan="1" rowspan="1">
590
+ <para xml:id="para_5e8dcea9-7c49-4751-b561-ca8a41698555">SOP Class</para>
547
591
  </td>
548
592
  <td align="center" colspan="1" rowspan="1">
549
- <para xml:id="para_178cccfe-86a2-41a1-b905-70e5fbc5eebf">
550
- <emphasis role="italic"/>
551
- </para>
593
+ <para xml:id="para_d37461b4-5537-4bf6-98b1-ded888b9b028">
594
+ <olink targetdoc="PS3.4" targetptr="PS3.4" xrefstyle="select: labelnumber"/>
595
+ </para>
552
596
  </td>
553
597
  </tr>
598
+
554
599
  </book>
555
600
  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)",
601
+ data = {uid_value: "1.2.840.10008.1.1",
602
+ uid_name: "Verification SOP Class",
603
+ uid_key: 'Verification',
604
+ uid_sym: :verification,
558
605
  uid_type: :sop_class}
559
606
  {xml_string => data}
560
607
  end
561
608
 
562
609
  def self.xml_uid_set
563
610
  {}.merge(uid_single_standard).
564
- merge(uid_sample_retired_noname)
611
+ merge(uid_sample_retired_noname).
612
+ merge(uid_standard_sop)
565
613
  end
566
614
 
567
615
  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.29.0
4
+ version: 0.30.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: 2020-07-21 00:00:00.000000000 Z
11
+ date: 2020-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -165,7 +165,7 @@ licenses:
165
165
  metadata:
166
166
  bug_tracker_uri: https://github.com/henrythebuilder/dcm_dict/issues
167
167
  changelog_uri: https://github.com/henrythebuilder/dcm_dict/blob/master/CHANGELOG.md
168
- documentation_uri: http://www.rubydoc.info/gems/dcm_dict/0.29.0
168
+ documentation_uri: http://www.rubydoc.info/gems/dcm_dict/0.30.0
169
169
  homepage_uri: http://rubygems.org/gems/dcm_dict
170
170
  source_code_uri: https://github.com/henrythebuilder/dcm_dict
171
171
  post_install_message:
@@ -183,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
183
  - !ruby/object:Gem::Version
184
184
  version: '0'
185
185
  requirements: []
186
- rubygems_version: 3.1.2
186
+ rubygems_version: 3.1.4
187
187
  signing_key:
188
188
  specification_version: 4
189
189
  summary: A simple way to handle DICOM Data Dictionary