Dicom_UID 0.0.6 → 0.0.7

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