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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ecd8f5025daaf98e1a23e42069c1a0b6f0f71792
4
- data.tar.gz: 4f7e3d9fa12579d85c93fa00399584e0185fa1ee
3
+ metadata.gz: 487d48b96bd98f90dc979ab3eef357f1bb8344a2
4
+ data.tar.gz: b96def757e25f2da38e73c0f92d222815f706e6e
5
5
  SHA512:
6
- metadata.gz: c81408b0c1e8afc663825b5fed409f929225ccd529f8d626c17f58b5ad625ed4b382963b74dbaedd427bf6f13b5d454ef421b442e973b73c42f5521b378eb5a4
7
- data.tar.gz: d437a60586bc3e47307da01d9aded873f5968bcb411b848b734a951cd029f77b73bba0efefc8e41f25cdecb6550c2ba108045e14336c57b246b97ab3c79555ea
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 Medikamenten-Stammdaten aktualisiert? (An welchem tag im Monat)
4
- * Refdata ändert täglich Pharmacodes.
5
- * SL Preise werden am Anfang des Monats publiziert, jeweils immer am 1. Ganz selten auch am 15.
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
- Wer will kann oddb2xml einmal pro Tag laufen lassen für die neusten Pharmacodes.
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
- Wir haben einen ganz grossen Vorteil: Bei uns erscheint [QAP?] nicht
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 auch: http://www.estv.admin.ch/mwst/themen/00155/#sprungmarke0_4
25
-
26
- ####Was für eine Nummer findet man im Feld PRODNO?
27
- * Mit dem Release 1.4.8 finden Sie auch die PRODNO im XML. 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.
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_
@@ -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 --artikelstamm werden ArtikelstammDaten in der Version 3 und 5 erzeugt
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
- * epha_interactions.csv https://download.epha.ch/cleaned/matrix.csv'
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 Tranfer.dat werden Zeilen ausgelassen, wenn eine der folgenden Bedingungen zutrifft (siehe extractor.rb ZurroseExtractor)
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
- Elexis braucht seit der Version 3.0 vom August 2014 eine XML-Datei mit den Stammdaten für Artikel.
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 investierte Niklaus Giger über 60 Arbeitsstunden, um für die neue Version 5 die Dateien direkt via oddb2xml zu erstellen.
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
@@ -1,3 +1,3 @@
1
1
  module Oddb2xml
2
- VERSION = "2.5.4"
2
+ VERSION = "2.5.5"
3
3
  end
@@ -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/arzneimittel/00156/00221/00222/00230/index.html?lang=de
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
@@ -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
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-04-09 00:00:00.000000000 Z
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.11
487
+ rubygems_version: 2.6.8
488
488
  signing_key:
489
489
  specification_version: 4
490
490
  summary: oddb2xml creates xml files.