Module: Extensions::HL7::Segments::PID::InstanceMethods

Defined in:
lib/core_ext/segments/pid.rb

Instance Method Summary collapse

Instance Method Details

#genderObject



33
34
35
# File 'lib/core_ext/segments/pid.rb', line 33

def gender
  self.value_for_field("8")
end

#mrnObject



29
30
31
# File 'lib/core_ext/segments/pid.rb', line 29

def mrn 
  to_hash["internalId"]["id"] || to_hash["pid.2"]["id"]
end

#patient_full_nameObject



13
14
15
16
17
18
19
# File 'lib/core_ext/segments/pid.rb', line 13

def patient_full_name
  last_name = self.value_for_field("5.1")
  first_name = self.value_for_field("5.2")
  middle_initial_or_name = self.value_for_field("5.3")

  "#{last_name}, #{first_name}#{middle_initial_or_name.blank? ? "" : " #{middle_initial_or_name}"}" rescue "n/a"
end

#patient_initialsObject



21
22
23
24
25
26
27
# File 'lib/core_ext/segments/pid.rb', line 21

def patient_initials
  last_name = self.value_for_field("5.1")
  first_name = self.value_for_field("5.2")
  middle_initial_or_name = self.value_for_field("5.3")

  "#{last_name[0]}, #{first_name[0]}" rescue "n/a"
end

#to_hashObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/core_ext/segments/pid.rb', line 37

def to_hash
  return @hash if @hash
  
  patient_name = self.patient_name.split("^") rescue Array.new(10) {|i| "" }
  address = self.address.split("^") rescue Array.new(10) {|i| "" }
  patientAccountNumber = self..split("^") rescue Array.new(10) {|i| "" }
  pid2 = self.patient_id.split("^") rescue Array.new(10) {|i| "" }
  internalId = self.patient_id_list.split("^") rescue Array.new(10) {|i| "" }

  @hash = super.to_hash

  @hash["pid.2"] = {"id" => pid2[0], "check_digit" => pid2[1], "check_digit_scheme" => pid2[2],
                         "assigning_authority" => pid2[3], "type" => pid2[4], "assigning_facility" => pid2[5]}

  @hash["internalId"] = {"id" => internalId[0], "check_digit" => internalId[1], "check_digit_scheme" => internalId[2],
                         "assigning_authority" => internalId[3], "type" => internalId[4], "assigning_facility" => internalId[5]}

  @hash["patientName"] = {"lastName" => patient_name[0], "firstName" => patient_name[1], "middleInitOrName"=> patient_name[2]}

  @hash["address"] = {"streetAddress"=>address[0], "otherDesignation"=>address[1], "city"=>address[2], "state"=>address[3], "postalCode"=>address[4], "country"=>address[5], "addressType"=>address[6]}

  @hash["phoneNumbers"] = {"home"=>self.phone_home, "business"=>self.phone_business}

  @hash["patientAccountNumber"] = {"id"=>patientAccountNumber[0], "checkDigit"=>patientAccountNumber[1], "codeIdCheck"=>patientAccountNumber[2], "assigningAuth"=>patientAccountNumber[3], "idTypeCode"=>patientAccountNumber[4], "assigningFacility"=>patientAccountNumber[5]}

  @hash
end