oddb2xml 2.7.7 → 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: 8d94c5e970a0c4917bfd547d1c71b6c889cd9ec4420e2d986eb53023bbdd2d94
4
- data.tar.gz: 2a242506a97171bbb882f5daa9e634ff1485e32bed2116d4e2dd3ffb1d948850
3
+ metadata.gz: 3f177caa4764f9d7a9a9b165e936a9d2474fcab1f2f165ec757f9acad0c331eb
4
+ data.tar.gz: ca338ae5867dde260218865926b38eb7529d0dac9675aeff230f576ec7023cc0
5
5
  SHA512:
6
- metadata.gz: d3816794c1f84e301d091ddf35bbea6246da42bbb8fdce8bb9b9444b9cc8280e51f712ff3bc5b6b3166d2e78f942441e7600c9e86030034e93fe89bf5b5b0b91
7
- data.tar.gz: 5518a263cd2e9813b7625f2aab9e32ce455ec4ece55dc84bf8bb862f62f8a61b027ae9eb5396c92ef2a35de3acfa9e4024f6ead2a581c6c009a4cc559da75d16
6
+ metadata.gz: 793bc30149238fdfb22dc990fee57dc6913d3fa825fa2647ebcd0aee82264287f006765d082256c02215d37337efd8218ebaf9fed8297d5beb0f94d7ffb7ff2d
7
+ data.tar.gz: 230acb26a3931afa47be553a740095d2b5d352143d3304985eb4b80f532bc254c225f535ca575be2219ffa15193cdb09cf7bb2ad3d5311d9957dbf056f20c7ae
@@ -9,7 +9,7 @@
9
9
  Contributors: MEDEVIT <office@medevit.at> - initial API and implementation -->
10
10
  <xs:schema targetNamespace="http://elexis.ch/Elexis_Artikelstamm_v5"
11
11
  elementFormDefault="qualified" attributeFormDefault="unqualified"
12
- version="4" id="Elexis_Artikelstamm_v003" xmlns="http://elexis.ch/Elexis_Artikelstamm_v5" xmlns:xs="http://www.w3.org/2001/XMLSchema">
12
+ version="5" id="Elexis_Artikelstamm_v003" xmlns="http://elexis.ch/Elexis_Artikelstamm_v5" xmlns:xs="http://www.w3.org/2001/XMLSchema">
13
13
  <xs:element name="ARTIKELSTAMM">
14
14
  <xs:annotation>
15
15
  <xs:documentation xml:lang="EN">Information on
@@ -35,7 +35,10 @@
35
35
  type="DSCRType" minOccurs="1" maxOccurs="1">
36
36
  </xs:element>
37
37
  <xs:element name="DSCRF"
38
- type="DSCRType" minOccurs="1" maxOccurs="1">
38
+ type="DSCRType" minOccurs="0" maxOccurs="1">
39
+ </xs:element>
40
+ <xs:element name="DSCRI"
41
+ type="DSCRType" minOccurs="0" maxOccurs="1">
39
42
  </xs:element>
40
43
  <xs:element name="ATC"
41
44
  nillable="false" maxOccurs="1" minOccurs="0">
@@ -93,7 +96,10 @@
93
96
  type="DSCRType" minOccurs="1" maxOccurs="1">
94
97
  </xs:element>
95
98
  <xs:element name="DSCRF"
96
- type="DSCRType" minOccurs="1" maxOccurs="1">
99
+ type="DSCRType" minOccurs="0" maxOccurs="1">
100
+ </xs:element>
101
+ <xs:element name="DSCRI"
102
+ type="DSCRType" minOccurs="0" maxOccurs="1">
97
103
  </xs:element>
98
104
  <xs:element
99
105
  name="LIMITATION_PTS" type="xs:int" maxOccurs="1"
@@ -181,7 +187,10 @@
181
187
  </xs:annotation>
182
188
  </xs:element>
183
189
  <xs:element name="DSCRF"
184
- type="xs:string" minOccurs="1" maxOccurs="1">
190
+ type="xs:string" minOccurs="0" maxOccurs="1">
191
+ </xs:element>
192
+ <xs:element name="DSCRI"
193
+ type="xs:string" minOccurs="0" maxOccurs="1">
185
194
  </xs:element>
186
195
  <xs:element name="COMP"
187
196
  minOccurs="0">
@@ -280,6 +289,12 @@
280
289
  </xs:documentation>
