dcm_dict 0.4.0 → 0.5.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.
- checksums.yaml +4 -4
- data/CHANGELOG +3 -0
- data/LICENSE +1 -1
- data/README.md +15 -12
- 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 +24 -1
- data/lib/dcm_dict/source_data/detached_data.rb +1 -1
- data/lib/dcm_dict/source_data/uid_values_data.rb +3 -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 +1 -1
- 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 +4 -4
- 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 -2
- 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 +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f47d669fdcd05820d9eba72902b295e74383cffa
|
4
|
+
data.tar.gz: 8e481d11c9c41c5d6b6708db8d30bc9b59b2b783
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 68b88c8d2cd692fc121eeceab38f057e181d5679ea75c27856b7d8c70d4fee57840addd557d90d6b47365b548096213fba59c709b39186f5a50a7c77f28e1872
|
7
|
+
data.tar.gz: 8a1b41f6749314bd6e171e6165c5e7294723d53e42935eb087bcbe1eb9ba7d146a22a0127c5fa29a8174a4e0b550b578803a4749247e88bf445e373c5a842bee
|
data/CHANGELOG
CHANGED
data/LICENSE
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
DcmDict is a Ruby gem (dcm_dict) to handle
|
2
2
|
in a simple way the Data defined within the DICOM Standard.
|
3
3
|
|
4
|
-
Copyright (C) 2014 Enrico Rivarola
|
4
|
+
Copyright (C) 2014-2015 Enrico Rivarola
|
5
5
|
|
6
6
|
DcmDict is free software: you can redistribute it and/or modify
|
7
7
|
it under the terms of the GNU General Public License as published by
|
data/README.md
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# What's *DcmDict*
|
2
|
-
**DcmDict** is a Ruby gem (*dcm\_dict*) to handle in a simple way the Data defined within the [DICOM(r)][1] Standard such as DICOM Data Elements or DICOM Unique Identifiers.
|
2
|
+
**DcmDict** is a Ruby gem (*dcm\_dict*) to handle in a simple way the *Data Dictionary* defined within the [DICOM(r)][1] Standard such as DICOM Data Elements or DICOM Unique Identifiers.
|
3
3
|
|
4
4
|
# Why *DcmDict*
|
5
|
-
With the
|
6
|
-
|
5
|
+
With the new releases from year 2014 DICOM documents are available in different format including one particularly interesting, the *DocBook* XML version.
|
6
|
+
|
7
|
+
As D. Clunie writes on [his web site][2]:
|
7
8
|
|
8
9
|
> "... other formats (such as DocBook, HTML, Word and ODT) are also made available for the convenience of implementors who may need to extract machine-readable content, ..."
|
9
10
|
|
@@ -12,7 +13,9 @@ This is great news for anyone involved in the study of the standard !
|
|
12
13
|
Starting from this thing was born the idea of trying to automate the extraction of data from XML documents to make available the information in a simple way that simplifies the study of the DICOM standard, in the hope this idea will be useful and inspiration.
|
13
14
|
|
14
15
|
# *DcmDict* features
|
15
|
-
The library involve *String*, *Array* and *Symbol* class as *refinements* to access to DICOM information.
|
16
|
+
The library involve *String*, *Array* and *Symbol* class as *refinements* to access to DICOM information.
|
17
|
+
|
18
|
+
In this way is possible to *play* with the 'Patient's Birth Date' tag defined as (0010,0030) by:
|
16
19
|
|
17
20
|
```ruby
|
18
21
|
> "(0010,0030)".tag_name
|
@@ -67,7 +70,7 @@ for the Symbol object.
|
|
67
70
|
|
68
71
|
That's it.
|
69
72
|
|
70
|
-
**Note**: It is possible to use also the the *monkey patching* way, this is a *deprecated* utilization but possible, and, may be, useful technique in certain contexts or for some particular test. For the *monkey patching* is possible to include some specific *common modules*
|
73
|
+
**Note**: It is possible to use also the the *monkey patching* way, this is a *deprecated* utilization but possible, and, may be, useful technique in certain contexts or for some particular test. For the *monkey patching* is possible to include some specific *common modules* in the class you want to use as "keyword": there are two base modules *DcmDict::Refine::DataElementRefine* and *DcmDict::Refine::UidRefine*.
|
71
74
|
|
72
75
|
For example in the String class will have the code:
|
73
76
|
|
@@ -80,11 +83,11 @@ end
|
|
80
83
|
|
81
84
|
*The main way remains **Ruby Refinements***.
|
82
85
|
|
83
|
-
**Rubies compatibility**: at this moment the other considered rubies is only [Rubinius][4] (v2.2.10). In order to try to ensure a minimum compatibility there is a file under *lib/dcm_dict/rubies/* called *rb_ext.rb* able to *mask*/*simulates* the refinements
|
86
|
+
**Rubies compatibility**: at this moment the other considered rubies is only [Rubinius][4] (>= v2.2.10). In order to try to ensure a minimum compatibility there is a file under *lib/dcm_dict/rubies/* called *rb_ext.rb* able to *mask*/*simulates* the refinements by [refine gem][5] and add the required *bit_length* method to *Fixnum* class by [backports gem][6].
|
84
87
|
This sort of extension is not loaded by default but only into *spec files* for the *'rbx' Ruby Engine*. See *spec_helper.rb* and *rb_ext.rb* for details.
|
85
88
|
|
86
89
|
## Data Element data in detail
|
87
|
-
Any Data Element
|
90
|
+
Any Data Element feature can be accessed from a *String*, *Array* or *Symbol* objects.
|
88
91
|
|
89
92
|
For these objects is possible to access to Tag (group/element), Name, Keyword, Value Representation (VR) and Value Multiplicity (VM) for any single Data Element.
|
90
93
|
|
@@ -118,7 +121,7 @@ each data element is indexed by these fields:
|
|
118
121
|
|**tag_str** | String|
|
119
122
|
|**tag_name** | String|
|
120
123
|
|
121
|
-
|
124
|
+
By these fields is possible to access to data element informations.
|
122
125
|
Consider the case of the tag (0010,1005) (*Patient's Birth Name*), the primary fields are:
|
123
126
|
**'(0010,1005)'**, **"Patient's Birth Name"**, **'PatientBirthName'**, **:patient_birth_name**, **'00101005'** and **[0x0010,0x1005]**
|
124
127
|
|
@@ -255,7 +258,7 @@ For this uid all fields are expressed as:
|
|
255
258
|
```
|
256
259
|
|
257
260
|
## How data is extracted
|
258
|
-
The library also contains a script (*dcm_dict_converter.rb*
|
261
|
+
The library also contains a script (*dcm_dict_converter.rb* in the *bin* folder) able to download the xml documents and extracts the source data in a *Ruby compatible format*.
|
259
262
|
The script produces the conversion in the *stdout* so for example is possible to extract the Tag Values by:
|
260
263
|
|
261
264
|
```ruby
|
@@ -267,13 +270,13 @@ Note: the script use the [Nokogiri][3] as XML parser if installed as gem, otherw
|
|
267
270
|
Check the file for other details.
|
268
271
|
|
269
272
|
## Note
|
270
|
-
Current library version is aligned to *DICOM Base Standard **
|
273
|
+
Current library version is aligned to *DICOM Base Standard **2015b***
|
271
274
|
|
272
275
|
## Install
|
273
276
|
|
274
277
|
$ gem install dcm_dict
|
275
278
|
|
276
|
-
*Note for Windows users*: may be that it is installed a previous version of Ruby 2.1,
|
279
|
+
*Note for Windows users*: may be that it is installed a previous version of Ruby 2.1, if [RubyInstaller][7] does not provide the official release for the supported version it's still possible to make it manually by clone/download the ['git' version of RubyInstaller][8] and execute the rake command ```rake ruby21``` or equivalent (see RubyInstaller doc for details).
|
277
280
|
|
278
281
|
## What's next
|
279
282
|
The main idea is that *dictionary* should include only fixed data defined in the DICOM standard to encode and then make it available in easy way.
|
@@ -290,7 +293,7 @@ There are many possible *candidates* for inclusion in the *dictionary*, here are
|
|
290
293
|
TBD
|
291
294
|
|
292
295
|
## License
|
293
|
-
Copyright (C) 2014 Enrico Rivarola.
|
296
|
+
Copyright (C) 2014-2015 Enrico Rivarola.
|
294
297
|
See the `LICENSE` and `COPYING` files for license details.
|
295
298
|
|
296
299
|
## Ruby Gem
|
data/bin/dcm_dict_converter.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# -*- ruby -*-
|
3
3
|
#
|
4
|
-
# Copyright (C) 2014 Enrico Rivarola
|
4
|
+
# Copyright (C) 2014-2015 Enrico Rivarola
|
5
5
|
#
|
6
6
|
# This file is part of DcmDict gem (dcm_dict).
|
7
7
|
#
|
@@ -29,7 +29,7 @@ require 'dcm_dict'
|
|
29
29
|
require 'dcm_dict/xml/xml_tool'
|
30
30
|
|
31
31
|
LICENSE_TEXT=<<END_LICENSE
|
32
|
-
Copyright (C) 2014 Enrico Rivarola
|
32
|
+
Copyright (C) 2014-2015 Enrico Rivarola
|
33
33
|
|
34
34
|
This file is part of DcmDict gem (dcm_dict).
|
35
35
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
#
|
3
|
-
# Copyright (C) 2014 Enrico Rivarola
|
3
|
+
# Copyright (C) 2014-2015 Enrico Rivarola
|
4
4
|
#
|
5
5
|
# This file is part of DcmDict gem (dcm_dict).
|
6
6
|
#
|
@@ -1555,6 +1555,18 @@ HIGH = 0001H'},
|
|
1555
1555
|
{ tag_ps: '(0022,1468)', tag_name: "Registered Localizer Bottom Right Hand Corner", tag_key: 'RegisteredLocalizerBottomRightHandCorner', tag_vr: [:FL], tag_vm: ["2"], tag_str: '(0022,1468)', tag_sym: :registered_localizer_bottom_right_hand_corner, tag_ndm: '00221468', tag_ary: [0x0022,0x1468], tag_multiple: false, tag_note: ''},
|
1556
1556
|
{ tag_ps: '(0022,1470)', tag_name: "Ophthalmic Thickness Map Quality Rating Sequence", tag_key: 'OphthalmicThicknessMapQualityRatingSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1470)', tag_sym: :ophthalmic_thickness_map_quality_rating_sequence, tag_ndm: '00221470', tag_ary: [0x0022,0x1470], tag_multiple: false, tag_note: ''},
|
1557
1557
|
{ tag_ps: '(0022,1472)', tag_name: "Relevant OPT Attributes Sequence", tag_key: 'RelevantOPTAttributesSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1472)', tag_sym: :relevant_opt_attributes_sequence, tag_ndm: '00221472', tag_ary: [0x0022,0x1472], tag_multiple: false, tag_note: ''},
|
1558
|
+
{ tag_ps: '(0022,1512)', tag_name: "Transformation Method Code Sequence", tag_key: 'TransformationMethodCodeSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1512)', tag_sym: :transformation_method_code_sequence, tag_ndm: '00221512', tag_ary: [0x0022,0x1512], tag_multiple: false, tag_note: ''},
|
1559
|
+
{ tag_ps: '(0022,1513)', tag_name: "Transformation Algorithm Sequence", tag_key: 'TransformationAlgorithmSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1513)', tag_sym: :transformation_algorithm_sequence, tag_ndm: '00221513', tag_ary: [0x0022,0x1513], tag_multiple: false, tag_note: ''},
|
1560
|
+
{ tag_ps: '(0022,1515)', tag_name: "Ophthalmic Axial Length Method", tag_key: 'OphthalmicAxialLengthMethod', tag_vr: [:CS], tag_vm: ["1"], tag_str: '(0022,1515)', tag_sym: :ophthalmic_axial_length_method, tag_ndm: '00221515', tag_ary: [0x0022,0x1515], tag_multiple: false, tag_note: ''},
|
1561
|
+
{ tag_ps: '(0022,1517)', tag_name: "Ophthalmic FOV", tag_key: 'OphthalmicFOV', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(0022,1517)', tag_sym: :ophthalmic_fov, tag_ndm: '00221517', tag_ary: [0x0022,0x1517], tag_multiple: false, tag_note: ''},
|
1562
|
+
{ tag_ps: '(0022,1518)', tag_name: "Two Dimensional to Three Dimensional Map Sequence", tag_key: 'TwoDimensionalToThreeDimensionalMapSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1518)', tag_sym: :two_dimensional_to_three_dimensional_map_sequence, tag_ndm: '00221518', tag_ary: [0x0022,0x1518], tag_multiple: false, tag_note: ''},
|
1563
|
+
{ tag_ps: '(0022,1525)', tag_name: "Wide Field Ophthalmic Photography Quality Rating Sequence", tag_key: 'WideFieldOphthalmicPhotographyQualityRatingSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1525)', tag_sym: :wide_field_ophthalmic_photography_quality_rating_sequence, tag_ndm: '00221525', tag_ary: [0x0022,0x1525], tag_multiple: false, tag_note: ''},
|
1564
|
+
{ tag_ps: '(0022,1526)', tag_name: "Wide Field Ophthalmic Photography Quality Threshold Sequence", tag_key: 'WideFieldOphthalmicPhotographyQualityThresholdSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(0022,1526)', tag_sym: :wide_field_ophthalmic_photography_quality_threshold_sequence, tag_ndm: '00221526', tag_ary: [0x0022,0x1526], tag_multiple: false, tag_note: ''},
|
1565
|
+
{ tag_ps: '(0022,1527)', tag_name: "Wide Field Ophthalmic PhotographyThreshold Quality Rating", tag_key: 'WideFieldOphthalmicPhotographyThresholdQualityRating', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(0022,1527)', tag_sym: :wide_field_ophthalmic_photography_threshold_quality_rating, tag_ndm: '00221527', tag_ary: [0x0022,0x1527], tag_multiple: false, tag_note: ''},
|
1566
|
+
{ tag_ps: '(0022,1528)', tag_name: "X Coordinates Center Pixel View Angle", tag_key: 'XCoordinatesCenterPixelViewAngle', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(0022,1528)', tag_sym: :x_coordinates_center_pixel_view_angle, tag_ndm: '00221528', tag_ary: [0x0022,0x1528], tag_multiple: false, tag_note: ''},
|
1567
|
+
{ tag_ps: '(0022,1529)', tag_name: "Y Coordinates Center Pixel View Angle", tag_key: 'YCoordinatesCenterPixelViewAngle', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(0022,1529)', tag_sym: :y_coordinates_center_pixel_view_angle, tag_ndm: '00221529', tag_ary: [0x0022,0x1529], tag_multiple: false, tag_note: ''},
|
1568
|
+
{ tag_ps: '(0022,1530)', tag_name: "Number of Map Points", tag_key: 'NumberOfMapPoints', tag_vr: [:UL], tag_vm: ["1"], tag_str: '(0022,1530)', tag_sym: :number_of_map_points, tag_ndm: '00221530', tag_ary: [0x0022,0x1530], tag_multiple: false, tag_note: ''},
|
1569
|
+
{ tag_ps: '(0022,1531)', tag_name: "Two Dimensional to Three Dimensional Map Data", tag_key: 'TwoDimensionalToThreeDimensionalMapData', tag_vr: [:OF], tag_vm: ["1"], tag_str: '(0022,1531)', tag_sym: :two_dimensional_to_three_dimensional_map_data, tag_ndm: '00221531', tag_ary: [0x0022,0x1531], tag_multiple: false, tag_note: ''},
|
1558
1570
|
{ tag_ps: '(0024,0010)', tag_name: "Visual Field Horizontal Extent", tag_key: 'VisualFieldHorizontalExtent', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(0024,0010)', tag_sym: :visual_field_horizontal_extent, tag_ndm: '00240010', tag_ary: [0x0024,0x0010], tag_multiple: false, tag_note: ''},
|
1559
1571
|
{ tag_ps: '(0024,0011)', tag_name: "Visual Field Vertical Extent", tag_key: 'VisualFieldVerticalExtent', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(0024,0011)', tag_sym: :visual_field_vertical_extent, tag_ndm: '00240011', tag_ary: [0x0024,0x0011], tag_multiple: false, tag_note: ''},
|
1560
1572
|
{ tag_ps: '(0024,0012)', tag_name: "Visual Field Shape", tag_key: 'VisualFieldShape', tag_vr: [:CS], tag_vm: ["1"], tag_str: '(0024,0012)', tag_sym: :visual_field_shape, tag_ndm: '00240012', tag_ary: [0x0024,0x0012], tag_multiple: false, tag_note: ''},
|
@@ -3551,6 +3563,9 @@ HIGH = 0001H'},
|
|
3551
3563
|
{ tag_ps: '(300A,012C)', tag_name: "Isocenter Position", tag_key: 'IsocenterPosition', tag_vr: [:DS], tag_vm: ["3"], tag_str: '(300A,012C)', tag_sym: :isocenter_position, tag_ndm: '300A012C', tag_ary: [0x300A,0x012C], tag_multiple: false, tag_note: ''},
|
3552
3564
|
{ tag_ps: '(300A,012E)', tag_name: "Surface Entry Point", tag_key: 'SurfaceEntryPoint', tag_vr: [:DS], tag_vm: ["3"], tag_str: '(300A,012E)', tag_sym: :surface_entry_point, tag_ndm: '300A012E', tag_ary: [0x300A,0x012E], tag_multiple: false, tag_note: ''},
|
3553
3565
|
{ tag_ps: '(300A,0130)', tag_name: "Source to Surface Distance", tag_key: 'SourceToSurfaceDistance', tag_vr: [:DS], tag_vm: ["1"], tag_str: '(300A,0130)', tag_sym: :source_to_surface_distance, tag_ndm: '300A0130', tag_ary: [0x300A,0x0130], tag_multiple: false, tag_note: ''},
|
3566
|
+
{ tag_ps: '(300A,0131)', tag_name: "Average Beam Dose Point Source to External Contour Surface Distance", tag_key: 'AverageBeamDosePointSourceToExternalContourSurfaceDistance', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(300A,0131)', tag_sym: :average_beam_dose_point_source_to_external_contour_surface_distance, tag_ndm: '300A0131', tag_ary: [0x300A,0x0131], tag_multiple: false, tag_note: ''},
|
3567
|
+
{ tag_ps: '(300A,0132)', tag_name: "Source to External Contour Distance", tag_key: 'SourceToExternalContourDistance', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(300A,0132)', tag_sym: :source_to_external_contour_distance, tag_ndm: '300A0132', tag_ary: [0x300A,0x0132], tag_multiple: false, tag_note: ''},
|
3568
|
+
{ tag_ps: '(300A,0133)', tag_name: "External Contour Entry Point", tag_key: 'ExternalContourEntryPoint', tag_vr: [:FL], tag_vm: ["3"], tag_str: '(300A,0133)', tag_sym: :external_contour_entry_point, tag_ndm: '300A0133', tag_ary: [0x300A,0x0133], tag_multiple: false, tag_note: ''},
|
3554
3569
|
{ tag_ps: '(300A,0134)', tag_name: "Cumulative Meterset Weight", tag_key: 'CumulativeMetersetWeight', tag_vr: [:DS], tag_vm: ["1"], tag_str: '(300A,0134)', tag_sym: :cumulative_meterset_weight, tag_ndm: '300A0134', tag_ary: [0x300A,0x0134], tag_multiple: false, tag_note: ''},
|
3555
3570
|
{ tag_ps: '(300A,0140)', tag_name: "Table Top Pitch Angle", tag_key: 'TableTopPitchAngle', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(300A,0140)', tag_sym: :table_top_pitch_angle, tag_ndm: '300A0140', tag_ary: [0x300A,0x0140], tag_multiple: false, tag_note: ''},
|
3556
3571
|
{ tag_ps: '(300A,0142)', tag_name: "Table Top Pitch Rotation Direction", tag_key: 'TableTopPitchRotationDirection', tag_vr: [:CS], tag_vm: ["1"], tag_str: '(300A,0142)', tag_sym: :table_top_pitch_rotation_direction, tag_ndm: '300A0142', tag_ary: [0x300A,0x0142], tag_multiple: false, tag_note: ''},
|
@@ -3739,6 +3754,14 @@ HIGH = 0001H'},
|
|
3739
3754
|
{ tag_ps: '(300A,0434)', tag_name: "Applicator Opening X", tag_key: 'ApplicatorOpeningX', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(300A,0434)', tag_sym: :applicator_opening_x, tag_ndm: '300A0434', tag_ary: [0x300A,0x0434], tag_multiple: false, tag_note: ''},
|
3740
3755
|
{ tag_ps: '(300A,0435)', tag_name: "Applicator Opening Y", tag_key: 'ApplicatorOpeningY', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(300A,0435)', tag_sym: :applicator_opening_y, tag_ndm: '300A0435', tag_ary: [0x300A,0x0435], tag_multiple: false, tag_note: ''},
|
3741
3756
|
{ tag_ps: '(300A,0436)', tag_name: "Source to Applicator Mounting Position Distance", tag_key: 'SourceToApplicatorMountingPositionDistance', tag_vr: [:FL], tag_vm: ["1"], tag_str: '(300A,0436)', tag_sym: :source_to_applicator_mounting_position_distance, tag_ndm: '300A0436', tag_ary: [0x300A,0x0436], tag_multiple: false, tag_note: ''},
|
3757
|
+
{ tag_ps: '(300A,0440)', tag_name: "Number of Block Slab Items", tag_key: 'NumberOfBlockSlabItems', tag_vr: [:IS], tag_vm: ["1"], tag_str: '(300A,0440)', tag_sym: :number_of_block_slab_items, tag_ndm: '300A0440', tag_ary: [0x300A,0x0440], tag_multiple: false, tag_note: ''},
|
3758
|
+
{ tag_ps: '(300A,0441)', tag_name: "Block Slab Sequence", tag_key: 'BlockSlabSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(300A,0441)', tag_sym: :block_slab_sequence, tag_ndm: '300A0441', tag_ary: [0x300A,0x0441], tag_multiple: false, tag_note: ''},
|
3759
|
+
{ tag_ps: '(300A,0442)', tag_name: "Block Slab Thickness", tag_key: 'BlockSlabThickness', tag_vr: [:DS], tag_vm: ["1"], tag_str: '(300A,0442)', tag_sym: :block_slab_thickness, tag_ndm: '300A0442', tag_ary: [0x300A,0x0442], tag_multiple: false, tag_note: ''},
|
3760
|
+
{ tag_ps: '(300A,0443)', tag_name: "Block Slab Number", tag_key: 'BlockSlabNumber', tag_vr: [:US], tag_vm: ["1"], tag_str: '(300A,0443)', tag_sym: :block_slab_number, tag_ndm: '300A0443', tag_ary: [0x300A,0x0443], tag_multiple: false, tag_note: ''},
|
3761
|
+
{ tag_ps: '(300A,0450)', tag_name: "Device Motion Control Sequence", tag_key: 'DeviceMotionControlSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(300A,0450)', tag_sym: :device_motion_control_sequence, tag_ndm: '300A0450', tag_ary: [0x300A,0x0450], tag_multiple: false, tag_note: ''},
|
3762
|
+
{ tag_ps: '(300A,0451)', tag_name: "Device Motion Execution Mode", tag_key: 'DeviceMotionExecutionMode', tag_vr: [:CS], tag_vm: ["1"], tag_str: '(300A,0451)', tag_sym: :device_motion_execution_mode, tag_ndm: '300A0451', tag_ary: [0x300A,0x0451], tag_multiple: false, tag_note: ''},
|
3763
|
+
{ tag_ps: '(300A,0452)', tag_name: "Device Motion Observation Mode", tag_key: 'DeviceMotionObservationMode', tag_vr: [:CS], tag_vm: ["1"], tag_str: '(300A,0452)', tag_sym: :device_motion_observation_mode, tag_ndm: '300A0452', tag_ary: [0x300A,0x0452], tag_multiple: false, tag_note: ''},
|
3764
|
+
{ tag_ps: '(300A,0453)', tag_name: "Device Motion Parameter Code Sequence", tag_key: 'DeviceMotionParameterCodeSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(300A,0453)', tag_sym: :device_motion_parameter_code_sequence, tag_ndm: '300A0453', tag_ary: [0x300A,0x0453], tag_multiple: false, tag_note: ''},
|
3742
3765
|
{ tag_ps: '(300C,0002)', tag_name: "Referenced RT Plan Sequence", tag_key: 'ReferencedRTPlanSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(300C,0002)', tag_sym: :referenced_rt_plan_sequence, tag_ndm: '300C0002', tag_ary: [0x300C,0x0002], tag_multiple: false, tag_note: ''},
|
3743
3766
|
{ tag_ps: '(300C,0004)', tag_name: "Referenced Beam Sequence", tag_key: 'ReferencedBeamSequence', tag_vr: [:SQ], tag_vm: ["1"], tag_str: '(300C,0004)', tag_sym: :referenced_beam_sequence, tag_ndm: '300C0004', tag_ary: [0x300C,0x0004], tag_multiple: false, tag_note: ''},
|
3744
3767
|
{ tag_ps: '(300C,0006)', tag_name: "Referenced Beam Number", tag_key: 'ReferencedBeamNumber', tag_vr: [:IS], tag_vm: ["1"], tag_str: '(300C,0006)', tag_sym: :referenced_beam_number, tag_ndm: '300C0006', tag_ary: [0x300C,0x0006], tag_multiple: false, tag_note: ''},
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C) 2014 Enrico Rivarola
|
2
|
+
# Copyright (C) 2014-2015 Enrico Rivarola
|
3
3
|
#
|
4
4
|
# This file is part of DcmDict gem (dcm_dict).
|
5
5
|
#
|
@@ -222,6 +222,8 @@ module DcmDict
|
|
222
222
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.77.1.5.2', uid_name: "Ophthalmic Photography 16 Bit Image Storage", uid_type: :sop_class},
|
223
223
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.77.1.5.3', uid_name: "Stereometric Relationship Storage", uid_type: :sop_class},
|
224
224
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.77.1.5.4', uid_name: "Ophthalmic Tomography Image Storage", uid_type: :sop_class},
|
225
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.77.1.5.5', uid_name: "Wide Field Ophthalmic Photography Stereographic Projection Image Storage", uid_type: :sop_class},
|
226
|
+
{ uid_value: '1.2.840.10008.5.1.4.1.1.77.1.5.6', uid_name: "Wide Field Ophthalmic Photography 3D Coordinates Image Storage", uid_type: :sop_class},
|
225
227
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.77.1.6', uid_name: "VL Whole Slide Microscopy Image Storage", uid_type: :sop_class},
|
226
228
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.78.1', uid_name: "Lensometry Measurements Storage", uid_type: :sop_class},
|
227
229
|
{ uid_value: '1.2.840.10008.5.1.4.1.1.78.2', uid_name: "Autorefraction Measurements Storage", uid_type: :sop_class},
|
data/lib/dcm_dict/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C) 2014 Enrico Rivarola
|
2
|
+
# Copyright (C) 2014-2015 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.5.0"
|
26
|
+
DICOM_DOC_VERSION = "2015b"
|
27
27
|
end
|
data/lib/dcm_dict.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C) 2014 Enrico Rivarola
|
2
|
+
# Copyright (C) 2014-2015 Enrico Rivarola
|
3
3
|
#
|
4
4
|
# This file is part of DcmDict gem (dcm_dict).
|
5
5
|
#
|
@@ -52,12 +52,12 @@ describe DcmDict::Dictionary::DataElementRecord do
|
|
52
52
|
tag_multiple: false,
|
53
53
|
tag_note: ''},
|
54
54
|
{ tag_ps: '(0008,0118)',
|
55
|
-
tag_name: "
|
56
|
-
tag_key: '
|
55
|
+
tag_name: "Long Code Value",
|
56
|
+
tag_key: 'LongCodeValue',
|
57
57
|
tag_vr: [:UC],
|
58
58
|
tag_vm: ["1"],
|
59
59
|
tag_str: '(0008,0118)',
|
60
|
-
tag_sym: :
|
60
|
+
tag_sym: :long_code_value,
|
61
61
|
tag_ndm: '00080118',
|
62
62
|
tag_ary: [0x0008,0x0118],
|
63
63
|
tag_multiple: false,
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (C) 2014 Enrico Rivarola
|
2
|
+
# Copyright (C) 2014-2015 Enrico Rivarola
|
3
3
|
#
|
4
4
|
# This file is part of DcmDict gem (dcm_dict).
|
5
5
|
#
|
@@ -36,7 +36,6 @@ describe "Array refinement" do
|
|
36
36
|
multi_data = { [0x6046,0x0040] => {
|
37
37
|
tag_name: "Overlay Type",
|
38
38
|
tag_multiple: true,
|
39
|
-
tag_name: "Overlay Type",
|
40
39
|
tag_keyword: "OverlayType",
|
41
40
|
tag_key: "OverlayType",
|
42
41
|
tag_vr: [:CS], tag_vm: ["1"],
|
data/spec/spec_helper.rb
CHANGED
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.5.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: 2015-
|
11
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -90,8 +90,8 @@ dependencies:
|
|
90
90
|
- - ">="
|
91
91
|
- !ruby/object:Gem::Version
|
92
92
|
version: 10.3.0
|
93
|
-
description: DcmDict is a Ruby gem (dcm_dict) to handle in a simple way the Data
|
94
|
-
within the DICOM Standard
|
93
|
+
description: DcmDict is a Ruby gem (dcm_dict) to handle in a simple way the Data Dictionary
|
94
|
+
defined within the DICOM Standard
|
95
95
|
email: henrythebuilder@yahoo.it
|
96
96
|
executables:
|
97
97
|
- dcm_dict_converter.rb
|
@@ -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.6
|
183
183
|
signing_key:
|
184
184
|
specification_version: 4
|
185
185
|
summary: A simple way to handle DICOM Data Dictionary
|