oddb2xml 2.7.8 → 2.7.9

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
  SHA256:
3
- metadata.gz: 23dea260483ed3a99e62764331bf43924c5f095855e06c13b76d6d37e5f8d13a
4
- data.tar.gz: ae24f986d8853676f62e41d2de071bece17540c5237d418ba14662708baf9057
3
+ metadata.gz: 3f177caa4764f9d7a9a9b165e936a9d2474fcab1f2f165ec757f9acad0c331eb
4
+ data.tar.gz: ca338ae5867dde260218865926b38eb7529d0dac9675aeff230f576ec7023cc0
5
5
  SHA512:
6
- metadata.gz: c5b46f3ba07e2ee63e9021b0e7cef091f2c98daca82a724a15c3819ca9e91f6504a2ff0e61ba4bbd03621cd4fcffe95d4b1596af1354e841cb9c35de818ce8fd
7
- data.tar.gz: b76c38273ec98bae15054df8b685025a569c947d16e487daf6d393efeca0592cc506b24618776db7ee7a5b09f4d3bccc47db3ef576da446470b02d996838fee8
6
+ metadata.gz: 793bc30149238fdfb22dc990fee57dc6913d3fa825fa2647ebcd0aee82264287f006765d082256c02215d37337efd8218ebaf9fed8297d5beb0f94d7ffb7ff2d
7
+ data.tar.gz: 230acb26a3931afa47be553a740095d2b5d352143d3304985eb4b80f532bc254c225f535ca575be2219ffa15193cdb09cf7bb2ad3d5311d9957dbf056f20c7ae
data/History.txt CHANGED
@@ -1,3 +1,7 @@
1
+ === 2.7.9 / 19.09.22
2
+ * Remove newly generated DSCRI when not running --artikelstamm and
3
+ generate always (as before 2.7.8) a DSCRF fiele
4
+
1
5
  === 2.7.8 / 14.09.22
2
6
  * Add fields for french and italian in artikelstamm whenever possible
3
7
 
@@ -378,7 +378,6 @@ module Oddb2xml
378
378
  xml.LIMNIV lim[:niv]
379
379
  xml.DSCRD lim[:desc_de]
380
380
  xml.DSCRF lim[:desc_fr]
381
- xml.DSCRI lim[:desc_it]
382
381
  xml.VDAT lim[:vdate]
383
382
  nbr_records += 1
384
383
  end
@@ -536,7 +535,7 @@ module Oddb2xml
536
535
  if lang == :de
537
536
  name = refdata && refdata[:desc_de] ? refdata[:desc_de] : obj[:sequence_name]
538
537
  elsif lang == :fr
539
- name = refdata[:desc_fr] if refdata && refdata[:desc_fr]
538
+ name = refdata && refdata[:desc_fr] ? refdata[:desc_fr] : obj[:sequence_name]
540
539
  elsif lang == :it
541
540
  name = refdata[:desc_it] if refdata && refdata[:desc_it]
542
541
  else
@@ -560,7 +559,7 @@ module Oddb2xml
560
559
  @missing.each do |obj|
561
560
  ean = obj[:ean13]
562
561
  next unless check_name(obj, :de)
563
- # next unless check_name(obj, :fr)
562
+ next unless check_name(obj, :fr)
564
563
  next if /^Q/i.match?(obj[:atc])
565
564
  if obj[:prodno]
566
565
  next if emitted.index(obj[:prodno])
@@ -572,9 +571,6 @@ module Oddb2xml
572
571
  xml.PRODNO obj[:prodno] if obj[:prodno]
573
572
  xml.DSCRD check_name(obj, :de)
574
573
  xml.DSCRF check_name(obj, :fr) if check_name(obj, :fr)
575
- binding.pry if check_name(obj, :de) && check_name(obj, :de).eql?('Varilrix Trockensub c solv')
576
-
577
- xml.DSCRI check_name(obj, :it) if check_name(obj, :it)
578
574
  xml.ATC obj[:atc_code] unless obj[:atc_code].empty?
579
575
  xml.IT obj[:ith_swissmedic] if obj[:ith_swissmedic]
580
576
  xml.CPT
@@ -598,7 +594,6 @@ module Oddb2xml
598
594
  xml.PRODNO ppac[:prodno] if ppac[:prodno] && !ppac[:prodno].empty?
599
595
  xml.DSCRD check_name(obj, :de)
600
596
  xml.DSCRF check_name(obj, :fr)
601
- xml.DSCRI check_name(obj, :it)
602
597
  # xml.BNAMD
603
598
  # xml.BNAMF
604
599
  # xml.ADNAMD
@@ -952,10 +947,10 @@ module Oddb2xml
952
947
  end
953
948
  xml.DSCRD obj[:desc_de] if obj[:desc_de] && !obj[:desc_de].empty?
