Module: DZero::Transmissions::Concerns::SegmentsMethods
- Included in:
- Base
- Defined in:
- lib/dzero/transmissions/concerns/segments_methods.rb
Constant Summary collapse
- TRANSMISSION_LEVEL_SEGMENTS =
[ :patient, :insurance, :response_message, :response_insurance, :response_patient, ]
- TRANSACTION_LEVEL_SEGMENTS =
[ :pharmacy_provider, :prescriber, :coord_of_benefits, :workers_comp, :claim, :dur_pps, :coupon, :compound, :pricing, :prior_auth, :clinical, :additional_documentation, :facility, :narrative, :response_status, :response_claim, :response_pricing, :response_dur_pps, :response_prior_auth, :response_additional_documentation, :response_coord_of_benefits ]
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.included(base) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/dzero/transmissions/concerns/segments_methods.rb', line 35 def self.included(base) ::DZero::Segments::Base.segment_id_to_symbol.each do |segment_identifier, segment_name_sym| segment_klass = ::DZero::Segments::Base.get_klass_by_identifier(segment_identifier) base.send(:define_method, "#{segment_name_sym}_segment") do get_segment(segment_klass) end end end |
Instance Method Details
#get_segment(segment_klass) ⇒ Object
44 45 46 47 48 49 50 51 52 |
# File 'lib/dzero/transmissions/concerns/segments_methods.rb', line 44 def get_segment(segment_klass) self.transmission_group.segments.detect { |s| s.is_a?(segment_klass) } || self.transaction_groups.first.segments.detect { |s| s.is_a?(segment_klass) } || begin segment = segment_klass.new({}) self.segments << segment segment end end |
#segments ⇒ Object
69 70 71 72 73 74 |
# File 'lib/dzero/transmissions/concerns/segments_methods.rb', line 69 def segments all = [] all += transmission_group.segments all += transaction_groups.map(&:segments).flatten all.compact end |
#sort_segments(segments) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/dzero/transmissions/concerns/segments_methods.rb', line 54 def sort_segments(segments) segments.each do |segment| segment_sym = segment.class.symbol if TRANSMISSION_LEVEL_SEGMENTS.include?(segment_sym) transmission_group.segments << segment else if transaction_groups.empty? transaction_groups << ::DZero::Transmissions::Groups::TransactionGroup.new({ segments: [] }) end transaction_groups.first.segments << segment end end end |