Die Schnittstelle steht über SOAP zur Verfügung. Es wird lediglich ein Zugang benötigt. Ein Testzugang oder eine Test-SOAP-Umgebung existieren nicht. Der direkte Zugriff bzw. eine Verlinkung auf die PDF-Beipackzettel ist nicht möglich. Die SOAP-Definitionsdatei (WSDL) ist unter folgendem URL abrufbar:
rpcTest - grundsätzliche Testanfrage, um ein SOAP-Handshake zu probieren
getPZNList - Abfrage aller PZNs, zu denen ein PDF-Beipackzettel verfügbar ist
getPDFLink - Abfrage eines Deeplinks des PDF-Beipackzettels zur angegebenen PZN
getLMIVList - Abfrage aller PZNs, zu denen ein PDF-LMIV* verfügbar ist
getLMIVLink - Abfrage eines Deeplinks des LMIV-PDF zur angegebenen PZN
getBIOZIDList - Abfrage aller PZNs, zu denen ein PDF-Biozid verfügbar ist
getAdditionalListBiozid - Abfrage aller PZNs, zu denen bei den zusätzlichen Artikeltexten die N-Nummern enthalten sind
getBIOZIDLink - Abfrage eines Deeplinks des PDF-Biozid zur angegebenen PZN
getRXList - Abfrage aller PZNs, zu denen ein PDF-RX verfügbar ist
getRXLink - Abfrage eines Deeplinks des PDF-RX zur angegebenen PZN
getAdditionalList - Abfrage aller PZNs, zu denen eine zus. Artikelinformation verfügbar ist
getAdditionalData - Abfrage von zusätzlichen Artikelinformationen (Anwendungsgebiet etc.)
getRatingsPznTimeList - Abfrage aller PZNs, zu denen Produktbewertungen vorliegen
getRatingNumber - Abfrage Anzahl/Bestand von Produktbewertungen zur angegebenen PZN
getAverageRatingNumber - optimierte Abfrage Anzahl und Durchschnitts-Bewertung von Produktbewertungen zur angegebenen PZN
getRatings - Abfrage der Produktbewertungen zur angegebenen PZN
insertRating - Eintrag einer Produktbewertung zur angegebenen PZN
checkItx - Prüfung auf Produkt-Wechselwirkungen
getWirkstoffeList - Abfrage aller PZNs, zu denen Wirkstoffe verfügbar sind
getWirkstoffe - qualifizierte Liste von Wirkstoffen und Bestandteilen eines Artikel
getArtikelMitWirkstoff - Suche von Artikeln mit bestimmten Wirkstoffen
getArtikelMitWirkstoffKombi - Suche von Artikeln gleicher Wirkstoffkombination
getInciList - Abfrage aller PZNs, zu denen INCI-Inhaltsstoffe verfügbar sind
getInci - detaillierte Liste von Inci-Inhaltsstoffen und Komponenten eines Artikel
getGPSR - GPSR-Daten eines Artikels / Herstellers
getGpsrPznList - Abfrage aller PZNs, zu denen GPSR-Daten verfügbar sind
getGpsrHerstellerList - Abfrage aller Hersteller-Keys, zu denen GPSR-Daten verfügbar sind
Um unnötige Anfragen an die Schnittstelle zu vermeiden, Ihre Web-Applikation nicht zu verlangsamen und dem Endanwender keine funktionslosen PDF-Links anzubieten, sollten Sie mindestens einmal täglich eine Gesamtliste aller zur Verfügung stehenden PZN-Beipackzettel abfragen - ein bis maximal dreimal pro Tag ist absolut ausreichend. Dazu dient die Funktion „getPZNList“, die PZNs und den Zeitstempel der jeweiligen Datenerstellung / -änderung (bei PZN/Std-Beipackzettel, LMIV, BIOZID, RX) als eine Liste/Array (je nach Anbindungstechnologie) zurückliefert. Diese PZN-Liste sollten Sie vorhalten und vor Anfrage eines PDF-Deeplinks prüfen.
Die PZN-Listen sind auch als aktuelle CSV-Dateien verfügbar.
Es gibt keine direkten, permanenten Deeplinks zu den PDF-Beipackzetteln. Durch die SOAP-Anfrage erhalten Sie einen individuellen und temporären Link für Ihre Sitzung (24h gültig). Die Abfrage erfolgt über die Funktion „getPDFLink“. In der Abfrage dieser Funktion können Sie die Art der PDF-Anzeige angeben. Der Parameter „version“ erkennt „d“ für „download“ und „“ (leer) für inline. Inline bedeutet, dass das PDF direkt im Browser-Plugin angezeigt wird. Bei Wert „d“ erscheint der Download-Dialog, worüber das PDF gespeichert oder geöffnet werden kann. Wird im letzten Parameter „ssl“ eine 1 übergeben, so wird ein HTTPS-Link zum PDF zurückgeliefert (o.g.).
Diese Abfragen sind analog zu den Funktionen der Calls für PDF-Beipackzettel. Sie sind ebenfalls in jeweils zwei Funktionen unterteilt. Eine Funktion dient zur Listenabfrage der verfügbaren PZNs (getLMIVList, getBIOZIDList, getRXList, getAdditionalListBiozid) und eine Funktion dient zur Abfrage eines Links zum Artikel-PDF für LMIV, Biozid oder RX (getLMIVLink, getBIOZIDLink, getRXLink)(PZNS aus getAdditionalListBiozid dienen zur Abfrage bei getAdditionalData). Es gilt hier die gleiche Parametrierung wie beim Standard-Call PDF-Beipackzettel (Links sind ebenfalls 24h gültig).
PZN-Listen auch als CSV-Dateien verfügbar
Nach Übergabe der Zugangsdaten und der bestimmten PZN liefert die Funktion ein String-Array folgender Elemente zurück, sofern zusätzliche Artikelinformationen vorhanden sind.
homoeopathikum, bioprodukt → 0=nein 1=ja
biokontrollstation, beschreibung, anwendungsgebiete, gegenanzeigen, vorsichtsmassnahmen, wechselwirkungen, warnhinweise, dosierungsanleitung, anwendungsfehler, nebenwirkungen, haltbarkeit, wirkstoff_und_bestandteile, ausstelldatum_beipackzettel → Text, pflichttext
PZN-Liste auch als CSV-Datei verfügbar
Mit getAdditionalListBiozid erhalten Sie alle PZNs zu denen in den Daten des getAdditionalData-Calls eine Biozid-NNummer enthalten ist.
Liefert die Anzahl von gültigen Produktbewertungen zur angegebenen PZN. Nutzbar als Hilfsfunktion für den Aufbau einer Paginierung, da das Ergebnis-Objekt/-Array ggf. kleiner ist, als das umfassende Rückgabe-Objekt aller Produktbewertungen.
Liefert die Gesamtanzahl von gültigen Produktbewertungen zur angegebenen PZN ("ratingNumber") und deren Durchschnittstwert zur Berwertung ("ratingAverage") als Fließkommazahl mit einer Nachkommastelle. Ersetzt die Calls getRatingNumber und getRatings, wenn nur die Durchschnitts-Bewertung benötigt wird.
Nach Übergabe der Zugangsdaten und der bestimmten PZN liefert die Funktion ein String-Array folgender Elemente zurück, sofern Produkbewertungen vorhanden sind:
titel → Betreff
beschreibung → Anmerkungstext (inkl. evtl. Linefeeds und HTML)
autor → Autor (optionales Feld - kann leer sein)
sterne → Zahlenwert zwischen 1 und 5
zeitpunkt → Unix-Timestamp
Es kann Einfluss auf die Sortierung und den Bereich der Ergebnismenge (für Paginierung) genommen werden. Parameter offset und limit verhalten sich ähnlich zu SQL-Statements. Für die Sortierung (Parameter order) sind momentan folgende Werte gültig:
1 = Zeitpunkt absteigend
2 = Zeitpunkt aufsteigen
3 = Sterne absteigend
4 = Sterne aufsteigend
Die Daten müssen URL-Encoded und im UTF-8-Format übertragen werden. Die Felder sterne, titel, beschreibung sind Pflichtfelder. Der Wert für sterne muss zwischen 1 bis 5 liegen. Das Feld autor ist ein optionales Feld, welches leer übertragen werden kann.
Die Prüfung auf Produkt-Wechselwirkungen erfolgt auf Grundlage der beliebig übergeben PZNs, unabhängig von deren Menge. Im Fall eines Treffers bzw. einer oder mehrerer Interkationen erfolgt die Rückgabe eines umfangreichen Ergebnisses. Dieses umfasst zunächst neben dem übermittelten PZNs auch deren Artikelnamen, damit beim User eine sofortige Sichtprüfung der Artikel stattfinden kann. Des weiteren werden Themengebiete mit Volltexten zurück geliefert (z.B. Maßnahmen, Beschreibung der Wechselwirkung usw.) und Meta-Informationen, welches Datum des internen Datensatzes, Hinweistexte und ein Farbscoring beinhaltet. Mögliche Werte für das Scroing sind: gelb (Vorsicht), orange (Warnung), rot (Gefahr).
Zur Optimierung Ihrer Api-Requests und Anzeige / Performance auf Ihrer Webseite können Sie eine PZN-Liste abrufen. Nur zu diesen PZNs können weitere Wirkstoff-bezogene Funktionen dieser Schnittstelle ausgeführt werden bzw. werden weiterführende Daten geliefert. Die Abfrage dieser Liste sollte max. einmal Täglich erfolgen.
PZN-Liste auch als CSV-Datei verfügbar
Abfrage einer qualifizierten Liste zu einem Artikel. Sie erhalten Informationen zum Namen des Inhaltsstoffes, Klassifizierung als Wirkstoff oder Hilfsstoff, Alkoholgehalt, Bezugsangabe, Komponentenlabel (Hinweis zu Einnahme/Dosierung) und Stofftag. Der Stofftag dient zum Einen zur internen Verarbeitung wie z.B. Sortierung, Gruppierung oder Suchen. Vor allem kann er bei den zusätzlichen Artikeltexten im Feld „wirkstoff_und_bestandteile“ (getAdditionalData) als Ersetzungs-Tag verwendet werden. Im besagten Textblock werden die Inhaltsstoffe in einer HTML-Table geliefert. Namen von Inhaltsstoffen, die als „Wirkstoffe“ gekennzeichnet sind, werden mit einem Pseudo-HTML-Tag versehen.
Beispiel raw-text:
<tr>
<td>68501</td>
<td><DICLOFENAC>Diclofenac</DICLOFENAC></td>
<td>18,61mg</td>
<td>Wirkstoff</td>
...
<td>DICLOFENAC</td>
</tr>
Liefert PZNs aller Artikel, die den angefragten Wirkstoff ebenfalls beinhalten. Die zu übergebene „Stoffid“ wird im vorherigen Call „getWirkstoffe“ geliefert. Wird der Parameter „pzn“ mit einer gültigen PZN übergeben (ursprünglicher Artikel / Produktdetailseite von dem aus die Suche gestartet wird), so erscheint diese nicht in der Ergebnismenge. Soll diese ebenfalls in der Ergebnismenge enthalten sein, so übergeben Sie 0 als Pzn.
Beispiele finden Sie unter Produkte-Seite oder über eine Artikel-Suche im Head-Bereich
Liefert PZNs aller Artikel, die die gleiche Wirkstoffkombination beinhalten. Eine Berücksichtigung der Wirkstoffmengen / Packungsgrößen erfolgt nicht.
Beispiele finden Sie unter Produkte-Seite oder über eine Artikel-Suche im Head-Bereich
Abfrage einer detaillierten Liste zu einem Artikel. Sie erhalten mitunter Informationen zum Namen des Inhaltsstoffes, Cas/Enecs-Nummern, Kurzinfo, Komponenten-Herkunft etc.
Abfrage einer detaillierten Liste zu einem Artikel / Hersteller. Sie erhalten mitunter Informationen zum Namen / Firmierung des Herstellers, Email, Telefon, Webseite, Adresse, Logo-Link etc.
Die Abfrage ist anhand der PZN oder des Hersteller-Keys möglich.
key → PZN oder Hersteller-Key
type → "pzn" oder "manufacturer"
Abfrage einer "unqualifizierten" Liste (ohne Timestamp) für PZNs oder Hersteller-Schlüssel/Keys zu denen GPSR-Daten vorliegen.
<?php ini_set('soap.wsdl_cache_enabled', 0); ini_set('display_errors', 1); error_reporting(E_ALL); $url = 'https://api.gebrauchs.info/interface/gebrauchsinfo.wsdl'; $usr = 'BENUTZERNAME'; $pwd = 'PASSWORT'; try { $client = new SOAPClient($url); //1. TEST print $client->rpcTest('TEST/WSDL')."<br />\n"; //2. PZN-LISTE $pznliste = $client->getPZNList($usr, $pwd); if(count($pznliste) > 0) { echo '<pre>'; var_dump( $pznliste ); echo '</pre>'; echo count($pznliste)." Elemente<br />\n"; } else { echo "PZN-Liste leer<br />\n"; } //3. PDF-LINKABFRAGE $link = $client->getPDFLink($usr, $pwd, '0429186', 'd'); echo '<a href="'.$link.'">'.$link.'</a>'; } catch (SOAPFault $f) { print $f->faultstring; }
<?php ini_set('soap.wsdl_cache_enabled', 0); ini_set('display_errors', 1); error_reporting(E_ALL); $url = 'https://api.gebrauchs.info/interface/gebrauchsinfo.wsdl'; $usr = 'BENUTZERNAME'; $pwd = 'PASSWORT'; try { $client = new SOAPClient($url); //1. TEST print $client->rpcTest('TEST/WSDL')."<br />\n"; //2. INTERAKTIONSCHECK $pzns = array(6312077, 1235544, 106, 112); echo '<pre>'; $itx = $client->checkItx($usr, $pwd, $pzns); echo '</pre>'; } catch (SOAPFault $f) { print $f->faultstring; }
Es handelt sich um eine Rest-Schnittstelle, die in der Benamung der Funktionen und Parameter stark an die MSV3-Schnittstelle angelehnt ist. Die Api kann in einem Sandbox-Testmodus und einen Produktiv-Modus ausgeführt werden. Dazu wird bei jeder relevanten Api-Funktion der Parameter "mode" übergeben (gültige Werte sind "live" und "sandbox").
Im Sandbox-Modus werden die Anfragen (bspw. wie "bestellen") mit fiktiven gültigen Szenarien beantwortet, aber die Anfrage wird intern beim Großhandel nicht ausgeführt. Von einigen Großhandel-Anbietern erhalten Sie dazu verschiedene Test-Accounts, um ebenso verschiedene positive sowie negative Antworten zu erhalten oder inhaltlich verschiedene Haupt- und Verbund-Szenarien durchlaufen zu können. Solche Details hinsichtlich Accounts und Einstellungen sind mit dem jeweiligen Großhandel zu klären.
Eine weiterer Unterschied zwischen den Modi liegt im Anfrage-Limit der Großhändler. Einige beschränkten die Anfragen an "Ihre" MSV3-Schnittstelle - i.d.R. liegen diese zwischen 150-350 Anfragen pro Tag (z.B. bei Gehe, Noweda, Spangropharm). Dies ist beim jeweiligen Großhandel zu erfragen.
Die Haupt-Url für diese Schnittstelle ist: https://msv3.gebrauchs.info/interface/
Zur Ansteuerung der gewünschten Api-Funtkion wird der Funktionsname an die o.g. Domain angehangen.
Für die Bestell-Funktion gilt dann bspw: https://msv3.gebrauchs.info/interface/bestellen
Alle weiteren Parameter werden als Post-Variablen übergeben. Der API-Response erfolgt im JSON-Format. Aktuell werden die MSV3-Schnittstellen zu Alliance-Healthcare, Gehe, Noweda, Phoenix, Sanacorp, Spangropharm unterstützt. Weitere folgen oder auf Anfrage.
Hier finden Sie eine PHP-Klasse und -Client zur Anbindung der MSV3-Schnittstelle von Gebrauchs.Info:
Die offiziellen Dokumentationen der MSV3-Normen finden Sie hier. Sie geben einen Überblick über die Parameter der einzelnen Calls:
weitere Details zu MSV3-internen Funktionslogiken und Parametern entnehmen Sie bitte den o.g. Dokumentationen der MSV3-Normen 1.0 und 2.0.
Dies ist eine optinale Funktion, um unabhängig von Ihrem Account eines Großhandels, zunächst die Verbindung zum MSV3-Dienst von Gebrauchs.info zu testen.
Request-Url: https://msv3.gebrauchs.info/interface/test --------------- Post-Parameter: 'testStr' => 'optional - wird bei der Antwort mit zurückgeliefert'
Dient zur Authentifizierung der Gebrauchs.info MSV3-Schnittstelle. Vor Nutzung aller folgenden MSV3-Funktionen ist hierdurch eine einmalige Authentifizierung erforderlich. Bei erfolgreicher Durchführung wird ein Auth-Token zurückgeliefert, der bei den folgenden MSV3-Funktionen zu übergeben ist. Die Zugangsdaten von Gebrauchs.info müssen dann im weiteren nicht verwendet bzw. an die Schnittstelle übertragen werden. Der Auth-Token ist maximal 24h gültig.
Request-Url: https://msv3.gebrauchs.info/interface/getAuthToken --------------- Post-Parameter: 'username' => 'string *', 'password' => 'string *'
Dies ist der 2. Schritt von möglichen Verbindungstests. Wenn die Verbindung zur Schnittstelle von Gebrauchs.info erfolgreich ist, kann hiermit die Verbindung / der Account des Großhandels geprüft werden. Wenn kein Fehler zurück gemeldet wird, gibt dies an, dass der Service korrekt erreichbar und die Authentifizierung erfolgreich war.
Request-Url: https://msv3.gebrauchs.info/interface/verbindungTesten --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *'
Noch vor der Erstellung und Übertragung einer Bestellung an den pharmazeutischen Großhandel, kann mit dieser Funktion für einen Artikel eine Bestandsanfrage beim Großhandel durchgeführt werden. Diese Art der Anfrage soll nicht dazu benutzt werden, systematisch eine große Anzahl von Artikeln abzufragen! Dafür ist die VerfügbarkeitsanfrageBulk vorgesehen. Da der Detaillierungsgrad der Rückmeldung unterschiedlich sein kann, wird grundsätzlich unterschieden zwischen spezifischen (mit Mengen- und ggf. Terminangabe) und unspezifischen Rückmeldungen auf die Verfügbarkeitsanfrage.
Request-Url: https://msv3.gebrauchs.info/interface/verfuegbarkeitAnfragen --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'pzn' => 'number', 'amount' => 'number'
Zum Abgleich mit Ihrem Warensortiment (z.B. für den Online-Versandhandel) kann hier eine gesamte Artikel-Verfügbarkeitsliste abgefragt werden. Dies ist mit dem jeweiligen Großhandel zu klären, ob die Filialnummer berücksichtigt wird, oder interne Einstellungen beim Großhandel greifen. Bulk-Verfügbarkeitsanfragen enthalten keine angefragte Menge und die Rückmeldung enthält nur die Information "verfügbar" oder "nicht verfügbar". Ggf. geben einige wenige Großhändler Zeitfenster für die Abfrage diese Funktion vor - dies ist mit dem jeweligen Großhandel abzuklären.
Request-Url: https://msv3.gebrauchs.info/interface/verfuegbarkeitAnfragenBulk --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *',
Hierdurch erfolgt eine Waren-Bestellung mit spezifischer Anfrage zu einem jeweiligen pharmazeutischen Großhandel.
Der GH gibt eine Rückmeldung über die Lieferbereitschaft der einzelnen Artikel. Bei den Bestellpositionen handelt es sich um einzelne Artikel. Für die Angabe von Artikeln wird die PZN verwendet. Zusätzlich erfolgt die Angabe der jeweiligen Bestellmenge.
Der Bestellvorgang ist abgeschlossen, wenn die Bestellung erfolgreich übermittelt und vom Großhandel quittiert wurde. Eine Erweiterung der Lieferung ist durch erneute Bestellungen möglich. Dabei wächst die Menge der gelieferten Artikel stetig an.
Zur eindeutigen Identifikation einer Bestellung übermittelt die Apotheke eine technische ID. Dabei handelt es sich um eine vom Apothekensystem erstellte Kennung (GUID), die vom Apothekensystem verwendet werden kann (und daher intern vorgehalten werden sollte), um bei Problemfällen den Eingangsstatus und die Rückmeldungen einer früheren Bestellung erneut abfragen zu können (siehe bestellstatusAbfragen).
Es werden keine zusätzlichen Infos wie Charge, Verfall zurückgemeldet. Für jede Bestellung gilt, dass zusätzliches Wannensplitting aus logistischen Gründen (z.B. Kühlware, Opiate, Großvolumen) dem Großhandel vorbehalten ist.
Beim Parameter "Auftragsart" ist standardmäßig bei jedem Großhandel die Option "NORMAL" verfügbar. Weitere Optionen wie "VERSAND" sind mit dem Großhandel zu klären und explizit durch diesen im Account aktivieren zu lassen. Dies kann entscheidenden Einfluss auf Wannenverdichtung, -aufdruck und Lieferscheine haben.
Request-Url: https://msv3.gebrauchs.info/interface/bestellen --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'basket' => 'mixed - Auftraege max. 1000, Positionen max. 1000' --------------- Basket-Parameter: 'BestellSupportId' => 'int - 1 bis 999999', 'UUID' => 'uuid-string - optional - ID für Call "bestellstatusabfragen"', 'Auftraege' => array( array( 'Auftragsart' => 'NORMAL, STAPEL, SONDER, VERSAND', 'Auftragskennung' => 'string - DruckbareKennung [A-Z0-9+\-_]{1,20}' 'AuftragsSupportID' => 'int - 1 bis 999999', 'UUID' => 'uuid-string - optional', 'GebindeId' => 'string - bei Auftragsart=VERSAND - sonst nicht erlaubt' 'Positionen' => array( array( 'Pzn' => 'int', 'Menge' => 'int', 'Liefervorgabe' => 'Normal, MaxVerbund, MaxNachlieferung, MaxDispo' ), ... ), ... ), ... )
Die Rückmeldungen einer Bestellung können unter Angabe der ID einer Bestellung (1.UUID des Calls "bestellen") nachträglich abgefragt werden. Damit kann nach Verbindungsabbrüchen sicher geprüft werden, ob eine Bestellung wie gewünscht übermittelt wurde und die fehlenden Rückmeldungen abrufen. Die Rückmeldungen entsprechen exakt der ursprünglichen Bestellantwort beim Call "bestellen".
Für den Fall, dass dem Großhandel die ID der Bestellung nicht bekannt ist, kann davon ausgegangen sein, dass die Bestellung nicht erfolgreich war.
Die ID einer Bestellanfrage soll mindestens für Bestellungen des gleichen Kalendertags abrufbar sein.
Bestellungen mit der Antwort Nachtdienst=1 können nicht abgefragt werden. Sie werden ausserhalb der individuellen Annahme-Zeitfenster des Großhandels zwar angenommen aber nicht direkt ausgeführt. Die Ausführung kann u.U. am Folgewerktag ausgeführt werden. Zeitfenster für Bestellannahmen sind beim Großhandel zu erfragen bzw. zu definieren.
Es können nur Rückmeldungen zu erfolgreich abgeschlossenen Bestellungen erfragt werden.
Request-Url: https://msv3.gebrauchs.info/interface/bestellstatusAbfragen --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'bestellid' => 'uuid-string - siehe 1.UUID bei Call "bestellen"'
Mit dieser Funktion kann zu einer zeitlich begrenzt gültigen DokumentenId (GUID) ein PDF-Dokument herunter geladen werden. Aktuell wird diese Funktion für die optional zurückgelieferten Lieferavis-PDFs sowie optional zurückgelieferte Retourenbelege-PDFs des Großhandels benutzt.
Request-Url: https://msv3.gebrauchs.info/interface/dokumentAbfragen --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'dokumentId' => 'uuid-string'
Anfrage eines Rücknahme-Angebotes anhand der Übergabe von spezifischen Artikel-Postionen.
Der Großhandel bestätigt die Übermittlung mit einer ReferenzID, auf die in weiterem Kontakt-Verlauf bezug genommen werden kann / soll.
Eine detaillierte Verhandlung über ein Rücknahmeangebot soll laut MSV3-Dokumentation dann via Telefon/Mail/Fax mit dem Großhandel erfolgen.
Da derzeit keine Angaben zu Chargen übertragen werden, ist es nicht nötig, eine PZN in einer Anfrage mehrfach zu übertragen.
Request-Url: https://msv3.gebrauchs.info/interface/ruecknahmeangebotAnfordern --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'articles' => 'mixed - max. 1000' --------------- Articles-Parameter: array( array('Pzn' => 'int', 'Menge' => 'int'), ... )
Sobald bei der Abwicklung einer Bestellung die Bestandteile (Positionen), die in einer Lieferung zusammengefasst werden und für die ein gemeinsames physisches Begleitdokument erstellt wird, bereitgestellt sind, stellt der Großhandel ein Lieferavis mit den betroffenen Positionen (PZN, bestellte Menge, im Rahmen dieser Lieferung gelieferte Menge, weitere Informationen) bereit. Dieses elektronische Dokument ist unabhängig von der weiteren Behandlung der Ware von der Apotheke abrufbar. Die Apotheke quittiert den Empfang des Lieferavis.
Lieferavise werden auf Seiten des Großhandel für mindestens 7 Tage vorgehalten. Die Abfrage neuer Dokumente erfolgt aktiv durch die Apotheke. Die Abfrage erfolgt maximal alle 30 Minuten während der Öffnungszeiten. Manuell ausgelöste Abfragen - bspw. durch den Scan eines Lieferscheins – sind zusätzlich oder alternativ möglich.
Request-Url: https://msv3.gebrauchs.info/interface/lieferavisAbfrageNeu --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *'
Nach dem Abruf von neuen Lieferavis mit der Funktion lieferavisAbfrageNeu werden diese unter Angabe der jeweiligen Lieferscheinnummer bestätigt. Nur bestätigte Lieferavis werden beim nächsten Abruf mit der Funktion lieferavisAbfrageNeu nicht mehr mitgeliefert.
Request-Url: https://msv3.gebrauchs.info/interface/lieferavisBestaetigen --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'lieferscheinnummer' => 'string *'
Ist im Problemfall ein in der Apotheke abgescannter aktueller Lieferschein auch nach Aufruf der Funktion lieferavisAbfrageNeu dem Apothekensystem nicht bekannt, kann jedes Lieferavis der letzten 7 Tage einzeln erneut abgerufen werden. Diese Funktion darf laut Dokumentation der MSV3-Normen ausschließlich bei Problemfällen (wie z.B. ein oder mehrere Lieferscheine unbekannt) aufgerufen werden.
Request-Url: https://msv3.gebrauchs.info/interface/lieferavisAbfrageHist --------------- Post-Parameter: 'auth_token' => 'string', 'msv3_username' => 'string *', 'msv3_password' => 'string *', 'mode' => 'string *', 'provider' => 'string *', 'branchnumber' => 'number *', 'lieferscheinnummer' => 'string *', 'barcodeReferenz' => 'string *'
Die Beschreibungstexte der einzelnen MSV3-Funktionen sind teilweise aus den Dokumentationen der MSV3-Normen 1.0 und 2.0 der Dateg GmbH übernommen. Siehe PDF-Verlinkung unter MSV3 - Technologie.
Die Artikel-Suche wird über REST zur Verfügung gestellt. Es existiert sowohl ein Test- als auch Produktiv-System. Die Endpoints dafür lauten wie folgt:
https://search.gebrauchs.info/interface/
https://devsearch.gebrauchs.info/interface/
Die Authentifizierung erfolgt über Credentials, die als Post-Parmeter übrmittelt werden - Zugangsdaten erhalten Sie in Absprachen mit dem Support.
Ein Austausch von Datenfeeds ist nicht erforderlich. Es werden die Produkte des offiziellen ABDATA-Artikelstamms ausgespielt. Diese belaufen sich auf mehr als. 700.000 Artikeldatensätze.
Alle Parameter der Api-Requests werden als POST-Variablen übermittelt. Der API-Response erfolg im JSON-Format.
Die Such-Anfrage erfordert die POST-Parameter "term" (Suchbegriff), "username" (Api Benutzername) und "password" (Api Passwort). Der Parameter "term" kann rein numerisch (PZN, EAN - führende Nullen sind irrelevant) oder alphanumerisch sein.
Es werden nur Pzns zurück geliefert in unsortierter Weise pro Listen-Dimension.
Das Ergebnis kann bis zu drei Listen-Dimensionen aufweisen, die jeweils nur Pzns enthalten - mindestens aber eine Listen-Dimension "products" sofern mindestens ein Ergebis gefunden wird.
{ "prime":[ 2483617 ], "promo":[ 2860876, 3999961, 7134287 ], "products":[ 2860876, 3999961, 7134287, 11134962, 09289433, ... ] }
(SELECT * FROM `Products` WHERE `Pzn` = Prime-Pzn AND XYZ GROUP BY XYZ ORDER BY XYZ) UNION (SELECT * FROM `Products` WHERE `Pzn` IN ( Promo-Pzns ) AND XYZ GROUP BY XYZ ORDER BY XYZ) UNION (SELECT * FROM `Products` WHERE `Pzn` IN ( Products-Pzns ) AND XYZ GROUP BY XYZ ORDER BY XYZ)
<?php ini_set('display_errors', 1); error_reporting(E_ALL); define('SANDBOX', true); $api_user = ''; $api_pass = ''; $api_term = 'umklabo'; if(SANDBOX) { $curlServiceUrl = 'https://devsearch.gebrauchs.info/interface/'; } else { $curlServiceUrl = 'https://search.gebrauchs.info/interface/'; } $postData = array('term' => $api_term, 'username' => $api_user, 'password' => $api_pass); $ch = curl_init($curlServiceUrl); curl_setopt($ch, CURLOPT_VERBOSE, SANDBOX); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSLVERSION, 'CURL_SSLVERSION_TLSv1_2'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); if(isset($postData) && is_countable($postData) && count($postData) > 0) { $curlPostData = http_build_query($postData); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPostData); } $response = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if($http_code <= 400) { if(!empty($response)) { $result = json_decode($response, true); // dimensions => prime, promo, products if(is_countable($result) && count($result) > 0) { var_dump($result); } } }