oddb2xml 2.7.7 → 2.7.8
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 +4 -4
- data/Elexis_Artikelstamm_v5.xsd +19 -4
- data/History.txt +3 -0
- data/lib/oddb2xml/builder.rb +31 -14
- data/lib/oddb2xml/extractor.rb +8 -0
- data/lib/oddb2xml/version.rb +1 -1
- data/oddb2xml.xsd +27 -3
- data/shell.nix +2 -0
- data/spec/artikelstamm_spec.rb +16 -15
- data/spec/builder_spec.rb +8 -7
- data/spec/extractor_spec.rb +2 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23dea260483ed3a99e62764331bf43924c5f095855e06c13b76d6d37e5f8d13a
|
4
|
+
data.tar.gz: ae24f986d8853676f62e41d2de071bece17540c5237d418ba14662708baf9057
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c5b46f3ba07e2ee63e9021b0e7cef091f2c98daca82a724a15c3819ca9e91f6504a2ff0e61ba4bbd03621cd4fcffe95d4b1596af1354e841cb9c35de818ce8fd
|
7
|
+
data.tar.gz: b76c38273ec98bae15054df8b685025a569c947d16e487daf6d393efeca0592cc506b24618776db7ee7a5b09f4d3bccc47db3ef576da446470b02d996838fee8
|
data/Elexis_Artikelstamm_v5.xsd
CHANGED
@@ -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="
|
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="
|
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="
|
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="
|
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
data/lib/oddb2xml/builder.rb
CHANGED
@@ -378,6 +378,7 @@ 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]
|
381
382
|
xml.VDAT lim[:vdate]
|
382
383
|
nbr_records += 1
|
383
384
|
end
|
@@ -535,7 +536,9 @@ module Oddb2xml
|
|
535
536
|
if lang == :de
|
536
537
|
name = refdata && refdata[:desc_de] ? refdata[:desc_de] : obj[:sequence_name]
|
537
538
|
elsif lang == :fr
|
538
|
-
name =
|
539
|
+
name = refdata[:desc_fr] if refdata && refdata[:desc_fr]
|
540
|
+
elsif lang == :it
|
541
|
+
name = refdata[:desc_it] if refdata && refdata[:desc_it]
|
539
542
|
else
|
540
543
|
return false
|
541
544
|
end
|
@@ -557,7 +560,7 @@ module Oddb2xml
|
|
557
560
|
@missing.each do |obj|
|
558
561
|
ean = obj[:ean13]
|
559
562
|
next unless check_name(obj, :de)
|
560
|
-
next unless check_name(obj, :fr)
|
563
|
+
# next unless check_name(obj, :fr)
|
561
564
|
next if /^Q/i.match?(obj[:atc])
|
562
565
|
if obj[:prodno]
|
563
566
|
next if emitted.index(obj[:prodno])
|
@@ -568,7 +571,10 @@ module Oddb2xml
|
|
568
571
|
xml.GTIN ean
|
569
572
|
xml.PRODNO obj[:prodno] if obj[:prodno]
|
570
573
|
xml.DSCRD check_name(obj, :de)
|
571
|
-
xml.DSCRF check_name(obj, :fr)
|
574
|
+
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)
|
572
578
|
xml.ATC obj[:atc_code] unless obj[:atc_code].empty?
|
573
579
|
xml.IT obj[:ith_swissmedic] if obj[:ith_swissmedic]
|
574
580
|
xml.CPT
|
@@ -592,6 +598,7 @@ module Oddb2xml
|
|
592
598
|
xml.PRODNO ppac[:prodno] if ppac[:prodno] && !ppac[:prodno].empty?
|
593
599
|
xml.DSCRD check_name(obj, :de)
|
594
600
|
xml.DSCRF check_name(obj, :fr)
|
601
|
+
xml.DSCRI check_name(obj, :it)
|
595
602
|
# xml.BNAMD
|
596
603
|
# xml.BNAMF
|
597
604
|
# xml.ADNAMD
|
@@ -945,10 +952,10 @@ module Oddb2xml
|
|
945
952
|
end
|
946
953
|
xml.DSCRD obj[:desc_de] if obj[:desc_de] && !obj[:desc_de].empty?
|
947
954
|
xml.DSCRF obj[:desc_fr] if obj[:desc_fr] && !obj[:desc_fr].empty?
|
948
|
-
xml.
|
955
|
+
xml.DSCRI obj[:desc_it] if obj[:desc_it] && !obj[:desc_it].empty?
|
949
956
|
xml.SORTD obj[:desc_de].upcase if obj[:desc_de] && !obj[:desc_de].empty?
|
950
957
|
xml.SORTF obj[:desc_fr].upcase if obj[:desc_fr] && !obj[:desc_fr].empty?
|
951
|
-
xml.
|
958
|
+
xml.SORTI obj[:desc_it].upcase if obj[:desc_it] && !obj[:desc_it].empty?
|
952
959
|
# xml.QTYUD
|
953
960
|
# xml.QTYUF
|
954
961
|
# xml.IMG
|
@@ -959,6 +966,7 @@ module Oddb2xml
|
|
959
966
|
if obj[:seq]
|
960
967
|
xml.SYN1D obj[:seq][:name_de] unless obj[:seq][:name_de].empty?
|
961
968
|
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?
|
962
970
|
end
|
963
971
|
if obj[:seq]
|
964
972
|
case obj[:seq][:deductible]
|
@@ -1512,15 +1520,21 @@ module Oddb2xml
|
|
1512
1520
|
xml.GTIN pkg_gtin.to_s.rjust(13, "0")
|
1513
1521
|
xml.SALECD("A")
|
1514
1522
|
# maxLength for DSCR is 50 for Artikelstamm v3
|
1515
|
-
xml.DSCR(name) # for
|
1523
|
+
xml.DSCR(name) # for g for zur_rose
|
1516
1524
|
name_fr = item[:name_fr] + " " + item[:desc_fr].strip + " " + package[:desc_fr] if package && package[:desc_fr]
|
1517
1525
|
name_fr ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_fr] : nil
|
1518
1526
|
# Zugelassenen Packungen has only german names
|
1519
1527
|
name_fr ||= (obj[:name_fr] + ", " + obj[:desc_fr]).strip if obj[:name_fr]
|
1520
1528
|
# ZuRorse has only german names
|
1521
1529
|
name_fr ||= (item[:name_fr] + ", " + item[:desc_fr]) if item
|
1522
|
-
name_fr
|
1523
|
-
|
1530
|
+
xml.DSCRF(name_fr) if name_fr
|
1531
|
+
name_it = item[:name_it] + " " + item[:desc_it].strip + " " + package[:desc_it] if package && package[:desc_it]
|
1532
|
+
name_it ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_it] : nil
|
1533
|
+
# Zugelassenen Packungen has only german names
|
1534
|
+
name_it ||= (obj[:name_it] + ", " + obj[:desc_it]).strip if obj[:name_it]
|
1535
|
+
# ZuRorse has only german names
|
1536
|
+
name_it ||= (item[:name_it] + ", " + item[:desc_it]) if item
|
1537
|
+
xml.DSCRI(name_it) if name_it
|
1524
1538
|
if obj[:company_name] || obj[:company_ean]
|
1525
1539
|
xml.COMP do # Manufacturer
|
1526
1540
|
xml.NAME obj[:company_name][0..99] # limit to 100 chars as in XSD
|
@@ -1562,10 +1576,10 @@ module Oddb2xml
|
|
1562
1576
|
measure = info.pkg_size
|
1563
1577
|
end
|
1564
1578
|
xml.MEASURE measure
|
1565
|
-
xml.MEASUREF measure
|
1566
1579
|
# Die Darreichungsform dieses Items. zB Tablette(n) oder Spritze(n)
|
1567
1580
|
xml.DOSAGE_FORM info.galenic_form.descriptions["de"] if info.galenic_form.descriptions["de"]
|
1568
1581
|
xml.DOSAGE_FORMF info.galenic_form.descriptions["fr"] if info.galenic_form.descriptions["fr"]
|
1582
|
+
xml.DOSAGE_FORMI info.galenic_form.descriptions["it"] if info.galenic_form.descriptions["it"]
|
1569
1583
|
end
|
1570
1584
|
xml.SL_ENTRY "true" if sl_gtins.index(pkg_gtin)
|
1571
1585
|
xml.IKSCAT package[:swissmedic_category][0] if package[:swissmedic_category] && package[:swissmedic_category].length > 0
|
@@ -1633,7 +1647,8 @@ module Oddb2xml
|
|
1633
1647
|
emit_salecd(xml, ean13, obj)
|
1634
1648
|
description = obj[:desc_de] || obj[:description] # for description for zur_rose
|
1635
1649
|
xml.DSCR(description)
|
1636
|
-
xml.DSCRF(obj[:desc_fr]
|
1650
|
+
xml.DSCRF(obj[:desc_fr]) if obj[:desc_fr] && !obj[:desc_fr].empty?
|
1651
|
+
xml.DSCRI(obj[:desc_it]) if obj[:desc_it] && !obj[:desc_it].empty?
|
1637
1652
|
if obj[:company_ean] && !obj[:company_ean].empty?
|
1638
1653
|
xml.COMP do
|
1639
1654
|
xml.GLN obj[:company_ean]
|
@@ -1737,6 +1752,7 @@ module Oddb2xml
|
|
1737
1752
|
nr_products += 1
|
1738
1753
|
xml.PRODUCT do
|
1739
1754
|
xml.PRODNO prodno
|
1755
|
+
|
1740
1756
|
if sequence
|
1741
1757
|
xml.SALECD("A") # these products are always active!
|
1742
1758
|
name_de = "#{sequence[:name_de]} #{sequence[:desc_de]}".strip if sequence[:name_de]
|
@@ -1746,9 +1762,10 @@ module Oddb2xml
|
|
1746
1762
|
sequence[:desc_de]
|
1747
1763
|
end
|
1748
1764
|
name_fr = "#{sequence[:name_fr]} #{sequence[:desc_fr]}".strip if sequence[:name_fr]
|
1749
|
-
|
1765
|
+
name_it = "#{sequence[:name_it]} #{sequence[:desc_it]}".strip if sequence[:name_it]
|
1750
1766
|
override(xml, prodno, :DSCR, name_de.strip)
|
1751
|
-
override(xml, prodno, :DSCRF, name_fr.strip)
|
1767
|
+
override(xml, prodno, :DSCRF, name_fr.strip) if name_fr && !name_fr.empty?
|
1768
|
+
override(xml, prodno, :DSCRI, name_it.strip) if name_it && !name_it.empty?
|
1752
1769
|
# use overriden ATC if possibel
|
1753
1770
|
atc = sequence[:atc] || sequence[:atc_code]
|
1754
1771
|
xml.ATC atc if atc && !atc.empty?
|
@@ -1762,7 +1779,6 @@ module Oddb2xml
|
|
1762
1779
|
xml.comment "Chapter70 hack prodno #{prodno} #{obj[:description].encode(xml: :text).gsub("--", "-")}"
|
1763
1780
|
xml.SALECD("A") # these products are always active!
|
1764
1781
|
xml.DSCR obj[:description]
|
1765
|
-
xml.DSCRF ""
|
1766
1782
|
if @limitations.index(obj[:code])
|
1767
1783
|
xml.LIMNAMEBAG obj[:code]
|
1768
1784
|
used_limitations << obj[:code]
|
@@ -1794,7 +1810,8 @@ module Oddb2xml
|
|
1794
1810
|
xml.comment "Chapter70 2 hack" if lim[:chap70]
|
1795
1811
|
xml.LIMNAMEBAG lim[:code] # original LIMCD
|
1796
1812
|
xml.DSCR Oddb2xml.html_decode(lim[:desc_de])
|
1797
|
-
xml.DSCRF Oddb2xml.html_decode(lim[:desc_fr])
|
1813
|
+
xml.DSCRF Oddb2xml.html_decode(lim[:desc_fr]) if lim[:desc_fr]
|
1814
|
+
xml.DSCRI Oddb2xml.html_decode(lim[:desc_it]) if lim[:desc_it]
|
1798
1815
|
xml.LIMITATION_PTS(lim[:value].to_s.length > 1 ? lim[:value] : 1)
|
1799
1816
|
end
|
1800
1817
|
end
|
data/lib/oddb2xml/extractor.rb
CHANGED
@@ -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
|
data/lib/oddb2xml/version.rb
CHANGED
data/oddb2xml.xsd
CHANGED
@@ -48,6 +48,7 @@
|
|
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)
|
51
52
|
* GTIN
|
52
53
|
GTIN may be 8, 12, 13 or 14 chars long (https://en.wikipedia.org/wiki/Global_Trade_Item_Number)
|
53
54
|
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
|
@@ -128,6 +129,15 @@
|
|
128
129
|
</xs:simpleType>
|
129
130
|
</xs:element>
|
130
131
|
|
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
|
+
|
131
141
|
<xs:element name="ART">
|
132
142
|
<xs:complexType>
|
133
143
|
<xs:sequence>
|
@@ -157,12 +167,15 @@
|
|
157
167
|
<xs:element ref="ns1:BG"/>
|
158
168
|
</xs:sequence>
|
159
169
|
<xs:element ref="ns1:DSCRD"/>
|
160
|
-
<xs:element ref="ns1:DSCRF"/>
|
170
|
+
<xs:element ref="ns1:DSCRF" minOccurs="0" />
|
171
|
+
<xs:element ref="ns1:DSCRI" minOccurs="0"/>
|
161
172
|
<xs:element ref="ns1:SORTD"/>
|
162
|
-
<xs:element ref="ns1:SORTF"/>
|
173
|
+
<xs:element ref="ns1:SORTF" minOccurs="0"/>
|
174
|
+
<xs:element ref="ns1:SORTI" minOccurs="0"/>
|
163
175
|
<xs:sequence minOccurs="0">
|
164
176
|
<xs:element ref="ns1:SYN1D"/>
|
165
177
|
<xs:element ref="ns1:SYN1F"/>
|
178
|
+
<xs:element ref="ns1:SYN1I"/>
|
166
179
|
<xs:element ref="ns1:SLOPLUS"/>
|
167
180
|
</xs:sequence>
|
168
181
|
<xs:element ref="ns1:ARTCOMP"/>
|
@@ -245,8 +258,10 @@
|
|
245
258
|
</xs:element>
|
246
259
|
<xs:element name="SORTD" type="xs:string"/>
|
247
260
|
<xs:element name="SORTF" type="xs:string"/>
|
261
|
+
<xs:element name="SORTI" type="xs:string"/>
|
248
262
|
<xs:element name="SYN1D" type="xs:string"/>
|
249
263
|
<xs:element name="SYN1F" type="xs:string"/>
|
264
|
+
<xs:element name="SYN1I" type="xs:string"/>
|
250
265
|
<xs:element name="SLOPLUS">
|
251
266
|
<xs:simpleType>
|
252
267
|
<xs:restriction base="xs:byte">
|
@@ -346,8 +361,10 @@
|
|
346
361
|
<xs:element ref="ns1:QTYMD"/>
|
347
362
|
<xs:element ref="ns1:DSCRDMD"/>
|
348
363
|
<xs:element ref="ns1:DSCRFMD"/>
|
364
|
+
<xs:element ref="ns1:DSCRIMD"/>
|
349
365
|
<xs:element ref="ns1:SORTDMD"/>
|
350
366
|
<xs:element ref="ns1:SORTFMD"/>
|
367
|
+
<xs:element ref="ns1:SORTIMD"/>
|
351
368
|
<xs:sequence minOccurs="0">
|
352
369
|
<xs:element ref="ns1:SYN1DMD"/>
|
353
370
|
<xs:element ref="ns1:SYN1FMD"/>
|
@@ -399,8 +416,10 @@
|
|
399
416
|
</xs:element>
|
400
417
|
<xs:element name="SORTDMD" type="xs:string"/>
|
401
418
|
<xs:element name="SORTFMD" type="xs:string"/>
|
419
|
+
<xs:element name="SORTIMD" type="xs:string"/>
|
402
420
|
<xs:element name="SYN1DMD" type="xs:string"/>
|
403
421
|
<xs:element name="SYN1FMD" type="xs:string"/>
|
422
|
+
<xs:element name="SYN1IMD" type="xs:string"/>
|
404
423
|
<xs:element name="SLOPLUSMD">
|
405
424
|
<xs:simpleType>
|
406
425
|
<xs:restriction base="xs:byte">
|
@@ -722,6 +741,7 @@
|
|
722
741
|
<xs:element ref="ns1:LIMNIV"/>
|
723
742
|
<xs:element name="DSCRD" type="xs:string"/>
|
724
743
|
<xs:element name="DSCRF" type="xs:string"/>
|
744
|
+
<xs:element name="DSCRI" type="xs:string"/>
|
725
745
|
<xs:element ref="ns1:VDAT"/>
|
726
746
|
</xs:sequence>
|
727
747
|
<xs:attribute name="DT" use="required"/>
|
@@ -780,6 +800,7 @@
|
|
780
800
|
<xs:element ref="ns1:LIMNIVMD"/>
|
781
801
|
<xs:element name="DSCRDMD" type="xs:string"/>
|
782
802
|
<xs:element name="DSCRFMD" type="xs:string"/>
|
803
|
+
<xs:element name="DSCRIMD" type="xs:string"/>
|
783
804
|
<xs:element ref="ns1:VDATMD"/>
|
784
805
|
</xs:sequence>
|
785
806
|
<xs:attribute name="DT" use="required"/>
|
@@ -844,7 +865,8 @@
|
|
844
865
|
<xs:element minOccurs="0" ref="ns1:PRODNO"/>
|
845
866
|
<xs:sequence minOccurs="0">
|
846
867
|
<xs:element ref="ns1:DSCRD"/>
|
847
|
-
<xs:element ref="ns1:DSCRF"/>
|
868
|
+
<xs:element ref="ns1:DSCRF" minOccurs="0"/>
|
869
|
+
<xs:element ref="ns1:DSCRI" minOccurs="0"/>
|
848
870
|
</xs:sequence>
|
849
871
|
<xs:element minOccurs="0" ref="ns1:ADINFD"/>
|
850
872
|
<xs:element minOccurs="0" ref="ns1:ADINFF"/>
|
@@ -920,6 +942,7 @@
|
|
920
942
|
<xs:sequence minOccurs="0">
|
921
943
|
<xs:element ref="ns1:DSCRDMD"/>
|
922
944
|
<xs:element ref="ns1:DSCRFMD"/>
|
945
|
+
<xs:element ref="ns1:DSCRIMD"/>
|
923
946
|
</xs:sequence>
|
924
947
|
<xs:element minOccurs="0" ref="ns1:ADINFDMD"/>
|
925
948
|
<xs:element minOccurs="0" ref="ns1:ADINFFMD"/>
|
@@ -1088,6 +1111,7 @@
|
|
1088
1111
|
<xs:element name="ITMD" type="xs:string"/>
|
1089
1112
|
<xs:element name="DSCRDMD" type="xs:string"/>
|
1090
1113
|
<xs:element name="DSCRFMD" type="xs:string"/>
|
1114
|
+
<xs:element name="DSCRIMD" type="xs:string"/>
|
1091
1115
|
<xs:element name="VDATMD" type="xs:NMTOKEN"/>
|
1092
1116
|
<xs:element name="RESULTMD">
|
1093
1117
|
<xs:complexType>
|
data/shell.nix
CHANGED
data/spec/artikelstamm_spec.rb
CHANGED
@@ -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
|
|
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,8 +44,10 @@ 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>
|
47
48
|
<SORTD>NAROPIN INJ LÖS 0.2 % 10ML DUOFIT AMP 5 STK</SORTD>
|
48
49
|
<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>
|
49
51
|
<ARTCOMP>
|
50
52
|
<COMPNO>7601001402539</COMPNO>
|
51
53
|
</ARTCOMP>
|
@@ -54,7 +56,8 @@ ARTICLE_NAROPIN = %(<REF_DATA>1</REF_DATA>
|
|
54
56
|
<BC>7680540150118</BC>
|
55
57
|
<BCSTAT>A</BCSTAT>
|
56
58
|
</ARTBAR>
|
57
|
-
</ART>
|
59
|
+
</ART>
|
60
|
+
)
|
58
61
|
|
59
62
|
ARTICLE_COMMON_ELEMENTS = [
|
60
63
|
["ARTICLE/ART/REF_DATA", "1"],
|
@@ -568,11 +571,10 @@ describe Oddb2xml::Builder do
|
|
568
571
|
|
569
572
|
it "should generate ATC for 7680002770014" do
|
570
573
|
oddb_product_xml = IO.read(File.join(Oddb2xml::WORK_DIR, "oddb_product.xml"))
|
571
|
-
text = %(<GTIN>
|
574
|
+
text = %(<GTIN>7680002770021</GTIN>
|
572
575
|
<PRODNO>0027701</PRODNO>
|
573
|
-
<DSCRD>
|
574
|
-
<
|
575
|
-
<ATC>J06AA99</ATC>
|
576
|
+
<DSCRD>Coeur-Vaisseaux Sérocytol, suppositoire</DSCRD>
|
577
|
+
<ATC>J06AA</ATC>
|
576
578
|
<IT>08.07.</IT>
|
577
579
|
<CPT/>)
|
578
580
|
expect(oddb_product_xml.index(text)).to be >= 1
|
@@ -583,7 +585,6 @@ describe Oddb2xml::Builder do
|
|
583
585
|
text2 = %( <GTIN>7680002770021</GTIN>
|
584
586
|
<PRODNO>0027701</PRODNO>
|
585
587
|
<DSCRD>Coeur-Vaisseaux Sérocytol, suppositoire</DSCRD>
|
586
|
-
<DSCRF>Coeur-Vaisseaux Sérocytol, suppositoire</DSCRF>
|
587
588
|
<ATC>J06AA</ATC>
|
588
589
|
<IT>08.07.</IT>
|
589
590
|
<CPT/>)
|
data/spec/extractor_spec.rb
CHANGED
@@ -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"}
|