tritech 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.txt +22 -0
- data/README.rdoc +0 -0
- data/lib/tritech.rb +59 -0
- data/lib/tritech/sections/call.rb +81 -0
- data/lib/tritech/sections/call_comment.rb +9 -0
- data/lib/tritech/sections/call_reason.rb +6 -0
- data/lib/tritech/sections/charge.rb +20 -0
- data/lib/tritech/sections/credit.rb +20 -0
- data/lib/tritech/sections/crew.rb +6 -0
- data/lib/tritech/sections/guarantor.rb +51 -0
- data/lib/tritech/sections/narrative.rb +8 -0
- data/lib/tritech/sections/patient.rb +67 -0
- data/lib/tritech/sections/patient_comment.rb +11 -0
- data/lib/tritech/sections/patient_payor.rb +23 -0
- data/lib/tritech/sections/questionnaire.rb +8 -0
- data/lib/tritech/sections/time.rb +6 -0
- data/lib/tritech/version.rb +3 -0
- metadata +111 -0
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
The MIT LICENSE
|
2
|
+
|
3
|
+
Copyright (c) 2010 Nathan Stults
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
File without changes
|
data/lib/tritech.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
require "rubygems"
|
2
|
+
#require "~/dev/opensource/slither/lib/slither"
|
3
|
+
require "slither"
|
4
|
+
|
5
|
+
module Tritech
|
6
|
+
SPECIFICATION = Slither.define :tritech do |batch|
|
7
|
+
batch.template :record do |r|
|
8
|
+
r.column :record_type, 3
|
9
|
+
end
|
10
|
+
|
11
|
+
batch.template :call_record do |r|
|
12
|
+
r.column :record_type, 3
|
13
|
+
r.spacer 1
|
14
|
+
r.column :call_number, 15, :align => :left #pkey
|
15
|
+
r.column :leg, 1, :type => :integer, :align =>:right, :padding=>:zero
|
16
|
+
r.column :patient_rank, 1
|
17
|
+
end
|
18
|
+
|
19
|
+
batch.header do |header|
|
20
|
+
header.trap { |line| line[0,3] == 'HDR'}
|
21
|
+
header.template :record
|
22
|
+
header.column :batch_number, 6, :padding => :zero
|
23
|
+
end
|
24
|
+
|
25
|
+
dir = File.join File.dirname(__FILE__), "tritech/sections/**/*.rb"
|
26
|
+
Dir[dir].each { |section|batch.instance_eval(File.read(section)) }
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.parse(file)
|
30
|
+
parsed = []
|
31
|
+
content = File.foreach(file) do |line|
|
32
|
+
section = SPECIFICATION.sections.find { |s|s.match(line)}
|
33
|
+
parsed << section.parse(line) if section
|
34
|
+
end
|
35
|
+
parsed
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.generate(data)
|
39
|
+
builder = []
|
40
|
+
data.each do |record|
|
41
|
+
section = SPECIFICATION.sections.find { |s| s.match(record[:record_type])}
|
42
|
+
builder << section.format(record)
|
43
|
+
end
|
44
|
+
#Tritech Amazon is a windows product, so it needs
|
45
|
+
#windows style line endings.
|
46
|
+
builder.join("\r\n")
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.write(filename, data)
|
50
|
+
File.open(filename, 'w') do |f|
|
51
|
+
f.write generate(data)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
#Slither.parse('u.txt', :tritech, :flat=>true).each { |record|puts record[:record_type]}
|
58
|
+
#Slither.write('u2.txt', :tritech, Slither.parse('u.txt', :tritech, :flat=>true))
|
59
|
+
#puts Slither.parse('u2.txt', :tritech, :flat=>true).inspect
|
@@ -0,0 +1,81 @@
|
|
1
|
+
trip :align => :left do |trip|
|
2
|
+
trip.trap { |line| line[0,3] == 'CAL' }
|
3
|
+
trip.template :call_record
|
4
|
+
trip.column :type_of_call_id, 4 #link [Call Data Setup]
|
5
|
+
trip.spacer 7
|
6
|
+
trip.column :patient_number, 11
|
7
|
+
trip.column :call_date, 8, :padding => :zero, :align => :right
|
8
|
+
trip.spacer 6
|
9
|
+
trip.column :date_entered, 14, :padding => :zero, :align => :right #DATETIME
|
10
|
+
trip.column :company_id, 11 #link [Company Codes]
|
11
|
+
trip.column :current_payor_id, 11 #link [Payor Codes]
|
12
|
+
trip.column :incident_number, 15
|
13
|
+
trip.column :membership_status, 2, :type=>:integer,:align =>:right,:padding=>:zero#TB5
|
14
|
+
trip.column :schedule_id, 11 #link [Schedule Codes]
|
15
|
+
trip.column :event_id, 11 #link [Event Codes]
|
16
|
+
trip.column :caller_id, 11 #link [Caller Codes]
|
17
|
+
trip.column :dispatch_urgency_id, 11 #link [Urgency Codes]
|
18
|
+
|
19
|
+
trip.column :pickup_location_id, 11 #link [Location Codes]
|
20
|
+
trip.column :pickup_address1, 30
|
21
|
+
trip.column :pickup_address2, 30
|
22
|
+
trip.column :pickup_city_id, 11 #link [City Codes]
|
23
|
+
trip.column :pickup_city_extension, 4, :align => :right, :padding => :zero
|
24
|
+
trip.column :pickup_city, 30
|
25
|
+
trip.column :pickup_state, 2
|
26
|
+
trip.column :pickup_zip_code, 5, :align => :right, :padding => :zero
|
27
|
+
trip.column :pickup_description, 30
|
28
|
+
trip.column :pickup_zone_id, 11 #link [zone Codes]
|
29
|
+
trip.column :transport_urgency_id, 11 #link [Urgency Codes]
|
30
|
+
|
31
|
+
trip.column :dropoff_location_id, 11 #link [Location Codes]
|
32
|
+
trip.column :dropoff_address1, 30
|
33
|
+
trip.column :dropoff_address2, 30
|
34
|
+
trip.column :dropoff_city_id, 11 #link [City Codes]
|
35
|
+
trip.column :dropoff_city_extension, 4, :align => :right, :padding => :zero
|
36
|
+
trip.column :dropoff_city, 30
|
37
|
+
trip.column :dropoff_state, 2
|
38
|
+
trip.column :dropoff_zip_code, 5, :align => :right, :padding => :zero
|
39
|
+
trip.column :dropoff_description, 30
|
40
|
+
trip.column :dropoff_zone_id, 11 #link [zone Codes]
|
41
|
+
trip.column :discharged_from, 1 #Y/N
|
42
|
+
trip.column :outpatient_only, 1 #Y/N
|
43
|
+
trip.column :bill_as_emergency, 1 #Y/N
|
44
|
+
trip.column :admitted_to, 1 #Y/N
|
45
|
+
|
46
|
+
trip.column :unit_id, 11 #link [Unit Codes]
|
47
|
+
trip.column :level_of_care_id, 11 #link [Level Of Care Codes]
|
48
|
+
trip.column :odometer_starting,8, :type=> :money_with_implied_decimal,:precision=>1,:align=>:right, :padding=>:zero
|
49
|
+
trip.column :odometer_pickup, 8, :type =>:money_with_implied_decimal,:precision=>1,:align=>:right, :padding=>:zero
|
50
|
+
trip.column :odometer_dropoff, 8, :type=> :money_with_implied_decimal,:precision=>1,:align=>:right, :padding=>:zero
|
51
|
+
trip.column :odometer_ending, 8, :type=> :money_with_implied_decimal,:precision=>1,:align=>:right, :padding=>:zero
|
52
|
+
trip.column :hour_meter_starting, 3,:type=>:money_with_implied_decimal,:precision=>1,:align=>:right
|
53
|
+
trip.column :hour_meter_ending, 3, :type=>:money_with_implied_decimal,:prevision=>1,:align=>:right
|
54
|
+
trip.column :accept_assign, 2, :align=>:right, :type=>:integer #TB1
|
55
|
+
trip.column :accept_assign_default, 1 #Y/N
|
56
|
+
trip.column :primary_payor_id, 11 #link [Payor Codes]
|
57
|
+
trip.column :sign_source_date, 8, :padding=>:zero,:align=>:right
|
58
|
+
trip.column :sign_source, 2, :type=>:integer, :align=>:right #TB6
|
59
|
+
trip.column :sign_source_payor_medicare, 1 #Y/N
|
60
|
+
trip.column :sign_source_payor_medicaid, 1 #Y/N
|
61
|
+
trip.column :sign_source_payor_insurance, 1 #Y/N
|
62
|
+
trip.column :employement_related, 2, :type=>:integer, :align=>:right #TB2
|
63
|
+
trip.column :accident_indicator, 2, :type=>:integer, :align=>:right #TB3
|
64
|
+
trip.column :accident_date, 8,:align=>:right,:padding=>:zero
|
65
|
+
trip.column :place_of_service, 3
|
66
|
+
trip.column :place_of_service_alternate, 3
|
67
|
+
trip.column :type_of_service, 2
|
68
|
+
trip.column :second_modifier, 2
|
69
|
+
trip.column :ord_ref_doc_id, 11 #link [Doctor Codes]
|
70
|
+
trip.column :ord_ref_doc_last_name, 20
|
71
|
+
trip.column :ord_ref_doc_first_name, 15
|
72
|
+
trip.column :ord_ref_doc_middle_initial, 1
|
73
|
+
trip.column :ord_ref_doc_upin, 10
|
74
|
+
trip.column :incident_number_alternate, 15
|
75
|
+
trip.column :trauma_cause_indicator, 2, :type=>:integer, :align=>:right #TB4
|
76
|
+
trip.column :aging_date, 8, :align=>:right, :padding=>:zero
|
77
|
+
trip.column :time_pay_amount, 7, :type=>:money_with_implied_decimal, :precision=>2, :align=>:right
|
78
|
+
trip.column :original_schedule_id, 11 #link [Schedule Codes]
|
79
|
+
trip.column :assigned_to_user_id, 11 #link [Staff Codes]
|
80
|
+
trip.spacer 11
|
81
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
comment :align => :left do |comment|
|
2
|
+
comment.trap { |line| line[0,3] == 'CCO'}
|
3
|
+
comment.template :call_record
|
4
|
+
comment.column :time_entered, 14, :align=>:right, :padding=>:zero #DateTime
|
5
|
+
comment.column :user_id, 11 #link [Staff Codes]
|
6
|
+
comment.column :comments, 255
|
7
|
+
comment.column :narrative_id, 11 #link [Narrative Codes]
|
8
|
+
comment.spacer 11
|
9
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
charge :align => :left do |charge|
|
2
|
+
charge.trap { |line| line[0,3] == 'CHG'}
|
3
|
+
charge.template :call_record
|
4
|
+
charge.column :charge_id, 11 #link [Charge Codes]
|
5
|
+
charge.column :charge_date, 8, :padding => :zero, :align => :right
|
6
|
+
charge.column :log_date, 8, :padding => :zero, :align => :right
|
7
|
+
charge.column :user_id, 11 #link [Staff Codes]
|
8
|
+
charge.column :company_id, 11 #link [Company Codes]
|
9
|
+
charge.spacer 6
|
10
|
+
charge.column :quantity, 6, :type=>:money_with_implied_decimal, :align=>:right, :padding=>:zero, :precision => 2
|
11
|
+
charge.column :charge_narrative, 255
|
12
|
+
charge.column :bill_narrative_id, 11 #link [Narrative Codes]
|
13
|
+
charge.column :related_reasons, 4
|
14
|
+
charge.column :sales_tax, 7, :type=>:money_with_implied_decimal, :align =>:right, :padding=>:zero, :precision => 2
|
15
|
+
charge.column :other_tax, 7, :type => :money_with_implied_decimal, :align=>:right, :padding=>:zero, :precision => 2
|
16
|
+
charge.column :accounting_period_id, 5, :type=>:integer, :align=>:right, :padding=>:zero
|
17
|
+
charge.column :price_per_unit, 11, :type => :money_with_implied_decimal, :align=>:right, :padding=>:zero, :precision => 2
|
18
|
+
charge.column :active, 1 #Y/N
|
19
|
+
charge.column :sequence_number, 3, :type => :integer, :align=>:right #Amazon will supply if left space filled
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
credit :align => :left do |credit|
|
2
|
+
credit.trap { |line| line[0,3] == 'PAY'}
|
3
|
+
credit.template :call_record
|
4
|
+
credit.column :company_id, 11 #link [Company Codes]
|
5
|
+
credit.column :credit_id, 11 #link [Company Codes]
|
6
|
+
credit.column :amount, 11, :type=>:money_with_implied_decimal, :align=>:right, :padding=>:zero, :precision=>2
|
7
|
+
credit.column :received_date, 8, :align=>:right, :padding=>:zero
|
8
|
+
credit.column :receipt_number, 15
|
9
|
+
credit.column :payor_id, 11 #link [Payor Codes]
|
10
|
+
credit.column :check_number, 15
|
11
|
+
credit.column :check_date, 8, :align=>:right, :padding=>:zero
|
12
|
+
credit.column :deposit_date, 8, :align=>:right, :padding=>:zero
|
13
|
+
credit.column :accounting_period_id, 11, :type=>:integer, :align=>:right,:padding=>:zero
|
14
|
+
credit.column :log_date, 8, :align=>:right, :padding=>:zero
|
15
|
+
credit.column :user_id, 11 #link [Staff Codes]
|
16
|
+
credit.column :printable, 1 #Y/N
|
17
|
+
credit.spacer 11
|
18
|
+
credit.column :active, 1 #Y/N
|
19
|
+
credit.column :series_number, 3, :type=>:integer, :align=>:right
|
20
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
guarantor :align => :left do |guarantor|
|
2
|
+
guarantor.trap { |line| line[0,3] == 'GUA'}
|
3
|
+
guarantor.spacer 1
|
4
|
+
guarantor.column :guarantor_number, 11
|
5
|
+
guarantor.column :ssn, 9, :type=>:integer, :align=>:right
|
6
|
+
guarantor.column :member_number, 11
|
7
|
+
guarantor.column :member_effective_date, 8, :padding => :zero,:align=>:right
|
8
|
+
guarantor.column :member_expire_date, 8, :padding => :zero, :align=>:right
|
9
|
+
guarantor.column :alternate_format, 1 #type=Y/N
|
10
|
+
guarantor.column :last_name, 20
|
11
|
+
guarantor.column :first_name, 15
|
12
|
+
guarantor.column :middle_initial, 1
|
13
|
+
guarantor.column :generation, 1, :type=>:integer #ref TB1
|
14
|
+
guarantor.column :title, 15
|
15
|
+
guarantor.column :date_of_birth, 8, :align => :right, :padding => :zero
|
16
|
+
guarantor.column :sex, 1, :type => :integer #ref TB2
|
17
|
+
guarantor.column :facility_id, 11 #link [Location Codes]
|
18
|
+
guarantor.column :address1, 30
|
19
|
+
guarantor.column :address2, 30
|
20
|
+
guarantor.column :city_id, 11 #link [City Codes]
|
21
|
+
guarantor.column :city_extension, 4, :align => :right, :padding => :zero
|
22
|
+
guarantor.column :city, 30
|
23
|
+
guarantor.column :state, 2
|
24
|
+
guarantor.column :zip_code, 5, :align => :right, :padding => :zero
|
25
|
+
guarantor.column :phone1, 10
|
26
|
+
guarantor.column :phone1_ext, 5
|
27
|
+
guarantor.spacer 10
|
28
|
+
guarantor.column :phone2, 10
|
29
|
+
guarantor.column :phone2_ext, 5
|
30
|
+
guarantor.spacer 10
|
31
|
+
guarantor.column :zone_id, 11 #link [Zone Codes]
|
32
|
+
guarantor.column :email, 40
|
33
|
+
guarantor.column :alternate_date_from, 8, :align=>:right, :padding => :zero
|
34
|
+
guarantor.column :alternate_date_to, 8, :align=>:right, :padding => :zero
|
35
|
+
guarantor.column :address1_alternate, 30
|
36
|
+
guarantor.column :address2_alternate, 30
|
37
|
+
guarantor.column :alternate_city_id, 11 #link [City Codes]
|
38
|
+
guarantor.column :alternate_city_ext, 4, :alight=>:right, :padding => :zero
|
39
|
+
guarantor.column :alternate_city, 30
|
40
|
+
guarantor.column :alternate_state, 2
|
41
|
+
guarantor.column :alternate_zip_code, 5, :align => :right, :padding => :zero
|
42
|
+
guarantor.column :alternate_phone1, 10
|
43
|
+
guarantor.column :alternate_phone1_ext, 5, :type=>:integer
|
44
|
+
guarantor.spacer 10
|
45
|
+
guarantor.column :alternate_phone2, 10
|
46
|
+
guarantor.column :alternate_phone2_ext, 5, :type => :integer
|
47
|
+
guarantor.spacer 10
|
48
|
+
guarantor.column :employer_id, 11 #link [Employer Codes]
|
49
|
+
guarantor.column :employment_status, 2, :align => :right, :type=>:integer #TB7
|
50
|
+
guarantor.spacer 11
|
51
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
narrative :align => :left do |narrative|
|
2
|
+
narrative.trap { |line| line[0,3] == 'NAR' }
|
3
|
+
narrative.template :call_record
|
4
|
+
narrative.column :narrative_1, 255
|
5
|
+
narrative.column :narrative_2, 255
|
6
|
+
narrative.column :bill_narrative_code, 11 #link [Narrative Codes]
|
7
|
+
narrative.spacer 11
|
8
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
patient :align=>:left do |patient|
|
2
|
+
patient.trap { |line| line[0,3] == 'PAT'}
|
3
|
+
patient.template :record
|
4
|
+
patient.spacer 1
|
5
|
+
patient.column :patient_number, 11
|
6
|
+
patient.column :patient_type_id, 4 #link [Patient Data Set]
|
7
|
+
patient.spacer 7
|
8
|
+
patient.column :ssn, 9, :type=>:integer, :align=>:right
|
9
|
+
patient.column :member_number, 11
|
10
|
+
patient.column :member_effective_date, 8, :padding => :zero,:align=>:right
|
11
|
+
patient.column :member_expire_date, 8, :padding => :zero, :align=>:right
|
12
|
+
patient.column :alternate_format, 1 #type=Y/N
|
13
|
+
patient.column :last_name, 20
|
14
|
+
patient.column :first_name, 15
|
15
|
+
patient.column :middle_initial, 1
|
16
|
+
patient.column :generation, 1, :type=>:integer #ref TB1
|
17
|
+
patient.column :title, 15
|
18
|
+
patient.column :date_of_birth, 8, :align => :right, :padding => :zero
|
19
|
+
patient.column :sex, 1, :type => :integer #ref TB2
|
20
|
+
patient.column :facility_id, 11 #link [Location Codes]
|
21
|
+
patient.column :address1, 30
|
22
|
+
patient.column :address2, 30
|
23
|
+
patient.column :city_id, 11 #link [City Codes]
|
24
|
+
patient.column :city_extension, 4, :align => :right, :padding => :zero
|
25
|
+
patient.column :city, 30
|
26
|
+
patient.column :state, 2
|
27
|
+
patient.column :zip_code, 5, :align => :right, :padding => :zero
|
28
|
+
patient.column :phone1, 10
|
29
|
+
patient.column :phone1_ext, 5
|
30
|
+
patient.spacer 10
|
31
|
+
patient.column :phone2, 10
|
32
|
+
patient.column :phone2_ext, 5
|
33
|
+
patient.spacer 10
|
34
|
+
patient.column :zone_id, 11 #link [Zone Codes]
|
35
|
+
patient.column :email, 40
|
36
|
+
patient.column :alternate_date_from, 8, :align=>:right, :padding => :zero
|
37
|
+
patient.column :alternate_date_to, 8, :align=>:right, :padding => :zero
|
38
|
+
patient.column :address1_alternate, 30
|
39
|
+
patient.column :address2_alternate, 30
|
40
|
+
patient.column :alternate_city_id, 11 #link [City Codes]
|
41
|
+
patient.column :alternate_city_ext, 4, :alight=>:right, :padding => :zero
|
42
|
+
patient.column :alternate_city, 30
|
43
|
+
patient.column :alternate_state, 2
|
44
|
+
patient.column :alternate_zip_code, 5, :align => :right, :padding => :zero
|
45
|
+
patient.column :alternate_phone1, 10
|
46
|
+
patient.column :alternate_phone1_ext, 5, :type=>:integer
|
47
|
+
patient.spacer 10
|
48
|
+
patient.column :alternate_phone2, 10
|
49
|
+
patient.column :alternate_phone2_ext, 5, :type => :integer
|
50
|
+
patient.spacer 10
|
51
|
+
patient.column :student_status, 2, :align => :right, :type => :integer #TB3
|
52
|
+
patient.column :marital_status, 1, :align => :right, :type => :integer #TB4
|
53
|
+
patient.column :race, 1, :align => :right, :type => :integer #TB5
|
54
|
+
patient.column :language, 2, :align => :right, :type => :integer #TB6
|
55
|
+
patient.column :employment_status, 2, :align => :right, :type=>:integer #TB7
|
56
|
+
patient.column :employer_id, 11 #link [Employer Codes]
|
57
|
+
patient.column :deceased_date, 8, :padding => :zero, :align=>:right
|
58
|
+
patient.column :signature_source, 2, :align=>:right, :type=>:integer #TB8
|
59
|
+
patient.column :signature_effective_date, 8, :align=>:right, :padding=>:zero
|
60
|
+
patient.column :signature_expire_date, 8, :align=>:right, :padding=>:zero
|
61
|
+
patient.column :sign_source_pay_medicare, 1 #Y/N
|
62
|
+
patient.column :sign_source_pay_medicaid, 1 #Y/N
|
63
|
+
patient.column :sign_source_pay_insurance, 1 #Y/N
|
64
|
+
patient.column :certification_number, 15
|
65
|
+
patient.column :patient_legal_rep, 11
|
66
|
+
patient.spacer 11
|
67
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
patient_comment :align => :left do |pc|
|
2
|
+
pc.trap { |line| line[0,3] == 'PCO' }
|
3
|
+
pc.template :record
|
4
|
+
pc.spacer 1
|
5
|
+
pc.column :patient_number, 11
|
6
|
+
pc.column :comment_date, 14, :align=>:right, :padding=>:zero #DT
|
7
|
+
pc.column :comment, 255
|
8
|
+
pc.column :user_id, 11 #link [Staff Codes]
|
9
|
+
pc.column :bill_narrative_id, 11 #link [Narrative Codes]
|
10
|
+
pc.spacer 11
|
11
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
ins :align => :left do |ins|
|
2
|
+
ins.trap { |line| line[0,3] == 'INS'}
|
3
|
+
ins.template :record
|
4
|
+
ins.spacer 1
|
5
|
+
ins.column :patient_number, 11
|
6
|
+
ins.column :insurance_id, 11 #link [Payor Codes]
|
7
|
+
ins.column :coverage, 2, :type=>:integer, :align=>:right, :padding=>:zero #TB1
|
8
|
+
ins.column :insurance_schedule_id, 11 #link [Schedule Codes]
|
9
|
+
ins.column :relationship, 2, :type=>:integer, :align=>:right, :padding=>:zero #TB2
|
10
|
+
ins.column :guarantor, 11
|
11
|
+
ins.column :insurance_verify, 1 #Y/N
|
12
|
+
ins.column :last_statement_date, 8, :padding=>:zero, :align=>:right
|
13
|
+
ins.column :minimum_statement_interval, 5, :type=>:integer, :align=>:right, :padding=>:zero
|
14
|
+
ins.column :statement_form_id, 11 #link [Form Codes]
|
15
|
+
ins.column :policy_number, 20
|
16
|
+
ins.column :insurance_group_id, 15
|
17
|
+
ins.column :insurance_group_name, 30
|
18
|
+
ins.column :insurance_accept, 1, :type=>:integer, :padding=>:zero, :align=>:right #TB3
|
19
|
+
ins.column :insurance_pay_source, 2, :type=>:integer, :padding=>:zero, :align=>:right #TB4
|
20
|
+
ins.column :eligibiliy, 2, :type=>:integer, :padding=>:zero, :align=>:right #TB5
|
21
|
+
ins.column :series_number, 3, :type=>:integer, :padding=>:zero,:align=>:right
|
22
|
+
ins.spacer 11
|
23
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
questionnaire :align => :left do |questionnaire|
|
2
|
+
questionnaire.trap { |line| line[0,3] == 'QST' }
|
3
|
+
questionnaire.template :call_record
|
4
|
+
questionnaire.column :question_id, 11, :type=>:integer, :align=>:right, :padding=>:zero #TB1
|
5
|
+
questionnaire.column :question_answer_id, 2, :type=>:integer, :align=>:right, :padding=>:zero #TB2
|
6
|
+
questionnaire.column :question_text, 80
|
7
|
+
questionnaire.spacer 11
|
8
|
+
end
|
metadata
ADDED
@@ -0,0 +1,111 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: tritech
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 11
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Nathan Stults
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-01-26 00:00:00 -08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: slither
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: rake
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :development
|
48
|
+
version_requirements: *id002
|
49
|
+
description:
|
50
|
+
email:
|
51
|
+
- hereiam@sonic.net
|
52
|
+
executables: []
|
53
|
+
|
54
|
+
extensions: []
|
55
|
+
|
56
|
+
extra_rdoc_files: []
|
57
|
+
|
58
|
+
files:
|
59
|
+
- lib/tritech/sections/call.rb
|
60
|
+
- lib/tritech/sections/narrative.rb
|
61
|
+
- lib/tritech/sections/call_reason.rb
|
62
|
+
- lib/tritech/sections/crew.rb
|
63
|
+
- lib/tritech/sections/call_comment.rb
|
64
|
+
- lib/tritech/sections/patient_payor.rb
|
65
|
+
- lib/tritech/sections/credit.rb
|
66
|
+
- lib/tritech/sections/questionnaire.rb
|
67
|
+
- lib/tritech/sections/patient.rb
|
68
|
+
- lib/tritech/sections/guarantor.rb
|
69
|
+
- lib/tritech/sections/patient_comment.rb
|
70
|
+
- lib/tritech/sections/charge.rb
|
71
|
+
- lib/tritech/sections/time.rb
|
72
|
+
- lib/tritech/version.rb
|
73
|
+
- lib/tritech.rb
|
74
|
+
- LICENSE.txt
|
75
|
+
- README.rdoc
|
76
|
+
has_rdoc: true
|
77
|
+
homepage: http://github.com/PlasticLizard/tritech
|
78
|
+
licenses: []
|
79
|
+
|
80
|
+
post_install_message:
|
81
|
+
rdoc_options: []
|
82
|
+
|
83
|
+
require_paths:
|
84
|
+
- lib
|
85
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
86
|
+
none: false
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
hash: 3
|
91
|
+
segments:
|
92
|
+
- 0
|
93
|
+
version: "0"
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
103
|
+
requirements: []
|
104
|
+
|
105
|
+
rubyforge_project:
|
106
|
+
rubygems_version: 1.3.7
|
107
|
+
signing_key:
|
108
|
+
specification_version: 3
|
109
|
+
summary: ASCII Import/Export in Tritech Amazon format
|
110
|
+
test_files: []
|
111
|
+
|