oddb2xml is a ruby gem developed and maintained by yweese GmbH. The source code is available under https://github.com/zdavatz/oddb2xml. It might be installed (Ruby >= 1.9 required) via "gem install oddb2xml". Under http://dev.ywesee.com/Main/Oddb2xml you find more information on how the data is generated. In this XSD file we refer to the following sources: # swissINDEX ## Pharma: https://index.ws.e-mediat.net/Swissindex/Pharma/ws_Pharma_V101.asmx?WSDL" ## NonPharma https://index.ws.e-mediat.net/Swissindex/NonPharma/ws_NonPharma_V101.asmx?WSDL" # Preparations.xml ## Extracted from http://bag.e-mediat.net/SL2007.Web.External/File.axd?file=XMLPublications.zip # Packungen.xls https://www.swissmedic.ch/arzneimittel/00156/00221/00222/00230/index.html?lang=de # Prices (ZurRose) http://zurrose.com/fileadmin/main/lib/download.php?file=/fileadmin/user_upload/downloads/ProduktUpdate/IGM11_mit_MwSt/Vollstamm/transfer.dat # https://raw.github.com/zdavatz/oddb2xml_files/master/BM_Update.txt see Anhang 1, 4, 5 und 6 zur AMZV; SR 821.212.22. http://www.admin.ch/opc/de/classified-compilation/20011693/ # LPPV: https://raw.github.com/zdavatz/oddb2xml_files/master/LPPV.txt # https://www.medregbm.admin.ch/Publikation/CreateExcelListBetriebs # https://www.medregbm.admin.ch/Publikation/CreateExcelListMedizinalPersons # (epha-)interactions https://download.epha.ch/cleaned/matrix.csv For historical reasons the generated *.XML have not a common layout and some fields have different meanings in differen files. The two files oddb_article and oddb_product are not normalized. There if for one swissmedic IKSNR several packages are available you will find an entry inside oddb_article and oddb_product for each of them. The GTIN (Global Trade Item Number, aka EAN13) is emitted as field GTIN in oddb_product.xml. Inside oddb_article you find it as element BC inside ARTBAR (Article barcode). Some comments for invidual fields: NINCD: possible values are 10 => BAG-XML (SL/LS), 13 -> MiGel, 20 => (LPPV) Limitation, empty => NonPharma) GENCD: possible values are 'O' for original and 'G' for generic, 'K' for Komplementärmedizin. We don't have a list of possible generics for a given original. It is however possible find generics via ch.oddb.org where a sophisticated algorithm searches for similar medicaments taking into account all ATC-codes and galenic information. PHAR Pharmacode: Taken from swissINDEX or ZurRose characters 3..9 PEXF Price Ex-Factory (exkl. VAT): Taken from the ZurRose.dat characters 60..65 PPUB Public Price (inkl. VAT): Taken from the ZurRose.dat characters 66..71 SLOPLUS Selbsbehalt/deductilbe, where 1 => 20%, 2 => 10%, '' => not known FIRST import all data from swissINDEX * GTIN * PHAR * Status * Since STDATE * Bezeichnung (DE / FR) * QTY Quantity, e.g. 3 Flaschen 5 ml. The EAN13 specified that this package contains 3 bottles. Think of it as as description of volume/size of the content. * ATC * company_name (only for migel) * GLN company_ean, field COMPNO in oddb_article then you add the following flags via Preparations.xml * Ex-Factory Price * Public Price * SL Price valid from * decuctible/SLOPLUS * Original / Generic * all Limitations (go into oddb_limitations.xml) * narcotics (FlagNarcosis) emitted as element BG with value 'Y' or 'N' then you add the following flags via Packungen.xls * Abgabekategorie (column 'N') as field SMCAT with the possible value see also https://www.swissmedic.ch/arzneimittel/00156/00221/00222/00230/index.html?lang=de A Einmalige Abgabe auf ärztliche oder tierärztliche Verschreibung B Abgabe auf ärztliche oder tierärztliche Verschreibung C Abgabe nach Fachberatung durch Medizinalpersonen D Abgabe nach Fachberatung E Abgabe ohne Fachberatung * ATC (if missing from swissINDEX) -> Field SubstanceSwissmedic in oddb_article.xml * Wirkstoff (column 'O') -> Field SubstanceSwissmedic in oddb_article.xml * Packungsgrösse (column 'L') -> Field PackGrSwissmedic in oddb_article.xml * Packungseinheit(column 'L') -> Field EinheitSwissmedic in oddb_article.xml