medivo 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/app/assets/javascripts/medivo/lab_appointment/handlers.coffee +12 -6
- data/app/assets/javascripts/medivo/lab_list/handlers.coffee +6 -1
- data/app/controllers/medivo/labs_controller.rb +1 -1
- data/app/models/medivo/order.rb +14 -1
- data/lib/medivo/version.rb +1 -1
- data/lib/medivo.rb +6 -1
- data/lib/{medivo → pdf/medivo}/fdf_generator.rb +0 -0
- data/lib/pdf/medivo/pdf_generator.rb +18 -0
- data/lib/pdf/medivo/pdf_group.rb +42 -0
- data/lib/{medivo → support}/validators.rb +0 -0
- data/spec/dummy/app/views/labs/search.html.haml +8 -8
- data/spec/dummy/log/development.log +1080 -0
- data/spec/dummy/tmp/cache/assets/C46/F00/sprockets%2F2281d588b540056c5a7306c32a3761b9 +0 -0
- data/spec/dummy/tmp/cache/assets/CB4/BD0/sprockets%2F3378f27c0d4f5e6d708665b22707a31f +0 -0
- data/spec/dummy/tmp/cache/assets/CD8/DA0/sprockets%2F622aa5281d15503829a5f7a0bf56fc29 +0 -0
- data/spec/dummy/tmp/cache/assets/D20/F10/sprockets%2Fb2e907e4faa85fe755f4439e3b229088 +0 -0
- data/spec/dummy/tmp/cache/assets/D29/000/sprockets%2F61a10ddf57f1129c02a1049bfed6e007 +0 -0
- data/spec/dummy/tmp/cache/assets/D41/250/sprockets%2F7b3c4426715dcd1feedc4a95e5444256 +0 -0
- data/spec/dummy/tmp/cache/assets/D4C/7A0/sprockets%2Fbc635c7b186d1ef5178f4ed3722d868b +0 -0
- data/spec/dummy/tmp/cache/assets/D5D/3E0/sprockets%2F63fea6cc142b5f02da93bf81e70b2116 +0 -0
- data/spec/dummy/tmp/cache/assets/D60/030/sprockets%2Ffc9485f617fc5e9b8918755d2e08ecc6 +0 -0
- data/spec/dummy/tmp/cache/assets/D69/130/sprockets%2Fbaa4ec50a34ce938c986612c2a47a64e +0 -0
- data/spec/dummy/tmp/cache/assets/D74/9A0/sprockets%2F0ca4e6e833c72156fc7e7d5f007d9ce3 +0 -0
- data/spec/dummy/tmp/cache/assets/D76/720/sprockets%2F88d8aa1d2fb41ce79b8ec4150ea74748 +0 -0
- data/spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
- data/spec/dummy/tmp/cache/assets/DCE/E80/sprockets%2Fc71ec62157b9cc7aabfc030955cef87b +0 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/fixtures/lc_order_with_normal_results.xml +98 -0
- data/spec/fixtures/{lc_positive_results.xml → lc_order_with_positive_results.xml} +0 -0
- data/spec/fixtures/{order_with_requisition.xml → lc_order_with_requisition.xml} +0 -0
- data/spec/fixtures/negative_results.pdf +0 -0
- data/spec/lib/fdf_generator_spec.rb +22 -0
- data/spec/lib/pdf_generator_spec.rb +12 -0
- data/spec/lib/pdf_group_spec.rb +42 -0
- data/spec/models/orders_spec.rb +46 -28
- data/spec/spec_helper.rb +3 -0
- metadata +54 -29
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
50391
|
@@ -0,0 +1,98 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<customer>
|
3
|
+
<id>170850</id>
|
4
|
+
<requisition-number>170850</requisition-number>
|
5
|
+
<account-number>05021370</account-number>
|
6
|
+
<confirmation-code>5Fe976AdeT</confirmation-code>
|
7
|
+
<first-name>daniel</first-name>
|
8
|
+
<last-name>sudol</last-name>
|
9
|
+
<gender>Male</gender>
|
10
|
+
<dob>19140303</dob>
|
11
|
+
<state>NY</state>
|
12
|
+
<test-types>144028</test-types>
|
13
|
+
<test-groups nil="true"></test-groups>
|
14
|
+
<reconciled-test-types>144028</reconciled-test-types>
|
15
|
+
<home-phone>4155551212</home-phone>
|
16
|
+
<work-phone nil="true"></work-phone>
|
17
|
+
<mobile-phone nil="true"></mobile-phone>
|
18
|
+
<city>New York City</city>
|
19
|
+
<zip>10005</zip>
|
20
|
+
<address>55 Broad st</address>
|
21
|
+
<email>apinto+unknown_email_agent_order@medivo.com</email>
|
22
|
+
<draw-location>PSC</draw-location>
|
23
|
+
<psc>LABCORP, NEW YORK, 65 BROADWAY SUITE 905</psc>
|
24
|
+
<reference nil="true"></reference>
|
25
|
+
<grouping nil="true"></grouping>
|
26
|
+
<physicians-name>Bhan, Jason</physicians-name>
|
27
|
+
<physicians-upin nil="true"></physicians-upin>
|
28
|
+
<physicians-npi>1841295896</physicians-npi>
|
29
|
+
<physicians-license>12345</physicians-license>
|
30
|
+
<status>approved</status>
|
31
|
+
<timestamp>20110913221637</timestamp>
|
32
|
+
<reconciled-results>
|
33
|
+
<results-summary>
|
34
|
+
<clinical-info nil="true"></clinical-info>
|
35
|
+
<collection-date type="datetime">2011-09-06T07:00:00Z</collection-date>
|
36
|
+
<fasting nil="true"></fasting>
|
37
|
+
<lab-patient-id>CB016631A</lab-patient-id>
|
38
|
+
<receipt-date type="datetime">2011-09-06T23:07:00Z</receipt-date>
|
39
|
+
<reported-date type="datetime">2011-09-06T23:09:00Z</reported-date>
|
40
|
+
</results-summary>
|
41
|
+
<results-pdf>
|
42
|
+
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
|
43
|
+
</results-pdf>
|
44
|
+
<result type="array">
|
45
|
+
<result>
|
46
|
+
<customer-id type="integer">170850</customer-id>
|
47
|
+
<fasting nil="true"></fasting>
|
48
|
+
<hl7message-nte-id nil="true"></hl7message-nte-id>
|
49
|
+
<id type="integer">17934</id>
|
50
|
+
<lab-abnormal-flag>N</lab-abnormal-flag>
|
51
|
+
<lab-facility-director-id type="integer">20</lab-facility-director-id>
|
52
|
+
<lab-facility-id type="integer">69</lab-facility-id>
|
53
|
+
<lab-id type="integer">129</lab-id>
|
54
|
+
<lab-reference-range>NON-REACTIVE</lab-reference-range>
|
55
|
+
<observation-date type="datetime">2011-09-06T23:09:00Z</observation-date>
|
56
|
+
<obx-sequence-number type="integer">1</obx-sequence-number>
|
57
|
+
<order-lab-code>144028</order-lab-code>
|
58
|
+
<order-lab-name>Hepatitis C Virus (HCV) Antibody With Reflex to Quantitative Real-time PCR</order-lab-name>
|
59
|
+
<parent-lab-code nil="true"></parent-lab-code>
|
60
|
+
<result-lab-code>?????</result-lab-code>
|
61
|
+
<result-lab-name>HEPATITIS C ANTIBODY</result-lab-name>
|
62
|
+
<result-status>F</result-status>
|
63
|
+
<tnp-reason nil="true"></tnp-reason>
|
64
|
+
<units-of-measurement nil="true"></units-of-measurement>
|
65
|
+
<value>REACTIVE</value>
|
66
|
+
<value-type>ST</value-type>
|
67
|
+
<notes nil="true"></notes>
|
68
|
+
<lab-facility>01: LabCorp Burlington, 1447 York Court, Burlington NC, phone: 972-566-7500</lab-facility>
|
69
|
+
<lab-facility-director>MD Hancock William F</lab-facility-director>
|
70
|
+
</result>
|
71
|
+
<result>
|
72
|
+
<customer-id type="integer">170850</customer-id>
|
73
|
+
<fasting nil="true"></fasting>
|
74
|
+
<hl7message-nte-id type="integer">1201</hl7message-nte-id>
|
75
|
+
<id type="integer">17935</id>
|
76
|
+
<lab-abnormal-flag>N</lab-abnormal-flag>
|
77
|
+
<lab-facility-director-id type="integer">20</lab-facility-director-id>
|
78
|
+
<lab-facility-id type="integer">69</lab-facility-id>
|
79
|
+
<lab-id type="integer">129</lab-id>
|
80
|
+
<lab-reference-range><1.00</lab-reference-range>
|
81
|
+
<observation-date type="datetime">2011-09-06T23:09:00Z</observation-date>
|
82
|
+
<obx-sequence-number type="integer">2</obx-sequence-number>
|
83
|
+
<order-lab-code>144028</order-lab-code>
|
84
|
+
<order-lab-name>Hepatitis C Virus (HCV) Antibody With Reflex to Quantitative Real-time PCR</order-lab-name>
|
85
|
+
<parent-lab-code nil="true"></parent-lab-code>
|
86
|
+
<result-lab-code>144035</result-lab-code>
|
87
|
+
<result-lab-name>SIGNAL TO CUT-OFF</result-lab-name>
|
88
|
+
<result-status>F</result-status>
|
89
|
+
<tnp-reason nil="true"></tnp-reason>
|
90
|
+
<units-of-measurement nil="true"></units-of-measurement>
|
91
|
+
<value>0</value>
|
92
|
+
<value-type>NM</value-type>
|
93
|
+
<lab-facility>01: LabCorp Burlington, 1447 York Court, Burlington NC, phone: 972-566-7500</lab-facility>
|
94
|
+
<lab-facility-director>MD Hancock William F</lab-facility-director>
|
95
|
+
</result>
|
96
|
+
</result>
|
97
|
+
</reconciled-results>
|
98
|
+
</customer>
|
File without changes
|
File without changes
|
Binary file
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Medivo::FdfGenerator do
|
4
|
+
before(:all) do
|
5
|
+
@birth_date = '12/23/1901'
|
6
|
+
@fdf = Medivo::FdfGenerator.file({:patient_name=>'jane', :birth_date=>@birth_date , :result_date=> '12/24/1901', :missing=>'dude'})
|
7
|
+
end
|
8
|
+
|
9
|
+
it "generate fdf" do
|
10
|
+
fdf = open(@fdf.path, 'r:ascii-8bit').read
|
11
|
+
fdf.should == "%FDF-1.2\r%\xE2\xE3\xCF\xD3\r\n1 0 obj\r<< \r/FDF << /Fields [ << /T (patient_name) /V (jane) /ClrF 2 /ClrFf 1 >> << /T (birth_date) /V (12/23/1901) /ClrF 2 /ClrFf 1 >> << /T (result_date) /V (12/24/1901) /ClrF 2 /ClrFf 1 >> << /T (missing) /V (dude) /ClrF 2 /ClrFf 1 >> ] \r>> \r>> \rendobj\rtrailer\r<<\r/Root 1 0 R \r\r>>\r%%EOF\r\n"
|
12
|
+
end
|
13
|
+
|
14
|
+
it "fill in pdf form" do
|
15
|
+
pdf_output = `pdftk "#{ENGINE_PATH}/spec/fixtures/negative_results.pdf" fill_form #{@fdf.path} output - flatten`
|
16
|
+
text = pdf_to_text(pdf_output)
|
17
|
+
text.should =~ /jane/
|
18
|
+
text.should =~ Regexp.new(@birth_date)
|
19
|
+
text.should =~ Regexp.new('12/24/1901')
|
20
|
+
text.should_not =~ /we rock/
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Medivo::PdfGenerator do
|
4
|
+
|
5
|
+
it "#variable_fields generates pdf by filling in the variables" do
|
6
|
+
name = "Duderoni"
|
7
|
+
path = "#{ENGINE_PATH}/spec/fixtures/negative_results.pdf"
|
8
|
+
pdf_file = Medivo::PdfGenerator.variable_fields(path, {:patient_name=>name})
|
9
|
+
text = pdf_to_text(pdf_file.read)
|
10
|
+
text.should =~ /#{name}/
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Medivo::PdfGroup do
|
4
|
+
|
5
|
+
it "#variable_fields" do
|
6
|
+
name = "Duderoni"
|
7
|
+
path = "#{ENGINE_PATH}/spec/fixtures/negative_results.pdf"
|
8
|
+
pdf = Medivo::PdfGroup.create do |pdf|
|
9
|
+
pdf.variable_fields(path, {:patient_name=>name})
|
10
|
+
end
|
11
|
+
text = pdf_to_text(pdf.read)
|
12
|
+
text.should =~ /#{name}/
|
13
|
+
end
|
14
|
+
|
15
|
+
it "#lab_requisition" do
|
16
|
+
reqiuisition_number = 170420
|
17
|
+
order = Medivo::Order.new(:requisition_number=> reqiuisition_number)
|
18
|
+
stub_request(:get, "test:test@test.medivo.com/customers/#{order.requisition_id}.xml?include=requisition").
|
19
|
+
to_return(:body => File.read("#{ENGINE_PATH}/spec/fixtures/lc_order_with_requisition.xml"))
|
20
|
+
|
21
|
+
pdf = Medivo::PdfGroup.create do |pdf|
|
22
|
+
pdf.lab_requisition(reqiuisition_number)
|
23
|
+
end
|
24
|
+
|
25
|
+
text = pdf_to_text(pdf.read)
|
26
|
+
text.should match /Account #:111111111 Req\/Control #:170420/
|
27
|
+
end
|
28
|
+
|
29
|
+
it "#lab_result" do
|
30
|
+
reqiuisition_number = 170420
|
31
|
+
order = Medivo::Order.new(:requisition_number=>reqiuisition_number)
|
32
|
+
stub_request(:get, "test:test@test.medivo.com/customers/#{order.requisition_id}.xml?include=reconciled_results").
|
33
|
+
to_return(:body => File.read(("#{ENGINE_PATH}/spec/fixtures/lc_order_with_positive_results.xml")))
|
34
|
+
|
35
|
+
pdf = Medivo::PdfGroup.create do |pdf|
|
36
|
+
pdf.lab_result(reqiuisition_number)
|
37
|
+
end
|
38
|
+
|
39
|
+
text = pdf_to_text(pdf.read)
|
40
|
+
text.should match /COLLECTED:2011-09-06 RECEIVED:2011-09-06 REPORTED:2011-09-06/
|
41
|
+
end
|
42
|
+
end
|
data/spec/models/orders_spec.rb
CHANGED
@@ -115,57 +115,75 @@ describe Medivo::Order do
|
|
115
115
|
end
|
116
116
|
end
|
117
117
|
|
118
|
-
describe "
|
118
|
+
describe "getting requisitions with" do
|
119
119
|
|
120
|
-
before(:
|
120
|
+
before(:each) do
|
121
121
|
@reqiuisition_number = 170420
|
122
122
|
order = Medivo::Order.new(:requisition_number=> @reqiuisition_number)
|
123
123
|
stub_request(:get, "test:test@test.medivo.com/customers/#{order.requisition_id}.xml?include=requisition").
|
124
|
-
|
124
|
+
to_return(:body => File.read("#{ENGINE_PATH}/spec/fixtures/lc_order_with_requisition.xml"))
|
125
125
|
end
|
126
|
+
let(:order) { Medivo::Order.find_with_requisition(@reqiuisition_number) }
|
126
127
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
order.should_not be_nil
|
132
|
-
end
|
133
|
-
|
134
|
-
it "has reconcilled results" do
|
135
|
-
order.requisition.should_not be_nil
|
136
|
-
end
|
128
|
+
it "#find_with_requisition finds the order including the requisition info" do
|
129
|
+
order.should_not be_nil
|
130
|
+
order.sameday_requisition.should_not be_nil
|
131
|
+
end
|
137
132
|
|
133
|
+
it "#pdf_requisition returns requisition as pdf" do
|
134
|
+
pdf = order.pdf_requisition
|
135
|
+
text = pdf_to_text(pdf)
|
136
|
+
text.should match /This order expires 2012-02-12/
|
137
|
+
text.should match /Account #:111111111 Req\/Control #:170420/
|
138
|
+
text.should match /Draw Location LABCORP, BEVERLY HILLS, 465 N ROXBURY DR STE 715 BEVERLY HILLS, CA/
|
138
139
|
end
|
139
140
|
|
141
|
+
it "class method #pdf_requisition returns pdf requisition" do
|
142
|
+
pdf = Medivo::Order.pdf_requisition(@reqiuisition_number)
|
143
|
+
text = pdf_to_text(pdf)
|
144
|
+
text.should match /This order expires 2012-02-12/
|
145
|
+
text.should match /Account #:111111111 Req\/Control #:170420/
|
146
|
+
text.should match /Draw Location LABCORP, BEVERLY HILLS, 465 N ROXBURY DR STE 715 BEVERLY HILLS, CA/
|
147
|
+
end
|
140
148
|
end
|
141
149
|
|
142
|
-
describe "
|
150
|
+
describe "getting results with" do
|
143
151
|
|
144
|
-
before(:
|
152
|
+
before(:each) do
|
145
153
|
@reqiuisition_number = 170853
|
146
154
|
order = Medivo::Order.new(:requisition_number=>@reqiuisition_number)
|
147
155
|
stub_request(:get, "test:test@test.medivo.com/customers/#{order.requisition_id}.xml?include=reconciled_results").
|
148
|
-
to_return(:body => File.read(("#{ENGINE_PATH}/spec/fixtures/
|
156
|
+
to_return(:body => File.read(("#{ENGINE_PATH}/spec/fixtures/lc_order_with_positive_results.xml")))
|
149
157
|
|
150
158
|
end
|
151
159
|
|
152
|
-
|
153
|
-
let(:order) { Medivo::Order.find_with_results(@reqiuisition_number) }
|
160
|
+
let(:order) { Medivo::Order.find_with_results(@reqiuisition_number) }
|
154
161
|
|
155
|
-
|
156
|
-
|
157
|
-
|
162
|
+
it "#find_with_results finds the order including results info" do
|
163
|
+
order.should_not be_nil
|
164
|
+
end
|
158
165
|
|
159
|
-
|
160
|
-
|
161
|
-
|
166
|
+
it "#results returns results info like test names" do
|
167
|
+
order.results.should_not be_nil
|
168
|
+
order.results.collect(&:result_lab_name).should == ["HEPATITIS C ANTIBODY", "SIGNAL TO CUT-OFF", "HCV RNA, QUANTITATIVE REAL TIME PCR", "HCV RNA, QUANTITATIVE REAL TIME PCR", nil]
|
169
|
+
end
|
162
170
|
|
163
|
-
|
164
|
-
|
165
|
-
|
171
|
+
it "#results_summary returns has reconcilled results" do
|
172
|
+
order.results_summary.should_not be_nil
|
173
|
+
end
|
174
|
+
|
175
|
+
it "#pdf_result returns has results as pdf" do
|
176
|
+
pdf = order.pdf_result
|
177
|
+
text = pdf_to_text(pdf)
|
178
|
+
text.should match /COLLECTED:2011-09-06 RECEIVED:2011-09-06 REPORTED:2011-09-06/
|
166
179
|
end
|
167
|
-
end
|
168
180
|
|
181
|
+
it "class method #pdf_result returns has results as pdf" do
|
182
|
+
pdf = Medivo::Order.pdf_result(@reqiuisition_number)
|
183
|
+
text = pdf_to_text(pdf)
|
184
|
+
text.should match /COLLECTED:2011-09-06 RECEIVED:2011-09-06 REPORTED:2011-09-06/
|
185
|
+
end
|
186
|
+
end
|
169
187
|
end
|
170
188
|
|
171
189
|
describe Medivo::InsuranceOrder do
|
data/spec/spec_helper.rb
CHANGED
@@ -38,7 +38,10 @@ end
|
|
38
38
|
ENGINE_PATH = File.expand_path('../..', __FILE__) unless defined? ENGINE_PATH
|
39
39
|
Spork.each_run do
|
40
40
|
Dir["#{Rails.root}/app/**/*.rb"].each { |f| load f }
|
41
|
+
|
41
42
|
Dir["#{ENGINE_PATH}/app/**/*.rb"].each { |f| load f }
|
43
|
+
Dir["#{ENGINE_PATH}/lib/support/**/*.rb"].each { |f| load f }
|
44
|
+
Dir["#{ENGINE_PATH}/lib/pdf/**/*.rb"].each { |f| load f }
|
42
45
|
load "#{ENGINE_PATH}/config/routes.rb"
|
43
46
|
load "#{ENGINE_PATH}/spec/support/blueprints.rb"
|
44
47
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: medivo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,12 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-11-
|
12
|
+
date: 2011-11-04 00:00:00.000000000 -04:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &2158697260 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 3.1.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *2158697260
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: jquery-rails
|
28
|
-
requirement: &
|
28
|
+
requirement: &2158696840 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ! '>='
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *2158696840
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: coffee-script
|
39
|
-
requirement: &
|
39
|
+
requirement: &2158696360 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ! '>='
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: '0'
|
45
45
|
type: :runtime
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *2158696360
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: haml-rails
|
50
|
-
requirement: &
|
50
|
+
requirement: &2158695940 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,21 +55,21 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2158695940
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
|
-
name:
|
61
|
-
requirement: &
|
60
|
+
name: geocoder
|
61
|
+
requirement: &2158695500 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
|
-
- -
|
64
|
+
- - ! '>='
|
65
65
|
- !ruby/object:Gem::Version
|
66
|
-
version: 0
|
66
|
+
version: '0'
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2158695500
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
|
-
name:
|
72
|
-
requirement: &
|
71
|
+
name: rest-client
|
72
|
+
requirement: &2158695080 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,10 +77,21 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2158695080
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
|
-
name:
|
83
|
-
requirement: &
|
82
|
+
name: pdf-toolkit
|
83
|
+
requirement: &2158694640 !ruby/object:Gem::Requirement
|
84
|
+
none: false
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
type: :runtime
|
90
|
+
prerelease: false
|
91
|
+
version_requirements: *2158694640
|
92
|
+
- !ruby/object:Gem::Dependency
|
93
|
+
name: pdfkit
|
94
|
+
requirement: &2158694220 !ruby/object:Gem::Requirement
|
84
95
|
none: false
|
85
96
|
requirements:
|
86
97
|
- - ! '>='
|
@@ -88,7 +99,7 @@ dependencies:
|
|
88
99
|
version: '0'
|
89
100
|
type: :runtime
|
90
101
|
prerelease: false
|
91
|
-
version_requirements: *
|
102
|
+
version_requirements: *2158694220
|
92
103
|
description: Use the medivo platform to find lab locations, make labcorp appointments,
|
93
104
|
place lab orders
|
94
105
|
email:
|
@@ -144,10 +155,12 @@ files:
|
|
144
155
|
- lib/generators/medivo/templates/labs_controller.rb
|
145
156
|
- lib/generators/medivo/templates/search.html.haml
|
146
157
|
- lib/medivo/engine.rb
|
147
|
-
- lib/medivo/fdf_generator.rb
|
148
|
-
- lib/medivo/validators.rb
|
149
158
|
- lib/medivo/version.rb
|
150
159
|
- lib/medivo.rb
|
160
|
+
- lib/pdf/medivo/fdf_generator.rb
|
161
|
+
- lib/pdf/medivo/pdf_generator.rb
|
162
|
+
- lib/pdf/medivo/pdf_group.rb
|
163
|
+
- lib/support/validators.rb
|
151
164
|
- lib/tasks/medivo_tasks.rake
|
152
165
|
- MIT-LICENSE
|
153
166
|
- Rakefile
|
@@ -244,9 +257,15 @@ files:
|
|
244
257
|
- spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
245
258
|
- spec/dummy/tmp/cache/assets/E32/FC0/sprockets%2Fe55fb2eef11567fe04fdaf7e73af5ba4
|
246
259
|
- spec/dummy/tmp/cache/assets/E59/D50/sprockets%2Fbe1cc4d9b0efb617e58baa16dd1dee58
|
247
|
-
- spec/
|
248
|
-
- spec/fixtures/
|
260
|
+
- spec/dummy/tmp/pids/server.pid
|
261
|
+
- spec/fixtures/lc_order_with_normal_results.xml
|
262
|
+
- spec/fixtures/lc_order_with_positive_results.xml
|
263
|
+
- spec/fixtures/lc_order_with_requisition.xml
|
264
|
+
- spec/fixtures/negative_results.pdf
|
249
265
|
- spec/fixtures/valid_uhc_order.xml
|
266
|
+
- spec/lib/fdf_generator_spec.rb
|
267
|
+
- spec/lib/pdf_generator_spec.rb
|
268
|
+
- spec/lib/pdf_group_spec.rb
|
250
269
|
- spec/models/appointment_spec.rb
|
251
270
|
- spec/models/labs_spec.rb
|
252
271
|
- spec/models/orders_spec.rb
|
@@ -270,7 +289,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
270
289
|
version: '0'
|
271
290
|
segments:
|
272
291
|
- 0
|
273
|
-
hash:
|
292
|
+
hash: -2872222776584530363
|
274
293
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
275
294
|
none: false
|
276
295
|
requirements:
|
@@ -279,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
279
298
|
version: '0'
|
280
299
|
segments:
|
281
300
|
- 0
|
282
|
-
hash:
|
301
|
+
hash: -2872222776584530363
|
283
302
|
requirements: []
|
284
303
|
rubyforge_project:
|
285
304
|
rubygems_version: 1.6.2
|
@@ -379,9 +398,15 @@ test_files:
|
|
379
398
|
- spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
380
399
|
- spec/dummy/tmp/cache/assets/E32/FC0/sprockets%2Fe55fb2eef11567fe04fdaf7e73af5ba4
|
381
400
|
- spec/dummy/tmp/cache/assets/E59/D50/sprockets%2Fbe1cc4d9b0efb617e58baa16dd1dee58
|
382
|
-
- spec/
|
383
|
-
- spec/fixtures/
|
401
|
+
- spec/dummy/tmp/pids/server.pid
|
402
|
+
- spec/fixtures/lc_order_with_normal_results.xml
|
403
|
+
- spec/fixtures/lc_order_with_positive_results.xml
|
404
|
+
- spec/fixtures/lc_order_with_requisition.xml
|
405
|
+
- spec/fixtures/negative_results.pdf
|
384
406
|
- spec/fixtures/valid_uhc_order.xml
|
407
|
+
- spec/lib/fdf_generator_spec.rb
|
408
|
+
- spec/lib/pdf_generator_spec.rb
|
409
|
+
- spec/lib/pdf_group_spec.rb
|
385
410
|
- spec/models/appointment_spec.rb
|
386
411
|
- spec/models/labs_spec.rb
|
387
412
|
- spec/models/orders_spec.rb
|