954
949
  xml.DSCRF obj[:desc_fr] if obj[:desc_fr] && !obj[:desc_fr].empty?
955
- xml.DSCRI obj[:desc_it] if obj[:desc_it] && !obj[:desc_it].empty?
950
+ xml.DSCRF obj[:desc_de] if !obj[:desc_fr] || obj[:desc_fr].empty?
956
951
  xml.SORTD obj[:desc_de].upcase if obj[:desc_de] && !obj[:desc_de].empty?
957
952
  xml.SORTF obj[:desc_fr].upcase if obj[:desc_fr] && !obj[:desc_fr].empty?
958
- xml.SORTI obj[:desc_it].upcase if obj[:desc_it] && !obj[:desc_it].empty?
953
+ xml.SORTF obj[:desc_de].upcase if !obj[:desc_fr] || obj[:desc_fr].empty?
959
954
  # xml.QTYUD
960
955
  # xml.QTYUF
961
956
  # xml.IMG
@@ -966,7 +961,6 @@ module Oddb2xml
966
961
  if obj[:seq]
967
962
  xml.SYN1D obj[:seq][:name_de] unless obj[:seq][:name_de].empty?
968
963
  xml.SYN1F obj[:seq][:name_fr] unless obj[:seq][:name_fr].empty?
969
- xml.SYN1I obj[:seq][:name_it] unless obj[:seq][:name_it].empty?
970
964
  end
971
965
  if obj[:seq]
972
966
  case obj[:seq][:deductible]
@@ -430,6 +430,7 @@ class ParseComposition
430
430
  ast = transf.apply(parser.parse(cleaned))
431
431
  end
432
432
  rescue Parslet::ParseFailed => error
433
+ @@error_handler.nrParsingErrors ||= 0
433
434
  @@error_handler.nrParsingErrors += 1
434
435
  puts "#{File.basename(__FILE__)}:#{__LINE__}: failed parsing ==> #{cleaned} #{error}"
435
436
  return nil
@@ -495,6 +496,7 @@ class ParseGalenicForm
495
496
  ast = transf.apply(parser.parse(string))
496
497
  end
497
498
  rescue Parslet::ParseFailed => error
499
+ @@error_handler.nrParsingErrors ||= 0
498
500
  @@error_handler.nrParsingErrors += 1
499
501
  puts "#{File.basename(__FILE__)}:#{__LINE__}: failed parsing ==> #{string} #{error}"
500
502
  return nil
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.7.8"
2
+ VERSION = "2.7.9"
3
3
  end
data/oddb2xml.xsd CHANGED
@@ -48,7 +48,6 @@
48
48
  FIRST import all data from swissINDEX
49
49
  * DSCRD German name
50
50
  * DSCRF French name (Products/article only from ZurRose do not have a french name)
51
- * DSCRI Italian name (Products/article only from ZurRose do not have a french name)
52
51
  * GTIN