281
290
  </xs:annotation>
282
291
  </xs:element>
292
+ <xs:element name="DOSAGE_FORMI" type="xs:string" minOccurs="0" maxOccurs="1">
293
+ <xs:annotation>
294
+ <xs:documentation>Die Darreichungsform dieses Items. zB Tablette(n) oder Spritze(n) in italienischer Sprache
295
+ </xs:documentation>
296
+ </xs:annotation>
297
+ </xs:element>
283
298
  <xs:element name="SL_ENTRY"
284
299
  type="xs:boolean" minOccurs="0" maxOccurs="1">
285
300
  <xs:annotation>
data/History.txt CHANGED
@@ -1,3 +1,10 @@
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
+
5
+ === 2.7.8 / 14.09.22
6
+ * Add fields for french and italian in artikelstamm whenever possible
7
+
1
8
  === 2.7.7/ 12.08.2022
2
9
  * Workaround for artikelstamm V3. Strip IKSCAT from A+ to A to be compatible with XSD
3
10
 
@@ -536,6 +536,8 @@ module Oddb2xml
536
536
  name = refdata && refdata[:desc_de] ? refdata[:desc_de] : obj[:sequence_name]
537
537
  elsif lang == :fr
538
538
  name = refdata && refdata[:desc_fr] ? refdata[:desc_fr] : obj[:sequence_name]
539
+ elsif lang == :it
540
+ name = refdata[:desc_it] if refdata && refdata[:desc_it]
539
541
  else
540
542
  return false
541
543
  end
@@ -568,7 +570,7 @@ module Oddb2xml
568
570
  xml.GTIN ean
569
571
  xml.PRODNO obj[:prodno] if obj[:prodno]
570
572
  xml.DSCRD check_name(obj, :de)
571
- xml.DSCRF check_name(obj, :fr)
573
+ xml.DSCRF check_name(obj, :fr) if check_name(obj, :fr)
572
574
  xml.ATC obj[:atc_code] unless obj[:atc_code].empty?
573
575
  xml.IT obj[:ith_swissmedic] if obj[:ith_swissmedic]
574
576
  xml.CPT
@@ -1512,15 +1514,21 @@ module Oddb2xml
1512
1514
  xml.GTIN pkg_gtin.to_s.rjust(13, "0")
1513
1515
  xml.SALECD("A")
1514
1516
  # maxLength for DSCR is 50 for Artikelstamm v3
1515
- xml.DSCR(name) # for description for zur_rose
1517
+ xml.DSCR(name) # for g for zur_rose
1516
1518
  name_fr = item[:name_fr] + " " + item[:desc_fr].strip + " " + package[:desc_fr] if package && package[:desc_fr]
1517
1519
  name_fr ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_fr] : nil
1518
1520
  # Zugelassenen Packungen has only german names
1519
1521
  name_fr ||= (obj[:name_fr] + ", " + obj[:desc_fr]).strip if obj[:name_fr]
1520
1522
  # ZuRorse has only german names
1521
1523
  name_fr ||= (item[:name_fr] + ", " + item[:desc_fr]) if item
1522
- name_fr ||= name
1523
- xml.DSCRF(name_fr)
1524
+ xml.DSCRF(name_fr) if name_fr
1525
+ name_it = item[:name_it] + " " + item[:desc_it].strip + " " + package[:desc_it] if package && package[:desc_it]
1526
+ name_it ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_it] : nil
1527
+ # Zugelassenen Packungen has only german names
1528
+ name_it ||= (obj[:name_it] + ", " + obj[:desc_it]).strip if obj[:name_it]
1529
+ # ZuRorse has only german names
1530
+ name_it ||= (item[:name_it] + ", " + item[:desc_it]) if item
1531
+ xml.DSCRI(name_it) if name_it
1524
1532
  if obj[:company_name] || obj[:company_ean]
1525
1533
  xml.COMP do # Manufacturer
1526
1534
  xml.NAME obj[:company_name][0..99] # limit to 100 chars as in XSD
@@ -1562,10 +1570,10 @@ module Oddb2xml
1562
1570
  measure = info.pkg_size
1563
1571
  end
1564
1572
  xml.MEASURE measure
1565
- xml.MEASUREF measure
1566
1573
  # Die Darreichungsform dieses Items. zB Tablette(n) oder Spritze(n)
