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, #path_exists?, #path_of_item, #path_unique?
Constructor Details
#initialize(args = {}) ⇒ ItemTable
Returns a new instance of ItemTable.
79
80
81
82
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 79
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/open_ehr/rm/data_structures/item_structure.rb', line 77
def rows
@rows
end
|
Instance Method Details
#as_hierarchy ⇒ Object
181
182
183
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 181
def as_hierarchy
return @rows[0]
end
|
#column_count ⇒ Object
92
93
94
95
96
97
98
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 92
def column_count
if @rows.nil?
return 0
else
return @rows[0].items.count
end
end
|
#column_names ⇒ Object
108
109
110
111
112
113
114
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 108
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
164
165
166
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 164
def element_at_cell_ij(i,j)
return @rows[i-1].items[j-1]
end
|
#element_at_named_cell(row_key, column_key) ⇒ Object
168
169
170
171
172
173
174
175
176
177
178
179
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 168
def element_at_named_cell(row_key, column_key)
i,j=0,0
@rows[0].items.each do |c|
break if c.name.value == column_key
i+=1
end
@rows.each do |row|
break if row.name.value == row_key
j+=1
end
return element_at_cell_ij(i,j)
end
|
#has_column_with_name?(key) ⇒ Boolean
129
130
131
132
133
134
135
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 129
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
144
145
146
147
148
149
150
151
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 144
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
121
122
123
124
125
126
127
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 121
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
116
117
118
119
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 116
def ith_row(i)
raise ArgumentError, 'invalid index' if i<=0 or i>@rows.size
return @rows[i - 1]
end
|
#named_row(key) ⇒ Object
137
138
139
140
141
142
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 137
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
84
85
86
87
88
89
90
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 84
def row_count
if @rows.nil?
return 0
else
return @rows.size
end
end
|
#row_names ⇒ Object
100
101
102
103
104
105
106
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 100
def row_names
if @rows.nil?
return []
else
return @rows.collect{|r| r.name}
end
end
|
#row_with_key(keys) ⇒ Object
153
154
155
156
157
158
159
160
161
162
|
# File 'lib/open_ehr/rm/data_structures/item_structure.rb', line 153
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
|