oddb2xml 2.5.4 → 2.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/QA.md +37 -21
- data/artikelstamm.md +8 -25
- data/lib/oddb2xml/parslet_compositions.rb +1 -1
- data/lib/oddb2xml/version.rb +1 -1
- data/oddb2xml.xsd +1 -1
- data/spec/parslet_spec.rb +15 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 487d48b96bd98f90dc979ab3eef357f1bb8344a2
|
4
|
+
data.tar.gz: b96def757e25f2da38e73c0f92d222815f706e6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 34891dbacc48fc1cb86a028edc70e515b0cb2806cc606add375af13042d251cec3d642548331808600297879210ba7fc55155df720eff688a12a24b48101a696
|
7
|
+
data.tar.gz: fca760ca8387f0e9ba1c24802d9e316fa304c75ef1482e734897fec24bb79697cf8054bc31298c53bf2abb03a18e6ce68ceacbc6f93badaa7bda5986e28d2c17
|
data/QA.md
CHANGED
@@ -1,28 +1,44 @@
|
|
1
1
|
# Fragen und Antworten zu oddb2xml
|
2
2
|
|
3
|
-
####Wann werden
|
4
|
-
* Refdata ändert täglich Pharmacodes.
|
5
|
-
* SL Preise werden am Anfang des Monats publiziert, jeweils immer am 1.
|
3
|
+
#### 1. Wann werden die Stammdaten unter https://www.hin.ch/services/mediupdate-xml aktualisiert, an welchem Tag im Monat?
|
4
|
+
* [Refdata](http://www.refdata.ch/content/article_d.aspx?Nid=6&Aid=909&ID=411) ändert täglich Pharmacodes.
|
5
|
+
* SL Preise werden am Anfang des Monats publiziert, jeweils immer am 1. Es kann auch vorkommen, dass das BAG die SL-Preise/Limitationen während dem Monat anpasst.
|
6
6
|
* Fachinfos werden täglich publiziert.
|
7
7
|
* Swissmedic-Codes erscheinen einmal pro Monat, normalerweise in der ersten Woche.
|
8
|
+
* Die Daten unter [MEDIupdate XML](https://www.hin.ch/services/mediupdate-xml/) werden täglich generiert.
|
8
9
|
|
9
|
-
|
10
|
+
#### 2. Gibt es eine Spezifikation der XML Files?
|
11
|
+
* Ja, siehe [oddb2xml.xsd](https://github.com/zdavatz/oddb2xml/blob/master/oddb2xml.xsd)
|
10
12
|
|
11
|
-
|
12
|
-
in den Daten weil wir Refdata als Quelle verwenden. ;)
|
13
|
-
|
14
|
-
####Haben Sie eine Spezifikation der XML Files? Was steht wo drin? Wenn ich ein XSD selbst generiere, stehen dort ja nicht mehr Informationen als jetzt schon. Ich muss aber wissen in welchem Attribut welcher Wert steht.
|
15
|
-
|
16
|
-
Nein, das gibt es zur Zeit nicht (kommt ev. noch), die Felder sind
|
17
|
-
aber grundsätzlich selbsterklärend.
|
18
|
-
|
19
|
-
* im article.xml verwenden wird die Bezeichnungen von Refdata.ch
|
20
|
-
* im product.xml verwenden wir die Bezeichnungen vom BAG-XML. Produkte die nicht in der SL sind haben dann im product.xml auch keine Bezeichnung.
|
21
|
-
|
22
|
-
####Wo finde ich die Mehrwertsteuer?
|
13
|
+
#### 3. Wo finde ich die Mehrwertsteuer?
|
23
14
|
* Der Mwst.-Code ist bei allen Produkten bei denen der GTIN mit 7680 (Medi in der SL) beginnt bei 2.5% (reduzierter Satz, Art. 49 MWSTV).
|
24
|
-
* Siehe
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
15
|
+
* Siehe [ESTV](https://www.estv.admin.ch/estv/de/home/mehrwertsteuer/fachinformationen/steuersaetze/steuersaetze-bis-2017.html)
|
16
|
+
* Siehe VAT im [XSD](https://github.com/zdavatz/oddb2xml/blob/master/oddb2xml.xsd#L43) File.
|
17
|
+
|
18
|
+
#### 4. Was für eine Nummer findet man im Feld PRODNO?
|
19
|
+
* Die PRODNO setzen wir zusammen aus der 5-stelligen Swissmedic-Nummer und der Swissmedic Sequenz Nummer. Die Squenznummer unterscheidet nicht nach Packungsgrösse. Produkte mit der gleichen Dosierung und der gleichen galenischen Form aber einer unterschiedlicher Packungsgrösse, haben die gleiche PRODNO.
|
20
|
+
* Sequenznamen ohne Packungsgrösse aber mit Dosisstärke und galenischer Form findet man im [oddb2xml_swissmedic_sequences.csv](https://download.hin.ch/download/oddb2xml/oddb2xml_swissmedic_sequences.csv)
|
21
|
+
* Damit man _Registrations-_ und _Sequenznummer_ besser verstehen kann, muss man einmal das File [excel-version_zugelasseneverpackungen.xlsx](https://www.swissmedic.ch/dam/swissmedic/de/dokumente/listen/excel-version_zugelasseneverpackungen.xlsx.download.xlsx/excel-version_zugelasseneverpackungen.xlsx) öffnen und die ersten paar Spalten anschauen.
|
22
|
+
|
23
|
+
#### 5. Was ist der Unterschied zwischen oddb_article.xml und oddb_product.xml
|
24
|
+
* [oddb_article.xml](http://download.hin.ch/download/oddb2xml/oddb_article.xml) enhält alle Artikel.
|
25
|
+
* [oddb_product.xml](http://download.hin.ch/download/oddb2xml/oddb_product.xml) enthält nur die Produkte von der Swissmedic, also die Medikamente.
|
26
|
+
|
27
|
+
#### 6. Warum hat nicht jedes Produkt im oddb_article.xml einen GTIN?
|
28
|
+
* Nicht alle Produkte haben zur Zeit einen GTIN. Dieser wird jedoch laufend ergänzt. Ab 1.1.2019 sollte der Pharmacode komplett verschwinden. Dies wurde von der Stiftung [Refdata](http://www.refdata.ch) auch so bestätigt.
|
29
|
+
|
30
|
+
#### 7. Wie kann ich Medikamente und Nicht-Medikament unterscheiden?
|
31
|
+
* Alle GTINs der Medikamente beginnen mit 7680 (76=Schweiz, 80=Swissmedic).
|
32
|
+
* Siehe [EANCode](http://www.ywesee.com/Main/EANCode)
|
33
|
+
* Medikamente haben zudem auch eine [Swissmedic Kategorie](https://github.com/zdavatz/oddb2xml/blob/master/oddb2xml.xsd#L78).
|
34
|
+
* Gültigkeitsdaten zu Preisen (VDAT) gibt es nur bei [SL-Produkten](http://www.spezialitätenliste.ch/File.axd?file=XMLPublications.zip).
|
35
|
+
|
36
|
+
#### 8. Ich möchte gerne ein XML-File welches alle Produkte (Pharma und Non-Pharma) und die dazugehörigen Sequenznamen enthält. Gibt es das?
|
37
|
+
* Ja. _oddb2xml_ mit der Option _-r_ laufen lassen, siehe [usage](https://github.com/zdavatz/oddb2xml#usage) - Option "_--artikelstamm_".
|
38
|
+
* Dieses File wird zur Zeit nicht via [MEDIupdate XML](https://www.hin.ch/services/mediupdate-xml/) zum Download zur Verfügung gestellt. Es muss selber generiert werden mittels _oddb2xml -r_
|
39
|
+
* [CSV](http://pillbox.oddb.org/artikelstamm_26042018_v5.csv) oder [XML](http://pillbox.oddb.org/artikelstamm_26042018_v5.xml) Beispiel-Download vom 26.4.2018.
|
40
|
+
|
41
|
+
#### 9. Wie installiere ich _oddb2xml_?
|
42
|
+
* Neuste, stabile Version von [Ruby](http://www.ruby-lang.org/de/) installieren.
|
43
|
+
* _gem install oddb2xml_ ausführen und Installation abwarten. Sollte auch auf Windows mit [Ubuntu Bash](https://docs.microsoft.com/en-us/windows/wsl/install-win10) funktionieren. Mindestens 8 GB RAM notwending.
|
44
|
+
* _oddb2xml_ mit der entsprechenden Option laufen lassen, z.B. _oddb2xml -r_
|
data/artikelstamm.md
CHANGED
@@ -2,17 +2,12 @@
|
|
2
2
|
|
3
3
|
odd2xml unterstützt seit Ende 2017 den von Elexis gebrauchten Artikelstamm wie folgt:
|
4
4
|
|
5
|
-
* Mit der Option --
|
6
|
-
* compare_v5 erlaubt es, zwei v5 (oder v3) XML-Dateien zu vergleichen
|
5
|
+
* Mit der Option _--artikelstamm_ werden ArtikelstammDaten in der Version 3 und 5 erzeugt
|
6
|
+
* https://github.com/zdavatz/oddb2xml/blob/master/bin/compare_v5 erlaubt es, zwei v5 (oder v3) XML-Dateien zu vergleichen
|
7
7
|
|
8
8
|
## Herkunft der Artikelstamm Daten
|
9
9
|
|
10
|
-
Die für den Artikelstamm gebrauchten Ursprungs-Dateien werden
|
11
|
-
|
12
|
-
* unter downloads in einem leicht lesbaren Format abgespeichert
|
13
|
-
** CSV für XLSX-Dateien. Dazu wird die Utility ssconvert des Gnumeric verwendet, was viel schneller geht, als die Dateien per Ruby-Script zu laden
|
14
|
-
** mit xmllint --format schön formattierten XML
|
15
|
-
** transfer.utf8 ISO8859-1 transfer.dat als utf-8 um leichter unter Linux greppen zu können
|
10
|
+
Die für den Artikelstamm gebrauchten Ursprungs-Dateien werden unter _downloads_ in einem leicht lesbaren Format abgespeichert. Dazu wird die Utility _ssconvert_ von _Gnumeric_ verwendet, was viel schneller geht, als die Dateien per Ruby-Script zu laden. Mit _xmllint --format_ können die XML Daten schön formatiert werden.
|
16
11
|
|
17
12
|
Damit ist möglich nach einem Durchlauf den Ursprung der Daten zu ermitteln, z.B. `grep -r 7680273040281 downloads` git dann folgende Zeilen zurück
|
18
13
|
|
@@ -35,16 +30,9 @@ Oder
|
|
35
30
|
|
36
31
|
### Herkunft der einzelenen Dateien
|
37
32
|
|
38
|
-
*
|
39
|
-
* swissmedic_orphan.csv https://www.swissmedic.ch/dam/swissmedic/de/dokumente/listen/humanarzneimittel.orphan.xlsx.download.xlsx/humanarzneimittel.xlsx'
|
40
|
-
* swissmedic_package.csv https://www.swissmedic.ch/dam/swissmedic/de/dokumente/listen/excel-version_zugelasseneverpackungen.xlsx.download.xlsx/excel-version_zugelasseneverpackungen.xlsx
|
41
|
-
* oddb2xml_files_lppv.txt https://raw.githubusercontent.com/zdavatz/oddb2xml_files/master/LPPV.txt
|
42
|
-
* XMLPublications.zip http://bag.e-mediat.net/SL2007.Web.External/File.axd?file=XMLPublications.zip Dieses enthält
|
43
|
-
** Preparations.xml Hier sind alle Artikel aufgeführt, welche zur Spezialitätenliste (aka SL_ENTRY) gehören
|
44
|
-
* transfer.zip http://pillbox.oddb.org/TRANSFER.ZIP Dieses enthält
|
45
|
-
** transfer.dat
|
33
|
+
* Siehe: https://github.com/zdavatz/oddb2xml/blob/master/README.md#data-sources
|
46
34
|
|
47
|
-
Beim
|
35
|
+
Beim Transfer.dat werden Zeilen ausgelassen, wenn eine der folgenden Bedingungen zutrifft (siehe extractor.rb ZurroseExtractor)
|
48
36
|
|
49
37
|
* Die GTIN ist 0000000000000
|
50
38
|
* Die Zeile beginnt mit 113 (inaktiv) und die GTIN beginnt mit 7680 (aka Swissmedic)
|
@@ -69,13 +57,8 @@ Im der Datei spec/spec_helper.rb findet man die Methode mock_downloads, welche m
|
|
69
57
|
|
70
58
|
## Entstehungsgeschichte
|
71
59
|
|
72
|
-
|
73
|
-
|
74
|
-
Bis Ende 2017 wurde
|
75
|
-
* via oddb2xml die Dateien oddb_article.xml und oddb_product.xml generiert
|
76
|
-
* mit einen AdHoc geschriebenen Tool von Marco Descher in das Artikelstamm Format (in Versionen 1,2,3,4) umgewandelt
|
77
|
-
* dann von Elexis eingelesen
|
60
|
+
Bis Ende 2017 wurden via oddb2xml die Dateien oddb_article.xml und oddb_product.xml generiert und mit einen AdHoc geschrieben Tool von Marco Descher in das Artikelstamm Format (in Versionen 1,2,3,4) umgewandelt und dann von Elexis eingelesen.
|
78
61
|
|
79
|
-
2017
|
62
|
+
2017 erweiterte https://github.com/ngiger/ oddb2xml auf die Bedürfnisse von Elexis und dessen Artikelstammanforderungen, um für die neue Version 5 die Dateien direkt via oddb2xml zu erstellen.
|
80
63
|
|
81
|
-
Dazu kam auch das Werkzeug compare_v5 um zwei v5 XML-Dateien zu vergleichen, womit die pro Monat neu eintreffenden Anpassungen leicht verfolgbar werden.
|
64
|
+
Dazu kam auch das Werkzeug https://github.com/zdavatz/oddb2xml/blob/master/bin/compare_v5 um zwei v5 XML-Dateien zu vergleichen, womit die pro Monat neu eintreffenden Anpassungen leicht verfolgbar werden.
|
@@ -72,7 +72,7 @@ module ParseUtil
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def ParseUtil.parse_compositions(composition_text, active_agents_string = '')
|
75
|
-
active_agents = active_agents_string ? active_agents_string.downcase.split(/,\s+/) : []
|
75
|
+
active_agents = active_agents_string ? active_agents_string.gsub('[', '').downcase.split(/,\s+/) : []
|
76
76
|
key = [ composition_text, active_agents ]
|
77
77
|
saved_value = @@saved_parsed[key]
|
78
78
|
if saved_value
|
data/lib/oddb2xml/version.rb
CHANGED
data/oddb2xml.xsd
CHANGED
@@ -76,7 +76,7 @@
|
|
76
76
|
|
77
77
|
then you add the following flags via Packungen.xls
|
78
78
|
* Abgabekategorie (column 'N') as field SMCAT with the possible value
|
79
|
-
see also https://www.swissmedic.ch/
|
79
|
+
see also Abgabekategorien: https://www.swissmedic.ch/swissmedic/de/home/services/zugelassene-praeparate/human--und-tierarzneimittel.html
|
80
80
|
A Einmalige Abgabe auf ärztliche oder tierärztliche Verschreibung
|
81
81
|
B Abgabe auf ärztliche oder tierärztliche Verschreibung
|
82
82
|
C Abgabe nach Fachberatung durch Medizinalpersonen
|
data/spec/parslet_spec.rb
CHANGED
@@ -26,6 +26,21 @@ if RunFailingSpec
|
|
26
26
|
end
|
27
27
|
|
28
28
|
describe ParseComposition do
|
29
|
+
context "should handle 66540 Tektrotyd, Markierungsbesteck" do
|
30
|
+
string = "conserv.: E 216, E 218, excipiens pro suppositorio."
|
31
|
+
composition = ParseComposition.from_string(string)
|
32
|
+
active_agent = ["hynic-[d-phe(1)", "tyr(3)-octeotridum]trifluoroacetum", "acidum ethylendiamini-n,n'-diaceticum"]
|
33
|
+
|
34
|
+
active_substance = "HYNIC-[D-Phe(1)"
|
35
|
+
composition_text = "II) Durchstechflasche 2: acidum ethylendiamini-N,N'-diaceticum 10 mg, dinatrii phosphas dodecahydricus, natrii hydroxidum, pro vitro."
|
36
|
+
composition = ParseUtil.parse_compositions(composition_text, active_substance).first
|
37
|
+
|
38
|
+
specify { expect( composition.substances.size).to eq 3 }
|
39
|
+
specify { expect( composition.label).to eq 'II' }
|
40
|
+
specify { expect( composition.excipiens.name).to match /pro vitro/i }
|
41
|
+
specify { expect( composition.substances.first.name).to eq "Acidum Ethylendiamini-n,n'-diaceticum" }
|
42
|
+
end
|
43
|
+
|
29
44
|
context "should handle excipiens" do
|
30
45
|
string = "conserv.: E 216, E 218, excipiens pro suppositorio."
|
31
46
|
composition = ParseComposition.from_string(string)
|
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.5.
|
4
|
+
version: 2.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yasuhiro Asaka, Zeno R.R. Davatz, Niklaus Giger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rubyzip
|
@@ -484,7 +484,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
484
484
|
version: '0'
|
485
485
|
requirements: []
|
486
486
|
rubyforge_project:
|
487
|
-
rubygems_version: 2.6.
|
487
|
+
rubygems_version: 2.6.8
|
488
488
|
signing_key:
|
489
489
|
specification_version: 4
|
490
490
|
summary: oddb2xml creates xml files.
|