1567
1574
  xml.DOSAGE_FORM info.galenic_form.descriptions["de"] if info.galenic_form.descriptions["de"]
1568
1575
  xml.DOSAGE_FORMF info.galenic_form.descriptions["fr"] if info.galenic_form.descriptions["fr"]
1576
+ xml.DOSAGE_FORMI info.galenic_form.descriptions["it"] if info.galenic_form.descriptions["it"]
1569
1577
  end
1570
1578
  xml.SL_ENTRY "true" if sl_gtins.index(pkg_gtin)
1571
1579
  xml.IKSCAT package[:swissmedic_category][0] if package[:swissmedic_category] && package[:swissmedic_category].length > 0
@@ -1633,7 +1641,8 @@ module Oddb2xml
1633
1641
  emit_salecd(xml, ean13, obj)
1634
1642
  description = obj[:desc_de] || obj[:description] # for description for zur_rose
1635
1643
  xml.DSCR(description)
1636
- xml.DSCRF(obj[:desc_fr] || "--missing--")
1644
+ xml.DSCRF(obj[:desc_fr]) if obj[:desc_fr] && !obj[:desc_fr].empty?
1645
+ xml.DSCRI(obj[:desc_it]) if obj[:desc_it] && !obj[:desc_it].empty?
1637
1646
  if obj[:company_ean] && !obj[:company_ean].empty?
1638
1647
  xml.COMP do
1639
1648
  xml.GLN obj[:company_ean]
@@ -1737,6 +1746,7 @@ module Oddb2xml
1737
1746
  nr_products += 1
1738
1747
  xml.PRODUCT do
1739
1748
  xml.PRODNO prodno
1749
+
1740
1750
  if sequence
1741
1751
  xml.SALECD("A") # these products are always active!
1742
1752
  name_de = "#{sequence[:name_de]} #{sequence[:desc_de]}".strip if sequence[:name_de]
@@ -1746,9 +1756,10 @@ module Oddb2xml
1746
1756
  sequence[:desc_de]
1747
1757
  end
1748
1758
  name_fr = "#{sequence[:name_fr]} #{sequence[:desc_fr]}".strip if sequence[:name_fr]
1749
- name_fr ||= (ppac && ppac[:sequence_name])
1759
+ name_it = "#{sequence[:name_it]} #{sequence[:desc_it]}".strip if sequence[:name_it]
1750
1760
  override(xml, prodno, :DSCR, name_de.strip)
1751
- override(xml, prodno, :DSCRF, name_fr.strip)
1761
+ override(xml, prodno, :DSCRF, name_fr.strip) if name_fr && !name_fr.empty?
1762
+ override(xml, prodno, :DSCRI, name_it.strip) if name_it && !name_it.empty?
1752
1763
  # use overriden ATC if possibel
1753
1764
  atc = sequence[:atc] || sequence[:atc_code]
1754
1765
  xml.ATC atc if atc && !atc.empty?
@@ -1762,7 +1773,6 @@ module Oddb2xml
1762
1773
  xml.comment "Chapter70 hack prodno #{prodno} #{obj[:description].encode(xml: :text).gsub("--", "-")}"
1763
1774
  xml.SALECD("A") # these products are always active!
1764
1775
  xml.DSCR obj[:description]
1765
- xml.DSCRF ""
1766
1776
  if @limitations.index(obj[:code])
1767
1777
  xml.LIMNAMEBAG obj[:code]
1768
1778
  used_limitations << obj[:code]
@@ -1794,7 +1804,8 @@ module Oddb2xml
1794
1804
  xml.comment "Chapter70 2 hack" if lim[:chap70]
1795
1805
  xml.LIMNAMEBAG lim[:code] # original LIMCD
1796
1806
  xml.DSCR Oddb2xml.html_decode(lim[:desc_de])
1797
- xml.DSCRF Oddb2xml.html_decode(lim[:desc_fr])
1807
+ xml.DSCRF Oddb2xml.html_decode(lim[:desc_fr]) if lim[:desc_fr]
1808
+ xml.DSCRI Oddb2xml.html_decode(lim[:desc_it]) if lim[:desc_it]
1798
1809
  xml.LIMITATION_PTS(lim[:value].to_s.length > 1 ? lim[:value] : 1)
1799
1810
  end
1800
1811
  end
@@ -51,14 +51,17 @@ module Oddb2xml
51
51
  item[:product_key] = seq.ProductCommercial
