ruby-hl7-extensions 0.0.61 → 0.0.62

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6868604371538033e5c53e7f454f5fc0f65bae0c
4
- data.tar.gz: 3405385d0116bdd5fbd233c6bc75bf5b2b9a9dc6
3
+ metadata.gz: d77e1632b44216a110e2b93cd13fad7b38829c74
4
+ data.tar.gz: 2bea026073e31a0f858eb35f27b7d902b9aaafed
5
5
  SHA512:
6
- metadata.gz: 21003e41e5fd9dcf12c45fdcabeac27f0fde210dd359390ea35570eff08a0469de64d3dbd9a645fcfb0ae43337534f9d01ef679ee4fba515f292e22a7d729a91
7
- data.tar.gz: 4dcc2c371c49a37ace53587bd3cc0942b78eab10dfe7e7eca2831c32c6e188a21dac222365bf210546df8020c63149655c2e8df8e94bce584bb028403831c10b
6
+ metadata.gz: 8059fd05b81b7978eb2f9974fb8b7403e3186cb74460acf2cbcbb382dd496bbff21141ea34c77801bd9144a644b944a8ec8ad0c828556d2fa46c6f2043b6db6e
7
+ data.tar.gz: 7bb8dd67488ab8211a0dafd0678cb57d9b105cc94a0a576522bebde5a9466fbe58d1bf39f5cdf2c658e557075ec8d9ea654158e1ba2f7f649ec49df6def12fe0
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.61
1
+ 0.0.62
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 61
4
+ :patch: 62
@@ -48,55 +48,23 @@ module Extensions
48
48
 
49
49
  providers
50
50
  end
51
+
52
+ def evn
53
+ @evn ||= segments_for(:EVN).first
54
+ end
51
55
 
52
56
  def msh
53
57
  @msh ||= segments_for(:MSH).first
54
58
  end
55
59
 
56
- def message_type
57
- msh.value_for_field("8.1")
58
- end
59
-
60
- def event
61
- msh.value_for_field("8.2")
62
- end
63
-
64
- def sending_application
65
- msh.value_for_field("3.1")
66
- end
67
-
68
60
  def pid
69
61
  @pid ||= segments_for(:PID).first
70
62
  end
71
63
 
72
- def patient_full_name
73
- last_name = pid.value_for_field("5.1")
74
- first_name = pid.value_for_field("5.2")
75
- middle_initial_or_name = pid.value_for_field("5.3")
76
-
77
- "#{last_name}, #{first_name}#{middle_initial_or_name.blank? ? "" : " #{middle_initial_or_name}"}"
78
- end
79
-
80
- def patient_dob
81
- Date.parse(pid.patient_dob).strftime("%B %d, %Y") if pid.patient_dob
82
- end
83
-
84
- def patient_mrn
85
- pid.value_for_field("3.1")
86
- end
87
-
88
- def patient_gender
89
- pid.value_for_field("8")
90
- end
91
-
92
64
  def pv1
93
65
  @pv1 ||= segments_for(:PV1).first
94
66
  end
95
67
 
96
- def account_number
97
- pv1.value_for_field("19.1")
98
- end
99
-
100
68
  def obr_list
101
69
  # segments_for(:OBR).to_enum(:each)
102
70
  a = hash["message"]["content"]["OBR"]["array"].collect {|obr| ::HL7::Message::Segment.from_hash("OBR", obr)}
@@ -109,6 +77,26 @@ module Extensions
109
77
  a.to_enum(:each)
110
78
  end
111
79
 
80
+ def message_type
81
+ msh.value_for_field("8.1")
82
+ end
83
+
84
+ def event
85
+ msh.value_for_field("8.2")
86
+ end
87
+
88
+ def sending_application
89
+ msh.value_for_field("3.1")
90
+ end
91
+
92
+ def patient_mrn
93
+ pid.value_for_field("3.1")
94
+ end
95
+
96
+ def account_number
97
+ pv1.value_for_field("19.1")
98
+ end
99
+
112
100
  def hash
113
101
  to_hash
114
102
  end
@@ -0,0 +1,24 @@
1
+ module Extensions
2
+ module HL7
3
+ module Segments
4
+ module EVN
5
+
6
+ def self.included base
7
+ base.send :include, InstanceMethods
8
+ base.extend ClassMethods
9
+ end
10
+
11
+ module InstanceMethods
12
+ def event_datetime
13
+ self.event_occurred || self.recorded_date
14
+ end
15
+ end
16
+
17
+ module ClassMethods
18
+ end
19
+
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -13,6 +13,10 @@ module Extensions
13
13
  to_hash["orderingProvider"]
