From 382759e70f0865c4c674b56e7a69eaeee40a92dc Mon Sep 17 00:00:00 2001 From: Yasuhiro Asaka Date: Fri, 9 Mar 2012 10:58:07 +0100 Subject: [PATCH] Added article_codes in exported patinfo_yaml --- ext/export/src/oddb_yaml.rb | 10 ++++++++++ src/model/sequence_observer.rb | 21 +++++++++++++++++++++ 2 files changed, 31 insertions(+), 0 deletions(-) diff --git a/ext/export/src/oddb_yaml.rb b/ext/export/src/oddb_yaml.rb index f62ef27..d1eb1ac 100644 --- a/ext/export/src/oddb_yaml.rb +++ b/ext/export/src/oddb_yaml.rb @@ -409,6 +409,16 @@ module ODDB '@oid', '@descriptions', ] + def to_yaml( opts = {} ) + YAML::quick_emit( self.object_id, opts ) { |out| + out.map( taguri ) { |map| + to_yaml_properties.each { |m| + map.add( m[1..-1], instance_variable_get( m ) ) + } + map.add('article_codes', self.article_codes) + } + } + end end class PatinfoDocument include OddbYaml diff --git a/src/model/sequence_observer.rb b/src/model/sequence_observer.rb index 48d816e..04b1088 100644 --- a/src/model/sequence_observer.rb +++ b/src/model/sequence_observer.rb @@ -17,6 +17,27 @@ module ODDB odba_isolated_store # rewrite indices seq end + def article_codes + codes = [] + @sequences.collect { |seq| + seq.each_package { |pac| + cds = { + :article_ean13 => pac.barcode.to_s, + } + if(pcode = pac.pharmacode) + cds.store(:article_pcode, pcode) + end + if(psize = pac.size) + cds.store(:article_size, psize) + end + if(pdose = pac.dose) + cds.store(:article_dose, pdose.to_s) + end + codes.push(cds) + } + } + codes + end def remove_sequence(seq) ## failsafe-code @sequences.delete_if { |s| s.odba_instance.nil? } -- 1.7.3.4