52
52
  item[:desc_de] = (desc = seq.DescriptionDe) ? desc : ""
53
53
  item[:desc_fr] = (desc = seq.DescriptionFr) ? desc : ""
54
+ item[:desc_it] = (desc = seq.DescriptionIt) ? desc : ""
54
55
  item[:name_de] = (name = seq.NameDe) ? name : ""
55
56
  item[:name_fr] = (name = seq.NameFr) ? name : ""
57
+ item[:name_it] = (name = seq.NameIt) ? name : ""
56
58
  item[:swissmedic_number5] = (num5 = seq.SwissmedicNo5) ? num5.rjust(5, "0") : ""
57
59
  item[:org_gen_code] = (orgc = seq.OrgGenCode) ? orgc : ""
58
60
  item[:deductible] = (ddbl = seq.FlagSB20) ? ddbl : ""
59
61
  item[:atc_code] = (atcc = seq.AtcCode) ? atcc : ""
60
62
  item[:comment_de] = (info = seq.CommentDe) ? info : ""
61
63
  item[:comment_fr] = (info = seq.CommentFr) ? info : ""
64
+ item[:comment_it] = (info = seq.CommentIt) ? info : ""
62
65
  item[:it_code] = ""
63
66
  seq.ItCodes.ItCode.each do |itc|
64
67
  if item[:it_code].to_s.empty?
@@ -111,8 +114,10 @@ module Oddb2xml
111
114
  ean13: ean13,
112
115
  name_de: (desc = seq.NameDe) ? desc : "",
113
116
  name_fr: (desc = seq.NameFr) ? desc : "",
117
+ name_it: (desc = seq.NameIt) ? desc : "",
114
118
  desc_de: (desc = pac.DescriptionDe) ? desc : "",
115
119
  desc_fr: (desc = pac.DescriptionFr) ? desc : "",
120
+ desc_it: (desc = pac.DescriptionIt) ? desc : "",
116
121
  sl_entry: true,
117
122
  swissmedic_category: (cat = pac.SwissmedicCategory) ? cat : "",
118
123
  swissmedic_number8: (num = pac.SwissmedicNo8) ? num : "",
@@ -161,6 +166,7 @@ module Oddb2xml
161
166
  niv: (niv = lim.LimitationNiveau) ? niv : "",
162
167
  desc_de: (dsc = lim.DescriptionDe) ? dsc : "",
163
168
  desc_fr: (dsc = lim.DescriptionFr) ? dsc : "",
169
+ desc_it: (dsc = lim.DescriptionIt) ? dsc : "",
164
170
  vdate: (dat = lim.ValidFromDate) ? dat : ""
165
171
  }
166
172
  deleted = false
@@ -223,6 +229,7 @@ module Oddb2xml
223
229
  item[:last_change] = (date = Time.parse(pac.DT).to_s) ? date : "" # Date and time of last data change
224
230
  item[:desc_de] = (dscr = pac.NAME_DE) ? dscr : ""
225
231
  item[:desc_fr] = (dscr = pac.NAME_FR) ? dscr : ""
232
+ item[:desc_it] = item[:desc_de] # refdata has no italian name
226
233
  item[:atc_code] = (code = pac.ATC) ? code.to_s : ""
227
234
  item[:company_name] = (nam = pac.AUTH_HOLDER_NAME) ? nam : ""
228
235
  item[:company_ean] = (gln = pac.AUTH_HOLDER_GLN) ? gln : ""
@@ -368,6 +375,7 @@ module Oddb2xml
368
375
  company_ean: row[7],
369
376
  data_origin: "migel"
370
377
  }
378
+ data
371
379
  end
372
380
  data
373
381
  end
@@ -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.7"
2
+ VERSION = "2.7.9"
3
3
  end
data/shell.nix CHANGED
@@ -4,7 +4,9 @@ with import <nixpkgs> {};
4
4
  stdenv.mkDerivation {
5
5
  name = "env";
6
6
  buildInputs = [
7
- ruby_3_0.devEnv
7
+ ruby_3_1
8
+ rubyPackages_3_0.safe_yaml
9
+ ruby_3_1.devEnv
8
10
  git
9
11
  python
10
12
  libpcap
@@ -11,8 +11,8 @@ 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
15
  end
15
- # binding.irb unless @inhalt.index(expected_value)
16
16
  expect(@inhalt.index(expected_value)).not_to be nil
17
17
  end
18
18
 
@@ -67,6 +67,7 @@ describe Oddb2xml::Builder do
67
67
  <SALECD>A</SALECD>
68
68
  <DSCR>3M MEDIPORE+PAD Absorbtionsverb 10x15cm 8 x 25 Stk</DSCR>
69
69
  <DSCRF>3M MEDIPORE+PAD compr absorb 10x15cm 8 x 25 pce</DSCRF>
70
+ <DSCRI>3M MEDIPORE+PAD Absorbtionsverb 10x15cm 8 x 25 Stk</DSCRI>
70
71
  <COMP>
71
72
  <GLN>7610182000007</GLN>
72
73
  </COMP>
@@ -79,7 +80,6 @@ describe Oddb2xml::Builder do
79
80
  <PRODNO>5815801</PRODNO>
80
81
  <SALECD>A</SALECD>
81
82
  <DSCR>PRIORIX TETRA Trockensub c Solv Fertspr</DSCR>
82
- <DSCRF>Priorix-Tetra, Pulver und Lösungsmittel zur Herstellung einer Injektionslösung</DSCRF>
83
83
  <ATC>J07BD54</ATC>
84
84
  </PRODUCT>)
85
85
  expect(@inhalt.index(expected)).not_to be nil
@@ -118,7 +118,6 @@ describe Oddb2xml::Builder do
118
118
  <PRODNO>5559401</PRODNO>
119
119
  <SALECD>A</SALECD>
120
120
  <DSCR>Nutriflex Lipid plus, Infusionsemulsion, 1250ml</DSCR>
121
- <DSCRF/>
122
121
  <ATC>B05BA10</ATC>
123
122
  </PRODUCT>)
124
123
  expect(@inhalt.index(expected)).not_to be nil
@@ -200,6 +199,7 @@ describe Oddb2xml::Builder do
200
199
  <SALECD>A</SALECD>
201
200
  <DSCR>Dibase 10'000 Tropfen 10000 IE/ml Fl 10 ml</DSCR>
202
201
  <DSCRF>Dibase 10'000 gouttes 10000 UI/ml fl 10 ml</DSCRF>
202
+ <DSCRI>Dibase 10'000 gouttes 10000 UI/ml fl 10 ml</DSCRI>
203
203
  <COMP>
204
204
  <NAME>Gebro Pharma AG</NAME>
205
205
  <GLN>7612053000000</GLN>
@@ -208,7 +208,6 @@ describe Oddb2xml::Builder do
208
208
  <PPUB>9.25</PPUB>
209
209
  <PKG_SIZE>1</PKG_SIZE>
210
210
  <MEASURE>Flasche(n)</MEASURE>
211
- <MEASUREF>Flasche(n)</MEASUREF>
212
211
  <DOSAGE_FORM>orale Tropflösung</DOSAGE_FORM>
213
212
  <SL_ENTRY>true</SL_ENTRY>
214
213
  <IKSCAT>D</IKSCAT>
@@ -232,6 +231,7 @@ describe Oddb2xml::Builder do
232
231
  <SALECD>A</SALECD>
233
232
  <DSCR>Carbaderm Creme Tb 300 ml</DSCR>
234
233
  <DSCRF>Carbaderm crème tb 300 ml</DSCRF>
234
+ <DSCRI>Carbaderm crème tb 300 ml</DSCRI>
235
235
  <PEXF>14.61</PEXF>
236
236
  <PPUB>26.95</PPUB>
237
237
  <SL_ENTRY>true</SL_ENTRY>
@@ -244,7 +244,6 @@ describe Oddb2xml::Builder do
244
244
  <PHAR>0055805</PHAR>
245
245
  <SALECD>A</SALECD>
246
246
  <DSCR>TENSOPLAST Kompressionsbinde 5cmx4.5m</DSCR>
247
- <DSCRF>--missing--</DSCRF>
248
247
  <PEXF>0.00</PEXF>
249
248
  <PPUB>22.95</PPUB>
250
249
  </ITEM>),
@@ -253,6 +252,7 @@ describe Oddb2xml::Builder do
253
252
  <SALECD>A</SALECD>
254
253
  <DSCR>LANSOYL Gel 225 g</DSCR>
255
254
  <DSCRF>LANSOYL gel 225 g</DSCRF>
255
+ <DSCRI>LANSOYL Gel 225 g</DSCRI>
256
256
  <COMP>
257
257
  <NAME>Actipharm SA</NAME>
258
258
  <GLN>7601001002012</GLN>
@@ -261,7 +261,6 @@ describe Oddb2xml::Builder do
261
261
  <PPUB>16.25</PPUB>
262
262
  <PKG_SIZE>225</PKG_SIZE>
263
263
  <MEASURE>g</MEASURE>
264
- <MEASUREF>g</MEASUREF>
265
264
  <DOSAGE_FORM>Gelée</DOSAGE_FORM>
266
265
  <IKSCAT>D</IKSCAT>
267
266
  <LPPV>true</LPPV>
@@ -273,6 +272,7 @@ describe Oddb2xml::Builder do
273
272
  <SALECD>A</SALECD>
274
273
  <DSCR>3TC Filmtabl 150 mg 60 Stk</DSCR>
275
274
  <DSCRF>3TC cpr pell 150 mg 60 pce</DSCRF>
275
+ <DSCRI>3TC cpr pell 150 mg 60 pce</DSCRI>
276
276
  <COMP>
277
277
  <NAME>ViiV Healthcare GmbH</NAME>
278
278
  <GLN>7601001392175</GLN>
@@ -281,7 +281,6 @@ describe Oddb2xml::Builder do
281
281
  <PPUB>205.3</PPUB>
282
282
  <PKG_SIZE>60</PKG_SIZE>
283
283
  <MEASURE>Tablette(n)</MEASURE>
284
- <MEASUREF>Tablette(n)</MEASUREF>
285
284
  <DOSAGE_FORM>Filmtabletten</DOSAGE_FORM>
286
285
  <DOSAGE_FORMF>Comprimés filmés</DOSAGE_FORMF>
287
286
  <SL_ENTRY>true</SL_ENTRY>
@@ -296,6 +295,7 @@ describe Oddb2xml::Builder do
296
295
  <SALECD>A</SALECD>
297
296
  <DSCR>Hirudoid Creme 3 mg/g 40 g</DSCR>
298
297
  <DSCRF>Hirudoid crème 3 mg/g 40 g</DSCRF>
298
+ <DSCRI>Hirudoid crema 3 mg/g 40 g</DSCRI>
299
299
  <COMP>
300
300
  <NAME>Medinova AG</NAME>
301
301
  <GLN>7601001002258</GLN>
@@ -304,7 +304,6 @@ describe Oddb2xml::Builder do
304
304
  <PPUB>8.8</PPUB>
305
305
  <PKG_SIZE>40</PKG_SIZE>
306
306
  <MEASURE>g</MEASURE>
307
- <MEASUREF>g</MEASUREF>
308
307
  <DOSAGE_FORM>Creme</DOSAGE_FORM>
309
308
  <SL_ENTRY>true</SL_ENTRY>
310
309
  <IKSCAT>D</IKSCAT>
@@ -317,6 +316,7 @@ describe Oddb2xml::Builder do
317
316
  <SALECD>A</SALECD>
318
317
  <DSCR>Hirudoid Creme 3 mg/g 100 g</DSCR>
319
318
  <DSCRF>Hirudoid crème 3 mg/g 100 g</DSCRF>
319
+ <DSCRI>Hirudoid crema 3 mg/g 100 g</DSCRI>
320
320
  <COMP>
321
321
  <NAME>Medinova AG</NAME>
322
322
  <GLN>7601001002258</GLN>
@@ -332,6 +332,7 @@ describe Oddb2xml::Builder do
332
332
  <SALECD>A</SALECD>
333
333
  <DSCR>ANCOPIR Inj Lös 5 Amp 2 ml</DSCR>
334
334
  <DSCRF>Ancopir, sol inj</DSCRF>
335
+ <DSCRI>Ancopir, sol inj</DSCRI>
335
336
  <COMP>
336
337
  <NAME>Dr. Grossmann AG, Pharmaca</NAME>
337
338
  <GLN/>
@@ -340,7 +341,6 @@ describe Oddb2xml::Builder do
340
341
  <PPUB>8.55</PPUB>
341
342
  <PKG_SIZE>5</PKG_SIZE>
342
343
  <MEASURE>Ampulle(n)</MEASURE>
343
- <MEASUREF>Ampulle(n)</MEASUREF>
344
344
  <DOSAGE_FORM>Injektionslösung</DOSAGE_FORM>
