oddb2xml 2.7.9 → 2.8.1
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/.envrc +1 -0
- data/.github/workflows/codeql.yml +41 -0
- data/.github/workflows/ruby.yml +1 -1
- data/.gitignore +0 -0
- data/.rspec +0 -0
- data/.ruby-version +1 -0
- data/.standard.yml +0 -0
- data/Elexis_Artikelstamm_v003.xsd +0 -0
- data/Elexis_Artikelstamm_v5.xsd +4 -4
- data/Gemfile +2 -0
- data/Gemfile.lock +198 -0
- data/LICENSE +0 -0
- data/Manifest.txt +0 -0
- data/QA.md +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/artikelstamm.md +0 -0
- data/data/article_overrides.yaml +0 -0
- data/data/gal_forms.yaml +0 -0
- data/data/gal_groups.yaml +0 -0
- data/data/gtin2ignore.yaml +0 -0
- data/data/product_overrides.yaml +0 -0
- data/dokumentation_calc.textile +0 -0
- data/flake.lock +80 -0
- data/flake.nix +36 -0
- data/gemset.nix +814 -0
- data/lib/oddb2xml/builder.rb +40 -7
- data/lib/oddb2xml/calc.rb +2 -2
- data/lib/oddb2xml/chapter_70_hack.rb +0 -0
- data/lib/oddb2xml/cli.rb +15 -1
- data/lib/oddb2xml/compare.rb +0 -0
- data/lib/oddb2xml/compositions_syntax.rb +0 -0
- data/lib/oddb2xml/compressor.rb +0 -0
- data/lib/oddb2xml/downloader.rb +22 -0
- data/lib/oddb2xml/extractor.rb +30 -0
- data/lib/oddb2xml/options.rb +4 -0
- data/lib/oddb2xml/parslet_compositions.rb +0 -0
- data/lib/oddb2xml/util.rb +0 -0
- data/lib/oddb2xml/version.rb +1 -1
- data/lib/oddb2xml/xml_definitions.rb +0 -0
- data/lib/oddb2xml.rb +0 -0
- data/oddb_calc.xsd +0 -0
- data/spec/artikelstamm_spec.rb +7 -1
- data/spec/calc_spec.rb +0 -0
- data/spec/check_artikelstamm_spec.rb +0 -0
- data/spec/cli_spec.rb +0 -0
- data/spec/compare_spec.rb +0 -0
- data/spec/composition_syntax_spec.rb +0 -0
- data/spec/compressor_spec.rb +0 -0
- data/spec/data/AipsDownload.zip +0 -0
- data/spec/data/Elexis_Artikelstamm_v5.xsd +0 -0
- data/spec/data/GL_Diff_SB.xml +0 -0
- data/spec/data/ItCodes.xml +0 -0
- data/spec/data/PR121001.txt +0 -0
- data/spec/data/PR121002.txt +0 -0
- data/spec/data/Preparations.xml +0 -0
- data/spec/data/Publications.xls +0 -0
- data/spec/data/artikelstamm_N_010917.xml +0 -0
- data/spec/data/artikelstamm_N_011217.xml +0 -0
- data/spec/data/artikelstamm_P_010917.xml +0 -0
- data/spec/data/artikelstamm_P_011217.xml +0 -0
- data/spec/data/atc.csv +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_gtin_non_numeric.xml +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_gtin_not_uniq.xml +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_limitation_exists.xml +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_okay.xml +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_pharma_has_product.xml +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_prodno_not_uniq.xml +0 -0
- data/spec/data/check_artikelstamm/artikelstamm_v5_product_needs_article.xml +0 -0
- data/spec/data/column_c.txt +0 -0
- data/spec/data/compositions.txt +0 -0
- data/spec/data/compressor/oddb2xml_files_bm_update.txt +0 -0
- data/spec/data/compressor/oddb2xml_files_lppv.txt +0 -0
- data/spec/data/compressor/oddb2xml_files_nonpharma.xls +0 -0
- data/spec/data/epha_interactions.csv +0 -0
- data/spec/data/listen_neu.html +0 -0
- data/spec/data/medregbm_betrieb.txt +0 -0
- data/spec/data/medregbm_person.txt +0 -0
- data/spec/data/oddb2xml_files_bm_update.txt +0 -0
- data/spec/data/oddb2xml_files_lppv.txt +0 -0
- data/spec/data/oddb2xml_files_nonpharma.xls +0 -0
- data/spec/data/problems.txt +0 -0
- data/spec/data/refdata_NonPharma.xml +0 -0
- data/spec/data/refdata_Pharma.xml +0 -0
- data/spec/data/swissmedic_fridges.html +0 -0
- data/spec/data/swissmedic_info.html +0 -0
- data/spec/data/swissmedic_info_2.html +0 -0
- data/spec/data/swissmedic_orphan.xlsx +0 -0
- data/spec/data/swissmedic_orphans.html +0 -0
- data/spec/data/swissmedic_package.xlsx +0 -0
- data/spec/data/swissmedic_packages.html +0 -0
- data/spec/data/transfer.dat +0 -0
- data/spec/data/v5_first.xml +0 -0
- data/spec/data/v5_second.xml +0 -0
- data/spec/data/varia_De.htm +0 -0
- data/spec/data/vcr/transfer.dat +0 -0
- data/spec/data/vcr/transfer.zip +0 -0
- data/spec/data/wsdl_nonpharma.xml +0 -0
- data/spec/data/wsdl_pharma.xml +0 -0
- data/spec/fixtures/vcr_cassettes/artikelstamm.json +0 -0
- data/spec/galenic_spec.rb +0 -0
- data/spec/parslet_spec.rb +1 -1
- data/tools/cacert.pem +0 -0
- data/tools/set.bat +0 -0
- data/tools/win_fetch_cacerts.rb +0 -0
- metadata +13 -7
- data/shell.nix +0 -19
data/lib/oddb2xml/builder.rb
CHANGED
|
@@ -42,7 +42,7 @@ module Oddb2xml
|
|
|
42
42
|
@@gtin2ignore ||= []
|
|
43
43
|
attr_accessor :subject, :refdata, :items, :flags, :lppvs,
|
|
44
44
|
:actions, :migel, :orphan,
|
|
45
|
-
:infos, :packs, :infos_zur_rose,
|
|
45
|
+
:infos, :packs, :infos_zur_rose, :firstbase,
|
|
46
46
|
:ean14, :tag_suffix,
|
|
47
47
|
:companies, :people,
|
|
48
48
|
:xsd
|
|
@@ -57,6 +57,7 @@ module Oddb2xml
|
|
|
57
57
|
@packs = {}
|
|
58
58
|
@migel = {}
|
|
59
59
|
@infos_zur_rose ||= {}
|
|
60
|
+
@firstbase ||= {}
|
|
60
61
|
@actions = []
|
|
61
62
|
@orphan = []
|
|
62
63
|
@ean14 = false
|
|
@@ -170,6 +171,23 @@ module Oddb2xml
|
|
|
170
171
|
end
|
|
171
172
|
end
|
|
172
173
|
end
|
|
174
|
+
@firstbase.each do |ean13, obj|
|
|
175
|
+
description = obj[:trade_item_description_de]
|
|
176
|
+
if description.empty?
|
|
177
|
+
description = obj[:trade_item_description_en]
|
|
178
|
+
end
|
|
179
|
+
if (!description.empty? || !obj[:trade_item_description_fr].empty?) && @refdata[obj[:gtin]].nil?
|
|
180
|
+
entry = {
|
|
181
|
+
ean13: obj[:gtin],
|
|
182
|
+
desc_de: description,
|
|
183
|
+
desc_fr: obj[:trade_item_description_fr],
|
|
184
|
+
atc_code: "",
|
|
185
|
+
company_ean: obj[:gln],
|
|
186
|
+
firstbase: true
|
|
187
|
+
}
|
|
188
|
+
@articles << entry
|
|
189
|
+
end
|
|
190
|
+
end
|
|
173
191
|
end
|
|
174
192
|
Oddb2xml.log("prepare_articles done. Added #{nr_added} prices. Total #{@articles.size}")
|
|
175
193
|
end
|
|
@@ -580,6 +598,20 @@ module Oddb2xml
|
|
|
580
598
|
xml.CompositionSwissmedic obj[:composition_swissmedic] if obj[:composition_swissmedic]
|
|
581
599
|
}
|
|
582
600
|
end
|
|
601
|
+
@firstbase.each do |ean13, obj|
|
|
602
|
+
description = obj[:trade_item_description_de]
|
|
603
|
+
if description.empty?
|
|
604
|
+
description = obj[:trade_item_description_en]
|
|
605
|
+
end
|
|
606
|
+
if !description.empty? || !obj[:trade_item_description_fr].empty?
|
|
607
|
+
xml.PRD("DT" => "") {
|
|
608
|
+
xml.GTIN obj[:gtin]
|
|
609
|
+
xml.CPT
|
|
610
|
+
xml.DSCRD description
|
|
611
|
+
xml.DSCRF obj[:trade_item_description_fr]
|
|
612
|
+
}
|
|
613
|
+
end
|
|
614
|
+
end
|
|
583
615
|
@products.sort.to_h.each do |ean13, obj|
|
|
584
616
|
next if /^Q/i.match?(obj[:atc])
|
|
585
617
|
seq = obj[:seq]
|
|
@@ -1514,21 +1546,21 @@ module Oddb2xml
|
|
|
1514
1546
|
xml.GTIN pkg_gtin.to_s.rjust(13, "0")
|
|
1515
1547
|
xml.SALECD("A")
|
|
1516
1548
|
# maxLength for DSCR is 50 for Artikelstamm v3
|
|
1517
|
-
xml.DSCR(name) # for
|
|
1549
|
+
xml.DSCR(name) # for description for zur_rose
|
|
1518
1550
|
name_fr = item[:name_fr] + " " + item[:desc_fr].strip + " " + package[:desc_fr] if package && package[:desc_fr]
|
|
1519
1551
|
name_fr ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_fr] : nil
|
|
1520
1552
|
# Zugelassenen Packungen has only german names
|
|
1521
1553
|
name_fr ||= (obj[:name_fr] + ", " + obj[:desc_fr]).strip if obj[:name_fr]
|
|
1522
1554
|
# ZuRorse has only german names
|
|
1523
1555
|
name_fr ||= (item[:name_fr] + ", " + item[:desc_fr]) if item
|
|
1524
|
-
xml.DSCRF(name_fr)
|
|
1556
|
+
xml.DSCRF(name_fr)
|
|
1525
1557
|
name_it = item[:name_it] + " " + item[:desc_it].strip + " " + package[:desc_it] if package && package[:desc_it]
|
|
1526
1558
|
name_it ||= @refdata[pkg_gtin] ? @refdata[pkg_gtin][:desc_it] : nil
|
|
1527
1559
|
# Zugelassenen Packungen has only german names
|
|
1528
1560
|
name_it ||= (obj[:name_it] + ", " + obj[:desc_it]).strip if obj[:name_it]
|
|
1529
1561
|
# ZuRorse has only german names
|
|
1530
1562
|
name_it ||= (item[:name_it] + ", " + item[:desc_it]) if item
|
|
1531
|
-
xml.DSCRI(name_it)
|
|
1563
|
+
xml.DSCRI(name_it)
|
|
1532
1564
|
if obj[:company_name] || obj[:company_ean]
|
|
1533
1565
|
xml.COMP do # Manufacturer
|
|
1534
1566
|
xml.NAME obj[:company_name][0..99] # limit to 100 chars as in XSD
|
|
@@ -1641,7 +1673,7 @@ module Oddb2xml
|
|
|
1641
1673
|
emit_salecd(xml, ean13, obj)
|
|
1642
1674
|
description = obj[:desc_de] || obj[:description] # for description for zur_rose
|
|
1643
1675
|
xml.DSCR(description)
|
|
1644
|
-
xml.DSCRF(obj[:desc_fr])
|
|
1676
|
+
xml.DSCRF(obj[:desc_fr])
|
|
1645
1677
|
xml.DSCRI(obj[:desc_it]) if obj[:desc_it] && !obj[:desc_it].empty?
|
|
1646
1678
|
if obj[:company_ean] && !obj[:company_ean].empty?
|
|
1647
1679
|
xml.COMP do
|
|
@@ -1746,7 +1778,6 @@ module Oddb2xml
|
|
|
1746
1778
|
nr_products += 1
|
|
1747
1779
|
xml.PRODUCT do
|
|
1748
1780
|
xml.PRODNO prodno
|
|
1749
|
-
|
|
1750
1781
|
if sequence
|
|
1751
1782
|
xml.SALECD("A") # these products are always active!
|
|
1752
1783
|
name_de = "#{sequence[:name_de]} #{sequence[:desc_de]}".strip if sequence[:name_de]
|
|
@@ -1755,10 +1786,11 @@ module Oddb2xml
|
|
|
1755
1786
|
else
|
|
1756
1787
|
sequence[:desc_de]
|
|
1757
1788
|
end
|
|
1789
|
+
name_fr ||= (ppac && ppac[:sequence_name])
|
|
1758
1790
|
name_fr = "#{sequence[:name_fr]} #{sequence[:desc_fr]}".strip if sequence[:name_fr]
|
|
1759
1791
|
name_it = "#{sequence[:name_it]} #{sequence[:desc_it]}".strip if sequence[:name_it]
|
|
1760
1792
|
override(xml, prodno, :DSCR, name_de.strip)
|
|
1761
|
-
override(xml, prodno, :DSCRF, name_fr.strip)
|
|
1793
|
+
override(xml, prodno, :DSCRF, name_fr.strip)
|
|
1762
1794
|
override(xml, prodno, :DSCRI, name_it.strip) if name_it && !name_it.empty?
|
|
1763
1795
|
# use overriden ATC if possibel
|
|
1764
1796
|
atc = sequence[:atc] || sequence[:atc_code]
|
|
@@ -1773,6 +1805,7 @@ module Oddb2xml
|
|
|
1773
1805
|
xml.comment "Chapter70 hack prodno #{prodno} #{obj[:description].encode(xml: :text).gsub("--", "-")}"
|
|
1774
1806
|
xml.SALECD("A") # these products are always active!
|
|
1775
1807
|
xml.DSCR obj[:description]
|
|
1808
|
+
xml.DSCRF ""
|
|
1776
1809
|
if @limitations.index(obj[:code])
|
|
1777
1810
|
xml.LIMNAMEBAG obj[:code]
|
|
1778
1811
|
used_limitations << obj[:code]
|
data/lib/oddb2xml/calc.rb
CHANGED
|
@@ -95,8 +95,8 @@ module Oddb2xml
|
|
|
95
95
|
UNKNOWN_GALENIC_FORM = 140
|
|
96
96
|
UNKNOWN_GALENIC_GROUP = 1
|
|
97
97
|
DATA_DIR = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "data"))
|
|
98
|
-
@@galenic_groups = YAML.load_file(File.join(DATA_DIR, "gal_groups.yaml"))
|
|
99
|
-
@@galenic_forms = YAML.load_file(File.join(DATA_DIR, "gal_forms.yaml"))
|
|
98
|
+
@@galenic_groups = YAML.load_file(File.join(DATA_DIR, "gal_groups.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
|
|
99
|
+
@@galenic_forms = YAML.load_file(File.join(DATA_DIR, "gal_forms.yaml"), permitted_classes: [ Oddb2xml::GalenicForm, Oddb2xml::GalenicGroup, Symbol])
|
|
100
100
|
@@new_galenic_forms = []
|
|
101
101
|
@@names_without_galenic_forms = []
|
|
102
102
|
@@rules_counter = {}
|
|
File without changes
|
data/lib/oddb2xml/cli.rb
CHANGED
|
@@ -26,6 +26,7 @@ module Oddb2xml
|
|
|
26
26
|
@packs = {} # [option] Packungen from Swissmedic for dat
|
|
27
27
|
@infos_zur_rose = {} # [addition] infos_zur_rose and other infos from zurrose transfer.txt
|
|
28
28
|
@migel = {} # [addition] additional Non Pharma products from files repo
|
|
29
|
+
@firstbase = {}
|
|
29
30
|
@actions = [] # [addition] interactions from epha
|
|
30
31
|
@orphan = [] # [addition] Orphaned drugs from Swissmedic xls
|
|
31
32
|
# addresses
|
|
@@ -60,6 +61,9 @@ module Oddb2xml
|
|
|
60
61
|
threads << download(:package) # swissmedic
|
|
61
62
|
threads << download(:lppv) # oddb2xml_files
|
|
62
63
|
threads << download(:bag) # bag.e-mediat
|
|
64
|
+
if @options[:firstbase]
|
|
65
|
+
threads << download(:firstbase) # https://github.com/zdavatz/oddb2xml/issues/63
|
|
66
|
+
end
|
|
63
67
|
types.each do |type|
|
|
64
68
|
threads << download(:refdata, type) # refdata
|
|
65
69
|
end
|
|
@@ -85,6 +89,7 @@ module Oddb2xml
|
|
|
85
89
|
puts "Validatied #{@the_files[:artikelstamm]}"
|
|
86
90
|
else
|
|
87
91
|
puts "Validating failed using #{cmd}"
|
|
92
|
+
require'pry'; binding.pry
|
|
88
93
|
raise "Validating failed using #{cmd}"
|
|
89
94
|
end
|
|
90
95
|
end
|
|
@@ -124,7 +129,7 @@ module Oddb2xml
|
|
|
124
129
|
builder.infos = @infos
|
|
125
130
|
builder.packs = @packs
|
|
126
131
|
# additional sources
|
|
127
|
-
%w[actions orphan migel infos_zur_rose].each do |addition|
|
|
132
|
+
%w[actions orphan migel infos_zur_rose firstbase].each do |addition|
|
|
128
133
|
builder.send("#{addition}=".intern, instance_variable_get("@#{addition}"))
|
|
129
134
|
end
|
|
130
135
|
end
|
|
@@ -312,6 +317,15 @@ module Oddb2xml
|
|
|
312
317
|
@refdata_types[type]
|
|
313
318
|
end
|
|
314
319
|
|
|
320
|
+
when :firstbase
|
|
321
|
+
downloader = FirstbaseDownloader.new(@options)
|
|
322
|
+
bin = downloader.download
|
|
323
|
+
Oddb2xml.log("FirstbaseDownloader bin #{File.size(bin)} bytes")
|
|
324
|
+
@mutex.synchronize do
|
|
325
|
+
@firstbase = FirstbaseExtractor.new(bin).to_hash
|
|
326
|
+
Oddb2xml.log("FirstbaseExtractor added #{@firstbase.size} firstbase items")
|
|
327
|
+
@firstbase
|
|
328
|
+
end
|
|
315
329
|
end
|
|
316
330
|
end
|
|
317
331
|
|
data/lib/oddb2xml/compare.rb
CHANGED
|
File without changes
|
|
File without changes
|
data/lib/oddb2xml/compressor.rb
CHANGED
|
File without changes
|
data/lib/oddb2xml/downloader.rb
CHANGED
|
@@ -381,4 +381,26 @@ module Oddb2xml
|
|
|
381
381
|
read_xml_from_zip(/^AipsDownload_/iu, file)
|
|
382
382
|
end
|
|
383
383
|
end
|
|
384
|
+
|
|
385
|
+
class FirstbaseDownloader < Downloader
|
|
386
|
+
BASE_URL = "https://www.firstbase.ch"
|
|
387
|
+
include DownloadMethod
|
|
388
|
+
def initialize(type = :orphan, options = {})
|
|
389
|
+
@url = BASE_URL + "/sites/default/files/2023-09/firstbase_healthcare_public_data-dump%2C%2020230920.xlsx"
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
def download
|
|
393
|
+
@file2save = File.join(DOWNLOADS, "firstbase.xlsx")
|
|
394
|
+
report_download(@url, @file2save)
|
|
395
|
+
begin
|
|
396
|
+
download_as(@file2save, "w+")
|
|
397
|
+
return File.expand_path(@file2save)
|
|
398
|
+
rescue Timeout::Error, Errno::ETIMEDOUT
|
|
399
|
+
retrievable? ? retry : raise
|
|
400
|
+
ensure
|
|
401
|
+
Oddb2xml.download_finished(@file2save, false)
|
|
402
|
+
end
|
|
403
|
+
File.expand_path(@file2save)
|
|
404
|
+
end
|
|
405
|
+
end
|
|
384
406
|
end
|
data/lib/oddb2xml/extractor.rb
CHANGED
|
@@ -591,4 +591,34 @@ module Oddb2xml
|
|
|
591
591
|
nil
|
|
592
592
|
end
|
|
593
593
|
end
|
|
594
|
+
|
|
595
|
+
class FirstbaseExtractor < Extractor
|
|
596
|
+
def initialize(file)
|
|
597
|
+
@sheet = RubyXL::Parser.parse(file).worksheets[0]
|
|
598
|
+
end
|
|
599
|
+
|
|
600
|
+
def to_hash
|
|
601
|
+
data = {}
|
|
602
|
+
return data unless @sheet
|
|
603
|
+
@sheet.each_with_index do |row, i|
|
|
604
|
+
next if i <= 1
|
|
605
|
+
gtin = row[0].value.to_s.gsub(/^0+/, '')
|
|
606
|
+
data[gtin] = {
|
|
607
|
+
gtin: gtin,
|
|
608
|
+
gln: row[1].value.to_s,
|
|
609
|
+
target_market: row[2] ? row[2].value.to_s: "",
|
|
610
|
+
gpc: row[3] ? row[3].value.to_s: "",
|
|
611
|
+
trade_item_description_de: row[4] ? row[4].value.to_s: "",
|
|
612
|
+
trade_item_description_en: row[5] ? row[5].value.to_s: "",
|
|
613
|
+
trade_item_description_fr: row[6] ? row[6].value.to_s: "",
|
|
614
|
+
trade_item_description_it: row[7] ? row[7].value.to_s: "",
|
|
615
|
+
manufacturer_name: row[8] ? row[8].value.to_s: "",
|
|
616
|
+
start_availability_date: row[9] ? row[9].value.to_s: "",
|
|
617
|
+
gross_weight: row[10] ? row[10].value.to_s: "",
|
|
618
|
+
net_weight: row[11] ? row[11].value.to_s: "",
|
|
619
|
+
}
|
|
620
|
+
end
|
|
621
|
+
data
|
|
622
|
+
end
|
|
623
|
+
end
|
|
594
624
|
end
|
data/lib/oddb2xml/options.rb
CHANGED
|
@@ -43,6 +43,7 @@ module Oddb2xml
|
|
|
43
43
|
opt :log, "log important actions", short: :none
|
|
44
44
|
opt :use_ra11zip, "Use the ra11.zip (a zipped transfer.dat from Galexis)",
|
|
45
45
|
default: File.exist?("ra11.zip") ? "ra11.zip" : nil, type: :string
|
|
46
|
+
opt :firstbase, "Build all NONPHARMA articles on firstbase", short: "b", default: false
|
|
46
47
|
end
|
|
47
48
|
|
|
48
49
|
@opts[:percent] = @opts[:increment]
|
|
@@ -63,6 +64,9 @@ module Oddb2xml
|
|
|
63
64
|
@opts[:extended] = true
|
|
64
65
|
@opts[:price] = :zurrose
|
|
65
66
|
end
|
|
67
|
+
if @opts[:firstbase]
|
|
68
|
+
@opts[:nonpharma] = true
|
|
69
|
+
end
|
|
66
70
|
@opts[:price] = :zurrose if @opts[:price].is_a?(TrueClass)
|
|
67
71
|
@opts[:price] = @opts[:price].to_sym if @opts[:price]
|
|
68
72
|
@opts[:ean14] = @opts[:include]
|
|
File without changes
|
data/lib/oddb2xml/util.rb
CHANGED
|
File without changes
|
data/lib/oddb2xml/version.rb
CHANGED
|
File without changes
|
data/lib/oddb2xml.rb
CHANGED
|
File without changes
|
data/oddb_calc.xsd
CHANGED
|
File without changes
|
data/spec/artikelstamm_spec.rb
CHANGED
|
@@ -75,11 +75,12 @@ describe Oddb2xml::Builder do
|
|
|
75
75
|
expect(@inhalt.index(expected)).not_to be nil
|
|
76
76
|
end
|
|
77
77
|
|
|
78
|
-
it "should have a ATC for product PRIORIX TETRA" do
|
|
78
|
+
it "should have a DSCRF and ATC for product PRIORIX TETRA" do
|
|
79
79
|
expected = %(<PRODUCT>
|
|
80
80
|
<PRODNO>5815801</PRODNO>
|
|
81
81
|
<SALECD>A</SALECD>
|
|
82
82
|
<DSCR>PRIORIX TETRA Trockensub c Solv Fertspr</DSCR>
|
|
83
|
+
<DSCRF>Priorix-Tetra, Pulver und Lösungsmittel zur Herstellung einer Injektionslösung</DSCRF>
|
|
83
84
|
<ATC>J07BD54</ATC>
|
|
84
85
|
</PRODUCT>)
|
|
85
86
|
expect(@inhalt.index(expected)).not_to be nil
|
|
@@ -118,6 +119,7 @@ describe Oddb2xml::Builder do
|
|
|
118
119
|
<PRODNO>5559401</PRODNO>
|
|
119
120
|
<SALECD>A</SALECD>
|
|
120
121
|
<DSCR>Nutriflex Lipid plus, Infusionsemulsion, 1250ml</DSCR>
|
|
122
|
+
<DSCRF/>
|
|
121
123
|
<ATC>B05BA10</ATC>
|
|
122
124
|
</PRODUCT>)
|
|
123
125
|
expect(@inhalt.index(expected)).not_to be nil
|
|
@@ -244,6 +246,7 @@ describe Oddb2xml::Builder do
|
|
|
244
246
|
<PHAR>0055805</PHAR>
|
|
245
247
|
<SALECD>A</SALECD>
|
|
246
248
|
<DSCR>TENSOPLAST Kompressionsbinde 5cmx4.5m</DSCR>
|
|
249
|
+
<DSCRF/>
|
|
247
250
|
<PEXF>0.00</PEXF>
|
|
248
251
|
<PPUB>22.95</PPUB>
|
|
249
252
|
</ITEM>),
|
|
@@ -458,12 +461,14 @@ describe Oddb2xml::Builder do
|
|
|
458
461
|
<!--Chapter70 hack prodno 2069639 Ceres Urtinkturen gemäss L2 mit - im Kommentar-->
|
|
459
462
|
<SALECD>A</SALECD>
|
|
460
463
|
<DSCR>Ceres Urtinkturen gemäss L2 mit -- im Kommentar</DSCR>
|
|
464
|
+
<DSCRF/>
|
|
461
465
|
</PRODUCT>),
|
|
462
466
|
"Chapter 70 item" => %(<ITEM PHARMATYPE="P">
|
|
463
467
|
<GTIN>2500000588532</GTIN>
|
|
464
468
|
<PHAR>2069639</PHAR>
|
|
465
469
|
<SALECD>A</SALECD>
|
|
466
470
|
<DSCR>EINF ARZNEI Ceres Urtinktur spez 20ml</DSCR>
|
|
471
|
+
<DSCRF/>
|
|
467
472
|
<PEXF>23.44</PEXF>
|
|
468
473
|
<PPUB>31.30</PPUB>
|
|
469
474
|
<!--Chapter70 hack 2500000588532 EINF ARZNEI Ceres Urtinktur spez 20ml-->
|
|
@@ -482,6 +487,7 @@ Der behandelnde Arzt ist verpflichtet, die erforderlichen Daten laufend im vorge
|
|
|
482
487
|
<PRODNO>1336901</PRODNO>
|
|
483
488
|
<SALECD>A</SALECD>
|
|
484
489
|
<DSCR>Pethidin HCl Amino 100 mg/2 ml, Injektionslösung</DSCR>
|
|
490
|
+
<DSCRF/>
|
|
485
491
|
<ATC>N02AB02</ATC>
|
|
486
492
|
</PRODUCT>)}
|
|
487
493
|
|
data/spec/calc_spec.rb
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/cli_spec.rb
CHANGED
|
File without changes
|
data/spec/compare_spec.rb
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/compressor_spec.rb
CHANGED
|
File without changes
|
data/spec/data/AipsDownload.zip
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/data/GL_Diff_SB.xml
CHANGED
|
File without changes
|
data/spec/data/ItCodes.xml
CHANGED
|
File without changes
|
data/spec/data/PR121001.txt
CHANGED
|
File without changes
|
data/spec/data/PR121002.txt
CHANGED
|
File without changes
|
data/spec/data/Preparations.xml
CHANGED
|
File without changes
|
data/spec/data/Publications.xls
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/atc.csv
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/column_c.txt
CHANGED
|
File without changes
|
data/spec/data/compositions.txt
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/listen_neu.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/problems.txt
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/spec/data/transfer.dat
CHANGED
|
File without changes
|
data/spec/data/v5_first.xml
CHANGED
|
File without changes
|
data/spec/data/v5_second.xml
CHANGED
|
File without changes
|
data/spec/data/varia_De.htm
CHANGED
|
File without changes
|
data/spec/data/vcr/transfer.dat
CHANGED
|
File without changes
|
data/spec/data/vcr/transfer.zip
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/data/wsdl_pharma.xml
CHANGED
|
File without changes
|
|
File without changes
|
data/spec/galenic_spec.rb
CHANGED
|
File without changes
|
data/spec/parslet_spec.rb
CHANGED
data/tools/cacert.pem
CHANGED
|
File without changes
|
data/tools/set.bat
CHANGED
|
File without changes
|
data/tools/win_fetch_cacerts.rb
CHANGED
|
File without changes
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: oddb2xml
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.8.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-10-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rubyzip
|
|
@@ -411,13 +411,17 @@ executables:
|
|
|
411
411
|
extensions: []
|
|
412
412
|
extra_rdoc_files: []
|
|
413
413
|
files:
|
|
414
|
+
- ".envrc"
|
|
415
|
+
- ".github/workflows/codeql.yml"
|
|
414
416
|
- ".github/workflows/ruby.yml"
|
|
415
417
|
- ".gitignore"
|
|
416
418
|
- ".rspec"
|
|
419
|
+
- ".ruby-version"
|
|
417
420
|
- ".standard.yml"
|
|
418
421
|
- Elexis_Artikelstamm_v003.xsd
|
|
419
422
|
- Elexis_Artikelstamm_v5.xsd
|
|
420
423
|
- Gemfile
|
|
424
|
+
- Gemfile.lock
|
|
421
425
|
- History.txt
|
|
422
426
|
- LICENSE
|
|
423
427
|
- Manifest.txt
|
|
@@ -434,6 +438,9 @@ files:
|
|
|
434
438
|
- data/gtin2ignore.yaml
|
|
435
439
|
- data/product_overrides.yaml
|
|
436
440
|
- dokumentation_calc.textile
|
|
441
|
+
- flake.lock
|
|
442
|
+
- flake.nix
|
|
443
|
+
- gemset.nix
|
|
437
444
|
- lib/oddb2xml.rb
|
|
438
445
|
- lib/oddb2xml/builder.rb
|
|
439
446
|
- lib/oddb2xml/calc.rb
|
|
@@ -453,7 +460,6 @@ files:
|
|
|
453
460
|
- oddb2xml.gemspec
|
|
454
461
|
- oddb2xml.xsd
|
|
455
462
|
- oddb_calc.xsd
|
|
456
|
-
- shell.nix
|
|
457
463
|
- spec/artikelstamm_spec.rb
|
|
458
464
|
- spec/builder_spec.rb
|
|
459
465
|
- spec/calc_spec.rb
|
|
@@ -529,7 +535,7 @@ homepage: https://github.com/zdavatz/oddb2xml
|
|
|
529
535
|
licenses:
|
|
530
536
|
- GPL-3.0
|
|
531
537
|
metadata: {}
|
|
532
|
-
post_install_message:
|
|
538
|
+
post_install_message:
|
|
533
539
|
rdoc_options: []
|
|
534
540
|
require_paths:
|
|
535
541
|
- lib
|
|
@@ -544,8 +550,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
544
550
|
- !ruby/object:Gem::Version
|
|
545
551
|
version: '0'
|
|
546
552
|
requirements: []
|
|
547
|
-
rubygems_version: 3.
|
|
548
|
-
signing_key:
|
|
553
|
+
rubygems_version: 3.4.5
|
|
554
|
+
signing_key:
|
|
549
555
|
specification_version: 4
|
|
550
556
|
summary: oddb2xml creates xml files.
|
|
551
557
|
test_files:
|
data/shell.nix
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
# See https://nixos.wiki/wiki/Packaging/Ruby
|
|
2
|
-
# A small helper script to get a development version for oddb2xml under NixOS
|
|
3
|
-
with import <nixpkgs> {};
|
|
4
|
-
stdenv.mkDerivation {
|
|
5
|
-
name = "env";
|
|
6
|
-
buildInputs = [
|
|
7
|
-
ruby_3_1
|
|
8
|
-
rubyPackages_3_0.safe_yaml
|
|
9
|
-
ruby_3_1.devEnv
|
|
10
|
-
git
|
|
11
|
-
python
|
|
12
|
-
libpcap
|
|
13
|
-
libxml2
|
|
14
|
-
libxslt
|
|
15
|
-
pkg-config
|
|
16
|
-
bundix
|
|
17
|
-
gnumake
|
|
18
|
-
];
|
|
19
|
-
}
|