JEDNODUCHÁ SIMULAČNÍ HRA KROK ZA KROKEM ANEB OD PŘEDSTAVY K HOTOVÉMU



Podobné dokumenty
Tvorba 3D výukových aplikací pomocí technologie

Architektura. Vedení sesterské dokumentace

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

INTERNETOVÝ ATLAS VÝUKOVÝCH MULTIMEDIÁLNÍCH MODELŮ PRO VYBRANÉ KAPITOLY NORMÁLNÍ A PATOLOGICKÉ FYZIOLOGIE ČLOVĚKA. UKÁZKA PŘEDBĚŽNÝCH VÝSLEDKŮ.

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

Web simulator of model of complex human physiology supported by cloud computing

Využití Adobe Flash pro řízení systémů připojených k PC

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

CineStar Černý Most Praha

Bakalářské práce realizované v.net/c# Bachelor thesis implemented in.net/c#

Simluátor Trilobota. (projekt do předmětu ROB)

Seznámení s prostředím dot.net Framework

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Základní informace. Operační systém (OS)

Hospodářská informatika

Katalog biomedicínských modelů, výuka simulacim a modelování v biomedicínském inženýrství, interaktivní systém v MatLab-Simulinku

Desktop GUI. IW5 - Programování v.net a C# Desktop GUI

Adaptivní model kardiovaskulárního systému

Wonderware InTouch 2012 R2 Co je nového

Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor

Wonderware Information Server 4.0 Co je nového

1 - Úvod do platformy.net. IW5 - Programování v.net a C#

VÝUKOVÝ WEBOVÝ SIMULÁTOR KREVNÍHO OBĚHU Jiří Kofránek, Marek Mateják, Filip Ježek, Pavol Privitzer, Jan Šilar

Inovace výuky prostřednictvím šablon pro SŠ

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

MODELY REGULACE VE FYZIOLOGICKÉM PRAKTIKU

IDENTIFIKACE FYZIOLOGICKÝCH SYSTÉMŮ Tomáš Kulhánek, Marek Mateják, Jan Šilar, Jiří Kofránek

TECHNOLOGIE TVORBY WEBOVÝCH SIMULÁTORŮ David Polák, Filip Ježek, Jan Šilar, Jiří Kofránek

Uživatelská příručka. Software DataPlot nástroj pro vizualizaci csv dat

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Angličtina program k procvičování slovní zásoby

Animace ve WPF. Filip Gažák. Ing. Václav Novák, CSc. Školní rok:

Nástroje na vývoj aplikací pro ios Trocha motivace na úvod Co budete potřebovat Co když nemáte k dispozici počítač s macos? Vývojové prostředí Xcode

PRVNÍ ELASTICKÝ INFORMAČNÍ SYSTÉM : QI

IS pro podporu BOZP na FIT ČVUT

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-214. Internetový prohlížeč

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

MBI - technologická realizace modelu

VISUAL BASIC. Přehled témat

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

Specifikace projektu Ocerus

PŘÍRODOVĚDECKÁ FAKULTA UNIVERZITY PALACKÉHO KATEDRA INFORMATIKY ROČNÍKOVÝ PROJEKT KLOKAN. Informatika, II. ročník

ANOTACE vytvořených/inovovaných materiálů

TÉMATICKÝ OKRUH Softwarové inženýrství

Webové stránky. 16. Obrázky na webových stránkách, optimalizace GIF. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

MVC (Model-View-Controller)

Operační systém. Mgr. Renáta Rellová. Výukový materiál zpracován v rámci projektu EU peníze školám

TECHNOLOGIE A TRENDY TVORBY VÝUKOVÝCH SIMULÁTORŮ

INFORMAČNÍ SYSTÉMY NA WEBU

ROZVOJ E-LEARNINGU NA 1. LF UK PRAHA

Úvod 13 O čem je tato kniha? Pro koho je tato kniha? Jak studovat tuto knihu? Poděkování 16 Zpětná vazba od čtenářů Zdrojové kódy ke knize Errata 17

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

Praktické využití Mathematica CalcCenter. Ing. Petr Kubín, Ph.D. Katedra elektroenergetiky, ČVUT v Praze, FEL

Představuje. Technický Informační Systém nové generace

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

TECHNOLOGIE ELASTICKÉ KONFORMNÍ TRANSFORMACE RASTROVÝCH OBRAZŮ

Aplikace pro srovna ní cen povinne ho ruc ení

Dilatometr DF-7 a Automatický lis DL-7

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT EU-OVK-VZ-III/2-ZÁ-101

Instalační příručka Command WorkStation 5.6 se sadou Fiery Extended Applications 4.2

BENCHMARKING VENKOVA. Uživatelská příručka nástroje ehomer.cz. Verze dokumentu: 1.1

Návod k obsluze IP kamery Zoneway. IP kamery jsou určené pro odbornou montáž.

Co je nového v aplikaci PaperPort 12?

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Vývoj informačních systémů. Přehled témat a úkolů

Znalostní systém nad ontologií ve formátu Topic Maps

Bezpečnostně právní akademie Brno

Matematika v programovacích

E LEARNINGOVÁ WEBOVÁ APLIKACE PRO VÝUKU BIOMEDICÍNSKÉHO INŽENÝRSTVÍ Petr Huňka

IntraVUE Co je nového

ARIS Platform softwarová podpora řízení procesů Procesní ARIS laboratoř základ moderní výuky.

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

SEMESTRÁLNÍ PROJEKT Y38PRO

Architektura GIS KMA/AGI. Karel Jedlička

Vlákno (anglicky: thread) v informatice označuje vlákno výpočtu neboli samostatný výpočetní tok, tedy posloupnost po sobě jdoucích operací.

Integrovaná střední škola, Sokolnice 496

Modelování elektromechanického systému

Výuka pomocí 3D modelů

VÝVOJ ŘÍDICÍCH ALGORITMŮ HYDRAULICKÝCH POHONŮ S VYUŽITÍM SIGNÁLOVÉHO PROCESORU DSPACE

Magisterský studijní program, obor

WORKFLOW. Procesní přístup. Základ perspektivního úspěšného podnikového řízení. Funkčnířízení založené na dělbě práce

Manuál k obsluze simulátoru KKK ELO 2011 pro studenty, popis laboratorní úlohy

Úvod do programovacího jazyka Python

Software programové vybavení. 1. část

Adobe Photoshop 18. Ukládání dokumentu formáty

První kroky s METEL IEC IDE

VY_32_INOVACE_INF.19. Inkscape, GIMP, Blender

Česká zemědělská univerzita v Praze

Vývoj informačních systémů. Přehled témat a úkolů

POKROČILÉ PREZENTAČNÍ PROGRAMY PRO PODPORU VÝUKY

Úvodem... 9 Kapitola 1 Karetních

Instalace demoverze

JEN SIMULINK NESTAČÍ: VYUŽITÍ SIMULINKU PŘI TVORBĚ VÝUKOVÝCH MULTIMEDIÁLNÍCH SIMULÁTORŮ

APS 400 ipanel. Online informační a ovládací panel pro systém APS 400. Uživatelská příručka

DOPRAVA V POHYBU PRODUKT KERBERUS

Informační systém pro podporu řízení, správu a zjišťování aktuálního stavu rozvrhované výuky

Transkript:

JEDNODUCHÁ SIMULAČNÍ HRA KROK ZA KROKEM ANEB OD PŘEDSTAVY K HOTOVÉMU Petr Stodulka, Pavol Privitzer, Jiří Kofránek Anotace Článek popisuje tvorbu interaktivních simulačních her. Ukazujeme postup práce od prvotní myšlenky (scénáře) přes tvorbu fyziologického modelu, návrh uživatelského rozhraní, řídící logiky, propojení do podoby funkční aplikace až k publikaci aplikace na internetu. Sestavíme jednoduchý simulátor resuscitace pacienta pomocí masáže hrudníku a umělého dýchání (první pomoc). Simulátor je založený na jednoduchém fyziologickém modelu krevního oběhu. Uživateli se zobrazuje průběh hry pomocí animací a grafů příslušných fyziologických proměnných. Sledujeme nejnovější trendy na poli modelování a vývoje aplikací. V oblasti modelování se přikláníme k modernímu modelovacímu jazyku Modelica, při tvorbě aplikace využíváme možností platformy.net Framework 3.5 (C# 3.0, WPF, XBAP). Pro návrh používáme vzor Model- View-ViewModel. K řízení logiky simulace potom využíváme možností stavových automatů. Tato práce navazuje na dlouhodobý výzkum a vývoj v oblasti fyziologického modelování a tvorby výukových simulátorů v naší laboratoři. Klíčová slova Výukové simulátory, simulační hry, fyziologické modelování, Modelica,.NET 1. Úvod Nejprve připomeňme, co míníme simulačními hrami a jaké jsou problémy při jejich tvorbě. O tomto tématu se může čtenář více dočíst např. v [1]. Simulační hra, nebo výukový multimediální simulátor, je aplikace postavená na fyziologickém modelu, která má prezentovat procesy odehrávající se v modelu a umožnit jejich ovlivnění. To vše pokud možno pomocí sofistikovaného, po grafické stránce bohatého, uživatelského rozhraní. Modely, multimedia a programování aplikací jsou

tři víceméně nesourodé okruhy. Pro každý existují speciální nástroje, ale zajistit jejich vzájemnou integraci je náročné. Náš tradiční přístup bylo vytvořit animace v Adobe Flash, model v Matlab Simulink a jádro simulátoru na platformě.net v jazyce C#. Flashové animace lze v.net použít (s omezenými možnostmi) jako ActiveX komponentu. Model jsme konvertovali do použitelné podoby pomocí vlastního převodního nástroje podrobně popsaného v [2]. V tomto článku představujeme technologickou inovaci spočívající v nahrazení Flashových animací technologií WPF a proprietárního Simulinku platformou OpenModelica. WPF (Windows Presentation Foundation) je novinkou ve verzi platformy.net Framework 3.0, která jednak při tvorbě uživatelského rozhraní programů nahrazuje Windows Forms a jednak umožňuje vytváření animací plně integrovaných s vlastním programem. Odstraněním technologické bariéry mezi.net a Flash nám WPF umožňuje těsnou integraci a přesnější řízení animací a vizualizací. Důležitým rysem je také možnost spouštět aplikace přímo v okně webového prohlížeče. Jazyk Modelica je moderním modelovacím jazykem, který podporuje objektově-orientovanou hierarchii a modularitu a oproti dříve používanému Simulinku umožňuje deklarativní (tzv. akauzální) zápis modelů. Jeho otevřená implementace OpenModelica nám umožňuje detailně prozkoumat použité algoritmy a také se zapojit do vývoje tohoto nástroje. Tento článek má ukázat uvedené technologie a naše postupy v praxi. Provedeme čtenáře postupem tvorby simulátoru od scénáře přes návrh uživatelského rozhraní, fyziologického modelu a řídícího stavového automatu až po kompletaci samotné aplikace a její zveřejnění na internetu. Zdrojové soubory simulátoru včetně modelu v Modelice je možné získat na stránce http://patf-biokyb.lf1.cuni.cz/wiki/firstaidgame. 2. Architektura Vycházíme z varianty návrhového vzoru Model-View-Controller, která se ve světě WPF aplikací používá častěji a nazývá se Model-View- ViewModel. Podrobný popis této architektury lze najít na webu [3-5]. Model je obdobou datové vrstvy. V našem případě představuje fyziologický model konvertovaný z jazyka Modelica. Třída modelu (Borat) nabízí vstupy a výstupy modelu a metody pro jeho řízení (Reset(), Step(), ). ViewModel představuje vrstvu, která řídí chod aplikace i modelu a zprostředkovává data vizualizační vrstvě ve vhodné podobě. Na návrh a řízení chodu aplikace používáme stavové automaty.

View je prezentační vrstva, která komunikuje s uživatelem. V optimálním případě jeimplementovaná jako čistý XAML kód a je přímo napojena na ViewModel pomocí událostí, commandů a databindingu. Důsledné rozvrstvení umožňuje souběžnou práci programátora a grafika, který vytváří vizuální stránku aplikace včetně animací. 3. Postup práce calls calls View events data binding input / output MainWindow PamAndBorat 3.1. Scénář ViewModel PBViewModel Cílem hry bude prezentovat statechart nový doporučený poměr třiceti stlačení hrudníku ku dvěma vdechům z úst do úst při resuscitaci pacienta. Tento poměr bude prezentován jednoduchou hrou, kdy klikáním myší Borat na hrudník nebo na hlavu pacienta Model dává záchranář masáž hrudníku nebo umělé dýchání. Správný postup pro Obr. 1 Využití architektury Model-View- Controller v simulační hře oživení pacienta: 1. kontrola dechu poslechem 2. třicetkrát masáž hrudníku 3. zaklonění hlavy 4. dvakrát stisk nosu a vdech z úst do úst 5. opakování bodů 2. až 4. dokud je potřeba Obr. 2 Obrazovka simulační hry

Simulátor kontroluje správný poměr akcí a fyziologický model počítá arteriální tlak pacienta. Podle frekvence stisku hrudníku (obdoba frekvence srdečního tepu) a podle počítaného tlaku je pacient po určité době prohlášen za úspěšně resuscitovaného nebo za mrtvého. V případě, že tlak pacienta je po určitou dobu mimo vyhrazený interval (tepová frekvence je příliš vysoká nebo příliš nízká), je zobrazeno varování a uživateli je připsán trestný bod. Naopak za dokončený resuscitační cyklus je mu trestný bod upsán. Po odepsání všech trestných bodů je hra úspěšně dokončena. Dosažením 10 trestných bodů pacient umírá. Kromě animace záchranáře a pacienta je uživateli zobrazen graf arteriálního krevního tlaku pacienta a číselné údaje o průběhu hry celkový čas resuscitace, tepová frekvence pacienta apod. 3.2. Model Pro účely tohoto příkladu stačí jednoduchý model, který nahrazuje krevní řečiště elastickou trubicí a krevní tlak počítá pomocí elasticity, rezistence a objemu tohoto kontejneru. Vstupem modelu je příznak tlaku na hruď pacienta c (0 nebo 1), výstupem je tlak p (v mmhg) tekutiny v popsané elastické trubici. p zastupuje v tomto případě arteriální krevní tlak. Druhou proměnnou vystupující z modelu je q, tok tekutiny v ml/s. Tok tekutiny však v simulátoru nepoužíváme. Pro projekt OpenModelica jsme vytvořili rozšíření pro konverzi modelicového modelu do jazyka C#, který je dostupný na adrese: http://patf-biokyb.lf1.cuni.cz/wiki/modelica.net. Popsaný model pomocí tohoto nástroje převedeme do podoby třídy napsané v jazyce C# (třída Borat). Tato třída obsahuje soustavu diferenciálních rovnic reprezentujících model převedených do explicitního tvaru vhodného pro řešení pomoci ODE solveru. Borat dědí z obecné třídy ModelicaModel, která poskytuje základní funkcionalitu modelu jako je řízení běhu, vstupů, výstupů apod. 3.3. Animace WPF je prezentační technologie, která kromě standardních ovládacích prvků uživatelského rozhraní, jako jsou tlačítka apod., umí nativně definovat a zobrazovat animace. Ty jsou zapsány v podobě XAML zdrojových souborů, které lze upravovat ručně nebo pomocí speciálních designerských nástrojů (např. MS Expression Blend). Animované sekvence jsou vyjádřeny pomocí časové osy (třída Storyboard). Ovládáním časové osy potom řídíme zobrazované animace.

Obr. 3 Simulační model v Simulinku Obr. 4 Simulační model v Modelice Animace v jazyce XAML je možné získat také konverzí Flashových animací pomocí nástroje The Converted [6]. Tímto postupem jsme získali soubor s animací PamAndBorat.xaml. Identifikovali jsme úseky časové osy vyjadřující jednotlivé fáze animace a vložili je podpůrného kódu (viz konstruktor PamAndBorat v souboru PamAndBorat.xaml.cs). Dosáhli jsme tak oddělení implementace animace od vyvolávání jednotlivých sekvencí.

3.4. Řízení aplikace Logikou simulátoru myslíme hlídání počtu cyklů, správné pořadí prováděných resuscitačních akcí a následné řízení zobrazovaných animací, nebo reakce na vstupy od uživatele. Tato pravidla lze lehce vyjádřit v grafické podobě pomocí stavových automatů detailně popisovaných v článku [7]. Použitím nástroje Statecharts můžeme navrhovat řídící automaty a generovat kód, který se integruje do ViewModel vrstvy aplikace a zajišťuje její řízení. Domovská stránka projektu Statecharts je http://patf-biokyb.lf1.cuni.cz/wiki/statecharts. Definice řídícího automatu našeho simulátoru je v souboru FirstAidWPFChart.xml. Výstupem po jeho kompilaci je zdrojový soubor FirstAidWPFChart.xml.cs a knihovna FirstAidWPFChart.xml.dll. Tyto dva soubory musí být spolu s knihovnou Statecharts/Runtime.dll připojeny k projektu vytvářené aplikace. Obr. 5 Hierarchický stavový automat využívaný pro řízení aplikace

3.5. Zveřejnění hotové aplikace Pro publikaci aplikace využijeme schopnost.net aplikací běžet přímo v okně webového prohlížeče. Aplikace se transparentně nahraje do paměti počítače a spustí se v bezpečném prostředí, tzv. security sandboxu. Spuštění aplikace je z pohledu uživatele rovno návštěvě běžné webové stránky. Před samotným spuštěním aplikace je provedena kontrola přítomnosti frameworku.net 3.5, případně je uživateli nabídnuta jeho instalace. Technologie běhu aplikace v okně prohlížeče se nazývá XBAP XAML Browser Application. Pro vytvoření XBAP aplikace je potřeba ve Visual Studiu při výběru typu projektu zvolit šablonu WPF Browser Application. 4. Závěr Ve stručnosti jsme ukázali architekturu simulátorů vyvíjených v naší laboratoři. Na konkrétním jednoduchém příkladu simulační hry pro nácvik základů moderní laické první pomoci jsme prošli jednotlivé kroky potřebné k realizaci výsledné aplikace. Výraznou inovací je použití moderních softwarových nástrojů jak v oblasti modelování, tj. jazyka Modelica, tak i na aplikační úrovni, kde se technologie WPF ukazuje jako robustní platforma pro silně graficky orientované aplikace. Nemalou výhodu použitého postupu vidíme v bezešvém skloubení různých technologií pro návrh simulačních matematických modelů, aplikační logiky, grafické stránky a vlastní implementace výukového simulátoru. Na jednom projektu takto mohou současně spolupracovat modeláři, grafici i programátoři, a to každý ve své vlastní doméně bez ohrožení udržitelnosti integrity zdrojových souborů. To je, jak nám praxe ukazuje, zásadní báze pro realizaci mnohem komplexnějších simulátorů, než je uvedený demonstrační příklad simulační hry první pomoci. Z uživatelského hlediska zatím zůstává omezením dostupnost.net Frameworku použité verze jenom na platformě Windows XP a vyšší. Mnohé si v tomto směru slibujeme od nové nastupující platformy MS Silverlight, zvláště od očekávané verze 2.0. Je to ve své podstatě plug-in pro internetové prohlížeče, který je založen na technologii WPF, avšak bude dostupný i pro jiné operační systémy jako OS Mac či Linux. Kompletní zdrojové kódy simulační hry první pomoci je možno stáhnout ze stránek http://patf-biokyb.lf1.cuni.cz/wiki/firstaidgame.

5. Literatura [1] Stodulka, P., Privitzer, P., Kofránek, J., Tribula, M., Vacek, O. (2007): Development of web accessible medical educational simulators. In. Proceedings of the 6th EUROSIM, Vol. 2. Full Papers (CD), MO-3-P4-2, str. 1-6, ISBN 978-3-901608-32-2, University of Ljubljana, 2007. [2] Stodulka, P., Privitzer, P., Kofránek, J., Mašek, J. (2006): Nové postupy v tvorbě simulátorů inteligentní propojení Matlab Simulinku s platformou.net a tvorba stavových automatů řídících výslednou aplikaci.in MEDSOFT 2006, str. 171-176, Agentura Action-M, ISBN 80-86742-12-1, Praha, 2006 [3] http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx [4] http://www.orbifold.net/default/?p=550 [5] http://blog.quantumbitdesigns.com/2008/01/20/wpf-applicationdesign-and-architecture/ [6] The Converted Swf to Xaml Converter http://theconverted.ca/ [7] Kofránek, Stodulka (2004): Hierarchické komunikující stavové automaty. Objekty 2004, str. 116-133, VŠB Ostrava, ISBN 80-248- 0672-X, Ostrava 2004. Poděkování Práce na vývoji lékařských simulátorů je podporována projektem Národního programu výzkumu č. 2C0603, rozvojovým projektem MŠMT C34/2008 a společností BAJT servis s.r.o.. Petr Stodulka Laboratoř biokybernetiky a počítačové potobry výuky, Ústav patologické fyziologie 1. LF UK, Praha U nemocnice 5 128 53 Praha 2 tel: 224965912 fax:224912834 e-mail: petr.stodulka@gmail.com http://www.physiome.cz