Module: UsbModule

Defined in:
lib/ruby_astm/usb_module.rb

Instance Method Summary collapse

Instance Method Details

#begin_patient_resultsObject



7
8
9
# File 'lib/ruby_astm/usb_module.rb', line 7

def begin_patient_results
	">00A00013"
end

#interpret?Boolean

Returns:

  • (Boolean)


27
28
29
30
31
# File 'lib/ruby_astm/usb_module.rb', line 27

def interpret?
	## if the third last is a carriage return, then interpret.l

	self.usb_response_bytes[-3] == 13
end

#parse_usb_response(string_data) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/ruby_astm/usb_module.rb', line 33

def parse_usb_response(string_data)
	string_data.bytes.to_a.each do |byte|
		self.usb_response_bytes.push(byte)
	end
	#puts "self usb response bytes:"
	#puts self.usb_response_bytes.to_s
	if interpret?
		#puts "interpret"
		if kk = self.usb_response_bytes[13..-4]
			kk.each_slice(32) do |patient_record|
				bar_code = nil
				bar_code = patient_record[11..23].pack('c*').gsub(/\./,'')
				#puts "bar code: #{bar_code}"
				unless bar_code.strip.blank?
					esr = patient_record[26]
					patient = Patient.new(:orders => [Order.new(:results => [Result.new(:value => esr, :name => "ESR", :report_name => "ESR")])])
					patient = Patient.new({})
					patient.patient_id = bar_code
					patient.orders = []
					order = Order.new({})
					result = Result.new({})
					result.value = esr.to_s
					result.name = "ESR"
					result.report_name = "ESR"
					order.id = bar_code
					order.results = []
					order.results << result
					patient.orders << order
					#puts patient.orders.size
					#puts patient.orders.first.results.size
					#puts patient.orders.first.results.first.to_s
					#puts "patient to json is:"
					puts patient.to_json
					$redis.lpush("patients",patient.to_json)
				end 
			end
		end
		self.usb_response_bytes = []	
	else
		#puts "dont interpret"		
	end

end

#request_resultsObject

requests the last 5 tests performed. last two digits before the carriage return are 00 if digits are 01 : will take the 5 penultimate tests if digits are 13 : will take the first 5 tests from memory.



23
24
25
# File 'lib/ruby_astm/usb_module.rb', line 23

def request_results
	">0002009300\r00"
end

#request_statusObject



15
16
17
# File 'lib/ruby_astm/usb_module.rb', line 15

def request_status
	">00000082\r00"
end

#request_versionObject



11
12
13
# File 'lib/ruby_astm/usb_module.rb', line 11

def request_version
	">00000080\r00"
end