--
Pozdrawiam
Er
mailto:er2002@##WYKASUJ##poczta.onet.pl
Na stronie misterstwa masz takie informacje.
--
Pozdrawiam,
Łukasz Jagiełło
Mo�na tak :
IMS BAZYL (za darmo dla zarejestrowanych u�ytkownik�w, rejestracja te� jest darmowa)
i popyta� u nich o s�ownik - BAZYL - BLOZ - popyta� pana Jaros�awa Filipka
(aktualizujďż˝ 2-3 razy do roku)
Podstawowa baz KS-BLOZ - za darmo, niekodowana (PodsBloz.zip) z ich FTP.
Masz wszystko w ten spos�b.
Albo dogaduj siďż˝ z firmďż˝ Kamsoft :)
Z pozdrowieniami
Jacek Kruszniewski
--
"Serce rozwa�ne szuka m�dro�ci, usta niem�drych syc� si� g�upot�."
(Prz 15:14)
Znalazlem http://www.bil.aptek.pl/servlet/leki/search
I to jest to co potrzebuje - tyle, ze nie znalazlem opcji
offline/pobrania bazy :(
Doczytujac informacje o wykonawcy serwisu okazuje sie, ze to Kamsoft.
Jacek Kruszniewski napisał(a):
> IMS BAZYL (za darmo dla zarejestrowanych użytkowników, rejestracja też
Brakuje kodow EAN :(
> Podstawowa baz KS-BLOZ - za darmo, niekodowana (PodsBloz.zip)
Brakuje kodow EAN :(
Parser napisz i sobie pobierz.
--
Pozdrawiam,
Łukasz Jagiełło
Napisz sobie parser, który wyciągnie te dane ze strony i zapisze Ci w
bazie. Nic specjalnie trudnego.
--
Pozdrawiam,
Łukasz Jagiełło
> Zerknalem w zrodla strony i interesujace pole formularza ma nazwe
> FFFVFFFVleki0
> O ile dobrze rozumiem to nalezy w petli wywolac strone przesylajac w
> polu j.w. wartosci od a do z?
>
Nie, wystarczy posłąć POST'em tam np. a, a następnie GET'em
www.bil.aptek.pl/servlet/leki/search?ofs=0
www.bil.aptek.pl/servlet/leki/search?ofs=10
itd... (co 10), aż do skutku (końca, bez zrywania połączenia)
Strona zbudowana jest na bazie POST, GET i session
--
Artur
> >> Parser napisz i sobie pobierz.
> > Mozesz cos wiecej napisac?
> Napisz sobie parser, który wyciągnie te dane ze strony i zapisze Ci w
> bazie. Nic specjalnie trudnego.
Gdyby html (chociaż w samej <table> z danymi) był porządny to było
jeszcze prościej, wystarczyłoby go potraktować jako xml, niestety są
np. takie kwiatki:
<th class="h">Lp.</td>
<th class="h">KOD</td>
<th class="h">Nazwa</td>
<th class="h">Nazwa chemiczna</td>
<th class="h">Postać</td>
<th class="h">Dawka</td>
<th class="h">Opak. handl.</td>
<th class="h">Kat.<br/>dost.</td>
<th class="h"><span title="WLR - Czy lek jest zamieszczony w wykazie
leków refundowanych">WLR</span></td>
<th class="h">Podmiot odpow./<br/>Importer równ.</td>
<th class="h">Nr<br/>pozw. PL</td>
<th class="h">EAN</td>
Pzdr
PS. podają, że dane będą ulegać aktualizacji, ale tego co 'zrobili' raczej
nie zmienią. :)
Może mnie za to ubiją - ale masz przyykład PHP:
<?php
/*
badania.php
Skrypt przeznaczony do zbierania danych o nazwach badań
i alternatywnych nazwach dla nich. Dane zbierane są z dwu
stron www (analizowane linki i pobierane dane z odpowiednich
podstron).
Dane wyjściowe przeznaczone są do wyrzucenia na konsolę,
można je następnie przekierować do pliku. Dane wyjsciowe są
w formacie csv (excel).
*/
include_once('./simple_html_dom.php');
set_time_limit( 0 );
/* ****************************************************** */
/* ****************************************************** */
/* ****************************************************** */
// Wzorzec podstawowy strony z badaniami
$htmlA = "http://www.labtestonline.pl/tests";
// pobranie strony głównej
$html = file_get_html( $htmlA."/index.html" );
// wybranie wszystkich linków ze strony głównej
foreach( $html->find( 'select[id=lstTest]' ) as $select )
{
foreach( $select->find( 'option' ) as $option )
{
// budowa linku do pobrania na podstawie wartości z option
$link = $htmlA.$option->value;
//echo $link."\n";
// pobranie strony z linku
$htm = file_get_html( $link );
foreach( $htm->find( 'div[id="test"]' ) as $name )
{
// Nazwa główna - nagłówek
$strname = trim( $name->find( 'div[class="testtitle"]', 0
)->plaintext );
echo( $strname.";" );
// pobranie pozostałej częsci
$astr = explode( '<br>', $name->find( 'div[class="testname"]',
0 )->innertext );
// oficjalna nazwa
$pos = strripos( $astr[ 1 ], '</b>' );
$astr[ 1 ] = trim( substr( $astr[ 1 ], $pos + 4 ) );
if( $astr[ 1 ] == "" )
echo( $strname.";" );
else
echo( $astr[ 1 ].";" );
// inne nazwy
$pos = strripos( $astr[ 0 ], '</b>' );
$astr[ 0 ] = substr( $astr[ 0 ], $pos + 4 );
echo( trim( $astr[ 0 ] )."\n" );
}
$htm->clear();
}
}
$html->clear();
/* ****************************************************** */
/* ****************************************************** */
/* ****************************************************** */
// Tablica znaków (indeksów), od których zaczynają się nazwy
$alit = array( '1', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
'I', 'K', 'L', 'Ł', 'M', 'N', 'O',
'P', 'R', 'S', 'Ś', 'T', 'W', 'Y', 'Z', 'Ż' );
// Tablice podmian z->na, ominięcie zbytecznych fragmentów i naprawa bajzlu
$afrom = array( "Nazwa Badania",
"Nazwa parametru",
"Stosowane nazwy / skróty",
"Slangowe nazwy: ",
";", "\n", "\r", " ",
"&ndash,", "–,", "ó,", "¶", "±" );
$ato = array( "", "", "", "",
",", " ", " ", " ",
"-", "-", "ó", "ś", "ą" );
// Wzorce podstawowe stron z badaniami
$htmlB =
"http://www.lmbruss.pl/serwispacjentow.php?section=oferta&subsection=badania&lit=";
$htmlBB = "http://www.lmbruss.pl/serwispacjentow.php";
// poszczególne linki wg indeksów z tablicy 1 A B...
for( $i = 0; $i < count( $alit ); $i++ )
{
// Pojedyncza podstrona z linkami do badań na daną literę
$html = file_get_html( $htmlB.$alit[ $i ] );
// wybranie wszystkich linków ze strony
foreach( $html->find( 'ul.link' ) as $link )
{
foreach( $link->find( 'a' ) as $list )
{
// tylko pozycje bez odwołań do innych pozycji (patrz)
$pos = strripos( $list->outertext, 'patrz' );
if( $pos === false )
{
// strona z opisem pojedynczego badania
$htm = file_get_html( $htmlBB.$list->href );
// właściwy div, tabela
foreach( $htm->find( 'div[id=IndexResults]' ) as $table )
{
$line = "";
foreach( $table->find( 'tr.row' ) as $row )
{
$text = trim( str_ireplace( $afrom, $ato,
$row->plaintext ) );
if( $line == "" )
$line .= $text.";".$text.";";
else
$line .= $text;
}
echo( $line."\n" );
}
$htm->clear();
}
}
}
$html->clear();
}
/* ****************************************************** */
/* ****************************************************** */
/* ****************************************************** */
?>
--
Artur
>Witam
>Czy ktos z Forumowiczow orientuje siďż˝, czy jest gdzies dostapna baza
>lek�w bloz (wraz z kodami EAN)?
>Jedynie gdzie znalazlem do produkt Kamsoftu (KS BLOZ) - niestety jest on
>komercyjny.
Lista kod�w EAN lek�w (ale tylko dla cen urz�dowych a i to nie dla
wszystkich produkt�w) by�a dost�pna w formacie *.doc na stronach MZ
ale dzisiaj jej nie znalaz�em - jest tylko *.pdf .
Z serwera FTP firmy Kamsoft mo�na pobra� baz� KS-BLOZ (w *.dbf)
ale z tego co ostatnio sprawdza�em, to kody EAN by�y uzupe�nione
g��wnie dla lek�w urz�dowych :(
Teoretycznie lista zarejestrownych lek�w i produkt�w leczniczych
powinna by� dost�pna na stronch MZ w formacie "og�lnodost�pnym"
XML, CSV ale... wysz�o "jak zwykle" ...
Ostatecznie mo�na PDFa potraktowa� OCRem ;)
Miałem okazje interesować się tematem. Nikt się nie poczuwa do
udostępnienia w czym innym niż jest na stronie, czyli pdf.
> Ostatecznie można PDFa potraktować OCRem ;)
Tableki trochę słabo to wychodzi.
--
Pozdrawiam,
Łukasz Jagiełło
--
Artur
zmu� do tego urz�das�w, jak si� uda to wszyscy wygramy
--
Przemek
--
Artur
PS - coś co można zawrzeć w 20-30 KB, serwują w 2-3 MB :) chodzi o pdf'y.
--
Artur
I tak i nie.
Zgodnie z prawem farmaceutycznym informacje o lekach sa dwojkiego
rodzaju - inne dla farmaceutow i lekarzy oraz inne dla pacjentow.
Stad czesto aby miec pelny dostep trzeba podac np prawo wykonywania zawodu.
Tyle, ze ja szukam bazy samych nazw (handlowa i miedzynarodowa), postaci
recepturowych (tabletka, ampulka, fiolka, masc, krem, zel itp) z
gramatura oraz kodow ean.
Nie szukam pełnych informacji - o nich mam dostep jako lekarz (via
mp.pl, pharmindex, itd itp)
S�, mo�e nie dla wszystkich produkt�w, ale dla wszystkich refundowanych lek�w i z
rejestracji na pewno popatrz pole KRESKOWY w tablicy PARAMETR.
(ponad 41000 kod�w EAN)
>
> > Podstawowa baz KS-BLOZ - za darmo, niekodowana (PodsBloz.zip)
> Brakuje kodow EAN :(
>
>
Brak - niestety - ale IMS ma s�ownik BAZYL-BLOZ - a ta ukr�cona tablica ma s���
tylko do wgl�du.
>artiun napisaďż˝(a):
>> Wracam do tematu - ta informacja ma i musi by� og�lno dost�pna, nie
>> przez rami� - bezpo�rednio.
>
>Tyle, ze ja szukam bazy samych nazw (handlowa i miedzynarodowa), postaci
>recepturowych (tabletka, ampulka, fiolka, masc, krem, zel itp) z
>gramatura oraz kodow ean.
... dawka, substancja czynna, waga jednostkowa, wymiary opakowania
jednostkowego, opakowania zbiorcze (+ wymiary)
ale tego to nawet na stronach producenta nie znajdziesz :(
A wydawa�oby by si�, �e wszystkie leki maj� obowi�zek by�
rejestrowane, jaki� urz�d to robi... pewnie ma nawet jak�� baz�....
zw�aszcza, �e kody EAN dla lek�w s� .... specjalnie dla Polski
tzn. co� co na ca�ym �wiecie ma kod EAN producenta a specjalnie dla
Polski musi mieďż˝ inny kod ....
Nie zartuj! Przeciez cala zaleta EAN polega na tym, ze kody sa unikatowe!
Je�eli - tylko to to zarejestruj si� w IMS - tam jest to wszystko i wi�cej.
http://www.karnet.waw.pl/bazyl.html
Jeszcze raz sprawdza�em - maj� EAN dla wszystkich zarejestrowanych produkt�w
leczniczych w Polsce.
Producenci oprogramowania dla aptek (opr�cz KAMSOFT-u) korzystaj� w�a�nie z tej bazy.
wybaszcz niom ja chm jekus nie lapiem
'słóżć' cu to mnialo byccc??
żona (a jak najbardziej szanuj) powiedziała - idź spać
'słóżć' - bowiem to jest jakiś test polszczyzny - AABO gość się przykleił do
klawisza ALT.
--
Artur
paleta aspiryny ma ten sam ean co jedna paczka?
--
Przemek
Jako produkt konkretnego producenta tak. Bayer produkujac swoja aspiryne
ma unikatowy ean (a dokladniej rzecz ujmujac unikatowy jest 2 i 3 obszar
kodu ean13 czyli kod wytw�rcy oraz kod produktu).
Ty czytales cos na temat budowy kodow kreskowych np ean13?
Wiesz jak jest zbudowany?
Masz racje. W tabeli parametr znajduja sie kody EAN.
Czyli mam to co szukalem.
Dzieki za pomoc
niestety wiem i si� zastanawiam czy paleta mo�e mie� inny ean ni�
opakowanie przy tym samym asortymencie?
--
Przemek
Ale kodem ean identyfikujesz produkt a nie ilosc produktu w opakowaniu.
W mojej ocenie to juz jest w gestii softu do obslugi firmy jak to
zapisujesz w nazie danych.
Na palecie to jest przewa�nie kod transportowy EAN-128
(kodowanie wg Code-128 ale kolejne numerki majďż˝ specjalne znaczenie)
>pwola napisaďż˝(a):
>> zw�aszcza, �e kody EAN dla lek�w s� .... specjalnie dla Polski
>> tzn. co� co na ca�ym �wiecie ma kod EAN producenta a specjalnie dla
>> Polski musi mieďż˝ inny kod ....
>
>Nie zartuj! Przeciez cala zaleta EAN polega na tym, ze kody sa unikatowe!
Normalnie to kod EAN-13 powinien wygl�da� tak:
kkk pppp aaaaa c
...
kkk ppppppp aa c
gdzie kkk - kod kraju ( dla Polski 590)
pppp - kod producenta
aaaaa - kod artyku�u u producenta
c - cyfra kontrolna
I teraz np. mamy lek wyprodukowany w Czechach gdzie zaczyna siďż˝ kodem
dla Czech 859 (ale w Polsce musi juďż˝ mieďż˝ na poczatku 590)
Poza tym mo�e si� zdarzy�, �e ten sam towar z 2 dostaw ma inne kody
EAN (bo np. producent dostaďż˝ nowy numer zezwolenia)