Class: HQMF::DataCriteria
- Inherits:
-
Object
- Object
- HQMF::DataCriteria
- Includes:
- Conversion::Utilities
- Defined in:
- lib/hqmf-model/data_criteria.rb
Overview
Represents a data criteria specification
Direct Known Subclasses
Constant Summary collapse
- SOURCE_DATA_CRITERIA_TEMPLATE_ID =
'2.16.840.1.113883.3.100.1.1'
- SOURCE_DATA_CRITERIA_TEMPLATE_TITLE =
'Source data criteria'
- XPRODUCT =
'XPRODUCT'
- UNION =
'UNION'
- INTERSECT =
'INTERSECT'
- SATISFIES_ALL =
'satisfies_all'
- SATISFIES_ANY =
'satisfies_any'
- VARIABLE =
'variable'
- FIELDS =
{'SEVERITY' => {title:'Severity', coded_entry_method: :severity, code: 'SEV', code_system:'2.16.840.1.113883.5.4', template_id: '2.16.840.1.113883.3.560.1.1021.2', field_type: :value}, 'ORDINAL' => {title:'Ordinal', coded_entry_method: :ordinality, code: '117363000', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1012.2', field_type: :value}, 'REASON' => {title:'Reason', coded_entry_method: :reason, code: '410666004', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1017.2', field_type: :value}, 'SOURCE' => {title:'Source', coded_entry_method: :source, code: '260753009', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.2001.2', field_type: :value}, 'CUMULATIVE_MEDICATION_DURATION' => {title:'Cumulative Medication Duration', coded_entry_method: :cumulative_medication_duration, code: '363819003', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1001.3', field_type: :value}, 'FACILITY_LOCATION' => {title:'Facility Location', coded_entry_method: :facility, code: 'SDLOC', field_type: :value}, 'FACILITY_LOCATION_ARRIVAL_DATETIME' => {title:'Facility Location Arrival Date/Time', coded_entry_method: :facility_arrival, code: 'SDLOC_ARRIVAL', field_type: :nested_timestamp}, 'FACILITY_LOCATION_DEPARTURE_DATETIME' => {title:'Facility Location Departure Date/Time', coded_entry_method: :facility_departure, code: 'SDLOC_DEPARTURE', field_type: :nested_timestamp}, 'DISCHARGE_DATETIME' => {title:'Discharge Date/Time', coded_entry_method: :discharge_time, code: '442864001', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1025.1', field_type: :timestamp}, 'DISCHARGE_STATUS' => {title:'Discharge Status', coded_entry_method: :discharge_disposition, code: '309039003', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1003.2', field_type: :value}, 'ADMISSION_DATETIME' => {title:'Admission Date/Time', coded_entry_method: :admit_time, code: '399423000', code_system:'2.16.840.1.113883.6.96', field_type: :timestamp}, 'LENGTH_OF_STAY' => {title:'Length of Stay', coded_entry_method: :length_of_stay, code: '183797002', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1029.3', field_type: :value}, 'DOSE' => {title:'Dose', coded_entry_method: :dose, code: '398232005', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1004.1', field_type: :value}, 'ROUTE' => {title:'Route', coded_entry_method: :route, code: '263513008', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1020.2', field_type: :value}, 'START_DATETIME' => {title:'Start Date/Time', coded_entry_method: :start_date, code: '398201009', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1027.1', field_type: :timestamp}, 'FREQUENCY' => {title:'Frequency', coded_entry_method: :frequency, code: '260864003', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1006.1', field_type: :value}, 'ANATOMICAL_STRUCTURE' => {title:'Anatomical Structure', coded_entry_method: :anatomical_structure, code: '91723000', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1000.2', field_type: :value}, 'STOP_DATETIME' => {title:'Stop Date/Time', coded_entry_method: :end_date, code: '397898000', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1026.1', field_type: :timestamp}, 'INCISION_DATETIME' => {title:'Incision Date/Time', coded_entry_method: :incision_time, code: '34896006', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1007.1', field_type: :timestamp}, 'REMOVAL_DATETIME' => {title:'Removal Date/Time', coded_entry_method: :removal_time, code: '118292001', code_system:'2.16.840.1.113883.6.96', template_id: '2.16.840.1.113883.3.560.1.1032.1', field_type: :timestamp}, 'TRANSFER_TO' => {title:'Transfer To', coded_entry_method: :transfer_to, code: 'TRANSFER_TO', template_id: '2.16.840.1.113883.3.560.1.72', field_type: :value}, 'TRANSFER_FROM' => {title:'Transfer From', coded_entry_method: :transfer_from, code: 'TRANSFER_FROM', template_id: '2.16.840.1.113883.3.560.1.71', field_type: :value}, }
- VALUE_FIELDS =
{'SEV' => 'SEVERITY', '117363000' => 'ORDINAL', '410666004' => 'REASON', '260753009' => 'SOURCE', '363819003' => 'CUMULATIVE_MEDICATION_DURATION', 'SDLOC' => 'FACILITY_LOCATION', '442864001' => 'DISCHARGE_DATETIME', '309039003' => 'DISCHARGE_STATUS', '399423000' => 'ADMISSION_DATETIME', '183797002' => 'LENGTH_OF_STAY', '398232005' => 'DOSE', '263513008' => 'ROUTE', '398201009' => 'START_DATETIME', '260864003' =>'FREQUENCY', '91723000' => 'ANATOMICAL_STRUCTURE', '397898000' => 'STOP_DATETIME', '34896006' => 'INCISION_DATETIME', '118292001' =>'REMOVAL_DATETIME', 'SDLOC_ARRIVAL' => 'FACILITY_LOCATION_ARRIVAL_DATETIME', 'SDLOC_DEPARTURE' => 'FACILITY_LOCATION_DEPARTURE_DATETIME' }
Instance Attribute Summary collapse
-
#children_criteria ⇒ Object
Returns the value of attribute children_criteria.
-
#code_list_id ⇒ Object
readonly
Returns the value of attribute code_list_id.
-
#comments ⇒ Object
Returns the value of attribute comments.
-
#definition ⇒ Object
Returns the value of attribute definition.
-
#derivation_operator ⇒ Object
readonly
Returns the value of attribute derivation_operator.
-
#description ⇒ Object
readonly
Returns the value of attribute description.
-
#display_name ⇒ Object
Returns the value of attribute display_name.
-
#effective_time ⇒ Object
Returns the value of attribute effective_time.
-
#field_values ⇒ Object
Returns the value of attribute field_values.
-
#id ⇒ Object
Returns the value of attribute id.
-
#inline_code_list ⇒ Object
Returns the value of attribute inline_code_list.
-
#negation ⇒ Object
Returns the value of attribute negation.
-
#negation_code_list_id ⇒ Object
Returns the value of attribute negation_code_list_id.
-
#source_data_criteria ⇒ Object
readonly
Returns the value of attribute source_data_criteria.
-
#specific_occurrence ⇒ Object
readonly
Returns the value of attribute specific_occurrence.
-
#specific_occurrence_const ⇒ Object
readonly
Returns the value of attribute specific_occurrence_const.
-
#status ⇒ Object
Returns the value of attribute status.
-
#subset_operators ⇒ Object
Returns the value of attribute subset_operators.
-
#temporal_references ⇒ Object
Returns the value of attribute temporal_references.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
-
#value ⇒ Object
Returns the value of attribute value.
-
#variable ⇒ Object
readonly
Returns the value of attribute variable.
Class Method Summary collapse
-
.create_from_category(id, title, description, code_list_id, category, sub_category = nil, negation = false, negation_code_list_id = nil) ⇒ Object
create a new data criteria given a category and sub_category.
- .definition_for_template_id(template_id) ⇒ Object
-
.from_json(id, json) ⇒ Object
Create a new data criteria instance from a JSON hash keyed with symbols.
- .get_settings_for_definition(definition, status) ⇒ Object
- .get_settings_map ⇒ Object
- .get_template_id_map ⇒ Object
- .statuses_by_definition ⇒ Object
- .template_id_for_definition(definition, status, negation) ⇒ Object
- .title_for_template_id(template_id) ⇒ Object
Instance Method Summary collapse
- #all_code_set_oids ⇒ Object
- #base_json ⇒ Object
- #hard_status ⇒ Object
- #has_subset(subset_operator) ⇒ Object
- #has_temporal(temporal_reference) ⇒ Object
-
#initialize(id, title, display_name, description, code_list_id, children_criteria, derivation_operator, definition, status, value, field_values, effective_time, inline_code_list, negation, negation_code_list_id, temporal_references, subset_operators, specific_occurrence, specific_occurrence_const, source_data_criteria = nil, comments = nil, variable = false) ⇒ DataCriteria
constructor
Create a new data criteria instance.
- #is_same_type?(criteria) ⇒ Boolean
- #patient_api_function ⇒ Object
- #property ⇒ Object
- #referenced_data_criteria(document) ⇒ Object
- #to_json ⇒ Object
- #type ⇒ Object
- #update_copy(hard_status, title, description, derivation_operator, definition) ⇒ Object
Methods included from Conversion::Utilities
#build_hash, #check_equality, #json_array, #openstruct_to_json
Constructor Details
#initialize(id, title, display_name, description, code_list_id, children_criteria, derivation_operator, definition, status, value, field_values, effective_time, inline_code_list, negation, negation_code_list_id, temporal_references, subset_operators, specific_occurrence, specific_occurrence_const, source_data_criteria = nil, comments = nil, variable = false) ⇒ DataCriteria
Create a new data criteria instance
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/hqmf-model/data_criteria.rb', line 92 def initialize(id, title, display_name, description, code_list_id, children_criteria, derivation_operator, definition, status, value, field_values, effective_time, inline_code_list, negation, negation_code_list_id, temporal_references, subset_operators, specific_occurrence, specific_occurrence_const, source_data_criteria=nil, comments=nil, variable=false) status = normalize_status(definition, status) @settings = HQMF::DataCriteria.get_settings_for_definition(definition, status) @id = id @title = title @description = description @code_list_id = code_list_id @negation_code_list_id = negation_code_list_id @children_criteria = children_criteria @derivation_operator = derivation_operator @definition = definition @status = status @value = value @field_values = field_values @effective_time = effective_time @inline_code_list = inline_code_list @negation = negation @negation_code_list_id = negation_code_list_id @temporal_references = temporal_references @subset_operators = subset_operators @specific_occurrence = specific_occurrence @specific_occurrence_const = specific_occurrence_const @source_data_criteria = source_data_criteria || id @comments = comments @variable = variable end |
Instance Attribute Details
#children_criteria ⇒ Object
Returns the value of attribute children_criteria.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def children_criteria @children_criteria end |
#code_list_id ⇒ Object (readonly)
Returns the value of attribute code_list_id.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def code_list_id @code_list_id end |
#comments ⇒ Object
Returns the value of attribute comments.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def comments @comments end |
#definition ⇒ Object
Returns the value of attribute definition.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def definition @definition end |
#derivation_operator ⇒ Object (readonly)
Returns the value of attribute derivation_operator.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def derivation_operator @derivation_operator end |
#description ⇒ Object (readonly)
Returns the value of attribute description.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def description @description end |
#display_name ⇒ Object
Returns the value of attribute display_name.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def display_name @display_name end |
#effective_time ⇒ Object
Returns the value of attribute effective_time.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def effective_time @effective_time end |
#field_values ⇒ Object
Returns the value of attribute field_values.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def field_values @field_values end |
#id ⇒ Object
Returns the value of attribute id.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def id @id end |
#inline_code_list ⇒ Object
Returns the value of attribute inline_code_list.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def inline_code_list @inline_code_list end |
#negation ⇒ Object
Returns the value of attribute negation.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def negation @negation end |
#negation_code_list_id ⇒ Object
Returns the value of attribute negation_code_list_id.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def negation_code_list_id @negation_code_list_id end |
#source_data_criteria ⇒ Object (readonly)
Returns the value of attribute source_data_criteria.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def source_data_criteria @source_data_criteria end |
#specific_occurrence ⇒ Object (readonly)
Returns the value of attribute specific_occurrence.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def specific_occurrence @specific_occurrence end |
#specific_occurrence_const ⇒ Object (readonly)
Returns the value of attribute specific_occurrence_const.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def specific_occurrence_const @specific_occurrence_const end |
#status ⇒ Object
Returns the value of attribute status.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def status @status end |
#subset_operators ⇒ Object
Returns the value of attribute subset_operators.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def subset_operators @subset_operators end |
#temporal_references ⇒ Object
Returns the value of attribute temporal_references.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def temporal_references @temporal_references end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def title @title end |
#value ⇒ Object
Returns the value of attribute value.
66 67 68 |
# File 'lib/hqmf-model/data_criteria.rb', line 66 def value @value end |
#variable ⇒ Object (readonly)
Returns the value of attribute variable.
65 66 67 |
# File 'lib/hqmf-model/data_criteria.rb', line 65 def variable @variable end |
Class Method Details
.create_from_category(id, title, description, code_list_id, category, sub_category = nil, negation = false, negation_code_list_id = nil) ⇒ Object
create a new data criteria given a category and sub_category. A sub category can either be a status or a sub category
122 123 124 125 |
# File 'lib/hqmf-model/data_criteria.rb', line 122 def self.create_from_category(id, title, description, code_list_id, category, sub_category=nil, negation=false, negation_code_list_id=nil) settings = HQMF::DataCriteria.get_settings_for_definition(category, sub_category) HQMF::DataCriteria.new(id, title, nil, description, code_list_id, nil, nil, settings['definition'], settings['status'], nil, nil, nil, nil, negation, negation_code_list_id, nil, nil, nil,nil) end |
.definition_for_template_id(template_id) ⇒ Object
297 298 299 |
# File 'lib/hqmf-model/data_criteria.rb', line 297 def self.definition_for_template_id(template_id) get_template_id_map()[template_id] end |
.from_json(id, json) ⇒ Object
Create a new data criteria instance from a JSON hash keyed with symbols
155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 |
# File 'lib/hqmf-model/data_criteria.rb', line 155 def self.from_json(id, json) title = json["title"] if json["title"] display_name = json["display_name"] if json["display_name"] description = json["description"] if json["description"] code_list_id = json["code_list_id"] if json["code_list_id"] children_criteria = json["children_criteria"] if json["children_criteria"] derivation_operator = json["derivation_operator"] if json["derivation_operator"] definition = json["definition"] if json["definition"] status = json["status"] if json["status"] value = convert_value(json["value"]) if json["value"] field_values = json["field_values"].inject({}){|memo,(k,v)| memo[k.to_s] = convert_value(v); memo} if json["field_values"] effective_time = HQMF::Range.from_json(json["effective_time"]) if json["effective_time"] inline_code_list = json["inline_code_list"].inject({}){|memo,(k,v)| memo[k.to_s] = v; memo} if json["inline_code_list"] negation = json["negation"] || false negation_code_list_id = json['negation_code_list_id'] if json['negation_code_list_id'] temporal_references = json["temporal_references"].map {|reference| HQMF::TemporalReference.from_json(reference)} if json["temporal_references"] subset_operators = json["subset_operators"].map {|operator| HQMF::SubsetOperator.from_json(operator)} if json["subset_operators"] specific_occurrence = json['specific_occurrence'] if json['specific_occurrence'] specific_occurrence_const = json['specific_occurrence_const'] if json['specific_occurrence_const'] source_data_criteria = json['source_data_criteria'] if json['source_data_criteria'] comments = json['comments'] if json['comments'] variable = json['variable'] || false HQMF::DataCriteria.new(id, title, display_name, description, code_list_id, children_criteria, derivation_operator, definition, status, value, field_values, effective_time, inline_code_list, negation, negation_code_list_id, temporal_references, subset_operators,specific_occurrence,specific_occurrence_const,source_data_criteria, comments, variable) end |
.get_settings_for_definition(definition, status) ⇒ Object
286 287 288 289 290 291 292 293 294 295 |
# File 'lib/hqmf-model/data_criteria.rb', line 286 def self.get_settings_for_definition(definition, status) settings_file = File.('../data_criteria.json', __FILE__) settings_map = get_settings_map key = definition + ((status.nil? || status.empty?) ? '' : "_#{status}") settings = settings_map[key] raise "data criteria is not supported #{key}" if settings.nil? || settings["not_supported"] settings end |
.get_settings_map ⇒ Object
280 281 282 283 284 |
# File 'lib/hqmf-model/data_criteria.rb', line 280 def self.get_settings_map return @settings_map if @settings_map settings_file = File.('../data_criteria.json', __FILE__) @settings_map = JSON.parse(File.read(settings_file)) end |
.get_template_id_map ⇒ Object
319 320 321 322 |
# File 'lib/hqmf-model/data_criteria.rb', line 319 def self.get_template_id_map @@template_id_map ||= read_template_id_map @@template_id_map end |
.statuses_by_definition ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 |
# File 'lib/hqmf-model/data_criteria.rb', line 214 def self.statuses_by_definition settings_file = File.('../data_criteria.json', __FILE__) settings_map = JSON.parse(File.read(settings_file)) all_defs = (settings_map.map {|key, value| {category: value['category'],definition:value['definition'],status:(value['status'].empty? ? nil : value['status']), sub_category: value['sub_category'],title:value['title']} unless value['not_supported']}).compact by_categories = {} all_defs.each do |definition| by_categories[definition[:category]]||={} status = definition[:status] def_key = definition[:definition] if status.nil? and definition[:sub_category] and !definition[:sub_category].empty? status = definition[:sub_category] def_key = def_key.gsub("_#{status}",'') end by_categories[definition[:category]][def_key]||={category:def_key,statuses:[]} by_categories[definition[:category]][def_key][:statuses] << status unless status.nil? end status_by_category = {} by_categories.each {|key, value| status_by_category[key] = value.values} status_by_category.delete('derived') status_by_category.delete('variable') status_by_category.delete('measurement_period') status_by_category.values.flatten end |
.template_id_for_definition(definition, status, negation) ⇒ Object
301 302 303 |
# File 'lib/hqmf-model/data_criteria.rb', line 301 def self.template_id_for_definition(definition, status, negation) get_template_id_map().key({'definition' => definition, 'status' => status || '', 'negation' => negation}) end |
.title_for_template_id(template_id) ⇒ Object
305 306 307 308 309 310 311 312 313 314 315 316 317 |
# File 'lib/hqmf-model/data_criteria.rb', line 305 def self.title_for_template_id(template_id) value = get_template_id_map()[template_id] if value settings = self.get_settings_for_definition(value['definition'], value['status']) if settings settings['title'] else 'Unknown data criteria' end else 'Unknown template id' end end |
Instance Method Details
#all_code_set_oids ⇒ Object
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 |
# File 'lib/hqmf-model/data_criteria.rb', line 260 def all_code_set_oids # root oid referenced_oids = [code_list_id] # value oid referenced_oids << value.code_list_id if value != nil and value.type == 'CD' # negation oid referenced_oids << negation_code_list_id if negation_code_list_id != nil # field oids if field_values != nil referenced_oids.concat (field_values.map {|key,field| field.code_list_id if field != nil and field.type == 'CD'}) end referenced_oids end |
#base_json ⇒ Object
193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/hqmf-model/data_criteria.rb', line 193 def base_json x = nil json = build_hash(self, [:title,:display_name,:description,:code_list_id,:children_criteria, :derivation_operator, :property, :type, :definition, :status, :hard_status, :negation, :negation_code_list_id,:specific_occurrence,:specific_occurrence_const,:source_data_criteria,:variable]) json[:children_criteria] = @children_criteria unless @children_criteria.nil? || @children_criteria.empty? json[:value] = ((@value.is_a? String) ? @value : @value.to_json) if @value json[:field_values] = @field_values.inject({}) {|memo,(k,v)| memo[k] = (!v.nil? ? v.to_json : nil); memo} if @field_values json[:effective_time] = @effective_time.to_json if @effective_time json[:inline_code_list] = @inline_code_list if @inline_code_list json[:temporal_references] = x if x = json_array(@temporal_references) json[:subset_operators] = x if x = json_array(@subset_operators) json[:comments] = @comments if @comments json end |
#hard_status ⇒ Object
135 136 137 |
# File 'lib/hqmf-model/data_criteria.rb', line 135 def hard_status @settings['hard_status'] end |
#has_subset(subset_operator) ⇒ Object
210 211 212 |
# File 'lib/hqmf-model/data_criteria.rb', line 210 def has_subset(subset_operator) @subset_operators.reduce(false) {|found, item| found ||= item == subset_operator } end |
#has_temporal(temporal_reference) ⇒ Object
207 208 209 |
# File 'lib/hqmf-model/data_criteria.rb', line 207 def has_temporal(temporal_reference) @temporal_references.reduce(false) {|found, item| found ||= item == temporal_reference } end |
#is_same_type?(criteria) ⇒ Boolean
183 184 185 186 |
# File 'lib/hqmf-model/data_criteria.rb', line 183 def is_same_type?(criteria) return @definition == criteria.definition && @hard_status == criteria.hard_status && @negation == criteria.negation && all_code_set_oids.sort == criteria.all_code_set_oids.sort end |
#patient_api_function ⇒ Object
132 133 134 |
# File 'lib/hqmf-model/data_criteria.rb', line 132 def patient_api_function @settings['patient_api_function'].to_sym unless @settings['patient_api_function'].empty? end |
#property ⇒ Object
129 130 131 |
# File 'lib/hqmf-model/data_criteria.rb', line 129 def property @settings['property'].to_sym unless @settings['property'].nil? end |
#referenced_data_criteria(document) ⇒ Object
238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 |
# File 'lib/hqmf-model/data_criteria.rb', line 238 def referenced_data_criteria(document) referenced = [] if (@children_criteria) @children_criteria.each do |id| dc = document.data_criteria(id) referenced << id referenced.concat(dc.referenced_data_criteria(document)) end end if (@temporal_references) @temporal_references.each do |tr| id = tr.reference.id if (id != HQMF::Document::MEASURE_PERIOD_ID) dc = document.data_criteria(id) referenced << id referenced.concat(dc.referenced_data_criteria(document)) end end end referenced end |
#to_json ⇒ Object
188 189 190 191 |
# File 'lib/hqmf-model/data_criteria.rb', line 188 def to_json json = base_json {self.id.to_s.to_sym => json} end |
#type ⇒ Object
126 127 128 |
# File 'lib/hqmf-model/data_criteria.rb', line 126 def type @settings['category'].to_sym end |
#update_copy(hard_status, title, description, derivation_operator, definition) ⇒ Object
138 139 140 141 142 143 144 |
# File 'lib/hqmf-model/data_criteria.rb', line 138 def update_copy(hard_status, title, description, derivation_operator, definition) @settings['hard_status'] = hard_status @title = title @description = description @derivation_operator = derivation_operator @definition = definition end |