oddb2xml 2.7.7 → 2.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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