JLABS

Mikrobiologie-2001.Systém.Koncepce

Koncepce systému


Bullet Úvod


Bullet Software je určen pro práci v laboratorním prostředí, některé jeho komponenty jsou určeny spíše pro výzkumnou práci a jiné opět pro komunikaci s nemocnicí jako celkem nebo dokonce v širším rámci s lékaři mimo nemocnici. Proto je systém tvořen řadou aplikací, část z nich je určena k provozu na lokálních PC, část pro změnu pouze pro provoz v prostředí serveru.
Bullet Jádrem systému je server, který je provozován pod operačním systémem Linux a poskytuje satelitním počítačům mimo jiné tyto služby:
Bullet Souborový server - sdílený síťový disk protokolem SMB
Bullet Databázový server - Interbase v6
Bullet Print server
Bullet Abstraktní systém styku s ostatními nemocničnímy systémy
Bullet Automatické zálohování
Bullet Systém zotavení z chybových stavů
Bullet Administrátorský vzdálený přístup

Bullet Pokročilejší komponenty systému komunikují se serverem resp. s jeho databází v modu klient-server nebo pomocí specializovaných protokolů a rovněž HTTP.
Bullet Vlastní laboratorní aplikace byly z mnoha důvodů koncipovány pro nativní DOSové prostředí a explicitně využívaly de-facto jenom sdílený disk pro komunikaci s daty i mezi stanicemi. Ve verzi 2001 je posun dat směrem do databázového prostředí, původní fragmentární charakter systému byl ale zachován a rozvinut v systému silně komprimovaných archivů. Prakticky to znamená, že systém data podle vlastního uvážení skladuje jako databázové záznamy nebo součásti externích komprimovaných archivů - z pohledu uživatele to je nerozpoznatelné.
Bullet Pro laboratorní úlohy je styk s externími databázemi (registr pacientů,...) zabezpečen speciálním systémem "Datobotů", což jsou permanentně běžící serverové úlohy, které dokáží komunikovat na jedné straně s libovolnými systémy (ORACLE,Interbase,Informix,...) a na druhé straně s laboratorními aplikacemi. Tak je styk kupříkladu s centrálním ORACLEm zabezpečen aniž je nutno na koncové stanice instalovat ovladače k databázi apod.
Bullet Laboratorní systém bylo možno provozovat i v prostředí Novellské sítě - tento systém není již ve verzi 2001 podporován.


Bullet Nedatabázový charakter systému


Bullet Vlastní práce s laboratorní knihou je aplikace, která se vymyká z běžného rámce. Nejedná se vůbec o databázovou aplikaci, ale mnohem spíše o práci se složitým hypertextem. Vznikající data nemají předem predikovatelný charakter a ani velikost a ani strukturu. To plyne z povahy práce v mikrobiologii, která se tímto velmi zásadně liší od kupříkladu biochemie.
Bullet Vlastní evidence vzorků, vyúčtování apod. jsou složitostí marginální. Zcela dominuje kniha jako taková a nutnost flexibilní práce s ní.
Bullet Teprve registrace a až statistické funkce systému připomínají databázové aplikace, ale ty se dostávají k datům až teprve "učesaným".
Bullet Jiným zásadním rysem je to, že pokud má systém ambice nahradit papírovou dokumentaci, musí umožnit velmi rychlý způsob práce. To samozřejmě vyžaduje velmi efektivní ovládání pomocí kláves - používání myši je téměř nemožné. To je také důvod, proč autoři systému dlouho odkládali migraci do grafického prostředí.
Bullet Data zpracovávaná v laboratoři mají svůj horizont existence, během něj se dostanou po ukončení práce (může být den, ale i mnoho dnů) do definitivní podoby a teprve poté se dostávají do databáze. Do té doby rezidují (a i poté z důvodů dokumentačních a úplnostních) ve zvláštním fragmentovaném systému dat. Tento způsob ukládání je vynucen tím, že i malá havárie datového serveru může mít závažné důsledky. Jakmile je miska s půdou zničena, není jak se k materiálu vrátit. Úplně fragmentární způsob ukládání dat umožňuje zrekonstruovat velmi detailně data i v případě těžké havárie nebo zničení disku na serveru. Ve verzi 2001 je takovéto ukládání prováděno na pozadí serveru a vytváří vlastně velmi detailní log o chodu systému.
Bullet Jedná se o cenově přístupný systém, jinak by podobná úroveň bezpečnosti dat vyžadovala řádově dražší operační prostředí.


Bullet Interpretační charakter systému


