ruby-hl7-extensions 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/VERSION.yml +1 -1
- data/lib/core_ext/message.rb +13 -1
- data/lib/core_ext/segments/obr.rb +2 -1
- data/lib/core_ext/segments/pid.rb +1 -1
- data/lib/core_ext/segments/pv1.rb +100 -0
- data/lib/core_ext/segments/segments.rb +2 -1
- data/ruby-hl7-extensions.gemspec +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f00987811c9f22a5bb4e97052adc498c4e77c304
|
4
|
+
data.tar.gz: 458ec85bb02f3ace9843fb108097436b7bebc617
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9c0339198f4f12038647d0662eae215f097841a1f6540c9a3a4eef17cfb273897c0622c1ec5b331b4bc441449a9b063b5dcc8550db29eb95d522d60dcdff491b
|
7
|
+
data.tar.gz: 2174e08862f0c43bdf0f8e0743084a6829a7ea7f140462fce924ea71bb9dc8a553b7ad7ebef9abc77ae7afcae6098da1bce255c7719d821b0162aaa798ecee24
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/VERSION.yml
CHANGED
data/lib/core_ext/message.rb
CHANGED
@@ -15,10 +15,18 @@ module Extensions
|
|
15
15
|
if self[:OBR]
|
16
16
|
obrs = self[:OBR].is_a?(Array) ? self[:OBR] : [self[:OBR]]
|
17
17
|
obrs.each do |obr|
|
18
|
-
providers << {hash: obr.ordering_provider_hash, segment: obr
|
18
|
+
providers << {hash: obr.ordering_provider_hash, segment: obr}
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
+
if self[:PV1]
|
23
|
+
pv1 = self[:PV1]
|
24
|
+
providers << {hash: pv1.admitting_provider_hash, segment: self[:PV1]}
|
25
|
+
providers << {hash: pv1.attending_provider_hash, segment: self[:PV1]}
|
26
|
+
providers << {hash: pv1.consulting_provider_hash, segment: self[:PV1]}
|
27
|
+
providers << {hash: pv1.referring_provider_hash, segment: self[:PV1]}
|
28
|
+
end
|
29
|
+
|
22
30
|
providers
|
23
31
|
end
|
24
32
|
|
@@ -26,6 +34,10 @@ module Extensions
|
|
26
34
|
hash[:message][:content]["EVN"]
|
27
35
|
end
|
28
36
|
|
37
|
+
def sending_application
|
38
|
+
hash[:message][:content]["MSH"]["sendingApplication"] rescue nil
|
39
|
+
end
|
40
|
+
|
29
41
|
def patient_full_name
|
30
42
|
name = hash["message"]["content"]["PID"]["patientName"]
|
31
43
|
"#{name["lastName"]}, #{name["firstName"]}#{name["middleInitOrName"].blank? ? "" : " #{name["middleInitOrName"]}"}"
|
@@ -65,7 +65,8 @@ module Extensions
|
|
65
65
|
"checkDigitScheme" => orderingProvider[11],
|
66
66
|
"idTypeCode" => orderingProvider[12],
|
67
67
|
"isTypeCode" => orderingProvider[13],
|
68
|
-
"assigningFacility" => orderingProvider[14]
|
68
|
+
"assigningFacility" => orderingProvider[14],
|
69
|
+
"providerType" => "OP"
|
69
70
|
}
|
70
71
|
],
|
71
72
|
"orderCallBackNumber" => self.order_callback_phone_number,
|
@@ -0,0 +1,100 @@
|
|
1
|
+
module Extensions
|
2
|
+
module HL7
|
3
|
+
module Segments
|
4
|
+
module PV1
|
5
|
+
|
6
|
+
def self.included base
|
7
|
+
base.send :include, InstanceMethods
|
8
|
+
base.extend ClassMethods
|
9
|
+
end
|
10
|
+
|
11
|
+
module InstanceMethods
|
12
|
+
def admitting_provider_hash
|
13
|
+
to_hash["admittingProvider"].merge("providerType" => "AD")
|
14
|
+
end
|
15
|
+
|
16
|
+
def attending_provider_hash
|
17
|
+
to_hash["attendingProvider"].merge("providerType" => "AT")
|
18
|
+
end
|
19
|
+
|
20
|
+
def consulting_provider_hash
|
21
|
+
{"id" => to_hash["consultingDoctor"], "providerType" => "CP"}
|
22
|
+
end
|
23
|
+
|
24
|
+
def referring_provider_hash
|
25
|
+
{"id" => to_hash["referringDoctor"], "providerType" => "RP"}
|
26
|
+
end
|
27
|
+
|
28
|
+
def to_hash
|
29
|
+
return @hash if @hash
|
30
|
+
|
31
|
+
hash = super.to_hash
|
32
|
+
|
33
|
+
assignedLocation = self.hash["assignedLocation"].split("^") rescue Array.new(10) {|i| "" }
|
34
|
+
hash["patientLocation"] = {"pointOfCare" => assignedLocation[0],
|
35
|
+
"room" => assignedLocation[1],
|
36
|
+
"bed" => assignedLocation[2],
|
37
|
+
"facility" => assignedLocation[3],
|
38
|
+
"locationStatus" => assignedLocation[4],
|
39
|
+
"personLocationType" => assignedLocation[5],
|
40
|
+
"building" => assignedLocation[06]}
|
41
|
+
|
42
|
+
if self.hash["attendingDoctor"].blank?
|
43
|
+
hash["attendingProvider"] = {}
|
44
|
+
else
|
45
|
+
attendingProvider = self.hash["attendingDoctor"].split("^") rescue Array.new(20) {|i|""}
|
46
|
+
hash["attendingProvider"] = {"id" => attendingProvider[0],
|
47
|
+
"lastName" => attendingProvider[1],
|
48
|
+
"firstName" => attendingProvider[2],
|
49
|
+
"middleInitOrName" => attendingProvider[3],
|
50
|
+
"suffix" => attendingProvider[4],
|
51
|
+
"prefix" => attendingProvider[5],
|
52
|
+
"degree" => attendingProvider[6],
|
53
|
+
"sourceTable" => attendingProvider[7],
|
54
|
+
"assigningAuthority" => attendingProvider[8],
|
55
|
+
"nameTypeCode" => attendingProvider[9],
|
56
|
+
"identifierCheckDigit" => attendingProvider[10],
|
57
|
+
"codeIdCheck" => attendingProvider[11],
|
58
|
+
"identifierTypeCode" => attendingProvider[12],
|
59
|
+
"assigningFacility" => attendingProvider[13]}
|
60
|
+
end
|
61
|
+
|
62
|
+
if self.hash["admittingDoctor"].blank?
|
63
|
+
hash["admittingProvider"] = {}
|
64
|
+
else
|
65
|
+
admittingProvider = self.hash["admittingDoctor"].split("^") rescue Array.new(20) {|i|""}
|
66
|
+
hash["admittingProvider"] = {"id" => admittingProvider[0],
|
67
|
+
"lastName" => admittingProvider[1],
|
68
|
+
"firstName" => admittingProvider[2],
|
69
|
+
"middleInitOrName" => admittingProvider[3],
|
70
|
+
"suffix" => admittingProvider[4],
|
71
|
+
"prefix" => admittingProvider[5],
|
72
|
+
"degree" => admittingProvider[6],
|
73
|
+
"sourceTable" => admittingProvider[7],
|
74
|
+
"assigningAuthority" => admittingProvider[8],
|
75
|
+
"nameTypeCode" => admittingProvider[9],
|
76
|
+
"identifierCheckDigit" => admittingProvider[10],
|
77
|
+
"codeIdCheck" => admittingProvider[11],
|
78
|
+
"identifierTypeCode" => admittingProvider[12],
|
79
|
+
"assigningFacility" => admittingProvider[13]}
|
80
|
+
end
|
81
|
+
|
82
|
+
visitNumber = self.hash["visitNumber"].split("^") rescue Array.new(20) {|i|""}
|
83
|
+
hash["visit"] = {"id" => visitNumber[0],
|
84
|
+
"checkDigit" => visitNumber[1],
|
85
|
+
"codeIdCheck" => visitNumber[2],
|
86
|
+
"assigningAuthority" => visitNumber[3],
|
87
|
+
"idTypeCode" => visitNumber[4]}
|
88
|
+
|
89
|
+
|
90
|
+
hash
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
module ClassMethods
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
@@ -4,8 +4,9 @@ require 'core_ext/segments/obr'
|
|
4
4
|
require 'core_ext/segments/obx'
|
5
5
|
require 'core_ext/segments/nte'
|
6
6
|
require 'core_ext/segments/nk1'
|
7
|
+
require 'core_ext/segments/pv1'
|
7
8
|
|
8
|
-
segments = ["MSH","PID","OBR","OBX","NTE","NK1"]
|
9
|
+
segments = ["MSH","PID","OBR","OBX","NTE","NK1", "PV1"]
|
9
10
|
segments.each do |segment_name|
|
10
11
|
|
11
12
|
eval("class HL7::Message::Segment::#{segment_name} < HL7::Message::Segment
|
data/ruby-hl7-extensions.gemspec
CHANGED
@@ -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.
|
6
|
+
s.version = "0.0.3"
|
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",
|
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/nte.rb", "lib/core_ext/segments/obr.rb", "lib/core_ext/segments/obx.rb", "lib/core_ext/segments/pid.rb", "lib/core_ext/segments/segments.rb",
|
17
|
+
"lib/core_ext/segments/msh.rb", "lib/core_ext/segments/nk1.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.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nick Lega
|
@@ -62,6 +62,7 @@ files:
|
|
62
62
|
- lib/core_ext/segments/obr.rb
|
63
63
|
- lib/core_ext/segments/obx.rb
|
64
64
|
- lib/core_ext/segments/pid.rb
|
65
|
+
- lib/core_ext/segments/pv1.rb
|
65
66
|
- lib/core_ext/segments/segments.rb
|
66
67
|
- lib/ruby-hl7-extensions.rb
|
67
68
|
- ruby-hl7-extensions.gemspec
|
@@ -90,4 +91,3 @@ signing_key:
|
|
90
91
|
specification_version: 3
|
91
92
|
summary: Ruby HL7 Library w/Extensions
|
92
93
|
test_files: []
|
93
|
-
has_rdoc:
|