14
14
  end
15
15
 
16
+ def order_control_text
17
+ OrderControl.t(self.order_control) rescue nil
18
+ end
19
+
16
20
  def obr_list
17
21
  a = to_hash["OBR"]["array"].collect {|obr| ::HL7::Message::Segment.from_hash("OBR", obr)}
18
22
  a.to_enum(:each)
@@ -93,9 +97,61 @@ module Extensions
93
97
  end
94
98
 
95
99
  module ClassMethods
96
-
97
100
  end
98
101
 
102
+ class OrderControl < EnumerateIt::Base
103
+ associate_values(NW: ['NW', 'New Order'],
104
+ OK: ['OK', 'Order/service accepted & OK'],
105
+ UA: ['UA', 'Unable to accept order/service'],
106
+ UA: ['UA', 'Unable to accept order/service'],
107
+ CA: ['CA', 'Canceled Order'],
108
+ OC: ['OC', 'Canceled Order'],
109
+ CR: ['CR', 'Canceled Order'],
110
+ UC: ['UC', 'Unable to cancel'],
111
+ DC: ['DC', 'Discontinue order/service request'],
112
+ OD: ['OD', 'Order/service discontinued'],
113
+ DR: ['DR', 'Discontinued as requested'],
114
+ UD: ['UD', 'Unable to discontinue'],
115
+ HD: ['HD', 'Hold order request'],
116
+ OH: ['OH', 'Order/service held'],
117
+ UH: ['UH', 'Unable to put on hold'],
118
+ HR: ['HR', 'On hold as requested'],
119
+ RL: ['RL', 'Release previous hold'],
120
+ OE: ['OE', 'Order/service released'],
121
+ OR: ['OR', 'Released as requested'],
122
+ UR: ['UR', 'Unable to release'],
123
+ RP: ['RP', 'Order/service replace request'],
124
+ RU: ['RU', 'Replaced unsolicited'],
125
+ RO: ['RO', 'Replacement order'],
126
+ RQ: ['RQ', 'Replaced as requested'],
127
+ UM: ['UM', 'Unable to replace'],
128
+ PA: ['PA', 'Parent order/service'],
129
+ CH: ['CH', 'Child order/service'],
130
+ XO: ['XO', 'Change Order'],
131
+ XX: ['XX', 'Change Order'],
132
+ UX: ['UX', 'Unable to change'],
133
+ XR: ['XR', 'Changed as requested'],
134
+ DE: ['DE', 'Data errors'],
135
+ RE: ['RE', 'Observations/Performed Service to follow'],
136
+ RR: ['RR', 'Request received'],
137
+ SR: ['SR', 'Response to send order/service status request'],
138
+ SS: ['SS', 'Send order/service status request'],
139
+ SC: ['SC', 'Status changed'],
140
+ SN: ['SN', 'Send order/service number'],
141
+ NA: ['NA', 'Number assigned'],
142
+ CN: ['CN', 'Combined result'],
143
+ RF: ['RF', 'Refill order/service request'],
144
+ AF: ['AF', 'Order/service refill request approval'],
145
+ DF: ['DF', 'Order/service refill request denied'],
146
+ FU: ['FU', 'Order/service refilled, unsolicited'],
147
+ OF: ['OF', 'Order/service refilled as requested'],
148
+ UF: ['UF', 'Unable to refill'],
149
+ LI: ['LI', 'Link order/service to patient care problem or goal'],
150
+ UN: ['UN', 'Unlink order/service from patient care problem or goal'],
151
+ OP: ['OP', 'Notification of order for outside dispense'],
152
+ PY: ['PY', 'Notification of replacement order for outside dispense'])
153
+
154
+ end
99
155
  end
100
156
  end
101
157
  end
@@ -9,12 +9,28 @@ module Extensions
9
9
  end
10
10
 
11
11
  module InstanceMethods
12
+ def patient_full_name
13
+ last_name = self.value_for_field("5.1")
14
+ first_name = self.value_for_field("5.2")
15
+ middle_initial_or_name = self.value_for_field("5.3")
16
+
17
+ "#{last_name}, #{first_name}#{middle_initial_or_name.blank? ? "" : " #{middle_initial_or_name}"}" rescue "n/a"
18
+ end
19
+
20
+ def patient_initials
21
+ last_name = self.value_for_field("5.1")
22
+ first_name = self.value_for_field("5.2")
23
+ middle_initial_or_name = self.value_for_field("5.3")
24
+
25
+ "#{last_name[0]}, #{first_name[0]}" rescue "n/a"
26
+ end
27
+
12
28
  def mrn