Bullet Systém obsahuje řadu komponent, které jsou svým způsobem standardní a dobře definované. Například spooler výsledků. Valná většina komponent systému ale není předem definována, ale jejich chování je důsledkem rozsáhlé uživatelské konfigurace.
Bullet Systém pro registraci vzorků, navigaci v laboratoři a vyúčtování je konfigurován řadou číselníků i odvozovacích pravidel a jedná se o systém z části interpretační. Jeho chování je de-facto determinováno, tedy stále stejně se ovládá, produkuje stále stejné obrazovky, ale některé jeho funkce se konfigurují velmi detailně externími soubory a ve verzi 2001 jsou to nově databázové tabulky s identickým významem.
Bullet Vlastní laboratorní mikrobiologická kniha je realizována důsledně interpretačním programem, u kterého jak vzhled, tak i ovládání a vlastní funkcionalita jsou výsledkem mnoha set konfiguračních souborů. Software tedy neobsahuje v sobě žádně "zadrátované" mikrobiologické znalosti, ale funguje důsledně jako vykonavatel externě definovaných pravidel a souborů. Tento přístup umožňuje na uživatelské úrovni provádět konfigurace a změny bez nutnosti zásahu prográmatorů. Chování každého razítka, nabídky položek, automatické formule pro ohodnocení citlivosti, ale i formální vzhled generovaných výsledků jsou zcela definovány na uživatelské úrovni. Ve verzi 2001 byl tento interpretační mechanismus "zkřížen" s jiným, úplně ortogonálním interpretačním systémem VaxNt tak, že kompletní síla skriptovacího systému VaxNt je využitelná v prostředí mikrobiologických razítek. Tím je možno dosáhnout řádově silnějších účinků co do flexibility systému. To, co se do systému muselo dříve dostávat úpravou binárů se nyní konfiguruje na úrovni skriptovacího jazyka. je tedy i vlastní interpret razítek implementován interpretací.
Bullet Zprovoznění systému pro konkrétní instalaci spočívá tedy v editaci řady obyčejných textových souborů resp. MEMO položek, kterými se detailně popisuje chování systému. Systém je dodáván předkonfigurovaný pro obvyklý stav, program dovoluje administrátorovi konfiguraci - je tedy sám sobě vývojovým i testovacím prostředím.
Bullet Konfigurační soubory jsou mnoha typů, za zmínku stojí především:
Bullet Číselníky - prosté sekvenční seznamy. Obvykle definují náležitosti jako je seznam laboratoří, uživatelů systému, povolených hodnot apod.
Bullet Mustry - to jsou vzorníky textových souborů a jejich kapitol. Kupříkladu výsledky se důsledně generují substitucí hodnot do uživatelských mustrů. Vzhled výsledků je pak zcela v rukou uživatelů.
Bullet Aliasy - zvláštní seznamy rovnic, kterými se konkrétně interpretuje význam každé hodnoty. Umožňují používání synonym v různých laboratořích, kde pak je možno stále stejně pojmenovávat nějakou metodu, ač se jedná o dvě metody subtilně se lišící. Rovněž tak je možno i význam některých pojmů pomocí aliasů měnit - typicky se to děje na bázi per laboratoř. Takto je možno dosáhnout třebas rozdílů ve formátu výsledků podle laboratoří, ale i jiného chování knihy v každé laboratoři - s přizpůsobením laboratoři. (Všude přepokládáme, že mikrobiologické pracoviště je členěno na laboratoře, které obvykle se zabývají určitou předem definovanou množibou vzorků - ambulancí, ARO, externí klientelou ...)
Bullet Vzory úseků - předem definované standardizované zápisy do knihy reprezentující standardní laboratorní postup, který se odvozuje podle přijatého materiálu a konkrétního požadovaného vyšetření.
Bullet Mustry úseků - vzorníky typických a standardních konfigurací knihy ex-ante. Používají se v okamžiku generování "prázdné / inicální knihy".
Bullet Razítka - uživatelsky definované formuláře s velmi sofistikovaným chováním. Reprezentují element práce na laboratoři a jsou mnoha druhů. Zejména významná jsou razítka na citlivosti. Razítka mají typicky velmi složitou definici, mají vlastní neprocedurální jazyk, kterým se ovládají nabídky všech položek, jejich vzájemné vazby, vzhled, barevnost, automatické přepočítávání hodnot a mnoho dalších vlastností. Flexibilita razítek je hlavní technologickou předností implementace knihy.
Bullet Ordinální typy / seznamy. Sáhodlouhé definiční soubory, například sekvence jmen antibiotik. Ta univerzálně slouží k řazení antibiogramů do jednotného uspořádání.
Bullet Orakula - soubory určené k deskriptivnímu přepočítávání hodnot. Umožňují snadnou definici takových triků, jako je automatické ohodnocení C/I/R podle zadané číselné hodnoty s využitím vlastností antibiotika. Orakula mohou ovládat také běh kurzoru po razítcích, tedy logiku vyplňování.
Bullet Esence - definičních souborů je velmi mnoho a v určité fázi běhu potřebuje kniha mít velmi rychle informaci o o téměř všech parametrech - třebas zjednodušenou. Esence jsou zjednodušené podoby konfigurace nebo celé množiny souborů, které kniha používá až do doby, kdy potřebuje skutečně detailní informaci. Takže dokud kniha kreslí razítka v základní neexpandované podobě, vystačí si s esenciální podobou, teprve když se razítko vyplňuje, načítá kniha just-in-time detailní konfiguraci. Tento přístup umožňuje dosáhnout velké rychlosti odezvy s minimálním zdržením při startu. Kniha se konfiguruje za běhu sama tak, jak některé konfigurační soubory potřebuje. Využívá toho, že z mnoha set konfiguračních souborů potřebuje každý konkrétní zápis jenom pár procent.