345
345
  <DOSAGE_FORMF>Solution injectable</DOSAGE_FORMF>
346
346
  <SL_ENTRY>true</SL_ENTRY>
@@ -353,6 +353,7 @@ describe Oddb2xml::Builder do
353
353
  <SALECD>A</SALECD>
354
354
  <DSCR>FERRO-GRADUMET Depottabl 30 Stk</DSCR>
355
355
  <DSCRF>FERRO-GRADUMET cpr dépôt 30 pce</DSCRF>
356
+ <DSCRI>FERRO-GRADUMET Depottabl 30 Stk</DSCRI>
356
357
  <COMP>
357
358
  <NAME>Farmaceutica Teofarma Suisse SA</NAME>
358
359
  <GLN>7601001374539</GLN>
@@ -361,7 +362,6 @@ describe Oddb2xml::Builder do
361
362
  <PPUB>13.80</PPUB>
362
363
  <PKG_SIZE>30</PKG_SIZE>
363
364
  <MEASURE>Tablette(n)</MEASURE>
364
- <MEASUREF>Tablette(n)</MEASUREF>
365
365
  <DOSAGE_FORM>Tupfer</DOSAGE_FORM>
366
366
  <DOSAGE_FORMF>Compresse</DOSAGE_FORMF>
367
367
  <IKSCAT>C</IKSCAT>
@@ -372,6 +372,7 @@ describe Oddb2xml::Builder do
372
372
  <SALECD>A</SALECD>
373
373
  <DSCR>3TC Filmtabl 150 mg</DSCR>
374
374
  <DSCRF>3TC cpr pell 150 mg</DSCRF>
375
+ <DSCRI>3TC cpr pell 150 mg</DSCRI>
375
376
  <ATC>J05AF05</ATC>
376
377
  <SUBSTANCE>Lamivudinum</SUBSTANCE>
377
378
  </PRODUCT>),
@@ -380,13 +381,13 @@ describe Oddb2xml::Builder do
380
381
  <SALECD>A</SALECD>
381
382
  <DSCR>SEROCYTOL Herz-Gefässe Supp 3 Stk</DSCR>
382
383
  <DSCRF>SEROCYTOL Coeur-Vaisseaux supp 3 pce</DSCRF>
384
+ <DSCRI>SEROCYTOL Herz-Gefässe Supp 3 Stk</DSCRI>
383
385
  <COMP>
384
386
  <NAME>Serolab SA (succursale de Remaufens)</NAME>
385
387
  <GLN>7640128710004</GLN>
386
388
  </COMP>
387
389
  <PKG_SIZE>3</PKG_SIZE>
388
390
  <MEASURE>Suppositorien</MEASURE>
389
- <MEASUREF>Suppositorien</MEASUREF>
390
391
  <DOSAGE_FORM>suppositoire</DOSAGE_FORM>
391
392
  <IKSCAT>B</IKSCAT>
392
393
  <PRODNO>0027701</PRODNO>
@@ -396,6 +397,7 @@ describe Oddb2xml::Builder do
396
397
  <SALECD>A</SALECD>
397
398
  <DSCR>Humalog Inj Lös Durchstf 10 ml</DSCR>
398
399
  <DSCRF>Humalog sol inj flac 10 ml</DSCRF>
400
+ <DSCRI>Humalog sol iniez fiala 10 ml</DSCRI>
399
401
  <COMP>
400
402
  <NAME>Eli Lilly (Suisse) SA</NAME>
401
403
  <GLN>7601001261853</GLN>
@@ -404,7 +406,6 @@ describe Oddb2xml::Builder do
404
406
  <PPUB>51.3</PPUB>
405
407
  <PKG_SIZE>1</PKG_SIZE>
406
408
  <MEASURE>Flasche(n)</MEASURE>
407
- <MEASUREF>Flasche(n)</MEASUREF>
408
409
  <DOSAGE_FORM>Injektionslösung</DOSAGE_FORM>
409
410
  <DOSAGE_FORMF>Solution injectable</DOSAGE_FORMF>
410
411
  <SL_ENTRY>true</SL_ENTRY>
@@ -418,6 +419,7 @@ describe Oddb2xml::Builder do
418
419
  <SALECD>I</SALECD>
419
420
  <DSCR>SEROCYTOL Kolon Supp 3 Stk</DSCR>
