ruby-hl7-extensions 0.0.1 → 0.0.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.
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: