Class: Roqua::Healthy::A19::Transformer
- Inherits:
-
Object
- Object
- Roqua::Healthy::A19::Transformer
- Defined in:
- lib/roqua/healthy/a19/transformer.rb
Instance Attribute Summary collapse
-
#message ⇒ Object
readonly
Returns the value of attribute message.
Instance Method Summary collapse
- #birthdate ⇒ Object
- #email ⇒ Object
- #gender ⇒ Object
- #identities ⇒ Object
-
#initialize(message) ⇒ Transformer
constructor
A new instance of Transformer.
- #phone_cell ⇒ Object
- #source ⇒ Object
- #status ⇒ Object
- #to_patient ⇒ Object
Constructor Details
#initialize(message) ⇒ Transformer
Returns a new instance of Transformer.
12 13 14 15 16 17 18 19 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 12 def initialize() = ['PID']['PID.3'] = [.fetch('PID').fetch('PID.3')].flatten.compact ['PID']['PID.5'] = [.fetch('PID').fetch('PID.5')].flatten.compact ['PID']['PID.11'] = [.fetch('PID').fetch('PID.11')].flatten.compact ['PID']['PID.13'] = [.fetch('PID').fetch('PID.13')].flatten.compact = MessageCleaner.new(). end |
Instance Attribute Details
#message ⇒ Object (readonly)
Returns the value of attribute message.
10 11 12 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 10 def end |
Instance Method Details
#birthdate ⇒ Object
57 58 59 60 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 57 def birthdate birthdate_details = .fetch('PID').fetch('PID.7') birthdate_details.fetch('PID.7.1') if birthdate_details end |
#email ⇒ Object
62 63 64 65 66 67 68 69 70 71 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 62 def email email_record = .fetch('PID').fetch('PID.13').find do |record| record.fetch('PID.13.2', :unknown_type_of_phone_record) == 'NET' end return nil unless email_record email_address = email_record.fetch('PID.13.1', "") email_address = email_record.fetch('PID.13.4', "") if email_address.blank? email_address end |
#gender ⇒ Object
87 88 89 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 87 def gender .fetch('PID').fetch('PID.8').fetch('PID.8.1') end |
#identities ⇒ Object
50 51 52 53 54 55 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 50 def identities .fetch('PID').fetch('PID.3').map do |identity| next if identity.fetch('PID.3.1').blank? {ident: identity.fetch('PID.3.1'), authority: identity.fetch('PID.3.5')} end.compact end |
#phone_cell ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 73 def phone_cell phone_cell_record = .fetch('PID').fetch('PID.13').find do |record| record.fetch('PID.13.2', :unknown_type_of_phone_record) == 'ORN' end phone_cell_record ||= .fetch('PID').fetch('PID.13').find do |record| record.fetch('PID.13.1', '') =~ /\A06/ end return nil unless phone_cell_record phone_cell_record.fetch('PID.13.1', "") end |
#source ⇒ Object
46 47 48 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 46 def source .fetch('MSH').fetch('MSH.4').fetch('MSH.4.1') end |
#status ⇒ Object
42 43 44 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 42 def status 'SUCCESS' end |
#to_patient ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/roqua/healthy/a19/transformer.rb', line 21 def to_patient { status: status, source: source, identities: identities, firstname: name.firstname, initials: name.initials, lastname: name.lastname, display_name: name.display_name, email: email, address_type: address.address_type, street: address.street, city: address.city, zipcode: address.zipcode, country: address.country, birthdate: birthdate, gender: gender, phone_cell: phone_cell } end |