medivo 0.0.8 → 0.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/assets/javascripts/medivo/lab_appointments/application.js +0 -0
- data/app/assets/javascripts/medivo/lab_appointments/models.coffee +0 -0
- data/app/assets/javascripts/medivo/lab_appointments/sample/show_appointments.coffee +0 -0
- data/app/assets/javascripts/medivo/lab_appointments/views.coffee +0 -0
- data/app/models/medivo/insurance_order.rb +15 -3
- data/app/models/medivo/order.rb +28 -10
- data/lib/medivo.rb +2 -1
- data/lib/medivo/validators.rb +10 -0
- data/lib/medivo/version.rb +1 -1
- data/spec/dummy/config/medivo_resource.yml +5 -2
- data/spec/dummy/log/development.log +125 -0
- data/spec/dummy/log/test.log +42 -0
- data/spec/dummy/tmp/cache/assets/C46/F00/sprockets%2F2281d588b540056c5a7306c32a3761b9 +0 -0
- data/spec/dummy/tmp/cache/assets/C69/500/sprockets%2F140b56780716711c2b6eb1028f042ca6 +0 -0
- data/spec/dummy/tmp/cache/assets/C81/D00/sprockets%2F64f056bd752d271308a86a6f865b1911 +0 -0
- data/spec/dummy/tmp/cache/assets/CC3/EF0/sprockets%2F453b504c1f8f374578636f699eaa455d +0 -0
- data/spec/dummy/tmp/cache/assets/CEC/EF0/sprockets%2F4b24a74018f693c06088bd52f8cc9f86 +0 -0
- data/spec/dummy/tmp/cache/assets/D1B/820/sprockets%2F92a83e15913997b3d9ac7ed437b1e44c +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/D30/920/sprockets%2Fcc4603fc6441ca421a7d02886a81ab9d +0 -0
- data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/spec/dummy/tmp/cache/assets/D36/870/sprockets%2Fce9e887568de873b133ae43d7c977f68 +0 -0
- data/spec/dummy/tmp/cache/assets/D4C/7A0/sprockets%2Fbc635c7b186d1ef5178f4ed3722d868b +0 -0
- data/spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
- data/spec/dummy/tmp/cache/assets/D55/ED0/sprockets%2F0f673e42e816c6fe5b66a5c96f896f1a +0 -0
- data/spec/dummy/tmp/cache/assets/D5D/3E0/sprockets%2F63fea6cc142b5f02da93bf81e70b2116 +0 -0
- data/spec/dummy/tmp/cache/assets/D65/6D0/sprockets%2F3ce07ca1958d7ab3e80c4b3e0d24088c +0 -0
- data/spec/dummy/tmp/cache/assets/D68/AD0/sprockets%2F19727663b4ec901b812dbdabee2526ec +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/DC1/230/sprockets%2F3a36cd467bdce1914a2b7af4ed4114cf +0 -0
- data/spec/dummy/tmp/cache/assets/DD4/2B0/sprockets%2Fef214a63f29afe7f3cbffc65af943108 +0 -0
- data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -1
- data/spec/fixtures/lc_positive_results.xml +182 -0
- data/spec/fixtures/valid_uhc_order.xml +36 -0
- data/spec/models/orders_spec.rb +109 -10
- data/spec/support/blueprints.rb +48 -48
- metadata +24 -16
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -6,6 +6,7 @@ module Medivo
|
|
6
6
|
include ActiveModel::Validations
|
7
7
|
|
8
8
|
validates_presence_of :relationship, :company_name, :policy_number, :group_number
|
9
|
+
validates :relationship, :inclusion => { :in => 1..2 }
|
9
10
|
|
10
11
|
def initialize(attributes = {})
|
11
12
|
@attributes = attributes
|
@@ -15,22 +16,33 @@ module Medivo
|
|
15
16
|
@attributes[key]
|
16
17
|
end
|
17
18
|
|
19
|
+
def to_hash
|
20
|
+
@attributes
|
21
|
+
end
|
22
|
+
|
18
23
|
def validate(record)
|
19
24
|
primary_insurance = record.attributes[:primary_insurance]
|
20
25
|
record.errors.add(:primary_insurance, "primary_insurance field must be present") and return unless primary_insurance
|
21
26
|
record.errors.add(:primary_insurance, "primary_insurance field must be of PrimaryInsurance class") unless primary_insurance.is_a? PrimaryInsurance
|
22
27
|
primary_insurance.valid?
|
23
|
-
|
24
|
-
|
25
|
-
record.errors.add(:"primary_insurance.#{field}", "primary_insurance #{field} must be present") unless primary_insurance.read_attribute_for_validation(field)
|
28
|
+
primary_insurance.errors.messages.each do |field,value|
|
29
|
+
record.errors.add(:"primary_insurance.#{field}", value.first)
|
26
30
|
end
|
27
31
|
end
|
28
32
|
end
|
29
33
|
|
30
34
|
class InsuranceOrder < Order
|
35
|
+
set_element_name 'customer'
|
36
|
+
set_collection_name 'customers'
|
37
|
+
|
31
38
|
validates_with Medivo::ArrayValidator, :fields => [:diagnosis_code]
|
32
39
|
validates_with PrimaryInsurance
|
33
40
|
|
41
|
+
def to_xml(options={})
|
42
|
+
options.merge!(:root=>self.class.element_name)
|
43
|
+
@attributes.merge(:primary_insurance=>primary_insurance.to_hash).to_xml(options)
|
44
|
+
end
|
45
|
+
|
34
46
|
# when getting the insurance info from medivo labs
|
35
47
|
def insurance
|
36
48
|
@insurance ||= try(:insurance_information).try(:primary_insurance_info)
|
data/app/models/medivo/order.rb
CHANGED
@@ -5,22 +5,27 @@ module Medivo
|
|
5
5
|
set_element_name 'customer'
|
6
6
|
set_collection_name 'customers'
|
7
7
|
|
8
|
-
validates_presence_of :
|
8
|
+
validates_presence_of :first_name, :last_name, :email, :address,
|
9
|
+
:state, :zip, :dob, :home_phone, :psc,
|
9
10
|
:test_types, :gender, :account_number
|
10
11
|
validates_inclusion_of :gender, :in => %w(Male Female)
|
11
12
|
validates_with Medivo::DateValidator, :fields=>[:dob]
|
12
|
-
validates_with Medivo::
|
13
|
+
validates_with Medivo::TestTypesValidator, :fields=>[:test_types]
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
15
|
+
extend ActiveModel::Callbacks
|
16
|
+
# need to set up this dummy call .. for subclass to be able to use it at all
|
17
|
+
define_model_callbacks :create, :only=>[]
|
17
18
|
|
18
19
|
def initialize(attributes = {}, persisted = false)
|
19
20
|
super(attributes, persisted)
|
20
|
-
self.draw_location =
|
21
|
+
self.draw_location = "PSC"
|
21
22
|
self.take_tests_same_day = true
|
22
23
|
end
|
23
24
|
|
25
|
+
def read_attribute_for_validation(key)
|
26
|
+
@attributes[key]
|
27
|
+
end
|
28
|
+
|
24
29
|
# overriding save to return false if it does not save without errors
|
25
30
|
def save
|
26
31
|
new? ? create : update
|
@@ -30,11 +35,12 @@ module Medivo
|
|
30
35
|
# overriding create to capture 404 status and put that in error
|
31
36
|
# messages instead of throwing exception
|
32
37
|
def create
|
33
|
-
|
34
|
-
|
38
|
+
run_callbacks(:create)
|
39
|
+
super
|
40
|
+
@remote_errors = nil
|
35
41
|
rescue ActiveResource::ResourceNotFound => e
|
36
42
|
@remote_errors = e
|
37
|
-
load_remote_errors(e,true)
|
43
|
+
load_remote_errors(e, true)
|
38
44
|
end
|
39
45
|
|
40
46
|
def to_param
|
@@ -49,8 +55,19 @@ module Medivo
|
|
49
55
|
find(requsition_id)
|
50
56
|
end
|
51
57
|
|
58
|
+
# loads the results with order
|
59
|
+
def self.find_with_results(requsition_id)
|
60
|
+
find(requsition_id, :params=>{:include=>:reconciled_results})
|
61
|
+
end
|
62
|
+
|
63
|
+
# must use #find_with_results to get the order before you call this method
|
52
64
|
def results
|
53
|
-
|
65
|
+
Array.wrap(try(:reconciled_results).try(:result))
|
66
|
+
end
|
67
|
+
|
68
|
+
# must use #find_with_results to get the order before you call this method
|
69
|
+
def results_summary
|
70
|
+
try(:reconciled_results).try(:results_summary)
|
54
71
|
end
|
55
72
|
|
56
73
|
def simulate_result(lab_prefix, type='normal')
|
@@ -64,5 +81,6 @@ module Medivo
|
|
64
81
|
|
65
82
|
post(:mock_order, {}, body)
|
66
83
|
end
|
84
|
+
|
67
85
|
end
|
68
86
|
end
|
data/lib/medivo.rb
CHANGED
data/lib/medivo/validators.rb
CHANGED
@@ -8,6 +8,16 @@ module Medivo
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
class TestTypesValidator < ActiveModel::Validator
|
12
|
+
def validate(record)
|
13
|
+
for field in options[:fields]
|
14
|
+
value = record.attributes[field]
|
15
|
+
valid = value.is_a?(String) and value.split(",").is_a?(Array) rescue false
|
16
|
+
record.errors.add(field, "#{field} must be a comma delimited string of one of more test id's' like so: \"test_type1\" or \"test_type1, test_type2\" ") unless valid
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
11
21
|
# A valid date for the orders is a little different that usual .. so take note '%Y%m%d'
|
12
22
|
# has no slashes or dashes .. so a date is valid that looks like: '20111202'
|
13
23
|
class DateValidator < ActiveModel::Validator
|
data/lib/medivo/version.rb
CHANGED
@@ -12797,3 +12797,128 @@ Served asset /medivo/markerC.png - 304 Not Modified (0ms)
|
|
12797
12797
|
|
12798
12798
|
Started GET "/assets/medivo/arrow.png" for 127.0.0.1 at 2011-10-27 12:04:43 +0100
|
12799
12799
|
Served asset /medivo/arrow.png - 304 Not Modified (0ms)
|
12800
|
+
|
12801
|
+
|
12802
|
+
Started GET "/labs/search" for 127.0.0.1 at 2011-10-28 00:25:35 +0100
|
12803
|
+
Processing by LabsController#search as HTML
|
12804
|
+
Rendered labs/search.html.haml within layouts/application (28.2ms)
|
12805
|
+
Compiled application.css (0ms) (pid 14412)
|
12806
|
+
Compiled application.js (7ms) (pid 14412)
|
12807
|
+
Compiled jquery.js (1ms) (pid 14412)
|
12808
|
+
Compiled jquery_ujs.js (0ms) (pid 14412)
|
12809
|
+
Compiled medivo/lab_list/application.js (7ms) (pid 14412)
|
12810
|
+
Compiled medivo/handlebars.js (0ms) (pid 14412)
|
12811
|
+
Compiled medivo/lab_list/models.js (201ms) (pid 14412)
|
12812
|
+
Compiled medivo/lab_list/views.js (206ms) (pid 14412)
|
12813
|
+
Compiled medivo/lab_list/init.js (165ms) (pid 14412)
|
12814
|
+
Compiled medivo/lab_list/sample/show_labs.js (157ms) (pid 14412)
|
12815
|
+
Completed 200 OK in 1131ms (Views: 864.8ms)
|
12816
|
+
|
12817
|
+
|
12818
|
+
Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12819
|
+
Served asset /application.css - 304 Not Modified (0ms)
|
12820
|
+
|
12821
|
+
|
12822
|
+
Started GET "/assets/medivo/handlebars.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12823
|
+
Served asset /medivo/handlebars.js - 304 Not Modified (5ms)
|
12824
|
+
|
12825
|
+
|
12826
|
+
Started GET "/assets/medivo/lab_list/views.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12827
|
+
Served asset /medivo/lab_list/views.js - 304 Not Modified (21ms)
|
12828
|
+
|
12829
|
+
|
12830
|
+
Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12831
|
+
Served asset /jquery_ujs.js - 304 Not Modified (1ms)
|
12832
|
+
|
12833
|
+
|
12834
|
+
Started GET "/assets/medivo/lab_list/models.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12835
|
+
Served asset /medivo/lab_list/models.js - 304 Not Modified (2ms)
|
12836
|
+
|
12837
|
+
|
12838
|
+
Started GET "/assets/medivo/lab_list/init.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12839
|
+
Served asset /medivo/lab_list/init.js - 304 Not Modified (2ms)
|
12840
|
+
|
12841
|
+
|
12842
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12843
|
+
Served asset /jquery.js - 304 Not Modified (2ms)
|
12844
|
+
|
12845
|
+
|
12846
|
+
Started GET "/assets/medivo/lab_list/application.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12847
|
+
Served asset /medivo/lab_list/application.js - 304 Not Modified (4ms)
|
12848
|
+
|
12849
|
+
|
12850
|
+
Started GET "/assets/medivo/lab_list/sample/show_labs.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12851
|
+
Served asset /medivo/lab_list/sample/show_labs.js - 304 Not Modified (2ms)
|
12852
|
+
|
12853
|
+
|
12854
|
+
Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2011-10-28 00:25:36 +0100
|
12855
|
+
Served asset /application.js - 304 Not Modified (0ms)
|
12856
|
+
|
12857
|
+
|
12858
|
+
Started GET "/labs/search?zip_code=90210" for 127.0.0.1 at 2011-10-28 00:25:58 +0100
|
12859
|
+
Processing by LabsController#search as HTML
|
12860
|
+
Parameters: {"zip_code"=>"90210"}
|
12861
|
+
Rendered labs/search.html.haml within layouts/application (9.9ms)
|
12862
|
+
Completed 200 OK in 2443ms (Views: 30.5ms)
|
12863
|
+
|
12864
|
+
|
12865
|
+
Started GET "/assets/application.css?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12866
|
+
Served asset /application.css - 304 Not Modified (0ms)
|
12867
|
+
|
12868
|
+
|
12869
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12870
|
+
Served asset /jquery.js - 304 Not Modified (0ms)
|
12871
|
+
|
12872
|
+
|
12873
|
+
Started GET "/assets/jquery_ujs.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12874
|
+
Served asset /jquery_ujs.js - 304 Not Modified (0ms)
|
12875
|
+
|
12876
|
+
|
12877
|
+
Started GET "/assets/medivo/handlebars.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12878
|
+
Served asset /medivo/handlebars.js - 304 Not Modified (0ms)
|
12879
|
+
|
12880
|
+
|
12881
|
+
Started GET "/assets/medivo/lab_list/models.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12882
|
+
Served asset /medivo/lab_list/models.js - 304 Not Modified (0ms)
|
12883
|
+
|
12884
|
+
|
12885
|
+
Started GET "/assets/medivo/lab_list/views.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12886
|
+
Served asset /medivo/lab_list/views.js - 304 Not Modified (0ms)
|
12887
|
+
|
12888
|
+
|
12889
|
+
Started GET "/assets/medivo/lab_list/init.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12890
|
+
Served asset /medivo/lab_list/init.js - 304 Not Modified (0ms)
|
12891
|
+
|
12892
|
+
|
12893
|
+
Started GET "/assets/medivo/lab_list/application.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12894
|
+
Served asset /medivo/lab_list/application.js - 304 Not Modified (0ms)
|
12895
|
+
|
12896
|
+
|
12897
|
+
Started GET "/assets/medivo/lab_list/sample/show_labs.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12898
|
+
Served asset /medivo/lab_list/sample/show_labs.js - 304 Not Modified (0ms)
|
12899
|
+
|
12900
|
+
|
12901
|
+
Started GET "/assets/application.js?body=1" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12902
|
+
Served asset /application.js - 304 Not Modified (0ms)
|
12903
|
+
|
12904
|
+
|
12905
|
+
Started GET "/assets/medivo/markerC.png" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12906
|
+
Served asset /medivo/markerC.png - 304 Not Modified (5ms)
|
12907
|
+
|
12908
|
+
|
12909
|
+
Started GET "/assets/medivo/markerA.png" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12910
|
+
Served asset /medivo/markerA.png - 304 Not Modified (3ms)
|
12911
|
+
|
12912
|
+
|
12913
|
+
Started GET "/assets/medivo/markerB.png" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12914
|
+
Served asset /medivo/markerB.png - 304 Not Modified (2ms)
|
12915
|
+
|
12916
|
+
|
12917
|
+
Started GET "/assets/medivo/arrow.png" for 127.0.0.1 at 2011-10-28 00:26:01 +0100
|
12918
|
+
Served asset /medivo/arrow.png - 304 Not Modified (3ms)
|
12919
|
+
|
12920
|
+
|
12921
|
+
Started GET "/medivo/labs/lab_data?utf8=%E2%9C%93&zip_code=10005&commit=Search" for 127.0.0.1 at 2011-10-28 00:26:13 +0100
|
12922
|
+
Processing by Medivo::LabsController#lab_data as JS
|
12923
|
+
Parameters: {"utf8"=>"✓", "zip_code"=>"10005", "commit"=>"Search"}
|
12924
|
+
Completed 200 OK in 2453ms (Views: 20.0ms)
|
data/spec/dummy/log/test.log
CHANGED
@@ -1060,3 +1060,45 @@ Served asset /medivo/markerB.png - 200 OK (3ms)
|
|
1060
1060
|
|
1061
1061
|
Started GET "/assets/medivo/arrow.png" for 127.0.0.1 at 2011-10-27 12:24:04 +0100
|
1062
1062
|
Served asset /medivo/arrow.png - 200 OK (4ms)
|
1063
|
+
|
1064
|
+
|
1065
|
+
Started GET "/medivo/labs/lab_data?zip_code=90210" for 127.0.0.1 at 2011-10-28 15:11:07 +0100
|
1066
|
+
Processing by Medivo::LabsController#lab_data as HTML
|
1067
|
+
Parameters: {"zip_code"=>"90210"}
|
1068
|
+
Completed 200 OK in 680ms (Views: 1.1ms)
|
1069
|
+
|
1070
|
+
|
1071
|
+
Started GET "/labs/search?zip_code=90210" for 127.0.0.1 at 2011-10-28 15:11:10 +0100
|
1072
|
+
Processing by LabsController#search as HTML
|
1073
|
+
Parameters: {"zip_code"=>"90210"}
|
1074
|
+
Completed 200 OK in 523ms (Views: 112.8ms)
|
1075
|
+
|
1076
|
+
|
1077
|
+
Started GET "/assets/application.css" for 127.0.0.1 at 2011-10-28 15:11:10 +0100
|
1078
|
+
Compiled application.css (1ms) (pid 19378)
|
1079
|
+
Served asset /application.css - 200 OK (9ms)
|
1080
|
+
|
1081
|
+
|
1082
|
+
Started GET "/assets/application.js" for 127.0.0.1 at 2011-10-28 15:11:10 +0100
|
1083
|
+
Compiled application.js (6ms) (pid 19378)
|
1084
|
+
Compiled jquery.js (44ms) (pid 19378)
|
1085
|
+
Compiled jquery_ujs.js (0ms) (pid 19378)
|
1086
|
+
Compiled medivo/lab_list/application.js (6ms) (pid 19378)
|
1087
|
+
Compiled medivo/handlebars.js (1ms) (pid 19378)
|
1088
|
+
Compiled medivo/lab_list/models.js (198ms) (pid 19378)
|
1089
|
+
Compiled medivo/lab_list/views.js (225ms) (pid 19378)
|
1090
|
+
Compiled medivo/lab_list/init.js (168ms) (pid 19378)
|
1091
|
+
Compiled medivo/lab_list/sample/show_labs.js (159ms) (pid 19378)
|
1092
|
+
Served asset /application.js - 200 OK (863ms)
|
1093
|
+
|
1094
|
+
|
1095
|
+
Started GET "/assets/medivo/markerA.png" for 127.0.0.1 at 2011-10-28 15:11:11 +0100
|
1096
|
+
Served asset /medivo/markerA.png - 200 OK (5ms)
|
1097
|
+
|
1098
|
+
|
1099
|
+
Started GET "/assets/medivo/markerB.png" for 127.0.0.1 at 2011-10-28 15:11:11 +0100
|
1100
|
+
Served asset /medivo/markerB.png - 200 OK (3ms)
|
1101
|
+
|
1102
|
+
|
1103
|
+
Started GET "/assets/medivo/arrow.png" for 127.0.0.1 at 2011-10-28 15:11:11 +0100
|
1104
|
+
Served asset /medivo/arrow.png - 200 OK (4ms)
|
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
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
14412
|
@@ -0,0 +1,182 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<customer>
|
3
|
+
<id>170853</id>
|
4
|
+
<requisition-number>170853</requisition-number>
|
5
|
+
<account-number>05021370</account-number>
|
6
|
+
<confirmation-code>dhDEH525Fe</confirmation-code>
|
7
|
+
<first-name>daniel</first-name>
|
8
|
+
<last-name>sudol</last-name>
|
9
|
+
<gender>Male</gender>
|
10
|
+
<dob>19801201</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>dude@dude.com</email>
|
22
|
+
<draw-location>PSC</draw-location>
|
23
|
+
<psc>LABCORP, BEVERLY HILLS, 465 N ROXBURY DR STE 715</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>20110914001531</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">170853</customer-id>
|
47
|
+
<fasting nil="true"></fasting>
|
48
|
+
<hl7message-nte-id nil="true"></hl7message-nte-id>
|
49
|
+
<id type="integer">17939</id>
|
50
|
+
<lab-abnormal-flag>A</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>55071600</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">170853</customer-id>
|
73
|
+
<fasting nil="true"></fasting>
|
74
|
+
<hl7message-nte-id type="integer">1203</hl7message-nte-id>
|
75
|
+
<id type="integer">17940</id>
|
76
|
+
<lab-abnormal-flag>H</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>12.6</value>
|
92
|
+
<value-type>NM</value-type>
|
93
|
+
<notes>The patient's sample tests reactive with a high S/CO ratio: > or = 8.0. Samples with high S/CO ratios
|
94
|
+
have been shown to repeat as positive using a different methodology 95% of the time or greater. Therefore,
|
95
|
+
additional testing for verification of the result is not recommended. (CDC MMWR No. RR-3,2003).
|
96
|
+
</notes>
|
97
|
+
<lab-facility>01: LabCorp Burlington, 1447 York Court, Burlington NC, phone: 972-566-7500</lab-facility>
|
98
|
+
<lab-facility-director>MD Hancock William F</lab-facility-director>
|
99
|
+
</result>
|
100
|
+
<result>
|
101
|
+
<customer-id type="integer">170853</customer-id>
|
102
|
+
<fasting nil="true"></fasting>
|
103
|
+
<hl7message-nte-id nil="true"></hl7message-nte-id>
|
104
|
+
<id type="integer">17941</id>
|
105
|
+
<lab-abnormal-flag>H</lab-abnormal-flag>
|
106
|
+
<lab-facility-director-id type="integer">20</lab-facility-director-id>
|
107
|
+
<lab-facility-id type="integer">69</lab-facility-id>
|
108
|
+
<lab-id type="integer">129</lab-id>
|
109
|
+
<lab-reference-range><43</lab-reference-range>
|
110
|
+
<observation-date type="datetime">2011-09-06T23:09:00Z</observation-date>
|
111
|
+
<obx-sequence-number type="integer">1</obx-sequence-number>
|
112
|
+
<order-lab-code>144028</order-lab-code>
|
113
|
+
<order-lab-name>Hepatitis C Virus (HCV), Quantitative, Real-time PCR</order-lab-name>
|
114
|
+
<parent-lab-code nil="true"></parent-lab-code>
|
115
|
+
<result-lab-code>550069</result-lab-code>
|
116
|
+
<result-lab-name>HCV RNA, QUANTITATIVE REAL TIME PCR</result-lab-name>
|
117
|
+
<result-status>F</result-status>
|
118
|
+
<tnp-reason nil="true"></tnp-reason>
|
119
|
+
<units-of-measurement>IU/mL</units-of-measurement>
|
120
|
+
<value>128</value>
|
121
|
+
<value-type>NM</value-type>
|
122
|
+
<notes nil="true"></notes>
|
123
|
+
<lab-facility>01: LabCorp Burlington, 1447 York Court, Burlington NC, phone: 972-566-7500</lab-facility>
|
124
|
+
<lab-facility-director>MD Hancock William F</lab-facility-director>
|
125
|
+
</result>
|
126
|
+
<result>
|
127
|
+
<customer-id type="integer">170853</customer-id>
|
128
|
+
<fasting nil="true"></fasting>
|
129
|
+
<hl7message-nte-id nil="true"></hl7message-nte-id>
|
130
|
+
<id type="integer">17942</id>
|
131
|
+
<lab-abnormal-flag>H</lab-abnormal-flag>
|
132
|
+
<lab-facility-director-id type="integer">20</lab-facility-director-id>
|
133
|
+
<lab-facility-id type="integer">69</lab-facility-id>
|
134
|
+
<lab-id type="integer">129</lab-id>
|
135
|
+
<lab-reference-range><1.63</lab-reference-range>
|
136
|
+
<observation-date type="datetime">2011-09-06T23:09:00Z</observation-date>
|
137
|
+
<obx-sequence-number type="integer">2</obx-sequence-number>
|
138
|
+
<order-lab-code>144028</order-lab-code>
|
139
|
+
<order-lab-name>Hepatitis C Virus (HCV), Quantitative, Real-time PCR</order-lab-name>
|
140
|
+
<parent-lab-code nil="true"></parent-lab-code>
|
141
|
+
<result-lab-code>??????</result-lab-code>
|
142
|
+
<result-lab-name>HCV RNA, QUANTITATIVE REAL TIME PCR</result-lab-name>
|
143
|
+
<result-status>F</result-status>
|
144
|
+
<tnp-reason nil="true"></tnp-reason>
|
145
|
+
<units-of-measurement>Log IU/mL</units-of-measurement>
|
146
|
+
<value>2.11</value>
|
147
|
+
<value-type>NM</value-type>
|
148
|
+
<notes nil="true"></notes>
|
149
|
+
<lab-facility>01: LabCorp Burlington, 1447 York Court, Burlington NC, phone: 972-566-7500</lab-facility>
|
150
|
+
<lab-facility-director>MD Hancock William F</lab-facility-director>
|
151
|
+
</result>
|
152
|
+
<result>
|
153
|
+
<customer-id type="integer">170853</customer-id>
|
154
|
+
<fasting nil="true"></fasting>
|
155
|
+
<hl7message-nte-id type="integer">1204</hl7message-nte-id>
|
156
|
+
<id type="integer">17943</id>
|
157
|
+
<lab-abnormal-flag>N</lab-abnormal-flag>
|
158
|
+
<lab-facility-director-id type="integer">20</lab-facility-director-id>
|
159
|
+
<lab-facility-id type="integer">69</lab-facility-id>
|
160
|
+
<lab-id type="integer">129</lab-id>
|
161
|
+
<lab-reference-range nil="true"></lab-reference-range>
|
162
|
+
<observation-date type="datetime">2011-09-06T23:09:00Z</observation-date>
|
163
|
+
<obx-sequence-number type="integer">3</obx-sequence-number>
|
164
|
+
<order-lab-code>144028</order-lab-code>
|
165
|
+
<order-lab-name>Hepatitis C Virus (HCV), Quantitative, Real-time PCR</order-lab-name>
|
166
|
+
<parent-lab-code nil="true"></parent-lab-code>
|
167
|
+
<result-lab-code>10001538</result-lab-code>
|
168
|
+
<result-lab-name nil="true"></result-lab-name>
|
169
|
+
<result-status>F</result-status>
|
170
|
+
<tnp-reason nil="true"></tnp-reason>
|
171
|
+
<units-of-measurement nil="true"></units-of-measurement>
|
172
|
+
<value nil="true"></value>
|
173
|
+
<value-type>TX</value-type>
|
174
|
+
<notes>This test was performed using the COBAS(R)AmpliPrep/ COBAS(R)TaqMan(R)HCV Test Kit (Roche Molecular
|
175
|
+
Systems,Inc.).
|
176
|
+
</notes>
|
177
|
+
<lab-facility>01: LabCorp Burlington, 1447 York Court, Burlington NC, phone: 972-566-7500</lab-facility>
|
178
|
+
<lab-facility-director>MD Hancock William F</lab-facility-director>
|
179
|
+
</result>
|
180
|
+
</result>
|
181
|
+
</reconciled-results>
|
182
|
+
</customer>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<customer>
|
3
|
+
<primary-insurance>
|
4
|
+
<relationship type="integer">1
|
5
|
+
</relationship>
|
6
|
+
<company-name>Dude Insurance</company-name>
|
7
|
+
<policy-number>1234</policy-number>
|
8
|
+
<group-number>555</group-number>
|
9
|
+
</primary-insurance>
|
10
|
+
<diagnosis-code type="array">
|
11
|
+
<diagnosis-code>
|
12
|
+
<icd type="integer">9
|
13
|
+
</icd>
|
14
|
+
<code>250.00</code>
|
15
|
+
</diagnosis-code>
|
16
|
+
</diagnosis-code>
|
17
|
+
<first-name>dan
|
18
|
+
</first-name>
|
19
|
+
<last-name>dude</last-name>
|
20
|
+
<email>dude@dude.com</email>
|
21
|
+
<address>my house</address>
|
22
|
+
<city>dudeville</city>
|
23
|
+
<state>CA</state>
|
24
|
+
<zip>90210</zip>
|
25
|
+
<dob>19801201</dob>
|
26
|
+
<home-phone>4155551212</home-phone>
|
27
|
+
<psc type="integer">1752</psc>
|
28
|
+
<test-types>001453,120295</test-types>
|
29
|
+
<account-number>05021390
|
30
|
+
</account-number>
|
31
|
+
<gender>Male</gender>
|
32
|
+
<draw-location>PSC</draw-location>
|
33
|
+
<take-tests-same-day
|
34
|
+
type="boolean">true
|
35
|
+
</take-tests-same-day>
|
36
|
+
</customer>
|
data/spec/models/orders_spec.rb
CHANGED
@@ -23,10 +23,10 @@ describe Medivo::Order do
|
|
23
23
|
order.errors.messages[:dob].should include "invalid dob. needs to be in '%Y%m%d' format"
|
24
24
|
end
|
25
25
|
|
26
|
-
it "test_types should be an
|
26
|
+
it "test_types should be an string of test id's delimited by comma" do
|
27
27
|
order = Medivo::Order.new({:test_types=>[1, 2]})
|
28
28
|
order.valid?
|
29
|
-
order.errors.messages[:test_types].should
|
29
|
+
order.errors.messages[:test_types].should be_present
|
30
30
|
end
|
31
31
|
|
32
32
|
it "sets default fields" do
|
@@ -45,13 +45,17 @@ describe Medivo::Order do
|
|
45
45
|
to_return(:body => '<errors><error>Test type not found: 2020</error></errors>',
|
46
46
|
:status => 404)
|
47
47
|
order = Medivo::Order.new(
|
48
|
+
:first_name=>'dan',
|
49
|
+
:last_name=>'dude',
|
48
50
|
:email => "dude@dude.com",
|
49
51
|
:address=> "my house",
|
52
|
+
:city=> "dudeville",
|
53
|
+
:state=> "CA",
|
50
54
|
:zip=> "90210",
|
51
55
|
:dob=> "19801201",
|
52
56
|
:home_phone=> "4155551212",
|
53
57
|
:psc=> 11,
|
54
|
-
:test_types=>
|
58
|
+
:test_types=> "2020",
|
55
59
|
:account_number => "423",
|
56
60
|
:gender => "Male",
|
57
61
|
:dob => "19801201")
|
@@ -72,13 +76,17 @@ describe Medivo::Order do
|
|
72
76
|
|
73
77
|
it "creates valid order" do
|
74
78
|
order = Medivo::Order.new(
|
79
|
+
:first_name=>'dan',
|
80
|
+
:last_name=>'dude',
|
75
81
|
:email => "dude@dude.com",
|
76
82
|
:address=> "my house",
|
83
|
+
:city=> "dudeville",
|
84
|
+
:state=> "CA",
|
77
85
|
:zip=> "90210",
|
78
86
|
:dob=> "19801201",
|
79
87
|
:home_phone=> "4155551212",
|
80
|
-
:psc=> 11,
|
81
|
-
:test_types=>
|
88
|
+
:psc=> 11, # lab_id
|
89
|
+
:test_types=> "2020", # test_id's
|
82
90
|
:account_number => "423",
|
83
91
|
:gender => "Male",
|
84
92
|
:dob => "19801201")
|
@@ -86,8 +94,7 @@ describe Medivo::Order do
|
|
86
94
|
order.valid?.should == true
|
87
95
|
|
88
96
|
stub_request(:post, "http://test:test@test.medivo.com/customers.xml").
|
89
|
-
to_return(:body => order.to_xml,
|
90
|
-
:status => 200)
|
97
|
+
to_return(:body => order.to_xml, :status => 200)
|
91
98
|
|
92
99
|
order.save.should == true
|
93
100
|
end
|
@@ -108,6 +115,55 @@ describe Medivo::Order do
|
|
108
115
|
end
|
109
116
|
end
|
110
117
|
|
118
|
+
describe "#results" do
|
119
|
+
before(:all) do
|
120
|
+
@reqiuisition_number = 170853
|
121
|
+
order = Medivo::Order.new(:requisition_number=>@reqiuisition_number)
|
122
|
+
stub_request(:get, "test:test@test.medivo.com/customers/#{order.requisition_id}.xml?include=reconciled_results").
|
123
|
+
to_return(:body => File.read(("#{ENGINE_PATH}/spec/fixtures/lc_positive_results.xml")))
|
124
|
+
|
125
|
+
end
|
126
|
+
|
127
|
+
describe "#find_with_results" do
|
128
|
+
before(:all) { @order = Medivo::Order.find_with_results(@reqiuisition_number) }
|
129
|
+
|
130
|
+
it "gets order with results" do
|
131
|
+
@order.should_not be_nil
|
132
|
+
end
|
133
|
+
|
134
|
+
it "has test names" do
|
135
|
+
@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]
|
136
|
+
end
|
137
|
+
|
138
|
+
it "has reconcilled results" do
|
139
|
+
@order.results_summary.should_not be_nil
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
end
|
145
|
+
|
146
|
+
describe Medivo::PrimaryInsurance do
|
147
|
+
it "makes valid model" do
|
148
|
+
insurance_info = Medivo::PrimaryInsurance.new(
|
149
|
+
:relationship=>1,
|
150
|
+
:company_name=>"Dude Insurance",
|
151
|
+
:policy_number=>"1234",
|
152
|
+
:group_number =>"555"
|
153
|
+
)
|
154
|
+
insurance_info.valid?.should == true
|
155
|
+
end
|
156
|
+
|
157
|
+
it "shows error messages for invalid model" do
|
158
|
+
insurance_info = Medivo::PrimaryInsurance.new(
|
159
|
+
:company_name=>"Dude Insurance",
|
160
|
+
:policy_number=>"1234",
|
161
|
+
:group_number =>"555"
|
162
|
+
)
|
163
|
+
insurance_info.valid?.should == false
|
164
|
+
insurance_info.errors.messages.keys.should == [:relationship]
|
165
|
+
insurance_info.errors.messages[:relationship].should include "can't be blank"
|
166
|
+
end
|
111
167
|
end
|
112
168
|
|
113
169
|
describe Medivo::InsuranceOrder do
|
@@ -117,10 +173,53 @@ describe Medivo::InsuranceOrder do
|
|
117
173
|
order.errors.messages[:primary_insurance].should include "primary_insurance field must be present"
|
118
174
|
end
|
119
175
|
|
120
|
-
it "
|
176
|
+
it "shows missing fields from primary insurance" do
|
121
177
|
order = Medivo::InsuranceOrder.new(:primary_insurance => Medivo::PrimaryInsurance.new)
|
122
178
|
order.valid?
|
123
|
-
order.errors.messages[:"primary_insurance.company_name"].should include "
|
124
|
-
order.errors.messages[:"primary_insurance.relationship"].should include "
|
179
|
+
order.errors.messages[:"primary_insurance.company_name"].should include "can't be blank"
|
180
|
+
order.errors.messages[:"primary_insurance.relationship"].should include "can't be blank"
|
125
181
|
end
|
126
182
|
end
|
183
|
+
|
184
|
+
describe "creating orders" do
|
185
|
+
it "UHC Commercial insurance order" do
|
186
|
+
insurance_info = Medivo::PrimaryInsurance.new(
|
187
|
+
:relationship=>1,
|
188
|
+
:company_name=>"Dude Insurance",
|
189
|
+
:policy_number=>"1234",
|
190
|
+
:group_number =>"555"
|
191
|
+
)
|
192
|
+
|
193
|
+
order = Medivo::InsuranceOrder.new(
|
194
|
+
:primary_insurance => insurance_info,
|
195
|
+
:diagnosis_code => [{:icd=>9, :code=>'250.00'}],
|
196
|
+
:first_name=>'dan',
|
197
|
+
:last_name=>'dude',
|
198
|
+
:email => "dude@dude.com",
|
199
|
+
:address=> "my house",
|
200
|
+
:city=> "dudeville",
|
201
|
+
:state=> "CA",
|
202
|
+
:zip=> "90210",
|
203
|
+
:dob=> "19801201",
|
204
|
+
:home_phone=> "4155551212",
|
205
|
+
:psc=> 1752, # lab_id
|
206
|
+
:test_types=>"001453,120295", # test_id's
|
207
|
+
:account_number => "05021390",
|
208
|
+
:gender => "Male",
|
209
|
+
:dob => "19801201"
|
210
|
+
)
|
211
|
+
|
212
|
+
|
213
|
+
mock.proxy(order).to_xml({}) do |value|
|
214
|
+
value.gsub(/\s/, '').should == File.read("#{ENGINE_PATH}/spec/fixtures/valid_uhc_order.xml").gsub(/\s/, '')
|
215
|
+
value
|
216
|
+
end
|
217
|
+
|
218
|
+
stub_request(:post, "http://test:test@test.medivo.com/customers.xml").to_return(:status=> 200)
|
219
|
+
|
220
|
+
order.save
|
221
|
+
order.errors.messages.should be_empty
|
222
|
+
end
|
223
|
+
end
|
224
|
+
|
225
|
+
|
data/spec/support/blueprints.rb
CHANGED
@@ -1,55 +1,55 @@
|
|
1
|
-
#BeverlyHillsZipCode = Medivo::ZipCode.new(
|
2
|
-
# {
|
3
|
-
# :city => "Beverly Hills",
|
4
|
-
# :state_short => "CA",
|
5
|
-
# :zip_code => "90210",
|
6
|
-
# :lat => 34.0901,
|
7
|
-
# :lng => -118.4065
|
8
|
-
# }
|
9
|
-
#)
|
10
1
|
|
11
2
|
BeverlyHillsLab1 = Medivo::Lab.new(
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
"zip"=>"90210"
|
30
|
-
}
|
3
|
+
"id"=>1752,
|
4
|
+
"lab_id"=> 129,
|
5
|
+
"name"=>"LABCORP, BEVERLY HILLS, 465 N ROXBURY DR STE 715",
|
6
|
+
"active"=>true,
|
7
|
+
"address"=>"465 N ROXBURY DR STE 715",
|
8
|
+
"city"=>"BEVERLY HILLS",
|
9
|
+
"code"=>"20060",
|
10
|
+
"distance"=>"1.4191127132891",
|
11
|
+
"hours"=>"MONDAY-FRIDAY LUNCH SATURDAY, 8:00AM-5:00PM NOON-1:00PM 9:00AM-1:00PM",
|
12
|
+
"lat"=>"34.06831",
|
13
|
+
"lng"=>"-118.40716",
|
14
|
+
"long"=>"-118.40716",
|
15
|
+
"state"=>"CA",
|
16
|
+
"telephone"=>"310-275-4953",
|
17
|
+
"type_of_service"=>"Routine Clinical Laboratory Collections, Pediatric",
|
18
|
+
"updated_at"=>"2011-01-25T09:51:11Z",
|
19
|
+
"zip"=>"90210"
|
31
20
|
)
|
32
21
|
|
33
22
|
BeverlyHillsLab2 = Medivo::Lab.new(
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
"zip"=>"90048"
|
53
|
-
}
|
23
|
+
"id"=>1753,
|
24
|
+
"lab_id"=>129,
|
25
|
+
"name"=>"LABCORP, LOS ANGELES, 8737 BEVERLY BLVD STE 401",
|
26
|
+
"active"=>true,
|
27
|
+
"address"=>"8737 BEVERLY BLVD STE 401",
|
28
|
+
"city"=>"LOS ANGELES",
|
29
|
+
"code"=>"22974",
|
30
|
+
"distance"=>"1.6266877775802",
|
31
|
+
"fax"=>"310-652-0676",
|
32
|
+
"hours"=>"MONDAY-FRIDAY LUNCH, 8:00AM-5:00PM NOON-1:00PM",
|
33
|
+
"lat"=>"34.076852",
|
34
|
+
"lng"=>"-118.381669",
|
35
|
+
"long"=>"-118.381669",
|
36
|
+
"state"=>"CA",
|
37
|
+
"telephone"=>"310-652-0542",
|
38
|
+
"type_of_service"=>"Routine Clinical Laboratory Collections, Pediatric",
|
39
|
+
"updated_at"=>"2011-01-25T09:51:17Z",
|
40
|
+
"zip"=>"90048"
|
54
41
|
)
|
55
42
|
|
43
|
+
|
44
|
+
Order1 = Medivo::Order.new(
|
45
|
+
:email => "dude@dude.com",
|
46
|
+
:address=> "my house",
|
47
|
+
:zip=> "10005",
|
48
|
+
:dob=> "19801201",
|
49
|
+
:home_phone=> "4155551212",
|
50
|
+
:psc=> 11,
|
51
|
+
:test_types=> [144028],
|
52
|
+
:account_number => "423",
|
53
|
+
:gender => "Male",
|
54
|
+
:dob => "19801201"
|
55
|
+
)
|
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.0.
|
4
|
+
version: 0.0.9
|
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-10-
|
12
|
+
date: 2011-10-28 00:00:00.000000000 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|
17
|
-
requirement: &
|
17
|
+
requirement: &2173497960 !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: *2173497960
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: jquery-rails
|
28
|
-
requirement: &
|
28
|
+
requirement: &2173496800 !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: *2173496800
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: coffee-script
|
39
|
-
requirement: &
|
39
|
+
requirement: &2173495660 !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: *2173495660
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: haml-rails
|
50
|
-
requirement: &
|
50
|
+
requirement: &2173494760 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :runtime
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *2173494760
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: mysql2
|
61
|
-
requirement: &
|
61
|
+
requirement: &2173491620 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ~>
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: 0.3.7
|
67
67
|
type: :runtime
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *2173491620
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: geocoder
|
72
|
-
requirement: &
|
72
|
+
requirement: &2173490220 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *2173490220
|
81
81
|
description: Use the medivo platform to make a lab order or find a lab location
|
82
82
|
email:
|
83
83
|
- dsudol@medivo.com
|
@@ -99,6 +99,10 @@ files:
|
|
99
99
|
- app/assets/images/medivo/markerJ.png
|
100
100
|
- app/assets/images/medivo/markerK.png
|
101
101
|
- app/assets/javascripts/medivo/handlebars.js
|
102
|
+
- app/assets/javascripts/medivo/lab_appointments/application.js
|
103
|
+
- app/assets/javascripts/medivo/lab_appointments/models.coffee
|
104
|
+
- app/assets/javascripts/medivo/lab_appointments/sample/show_appointments.coffee
|
105
|
+
- app/assets/javascripts/medivo/lab_appointments/views.coffee
|
102
106
|
- app/assets/javascripts/medivo/lab_list/application.js
|
103
107
|
- app/assets/javascripts/medivo/lab_list/init.coffee
|
104
108
|
- app/assets/javascripts/medivo/lab_list/models.coffee
|
@@ -197,6 +201,8 @@ files:
|
|
197
201
|
- spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
198
202
|
- spec/dummy/tmp/cache/assets/E59/D50/sprockets%2Fbe1cc4d9b0efb617e58baa16dd1dee58
|
199
203
|
- spec/dummy/tmp/pids/server.pid
|
204
|
+
- spec/fixtures/lc_positive_results.xml
|
205
|
+
- spec/fixtures/valid_uhc_order.xml
|
200
206
|
- spec/models/labs_spec.rb
|
201
207
|
- spec/models/orders_spec.rb
|
202
208
|
- spec/requests/labs_spec.rb
|
@@ -217,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
217
223
|
version: '0'
|
218
224
|
segments:
|
219
225
|
- 0
|
220
|
-
hash:
|
226
|
+
hash: 2372410355728827398
|
221
227
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
228
|
none: false
|
223
229
|
requirements:
|
@@ -226,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
232
|
version: '0'
|
227
233
|
segments:
|
228
234
|
- 0
|
229
|
-
hash:
|
235
|
+
hash: 2372410355728827398
|
230
236
|
requirements: []
|
231
237
|
rubyforge_project:
|
232
238
|
rubygems_version: 1.6.2
|
@@ -307,6 +313,8 @@ test_files:
|
|
307
313
|
- spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
|
308
314
|
- spec/dummy/tmp/cache/assets/E59/D50/sprockets%2Fbe1cc4d9b0efb617e58baa16dd1dee58
|
309
315
|
- spec/dummy/tmp/pids/server.pid
|
316
|
+
- spec/fixtures/lc_positive_results.xml
|
317
|
+
- spec/fixtures/valid_uhc_order.xml
|
310
318
|
- spec/models/labs_spec.rb
|
311
319
|
- spec/models/orders_spec.rb
|
312
320
|
- spec/requests/labs_spec.rb
|