Bullet Grafický subsystém


Bullet Vlastní kniha využívá velmi sofistikovaných postupů k tomu, aby stíhala v reálném čase zobrazovat interpretované údaje. Původně v DOSové verzi každý znak ze základního rastru 80x25 nebo 80x43 je definován dosti složitým způsobem na základě aktuálního stavu zápisu a práce s ním. Navíc musí být schopna řešit netriviální vazby mezi zobrazovanými objekty, které mohou být některé nepohyblivé a jiné naopak mohou být relativní a tudíž pohyblivé. Enumerace na obrazovce je také výsledkem dynamických výpočtů.
Bullet Z těchto důvodů také dostával přednost systém orientovaný semigraficky, protože s výjimkou špičkového HW by pixelové zobrazení běžná PC nedokázala zvládnout. S rozvojem HW i vylepšením vlastností GUI Windows nebo X-Window ale byl tento přístup přehodnocen a verze 2001 je zcela grafická - v designu si ale samozřejmě ponechává osvědčené postupy.
Bullet Organizace datových struktur, distribuce dat mezi RAM a pevný disk a také složitost interpretací jsou velmi pečlivě definovány tak, aby každá elementární operace (vyvolání nabídky, otisk razítka, posun) byla zvládnutelná za dobu, která se operátorovi jeví vždy jako nevnímatelná. Verze 2001 k tomu využívá fakt, že od doby vzniku systému se přibližně zdvacetinásobila kapacita i výkon běžných počítačů. Důležité údaje jsou tedy z databáze načítány pouze jednou a jsou důsledně ukládány ve vyrovnávací paměti. Tím se tedy systém chová tím rychleji, čím déle běží.
Bullet Z těchto důvodů systém používá předkompilaci datových struktur do binární podoby všude, kde to jde. Uživatele se to netýká - pouze například při definici razítek se skrytě provádí vždy jejich kompilace. malé zdržení v design-time se projeví dramatickým zrychlením aplikací. Verze 2001 používá analogický trik pro práci s razítky. Ta jsou uložena ve své knihovně a teprve při exportu se kompilují a dostávají na horizont viditelnosti aplikace v laboratorním režimu. Vzhledem k velmi důslednému využívání vyrovnávacích pamětí se nedpodoručuje provádět úpravy a export razítek a jiných parametrů za behu systému na ostatních pracovištích. Takováto údržba by se měla dít v období "laboratorního klidu".
Bullet Referenčním počítačem pro laboratoř byl CPU i486/33, RAM 4MB a 1MB grafická karta S3. Stanice může být diskless a pracovní i datové soubory mohou být na 10Mbit síti LAN. Novější a modernější HW se samozřejmě chová patřičně rychleji. Nicméně je software koncipován tak, aby byl plně funkční i v této sestavě. Pro verzi 2001 považujeme za minimální konfiguraci takovou, která pod systémem W95 nebo W98 dovoluje normální práci s nástroji, jako je MSIE, Office apod. Prakticky to znamená CPU Pentium 233 nebo lepší, RAM 32MB nebo 64MB, grafika se 4MB paměti - diskové nároky systému jsou minimální, protože se spouští i provozuje síťově a lokálně si udržuje minimum pracovních souborů.
Bullet V prostředí laboratoře navíc často slabší HW je spíše výhrou - není pak používán k jiným nevhodným účelům. Verze 2001 je ovšem provozovatelná i na počítači i486/33 se 16MB RAMu - není to ale doporučená konfigurace. Na odečítání výsledků nebo tisk by ale měla stačit. Horší je, že na takovéto konfiguraci se spíše projeví slabiny Windows.


Bullet Rejstřík kapitoly
Bullet Nadřízená kapitola dokumentace


JLABS Aktualizováno dne 20001018. Komentář: info@jlabs.cz