13
29
  to_hash["internalId"]["id"]
14
30
  end
15
31
 
16
32
  def gender
17
- to_hash["sex"]
33
+ self.value_for_field("8")
18
34
  end
19
35
 
20
36
  def to_hash
@@ -10,6 +10,24 @@ module Extensions
10
10
 
11
11
  module InstanceMethods
12
12
 
13
+ def assigned_location_str
14
+ location = self.assigned_location.split(self.item_delim)
15
+ point_of_care = location[0] rescue nil
16
+ room = location[1] rescue nil
17
+ bed = location[2] rescue nil
18
+
19
+ "#{point_of_care}#{room.blank? ? "" : "-#{room}"}#{bed.blank? ? "" : "-#{bed}"}"
20
+ end
21
+
22
+ def prior_location_str
23
+ location = self.prior_location.split(self.item_delim)
24
+ point_of_care = location[0] rescue nil
25
+ room = location[1] rescue nil
26
+ bed = location[2] rescue nil
27
+
28
+ "#{point_of_care}#{room.blank? ? "" : "-#{room}"}#{bed.blank? ? "" : "-#{bed}"}"
29
+ end
30
+
13
31
  def account_number
14
32
  to_hash["visit"]["id"]
15
33
  end
@@ -6,8 +6,9 @@ require 'core_ext/segments/obx'
6
6
  require 'core_ext/segments/nte'
7
7
  require 'core_ext/segments/nk1'
8
8
  require 'core_ext/segments/pv1'
9
+ require 'core_ext/segments/evn'
9
10
 
10
- segments = ["MSH","PID","ORC","OBR","OBX","NTE","NK1", "PV1"]
11
+ segments = ["MSH","PID","ORC","OBR","OBX","NTE","NK1", "PV1", "EVN"]
11
12
  segments.each do |segment_name|
12
13
 
13
14
  eval("class HL7::Message::Segment::#{segment_name} < HL7::Message::Segment
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "ruby-hl7-extensions"
6
- s.version = "0.0.61"
6
+ s.version = "0.0.62"
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib"]
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
  s.extra_rdoc_files = ["LICENSE", "README.md"]
15
15
  s.files = [".gitignore", "Gemfile", "Gemfile.lock", "LICENSE", "README.md", "Rakefile", "VERSION", "VERSION.yml", "lib/core_ext/segments/rol.rb",
16
16
  "lib/core_ext/message.rb", "lib/core_ext/segment.rb",
17
- "lib/core_ext/segments/msh.rb", "lib/core_ext/segments/nk1.rb", "lib/core_ext/segments/orc.rb", "lib/core_ext/segments/nte.rb", "lib/core_ext/segments/obr.rb", "lib/core_ext/segments/obx.rb", "lib/core_ext/segments/pid.rb", "lib/core_ext/segments/pv1.rb", "lib/core_ext/segments/segments.rb",
17
+ "lib/core_ext/segments/msh.rb", "lib/core_ext/segments/nk1.rb", "lib/core_ext/segments/orc.rb", "lib/core_ext/segments/evn.rb", "lib/core_ext/segments/nte.rb", "lib/core_ext/segments/obr.rb", "lib/core_ext/segments/obx.rb", "lib/core_ext/segments/pid.rb", "lib/core_ext/segments/pv1.rb", "lib/core_ext/segments/segments.rb",
18
18
  "lib/ruby-hl7-extensions.rb", "ruby-hl7-extensions.gemspec"]
19
19
  s.homepage = "http://github.com/nmlynl/ruby-hl7-extensions"
20
20
  s.rdoc_options = ["--charset=UTF-8"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-hl7-extensions
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.61
4
+ version: 0.0.62
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Lega
@@ -56,6 +56,7 @@ files:
56
56
  - VERSION.yml
57
57
  - lib/core_ext/message.rb
58
58
  - lib/core_ext/segment.rb
59
+ - lib/core_ext/segments/evn.rb
59
60
  - lib/core_ext/segments/msh.rb
60
61
  - lib/core_ext/segments/nk1.rb
61
62
  - lib/core_ext/segments/nte.rb