Tu môžete vidieť rozdiely medzi vybranou verziou a aktuálnou verziou danej stránky.
Next revision | Previous revision | ||
dev:omega:importzmedirexu [2018/09/28 09:29] Boris Duchaj vytvorené |
dev:omega:importzmedirexu [2018/09/28 11:29] (aktuálne) Boris Duchaj |
||
---|---|---|---|
Riadok 1: | Riadok 1: | ||
====== Importovanie z Medirexu ====== | ====== Importovanie z Medirexu ====== | ||
+ | |||
+ | **vetva gitu duch/probios-labaky** | ||
+ | |||
+ | **Adresár /modules/sk_gpn/ps** teda dať tam kde je aktívny daný modul, klient a pod | ||
+ | |||
+ | Importovanie DASTA dát z Medirexu má na starosti základná trieda //dasta.class.php//, toto je základná povedzme abstraktná trieda, ktorú možeme extendovať dľa potrieb, je výrazne BareBone | ||
+ | |||
+ | Implementácia pre DASTA-u od MEDIREXU nájdeme v //dastaMedirex.class.php// | ||
+ | |||
+ | A Importovanie dát z XML je už implementované v //psku// **ps.probiosDastaImport2.class.php** | ||
+ | |||
+ | Princíp je následovný: | ||
+ | * každý súbor z Medirexu má tvar //DaOKB_P79237009202_A95996009_LIS_1002852708.XML// | ||
+ | * za Da sú tri veľké písmená ktoré definujú o aký typ laboratórnych výsledkov sa jedná, každý typ vyšetrenia vzhľadom na rôznorodosť dáť má samostatnú triedu na spracovanie, ktorá sa inštancuje pri načítaní daného XMLka do PHP | ||
+ | |||
+ | v psku je privátna premenná, ktorá drží v sebe asociácie jednotlivých typov vyšetrenia. Teda ak pribudne nejaký nový typ vyšetrenia je nutné sem pridať definíciu | ||
+ | |||
+ | <code php> | ||
+ | private $groupLabels = array( | ||
+ | |||
+ | "HEM" =>array("label"=>"Hematology","idf"=>"Hem"), | ||
+ | "OKB" =>array("label"=>"Biochemistry","idf"=>"Okb"), | ||
+ | "GEN" =>array("label"=>"Genetics","idf"=>"Gen"), | ||
+ | "IMU" =>array("label"=>"Imunology","idf"=>"Imu"), | ||
+ | "MIK" =>array("label"=>"Microbiology","idf"=>"Mik"), | ||
+ | "SER" =>array("label"=>"Serology","idf"=>"Ser"), | ||
+ | "CYI" =>array("label"=>"Cytology","idf"=>"Cyt"), | ||
+ | "CYG" =>array("label"=>"Cytology","idf"=>"Cyt"), | ||
+ | "BPS" =>array("label"=>"Biopsy","idf"=>"Bps"), | ||
+ | ); | ||
+ | </code> | ||
+ | |||
+ | **Label** má na starosti názov daného vyšetrenia, ktorý sa vloží do Db a je prepojení s Languages, tak že Biochemistry = Biochémia | ||
+ | |||
+ | Každý súbor sa načíta dľa Regular výrazu | ||
+ | <code> | ||
+ | /HEM|OKB|GEN|IMU|MIK|SER|CYI|CYG|BPS/i | ||
+ | </code> | ||
+ | sa zanalyzuje a následne sa spustí trieda ktorá je za to zodpovedná v php t.j. dastaMedirex**//idf//**.class.php | ||
+ | |||
+ | Tento stav je nutný preto, lebo každý XML má trochu iné vnáranie elementov a atribútov | ||
+ | |||
+ | Pre správne fungovanie je nutné mať v databáze tri tabuľky | ||
+ | - **dasta_exams_xml_data** - sem sa ukladajú xmlka, ktoré sú prekonvertované s windows-1250 na UTF8 a je im pridelené group_id | ||
+ | - **dasta_exams_group_patient_data** - tu sú už rozpasrované dáta ako lekár, diagnóza a hlavne typ labáku odkaz na XML a podobne | ||
+ | - **dasta_exams_results_data** - tu už sú jednotlivé výsledky, t.j. každá jedna hodnota je jeden riadok | ||
+ | |||