dcm_dict 0.29.0 → 0.30.0

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