Module: Extensions::HL7::Segment::InstanceMethods
- Defined in:
- lib/core_ext/segment.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #format_date(attr) ⇒ Object
- #format_datetime(attr) ⇒ Object
- #handle_element(key) ⇒ Object
- #provider_hash(provider_type, provider_code) ⇒ Object
- #segment_name ⇒ Object
- #to_hash ⇒ Object
- #value_for_field(key) ⇒ Object
Instance Method Details
#[](key) ⇒ Object
13 14 15 |
# File 'lib/core_ext/segment.rb', line 13 def [](key) to_hash[key] end |
#format_date(attr) ⇒ Object
21 22 23 |
# File 'lib/core_ext/segment.rb', line 21 def format_date(attr) Date.parse(self.send(attr)).strftime("%B %d, %Y") end |
#format_datetime(attr) ⇒ Object
25 26 27 |
# File 'lib/core_ext/segment.rb', line 25 def format_datetime(attr) Date.parse(self.send(attr)).strftime("%m/%d/%Y %l:%M") end |
#handle_element(key) ⇒ Object
40 41 42 |
# File 'lib/core_ext/segment.rb', line 40 def handle_element(key) self.send(key) end |
#provider_hash(provider_type, provider_code) ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/core_ext/segment.rb', line 44 def provider_hash(provider_type, provider_code) if to_hash["#{provider_type}Provider"] to_hash["#{provider_type}Provider"].merge("providerType" => provider_code) else {} end end |
#segment_name ⇒ Object
17 18 19 |
# File 'lib/core_ext/segment.rb', line 17 def segment_name self.class.to_s.split("::").last end |
#to_hash ⇒ Object
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/core_ext/segment.rb', line 29 def to_hash @hash ||= {} fields = self.class.fields if fields.is_a?Hash self.class.fields.keys.each do |key| @hash[key.to_s.camelize(:lower)] = self.handle_element(key) end end @hash end |
#value_for_field(key) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/core_ext/segment.rb', line 52 def value_for_field(key) index = key.split(".").first.to_i index, subindex = key.split(".").collect {|i|i.to_i} field = self.class.field(index) if field if subindex.blank? return self.send(field[0].to_s) else field_val = self.send(field[0].to_s) if field_val return field_val.split(self.item_delim)[subindex-1] else return nil end end end end |