420
421
  <DSCRF>SEROCYTOL Côlon supp 3 pce</DSCRF>
422
+ <DSCRI>SEROCYTOL Kolon Supp 3 Stk</DSCRI>
421
423
  <COMP>
422
424
  <GLN>7640128710004</GLN>
423
425
  </COMP>
@@ -429,6 +431,7 @@ describe Oddb2xml::Builder do
429
431
  <SALECD>A</SALECD>
430
432
  <DSCR>Varilrix Trockensub c solv</DSCR>
431
433
  <DSCRF>Varilrix subst sèche c solv</DSCRF>
434
+ <DSCRI>Varilrix sost secca c solv</DSCRI>
432
435
  <ATC>J07BK01</ATC>
433
436
  <LIMNAMEBAG>0808</LIMNAMEBAG>
434
437
  <SUBSTANCE>Vaccinum virus varicellae vivus attenuat. (Stamm OKA)</SUBSTANCE>
@@ -438,6 +441,7 @@ describe Oddb2xml::Builder do
438
441
  <SALECD>A</SALECD>
439
442
  <DSCR>Varilrix Trockensub c solv Fertspr 0.500 ml</DSCR>
440
443
  <DSCRF>Varilrix subst sèche c solv ser prê 0.500 ml</DSCRF>
444
+ <DSCRI>Varilrix sost secca c solv sir preriempita 0.500 ml</DSCRI>
441
445
  <COMP>
442
446
  <NAME>GlaxoSmithKline AG</NAME>
443
447
  <GLN>7601001000674</GLN>
@@ -454,14 +458,12 @@ describe Oddb2xml::Builder do
454
458
  <!--Chapter70 hack prodno 2069639 Ceres Urtinkturen gemäss L2 mit - im Kommentar-->
455
459
  <SALECD>A</SALECD>
456
460
  <DSCR>Ceres Urtinkturen gemäss L2 mit -- im Kommentar</DSCR>
457
- <DSCRF/>
458
461
  </PRODUCT>),
459
462
  "Chapter 70 item" => %(<ITEM PHARMATYPE="P">
460
463
  <GTIN>2500000588532</GTIN>
461
464
  <PHAR>2069639</PHAR>
462
465
  <SALECD>A</SALECD>
463
466
  <DSCR>EINF ARZNEI Ceres Urtinktur spez 20ml</DSCR>
464
- <DSCRF>--missing--</DSCRF>
465
467
  <PEXF>23.44</PEXF>
466
468
  <PPUB>31.30</PPUB>
467
469
  <!--Chapter70 hack 2500000588532 EINF ARZNEI Ceres Urtinktur spez 20ml-->
@@ -480,7 +482,6 @@ Der behandelnde Arzt ist verpflichtet, die erforderlichen Daten laufend im vorge
480
482
  <PRODNO>1336901</PRODNO>
481
483
  <SALECD>A</SALECD>
482
484
  <DSCR>Pethidin HCl Amino 100 mg/2 ml, Injektionslösung</DSCR>
483
- <DSCRF/>
484
485
  <ATC>N02AB02</ATC>
485
486
  </PRODUCT>)}
486
487
 
@@ -72,6 +72,7 @@ describe Oddb2xml::RefdataExtractor do
72
72
  no8: "62069008",
73
73
  desc_de: "LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk",
74
74
  desc_fr: "LEVETIRACETAM DESITIN mini cpr pel 250 mg 30 pce",
75
+ desc_it: "LEVETIRACETAM DESITIN Mini Filmtab 250 mg 30 Stk",
75
76
  atc_code: "N03AX14",
76
77
  last_change: "2017-12-08 00:00:00 +0000",
77
78
  company_name: "Desitin Pharma GmbH",
@@ -98,6 +99,7 @@ describe Oddb2xml::RefdataExtractor do
98
99
  data_origin: "refdata",
99
100
  desc_de: "TUBEGAZE Verband weiss Nr 12 20m Finger gross",
100
101
  desc_fr: "TUBEGAZE pans tubul blanc Nr 12 20m doigts grands",
102
+ desc_it: "TUBEGAZE Verband weiss Nr 12 20m Finger gross",
101
103
  atc_code: "",
102
104
  company_name: "IVF HARTMANN AG",
103
105
  company_ean: "7601001000896"}
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.7
4
+ version: 2.7.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger