Obsah:

Brain Box: Sledování neurálního objemu v průběhu času: 20 kroků
Brain Box: Sledování neurálního objemu v průběhu času: 20 kroků

Video: Brain Box: Sledování neurálního objemu v průběhu času: 20 kroků

Video: Brain Box: Sledování neurálního objemu v průběhu času: 20 kroků
Video: Эд Бойден: Переключатель для нейронов 2024, Červenec
Anonim
Brain Box: Sledování neurálního objemu v průběhu času
Brain Box: Sledování neurálního objemu v průběhu času

Pokrok na hranici delšího lidského života přinesl vzestup nemocí, které civilizace neviděly dříve než ty naše. Mezi nimi Alzheimerova choroba postihla v roce 2017 přibližně 5,3 milionu žijících starších Američanů nebo přibližně 1 z 10 starších Američanů (https://www.alz.org/facts/) a bezpočet dalších s demencí. Abychom pomohli v boji za pochopení toho, co trápí naše starší, tento kód vybaví budoucí badatele a nedočkavé zvědavce schopností sledovat objem mozku v průběhu času.

Krok 1: Použití Brain Box

Pomocí Brain Box
Pomocí Brain Box

Chcete -li použít mozkovou schránku, potřebujete pouze následující:

  • MRI skenování mozku a název a formát takových souborů (všechny by měly mít zhruba stejné rozměry)
  • Délka jednoho skenování
  • Vzdálenost mezi každou vrstvou (skenování MRI)
  • Jméno pacienta (Při zadávání nezahrnujte mezery a používejte velká písmena křestního jména a příjmení, například: FirstnameLastname)

A z toho má člověk schopnost sledovat individuální trendy v objemu mozku v průběhu času. Tento software tedy může sledovat čísla o trendech Alzheimerovy choroby. Délka, kterou jsme použili ve studii, byla 180 mm pro délku jednoho skenu a 5 mm pro vzdálenost mezi skeny MRI, na základě průměrných hodnot.

Aplikace mozkové schránky však nemusí být omezena na tento jeden úkol. Pokud jsou průřezy dané pevné látky fotografické, jako nádor jako takový, lze trendy v objemových změnách u těchto produktů také sledovat v softwaru.

Krok 2: Úvod: Analýza příčných řezů

Úvod: Analýza příčných řezů
Úvod: Analýza příčných řezů

V trojrozměrných strukturách by dvourozměrné roviny, ze kterých takové sestávají, byly nazývány průřezy. Představte si, že stoh papírů tvoří obdélníkový hranol, pak by každý kus papíru byl průřezem papíru. Při představování mozku uplatňujeme stejný způsob myšlení. MRI (zobrazování magnetickou rezonancí) (viz informace o MRI) zachycuje průřezy mozku a pomocí hranic definovaných v každé „vrstvě“mozku, kterou jsme poskytli, můžeme zkonstruovat strukturu pro modelování a nalezení objemu mozku. Nejprve však musíme vytvořit funkci, která bude poskytovat informace o takových hranicích.

Krok 3: Nastavení funkce: LevelCurveTracings.m

Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m
Nastavení funkce: LevelCurveTracings.m

Nejprve se ujistěte, že má váš počítač stažený MATLAB_R2017b (stáhněte si zde) a otevřete MATLAB. V rozhraní MATLAB klikněte na tlačítko v levém horním rohu okna s nápisem „Nový“s tučným žlutým znaménkem plus a vyberte možnost „funkce“, aby se v okně editoru otevřel prostor, který se podobá prostoru v třetí obrázek. Zaměříme se na změnu prvního řádku pro nastavení funkce. Tam, kde je uvedeno „outputArg1“, nahraďte výrazy „brain“, „outputArg2“pro výraz „hole“, „untitled2“až „exp2“a „inputArg1“pro „image“a odstraňte „inputArg2“. Nyní máte funkci, kterou lze zavolat pomocí „exp2“, přičemž vezmete jeden argument „obrázek“a vydáte hranice „mozku“a „děr“. První řádek funkce by měl připomínat řádek zobrazený na čtvrtém obrázku. Odstraňte veškerý kód pod tímto počátečním řádkem.

Krok 4: Rozvoj vázaného algoritmu: Hledání hranic

Rozvoj vázaného algoritmu: Hledání hranic
Rozvoj vázaného algoritmu: Hledání hranic

Pod řádek zadejte kód následujícím způsobem. Tato část funkce provádí následující řádek po řádku.

  1. Vložte do obrázku „obrázek“do proměnné „mri“.
  2. Proměňte „mri“na obrázek vytvořený z hodnot v rozsahu čísel až jedniček a nul (alias binarizace) na základě nastavené prahové hodnoty. Pokud je hodnota v pixelu rovna nebo větší než 0,1, je nastavena na jednu, pokud ne, hodnota v tomto pixelu je nastavena na nulu.
  3. Následující čtyři řádky přeměňují 10 sloupců a řádků na okrajích skenovací vrstvy MRI na nuly, aby se zabránilo čtení nesprávných hodnot jako vytváření hranic (jak jsme se naučili z experimentování s kódem).
  4. V posledním řádku bwboundaries sleduje hranice binarizovaného obrazu „mri“a nastaví jej na „b“, pole s prvky, jejichž indexy odpovídají indexům hranic nastaveným na jeden.

Krok 5: Rozvoj vázaného algoritmu: Generování vnějšího vázaného pole

Rozvoj vázaného algoritmu: Generování vnějšího vázaného pole
Rozvoj vázaného algoritmu: Generování vnějšího vázaného pole

V okně editoru postupujte podle následujícího kódu na obrázku. Tato část kódu provádí následující řádek po řádku.

  1. Najděte délku každého z řádků binarizovaného obrázku „b“(cellfun použije délku funkce na každý řádek).
  2. Nastavením „loc“uložíte maximální délky.
  3. Najděte index maximální délky, který je nastaven na uložení do „NejvětšíTrace“.
  4. Najděte velikost obrázku „mri“, který se skládá ze stejné velikosti jako „b“, a nastavte jej na „BWsize“.
  5. Najděte počet řádků v poli obrázku a nastavte jej na „ysize“.
  6. Zjistěte počet sloupců v poli obrázku, nastavte na "xsize".
  7. Generujte pole „největšíTraceMat“, matici „xsize“podle „xsize“nul.
  8. Najděte ekvivalentní index z předepsaných hodnot odpovídajících tomu, kde byly hodnoty x a y největší hodnoty Trace, uložte do vektoru „lindex“.
  9. V matici nul, „NejvětšíTraceMat“, proměňte prvky v indexech, které odpovídají hodnotám indexu uloženým jako prvky v „lindexu“, na jednotky.

Logické pole „NejvětšíTraceMat“má tedy největší ohraničenou oblast daného průřezu skenování mozku vykreslenou jako jednotky s pozadím nul

Krok 6: Rozvoj vázaného algoritmu: Práce se středovým bodem

Rozvoj vázaného algoritmu: Práce se středovým bodem
Rozvoj vázaného algoritmu: Práce se středovým bodem

Dále musíme otestovat, zda průřez sestává z více než jedné oblasti (největší). Testováním zarovnání těžiště největší oblasti můžeme zjistit, zda existuje jedna souvislá oblast, která by přinesla více soustředěný těžiště, nebo možnost více oblastí.

  1. Pomocí „regionProps“najděte informace o přítomných těžních strojích, které se rovnají poli struktury „tempStruct“
  2. Pole pole „těžiště“s údaji z pole „těžiště“svázanými svisle
  3. Vezměte hodnoty druhého sloupce „centroidů“(souřadnice vodorovné kóty)
  4. Spusťte filtr a zkontrolujte zarovnání těžiště k vodorovnému středu

Krok 7: Rozvoj vázaného algoritmu: Když těžiště není vycentrováno

Rozvoj vázaného algoritmu: Když těžiště není vycentrováno
Rozvoj vázaného algoritmu: Když těžiště není vycentrováno

Ve scénáři, že těžiště největší trasovací oblasti není vycentrováno, projdeme následujícími kroky. Jak jsme pozorovali při skenování MRI, tendence byla mít mozkové hemisféry vyobrazené v průřezu, pokud nejsou souvislé, takže nyní pokračujeme v vykreslování druhé největší stopy spolu s největší stopou v „NejvětšíTraceMat“

  1. Nastavit sledovanou matici na novou proměnnou "b2"
  2. Inicializujte prázdnou matici „b2“se sadou indexovanou „loc“
  3. Vytvořte podmíněné, když těžiště není vycentrováno (tj. Vrstva více oblastí)
  4. Nastavit novou velikost trasování pro každý řádek (traceSize2)
  5. Nastavením "loc2" vyhledáte indexy, kde jsou přítomny hranice
  6. Buňky určené „loc2“v „b2“nechť se rovnají „největšíTrace2“
  7. Převeďte dolní indexy na indexy nastavené na „lindex“
  8. Změňte prvky odpovídající „lindex“v „NejvětšíTraceMat“na 1
  9. Inicializujte prázdnou matici „b2“se sadou indexovanou „loc2“

Krok 8: Rozvoj vázaného algoritmu: Interference děr

Rozvoj vázaného algoritmu: Interference děr
Rozvoj vázaného algoritmu: Interference děr

Při práci s dírami hodnoty uložené v „b2“sledovaly struktury jiné než největší stopa a jejich vykreslení na vyplněnou formu „největšíTraceMat“odhalí, kde jsou díry v oblastech mozku.

  1. Vytvořte pole „fillMat“, což je vyplněný tvar „největšíTraceMat“
  2. Vytvořte pole „interferenceMat“, pole nul „ysize“podle „xsize“
  3. Vytvořte pole „interferenceloc“pro ukládání hodnot z „b2“, spojených svisle
  4. Vytvořte pole „lindex“pro uložení indexů, které odpovídají „interferenceloc“
  5. U indexů v „interferenceMat“, které odpovídají „lindexu“, nastavte hodnotu na 1, čímž vytvoříte jinou ohraničenou oblast

Krok 9: Rozvoj vázaného algoritmu: Umístění otvorů, dokončení vazeb mozku a svázání děr

Rozvoj vázaného algoritmu: Umístění otvorů, finalizace mozkových vazeb a mezer otvorů
Rozvoj vázaného algoritmu: Umístění otvorů, finalizace mozkových vazeb a mezer otvorů
  1. Nastavte pole "tempMat" na hodnotu "interferenceMat" plus "fillMat", čímž si navzájem přidáte každou hodnotu v matici
  2. Nastavte pole „holeLoc“na rovné indexům, kde „interferenceMat“a „fillMat“se rovnaly jedné
  3. Nastavit "holeMat" jako nulovou matici rozměrů "ysize" x "xsize"
  4. Nastavte indexy v "holeMat", které se rovnají "holeLoc" jako ty
  5. Nastavte „mozek“na „největšíTraceMat“
  6. Nastavit „díry“na „holeMat“

Se zjištěním, kde hodnoty přidaných matic byly rovny 2, byla umístění otvorů snadno zajištěna a vynesena na prázdnou matici.

Krok 10: Protokolování dat: Funkce PatientFiles.m

Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m
Protokolování dat: Funkce PatientFiles.m

Podobně jako u poslední funkce klikněte na tlačítko v levém horním rohu okna s nápisem „Nový“s tučným žlutým znaménkem plus a výběrem možnosti „funkce“otevřete v okně editoru mezeru, která připomíná to na třetím obrázku. V prvním řádku odstraňte výstupní matici a nahraďte ji pouze „výstupem“, nahraďte „untitled2“„pacientskými soubory“, odstraňte všechny vstupní argumenty a místo toho postupujte podle formátování uvedeného na čtvrtém obrázku řádku kódu. První řádek této funkce by měl odpovídat formátování obrázku.

Krok 11: Přihlášení dat do souborů

Protokolování dat do souborů
Protokolování dat do souborů
Protokolování dat do souborů
Protokolování dat do souborů

Chcete-li nastavit soubor pro protokolování dat nalezených hlavní funkcí (ještě bude popsáno), musíme postupovat podle těchto kroků (jak předepisuje kód řádek po řádku).

  1. Zkontrolujte, zda vstup pro název pacienta je řetězec.
  2. Pokud se nejedná o řetězec, zobrazte, že vstupem název_pacienta by měl být řetězec.
  3. Ukončete příkaz if (zabraňte chybě).
  4. Nastavte řetězcový příkaz „DateandTime“, který bude mít následující formát: hodina: minuty-měsíc/den/rok.
  5. Nastavte proměnnou název_souboru na následující: jmeno pacienta.m.

Nyní k další části funkce: Existuje již soubor s tímto názvem?

1) Předpokládejme, že soubor s tímto názvem již existuje:

  1. Spusťte soubor a získejte hodnoty z minulosti ve frontě
  2. Přidejte data „DateandTime“aktuální iterace jako novou buňku do pole buněk s hodnotami x (konec indexu+1)
  3. Přidejte aktuální hodnotu „brainVolume“jako novou buňku do pole buněk hodnot y (konec indexu+1)
  4. Uložte aktuální proměnné načtené do souboru.

2) Předpokládejme, že soubor s tímto názvem neexistuje:

  1. Vytvořte nový soubor s názvem uloženým v proměnné „název_pacienta“
  2. Přidejte aktuální data „DateandTime“jako buňku do prázdného pole buněk x hodnot
  3. Přidejte aktuální data „brainVolume“jako buňku do prázdného pole buněk hodnot y
  4. Uložte aktuální proměnné načtené do souboru.

Krok 12: Protokolování dat: Zobrazení grafu objemu mozku v průběhu času

Protokolování dat: Zobrazení grafu objemu mozku v průběhu času
Protokolování dat: Zobrazení grafu objemu mozku v průběhu času
  1. Převést pole hodnot x (xVals) na kategorické pole (xValsCategorical), aby bylo možné vykreslování
  2. Okno vygenerovat obrázek 5
  3. Vykreslete body označené „xValsCategorical“a „yVals“(obsahující objem mozku), pomocí dutých kruhů označte body a spojte je přerušovanými čarami
  4. Název spiknutí pojmenujte jako: patientName Údaje o objemu mozku
  5. Označte osu x podle obrázku
  6. Označte osu y podle obrázku
  7. Nechť obrázek 5 odpovídá výstupu

Z toho bude vyvolávaná funkce pacientské jméno získávat soubor s upravenými daty, které budou sledovat objem mozku v čase, a graf zobrazující trendy.

Krok 13: Uzavření mezer v podkresech: Subplotclose.m

Uzavírání mezer v podkresech: Subplotclose.m
Uzavírání mezer v podkresech: Subplotclose.m

Funkce převzatá z kódu z https://www.briandalessandro.com funguje tak, že uzavírá mezery mezi dílčími obrázky hlavního kódu, když jsou vytvořeny obrázky zobrazující obrázky MRI a mozkové vrstvy. Funkce subplot použitá v subplotclose.m upraví polohu daných subplotů tak, aby se těsně přizpůsobily aspektu delší dimenze. Pokud například kód zamýšlí matici 7 x 3, řádky budou pohodlně sedět, protože rozměr řádku je delší. Pokud kód zamýšlí matici 3 x 7, sloupce budou pohodlně sedět s mezerami v řádcích, jak je znázorněno na obrázcích našeho hlavního kódu.

Krok 14: Hlavní kód: Vymazání všech a výzva pro vstupy

Hlavní kód: Vymazání všech a výzva k zadání
Hlavní kód: Vymazání všech a výzva k zadání

Chcete -li spustit hlavní kód, klikněte na stejné tlačítko, které říká „Nový“v levém horním rohu okna, a v předchozích částech vyberte „Skript“místo „Funkce“. Zadejte kód, jak je znázorněno na obrázku v okně editoru. Řádky kódu provádějí následující úkoly v uvedeném pořadí:

  1. Zavřete všechny otevřené soubory kromě 0, 1 a 2.
  2. Zavřete všechna okna obrázku.
  3. Vymažte všechny proměnné v pracovním prostoru.
  4. Vymažte příkazové okno.
  5. Zobrazit v příkazovém okně: Pro skeny MRI zadejte následující rozměry:
  6. Na novém řádku v příkazovém okně se zeptejte: Délka jednoho skenování v milimetrech:. Odpověď zadaná uživatelem bude nastavena na proměnnou "lengthMM".
  7. Na novém řádku se zeptejte: Vzdálenost mezi skeny MRI v milimetrech:. Reakce zadaná uživatelem bude nastavena na proměnnou "ZStacks".

Krok 15: Hlavní kód: Dávkové zpracování obrázků

Hlavní kód: Dávkové zpracování obrázků
Hlavní kód: Dávkové zpracování obrázků
Hlavní kód: Dávkové zpracování obrázků
Hlavní kód: Dávkové zpracování obrázků

V této části kód načte obrázky (skládající se ze skenů MRI průřezů mozku) a uloží názvy každého souboru obrázku do proměnné „Base“a zobrazí každý ze skenů MRI. Postupujte prosím podle kódu na obrázku, který dělá následující:

  1. Vytvořte strukturní pole „BrainImages“, které obsahuje informace o všech souborech v aktuální složce, které odpovídají formátu názvu MRI _ (). Png
  2. Nastavit proměnnou „NumberofImages“rovnou počtu prvků v poli struktury „BrainImages“
  3. Otevřete okno obrázku 1
  4. Nastavte cyklus for, který bude procházet počet obrázků započítaných v souboru
  5. Pro každou smyčku je „CurrentImage“příslušný název každého souboru MRI_i.png, přičemž číslo iterace je „i“
  6. Vygenerujte subplot 3 x 7 pro zobrazení 19 obrázků, které se mají načíst pomocí „imshow“
  7. V okně obrázku dílčího obrázku zobrazte každý obrázek jako další prvek
  8. Každý prvek subplot pojmenujte jako Level_, kde prázdné je číslo iterace smyčky for.
  9. Ukončete smyčku for (vyhněte se chybě)

V okně obrázku 1 se zobrazí všechny skeny MRI v surové formě v konfiguraci 3 x 7 bez mezer v orientaci x.

Krok 16: Hlavní kód: Polstrování

Hlavní kód: Polstrování
Hlavní kód: Polstrování

Díky polstrování se vyhneme problému s mírnými nesrovnalostmi ve velikostech obrázků, které mohou způsobit chybu v nesouladu rozměrů v případě, že je jeden obrázek o něco větší než druhý.

  1. Otevřete okno obrázku 2
  2. Načtěte matici obrázku z MRI_1-p.webp" />
  3. Najděte velikost matice obrázku a nastavte ji na „OriginalXPixels“(pro počet řádků) a „OriginalYPixels“(pro počet sloupců)
  4. Nastavte matici „BrainMat“tak, aby se skládala ze všech nul s 20 dalšími řádky a 20 dalšími sloupci pro každou rovinu a celkem 19 průřezy, jeden pro každou rovinu.
  5. Nastavte „HolesMat“tak, aby se skládalo ze stejného trojrozměrného pole nul pro pozdější zadání souřadnic díry
  6. Vytvořte „zeroMat“o velikosti podložky plus dvacet řádků a dvacet sloupců, dvourozměrné pole nul.

Krok 17: Hlavní kód: Určení hranic

Hlavní kód: Určení hranic
Hlavní kód: Určení hranic
Hlavní kód: Určení hranic
Hlavní kód: Určení hranic
  1. Nastavte smyčku pro procházení dat z každého dříve načteného obrázku
  2. Stejným způsobem dávkového zpracování dříve načte „CurrentImage“soubory s „MRI_i.png“, kde i je číslo iterace
  3. Každý obrázek spusťte prostřednictvím funkce zpracování „LevelCurveTracings2.m“, kterou jste vytvořili dříve
  4. Najděte velikost výstupu „Brain“, nastavte počet řádků na „Currentrow“a počet sloupců na „Currentcolumns“
  5. Nastavte "CurrentMat" na matici nul s rozměry určenými "Currentrow" a "Currentcolumns"
  6. Vycentrujte data z „Brain“v „CurrentMat“s okrajem 10 řádků na všech stranách
  7. Vygenerujte subplot rozměrů 3 x 7 pro zobrazení hranic obrázků
  8. V okně obrázku pojmenujte každý z prvků dílčího grafu
  9. Vygenerujte trojrozměrnou matici „BrainMat“složenou z každé mezní vrstvy „CurrentMat“
  10. Ukončete smyčku for (pro vyhýbání se chybám)

Následující podsekce vyplňuje otvory vlevo v horní a dolní části navrhovaného trojrozměrného tvaru

  1. Nastavte „LevelCurve1“rovnou první vrstvě „BrainMat“(spodní část tělesa)
  2. Nastavte „LevelCurveEnd“na konečnou vrstvu „BrainMat“(horní část tělesa)
  3. Přepište „LevelCurve1“vyplněnou vrstvou
  4. Přepište „LevelCurveEnd“vyplněnou vrstvou
  5. Nastavit vyplněnou vrstvu jako spodní vrstvu „BrainMat“
  6. Nastavit vyplněnou vrstvu jako horní vrstvu „BrainMat“

Krok 18: Hlavní kód: Určení správné dimenze Z

Hlavní kód: Stanovení správné dimenze Z
Hlavní kód: Stanovení správné dimenze Z

První tři řádky se skládají z nastavení prázdného pole „z“a provádění jednoduchých operací převodu (dělení pixelů délkou), aby se dosáhlo správného čtení objemu v mm^3

  1. Vytvořte smyčku pro procházení každou vrstvou
  2. Zjistěte počet jedniček v dané vrstvě
  3. Převeďte souřadnice z pro ty na hodnoty, které jsou upraveny na správný poměr, nastavený na "tempz", sloupcový vektor
  4. Přidejte hodnotu z pro křivku úrovně do vektoru z

Díky tomu jsou souřadnice z upraveny správně.

Krok 19: Hlavní kód: Určení souřadnic X a Y

Hlavní kód: Určení souřadnic X a Y
Hlavní kód: Určení souřadnic X a Y

Nyní určete polohy x a y každého z bodů v hranicích.

  1. Inicializujte "xBrain" jako prázdné pole
  2. Inicializujte "yBrain" jako prázdné pole
  3. Nastavte smyčku pro procházení každého načteného obrázku
  4. Zkompilovat matici se dvěma sloupci pro uložení rovinných souřadnic každého bodu do ohraničené, reprezentované vektory sloupců "RowBrain" a "ColumnBrain"
  5. Připojte „xBrain“k aktuálně nalezeným souřadnicím „RowBrain“
  6. Připojte „yBrain“k aktuálně nalezeným souřadnicím „ColumnBrain“
  7. Ukončete smyčku for (abyste se vyhnuli chybám)

Krok 20: Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat

Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat
Hlavní kód: Vykreslení trojrozměrné struktury, hledání objemu a protokolování dat

Pomocí funkce alphaShape vytvoříme trojrozměrnou strukturu, ze které můžeme vypočítat objem mozku.

  1. Použijte funkci alphaShape, zapojte vektory "xBrain", "yBrain" a "z" pro souřadnice x, y a z a nastavte je rovno "BrainPolyhedron"
  2. Otevřete okno obrázku 3
  3. Vykreslete vypočítaný tvar alfa „BrainPolyhedron“, který se zobrazí v okně obrázku
  4. Vypočítejte objem tvaru alfa pomocí funkce „objem“, která funguje pro tvary alfa
  5. Převeďte objem na mm^3
  6. Vytiskněte objem tělesa v příkazovém okně
  7. Vyzvat k zadání jména pacienta jako vstupu
  8. Získejte aktuální datum a čas pomocí hodin a nastavte je na „DateandTime“
  9. Voláním funkce „patientFiles“zaznamenáte a vypočítáte vypočítaná data

Odtud by druhý a třetí obrázek měly zobrazovat vyskakující obrazce a čtvrtý obrázek, který by měl být zobrazen v příkazovém okně.

Doporučuje: