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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7c12e151a786d06b8370acd4f590a09bf48dffc6
4
- data.tar.gz: e02137b255ceed2254c9f37012128308c47881b2
3
+ metadata.gz: f00987811c9f22a5bb4e97052adc498c4e77c304
4
+ data.tar.gz: 458ec85bb02f3ace9843fb108097436b7bebc617
5
5
  SHA512:
6
- metadata.gz: e58d8bd28d3cd24c29cd7289fc63436e093e336577ee04cdcaf674758252b7d634cfb2df15cdc36df4f17bcf7cc8aca21a9f1b3373647c711a956094983cac64
7
- data.tar.gz: fbec50bb1c8a0421218553dbf85bb468e5f9a94ed6ac2434ca7d0ee854e8f1fff95c80d8faa5e53c6307d69fbef4ae76f094917f5c162f504f4f9cee52568934
6
+ metadata.gz: 9c0339198f4f12038647d0662eae215f097841a1f6540c9a3a4eef17cfb273897c0622c1ec5b331b4bc441449a9b063b5dcc8550db29eb95d522d60dcdff491b
7
+ data.tar.gz: 2174e08862f0c43bdf0f8e0743084a6829a7ea7f140462fce924ea71bb9dc8a553b7ad7ebef9abc77ae7afcae6098da1bce255c7719d821b0162aaa798ecee24
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.3
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
3
  :minor: 0
4
- :patch: 1
4
+ :patch: 3
@@ -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, provider_type: "OP"}
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,
@@ -53,4 +53,4 @@ module Extensions
53
53
  end
54
54
  end
55
55
  end
56
- end
56
+ end
@@ -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
@@ -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.1"
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.1
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: