Koncepce systému Úvod
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.
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:
Souborový server - sdílený síťový disk protokolem SMB
Databázový server - Interbase v6
Print server
Abstraktní systém styku s ostatními nemocničnímy systémy
Automatické zálohování
Systém zotavení z chybových stavů
Administrátorský vzdálený přístup
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.
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é.
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.
Laboratorní systém bylo možno provozovat i v prostředí Novellské sítě - tento systém není již ve verzi
2001 podporován.
Nedatabázový charakter systému
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.
Vlastní evidence vzorků, vyúčtování apod. jsou složitostí marginální. Zcela dominuje kniha jako taková
a nutnost flexibilní práce s ní.
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".
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í.
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.
Jedná se o cenově přístupný systém, jinak by podobná úroveň bezpečnosti dat vyžadovala řádově
dražší operační prostředí.
Interpretační charakter systému
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.
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.
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í.
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.
Konfigurační soubory jsou mnoha typů, za zmínku stojí především:
Číselníky - prosté sekvenční seznamy. Obvykle definují náležitosti jako je seznam laboratoří,
uživatelů systému, povolených hodnot apod.
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ů.
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 ...)
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í.
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".
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.
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í.
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í.
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.
Grafický subsystém
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ů.
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.
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ěží.
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".
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ů.
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.
Rejstřík kapitoly Nadřízená kapitola dokumentace