Class: OpenEHR::RM::DataStructures::ItemStructure::ItemTable
Constant Summary
Common::Archetyped::LocaterConstants::CONTENT_PATH_SEPARATOR, Common::Archetyped::LocaterConstants::CURRENT_TRANSACTION_ID, Common::Archetyped::LocaterConstants::FRAGMENT_SEPARATOR, Common::Archetyped::LocaterConstants::MULTIPART_ID_DELIMITER, Common::Archetyped::LocaterConstants::ORGANIZER_PATH_SEPARATOR
Instance Attribute Summary collapse
#archetype_details, #archetype_node_id, #feeder_audit, #links, #name, #uid
#parent
Instance Method Summary
collapse
#concept, #is_archetype_root?
#item_at_path, #items_at_path, normalize_path, path_attribute, path_attributes, #path_children, #path_exists?, #path_of_item, #path_unique?, select_by_predicate
Constructor Details
#initialize(args = {}) ⇒ ItemTable
Returns a new instance of ItemTable.
80
81
82
83
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 80
def initialize(args = {})
super(args)
self.rows = args[:rows]
end
|
Instance Attribute Details
#rows ⇒ Object
Returns the value of attribute rows.
77
78
79
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 77
def rows
@rows
end
|
Instance Method Details
#as_hierarchy ⇒ Object
183
184
185
186
187
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 183
def as_hierarchy
return Cluster.new(:name => @name,
:archetype_node_id => @archetype_node_id,
:items => @rows)
end
|
#column_count ⇒ Object
93
94
95
96
97
98
99
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 93
def column_count
if @rows.nil?
return 0
else
return @rows[0].items.count
end
end
|
#column_names ⇒ Object
109
110
111
112
113
114
115
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 109
def column_names
if @rows.nil?
return []
else
return @rows[0].items.collect{|i| i.name}
end
end
|
#element_at_cell_ij(i, j) ⇒ Object
165
166
167
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 165
def element_at_cell_ij(i,j)
return @rows[i-1].items[j-1]
end
|
#element_at_named_cell(row_key, column_key) ⇒ Object
169
170
171
172
173
174
175
176
177
178
179
180
181
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 169
def element_at_named_cell(row_key, column_key)
column_index = 0
@rows[0].items.each do |c|
break if c.name.value == column_key
column_index += 1
end
row_index = 0
@rows.each do |row|
break if row.name.value == row_key
row_index += 1
end
return element_at_cell_ij(row_index + 1, column_index + 1)
end
|
#has_column_with_name?(key) ⇒ Boolean
130
131
132
133
134
135
136
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 130
def has_column_with_name?(key)
raise ArgumentError, 'invalid argument' if key.nil? or key.empty?
self.column_names.each do |name|
return true if name.value == key
end
return false
end
|
#has_row_with_key?(keys) ⇒ Boolean
145
146
147
148
149
150
151
152
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 145
def has_row_with_key?(keys)
keys.each do |key|
@rows.each do |row|
return true if row.items[0].name.value == key
end
end
return false
end
|
#has_row_with_name?(key) ⇒ Boolean
122
123
124
125
126
127
128
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 122
def has_row_with_name?(key)
raise ArgumentError, 'invalid argument' if key.nil? or key.empty?
@rows.each do |row|
return true if row.items[0].name.value == key
end
return false
end
|
#ith_row(i) ⇒ Object
117
118
119
120
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 117
def ith_row(i)
raise ArgumentError, 'invalid index' if i<=0 or i>@rows.size
return @rows[i - 1]
end
|
#named_row(key) ⇒ Object
138
139
140
141
142
143
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 138
def named_row(key)
raise ArgumentError, 'invalid argument' unless has_row_with_name?(key)
@rows.each do |row|
return row if row.items[0].name.value == key
end
end
|
#row_count ⇒ Object
85
86
87
88
89
90
91
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 85
def row_count
if @rows.nil?
return 0
else
return @rows.size
end
end
|
#row_names ⇒ Object
101
102
103
104
105
106
107
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 101
def row_names
if @rows.nil?
return []
else
return @rows.collect{|r| r.name}
end
end
|
#row_with_key(keys) ⇒ Object
154
155
156
157
158
159
160
161
162
163
|
# File 'lib/openehr/rm/data_structures/item_structure.rb', line 154
def row_with_key(keys)
unless has_row_with_key?(keys)
raise ArgumentError, 'no row for key'
end
keys.each do |key|
@rows.each do |row|
return row if row.items[0].name.value == key
end
end
end
|