ruby_astm 1.4.1 → 1.4.3

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.
File without changes
@@ -18,15 +18,13 @@ class Header
18
18
  self.protocol = "ASTM"
19
19
  end
20
20
 
21
- def initialize(args)
21
+ def initialize(args={})
22
22
  self.patients = []
23
23
  self.queries = []
24
24
  self.response_sent = false
25
25
  if line = args[:line]
26
26
  set_machine_name(args)
27
27
  set_protocol(args)
28
- else
29
- super
30
28
  end
31
29
  end
32
30
 
@@ -98,7 +96,7 @@ class Header
98
96
  responses
99
97
  end
100
98
 
101
- def to_json
99
+ def to_json(args={})
102
100
  hash = {}
103
101
  self.instance_variables.each do |x|
104
102
  hash[x] = self.instance_variable_get x
@@ -9,33 +9,35 @@ module LabInterface
9
9
  CR = "\x13"
10
10
  ETX = "\x03"
11
11
  EOT = "\x04"
12
-
13
-
14
- mattr_accessor :ethernet_connections
15
- mattr_accessor :serial_connections
16
-
17
- mattr_accessor :ethernet_server
18
- mattr_accessor :server_ip
19
- mattr_accessor :server_port
20
- mattr_accessor :serial_port
21
- mattr_accessor :serial_baud
22
- mattr_accessor :serial_parity
23
- mattr_accessor :usb_port
24
- mattr_accessor :usb_baud
25
- mattr_accessor :usb_parity
26
- mattr_accessor :mid_frame_end_detected
12
+
13
+
14
+ attr_accessor :ethernet_connections
15
+ attr_accessor :serial_connections
16
+
17
+ attr_accessor :ethernet_server
18
+ attr_accessor :server_ip
19
+ attr_accessor :server_port
20
+ attr_accessor :serial_port
21
+ attr_accessor :serial_baud
22
+ attr_accessor :serial_parity
23
+ attr_accessor :usb_port
24
+ attr_accessor :usb_baud
25
+ attr_accessor :usb_parity
26
+ attr_accessor :mid_frame_end_detected
27
27
 
28
28
  ## gather bytes to store for us to test.
29
- mattr_accessor :test_data_bytes
29
+ attr_accessor :test_data_bytes
30
30
 
31
+ ## just an array of byte arrays, cleared on calling process text
32
+ attr_accessor :data_bytes
31
33
 
32
34
 
33
- mattr_accessor :headers
34
- mattr_accessor :mapping
35
- mattr_accessor :respond_to_queries
35
+ attr_accessor :headers
36
+ attr_accessor :mapping
37
+ attr_accessor :respond_to_queries
36
38
 
37
39
  ## buffer of incoming data.
38
- mattr_accessor :data_buffer
40
+ attr_accessor :data_buffer
39
41
 
40
42
 
41
43
  ## returns the root directory of the gem.
@@ -166,6 +168,83 @@ module LabInterface
166
168
 
167
169
  concat
168
170
 
171
+
172
+
173
+ end
174
+
175
+ def write_bytes_to_file(bytes)
176
+
177
+ end
178
+
179
+ ## @param[Array] :
180
+ ## [[bytes],[bytes]....]
181
+ def process_electrolytes(data_bytes)
182
+ #puts "came to process electrolytes_plain_text"
183
+ byte_arr = data_bytes.flatten
184
+ #puts "the end part of the arr is"
185
+ return if byte_arr[-4..-1] != SIEMENS_ELECTROLYTE_END
186
+ self.data_bytes = []
187
+ concat = ""
188
+ byte_arr.each do |byte|
189
+ x = [byte].pack('c*').force_encoding('UTF-8')
190
+ if x == "\r"
191
+ concat+="\n"
192
+ elsif x == "\n"
193
+ #puts "new line found --- "
194
+ concat+=x
195
+ #puts "last thing in concat."
196
+ #puts concat[-1].to_s
197
+ else
198
+ concat+=x
199
+ end
200
+ end
201
+ ## nwo write concat to file
202
+ ## File.open("electrolytes_plain_text.txt", 'a+') { |file| file.write(concat) }
203
+ ## Header
204
+ ## Patient
205
+ ## Order
206
+ ## Result
207
+ ## Terminator
208
+
209
+ ## GET PO2
210
+ concat.scan(/pCO2\s+(?<pco>(\d+)(\.\d)*)(\^|v)?\s+mmHg/) do |k|
211
+ n = Regexp.last_match
212
+ puts n[:pco].to_s
213
+ end
214
+
215
+ ## GET PCO2
216
+ concat.scan(/pO2\s+(?<po>(\d+)(\.\d)*)(\^|v)?\s+mmHg/) do |k|
217
+ n = Regexp.last_match
218
+ puts n[:po].to_s
219
+ end
220
+
221
+ ## GET PH
222
+
223
+ ## GET NA+
224
+
225
+ ## GET K+
226
+
227
+ ## GET CL-
228
+
229
+ ## GET PATIENT_ID
230
+
231
+ ## GET DATE AND TIME
232
+
233
+ start_measure = false
234
+
235
+ concat.split(/\n/).each do |line|
236
+ if line =~ /348\-D718/
237
+ header = Header.new({:line => line})
238
+ self.headers ||= []
239
+ self.headers << header
240
+ elsif line =~ /\-{32}/
241
+ elsif line =~ /Patient\s+ID/
242
+ elsif line =~ /Measured/
243
+ elsif line =~ /outside ref/
244
+ else
245
+ end
246
+ end
247
+
169
248
  end
170
249
 
171
250
  def receive_data(data)
@@ -182,13 +261,18 @@ module LabInterface
182
261
 
183
262
 
184
263
  byte_arr = data.bytes.to_a
264
+
185
265
  self.test_data_bytes ||= []
266
+
267
+ self.data_bytes ||= []
268
+
186
269
  self.test_data_bytes.push(byte_arr)
270
+
271
+ self.data_bytes.push(byte_arr)
272
+
187
273
 
188
274
  concat = pre_process_bytes(byte_arr,concat)
189
-
190
-
191
-
275
+
192
276
  puts "concat is:"
193
277
 
194
278
  puts concat.to_s
@@ -197,8 +281,12 @@ module LabInterface
197
281
 
198
282
  ## if the last byte is EOT, then call process text.
199
283
  ## inside that split by line and process one at a time.
200
- ##process_text(concat)
201
-
284
+ ##process_text(concat)
285
+ #puts "data bytes -1: #{self.data_bytes[-1]}"
286
+ #puts "data bytes 0: #{self.data_bytes[0]}"
287
+ #if self.data_bytes[0] == ELECTROLYTE_START
288
+ #self.process_electrolytes(self.data_bytes)
289
+ #end
202
290
 
203
291
  if data.bytes.to_a[-1] == 4
204
292
  puts "GOT EOT --- PROCESSING BUFFER, AND CLEARING."
File without changes
@@ -73,7 +73,7 @@ class Order
73
73
  self.action_code = args[:args]
74
74
  end
75
75
 
76
- def initialize(args)
76
+ def initialize(args={})
77
77
  set_id(args)
78
78
  set_priority(args)
79
79
  set_sequence_number(args)
@@ -17,7 +17,7 @@ class Patient
17
17
  self.patient_id = args[:patient_id]
18
18
  end
19
19
 
20
- def initialize(args)
20
+ def initialize(args={})
21
21
  set_sequence_number(args)
22
22
  set_patient_id(args)
23
23
  self.orders = []
File without changes
@@ -106,7 +106,7 @@ class Result
106
106
 
107
107
 
108
108
  ## here will call mappings and check the result correlation
109
- def initialize(args)
109
+ def initialize(args={})
110
110
  set_name(args)
111
111
  set_flags(args)
112
112
  set_value(args)
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby_astm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bhargav Raut
@@ -40,6 +40,20 @@ dependencies:
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 5.2.3
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 5.2.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: json
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
@@ -53,7 +67,7 @@ dependencies:
53
67
  - !ruby/object:Gem::Version
54
68
  version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
- name: json
70
+ name: redis
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -67,7 +81,7 @@ dependencies:
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
- name: redis
84
+ name: typhoeus
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - ">="
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - '='
109
123
  - !ruby/object:Gem::Version
110
124
  version: 3.5.2
125
+ - !ruby/object:Gem::Dependency
126
+ name: rest-firebase
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  description: This gem provides a server that can handle communication from medical
112
140
  instruments that send/receive information on the ASTM protocol.
113
141
  email: bhargav.r.raut@gmail.com
@@ -118,13 +146,16 @@ files:
118
146
  - lib/mappings.json
119
147
  - lib/publisher/adapter.rb
120
148
  - lib/publisher/google_lab_interface.rb
149
+ - lib/publisher/pf_lab_interface.rb
121
150
  - lib/publisher/poller.rb
151
+ - lib/publisher/real_time_db.rb
122
152
  - lib/ruby_astm.rb
123
153
  - lib/ruby_astm/HL7/hl7_header.rb
124
154
  - lib/ruby_astm/HL7/hl7_observation.rb
125
155
  - lib/ruby_astm/HL7/hl7_order.rb
126
156
  - lib/ruby_astm/HL7/hl7_patient.rb
127
157
  - lib/ruby_astm/astm_server.rb
158
+ - lib/ruby_astm/custom/siemens_abg_electrolyte_server.rb
128
159
  - lib/ruby_astm/frame.rb
129
160
  - lib/ruby_astm/header.rb
130
161
  - lib/ruby_astm/lab_interface.rb
@@ -154,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
185
  version: '0'
155
186
  requirements: []
156
187
  rubyforge_project:
157
- rubygems_version: 2.7.8
188
+ rubygems_version: 2.6.14.4
158
189
  signing_key:
159
190
  specification_version: 4
160
191
  summary: A Ruby gem to interface with Medical instruments that work on the ASTM protocol