Dicom_UID 0.0.6 → 0.0.7

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.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -0
  3. data/lib/dicom_uid.rb +32 -24
  4. metadata +10 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6712bfe70973f9bba94bc7e2c610813418e734f200bd34afd49401f1595b1c62
4
- data.tar.gz: f0ebfd5e118fe348dff6ce77bb9143baa9d631aab88dad0e5818367c8425af72
3
+ metadata.gz: 5e97f4395a5d889ad19cadea15ef9a2f67da63e5964fffaef298e07bd7ca2a83
4
+ data.tar.gz: 4f21101d69cbbb846aa9a7ae1ab8e10cee598f7aecc7e34d03879f2d699d28fc
5
5
  SHA512:
6
- metadata.gz: 5a84f77886588c4e6633e40e39e21bc7b1b3f7437cab6772fdc07cb1b4c253daaf9d2e01ec7bde2efa2c449c3822fdc16aa51f29ec0045ead27d1fe4267c2db4
7
- data.tar.gz: 27b192b405982ae33ebc585f0f2b387ca3a800da8e7212b5d9c791076df93a326f22706a824911529139286c89c331556bbcfe69dd23f6270f4ded36366550af
6
+ metadata.gz: 5976568e36b27869d5d2caf36bd41b0356695021c264d29fc84c2f0071f48868f396737015900bfaf27bbf89d4a7e5ab4bdea36d415af380170c72fe41d1f777
7
+ data.tar.gz: d375cac73d04c5d1820b5c035ad9742d31954d06ff25577eed934d6a7b09b76a62cfff79f4a25a010ed2ce61f5671f2c4a88d0de81694300ac0facafd990d9f7
data/README.md ADDED
@@ -0,0 +1,8 @@
1
+ # DICOM UID Generator
2
+
3
+ Gem generating DICOM random UID
4
+
5
+
6
+ ### TODO
7
+
8
+ - parser/regex for checking if string is a correct UID
data/lib/dicom_uid.rb CHANGED
@@ -1,24 +1,14 @@
1
- # lib/dicom_uid.rb
2
-
3
1
  # DICOM UID Generator according to the DICOM documentation
4
2
  # http://dicom.nema.org/dicom/2013/output/chtml/part05/chapter_9.html
5
- # <org>.<suffix>
6
- class DicomUID
7
-
8
- attr_accessor :uid, :name
9
-
10
- def initialize name
11
- @uid = random_dicom_uid '', nil
12
- @name = name
13
- end
14
-
15
- def to_s
16
- 'UID : ' << @uid << ' NAME : ' << @name
17
- end
3
+ #
4
+ # The UID looks like the following <org>.<suffix>
5
+ # UID is composed of two main components, org and suffix. Components are separated by a dot and are only composed of decimals.
6
+ # The UID must not be more than 64 characters, dots included.
7
+ module DicomUID
18
8
 
19
9
 
20
- # Generates random component with random, defined, length
21
- def random_component length = 64, odd_byte_boundary
10
+ # Generates random component with random, defined, maximum length
11
+ def self.random_component length, odd_byte_boundary
22
12
 
23
13
  # randing length of number
24
14
  length_component = length - 1
@@ -40,25 +30,25 @@ class DicomUID
40
30
  end
41
31
 
42
32
 
43
- # Generate recursively a random dicom uid
44
- def rand_duid uid = '', remain
45
- comp = random_component remain
33
+ # Generates recursively a random dicom uid
34
+ def self.rand_duid uid, remain, obb
35
+ comp = self.random_component remain, obb
46
36
  remain -= comp.length
47
37
  uid << comp
48
38
 
49
39
  return uid if remain <= 0
50
40
 
51
41
  uid << '.'
52
- rand_duid uid, remain - 1
42
+ self.rand_duid uid, remain - 1, obb
53
43
  end
54
44
 
55
45
 
56
46
  # set default values, with org_root if needed
57
47
  # the size of the UID is randomized
58
- def random_dicom_uid org_root, fixed_size, odd_byte_boundary = true
48
+ def self.random_dicom_uid org_root, fixed_size, odd_byte_boundary = true
59
49
 
60
50
  # building the org root
61
- org_root ||= random_component# UID needs at least an org root
51
+ org_root = self.random_component(64, odd_byte_boundary) if org_root.empty?# UID needs at least an org root
62
52
  raise LeadingZeroError if org_root[0] == '0' and org_root.length != 1
63
53
  raise OddByteError if org_root[-2].to_i % 2 == 1 and org_root[-1] != 0 and odd_byte_boundary
64
54
  org_root << '.' if org_root[-1] != '.'
@@ -70,9 +60,27 @@ class DicomUID
70
60
  raise RangeError("Size of UID can't be negative") if fixed_size < 0
71
61
 
72
62
  # building the suffix
73
- rand_duid org_root, (fixed_size - org_root.length), odd_byte_boundary
63
+ self.rand_duid org_root, (fixed_size - org_root.length), odd_byte_boundary
74
64
  end
75
65
 
66
+
67
+
68
+
69
+
70
+
71
+ def self.random_uids org_root, fixed_size, array_size, odd_byte_boundary = true
72
+ uids = Array.new
73
+
74
+ array_size.times do
75
+ uids << random_dicom_uid org_root, fixed_size, odd_byte_boundary
76
+ end
77
+
78
+ uids
79
+ end
80
+
81
+
82
+
83
+
76
84
  end
77
85
 
78
86
  # EXCEPTIONS
metadata CHANGED
@@ -1,28 +1,30 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Dicom_UID
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Repain Paul
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-08 00:00:00.000000000 Z
11
+ date: 2019-05-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: Generates random uid for DICOM files
13
+ description: Generates random UID for DICOM files
14
14
  email: paul.repain@yahoo.com
15
15
  executables: []
16
16
  extensions: []
17
- extra_rdoc_files: []
17
+ extra_rdoc_files:
18
+ - README.md
18
19
  files:
20
+ - README.md
19
21
  - lib/dicom_uid.rb
20
- homepage: https://rubygems.org/gems/dicom_uid
22
+ homepage: https://rubygems.org/gems/Dicom_UID
21
23
  licenses:
22
24
  - MIT
23
25
  metadata:
24
- source_code_uri: https://github.com/Poulpy/dicom_uid
25
- post_install_message:
26
+ source_code_uri: https://github.com/Poulpy/DICOM-UID
27
+ post_install_message: Thanks for installing!
26
28
  rdoc_options: []
27
29
  require_paths:
28
30
  - lib
@@ -41,5 +43,5 @@ rubyforge_project:
41
43
  rubygems_version: 2.7.9
42
44
  signing_key:
43
45
  specification_version: 4
44
- summary: 4027613897609896144885579817926891251.445655382004259.49.58879.6
46
+ summary: Random DICOM UID generator
45
47
  test_files: []