53
52
  GTIN may be 8, 12, 13 or 14 chars long (https://en.wikipedia.org/wiki/Global_Trade_Item_Number)
54
53
  The EAN-8 code is an eight-digit barcode used usually for very small articles, such as a battery for hearing aid, where fitting a larger code onto the item would be difficult
@@ -129,15 +128,6 @@
129
128
  </xs:simpleType>
130
129
  </xs:element>
131
130
 
132
- <xs:element name="DSCRI">
133
- <xs:simpleType>
134
- <xs:restriction base="xs:string">
135
- <xs:minLength value="3" />
136
- <xs:maxLength value="120" />
137
- </xs:restriction>
138
- </xs:simpleType>
139
- </xs:element>
140
-
141
131
  <xs:element name="ART">
142
132
  <xs:complexType>
143
133
  <xs:sequence>
@@ -167,15 +157,12 @@
167
157
  <xs:element ref="ns1:BG"/>
168
158
  </xs:sequence>
169
159
  <xs:element ref="ns1:DSCRD"/>
170
- <xs:element ref="ns1:DSCRF" minOccurs="0" />
171
- <xs:element ref="ns1:DSCRI" minOccurs="0"/>
160
+ <xs:element ref="ns1:DSCRF"/>
172
161
  <xs:element ref="ns1:SORTD"/>
173
- <xs:element ref="ns1:SORTF" minOccurs="0"/>
174
- <xs:element ref="ns1:SORTI" minOccurs="0"/>
162
+ <xs:element ref="ns1:SORTF"/>
175
163
  <xs:sequence minOccurs="0">
176
164
  <xs:element ref="ns1:SYN1D"/>
177
165
  <xs:element ref="ns1:SYN1F"/>
178
- <xs:element ref="ns1:SYN1I"/>
179
166
  <xs:element ref="ns1:SLOPLUS"/>
180
167
  </xs:sequence>
181
168
  <xs:element ref="ns1:ARTCOMP"/>
@@ -258,10 +245,8 @@
258
245
  </xs:element>
259
246
  <xs:element name="SORTD" type="xs:string"/>
260
247
  <xs:element name="SORTF" type="xs:string"/>
261
- <xs:element name="SORTI" type="xs:string"/>
262
248
  <xs:element name="SYN1D" type="xs:string"/>
263
249
  <xs:element name="SYN1F" type="xs:string"/>
264
- <xs:element name="SYN1I" type="xs:string"/>
265
250
  <xs:element name="SLOPLUS">
266
251
  <xs:simpleType>
267
252
  <xs:restriction base="xs:byte">
@@ -361,10 +346,8 @@
361
346
  <xs:element ref="ns1:QTYMD"/>
362
347
  <xs:element ref="ns1:DSCRDMD"/>
363
348
  <xs:element ref="ns1:DSCRFMD"/>
364
- <xs:element ref="ns1:DSCRIMD"/>
365
349
  <xs:element ref="ns1:SORTDMD"/>
366
350
  <xs:element ref="ns1:SORTFMD"/>
367
- <xs:element ref="ns1:SORTIMD"/>
368
351
  <xs:sequence minOccurs="0">
369
352
  <xs:element ref="ns1:SYN1DMD"/>
370
353
  <xs:element ref="ns1:SYN1FMD"/>
@@ -416,10 +399,8 @@
416
399
  </xs:element>
417
400
  <xs:element name="SORTDMD" type="xs:string"/>
418
401
  <xs:element name="SORTFMD" type="xs:string"/>
419
- <xs:element name="SORTIMD" type="xs:string"/>
420
402
  <xs:element name="SYN1DMD" type="xs:string"/>
421
403
  <xs:element name="SYN1FMD" type="xs:string"/>
422
- <xs:element name="SYN1IMD" type="xs:string"/>
423
404
  <xs:element name="SLOPLUSMD">
424
405
  <xs:simpleType>
425
406
  <xs:restriction base="xs:byte">
@@ -741,7 +722,6 @@
741
722
  <xs:element ref="ns1:LIMNIV"/>
742
723
  <xs:element name="DSCRD" type="xs:string"/>
743
724
  <xs:element name="DSCRF" type="xs:string"/>
744
- <xs:element name="DSCRI" type="xs:string"/>
745
725
  <xs:element ref="ns1:VDAT"/>
746
726
  </xs:sequence>
747
727
  <xs:attribute name="DT" use="required"/>
@@ -800,7 +780,6 @@
800
780
  <xs:element ref="ns1:LIMNIVMD"/>
801
781
  <xs:element name="DSCRDMD" type="xs:string"/>
802
782
  <xs:element name="DSCRFMD" type="xs:string"/>
803
- <xs:element name="DSCRIMD" type="xs:string"/>
804
783
  <xs:element ref="ns1:VDATMD"/>
805
784
  </xs:sequence>
806
785
  <xs:attribute name="DT" use="required"/>
@@ -865,8 +844,7 @@
865
844
  <xs:element minOccurs="0" ref="ns1:PRODNO"/>
866
845
  <xs:sequence minOccurs="0">
867
846
  <xs:element ref="ns1:DSCRD"/>
868
- <xs:element ref="ns1:DSCRF" minOccurs="0"/>
869
- <xs:element ref="ns1:DSCRI" minOccurs="0"/>
847
+ <xs:element ref="ns1:DSCRF"/>
870
848
  </xs:sequence>
871
849
  <xs:element minOccurs="0" ref="ns1:ADINFD"/>
872
850
  <xs:element minOccurs="0" ref="ns1:ADINFF"/>
@@ -942,7 +920,6 @@
942
920
  <xs:sequence minOccurs="0">
943
921
  <xs:element ref="ns1:DSCRDMD"/>
944
922
  <xs:element ref="ns1:DSCRFMD"/>
945
- <xs:element ref="ns1:DSCRIMD"/>
946
923
  </xs:sequence>
947
924
  <xs:element minOccurs="0" ref="ns1:ADINFDMD"/>
948
925
  <xs:element minOccurs="0" ref="ns1:ADINFFMD"/>
@@ -1111,7 +1088,6 @@
1111
1088
  <xs:element name="ITMD" type="xs:string"/>
1112
1089
  <xs:element name="DSCRDMD" type="xs:string"/>
1113
1090
  <xs:element name="DSCRFMD" type="xs:string"/>
1114
- <xs:element name="DSCRIMD" type="xs:string"/>
1115
1091
  <xs:element name="VDATMD" type="xs:NMTOKEN"/>
1116
1092
  <xs:element name="RESULTMD">
1117
1093
  <xs:complexType>
data/shell.nix CHANGED
@@ -4,9 +4,9 @@ with import <nixpkgs> {};
4
4
  stdenv.mkDerivation {
5
5
  name = "env";
6
6
  buildInputs = [
7
- ruby_3_0
7
+ ruby_3_1
8
8
  rubyPackages_3_0.safe_yaml
9
- ruby_3_0.devEnv
9
+ ruby_3_1.devEnv
10
10
  git
11
11
  python
12
12
  libpcap
@@ -11,7 +11,7 @@ describe Oddb2xml::Builder do
11
11
  expect(@inhalt).not_to be nil
12
12
  unless @inhalt.index(expected_value)
13
13
  puts expected_value
14
- binding.pry # TODO: Must not be active in production!!
14
+ # binding.pry # TODO: Must not be active in production!!
15
15
  end
16
16
  expect(@inhalt.index(expected_value)).not_to be nil
17
17
  end
data/spec/builder_spec.rb CHANGED
@@ -35,7 +35,7 @@ ARTICLE_ZURROSE_ELEMENTS = [
35
35
  ["ARTICLE/ART/ARTINS/NINCD", "20"]
36
36
  ]
37
37
 
38
- ARTICLE_NAROPIN = %( <REF_DATA>1</REF_DATA>
38
+ ARTICLE_NAROPIN = %(<REF_DATA>1</REF_DATA>
39
39
  <SMCAT>B</SMCAT>
40
40
  <SMNO>54015011</SMNO>
41
41
  <PRODNO>5401501</PRODNO>
@@ -44,10 +44,8 @@ ARTICLE_NAROPIN = %( <REF_DATA>1</REF_DATA>
44
44
  <BG>N</BG>
45
45
  <DSCRD>NAROPIN Inj Lös 0.2 % 10ml Duofit Amp 5 Stk</DSCRD>
46
46
  <DSCRF>NAROPIN sol inj 0.2 % 10ml amp duofit 5 pce</DSCRF>
47
- <DSCRI>NAROPIN Inj Lös 0.2 % 10ml Duofit Amp 5 Stk</DSCRI>
48
47
  <SORTD>NAROPIN INJ LÖS 0.2 % 10ML DUOFIT AMP 5 STK</SORTD>
49
48
  <SORTF>NAROPIN SOL INJ 0.2 % 10ML AMP DUOFIT 5 PCE</SORTF>
50
- <SORTI>NAROPIN INJ LÖS 0.2 % 10ML DUOFIT AMP 5 STK</SORTI>
51
49
  <ARTCOMP>
52
50
  <COMPNO>7601001402539</COMPNO>
53
51
  </ARTCOMP>
@@ -56,8 +54,7 @@ ARTICLE_NAROPIN = %( <REF_DATA>1</REF_DATA>
56
54
  <BC>7680540150118</BC>
57
55
  <BCSTAT>A</BCSTAT>
58
56
  </ARTBAR>
59
- </ART>
60
- )
57
+ </ART>)
61
58
 
62
59
  ARTICLE_COMMON_ELEMENTS = [
63
60
  ["ARTICLE/ART/REF_DATA", "1"],
@@ -571,10 +568,11 @@ describe Oddb2xml::Builder do
571
568
 
572
569
  it "should generate ATC for 7680002770014" do
573
570
  oddb_product_xml = IO.read(File.join(Oddb2xml::WORK_DIR, "oddb_product.xml"))
574
- text = %(<GTIN>7680002770021</GTIN>
571
+ text = %(<GTIN>7680002770014</GTIN>
575
572
  <PRODNO>0027701</PRODNO>
576
- <DSCRD>Coeur-Vaisseaux Sérocytol, suppositoire</DSCRD>
577
- <ATC>J06AA</ATC>
573
+ <DSCRD>SEROCYTOL Herz-Gefässe Supp 3 Stk</DSCRD>
574
+ <DSCRF>SEROCYTOL Coeur-Vaisseaux supp 3 pce</DSCRF>
575
+ <ATC>J06AA99</ATC>
578
576
  <IT>08.07.</IT>
579
577
  <CPT/>)
580
578
  expect(oddb_product_xml.index(text)).to be >= 1
@@ -585,6 +583,7 @@ describe Oddb2xml::Builder do
585
583
  text2 = %( <GTIN>7680002770021</GTIN>
586
584
  <PRODNO>0027701</PRODNO>
587
585
  <DSCRD>Coeur-Vaisseaux Sérocytol, suppositoire</DSCRD>
586
+ <DSCRF>Coeur-Vaisseaux Sérocytol, suppositoire</DSCRF>
588
587
  <ATC>J06AA</ATC>
589
588
  <IT>08.07.</IT>
590
589
  <CPT/>)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oddb2xml
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.8
4
+ version: 2.7.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger