Ela.kpi.ua



Нац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут ?мен? ?горя с?корського?________________факультет б?омедично? ?нженер??(повна назва ?нституту/факультету)________________кафедра б?омедично? к?бернетики(повна назва кафедри)?До захисту допущено?Зав?дувач кафедри БМК__________ __?.А. Настенко_(п?дпис) (?н?ц?али, пр?звище)“___”_____________2019 р.Дипломна роботана здобуття ступеня бакалавраЗ напряму п?дготовки 6.050101 ?Комп’ютерн? науки?з? спец?альност? (код ? назва)на тему:Розробка системи, для в?зуал?зац?? медичних показник?в за ресурсом PhysioNet.Виконав (-ла): студент (-ка) IV курсу, групи _БС-52__(шифр групи)СОЛОДКИЙ В?ТАЛ?Й ПЕТРОВИЧ(пр?звище, ?м’я, по батьков?)(п?дпис)Кер?вникпроф. каф. БМК, д.т.н., проф., Файнз?льберг Л.С.(посада, науковий ступ?нь, вчене звання, пр?звище та ?н?ц?али)(п?дпис)Консультант з розд?л?в ДРст.викл.каф. БМК Коваленко Ю.М. (назва розд?лу) ( посада, вчене звання, науковий ступ?нь, пр?звище, ?н?ц?али)(п?дпис)Консультант з охорони прац?доц., к.т.н. Демчук Г.В..(назва розд?лу)( посада, вчене звання, науковий ступ?нь, пр?звище, ?н?ц?али)(п?дпис)Рецензент (посада, науковий ступ?нь, вчене звання, науковий ступ?нь, пр?звище та ?н?ц?али)(п?дпис)Засв?дчую, що у ц?й дипломн?й робот? нема? запозичень з праць ?нших автор?в без в?дпов?дних посилань.Студент (-ка)_____________(п?дпис)Ки?в – 2019 рокуНац?ональний техн?чний ун?верситет Укра?ни?Ки?вський пол?техн?чний ?нститут ?мен? ?горя С?корського??нститут (факультет)Б?омедично? ?нженер??(повна назва)КафедраБ?омедично? к?бернетики(повна назва)Р?вень вищо? осв?ти – перший (бакалаврський)Напрям п?дготовки (програма профес?йного спрямування) - 6.050101 ?Комп’ютерн? науки? (?нформац?йн? технолог?? в б?олог?? та медицин?)(код ? назва)ЗАТВЕРДЖУЮЗав?дувач кафедри БМК__________ _?.А. Настенко_(п?дпис) (?н?ц?али, пр?звище)?___?_____________2019 р.ЗАВДАННЯна дипломну роботу студентуСОЛОДКИЙ В?ТАЛ?Й ПЕТРОВИЧ(пр?звище, ?м’я, по батьков?)1. Тема роботи?Розробка системи, для в?зуал?зац?? медичних показник?в за ресурсом PhysioNet.?кер?вник роботиФайнз?льберг Леон?д Соломонович, проф. каф. БМК, п.т.н.(пр?звище, ?м’я, по батьков?, науковий ступ?нь, вчене звання)затверджен? наказом по ун?верситету в?д ? ? 2019 р. № -с2. Терм?н подання студентом роботи11-12 червня 2019 року3. Вих?дн? дан? до роботидата-сети медичних показник?в за веб ресурсом PhysioNet4. Зм?ст роботи5. Консультанти розд?л?в роботиРозд?лПр?звище, ?н?ц?али та посада консультантаП?дпис, датазавдання видавзавданняприйнявМоделювання граф?чного ?нтерфейсу системиКоваленко Ю.М., ст.викл.каф. БМКОхорони прац?Демчук Г.В., доц., к.т.н.6. Дата видач? завдання 20 травня 2019 р.Календарний план№ з/пНазва етап?в виконання дипломно? роботиТерм?н виконання етап?в роботиПрим?тка1Отримати завдання на ДР20 травня 2019р..2Анал?з в?тчизняних та заруб?жних л?тературних джерел 21 травня 2019р..3Розробка теоретично? частини ДР23 травня 2019р..4Розробка математичних моделей прогнозування настання несприятливих под?й у ранньому п?сляоперац?йному пер?од?23 травня 2019р..5Проектування програмного забезпечення з урахуванням вимог замовника24 травня 2019р..6Створення прототипу програмного забезпечення26 травня 2019р..7Розробка та тестування програмного забезпечення26 травня 2019р..8Оформлення практично? частини дипломно? роботи27 травня 2019р..9Розд?л ДР з ?Безпеки житт?д?яльност? та охорони здоров’я?29 травня 2019 р.10Проходження нормоконтролю по оформленню ДР29 травня 2019р - 7 червня 2019р11Предзахист ДР та допуск до захисту ДР7-11 червня 2019р12Подання ДР рецензенту. Отримання реценз??.11-12 червня 2019р13Подання в електронному вигляд? ДР та анотац?? до не? на сайт кафедри.11-12 червня 2019р14Подання пакету документ?в по ДР до захисту в ЕК12-15 червня 2019р.15Захист ДР в ЕК18-22 червня 2019рСтудентВ.П. Солодкий(п?дпис)(?н?ц?али, пр?звище)Кер?вник роботиЛ.С. Фанз?льберг(п?дпис)(?н?ц?али, пр?звище)АНОТАЦ?ЯОбсяг роботи 109 стор?нок, к?льк?сть ?люстрац?й – 29, таблиць – 30, додатк?в – 1, джерел за перел?ком посилань – 50. Мета досл?дження – розробка пакета програм в?зуал?зац?? та нап?вавтоматично? розм?тки електрокард?ограф?чних даних, для п?двищення ефективност? систем автоматичного анал?зу ЕКГ та серцевого ритму. Об’?кт досл?дження – медичн? показники ЕКГ та серцевого ритму за ресурсом PhysioNet. Предметом досл?дження ? розробка програми, що дозволя? вза?мод?яти з ф?з?олог?чними сигналами формату PysioNet. Додаток дозволя? переглядати сигнали, анотац?? до них, а також скачувати потр?бн? записи при п?дключенн?, до мереж? ?нтернет. Програма зд?йсню? перетворення, сигналу з формату EDF та CSV формату PhysioNet. Для створення додатка використову?ться мова програмування Python. Як середовище програмування вибрана Jupiter Notebook. Для вза?мод?? з сигналами до проекту п?дключена б?бл?отека Waveform Database Library. У робот? ? короткий огляд метод?в електрокард?ограф??, мови Python ? платформи PysioNet, так як вс? ц? складов? були використанн? при розробц? додатку. Публ?кац?я:1. Солодкий В. П. Програмний додаток для в?зуал?зац?? медичних показник?в за ресурсом PhysioNet. / Солодкий В.П. // М?жнародний науковий журнал "?нтернаука". — 2019. — №6. — 78 — 86 С. (стаття)Розроблена програма дозволя? виконувати вс? поставлен? функц??. Але в?дом? шляхи пол?пшення ? модиф?кац?? програми. Наприклад, можлив?сть шукати та скачувати медичн? засоби за певними показниками з анотац?й.Ключов? слова: ЕКГ, PhysioNet, Python, Wfdb, Jupiter Notebook.ABSTRACTVolume of pages - 109, number of illustrations - 30, tables - 30, applications - 1 , sources - 50.The purpose of the study is to develop a package of visualization programs and semi-automatic marking of electrocardiographic data to improve the efficiency of ECG and heart rate systems.The object of the study is the medical parameters of ECG and cardiac rhythm with the PhysioNet resource.The subject of the study is the development of a program that allows you to interact with the physiological signals of the PysioNet format. The application allows you to view signals, annotations to them, and download the required entries when connected to the Internet. The program converts the signal from the EDF format and the CSV format to PhysioNet.The Python programming language was used to create the application. Jupiter Notebook was choose as the programming environment. The Waveform Database Library library was connected to the project to interact with the signals. There is a brief overview of electrocardiography, Python and PysioNet, as all of these components were used in the development of the application.Publication:1. Solodky V.P. Software application for visualization of medical indicators with the resource PhysioNet. / Solodkyi V.P. // International scientific magazine "Internet Science". — 2019 — №6. — 78 — 86 P. (article)The developed program allows you to perform all the functions assigned. However, there are ways to improve and modify the program. For example, the ability to search and download medical devices for certain indicators of annotations.Key words: ECG, PhysioNet, Python, Wfdb, Jupiter Notebook.ЗМ?СТ TOC \o "1-3" \h \z \u ПЕРЕЛ?К УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛ?В, ОДИНИЦЬ, СКОРОЧЕНЬ ? ТЕРМ?Н?В PAGEREF _Toc11367966 \h 8ВСТУП PAGEREF _Toc11367967 \h 9РОЗД?Л 1 ЕЛЕКТРОКАРД?ОГРАФ?Я ТА PHYSIONET. КОРОТКИЙ ОГЛЯД PAGEREF _Toc11367968 \h 111.1.?стор?я електрокард?ограф??. PAGEREF _Toc11367969 \h 111.2.Етапи розвитку технолог?й ЕКГ. PAGEREF _Toc11367970 \h 141.3.Цифрова обробка ЕКГ. PAGEREF _Toc11367971 \h 181.4.Опис ресурса PhysioNet. PAGEREF _Toc11367972 \h 221.5.Структура PhysioNet. PAGEREF _Toc11367973 \h 25Загальн? висновки до розд?лу 1. PAGEREF _Toc11367974 \h 27РОЗД?Л 2 ?НСТРУМЕНТИ РОЗРОБКИ PAGEREF _Toc11367975 \h 282.1.Стандарт PhysioNet. PAGEREF _Toc11367976 \h 282.2.Мова програмування Python. PAGEREF _Toc11367977 \h 342.3.Огляд додаткових використаних б?бл?отек. PAGEREF _Toc11367978 \h 41Загальн? висновки до розд?лу 2. PAGEREF _Toc11367979 \h 45РОЗД?Л 3 ПРОЕКТУВАННЯ ПРОГРАМНОГО ДОДАТКУ PAGEREF _Toc11367980 \h 463.1.Середовище розробки. PAGEREF _Toc11367981 \h 473.2.Б?бл?отека wfdb. PAGEREF _Toc11367982 \h 503.3.Моделювання контекстно? д?аграмми. PAGEREF _Toc11367983 \h 503.4.Моделювання д?аграми декомпозиц?? першого р?вня. PAGEREF _Toc11367984 \h 523.5.Розробка блок-схеми лог?ки програмного додатку. PAGEREF _Toc11367985 \h 533.6.Моделювання граф?чного ?нтерфейсу системи. PAGEREF _Toc11367986 \h 54Загальн? висновки до розд?лу 3. PAGEREF _Toc11367987 \h 56РОЗД?Л 4 РЕАЛ?ЗАЦ?Я ПРОГРАМНОГО ДОДАТКУ PAGEREF _Toc11367988 \h 574.1.Основна використана концепц?я . PAGEREF _Toc11367989 \h 574.2.Опис клас?в програмного додатку. PAGEREF _Toc11367990 \h 584.3.Огляд елемент?в керування. PAGEREF _Toc11367991 \h 664.4.Пояснювальна записка по робот? прогрманого модулю. PAGEREF _Toc11367992 \h 70Загальн? висновки розд?лу 4. PAGEREF _Toc11367993 \h 87РОЗД?Л 5 ОХОРОНА ПРАЦ? PAGEREF _Toc11367994 \h 88Вступ. PAGEREF _Toc11367995 \h 885.1.Загальна характеристика прим?щення. PAGEREF _Toc11367996 \h 885.2.В?дпов?дн?сть планування. PAGEREF _Toc11367997 \h 905.3.Оц?нка небезпечних ? шк?дливих виробничих фактор?в. PAGEREF _Toc11367998 \h 905.4.М?крокл?мат. PAGEREF _Toc11367999 \h 905.5.Осв?тлення. PAGEREF _Toc11368000 \h 925.6.Шум. PAGEREF _Toc11368001 \h 935.7.Небезпека електромагн?тного опром?нення. PAGEREF _Toc11368002 \h 945.8.Електронебезпека. PAGEREF _Toc11368003 \h 955.9.Пожежна безпека. PAGEREF _Toc11368004 \h 97Загальн? висновки до розд?лу 5. PAGEREF _Toc11368005 \h 97РОЗД?Л 6 ЕКОНОМ?ЧНА ЧАСТИНА PAGEREF _Toc11368006 \h 986.1.Економ?чний анал?з вар?ант?в розробки програмного продукту. PAGEREF _Toc11368007 \h 986.2.Розрахунок зароб?тно? плати розробника. PAGEREF _Toc11368008 \h 99Загальн? висновки до розд?лу 6. PAGEREF _Toc11368009 \h 102ЗАГАЛЬН? ВИСНОВКИ PAGEREF _Toc11368010 \h 103СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ PAGEREF _Toc11368011 \h 104ДОДАТОК А PAGEREF _Toc11368012 \h 111А.1 Св?дотство про п?дтвердження публ?кац?? PAGEREF _Toc11368013 \h 111А.2 Розм?щення публ?кац?? PAGEREF _Toc11368014 \h 112А.3 Публ?кац?я PAGEREF _Toc11368015 \h 115ПЕРЕЛ?К УМОВНИХ ПОЗНАЧЕНЬ, СИМВОЛ?В, ОДИНИЦЬ, СКОРОЧЕНЬ ? ТЕРМ?Н?ВУ ц?й робот? застосовуються так? терм?ни з в?дпов?дними визначеннями:АЦП – аналого-цифровий перетворювачВКР – випускная квал?ф?кац?йна роботаПК – персональний комп'ютерПО – програмне забезпеченняЕКГ – електрокард?ограф?яCSV – Coma Separated ValuesEDF – European Data FormatMVC – Model View ControllerSWIG – Simplified Wrapper Interface GeneratorJN – Jupiter NotebookWF – Windows FormsWfdb – Waveform DatabaseВСТУПАктуальн?сть роботиЕлектрокард?ограф?я (ЕКГ) це не ?нваз?йний метод досл?дження орган?зму людини, який дозволя? отримати ?нформац?ю про функц?онування серця пац??нта. Суть даного методу заключа?ться в ре?страц?? електричних потенц?ал?в, що виникають п?д час роботи серця ? в ?х граф?чному в?дображенн? на диспле? або папер?. Запис проводиться з поверхн? т?ла пац??нта (верхн? й нижн? к?нц?вки та грудна кл?тина). Електрокард?ограма зазвичай м?стить в соб? 12 в?дведень: три стандартних (I, II, III), три посилених однополюсних в?дведення в?д к?нц?вок (avR, avL, avF) ? ш?сть грудних однополюсних в?дведень (V1-V6). В даний час у кард?олог?чн?й техн?ц? стали широко впроваджуватися цифров? системи. Завдяки цьому управл?ння кард?ограф стало б?льш зручним, а сам? прилади б?льш над?йними. Багато аналогових прилад?в вимагають велику к?льк?сть компонент?в. Цифров? ж системи дозволяють зменшити розм?р ? реал?зувати под?бний функц?онал за допомогою дек?лькох м?кросхем. Для пац??нт?в, як? страждають захворюваннями серцево-судинно? системи, може бути вкрай важливо пост?йно зд?йснювати мон?торинг роботи серця ? вчасно визначати причину почаст?шання серцебиття або зниження серцево? активност?. Для цього ?снують портативн? домашн? системи зняття ЕКГ. Окреме м?сце в розробц? цифрових прилад?в анал?зу ЕКГ займа? налагодження ? налаштування систем автоматичного анал?зу. Даний етап розробки поляга? в тестуванн? роботи системи з ус?ма р?зними вар?антами сигнал?в. За реакц??ю комплексу можна судити про правильн?сть виведення ? необх?дност? зм?нювати алгоритм обробки сигналу. В ход? ц??? роботи в систему завантажу?ться велика к?льк?сть даних, як? можуть зустр?тися в експлуатац?? програми. Великий обсяг даних ма? на уваз? необх?дн?сть створити розм?тку сигнал?в в автоматичному режим?. Також, потр?бно передбачити роботу з даними за р?зними посиланнями та ресурсами. На приклад бази медичних показник?в PhysioNet. На основ? вищесказаного можна зробити висновок, що под?бна програма нап?вавтоматичного анал?зу, була б затребувана у розробник?в програм цифрово? обробки ЕКГ. Мета роботиРозробка програмного пакета нап?вавтоматично? в?зуал?зац?? електрокард?ограф?чних даних, для п?двищення ефективност? створення та налагодження систем автоматичного анал?зу ЕКГ.Для досягнення поставлено? мети в робот? вир?шуються наступн? задач?: ознайомлення з методами зд?йснення в?зуал?зац?? сигнал?в ЕКГ; вивчення мови програмування Python; розробка програми, що дозволя? працювати з фа, в?дображати сигнал, працювати з ресурсами мереж? ?нтернет, створювати зн?мки сигнал?в та збер?гати ?х;тестування роботи програми з сигналами;застосування розроблено? програми для файл?в системи типу CSV та EDF. Об'?ктом досл?дження ? розробка систем автоматичного анал?зу ЕКГ. Предметом досл?дження ? комплекс програм нап?вавтоматично? в?зуал?зац?? даних ЕКГ.НовизнаМожлив?сть використання розробленого комплексу програм при налагодженн? сучасних систем анал?зу ЕКГ. Це дозволить значно скоротити к?льк?сть помилок в робот? анал?затор?в, а також п?двищити швидк?сть розробки програм по досл?дженню ЕКГ.РОЗД?Л 1ЕЛЕКТРОКАРД?ОГРАФ?Я ТА PHYSIONET. КОРОТКИЙ ОГЛЯД?стор?я електрокард?ограф??.У сучасному св?т? ми звикли не звертати увагу на складн? прилади, якими користу?мося щодня. Незважаючи на це, необх?дно розум?ти ?стор?ю розвитку технолог?й, результатом яко? став сучасний св?т техн?ки. Так, в св?т? медицини електрокард?ограф отримав дуже широке поширення ? щ?льно ув?йшов в повсякденне життя багатьох л?кар?в. У наступному розд?л? наводиться коротка ?сторична дов?дка, а також розгляда?ться технолог?чна еволюц?я апарат?в ЕКГ.В 1786 роц? доктор Лу?дж? Гальван?, ?тал?йський л?кар ? ф?зик Ун?верситету Болонь?, вперше пом?тив, що в скелетних м’язах проявля?ться електрична активн?сть. В?н записав електрограму розчленованих м’яз?в. В 1842 роц? доктор Маттеучч?, професор ф?зики в Ун?верситет? П?зи, показав на приклад?, що електричний струм супроводжу? кожний удар серця у жаби. Тридцять п'ять рок?в по тому, Огастес Уаллер, британський ф?з?олог медично? школи Сент-Мер? в Лондон?, опубл?кував першу людську електрокард?ограму, використовуючи кап?лярн? електрометр?? ? електроди, як? були розм?щенн? на грудях ? спин? людини. В?н показав, що електрична активн?сть передувала скорочення шлуночк?в. У 1891 роц? В?льям Бейл?с та Едвард Старл?нг, англ?йськ? ф?з?ологи з Ун?верситетського коледжу Лондона, продемонстрував трифазну електричну активн?сть серця в кожному удар? за допомогою вдосконаленого кап?лярного електрометра. На рисунку 1.1 приведений трикутник скорочень з першими шести в?дведенями.Рисунок 1.1. Трикутник серцевого ритму й сектори шести в?дведень.Доктор У?льям Ейнтховен, голландський ф?з?олог, був натхненний роботою Уоллера, Що ще б?льше покращив кап?лярний електром?р ? зм?г продемонструвати п'ять в?дведень , як? в?н назвав ABCDE. Для регуляц?? ?нерц?? в кап?лярно? системи, в?н застосував математичну корекц?ю, в результат? яко? появились крив?, як? ми бачимо сьогодн?. Терм?н "електрокард?ограма" використову?ться, для опису цих граф?к?в, вперше був застосований Ейнтховеном на медичних зборах Н?дерланд?в в 1893 р. У 1901 роц? в?н усп?шно розробив новий струнний гальванометр з дуже високою чутлив?стю, який в?н використовував в електрокард?ограф?? [1]. По м?ру того як електрокард?ограф ставав б?льш доступним, для кл?н?чного використання, був проведений ряд пол?пшень, щоб зробити його б?льш зручним для користувач?в. Ран?ше електрокард?ограми, записан? Уоллером, використовували п’ять електрод?в, по одному на кожну ?з чотирьох к?нц?вок и рот, з десятьма в?дведеннями, отриман? в результат? р?зних комб?нац?й. Ейнтховену вдалось зменшити число електрод?в до трьох. Отриман? в?дведення були використан?, для побудови трикутника Ейнтховена. У 1924 роц? Ейнтховенубила присуджена Нобел?вська прем?я з ф?з?олог?? та медицинм за винах?д електрокард?ографа.Сер Едвард Шафер з Ун?верситету Единбурга був першим, хто купив електрокард?ограф, для кл?н?чного використання в 1908 роц?, а перша електрокард?ограф?чна машина, була представлена в США у 1909 роц?, доктором Альфредом Коном у Нью-Йорку[2]. Протягом перших трьох десятил?ть двадцятого стол?ття, використання ЕКГ з трьома в?дведеннями зб?льшилося, особливо п?сля того, як прилади вдалося зробити б?льш портативними. Спочатку електрокард?ограми використовувались, для вивчення аритм?й. Пот?м було доведено, що ?х доц?льно застосовувати для п?дтвердження д?агнозу ?нфаркту м?окарда. В той час, як електрокард?ограма з трьома в?дведенями була визнана, як досить точним методом для оц?нки аритм?й, з'ясувалося, що ?снують так зван? "мовчазн? райони" в серц?, де, ?нфаркт м?окарда м?г бути не виявлений. У 1934 роц? доктор Франк В?лсон з Ун?верситету М?чигану розробив концепц?ю ?центрального терм?налу?. З’?днанням трьох електрод?в на к?нц?вках, був отриманий центральний негативний висновок - "земля" або в?дносний висновок. Електрод на поверхн? т?ла, п?дключений через гальванометр, який у свою чергу п?дключений до земл?, вим?рю? р?зницю потенц?ал?в м?ж точкою на т?л? ? тим, що можна рахувати нулем – землею. На в?дм?ну в?д б?полярних в?дведень, однополярне теоретично може вим?рювати потенц?ал будь-яко? точки т?ла. В 1938 роц? Американська асоц?ац?я серця ? Кард?олог?чне товариство Велико? Британ?? опубл?кували сво? рекомендац?? для запису потенц?ал?в шести точок, як? були назван? в?д V1 до V6. Так появились грудн? в?дведення. Так як три в?дведення електрокард?ограми покривали грудну кл?тку з кроком 60 °, здавалося можливим, що все ще ?снують сл?п? зони при визначенн? патолог?й м?окарда. У 1942 роц? доктор Емануель Голдбергер з л?карн? Л?нкольна в Нью-Йорку, використовуючи метод В?лсона, по?днав центральн? однополярн? в?дведення ? землю з додатковими позитивними в?дведеннями в?д право? руки до л?во? ноги. Завдяки цьому вдалося розм?стити електроди б?льш часто, з кроком 30 °. Так як сигнал однополярних в?дведень був маленьким, Голдбергер розробив метод посилення сигналу. Результатом цього, стали розширен? однополярн? в?дведення к?нц?вок a-VL, a-VR, та a-VF. Винах?д однополярних в?дведень, дозволило створити дванадцять висновк?в електрокард?ограми, як? використовуються ? дос?.В 1954 роц? Американська асоц?ац?я серця опубл?кувала сво? рекомендац?? по стандартизац?? дванадцяти висновк?в ЕКГ. Електрокард?ограф?я гра? важливу роль в розум?нн? хвороб серця. Разом з електроф?з?олог??ю, ? основним показником характеристика порушень ритму. Кр?м того, ЕКГ ма? велике значення в л?куванн? пац??нт?в з ?шем?чною хворобою серця. В?н був одним з перших технолог?чних метод?в, як? доповнювали кл?н?чн? навички л?куючих л?кар?в, що дозволя? отримати об'?ктивн? дан? про функц?онування та будову людського т?ла.Етапи розвитку технолог?й ЕКГ.Перше розроблений пристр?й в?домий, як "гальванометр" (1794 р.) - високочутливий прилад для вим?рювання сили малих пост?йних електричних струм?в. На в?дм?ну в?д звичайних м?кро амперметр?в шкала гальванометра може мати градац?ю не т?льки в одиницях сили струму, але ? в одиницях напруги, нав?ть одиницях ?нших ф?зичних величин. Шкала може мати умовну, безрозм?рне градуювання, наприклад, при використанн? в якост? нуль-?ндикатор?в. Таким чином в?н т?льки показував наявн?сть струму, але не вим?рював його. У 1849 роц? Дюбуа-Реймон удосконалив ?снуючий прилад таким чином, що воно стало вим?рювати силу струму, добавивши двухпозиц?онний вимикач. Це пристр?й було названо "Реотом" ( "Rheotome") [3].Реототом, це диск, який в?льно оберта?ться навколо вертикально? ос?, з передбаченими но його краях двома штифтами, один з яких заф?ксований на диску ? шляхом замикання ? розмикання сили струму в первинн?й котушц? ?ндукц?йного приладу, подразню? об'?кт. Другий руха?ться ? включа? д?ючий струм в?д об'?кта в гальванометр. При обертанн? диска з заданою швидк?стю, прилад подразню?ться при кожному оберт? протягом встановленого часу та контакту? з гальванометром. Якщо контакт установлено так, щоб ланцюг гальванометра замикався в той же самий час, що ? замикання розмикання ?ндукц?йно? котушки, в?дхилення гальванометра буде в?дпов?дати початкового д?яти в ланцюз? струму. Якщо другий штифт, який служить для в?дводу струму в гальванометр?, зрушити назад, то передача струму в гальванометр буде в?дставати в?д роздратування об'?кта. Таким чином посл?довно зрушуючи другий штифт, можна отримати повну картину проходження струму через тканини живого орган?зму [4]. У 1868 роц?, учень Дюбуа-Реймона, Юл?й Бернштейн зм?нив Реотом, так що ?нтервал м?ж стимуляц??ю ? в?дбором проб м?г бути р?зним. Цей прилад назвали "диференц?альний реотом" ? перш? електрокард?ограми були записан? саме за допомогою цього пристрою. Б?льш?сть з них були знят? з серця жаби в ход? експеримент?в на випробовуванн? приладу, причому електроди розм?щувались на самому серц? при в?дкрит?й грудн?й кл?тин?. Д?фференц?альному реотому не вистачало чутливост?. Це привело до появи "кап?лярного електрометр??", винайдено? Габр?елем Липпманом в 1872 роц?.Август Уоллер був першим, хто виявив, що електрична активн?сть людського серця може бути записана за допомогою кап?лярного електрометр?? без розтину грудно? кл?тини. В?н перший записав електричну активн?сть людського серця в 1887 роц?. У сво?й перв?сн?й статт? в?н назвав даний запис "електрограмою". Р?к по тому, назва зм?нилася на ?кард?ограма?. Ейнтховен почав розробляти св?й власний гальванометр в 1900 роц?, п?сля того, як залишився незадоволений роботою кап?лярного електром?ром.Результатом став ?струнний гальванометр?, який був представлений публ?ц? в 1903 роц?, хоча Ейнтховен опубл?кував перший зв?т про нього ще в 1901 роц?. Електрокард?ограф Ейнтховена спершу був з?браний та введений в експлуатац?ю в Н?меччин?, компан??ю Едельманн та сини в Мюнхен?. П?зн?ше в?н почав виходити в експлуатування з Кембриджсько? ?нстументально? кампан?? в Лондон? [5].Мюнхенськ? та Лондонськ? ?струнн? гальванометри? все ще були прототипами та й випустили ?х задля перев?рки теор?й та можливост? точних вим?р?в серцевих ритм?в. Перший повноц?нний апарат ЕКГ був разроблений в США. Це був струнний електрокард?ограф Едельмана, який був покращений Альфредом Коном в 1909 роц?. Перший апарат, який вироблявся в Сполучених Штатах, конструкц?я якого була розроблена професором Горац?о У?льямсом ? побудований в 1914 роц? Чарльзом Х?ндлом. Л?кар Альфред Кон отримав перший апарат ЕКГ 20 травня 1915 року, перше обстеження за допомогою приладу показало, що пац??нт мав гострий ?нфаркт. При вдосконален? конструкц?? струнного гальванометра ого вага знизилася до 300 кг. в 1903 роц?, а в 1928 до 10 кг.Наступне вдосконалення полягало в модиф?кац?? електрод?в. Початков? цил?ндри Ейнтховена з розчином електрол?т?в були зменшен? в розм?рах ? використовувалися до к?нця 1930-х. Альфред Кон в 1920 роц? вв?в рем?нь з електродами. У 1930 роц? Кембриджська ?нструментальна компан?я в Нью-Йорку презентувала н?мецьк? ср?бн? електроди з прямою контактною пластиною. Електродн? присоски, для грудних в?дведень були розроблен? Рудольфом Бюргером в 1932 роц?. Покращенн? вар?анти присосок на даний момент зображен? на рисунку 1.2.Рисунок 1.2. присоски ЕКГ.П?зн?ше, вчен? з Уельса присоски й в даний час вони використовуються, для вс?х 12 в?дведень. На рисунку 1.3 зображено розм?щення 12 в?дведень. Рисунок 1.3. Розм?щення 12 в?дведень.Наступним етапом в еволюц?? апарат?в ЕКГ полягав в використовування електронних ламп, для посилення сигналу. Перший прилад такого типу був розроблений в США компан??ю General Electric Corporation. Пот?м в електрокард?ограф?? стали застосовувати електронно-променев? трубки. Це дозволило покращити ф?зичн? характеристики записуючих пристро?в [6].Впровадження посилювач?в дозволило записувати кард?ограму в?дразу на папер?, без попередньо? обробки. П?сля винаходу м?кроконтролер?в ? цифрових сигнал?в св?т ЕКГ значно зм?нився. Методи цифрово? обробки сигнал?в дозволили значно спростити операц??, як? до цього часу л?карям приходилось зд?йснювати вручну, а також в?дкрили перед досл?дниками нов? можливост? ? нов? властивост? кард?ограми, як? дозволили виявити нов? залежност? м?ж кард?осигналом ? станом серцево? системи пац??нта.Цифрова обробка ЕКГ.Оск?льки метою дано? роботи ? розробка програми, що в?зуал?зу? сигнал ЕКГ, а також його властивост?, необх?дно мати уявлення про те, як? характеристики сигналу можуть зац?кавити користувача, ? яка як?сть необх?дна для коректного в?дображення сигналу. У даному п?дрозд?л? представлений огляд процесу цифрово? обробки сигналу кард?ографа. На рисунку 1.4 зображено основний цикл та приклади кард?ограм з р?зними ритмами серця.Перший етап, зб?р даних. В?н склада?ться з апаратно? частини , яка включа? в соб? аналогово – цифровий перетворювач, ? програмну частину, яка в?дпов?да? за напрямок команд АЦП [7]. Будь – яка мова програмування, що дозволя? вза?мод?яти з обладнанням на низькому р?вн? придатна, для управл?ння.Рисунок 1.4. Цикл скорочення серця та приклади зображення ритму.Для того, щоб вибрати в?дпов?дний АЦП, необх?дно знати характеристики сигналу, який в?н буде перетворювати. У таблиц? 1.1 приведен? електричн? ? тимчасов? характеристики ЕКГ сигналу в нормованому вигляд?.Таблиця 1.1Параметри нормованих показник?в ЕКГАмпл?туда, мВТривал?сть, сЗубець Р0 – 0,25 0,07 – 0,11?нтервал PQВ залежност? в?д пац??нта0,12 – 0,2QRS – комплекс0,3 – 5 0,06 – 0,1?нтервал QTВ залежност? в?д пац??нта0,35 – 0,44ST – сегмент0,4 – 1 0,35 – 0,44Продовж. табл. 1.1Зубець TВ залежност? в?д пац??нта0,06 – 0,15Зубець U0 – 0,10,1 – 0,2В основному сигнал зосереджений на частотах 0,5 – 30 Гц. П?к потужност? доводиться на 15 Гц, але при патолог?ях частотн? характеристики сигналу можуть сильно в?др?знятися. На рисунку 1.5 зображено розм?щення зубц?в вих?дного сигналу ЕКГ, який визнаний стандартом та використову?ться, як символ або позначення кард?олог?чних прац?вник?в. Рисунок 1.5. Розм?щення ?нтервал? та зубц?в ЕКГ.Частота дискретизац?? це частота, з якою АЦП буде вим?рювати поданий на нього сигнал. Виходячи з даних, наведених вище, можна визначити частоту дискретизац?? необх?дну, для перетворення сигналу в цифрову форму. За теоремою Котельникова, достатньою для передач? сигналу без спотворень буде частота дискретизац?? в 100 Гц, але, сл?дую рекомендац?ям Американського товариства кард?олог?в необх?дно використовувати частоту дискретизац?? 500 Гц. Основними параметрами АЦП ?: розрядн?сть, смуга пропускання, чутлив?сть, швидкод?я [8].Число розряд?в АЦП визнача? точн?сть перетворення. Але не обов’язково теор?я, що дуже велике число розряд?в зможе значно зб?льшити точн?сть, так як сигнал п?дда?ться значному впливу перешкод, шум?в, а також нел?н?йност? характеристик. Для перетворення сигналу ЕКГ в цифровий формат досить ? 8 б?т, част?ше використовують 16, так як варт?сть таких АЦП не сильно вище, але вони дозволяють пол?пшити як?сть сигналу.Чутлив?сть АЦП показу?, ск?льки р?вн?в перетворення доводиться на 1 одиницю вх?дного сигналу. Стандартно? чутлив?стю ? 200 р?вн?в на м?л?вольт, цього ц?лком достатньо для перетворення ЕКГ сигналу в цифровий формат. Але, можна застосовувати перетворювач? з б?льш високим показником чутливост?. В?д цього як?сть сигналу покращиться. П?сля того, як сигнал оцифрований, його необх?дно п?ддати ф?льтрац??, так як часто в сигнал схильний до впливу велико? к?лькост? шум?в [9]. В основному необх?дно п?ддати сигнал д?? дек?лькох ф?льтр?в, кожний з яких видалить або зменшить вплив конкретного шуму. Найчаст?ше це:ф?льтри мережного наведення;ф?льтри нижн?х частот, що обмежують ЕКГ-сигнал в област? високих частот; ф?льтри високих частот, що видаляють М?ограф?чний шум ?, що обмежують ЕКГ-сигнали в област? низьких частот.Кожний з цих ф?льтр?в ма? к?лька реал?зац?й ? може бути представлений р?зними конкретними ф?льтрами. Кожен розробник сам вирушу?, д?? яких ф?льтр?в п?ддати сигнал, тому ЕКГ р?зних кард?ограф?в може мати в?дчутн? в?дм?нност?.В загальному випадку, п?сля ф?льтрац?? з сигналом можна вза?мод?яти р?зним чином. Передавати його л?каря для оц?нки, або п?ддавати його подальш?й обробц?. На приклад, сигнал можна в?дправити в алгоритм виявлення QRS-комплекс?в. Це сильно спростить роботу л?каря. Так само, можна розрахувати показники вар?абельност? серцевого ритму, цей метод анал?зу ЕКГ значно розширю? можливост? д?агностики захворювань. Спектральний анал?з кард?ограми в?дкрива? новий прост?р для анал?зу ЕКГ, з його допомогою [10].Зрозум?ло, що описан? вище техн?чн? детал? зн?мання та обробки ЕКГ мають набагато б?льше техн?чних подробиць, н?ж описано тут. У дан?й робот? не проводиться безпосередню вза?мод?ю з кард?осигналом ? його перетворення, тому представлен? в цьому п?дрозд?л? особливост? цифрово? обробки сигналу мають лише дов?дковий характер ? приведен? для того, щоб необ?знаний користувач зм?г зрозум?ти терм?ни, що зустр?чаються при опис? функц?онування програми.Опис ресурса PhysioNet.Оск?льки основна мета дано? роботи в?зуал?зац?я файл?в за ресурсом PhysioNet, то сл?д описати його ?стор?ю та основну ц?ль. PhysioNet – як видно з рисунку 1.6, ресурс явля? собою веб-сайт, який вм?ща? у соб? добре описан? ф?з?олог?чн? сигнали ? в?дпов?дне програмне забезпечення з в?дкритим вих?дним кодом для б?омедичного наукового сп?втовариства. Рисунок 1.6. Веб-ресурс Physionet.В?дкрито у вересн? 1999 року п?д ег?дою Нац?онального центру НИЗ для досл?дницьких ресурс?в (NCRR). PhysioNet це онлайн форум для в?льного поширення та обм?ну науково-досл?дницькими даними та програмами, установками для сум?сцевого анал?зу даних ? оц?нки нових анал?тичних метод?в. За перебування на кв?тень 2016 року, арх?в даних, м?стив приблизно 4 террабайта записаних сигнал?в ? аннотац?й [11]. PhysioNet ? публ?чною службою Науково-досл?дного ресурсу складних Ф?з?олог?чних сигнал?в. Це сп?льний проект, створений з ?н?ц?ативи досл?дник?в з Медичного центру Бет-?зрейел в Бостон?, Гарвардсько? медично? школи, Бостонського ун?верситету, Ун?верситету Макг?лла ? Массачусетського технолог?чного ?нституту. Починаючи з середини 1970-х рок?в, члени команди PhysioNet, як? тод? працювали над деякими з перших м?крокомп'ютерних ?нструмент?в для мон?торингу серцево? аритм??, передбачали корисн?сть створення сп?льних баз даних добре охарактеризованих запис?в ЕКГ, як основу для оц?нки, ?теративно? удосконалення та об'?ктивне пор?вняння алгоритм?в автоматизованого анал?зу аритм??.П'ятир?чн? зусилля завершилися публ?кац??ю баз даних аритм?? в 1980 роц?, який незабаром став стандартною колекц??ю свого типу, що використовувалося б?льш н?ж 500 науковцями, досл?дниками та розробниками в усьому св?т? протягом 1980-х ? 1990-х рок?в. Наступн? ?нш? бази даних ЕКГ ?, зрештою, ?нш? ф?з?олог?чн? сигнали. До 1999 року група поширювала компакт-диски, що м?стять 11 таких колекц?й, ? брали участь у розробц? дек?лькох ?нших [12].Група досл?дник?в внесла сво? перш? 11 баз даних, а також програмне забезпечення, яке вона розробила для вивчення та анал?зу ?х, для встановлення PhysioBank ? PhysioToolkit. В?льна доступн?сть цих ресурс?в через ?нтернет стимулювала ще б?льший вибух ?нтересу до них, оск?льки досл?дники та студенти в усьому св?т?, як? не мали попереднього доступу до таких даних або програмного забезпечення, почали нов? програми досл?джень, ? фах?вц? почали пор?внювати сво? методи. Ц? початков? внески були швидко доповнен? додатковими колекц?ями даних ? програмного забезпечення в?д сво?х сп?вроб?тник?в, а незабаром ? в?д багатьох досл?дник?в у всьому св?т?. PhysioBank ? PhysioToolkit виросли в багато раз?в за сво? початков? розм?ри, ? б?льша частина зростання в?дбулася завдяки наполеглив?й прац? та щедрост? м?жнародно? сп?льноти досл?дник?в.П?д час створення PhysioNet члени команди готувалися до розм?щення комп'ютер?в у Cardiology 2000. Спод?валися представити PhysioNet м?жнародним колегам, як? будуть в?дв?дувати CinC, заохочуючи участь у д?яльност?, яка ефективно використовувала засоби, що надаються PhysioNet для стимулювання швидкого прогресу в невир?шен?й проблем? практичного кл?н?чного значення. Сво?часний внесок даних дозволив створити перший PhysioNet/CinC Challenge, який привернув увагу б?льше десятка команд до теми виявлення апное сну з ЕКГ. ?х зусилля були в ц?лому усп?шними, вони обговорювали сво? висновки в CinC 2000, ? так почалась щор?чна традиц?я [13].Спочатку створений п?д ег?дою Нац?онального центру досл?дницьких ресурс?в (який був скасований в 2011 роц?), PhysioNet ф?нансу?ться з вересня 2007 року за угодою про сп?впрацю з Нац?ональним ?нститутом б?омедичних зображень ? б?о?нженер??, а також з Нац?ональний ?нститутом загальних медичних наук.Структура PhysioNet.Ресурс PysioNet, призначений для стимулювання поточних досл?джень ? нових досл?джень у вивченн? складних б?омедичних ? ф?з?олог?чних сигнал?в. В?н ма? три т?сно вза?мозалежн? компоненти:PhysioBank - це великий ? зростаючий арх?в добре охарактеризованих цифрових запис?в ф?з?олог?чних сигнал?в, часових ряд?в ? пов'язаних з ними даних для використання б?омедичним досл?дницьким сп?втовариством. PhysioBank включа? в себе колекц?? серцево-легеневих, нервових та ?нших б?омедичних сигнал?в в?д здорових суб'?кт?в ? пац??нт?в з р?зноман?тними захворюваннями, включаючи раптову серцеву смерть, заст?йну серцеву недостатн?сть, еп?лепс?ю, порушення ходи, апное сну ? стар?ння. Ц? колекц?? включають дан? з широкого кола досл?джень, розроблен? та внесен? членами досл?дницького сп?втовариства [14].PhysioToolkit - це велика та зростаюча б?бл?отека програмного забезпечення для ф?з?олог?чно? обробки та анал?зу сигнал?в, виявлення ф?з?олог?чно значущих под?й з використанням як класичних метод?в, так ? нових метод?в, заснованих на статистичн?й ф?зиц? та нел?н?йн?й динам?ц?, ?нтерактивне в?дображення та характеристика сигнал?в, створення нових баз даних, моделювання ф?з?олог?чн? та ?нш? сигнали, к?льк?сна оц?нка ? пор?вняння метод?в анал?зу, анал?з нер?вноважних ? нестац?онарних процес?в. Об'?днуючою темою багатьох досл?дницьких проект?в, як? надають програмне забезпечення для PhysioToolkit, ? вилучення ?приховано?? ?нформац?? з б?омедичних сигнал?в, ?нформац??, яка може мати д?агностичне або прогностичне значення в медицин?, або пояснювально? або передбачувально? сили в фундаментальних досл?дженнях [15]. PhysioNetWorks - це в?ртуальна лаборатор?я, де ви можете працювати разом з нами та з колегами в будь-як?й точц? св?ту для створення, оц?нки, вдосконалення, документування та п?дготовки нових даних та програмних ?роб?т? для публ?кац?? на PhysioNet. Авторам надаються робоч? област? для член?в сп?льноти PhysioNet для незавершених роб?т, як? будуть публ?чно доступн? через PhysioNet п?сля завершення. Члени PhysioNetWorks можуть переглядати назви та реферати активних проект?в PhysioNetWorks (робоч? простори, як? включають безпечне арх?вне сховище даних або програмного забезпечення, як? в к?нцевому рахунку будуть внесен? до PhysioNet). Вони можуть також приймати учать, як рецензенти або сп?впрац?вники проект?в, що ?х ц?кавлять, для того, щоб отримати доступ до файлового арх?ву розроблюваного проекту [16]. Кожен проект ма? одного власника, який визнача? свою пол?тику доступу. Власник проекту може також передавати статус власника ?ншому учаснику проекту з його згодою. PhysioNet забезпечу? щоденне додаткове та щом?сячне повне резервне коп?ювання PhysioNetWorks. Дан?, видален? до останнього повного резервного коп?ювання, не п?длягають в?дновленню. Вс? диски, що використовуються для збер?гання, шифруються ? збер?гаються у ф?зично захищених м?сцях.Усе це дозволя? вид?лити даний веб-ресурс, як одну з основних площадок наукових розробок з анал?зу та удосконалення ЕКГ в наш час. Загальн? висновки до розд?лу 1.Були розглянут? к?льк?сть та типи в?дведень при ЕКГ анал?з?. Також були розглянут? стандарти PhysioNet, за допомогою яких можна спроектувати програмний додаток. Основн? етапи: ? Типи файл?в, для збереження запис?в медичних показник?в.? Градац?я у в?дпов?дних сетах даних.? Обран? основн? розширення, дляпроектування програмного додатку.РОЗД?Л 2 ?НСТРУМЕНТИ РОЗРОБКИСтандарт PhysioNet.В якост? основи для розробки програми був обраний стандарт PhysioNet.База PhysioNet явля? собою файли сигнал?в ? додатков? файли анотац?й. На ресурс? представлено багато даних, що м?стять р?зн? сигнали. Кожна база даних склада?ться з набору запис?в, як? визначен? назвою запису. Список запис?в, що м?стяться в кожн?й баз? сформовано у вигляд? окремого ресурсу. У б?льшост? випадк?в, запис склада?ться, як м?н?мум з трьох файл?в, як? розд?лен? з наступним додавання р?зних суф?кс?в (розширень), як? вказують на ?х зм?ст (рис. 2.1) [17].Рисунок 2.1. Структура розпод?лення запис?в за ресурсом.Наприклад, база даних ?MIT-BIH Аритм?я? включа? в себе запис з ?м'ям ?100?. Три файлу: 100.atr, 100.dat ? 100.hea разом створуюють запис 100. Майже вс? записи включають в себе дв?йковий файл .dat, що м?стить оцифрован? дан? з одного або дек?лькох сигнал?в. Ц? файли можуть бути дуже великими. Файл .hea (заголовок) явля? собою короткий текстовий файл, який опису? сигнали, включаючи ?м'я або URL файлу сигналу, формат збер?гання даних, к?льк?сть ? тип сигнал?в, частоту дискретизац??, кал?брувальн? дан?, характеристики АЦП, довжину запису ? час початку. Б?льш?сть запис?в включають в себе один або дек?лька дв?йкових файл?в анотац?й (в приклад?, .atr познача? файл анотац?й) [18; 19; 20; 21; 22]. Файли анотац?й м?стять набори м?ток, кожна з яких опису? особлив?сть одного або дек?лькох сигнал?в в певний момент часу в запис?. 100.atr, наприклад, м?стить м?тки для кожного QRS комплексу (удару серця) в запису, ?з зазначенням його м?сця розташування (часу появи) ? тип (нормальний, шлуночкова екстрасистола ? т.д.), а також ?нш? анотац??, як? вказують на зм?ни в кожному серцевому ритм? ? в якост? сигналу. В ?нших базах даних, анотац?? зазначають ?нш? особливост? сигнал?в. Файли сигнал?в (.dat) ?снують в дек?лькох форматах. Вони в?др?зняються к?льк?стю б?т (розрядн?стю), що використовуються для опису ампл?туди, а також к?льк?стю ? посл?довн?стю значущих б?т. Наприклад, в Формат? 32 кожен в?дл?к ? 32-х б?товим поданням значення ампл?туди ? молодший значущий байт записаний першим. Досл?дникам потр?бно проанал?зувати фактичне значення сигнал?в, тобто. значення цього сигналу ЕКГ в м?л?вольтах. Але для обробки ?нформац?? за допомогою комп'ютер?в, вони повинн? збирати сигнали через деякий пристр?й захоплення, яке дискретно в?дбира? ? оцифрову? сигнали на 2 N р?внях, де N - дозв?л пристрою. Кожен знятий зразок потребу? N б?т?в для збер?гання ? прийма? одне з 2 N можливих ц?лих значень. ?сну? також ?нформац?я, яка дозволя? користувачев?/програм? з?ставляти ц? ц?л? числа з ф?зичними значеннями, як? пристр?й вдалося захопити, враховуючи ?хн?й дозв?л. Наприклад, якщо вони мають 12-б?тний осцилограф, вони мають 4096 р?вн?в для захоплення д?апазону ? деталей сигналу. Б?льш високий N дозволя? вир?шувати б?льш др?бн? детал?, але вимага? б?льше м?сця для збер?гання на зразок.Оск?льки користувач хоче проанал?зувати фактичне значення сигнал?в, ми можемо з?ставити ц? цифров? значення з вих?дними ф?зичними значеннями, як? вдалося захопити пристро?м. Ц? з?ставлен? значення можуть бути завантажен? в середовище, як Python, C або Matlab, який ма? тип зм?нно? з подв?йною точн?стю (64 б?т), який може представляти числа ? десятков? знаки в дуже др?бних деталях 2 64= 1.8447e + 19. Тод? користувач буде мати "ф?зичн?" значення для обробки та застосування алгоритм?в у високо детал?зованому 64-б?тному середовищ?. Пам'ятайте, однак, що початкове дозв?л сигналу обмежу?ться пристро?м захоплення ? не зб?льшу?ться т?льки шляхом завантаження його в 64-б?тне середовище [24; 25; 26; 27].Сигнали знаходяться в ?ф?зичних одиницях?, коли значення використовуються для представлення реальних ц?нностей реального життя якомога ближче, хоча, очевидно, все на комп'ютер? ? цифровим ? дискретним, а не аналоговим ? безперервним. Це включа? в себе наш? дорогоц?нн? 64-б?тн? значення з плаваючою точкою з подв?йною точн?стю, але це наст?льки близько, як ми можемо отримати, ? вже дуже близьк? до реальних ф?зичних значень, тому ми назива?мо ?х ?ф?зичними?.Б?нарн? файли, так? як файли WFDB .dat, збер?гають значення сигналу як ц?л? числа, використовуючи достатньо м?сця на виб?рку, щоб зберегти початкове дозв?л сигналу, але не надм?рне.Наприклад, якщо 15-б?тний сигнал збира?ться за допомогою пристрою захоплення, Physionet, ймов?рно, збер?гатиме його як 16-б?товий сигнал. Кожен 16-б?товий блок збер?га? ц?ле значення м?ж -2 15 ? 2 15-1, ? використовуючи коеф?ц??нт п?дсилення ? зм?щення, вказаний в заголовку для кожного каналу, вих?дний ф?зичний сигнал може бути в?дображений для обробки. Якщо ми зна?мо, що сигнал ма? лише 15 б?т точност?, коли в?н був записаний, чому б не зберегти його як ц?л? числа в 16-б?товому файл? разом з малим текстом заголовка, а не в?дходити 4x ст?льки м?сця, де збер?га?ться ф?зичний сигнал за 64 б?т зразок? Оск?льки пристр?й захоплення становив р?вно 15 б?т, призначення б?льшого простору для збер?гання значень, як? потрапляють м?ж вих?дними значеннями, буде втрачено ? не зробить сигнал б?льш детальним [28; 29; 30; 31]. Уяв?ть, що використовуйте 5TB проти 20TB дискового простору для збер?гання точно тако? ж ?нформац??. Кожен з цих формат?в може бути використаний для сигналу, в якому м?стяться зразки двох або б?льше сигнал?в, як? збер?гаються посл?довно. Ц? записи можуть бути у файлах роширення .edf або .csv.Формат файлу .edf – ?вропейський формат даних, стандартний формат файл?в, призначений для обм?ну та збер?гання медичних часових ряд?в. Будучи в?дкритим ? неприватним форматом, EDF зазвичай використову?ться для арх?вування, обм?ну та анал?зу даних з комерц?йних пристро?в у формат?, незалежному в?д системи придбання. Таким чином, дан? можуть бути отриман? ? проанал?зован? незалежним програмним забезпеченням. Програмне забезпечення EDF ? файли приклад?в в?льно доступн? [32; 33; 34; 35].EDF був опубл?кований в 1992 роц? ? збер?га? багатоканальн? дан?, дозволяючи р?зн? частоти дискретизац?? для кожного сигналу. Внутр?шньо в?н м?стить заголовок ? один або б?льше запис?в даних. Заголовок м?стить деяк? загальн? в?домост? (?дентиф?кац?я пац??нта, час початку) та техн?чн? характеристики кожного сигналу (кал?брування, частота дискретизац??, ф?льтрац?я й так дал?), кодован? як символи ASCII. Записи даних м?стять зразки як мало-к?нцев? 16-розрядн? ц?л? числа. EDF ? популярним форматом для запис?в пол?сомнограф?? (PSG).EDF + був опубл?кований у 2003 роц? ? в значн?й м?р? сум?сний з EDF: вс? ?снуюч? глядач? EDF також показують сигнали EDF. Але файли EDF також дозволяють кодувати розривн? записи, а також анотац??, стимули та под?? у формат? UTF-8. EDF ма? застосування в PSG, електроенцефалограф?ю (ЕЕГ), електрокард?ограф?ю (ЕКГ), електром?ограф?ю (ЕМГ) та оц?нку сну. EDF можна також використовувати для досл?джень нервово? пров?дност?, викликаних потенц?ал?в та ?нших досл?джень збору даних [36; 37; 38; 39].Формат файлу .csv – у обчисленн? файл з розд?леними комами значеннями ? текстовим файлом з розд?льниками, який використову? кому для розд?лення значень. Файл CSV збер?га? табличн? дан? (цифри та текст) у вигляд? звичайного тексту. Кожен рядок файлу ? записом даних. Кожен запис склада?ться з одного або дек?лькох пол?в, розд?лених комами. Використання комою як розд?лювача поля ? джерелом ?мен? для цього формату файлу.Формат файлу CSV не повн?стю стандартизований. Основна ?дея розд?лення пол?в з комою зрозум?ла, але ця ?дея ускладню?ться, коли дан? поля також можуть м?стити коми або нав?ть вбудован? розриви рядк?в. Реал?зац?? CSV можуть не обробляти так? дан? поля, або вони можуть використовувати лапки, щоб оточити поле. Цитата не вир?шу? все: деяк? поля можуть потребувати вбудованих лапок, тому реал?зац?я CSV може включати символи втеч? або посл?довност? [40; 41; 42; 43].Кр?м того, терм?н "CSV" також познача? деяк? т?сно пов'язан? розд?льники розд?лен? формати, як? використовують р?зн? розд?лювач? поля, наприклад, крапки з комою. Вони включають значення, розд?лен? табуляц??ю, ? значення, розд?лен? проб?лами. Розмежувач, який в?дсутн?й у даних поля (наприклад, на вкладц?), збер?га? розб?р формату просто. Ц? альтернативн? файли, в?докремлен? розд?льником, часто отримують розширення .csv, незважаючи на використання розд?льника поля, що не ? комою. Ця в?льна терм?нолог?я може викликати проблеми при обм?н? даними. Багато програм, як? приймають файли CSV, мають опц?? для вибору символу розд?льника та символу цитування. У деяких ?вропейських кра?нах, наприклад, в ?тал??, часто використовуються крапки з комою.Файл заголовка (.hea) м?стить ?нформац?ю про те, який саме формат використову?ться для конкретного файлу сигналу. Файли заголовка (.hea) вказують на ?мена в?дпов?дних файл?в сигналу ? ?х атрибути. Ц? файли м?стять рядки полеор??нтованих запис?в кодування ASCII. Файли заголовк?в повинн? м?стити як м?н?мум рядок, визначающую ?м'я записи, к?льк?сть сегмент?в, ? к?льк?сть сигнал?в. Також тут можуть бути присутн?ми рядки коментар?в, як? можуть з'являтися в кожному м?сц? файла [44; 45; 46].Файли анотац?й (.atr) можуть бути представлен? в двох форматах. Основний формат MIT компактний (в середньому трохи б?льше двох байт на аннотац?ю) ? розширюваний, ? зазвичай використову?ться для онлайн аннотування файл?в. Альтернативний формат, AHA DB, використову? 16 байт на анотац?ю, ? зазвичай використову?ться т?льки для обм?ну файлами м?ж установами, використовуються дев'яти доро?н? касети для запису сигналу. Обидва формати являються б?нарними, але читаються на будь-якому комп'ютер? без декодування [47; 48]. Таким чином ресурс PhysioNet явля? собою готовий формат збереження ? обробки сигнал?в. Зручний ? зрозум?лий. Використання цього стандарту дозволя? узгодити сигнали, оброблен? розроблено? програми з сигналами ?нших досл?дник?в. Що може бути вельми корисно при налагодженн? ? тестуванн? програми. А значить при використанн? вищеописаного принципу обробки сигнал?в можна значно зб?льшити аудитор?ю користувач?в пакета програм, створеного в ходу дано? роботи.Мова програмування Python.Python – це ?нтерпретована мова програмування високого р?вня загального призначення. Основна ф?лософ?я дизайну Python п?дкреслю? читабельн?сть коду з його пом?тним використанням значних проб?л?в. Його мовн? конструкц?? та об'?ктно-ор??нтований п?дх?д спрямован? на те, щоб допомогти програм?стам написати ч?ткий, лог?чний код для малих ? великих проект?в. Python динам?чно набира?ться ? збира?ться см?ттям. В?н п?дтриму? багато парадигм програмування, включаючи процедурн?, об'?ктно-ор??нтован? та функц?ональн? програми. Python був задуманий в к?нц? 1980-х рок?в як наступник мови ABC. Python 2.0, випущений 2000 року, представив так? функц??, як розум?ння списк?в ? система збору см?ття, здатна збирати еталонн? цикли. Python 3.0, випущений у 2008 роц?, був серйозною рев?з??ю мови, яка не ? повн?стю зворотно сум?сною, ? багато Python 2-код не працю? без зм?н на Python 3. Через занепоко?ння щодо к?лькост? коду, написаного для Python 2, п?дтримка Python 2.7 (останн?й рел?з в сер?? 2.x) був розширений до 2020 року. Розробник мови Гв?до ван Россум взяв на себе в?дпов?дальн?сть за проект до липня 2018 року, але тепер под?ля? його кер?вництво як член ради з п'яти ос?б. ?нтерпретатори Python доступн? для багатьох операц?йних систем [49]. Св?тове сп?втовариство програм?ст?в розробля? та п?дтриму? CPython, посилання на в?дкрите посилання. Некомерц?йна орган?зац?я, Python Software Foundation, управля? та направля? ресурси для розвитку Python та CPython.Це мова програмування з к?лькома парадигмами. Об'?ктно-ор??нтоване програмування ? структуроване програмування повн?стю п?дтримуються, ? багато з його функц?й п?дтримують функц?ональне програмування ? аспектно-ор??нтоване програмування (у тому числ? метапрограмуванням ? метаоб'?ктами (маг?чними методами)). Багато ?нших парадигм п?дтримуються за допомогою розширень, включаючи розробку за контрактом ? лог?чне програмування.Python використову? динам?чну тип?зац?ю, а також комб?нац?ю п?драхунку опорних даних ? колектора виявлення см?ття для керування пам'яттю. Вона також ма? динам?чну розд?льну здатн?сть ?мен (п?зн? зв'язування), яка пов'язу? метод ? ?мена зм?нних п?д час виконання програми.Дизайн Python пропону? певну п?дтримку функц?онального програмування в традиц?? Lisp. В?н ма? функц?? ф?льтрац??, карти та зменшення; списки, словники, множини та генераторн? вирази. Стандартна б?бл?отека ма? два модул? (itertools ? functools), як? реал?зують функц?ональн? ?нструменти, запозичен? з Haskell ? Standard ML. Основна ф?лософ?я мови узагальнена в документ? Zen of Python (PEP 20), що включа? так? афоризми, як: Гарний краще, н?ж потворний;Явний краще, н?ж неявний;Простий краще, н?ж складний;Комплексний краще, н?ж складний;Розразовування чита?мост?.Зам?сть того, щоб мати вс? сво? функц?ональн? можливост?, вбудован? в його ядро, Python був розроблений, щоб бути дуже розширюваним. Ця компактна модульн?сть зробила його особливо популярним як зас?б додавання програмованих ?нтерфейс?в до ?снуючих додатк?в. Бачення Ван Россума про малу ядро ??мови з великою стандартною б?бл?отекою ? легко розширюваним ?нтерпретатором випливало з його розчарувань з ABC, який п?дтримував протилежний п?дх?д.Python прагне до б?льш простого, менш заплутаного синтаксису ? граматики, надаючи розробникам можлив?сть вибору методолог?? кодування. На в?дм?ну в?д Perl ?? б?льш н?ж один спос?б зробити це? дев?з, Python охоплю? ?ма? бути один ? бажано т?льки один очевидний спос?б зробити це? ф?лософ?я дизайну. Алекс Мартелл?, науковий сп?вроб?тник фонду Python Software ? автор книги Python, пише, що ?для того, щоб описати щось ?розумне?, це не вважа?ться компл?ментом у культур? Python.?Розробники Python прагнуть уникнути передчасно? оптим?зац?? ? в?дхиляють патч? до некритичних частин дов?дково? реал?зац?? CPython, як? пропонують граничне зб?льшення швидкост? за рахунок ч?ткост?. Коли швидк?сть ? важливою, програм?ст Python може перем?щати критичн? до часу функц?? до модул?в розширення, написаних мовами, такими як C, або використовувати PyPy, комп?лятор за часом. Також доступний Cython, який переводить скрипт Python в C ? зд?йсню? прям? виклики API р?вня C на ?нтерпретатор? Python [50].Важливою метою розробник?в Python ? збереження його гумору. Це знайшло в?дображення в назв? мови - данину британськ?й комед?йн?й груп? Monty Python – а ?нод? ? грайливим п?дходам до навчальних пос?бник?в ? дов?дкових матер?ал?в, таких як приклади, як? посилаються на спам ? Пасхальн? яйця (з в?домого еск?зу Monty Python). стандартного foo ? bar. Загальний неолог?зм у сп?льнот? Python ? pythonnists, який може мати широкий д?апазон значень, пов'язаних з? стилем програми. Сказати, що код ? pythonnisys, це означа?, що в?н використову? ?д?оми Python добре, що це природно або показу? в?льне волод?ння мовою, що в?н в?дпов?да? м?н?мал?стськ?й ф?лософ?? Python ? акценту на читабельн?сть. Навпаки, код, який важко зрозум?ти або читати як грубу транскрипц?ю з ?ншо? мови програмування, назива?ться неп?тонним.Python використову? широку тип?зац?ю ? набира? об'?кти, але незм?нн? ?мена зм?нних. Обмеження типу не перев?ряються п?д час комп?ляц??; швидше, операц?? над об'?ктом можуть бути невдалими, що означа?, що даний об'?кт не ? в?дпов?дним типом. Незважаючи на динам?чну тип?зац?ю, Python сильно тип?зований, забороняючи операц??, як? не ? ч?тко визначеними (наприклад, додаючи номер до рядка), а не мовчазн? спроби ?х осмислити.Python дозволя? програм?стам визначати власн? типи за допомогою клас?в, як? найчаст?ше використовуються для об'?ктно-ор??нтованого програмування. Нов? екземпляри клас?в будуються викликом класу (наприклад, SpamClass () або EggsClass ()), а класи - екземпляри типу metaclass (сам по соб? прим?рник), що дозволя? метапрограмування ? в?дображення.До верс?? 3.0 Python мав два типи клас?в: старий стиль ? новий стиль. Синтаксис обох стил?в однаковий, в?дм?нн?сть поляга? в тому, чи об'?кт класу успадкову?ться в?д, прямо чи опосередковано (вс? класи нового стилю успадковуються в?д об'?кта ? ? екземплярами типу). У верс?ях Python 2 з Python 2.2, можна використовувати обидва типи клас?в. Класи старого стилю були вилучен? в Python 3.0.Довгостроковим планом ? п?дтримка поступового набору тексту, а з Python 3.5 - синтаксис мови дозволя? задавати статичн? типи, але вони не перев?ряються у типовому вар?ант? реал?зац??, CPython. Експериментальна додаткова статична перев?рка типу mypy п?дтриму? перев?рку типу комп?ляц??.Розвиток Python в?дбува?ться в основному за допомогою процесу пропозиц?? Python (PEP), основного механ?зму для запропонування нових основних функц?й, збору ?нформац?? про сп?льноту з питань та документування р?шень дизайну Python. Стиль кодування Python розгляда?ться в PEP 8. Видатн? PEP розглядаються та коментуються сп?льнотою Python та Гв?до Ван Россумом, доброзичливим диктатором Python.Покращення мови в?дпов?да? розробц? еталонно? реал?зац?? CPython. Список розсилки python-dev ? основним форумом для розвитку мови. Конкретн? питання обговорюються в Tracker помилки Roundup, що збер?га?ться на . Розробка спочатку в?дбувалася на самост?йно розм?щеному репозитор?? вих?дного коду п?д керуванням Mercurial, поки Python не перем?стився в GitHub у с?чн? 2017 року. На рисунку 2.2 в?дображенну ??рарх?ю тип?в данних.Рисунок 2.2. В?дображення р?вн?в ??рарх?? тип?в даних.Публ?чн? рел?зи CPython складаються з трьох тип?в, як? в?др?зняються за допомогою частини верс??, яка зб?льшу?ться.Верс??, несум?сн?, де оч?ку?ться, що код злама?ться, ? ?х потр?бно перенести вручну. Перша частина номера верс?? зб?льшу?ться. Ц? видання в?дбуваються нечасто - наприклад, верс?я 3.0 була випущена через 8 рок?в п?сля 2.0. На рисунку 2.3 зображено ??рарх?ю посл?довностей.Рисунок 2.3. ??рарх?я посл?довностей.Основн? або "функц?ональн?" випуски, приблизно кожн? 18 м?сяц?в, в значн?й м?р? сум?сн?, але вводять нов? функц??. Друга частина номера верс?? зб?льшу?ться. Кожна основна верс?я п?дтриму?ться виправленнями помилок протягом дек?лькох рок?в п?сля ?? випуску. Нов? випуски, як? не вводять нових функц?й, в?дбуваються приблизно кожн? 3 м?сяц? ? створюються, коли п?сля останнього випуску було виправлено достатню к?льк?сть помилок. У цих рел?зах також виправлен? вразливост? безпеки. Третя ? остання частина номера верс?? зб?льшу?ться.Велика стандартна б?бл?отека Python, яка часто назива?ться одн??ю з найб?льших сильних стор?н, нада? ?нструменти, що п?дходять для багатьох завдань. Для програм, що стикаються з ?нтернетом, п?дтримуються багато стандартних формат?в ? протокол?в. Вона включа? в себе модул? для створення граф?чних ?нтерфейс?в користувача, п?дключення до реляц?йних баз даних, генерування псевдовипадкових чисел, арифметику з дов?льною точн?стю, ман?пулювання регулярними виразами ? модульне тестування.Деяк? частини стандартно? б?бл?отеки охоплюються специф?кац?ями (наприклад, реал?зац?я ?нтерфейсу шлюзу веб-сервера (WSGI) wsgiref дотриму?ться PEP 333), але б?льш?сть модул?в не ?. Вони визначаються кодом, внутр?шньою документац??ю та тестовими наборами (за наявност?). Однак, оск?льки б?льш?сть стандартно? б?бл?отеки ? крос-платформним кодом Python, лише деяк? модул? потребують зм?ни або перезапису для реал?зац?? вар?ант?в. На рисунку 2.4 зображено ??рарх?ю сет?в, клас?в та модул?в, та як? м?сця вони займають.Рисунок 2.4. ??рарх?я сет?в, карт, клас?в та модул?в.Огляд додаткових використаних б?бл?отек.Середовище Python ? величезним ? далекосяжним в обох. Початок у цьому божев?льному л?с? з в?дкритим вих?дним кодом ? складним нав?ть з багатор?чним досв?дом, вона все ще потребу? пост?йних зусиль бути в курс? найкращих б?бл?отек та технолог?й. Сам Python вже включа? величезну к?льк?сть як?сн? б?бл?отеки; разом вони називаються стандартними. Стандартна б?бл?отека отриму? багато уваги, але ? ще деяк? б?бл?отеки як? потребують уваги при розробц? даного програмного модулю. При анал?з? можливих р?шень та насл?дування парадигм мови Python було вир?шено, що потр?бно використовувати додатков? б?бл?отеки, для реал?зац?? програмного додатку. Б?бл?отека Matplotlib.Одн??ю з основних б?бл?отек, для розробки, була використана б?бл?отека matplotlib. Це б?бл?отека для створення 2D д?лянок масив?в у Python. Хоча в?н походить з емуляц?? граф?чних команд MATLAB, в?н не залежить в?д MATLAB ? може використовуватися в Pythonic, об'?ктно-ор??нтованому способ?. Хоча Matplotlib написано в основному в чистому Python, в?н використову? NumPy та ?нш? розширення, щоб забезпечити хорошу продуктивн?сть нав?ть для великих масив?в.Matplotlib розроблений з ф?лософ??ю, що ви повинн? мати можлив?сть створювати прост? д?лянки за допомогою дек?лькох команд, або т?льки один! Якщо ви хочете побачити г?стограму ваших даних, вам не потр?бно створювати об'?кти, методи виклику, властивост? набору тощо; в?н повинен працювати.Протягом багатьох рок?в я використовував MATLAB виключно для анал?зу даних ? в?зуал?зац??. MATLAB в?др?зня?ться простотою створення красивих д?лянок. Коли я почав працювати з даними ЕКГ, я виявив, що мен? потр?бно писати додатки для вза?мод?? з мо?ми даними, ? розробив додаток для анал?зу ЕКГ в MATLAB. Оск?льки складн?сть програми зростала, вза?мод?ючи з базами даних, HTTP-серверами, ман?пулюючи складними структурами даних, я почав напружуватися проти обмежень MATLAB як мови програмування, ? вир?шив почати знову в Python. Python б?льше, н?ж компенсу? вс? недол?ки MATLAB як мова програмування, але у мене виникли труднощ? з пошуком 2D-граф?чного пакета (для 3D VTK б?льше н?ж перевищу? вс? мо? потреби).Коли я начав пошуки б?бл?отеки Python, я мав к?лька вимог:Рисунки повинн? виглядати чудово - як?сть публ?кац??. Одн??ю з важливих вимог для мене ? те, що текст добре вигляда? (згладжування тощо);Вих?д PostScript для включення з документами;Вбудову?ться в граф?чний ?нтерфейс користувача для розробки додатк?в;Код повинен бути досить легким, щоб я м?г зрозум?ти його ? розширити;Виготовлення граф?к?в ма? бути легким.З точки зору розробника, використання ф?ксованого ?нтерфейсу користувача (?нтерфейс pylab) було дуже корисним, оск?льки основу коду можна переробити без впливу на код користувача.Код Matplotlib концептуально розд?лений на три частини: ?нтерфейс pylab - це наб?р функц?й, як? надаються matplotlib.pylab, як? дозволяють користувачев? створювати д?лянки з кодом, дуже схожим на код, який генеру? цифру MATLAB (п?дручник Pyplot). Frontplend Matplotlib або Matplotlib API - це наб?р клас?в, як? виконують важку роботу, створюють ? керують цифрами, текстом, рядками, д?лянками тощо (навчальний пос?бник для виконавц?в). Це абстрактний ?нтерфейс, який н?чого не зна? про вих?д. Backend ? пристр?й, для в?зуал?зац??, залежними в?д пристро?в, а саме в?зуал?заторами, як? перетворюють подання ?нтерфейсу на друковану верс?ю або пристр?й в?дображення. Що таке backend. Приклади backends: PS створю? друковану верс?ю PostScript, SVG створю? друковану верс?ю масштабовано? векторно? граф?ки, Agg створю? вих?д PNG з використанням високояк?сно? б?бл?отеки Anti-Grain Geometry, що поставля?ться з Matplotlib, GTK вбудову? Matplotlib у програму Gtk+, створити ф?гуру та вставити ?? у програму Gtk+, тощо для PDF, WxWidgets, Tkinter.Matplotlib використову?ться багатьма людьми в р?зних контекстах. Деяк? люди хочуть автоматично генерувати файли PostScript для надсилання на принтер або видавц?в. ?нш? розгортають Matplotlib на сервер? веб-додатк?в, щоб генерувати вих?д PNG для включення до динам?чно створюваних веб-стор?нок. Деяк? використовують Matplotlib ?нтерактивно з оболонки Python у Tkinter на Windows. Мо? основне використання поляга? в тому, щоб вставити Matplotlib у додаток Gtk+ EEG, який працю? на ОС Windows, Linux та Macintosh OS X.Б?бл?отека PyQt5.PyQt об'?дну? платформу Qt C ++ для м?жплатформних додатк?в ? крос-платформний ?нтерфейс Python.Qt - це б?льше, н?ж ?нструментар?й граф?чного ?нтерфейсу. Вона включа? абстракц?? мережевих сокет?в, поток?в, Unicode, регулярн? вирази, бази даних SQL, SVG, OpenGL, XML, повнофункц?ональний веб-браузер, систему дов?дки, мультимед?йн? рамки, а також багату колекц?ю в?джет?в GUI. Класи Qt використовують механ?зм сигналу/слота, для обм?ну даними м?ж об'?ктами, як? ? безпечними, але в?льно пов'язаними, що дозволя? легко створювати повторно використовуван? компоненти програмного забезпечення.Qt також включа? дизайнер Qt Designer, граф?чний ?нтерфейс користувача. PyQt здатний генерувати код Python з Qt Designer. Також можна додати нов? елементи керування граф?чним ?нтерфейсом, написан? на Python для Qt Designer. PyQt по?дну? в соб? вс? переваги Qt ? Python. Програм?ст ма? всю владу Qt, але може використовувати його з простотою Python. PyQt5 не ? зворотно сум?сним з PyQt4; ? к?лька значних зм?н у PyQt5. Однак, не дуже важко налаштувати старий код на нову б?бл?отеку. В?дм?нност?, серед ?нших, так?:Модул? Python були реорган?зован?. Деяк? модул? були скинут? (QtScript), ?нш? були розд?лен? на п?дмодул? (QtGui, QtWebKit).Були введен? нов? модул?, включаючи QtBluetooth, QtPositioning або Enginio.PyQt5 п?дтриму? т?льки новий стиль сигналу ? слоти. Виклики SIGNAL () або SLOT () б?льше не п?дтримуються.PyQt5 не п?дтриму? жодних частин API Qt, як? позначен? як застар?л? або застар?л? в Qt v5.0.Б?бл?отека requests.Б?бл?отека запит?в ? де-факто стандартом для створення HTTP-запит?в у Python. Вона абстрагу? складн?сть створення запит?в за гарним, простим API, так що ви можете зосередитися на вза?мод?? з послугами ? споживати дан? у вашому додатку. За допомогою дано? б?бл?отеки можливо:Створювати запити за допомогою найпоширен?ших метод?в HTTP;Налаштовувати заголовки та дан? ваших запит?в, використовуючи рядок запиту та т?ло пов?домлення;Перев?ряти дан? з ваших запит?в ? в?дпов?дей;Робити запити на автентиф?кац?ю;Налаштовувати сво? запити, щоб запоб?гти резервуванню чи упов?льненню програми.Загальн? висновки до розд?лу 2.Для вир?шення та реал?зац?? поставлених задач обрано мову програмування Python. Додатково в?д?бран? потор?бн? б?бл?отеки, так? як: Б?бл?отека, для UI ?нтерфейсу – PyQT п’ято? верс??. Б?бл?отека, для в?зуал?зац?? даних – matplotlib. Б?бл?отека, для роботи з даними в формат? .edf та .csv розроблена ресурсом PhysioNet – wfdb.РОЗД?Л 3 ПРОЕКТУВАННЯ ПРОГРАМНОГО ДОДАТКУПрограмний додаток, для в?зуал?зац?? медичних показник?в не потребу? ч?ткого проектування, але для уникнення часових затрат при його реал?зац?? був проведений анал?з розробки, представлено функц?ональну модель та макети програмного ?нтерфейсу. В рамках даного етапу потр?бно зд?йснити наступн? кроки:Оц?нку результат?в проведеного початкового анал?зу ? виявлених обмежень;Пошук критичних д?лянок системи;Формування остаточно? арх?тектури створювано? системи;Анал?з необх?дност? використання програмних модул?в або готових р?шень на сторон?;Проектування основних елемент?в продукту – модел? процес?в ? коду;Виб?р середовища програмування ? ?нструмент?в розробки;Затвердження ?нтерфейсу програми, включаючи елементи граф?чного в?дображення даних.За попередн?м анал?зом було перев?рено ?снуюч? прототипи заруб?жних розробник?в. Результатами яких було виявлено критичн? д?лянки продукту, розроблена блок-схема та обран? ресурси, для його створення.Система ма? дек?лька критичних м?сць, серед яких: Перев?рка наявност? ?нтернет зв'язку;Робота з правильним типом даних.Середовище розробки.В дан?й робот?, для реал?зац?? поставлених задач використову?ться мова програмування Python, середовищем розробки якого було вибрано Jupiter Notebook. Це ?нтерактивне обчислювальне середовище для створення документ?в для Jupiter Notebook. Терм?н ?Notebook? може розмовно посилатися на багато р?зних об'?кт?в, в основному веб-додаток Jupyter, веб-сервер Jupyter Python або формат документа Jupyter залежно в?д контексту. Документ записно? книжки Jupyter - це документ JSON, який в?дпов?да? верс?йн?й схем?, ? м?стить впорядкований список ком?рок введення/виводу, як? можуть м?стити код, текст (за допомогою Markdown), математику, граф?ки ? мультимед?а, зазвичай зак?нчуються на ".ipynb" розширення. На рисунку 3.10 зображено основний ?нтерфейс середовища. Jupiter Notebook може бути перетворений у ряд в?дкритих стандартних формат?в виводу (HTML, слайди презентац?й, LaTeX, PDF, ReStructuredText, Markdown, Python) через ?Завантажити як? у веб-?нтерфейс? через б?бл?отеку nbconvert або команду "jupyter nbconvert" ?нтерфейс л?н?? в оболонц?. Щоб спростити в?зуал?зац?ю документ?в Jupiter Notebook в ?нтернет?, б?бл?отека nbconvert надана як послуга через NbViewer, яка може приймати URL-адресу до будь-якого загальнодоступного документа, перетворювати його в HTML на льоту ? показувати користувачев?.Ноутбук Jupyter нада? REPL на основ? веб-переглядача, побудованого на багатьох популярних б?бл?отеках з в?дкритим кодом:IPython?MQТорнадо (веб-сервер)jQueryBootstrap (фрейм-фрейм)MathJaxНа рисунку 3.1 зображено основний ?нтерфейс середовища.Рисунок 3.1. Граф?чний ?нтерфейс Jupiter Notebook.Jupiter Notebook може п?дключатися до багатьох ядер, що дозволя? програмувати багатьма мовами. За замовчуванням Jupiter Notebook поставля?ться з ядром IPython. З моменту випуску 2.3 (жовтень 2014 року) в даний час ?сну? 49 ядра, сум?сних з Jupyter, для багатьох мов програмування, включаючи Python, R, Julia ? Haskell. ?нтерфейс був доданий до IPython у верс?? 0.12 (грудень 2011 року), перейменовано? в Jupiter Notebook у 2015 роц? (IPython 4.0 - Jupyter 1.0). Jupiter Notebook схожий на ?нтерфейс ноутбука ?нших програм, таких як Maple, Mathematica ? SageMath, стиль обчислювального ?нтерфейсу, який виник у Mathematica в 1980-х роках. За даними The Atlantic, ?нтереси компан?? переважали популярн?сть ?нтерфейсу ноутбук?в Mathematica на початку 2018 року.?сну? три основних моменти середовища:Ядро Jupyter – це програма, що в?дпов?да? за обробку р?зних тип?в запит?в (виконання коду, завершення коду, ?нспекц??) ? надання в?дпов?д?. Ядра розмовляють з ?ншими компонентами Jupyter, використовуючи ZeroMQ по мереж?, ? таким чином можуть бути на тих же або в?ддалених машинах. На в?дм?ну в?д багатьох ?нших ?нтерфейс?в, под?бних до ноутбук?в, в Jupyter ядра не знають, що вони прикр?плен? до конкретного документа, ? можуть бути п?дключен? до багатьох кл??нт?в одночасно. Зазвичай ядра дозволяють виконання т?льки одн??? мови, але ? к?лька винятк?в. За замовчуванням Jupyter поставля?ться з IPython як ядро ??за замовчуванням ? посилання на реал?зац?ю через обгортку ipykernel. Доступн? ядра для багатьох мов, як? мають р?зну як?сть та функц??.JupyterHub – це багатокористувацький сервер для Jupiter Notebook. В?н розроблений для п?дтримки багатьох користувач?в шляхом створення, керування та прокс?-сервер?в багатьох окремих сервер?в ноутбук?в Jupyter Хоча JupyterHub вимага? управл?ння серверами, сторонн? служби, так? як Jupyo, ? альтернативою JupyterHub за допомогою хостингу та керування мульти–користувача Jupiter Notebook в хмар?.JupyterLab – це ?нтерфейс нового покол?ння для проекту Jupyter. В?н пропону? вс? знайом? буд?вельн? блоки класичного Jupiter Notebook (ноутбук, терм?нал, текстовий редактор, файловий браузер, багат? виходи тощо) у гнучкому та потужному ?нтерфейс? користувача. Перший стаб?льний рел?з був оголошений 20 лютого 2018 роц?, а в грудн? 2018 року. В?н був прийнятий як основний ?нтерфейс для серв?су Jupyter на баз? хмари.Б?бл?отека wfdb.Для вза?мод?? з форматом збер?гання сигнал?в PhysioNet? використову?ться б?бл?отека Waveform Database Library. Б?бл?отека WFDB це пакет функц?й, написаних на мов? С, як? забезпечують простий ? ун?ф?кований доступ до оцифрованих, анотованих сигнал?в, як? збер?гаються в р?зних форматах. Ц? функц?? спочатку розроблен? для використувавання з базами даних електрокард?ограм, в тому числ? базою даних аритм?й MIT-BIH (MITDB) ? базою даних AHA для оц?нки детектор?в шлуночковой аритм?? (AHA DB). У лютому 1990 року визначений наб?р аннотац?й був розширений для сум?сност? з ?вропейською ST базою даних (ESCDB). Б?бл?отека WFDB ма? досить широким набором функц?й, для того, щоб бути придатною для роботи з будь-яко? под?бно? колекц??ю оцифрованих сигнал?в, як? м?стять анотац?? чи н?. Б?бл?отека WFDB розвивалася, щоб п?дтримувати безл?ч ?нших баз даних, як? включають в себе сигнали, так? як тиск кров?, дихання, насичен?сть киснем, ЕЕГ. Прикладом великопараметричних баз даних ? MITBIH, пол?сомнограф?ческая база ? база даних MGH/Marquette Foundation Waveform. Таким чином, б?бл?отека WFDB може виконувати значно б?льше функц?й, н?ж реал?зовувати лише ?нтерфейс бази даних ЕКГ.Моделювання контекстно? д?аграмми.Хоча контекстна д?аграма даних ? лише особливим вар?антом DFD, вона в?д?гра? важливу роль в процес? проектування систем ? тому повинна бути згадана особливо. На контекстно? д?аграм?, на в?дм?ну в?д DFD, зображуються зовн?шн? сутност? (або терм?натори). П?д зовн?шн?ми сутностями розум?ють оточення системи, тобто безл?ч об'?кт?в, що вза?мод?ють з системою, але не входять до ?? складу. Використовуючи програму моделювання б?знес процес?в AllFusion Proccess Modeller було розроблено наступну контекстну д?аграмму (рис. 3.2):0200025Рисунок 3.2. Контекстна д?аграмма додатку.На дан?й д?аграмм? в?дображено наступн? вх?дн? системи: зл?ва – дан?, як? використовуються, для роботи програми;зверху – перел?к алгоритм?в викнання;знизу – умови, при виконанн? яких прграма буде працювати;справа – вих?дни результат роботи програми.Моделювання д?аграми декомпозиц?? першого р?вня.Декомпозиц?я – це под?л складного об'?кта, системи, завдання на складов? частини, елементи.За допомогою д?аграми декомпозиц?? першого р?вня покажемо, з яких б?льш др?бних складових склада?ться завдання ?Система в?зуал?зац?? медичних показник?в за ресурсом PhysioNet?. У дан?й робот? були вид?лен? наступн? доч?рн? роботи:перев?рка до п?дключення системи до мереж? ?нтернет – необх?дно, щоб користувач знав, як? можливост? програми можливо використовувати на момент роботи;виб?р дата-сету – виб?р з предоставлених сет?в за посиланням веб-ресурсу чи виб?р файлу запису з попередньо завантажених/записаних;перев?рка та обробка даних – проходження даних вал?дац?? та попередня обробка;в?зуал?зац?я – в?дображення граф?ку з розм?ткою та описом з анотац??ю.На рисунку 3.3 зображено побудовану д?аграмму декомпозиц?? першого р?вня, на як?й показан? ключов? чотири об'?кти.Рисунок 3.3. Д?аграмма декомпозиц?? першого р?вня.Розробка блок-схеми лог?ки програмного додатку.Блок-схема - поширений тип граф?чних моделей, що описують алгоритми або процеси, в яких окрем? кроки зображуються у вигляд? блок?в р?зно? форми, з'?днаних м?ж собою л?н?ями, що вказують напрямок посл?довност?.Для дано? розробки був проведени анал?з та створена початкова блок-схема алгоритму, який опису? роботу додатку. Блок-схема роботи додатку наведений у схем? нижче (рис. 3.4). Схема наведена в нотац?ях ун?версально? мови моделювання UML. Рисунок 3.4. Блок-схема роботи прогрманого додатку.Моделювання граф?чного ?нтерфейсу системи.При розробц? програмного ?нтерфейсу необх?дно було враховувати наступн? вимоги: простота та в?дкрит?сть;зрозум?л?сть позначок кнопок;зрозум?л?сть п?дпис?в кнопок;достатня область, для в?зуал?зац?? граф?ку.Приклад макету граф?чного ?нтерфейсу зображено на рисунку 3.5.Рисунок 3.5 Макет граф?чного ?нтерфейсу.Макет в соб? вм?ща? так? елементи:Панель ?нструмент?в – дана панель да? змогу користувачу перем?щатися по граф?ку, наближувати та в?ддаляти окрем? д?лянки, робити зн?мки та збер?гати ?х.Пошук у систем? – знаходження потр?бного файлу в систем? персонального комп’ютера.Список вибору даних – виб?р даних серед можливих дата-сет?в на PhysioNet. Статус скачування – ?ндентиф?катор, який покаже усп?шн?ть скачуванняОбласть в?зуал?зац?? – область на як? буде зображени граф?к. Загальн? висновки до розд?лу 3.Розроблений алгоритм роботи додатку, приведений граф?чни макет та обрано середовище розробки. Реал?зац?я програмного додатку буде в?дбуватися на мов? Python у середовищ? Jupiter Notebook.РОЗД?Л 4 РЕАЛ?ЗАЦ?Я ПРОГРАМНОГО ДОДАТКУОсновна використана концепц?я .При реал?зац?? програмного додатку, було використано концепц?ю Для реал?зац?? програмного забезпечення використано концепц?ю MVC. Дана концепц?я передбача? розд?лення лог?ки роботи основного керування, даних програми та ?нтерфейсу користувача на три окремих компоненти: ? модель – нада? дан? та зм?ню? св?й стань, реагуючи на команди контролера;? представлення – в?дпов?да? за в?дображення даних користувачу, реагуючи на зм?ну модел?;? контролер – спов?щу? модель про необх?дн?сть зм?н, ?нтерпретуючи д?? користувача. За допомогою такого п?дходу модиф?кац?я кожного компоненту може в?дбуватися незалежно один в?д одного. Концепц?я MVC не ма? строгих норм реал?зац??, тому реал?зувати дану концепц?ю можна р?зним чином. На рисунку 4.1 в?зуально в?дображено концепц?я.Рисунок 4.1. Концепц?я MVC.В даному програмному додатку кожна область та в?кно виступа? в рол? окремого класу, який склада?ться з 3 клас?в (так званих п?дклас?в), а саме: ? класу-контролеру; ? класу-модел?; ? класу-представлення.Програмний додаток розроблений т?льки, для одного типу користувача – загального.Опис клас?в програмного додатку.Програмний додаток вм?щу? в соб? 2 класа в?кон та 4 п?дкласи областей, як? використовують концепц?ю MVC. Список клас?в та п?дклас?в наступний:Window – клас в?кно, головного в?кна;AnotationWindow – клас в?кно анотац?? граф?ку;ToolBar – клас панел? ?нструмент?в;VisualPlane – клас поля в?зуал?затора;FilePicker – клас вза?мод?? з фалами;PNpicker – клас вза?мод?? з базою PhysioNet.Клас ?Window?Даний клас призначений для визначення сутност? ?Головне в?кно?. Клас ?Window? ? звичайним ? не побудований за структурою MVC. Д?аграмма класу представлена на рисунку 4.2.Рисунок 4.2. Д?аграма класу ?Window?.Клас вм?ща? у соб? наступн? параметри: High – висота екрану;Width – ширина екрана;Title – заголовок програми;screenPos – позиц?я на ?кран? користувача.Клас по?днаний в залежн?сть з наступними класами: ToolBar – при кожн? зм?н? представлення, панель з ?нструментами не м?ня?ться;VisualPlane – при кожн? зм?н? представлення, оновлю?ться лише поле з граф?ком;FilePicker – при кожному в?дкритт? системного сховища, представлення не м?ня?ться;PNpicker – при кожному в?дкритт? списку можливих дата сет?в, представлення не м?ня?ться;Клас ?AnotationWindow?Даний клас призначений для визначення сутност? ?В?кно анотац?й?. Клас ?AnotationWindow? ? звичайним ? не побудований за структурою MVC. Д?аграмма класу представлена на рисунку 4.3.Рисунок 4.3. Д?аграма класу ?AnotationWindow?.Клас вм?ща? у соб? наступн? параметри: High – висота екрану;Width – ширина екрана;Title – заголовок програми;Content – анотац?я за сигналом. Клас по?днаний в залежн?сть з VisualPlane класом оск?льки при ?н?ц?ал?зац?? граф?ку, т?льки тод? дан? запишуться в строкове поле в?кна анотац??. Клас ?VisualPlane?Даний клас призначений для визначення сутност? ?Поле в?зуал?затора?. Клас ?VisualPlane? ? побудований за структурою MVC. Склада?ться з ?VisualPlaneController? ? ?VisualPlaneView?. Клас ?VisualPlaneController? вм?ща? у соб? наступн? параметри: High – висота област?;Width – ширина област?;ArrayX – масив значень по ос? Х;arrayY – масив значень по ос? Y;plt() – метод побудови граф?ку;btnFile() – виклик в?дкриття пошуку файл?в у систем?; btnAnotation() – виклик в?кна анотац??;labelResult – поле результату;kernel (kernel.set()) – метод розм?тки област? та побудови граф?ку на ньому.Клас по?днаний в залежн?сть з наступними класами: Window – при кожн? зм?н? представлення, все це перебува? в головному в?кн?;AnotationWindow – при кожн? зм?н? представлення, оновлю?ться текстове наповнення.Клас ?VisualPlaneView? вм?ща? у соб? лише метод результату, який ? в?зуал?зу?ться користовачу. Клас по?днаний в залежн?сть з ?VisualPlaneController? оск?льки при перезапис? та вивод? нового граф?ку все залежить в?д контролеру. Д?аграмма класу представлена на рисунку 4.4.Рисунок 4.4. Д?аграма клас?в ?VisualPlaneController? ? ?VisualPlaneView?.Клас ?FilePicker?Даний клас призначений для визначення сутност? ?Файловий д?алог?. Клас ?FilePicker? ? звичайним ? не побудований за структурою MVC. Д?аграмма класу представлена на рисунку 4.5.Рисунок 4.5. Д?аграма клас?в ?FilePicker?.Клас вм?ща? у соб? наступн? параметри: FileDialog – встро?на функц?я, для реал?зац?? файлового д?алогу;fopen – метод в?дкриття файлу;fread – зчитування даних. Клас по?днаний в залежн?сть з VisualPlane класом оск?льки при ?н?ц?ал?зац?? граф?ку, т?льки тод? використову?ться клас. Клас ?ToolBar?Даний клас призначений для визначення сутност? ?Поле ?нструмент?в?. Клас ?ToolBar? ? побудований за структурою MVC. Склада?ться з ?ToolBarController? ? ?ToolBarView?. Клас ?VisualPlaneController? вм?ща? у соб? наступн? параметри: Pos – позиц?я понел? ?нструмент?в на екран?;home() – метод повернення граф?ку до ориг?налу, п?д час проведення зм?н;mright() – перем?щення по граф?ку вправо по ос? абцис;mleft() – перем?щення по граф?ку вл?во по ос? абцис;zoom() – метод масштабування д?лянок граф?ку;settings() – додатков? налаштування поля;label(settings) – метод зм?ни заголовку граф?ку через додатков? налаштування; posX(settings) – зм?на ширини в?кна через додатков? налаштування; posY(settings) – зм?на висоти в?кна через додатков? налаштування;saveScree() – метод збереження скр?н-шоту граф?ка.Клас по?днаний в залежн?сть з наступними класами: Window – при кожн? зм?н? представлення, все це перебува? в головному в?кн?;VisualPlane – при кожн? зм?н? представлення, оновлю?ться в?зуальне наповнення.Клас ?ToolBarView? вм?щу? у соб? лише метод зм?ни результату ?viewTool()?, який, в залежност? вибору користувача зм?ню? дан? в пол? в?зуал?затора. Клас по?днаний в залежн?сть з ?VisualPlane? оск?льки при перезапис? та вивод? нового граф?ку основн? процеси залежать в?д функц?й даного класу. Д?аграмма класу представлена на рисунку 4.6.Рисунок 4.6. Д?аграма клас?в ?ToolBarController? ? ?ToolBarView?.Клас ?PNpicker?Даний клас призначений для визначення сутност? ?PhysioNet д?алог?. Клас ?PNpicker? ? звичайним ? не побудований за структурою MVC. Д?аграмма класу представлена на рисунку 4.7.Рисунок 4.7. Д?аграма класу ?PNpicker?.Клас вм?ща? у соб? наступн? параметри: checkStaus() – перев?рка статусу ?нтернет п?дключення;request() – перев?рка зв’язку з сервером ресурсу PhysioNet;get.url() – метод доступу до даних за ресурсом;rcopy() – зчитування та збер?гання даних. Клас по?днаний в залежн?сть з Window класом оск?льки при робоч?й програм? клас викону? свою роботу. Огляд елемент?в керування.При вибор? шаблону проекту було створено в?кно. П?сля цього на в?кн? були розм?щен? необх?дн? компоненти управл?ння. Список елемент?в, використаних в програм? з описом ?х властивостей ? под??, як? вони генерують наведено в таблиц? 4.1.Таблиця 4.1Список елемент?в управл?ння, як? використовуються програмоюЕлементОглядВикористанн? функц??Властивост?Д??ButtonКнопка програми.PosЗада? розм?щення кнопки.QActionLink – оприд?ля? метод, який д?? при активац?? елементу.QActionОприд?ля? доступн?сть, для вза?мод??.bLabelЗада? п?дпис кнопки.LabelМ?тка, для в?дображення тексту.PosЗада? розм?щення.Show – показ тексту.TextЗада? п?дпис.ComboBoxЕлемент управл?ння поля з? списком.ItemsЗада? к?льк?сть елемент?в у списку.ComboBox.SelectID – виб?р потр?бного ?ндексу з? списку.SelectedIDItem?ндекс обраного елементу.EnabledДоступн?сть вза?мод??.ScrollBarЕлемент управл?ння повзунком.EnabledДоступн?сть вза?мод??.ScrollBar.scroll – при зм?нн? положення повзунка.MaximumМаксимальне значення перем?щення.ValueЗначення на даний момент.LargeChangeЗб?льшення елементу в б?льшу сторону.SmallChangeЗб?льшення елементу в меншу сторону.Продовж. табл. 4.1StatusStripЕлемент управл?ння стану.Контейнер, для дек?лькох елемент?в типу Label.TextBoxВикористову?ться, для в?дображення неформатованого тексту.EnabledДоступн?сть вза?мод??.TextBox.Action – при нажатт? на клав?шу при скачуванн? файлу.TextЗада? п?дпис.QFileDialogД?алогове в?кно, для в?криття файлу.ShowВ?добража? файловий д?алог.FOpen – дозволя? коистувачу обирати потр?бн? документи.ResultПоверта? результат вза?мод??.FileNameЗбер?га? шлях до файлу.FilterСтр?чка, яка оприд?ля? тип файл?в, для в?дображення у д?алоз?.SelectedPathЗбер?га? шлях до папок.PlotЕлемент, для граф?чного в?дображення даних.Функц?? даного елементу потребують додаткового опису.Зная функц?? ? властивост? елемент?в управл?ння можна перейти до розгляду елемент?в в?кна та ?х призначення. Опис цих елемент?в в таблиц? 4.2.Таблиця 4.2Призначення елемент?в в?кнаНазваТипПризначенняBopenКнопкаВ?дкрива? сигнал.Продовж. табл. 4.2CBnsigПоле з листомПоказу? наявн? файли запис?в.BinfoКнопкаПри натиснен? показу? опис файлу.Chart1ChartМ?тить записи веб-ресурсу.SBsigHorizontallScrollBarСлугу? для горизонтального перем?щення.bHomeКнопкаПовернення граф?ку у початковий вид.CheckAnotationsКнопкаПерев?рка наявност? анотац??.StatusLabelПоле статуса загрузкиСлугу?, для в?дображення стусу скачування файлу.bZoomКнопкаСлугу?, для зб?льшення сегменту файлу.ScrollrightRightScrollBarПерем?щення запису вправо.ScrollleftLeftScrollBarПерем?щення запису вл?во.ToolLabelLabelРозм?щення панел? ?нструмент?в.ToolChangeКнопкаСлугу?, для зм?ни заголовку граф?ку.Продовж. табл. 4.2OFDialogOpenFileDialogСлугу?, для в?дкриття даних, для перетворення в формат використовування.ScreenSaveКнопкаЗмога збер?гати зображення в формат? .png.TBSiganlBoxTextBoxСлугу?, для в?дображння шляху до папки з файлами.TBSignalPathTextBoxСлугу?, для в?дображення шляху до файлу.FBDialogFolderBrowserDialogСлугу?, для директор?? збереження запису.SizeChangeSizeScrollСлугу?, для зм?ни област? в?зуал?затора.Маючи уявлення про властивост? ? призначення кожного елемента на форм?, можна перейти до розгляду пояснювально? записки по експлуатац??, а також, за сум?стництвом, алгоритму роботи програми.Пояснювальна записка по робот? прогрманого модулю.П?сля запуску програми, перед користувачем показу?ться в?кно програми. Вид в?кна п?д час запуску програми зображений на рисунку 4.8.Рисунок 4.8 –Початковий стан экрану.При натисканн? на кнопку ?Choose from folder? в?дкрива?ться д?алог в?дкриття файлу OFDialog, в якому користувач повинен вказати будь-який файл, що належить систем?, яку в?н хоче в?дкрити в програм?. Коли програму для використання б?бл?отеку WFDB, зчитують файли бази даних, вони повинн? бути в змоз? знайти ?х в р?зних м?сцях, як? можуть вар?юватися в?д системи до системи. Б?бл?отека WFDB зверта?ться до символьно? рядку, яка склада?ться з упорядкованого списку м?сць для пошуку вих?дних файл?в. Цей рядок назива?ться шлях до бази даних, або WFDBPath. Тому, якщо вза?мод?я користувача з д?алогом зак?нчилася усп?шно ? була натиснута кнопка ОК, програма визнача? шлях до директор?? з записами в зм?нну WfdbPath. При цьому ?м'я конкретного файлу, вказаного в д?алоз?, в?дкида?ться. Це в?дкидання проводиться засобами вбудованого в Jupiter Notebook классу Path, який викону? операц?? з екземплярами класу String, що м?стять в?домост? про шлях до файлу або каталогу м?жплатформним способом. Саме використову?ться метод GetDirectoryName(String), який поверта? для зазначеного рядка шляху в?домост? про каталог. Дал? визнача?ться рядкова зм?нна rname, що м?стить ?м'я самого запису. Ця зм?нна зада?ться методом GetFileNameWithoutExtension(String), який поверта? ?м'я файлу зазначеного рядка шляху без розширення. Це метод класу Path. Наприклад, якщо в д?алоз? в?дкриття файл?в був обраний файл, який збер?га?ться за адресою С:\physionetfiles\physiobank\database\mitdb\ 100.dat, в WfdbPath запишеться новий шлях до файлу С:\physionetfiles\physiobank\database\mitdb, а зм?нн?й rname перезапишеться значення 100. П?сля того, як програмою стало зрозум?ло, де збер?гаються необх?дн? файли, створю?ться зм?нна record, що ? екземпляром структури Record, визначено? в WfdbLibrary. Структура це об'?днання р?зних зм?нних (нав?ть з р?зними типами даних), якому можна присво?ти ?м'я. У структур? Record збер?гаються зм?нн?, що представляють ?нформац?ю про записи. У таблиц? 4.3 приведено список зм?нних структури Record.Таблиця 4.3Список зм?нних структури Record?м'яТипОписnameStringНазва запису.anotinfostringАнотац?я запису.SamplingFIntЧастота дескритизац??.SignalssigarrayСтруктура ?нформац?? сигналу.Sigarray – явля? собою структуру, зм?нн? яко? наведено нижче в таблиц? 4.4.Таблиця 4.4Зм?нн? структури Sigarray?м'яТипОписAdcResolutionIntТип АЦП в б?тах.AdcZeroIntЗначення АЦП в б?тах, яке вказу? на середину можливих значень.BaselineIntЗначення АЦП, яке сп?впада? з нулем ф?зичних даних.CheckSumIntСумма значень вс?х в?дл?лк?в сигналу.GainIntЧутлив?сть АЦП.FormatSignalStorageФормат збереження файлу PhysioNet.NumberIntПорядковий сигнал запису.DescriptionStringОпис сигналу.DurationTimeТривал?сть сигналу.FileNameStringНазва файлу.RecordRecordЗапис, до якого належить сигнал.NumberOfSamplesIntЗагальна к?льк?сть в?дл?ку в сигнал?.Щоб занести заповнити створену структуру запису використову?ться метод record.Open(). В?н в?дкрива? поточний запис ? отриму? ?нформац?ю з жорсткого диска.Пот?м зм?нюються м?тки, що знаходяться в рядку стану. Одна з них прийма? значення ?мен? запису, в?дкрито? в даний момент, щоб користувачу було легше ор??нтуватися. ?нша п?дказу? користувачев?, що для подальшо? роботи з програмою йому необх?дно вибрати потр?бний сигнал. Щоб побудувати граф?к, необх?дно вважати в?дл?ки сигналу, як? збер?гаються в файл? .dat, .edf, .csv. Цього не в?дбува?ться при в?дкритт? записи ? заповненн? зм?нно? ?нформац?? про сигнали, так як к?льк?сть звытыв може бути великим, ? процес ?х читання може зажадати значних обчислюваних потужностей ? велико? к?лькост? часу. Для читання sample використовуэться метод record.GetSamples. В?н заповню? колекц?ю samples структурами Sample, як? визначен? вWfdbLibrary. Зм?ст ц??? структури наведено в таблиц? 4.5.Таблиця 4.5Зм?нн? структури Sample?м'яТипОписAduIntЗначення зв?ту в одиницях АЦП.SignalNumberIntНомер сигналу, якуму належить зв?т.Таким образом коллекц?я samples збер?га? вс? доступн? в?дл?ку записи, в?дсортован? за сигналами. Наступною операц??ю, яку викону? функц?я Bopen_Click явля?ться завантаження анотац?й, пов'язаних з сигналом. Для цього не започаткову анотац?ю зм?нна Annotator, що м?стить ?нформац?ю про анотац??, а пот?м ?з не? витягуються необх?дн? дан? ? перетворюються в зручну для аповнення форми. Структура Annotator описана в таблиц? 4.6.Таблиця 4.6Зм?нн? структури Annotator?м'яТипОписAnotatorNumberByteНомер в?дкрито? зм?нно?.AuxStringЗм?нна, для комментар?в.ChannelNumberByteНомер каналу.SubtypeAnnotationcodeЗм?нна, для шуму.TimeTimeЧас.TypeAnnotationТип RS комплексу, яка оприд?ля?ться данною анотац??ю.Час, до яких в?дносяться анотац?? вид?ля?ться в окрему колекц?ю. Це необх?дно для б?льш зручного виведення аннотац?й. На цьому функц?я Bopen_Click заканч?вает сво? виконання. П?сля цього ? к?лька глобальних зм?нних: record вм?щу? ?нформац?ю про записи, sampses вм?щу? значення в?дл?к?в, annot представля? ?нформац?ю про анотац?? ?annottime-час аннотац?й. Так як таку д?ю, користувачев? пропону?ться вибрати сигнал, значить п?сля обробника под?? натискання кнопки, викону?ться обробка зм?ни вибору. В першу чергу при виконанн? ц??? функц?? стають доступними елементи управл?ння: смуга прокрутки та панель ?нструмент?в. Дал?, виробляються налаштування начального стану ?нтерфейсу ? зм?нних програми. Так, наприклад, кол?р кнопок зм?ни масштабу зм?ню?ться на с?рий, а кнопки, яка встановлю? масштаб на 5 секунд, ста? червоною, так як це масштаб, з яким сигнал в?дкрива?ться за замовчуванням. Максимальне значення смуги прокрутки встановлю?ться р?вним к?лькост? в?дл?к?в в сигнал?. П?сля вс?х п?дготовчих процедур виклика?ться функц?я DrawSelected(). Вона виводить в chart1 вибранний д?лянку сигналу, спираючись на положення повзунка смуги прокрутки ? обраного користувачем масштабу. Розглянемо докладн?ше роботу ц??? функц??. Для цього необх?дно ознайомитися з компонентами елемента Chart. Коллекц?яChart.Series вм?щу? ряди даних, як? в?дображаються на граф?ку. Annotations явля? собою колекц??ю анотац?й, як? можуть виводитися з метою пояснення окремих фрагмент?в граф?ка Chart. ChartAreas зада? област? для малювання граф?к?в, як? займають прост?р елемента Chart. Кожна м?стить власн? ос?, як? збер?гаються в колекц?? Chart.ChartAreas.Axis.Теперь перейдемо до розгляду функц?? DrawSelected(). Спочатку, при розробц? програми було вир?шено завантажити вс? в?драхунки сигналу в Chart.Series ? реал?зувати прокрутку за рахунок кошт?в самого компонента Chart, зм?нюючи в?добража?ться д?лянку ос? X. Але, в процес? тестування стало ясно, що при наявност? велико? к?лькост? даних, тому Chart потребу? велико? обчислювально? потужн?ст?, для обробки граф?к?в. Тому, спостер?галася значна затримка в?д зм?ни положеня повзунка смуги прокрутки, до зм?ни граф?ка. Тому було вир?шено виконувати прокрутку сигналу самост?йно розраховуючи необх?дний ?нтервал ? передаючи в Chart лише дан? конкретного фрагмента. Для цього функц?я використову? зм?нну dx, яка показу? який масштаб в?дображення вибрав користувач, тобто ск?льки секунд сигнал повинна в?дображатися. За допомогою ц??? зм?нно?, враховуючи частоту дискретизац?? сигналу розрахову?ться коеф?ц??нт прокрутки kp, значення, на яке буде зрушуватися сигнал при натисканн? на стр?лку смуги прокрутки. Експериментальний шляхом було встановлено, що для сприятливого сприйняття прокрутки сигналу, kp повинен складати 1/5 в?д масштаба. Знаючи положення повзунка ? масштаб можна розрахувати д?апазон ос? Х, як? необх?дно в?добразити. Меж? цього д?апазону збер?гаються в зм?нних XStart, значення яко? прир?вняне до положення повзунка, ? XEnd. При цьому перев?ря?ться, чи не вийшла XEnd за кордону колекц?? в?дл?к?в. Якщо це сталося, то XEnd пририва?ться до к?лькост? в?дл?к?в, а XStart перерахову?ться в?дносно цього. Пот?м ?н?ц?ал?зуються зм?нн?, для збер?гання значень в?дл?к?в ? часу ?х положення, а також колекц?? м?стять анотац?? по сигналам. П?сля того, як зм?нн? визначен?, запуска?ться цикл в?д початкового значення ос? Х, до к?нцевого. У цьому цикл? заповню?ться колекц?я точок данних. В?дл?ки для ос? Y берутся з колекц?? samples. При цьому в?дбува?ться переклад з одиниць вим?рювання АЦП в м?л?вольтах, а також врахову?ться л?н?я нуля. Координати для ос? Х розраховуються ? вим?рюються в секундах. Коментування в програм? реал?зовано наступним чином: для кожно? анотац?? проводиться вертикальна л?н?я. Якщо ця ?нструкц?я показу? на QRS-комплекс, то це пунктирна л?н?я. Якщо комплекс патолог?чний, л?н?я червона, якщо нормальний, то л?н?я зелена. Якщо анотац?я несе ?нш? дов?дков? в?домост?, то л?н?я суц?льна ? помаранчева. П?д граф?ком, поруч з кожною л?н??ю виводиться код анотац?? у вигляд? букви або знака, значення яких описано в стандарт? PhysioNet.Повернемося до циклу. На кожно? ?терац?? проводиться перев?рка: чи перебува? порядковий номер даного в?дл?ку в колекц?? AnnotTime. Якщо це так, створю?ться нова вертикальна л?н?я анотац?й. ?? властивост? встановлюються в?дпов?дно до ?нформац?? про поточну анотац??. Також створю?ться текстова анотац?я, що ? поясненням до л?н??, що ма? таке ж положення. Цикл зак?нчу?ться. После циклу, розрахован? масиви точок передаються в Chart1. Series в?дображаються. В зм?ну Annotations заносятся створен? анотац??. Функц?я припиня? свою роботу. В?д ?нтерфейсу програми п?сля вибору сигналу представлений на рисунку 4.9.Рисунок 4.9. ?нтерфейс програми, п?сля в?дкриття файлу.Три описан? вище функц?? ? основними в перш?й форм? розроблено? програми. У них в?дбува?ться в?дкриття сигнал?в, завантаження даних, в?дображення сигнал?в. ?нш? елементи носять поб?чний характер, роблячи використання програми б?льш зручним. Так, наприклад, при натисканн? на одну з кнопок панел? ?нструмент?в глобальная зм?нна dx зм?ню? сво? значення на в?дпов?дне кнопц?. Кожна з функц?? допомага? в?добрати свою д?лянку даних. В к?нц? обробника натискання цих кнопок виклика?ться функц?я DrawSelected(), для перемальовування в?кна граф?ка в?дпов?дно до нового масштабом.Натискання на кнопку BInfo виклика? метод MessageBox.Show(), який в?добража? в?кно пов?домлення (д?алогове в?кно) з текстом для користування описом. Це модальне в?кно, що блоку? ?нш? д?? в додатку, поки користувач не закри? його. В даному випадку, воно в?добража? ?нформац?ю про записи, записану в файл? заголовка у вигляд? комментар?в. Дане в?кно наведене на рисунку 3.10.Рисунок 4.10. Модальне д?алгове в?кно коментар?в.Под?я першого в?кна OnApplicationExit виклика? функц?ю WfdbQuit(). Ця функц?я закрива? вс? в?дкрит? файли WFDB ? зв?льня? пам'ять, вид?лену ?нших функц?й б?бл?отеки. Вона також переда? зм?нну WfdbPath внутр?шн? зм?нн?, використовуван? для визначення техн?чних характеристик вих?дних с?гнал?в. Модуль роботи з базою веб-ресурсу PhysioNet описаний методами reuqest.get() та request.copyto(). Для того, щоб користувач м?г вибрати який сигнал його ц?кавить на форм? передбачений компонент ComboBox. П?сля отримання ?нформац?? про статус п?дключення до мереж? ?нтернет, програма дода? доступн? записи в цей елемент. Це працю? в цикл?, який викону?ться в?д 0 до к?лькост? сигнал?в в запису. На рисунку 4.11 представлено виб?р дата-сет?в.Рисунок 4.11. Виб?р можливих вар?ант?в сет?в.При натисканн? накнопку BOpenSignal, в?дкрива?ться д?алог в?дкриття файлу, в якому доступн? т?льки файли в формат? WAV. Якщо вза?мод?я користувача з цим д?алогом усп?шно ? робота з ним завершилася натисканням на кнопку ОК, компоненти на форм? стають активними, а шлях до вказаного файлу запису?ться в TextBoxTBSignalPath. Саме перев?ря?ться чи входить останн?й введений символ в безл?ч цифр ? якщо нема?, то в?н не дода?ться до рядка м?ститься в даному поле. Самою об'?мною функц??ю друго? форми ? обробник под?? натискання кнопки BSave_Click. В першу чергу перев?ря?ться поля, ?м'я запису. Якщо воно небуде активована або м?стить ? символи, користувач бачить в?кно з попереджуючим пов?домленням ? виконання функц?? перерива?ться. В ?ншому випадку в?дкрива?ться д?алог, що пропону? вказати папку для збереження нового запису. П?сля того, як шлях став в?домий, в?н запису?ться в зм?нну WfdbPath, з яко? функц?? б?бл?отеки Wfdb берут шлях для збереження сигнал?в. Дал? обробником виклика? функц?ю Write_DAT(), яка зд?йсню? перетворювання формату ? запису? дан? в нов? файли запису. Функц?я Write_DAT () працю? в два етапи. На першому програма в?дкривае файл WAV ? зчиту? в?дл?ки з нього. На другому з в?дл?к?в форму?ться новий сигнал ? створюються попутн? файли запису.Первий етап. Вза?мод?я з файлами в мов? Python зд?йсню?ться через потоки. Пот?к це абстрактне уявлення даних (в байтах). З появою багатоядерних процесор?в стала загальновживаною практика поширювати навантаження на вс? доступн? ядра. ?сну? два основн? п?дходи в розпод?л? навантаження: використання процес?в ? поток?в.Використання дек?лькох процес?в фактично означа? використання дек?лькох програм, як? виконуються незалежно один в?д одного. Програмно це вир?шу?ться за допомогою системних виклик?в exec ? fork. Такий п?дх?д створю? велик? незручност? в управл?нн? обм?ну даними м?ж цими програмами.В якост? альтернативи ?сну? ?нший п?дх?д - створення багатопоточних програм. Обм?н даними м?ж потоками ?стотно спрощу?ться. Але управл?ння такими програмами ускладню?ться, ? вся в?дпов?дальн?сть ляга? на програм?ста. У Python ? стандартний модуль subprocess, який спрощу? управл?ння ?ншими програмами, передаючи ?м опц?? командного рядка ? орган?зовуючи обм?н даними через канали (pipe). Розглянемо приклад, в якому користувач запуска? програму з командного рядка, яка в свою чергу запустить к?лька доч?рн?х програм. В даному приклад? два скрипта - рarent.py ? child.py. Запуска?ться parent.py. Child.py виступа? в рол? аргументу command, який переда?ться в запуска?ться процес. У цього процесу ? стандартний вх?д, куди ми переда?мо два аргументи - пошукове слово ? ?м'я файлу. Ми запустимо два прим?рника програми child.py, кожен екземпляр буде шукати слово word в сво?му файл? - це будуть файли початкових код?в самих програм. Запис на стандартний вх?д зд?йсню? модуль subprocess. Кожен процес пише результат свого пошуку в консоль. У головному процес? ми чека?мо, поки все child не зак?нчать свою роботу.Якщо потр?бно, щоб ваше додаток виконувало к?лька завдань в один ? той же час, то можете скористатися потоками (threads). Потоки дозволяють додаткам виконувати в один ? той же час безл?ч завдань. Нитка (multi-threading) важлива в безл?ч? додатк?в, в?д прим?тивних сервер?в до сучасних складних ? ресурсном?стких ?гор.Коли в одн?й програм? працюють к?лька поток?в, виника? проблема розмежування доступу поток?в до загальних даних. Припустимо, що ? два потоки, що мають доступ до загального списку. Перший пот?к може робити ?терац?ю з цього списку, а другий в цей момент почне видаляти значення з цього списку. Тут може статися все що завгодно: програма може впасти, або ми просто отрима?мо нев?рн? дан?.Р?шенням в цьому випадку ? застосування блокування. При цьому доступ до заблокованого списку буде мати т?льки один пот?к, другий буде чекати, поки блокування не буде знято.Застосування блокування породжу? ?ншу проблему - Дедлок (deadlock) - мертве блокування. Приклад Дедлок: ? два потоки ? два списки. Перший пот?к блоку? перший список, другий пот?к блоку? другий список. Перший пот?к зсередини першо? блокування намага?ться отримати доступ до вже заблокованого другого списку, другий пот?к намага?ться зробити те ж саме з першим списком. Виходить невизначена ситуац?я з неск?нченним оч?куванням. Цю ситуац?ю легко описати, на практиц? все набагато складн?ше.Вар?антом вир?шення проблеми Дедлок?в ? пол?тика визначення черговост? блокувань. Наприклад, в попередньому приклад? ми повинн? визначити, що блокування першого списку йде завжди першою, а вже пот?м йде блокування другого списку. ?нша проблема з блокуваннями - в тому, що к?лька поток?в можуть одночасно чекати доступу до вже заблокованого ресурсу ? при цьому н?чого не робити. Кожна п?тоновская програма завжди ма? головний керуючий пот?к.Реал?зац?я в Python багатопоточност? обмежена. ?нтерпретатор Python використову? внутр?шн?й глобальний блокувальник, який дозволя? виконуватися т?льки одному потоку. Це зводить нан?вець переваги многоядерной арх?тектури процесор?в. Для багатопоточних додатк?в, як? працюють в основному на дисков? операц?? читання/запису, це не ма? особливого значення, а для додатк?в, як? д?лять процесорний час м?ж потоками, це ? серйозним обмеженням.В якост? джерела даних може бути файл, пристр?й введення-виведення, принтер. Клас Stream явля? собою абстрактним базовим класом для вс?х потокових клас?в в Python. Для роботи з файлами використову?ться клас FileStream (файловий пот?к), що представля? пот?к, який дозволя? виконувати операц?? читання/запису в файл. П?сля створення потоку WAVInStream використову?ться метод BinaryReader, який зчиту? прим?тивн? типи даних як виконавч? значення в задан?й кодуванн? ?з зазначеного потоку. Вх?дний файл збережений у формат? WAV16 bit. Цей формат ма? певну структуру. На початку файлу записано дан? про сигнал, так? як частота дискретизац??, к?льк?сть канал?в, к?льк?сть в?дл?к?в ? т.д. Пот?м, п?сля ключового слова ?Data? перераховуються в?дл?ки. Функц?я Write_DAT() шука? ключове слово вважаючи по одному байту з файлового потоку ? пор?внюючи л?чен? байти з? словом ?Data?. П?сля того, як це слово було знайдено, функц?я почина? зчитувати в?дл?ки ? передавати ?х в колекц?ю Samples. На цьому перший етап роботи функц?? завершен. На початку другого етапу створю?ться структури Record? Signals, як? буде м?стити всю ?нформац?ю про записи. Деяк? зм?нн? цих структур заповнюються з урахуванням даних введених ран?ше користувачем, а н?як? заздалег?дь в?дом? ? заповнюються програмою самост?йно.Для збереження файл?в записи використовуються функц?? б?бл?отеки Wfdbosigfopen, putvec?newheader. Функц?я osigfopen в?дкрива? сигнали для запису. При цьому характеристики сигнал?в, в тому числ? ?мена файл?в з сигналом, зчитуються osig-fopen? з передано? структури, а не читаються з файлу заголовка. Вс? ран?ше в?дкрит? вих?дн? сигнали закриваються. У цей метод необх?дно передати структуру з ?нформац??ю про записи, сигналах ? к?льк?сть записуваних сигнал?в. Функц?я putvec запису? в?дл?к для кожного вх?дного сигналу. При виклику необх?дно передати функц?ю в?дл?к для зап?су. Функц?я newheader створю? файл .hea в поточному каталоз? .newheader необх?дно використовувати т?льки п?сля того, як ви зак?нчена запис файл?в з отсчетами, але перед викликом wfdbquit. ?м’я запису може складатись з л?тер укра?нсько? в нижньому або верхньому рег?стр?, цифри, знак п?дкреслення ? не може включати в себе будь-як? ?нш? с?мволи. якщо запис пройшов усп?шно, користувач побачить текстову позначку з в?дпов?дним надписом, а програма викличе функц?ю wfdbquit, для того, щоб вс? файли коректно закрилися, а пам'ять зв?льнилася. Приклад текстово? позначки представлени на рисунку 4.12.Рисунок 4.12 Дан? веб-ресурсу усп?шно збережен?.Також описана Use-case д?аграмма з експлуатац?? на рисунку 4.13.Рисунок. 4.13. Use-case д?аграма.Загальн? висновки розд?лу 4.За допомогою розроблено? програми можна отримувати ?нформац?ю про сигнал формату PhysioNet, переглядати його, зм?нюючи масштаб, в?дображати анотац?? до сигналу, а також при доступ? до мереж? ?нтеренет скачувати необх?дн? сети сигнал?в онлайн напряму з ресурсу PhysioNet. РОЗД?Л 5ОХОРОНА ПРАЦ?Вступ.Темою дипломно? роботи ? створення програми для зменшення часу для анал?зу та пошуку пром?жних результат?в науковим прац?вникам. Такого виду програми можуть використовуватися на персональних комп’ютерах персоналу лаболатор??, але для швидкого обм?ну, в?зуал?зац?? та зм?ни даних, необх?дно використовувати потужност? серверу, як? покращать швидк?сть науково? роботи спец?ал?ста. Його п?дтримкою займа?ться системний адм?н?стратор. Сл?д зам?тити, що для роботи з сервером обов’язково потр?бен персональний комп’ютер.На даному етап? роботи розглядаються основн? положення охорони прац? та безпеки при робот? з ПК та серверним устаткуванням в спец?ально оснащен?й для цього к?мнат?.Загальна характеристика прим?щення.Характеристика об’?кт?в прим?щення вказан? в табл. 5.1.Таблиця 5.1Параметри прим?щення№ Найменування Основн? характеристики К?льк?стьПозиц?я на рисункуПрим?щення1Параметри прим?щення 9000*4000*3000; S=36 м2; V=108 м3-2900*2500; матер?ал - дерево3К?льк?сть працюючих Адм?н?стратор серверу1-4Природне осв?тлення-0-5Штучне осв?тленняГазорозрядн? лампи ГРЛГД, ВЛК; GE F; 18W/33 G1337Продовження таблиц? 5.1Обладнання ? оснащення6Сервер HP DL 380 G7 E506розм?ри 1350 х 2100 х 2000 мм;потужн?сть 250 Вт;напруга 220В, 50 Гц;117Мон?тор LG 19M35A-Bрозм?ри 260 х 180 х 15 мм;напруга 220В, 50 Гц;128Системний блок HP 130/Pрозм?ри 220 х 90 х 300 мм;потужн?сть 100Вт;напруга 220В, 50Гц;139Робочий ст?л-полицярозм?ри 1600 х 800 х 850 мм;матер?ал - дерево1410Кр?сло оф?снерозм?ри 530 х 570 х 750 мм;матер?ал – пластик, синтетичне волокно1511Кондиц?онер APC InRow SC (ACSC101)розм?ри 1900 х 300 х 1000 мм;потужн?сть 2,39 кВт;напруга 220В, 50Гц;16План серверно? представлений на рисунку 5.1.Рисунок 5.1 – План-схема.В?дпов?дн?сть планування.В?дпов?дн?сть планування дано? серверно? зведена в табл. 5.2.Таблиця 5.2В?дпов?дн?сть планування прим?щення сан?тарно - г?г??н?чним нормам (серверна)ПараметрДан? параметриНормаПлоща на 1 людину, S6,7 м2не менше 6 м2Об’?м на 1 людину, V23,3 м3не менше 20 м3Ширина дверей, L0,9 мне менше 0,9 мВ?дстань в?д ст?н до сервер?в0,85 мне менше 0,8 мВисота дверей2 мне менше 1,8 мПараметри розглянуто? серверно? к?мнати, в?дпов?дають ГОСТу ДСанП?Н 3.3.6.042-99, ДсанП?Н 3.3.2.007-98.Оц?нка небезпечних ? шк?дливих виробничих фактор?в.Ключов? небезпечн? та шк?длив? виробнич? чинники в?дпов?дно до ГОСТ 12.0.003-74 за природою д?? под?ляються на 3 групи. Таблиця 5.3Ключов? небезпечн? та шк?длив? виробнич? фактори№ФакториНаявн?сть1Ф?зичн?М?крокл?мат, осв?тлення, шум, електромагн?тне випром?нювання, електронебезпека, пожежонебезпека2Х?м?чн?В?дсутн?3Б?олог?чн?В?дсутн?М?крокл?мат.Джерелом тепла ? нагр?вання серверного електрообладнання. Ключов? джерела тепла зведен? в таблицю 5.4Таблиця 5.4Ключов? джерела та насл?дкиПараметри м?крокл?матуДжерелаНасл?дкиТемпература Сервер, системний блок, св?тильникиЗниження працездатност? роб?тникаВолог?стьПогана вентиляц?я прим?щенняПоява конденсату на обладнанн?Робота з сервером виконуються безпосередньо б?ля сервер?в ? не потребу? ф?зичного навантаження, тому ц? роботи в?дносяться до категор?? ?Легк? роботи – 1а?. Людиною вид?ля?ться до 120ккал теплово? енерг?? на годину.У таблиц? 5.5 приведен? кл?матичн? параметри для категор?? роб?т 1а.Таблиця 5.5Пор?вняння параметр?в кл?мату в серверн?й з даними стандартамиПора рокуТеплаХолоднаНормативн? значенняРеальн? значенняНормативн? значенняРеальн? значення831850305435Температура пов?тря t, 18-2419-2318-2417-22В?дносна волог?сть, %30-504030-5035Вимоги, що в?дпов?дають сан?тарно-г?г??н?чному нормуванню для серверно? к?мнати в?дпов?дають норм? завдяки кондиц?онеру APC InRow SC (ACSC101), в?дпов?дно нормативу ДСН 3.3.6.042-99.Таблиця 5.6Системи кондиц?ювання та опаленняОсв?тлення.В прим?щен? проводяться роботи по техн?чн?й п?дримц? працездатност? серверу та досл?дницько? роботи. Основна частина роботи в?дбува?ться з текстовим редактором. Фон програми-середовища розробки – с?рий, шрифт програми в середньому склада? 7-11 px, тобто при розд?льной здатн?ст? екрану 1920*1080 розм?р тексту становить 2-3 мм та розм?р м?н?мальних об’?кт?в 3 px – 1 мм, тому точн?сть зорово? роботи середня. Також роботи проводяться безпосередньо з датчиками та екранами (Benq Shower 120*250) на серверах, як? показують активн?сть, температуру та поточн? електричн? показники (розм?р шрифта 10-12 px). Ключов? джерела ? насл?дки небезпек зведен? в таблицю 5.7.Таблиця 5.7Ключов? джерела ? насл?дкиДжерелаНедостатн? м?сцеве осв?тленняПорушення зору Насл?дкиЯскраве св?тлоЗниження р?вня працездатност?Таблиця 5.8 Пор?вняльна характеристика нормативних та реальних значень зорових роб?т, для штуного осв?тленняШтучне осв?тлення, лкНормативн? значення300-150Реальн? значення200-300Природне осв?тлення в?дсутн?. Штучне осв?тлення забезпечу?ться за допомогою газорозрядних ламп. Основним критер??м вибору даних ламп ? в?дношення в?д ц?на та передачею кольору. Характеристики ламп зведен? в таблицю 5.9.Таблиця 5.9Штучне осв?тленняВимоги, що в?дпов?дають нормативним документам (ДБН В.2.5-28- 2006 та ДСанП?Н 3.3.2.007-98 або ДНАОП 0.00-1.31-99 - не менше 2,5 м).Таблиця 5.10Засоби захисту зоруВид захистуЗаходиТехн?чн? заходиУ технолог?чному обладнанн?Фон програми-середовища розробки – чорно б?лий, (50%), шрифт програми – 14 – 16(пк), 6-8(мм) (35%), розм?р м?н?мальних об'?кт?в 3(пк) – 1(мм)(25%)У прим?щенн?Штуне осв?тлення: 6 газорозрядних ламп ГРЛНД, типу GE F 18W/33 G13Орган?зац?йн? заходиВологе прибирання(50%), п?дтримання чистоти в?кон та св?тильник?в (50%)З?ЗНе передбачен?Шум.Таблиця 5.11Джерела ? насл?дкиДжерелаСерверКондиц?онерЗовн?шн?й шумКомп’ютерНасл?дкиПорушення слуху, зниження р?вня працездатност?, втома, роздратован?стьТаблиця 5.12Ключов? джерела ? р?вень шумових навантаженьДжерела шумуФактичне значенняНормативне значенняКондиц?онер, дБА30-50Не б?льше 50Сервер, дБА58-75Не б?льше 65Шум серверу не в?дпов?да? нормам, тому потр?бна установка шумопоглинаючих шаф.Таблиця 5.13Ключов? джерела ? р?вень шумових навантажень з шумопоглинаючими шафамиДжерела шумуФактичне значенняНормативне значенняКондиц?онер, дБА30-50Не б?льше 50Сервер, дБА42-59Не б?льше 65П?дсумкова ?нформац?я по застосованим заходам безпеки в?д шуму зведена в таблицю 5.14.Таблиця 5.14Заходи безпекиВид захистуЗасоби подолання небезпекиТехн?чн? заходиУстановка шумопоглинальних шаф Orion Rack, 16дБ(А);Установка вентилятор?в Scythe Typhoon (120 мм) – 4 шт.Орган?зац?йн? заходиСво?часне прибирання системи охолодження (кондиц?онер) та шафи з серверами.З?ЗНавушники, COM3-1Р?вень звуку у прим?щенн? може перевищувати встановлен? норми (за ДСН 3.3.6.037-99 ?Сан?тарн? норми виробничого шуму, ультразвуку та ?нфразвуку?).Небезпека електромагн?тного опром?нення. Таблиця 5.15 Ключов? джерела ? насл?дкиДжерелаСерверКомп’ютерНасл?дкиВиникнення головних болей, ускладнення ЗССТаблиця 5.16 Суммарне електромагн?тне опром?ненняПараметриФактичне значенняНормативне значенняНапружен?сть зм?нного електричного поля, В/м1,0 – 35,0В межах 0,1 – 1,1?ндукц?я зм?нного електричного поля, нТл6,0 – 770,0В межах 1,0 – 32,0Параметри електромагн?тного опром?нення не в?дпов?дають нормам, тому потр?бно провести в?дпов?дн? заходи безпеки.Таблиця 5.17 Ключов? заходи безпекиВид захистуЗасоби подолання небезпекиТехн?чн? заходиВстановлення шафи з екрануванням ?Shares-A?;Встановлення перегородки-панел? РПГ ШУНГИТ.Орган?зац?йн? заходиПерериви в робот? спец?ал?ста, кожн? 1-2 години.З?ЗНепередбачен?.М?н?мальне електромагн?тне опром?нення в?д шафи з сервером присутн?, тому працювати в к?мнат? пост?йно не можна, а т?льки по необх?дност?(лагодити у випадку несправност?). Електронебезпека.Таблиця 5.18 Ключов? джерела ? насл?дкиДжерелаСерверКомп'ютерКондиц?онерНасл?дкиПоранення, удар струмомТаблиця 5.19Електроживлення ПК, серверу та кондиц?онеруДжерело живленняПотреба сили струму б?льше н?ж 220ВСпоживання серверуН?, норма 220ВСпоживання ПКН?, норма 220ВСпоживання кондиц?онеруН?, норма 220ВВ прим?щенн? оргтехн?ка п?дключена до мереж? зм?нного струму напругою 220 В, та частоти 50 Гц. Зг?дно класиф?кац?? прим?щень за ступенем небезпеки враження електричним струмом прим?щення, в?дпов?дно з ОНТП24-86 та ПУЕ-87, можна в?днести до категор?? без п?двищено? небезпеки.Таблиця 5.20Заходи безпеки в прим?щен?Вид захистуЗасоби подолання небезпекиТ.З. при нормальних режимах роботиПриховна проводка за допомогою кабель-канал?в DLP;П?дключення обладнання через розетки ИРДП.468829.001;Сигнальн?-блокувальники панел?в серверу типу ?Neozed?;Розм?щення св?тильник?в на висот? 2,8мТ.З. при авар?них режимах роботибезпереб?йн? джерела живлення (Eaton 5115 1000Вт);плавк? запоб?жники типу ?Neozed?.Орган?зац?н? заходизг?дно посади роб?тника.З?Знепередбачен?.Пожежна безпека.Таблиця 5.21 Ключов? джерела ? насл?дкиДжерелаСерверКомп'ютерКондиц?онерНасл?дкиОп?ки, асф?кс?я угарним газомВ прим?щенн? знаходяться дерев’яний ст?л, кр?сло, ПК, сервер, перегородка, електричне обладнання(кондиц?онер, кабел?, розетки). Клас пожеж? В.Таблиця 5.22 Характеристика пожежно? небезпекиКатегор?я п. н. прим?щенняВКлас пожежонебезпеки зониП-ПаВ?дпов?дно до буд?вельних норм та правил СН?П 2.09.02-85, шляхи евакуац?? людей при пожеж? для даного прим?щення в?дпов?дають встановленим нормам.Таблиця 5.23 Ключов? заходи безпекиВид захистуЗасоби подолання небезпекиТехн?чн? заходигазове пожежогас?ння, МГПМ-20;вуглекислий вогнегасник ОУ – 1;датчики теплово? сигнал?зац??, СП 101-21-A1R.Орган?зац?йн? заходизг?дно посади роб?тника.З?ЗЗ?З.Загальн? висновки до розд?лу 5.Параметри даного каб?нету в?дпов?дають встановленим нормам. Дане прим?щення не призначене для пост?йно? роботи, а т?льки для п?дтримання серверу в робочому стан?. РОЗД?Л 6 ЕКОНОМ?ЧНА ЧАСТИНАЕконом?чний анал?з вар?ант?в розробки програмного продукту.Для визначення вартост? розробки ПП проведемо розрахунок трудом?сткост?.Загальна трудом?стк?сть обчислю?ться як: То = Тр * Кп * Кск * Км * Кст * Кст.м, де Тр – трудом?стк?сть розробки програмного продукту; Кп – поправочний коеф?ц??нт; Кск – коеф?ц??нт на складн?сть вх?дно? ?нформац??; Км – коеф?ц??нт р?вня мови програмування; Кст – коеф?ц??нт використання стандартних модул?в ? прикладних програм; Кст.м – коеф?ц??нт стандартного математичного забезпечення.Розробка програмного продукту включа? в себе 3 завдання. Для першого завдання, виходячи ?з норм часу для завдань розрахункового характеру ступеня новизни Б та групи складност? алгоритму 1, трудом?стк?сть Тр = 50 людино-дн?в. Поправочний коеф?ц??нт, який врахову? вид використано? ?нформац?? для першого завдання (нормативно-дов?дкова ?нформац?я): Кпк = 1,35. Поправковий коеф?ц??нт, який врахову? складн?сть контролю вх?дно? та вих?дно? ?нформац?? для завдань, Кск = 1.Оск?льки п?д час розробки першого завдання використовуються стандартн? модул?, враху?мо це за допомогою коеф?ц??нта Кст = 0,7. Коеф?ц??нти Км ? Кст.п, як? враховують в?дпов?дно програмування на мов? низького р?вня та розробку стандартного програмного забезпечення, для вс?х завдань становлять 1: К м = К ст.п = 1.Отже, загальна трудом?стк?сть програмування першого завдання вар?анту дор?вню?:То= Тр · Кп · Кск · Кст = 50 · 1,35 · 1 · 0,7 = 42,25 людино-дн?в.Проведемо аналог?чн? розрахунки для ?нших завдань.Для другого завдання (використову?ться алгоритм першо? групи складност?, ступ?нь новизни Б):Тр = 50 людино-дн?в; К п = 1,08; К ст = 0,8;То = 50 ? 1,08 ? 0,8 = 43,2.Для третього завдання вар?ант А (використову?ться алгоритм першо? групи складност?, ступ?нь новизни В):Тр = 50 людино-дн?в; К п = 1,02; К ст = 0,8;То = 50 ? 1,02 ? 0,8 = 40,8.Для третього завдання Вар?ант Б (використову?ться алгоритм друго? групи складност?, ступ?нь новизни В):Т р = 15 людино-дн?в; К п = 0,81; К ст = 0,8;Т о = 15 ? 0,81 ? 0,8 = 9,72.Складемо трудом?стк?сть в?дпов?дних завдань, щоб отримати ?х трудом?стк?сть:Т I = (43,2+40,8+9,72) ? 8 = 724,46 людино-годинТ II = (85,05+77,76+12,31) ? 8 =700,96 людино-годинОчевидно, що вищу трудом?стк?сть ма? вар?ант I.Розрахунок зароб?тно? плати розробника.В розробц? беруть участь два програм?сти з окладом1 5000 грн. Денну зароб?тню плату визначимо, виходячи ?з м?сячних оклад?в програм?ст?в, враховуючи тривал?сть умовного м?сяця 21 день при 5-ти робочих дн?в на тиждень. Визначимо зарплату за годину за формулою: Сч= МTm*t грн.,де М – м?сячний оклад прац?вник?в; T m – к?льк?сть робочих дн?в тиждень; t – к?льк?сть робочих годин в день.Сч = 15000+1500021*8*2 = 89, 3 грн.Тод?, розраху?мо зароб?тну плату за формулоюСзп = Сч ? Т i ? КД, де Сч – величина погодинно? оплати прац? програм?ста; Тi – трудом?стк?сть в?дпов?дного завдання; К Д – норматив, який врахову? додаткову зароб?тну плату.Тод? зарплата розробник?в за вар?антами в?дпов?дно до формули:I. С зп = 119,05? 1694,16 ? 1,2 = 242027,7 грн.II. С зп = 119,05 ? 1400,96 ? 1,2 = 200141,15 грн.В?драхування на вс? види соц?ального страхування за вар?антами (22%):I. Св?д =242027,7? 0,22 =53246,09 грн.II. Св?д = 200141,15 ? 0,22= 44031,05 грн.Тепер визначимо витрати на оплату одн??? машино-години. (С М )Так як одна ЕОМ обслугову? одного програм?ста з окладом 15000 грн., зкоеф?ц??нтом зайнятост? 0,2 то для одн??? машини отрима?мо:Сг = 12?M?K З = 12 ? 15000? 0,2 = 48000 грн.З урахуванням додатково? зароб?тно? плати:Сзп =Сг? (1+ Kз) = 48000? (1 + 0.2) = 57600 грн.В?драхування на ?диний соц?альний внесок:Св?д = Сзп ? 0.367 = 57600 ? 0,367 = 21139,2 грн.Амортизац?йн? в?драхування розрахову?мо при амортизац?? 25% тавартост? ЕОМ – 25000 грн.Са = Ктм ? Kа ?Цпр = 1.15 ? 0.25 ? 25000 =7187,5 грн.,де Ктм – коеф?ц??нт, який врахову? витрати на транспортування та монтаж приладу у користувача; Kа – р?чна норма амортизац??; Цпр – догов?рна ц?на приладу.Витрати на ремонт та проф?лактику розрахову?мо як:Ср= Ктм ?Цпр ? Кр = 1.15 ? 25000 ? 0.05 = 1437,5 грн.,де Кр – в?дсоток витрат на поточн? ремонти.Ефективний годинний фонд часу ПК за р?к розрахову?мо за формулою:Теф =(Дк – Дв – Дс – Др ) ? tз ? Кв = (365 – 104 – 8 – 16) ? 8 ? 0.9 = 1706.4годин,де Дк – календарна к?льк?сть дн?в у роц?; Дв, Дс– в?дпов?дно к?льк?стьвих?дних та святкових дн?в; Др– к?льк?сть дн?в планових ремонт?вустаткування; t –к?льк?сть робочих годин в день; Кв – коеф?ц??нт використанняприладу у час? протягом зм?ни.Витрати на оплату електроенерг?? для другого класу напруги розрахову?мо за формулою:Сел= Теф ? Nс ? Kз ? Цен =1706,4 ? 0,156 ? 2 ? 278,39 = 1482,14 грн.де Nс – середньо-споживча потужн?сть приладу; K З – коеф?ц??нтомзайнятост? приладу; Цен – тариф за 1 КВт-годин електроенерг??.Накладн? витрати розрахову?мо за формулою:Сн= Цпр ?0.67 = 25000? 0,67 =16750 грн.Тод?, р?чн? експлуатац?йн? витрати будуть:Секз =Сзп + Св?д + Са + Ср + Сел + Сн = 57600 + 21139,2 + 7187,5+ 1437,5 +1482,14 + 16750 = 105596,34 грн.Соб?варт?сть одн??? машино-години ЕОМ дор?внюватиме:См-г = Секз / Теф = 97129,14 /1706,4 = 56,92 грн/час.Оск?льки в даному випадку вс? роботи, як? пов‘язан? з розробкоюпрограмного продукту ведуться на ЕОМ, витрати на оплату машинного часу,в залежност? в?д обраного вар?анта реал?зац??, склада?:См.ч = См-г?T?. С м.ч = 56,92 ? 1694,16 = 96431,59 грн.??. С м.ч = 56,92 ? 1400,96 = 79742,64 грн.Накладн? витрати становлять 67 % в?д зароб?тно? плати:Сн = Сзп ? 0,67?. С накл = 242027,7 ? 0,67 =162158,56 грн.??. С накл = 200141,15 ? 0,67 =134094,57 грн.Отже, варт?сть розробки ПП за вар?антами становить:Спп = Сзп + Св?д + См +Сн?. С ПП = 242027,7 + 53246,09 + 96431,59 + 162158,56 = 553863,94 грн.;??. С ПП = 200141,15 + 44031,05 + 79742,64 + 134094,5 = 458009,34 грн.Загальн? висновки до розд?лу 6.В даному розд?л? було розраховано загальну трудом?стк?сть програмування для двох р?зних вар?ант?в завдання, зароб?тну плату роб?тника, а також варт?сть розробки програмного продукту.ЗАГАЛЬН? ВИСНОВКИВ результат? виконання дипломно? роботи було розроблено програмний додаток, для доступу до бази медичних показник?в PhysioNet, а також розроблена можлив?сть попередньо в?зуал?зувати дата-сети запис?в. Додаток може працювати в режим? онлайн/оффлайн. Розроблене програмне забезпечення створено з користувацьким ?нтерфейсом для використання наукового персоналу.Були вир?шен? поставлен? на початку завдання, а саме:? За попередн?м анал?зом п’ятдесяти наукових статей наукових досл?дник?в PhysioNet, було п?дтверджено, що аналог?в даного системного модулю нема?.? Розроблено та спроектовано систему, яка може в?зуал?зувати потр?бн? медичн? записи на жорсткому диску користувача.? Розроблено та створено систему, яка може працювати з медичнами записами ресурсу PhysioNet та працювати з ?? стандартизац??ю даних.? Реал?зовано програмне забезпечення для в?зуал?зац?? медичних показник?в за ресурсом PhysioNet використовуючи мову програмування Python.Були розглянут? розд?ли охорони прац? та економ?ки.СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛADDIN Mendeley Bibliography CSL_BIBLIOGRAPHY 1. Zuzarte I, Indic P, Sternad D P. D. Quantifying movement in preterm infants using photoplethysmography / P. D. Zuzarte I, Indic P, Sternad D // Ann Biomed Eng. — 2018.2. Smith VC, Kelty-Stephen D, Qureshi Ahmad M, Mao W, Cakert K, Osborne J P. D. Stochastic resonance effects on apnea, bradycardia, and oxygenation: a randomized controlled trial. / P. D. Smith VC, Kelty-Stephen D, Qureshi Ahmad M, Mao W, Cakert K, Osborne J // Pediatrics. — 2015. — Vol. 136, No. 6. — P. 1561–1568.3. Silva I M. G. An open-source toolbox for analysing and processing physionet databases in matlab and octave / M. G. Silva I // Journal of Open Research Software. — 2014. — Vol. 2, No. 1.4. Burykin A, Mariani S, Henriques T, Silva TF, Schnettler WT, Costa MD G. A. Remembrance of time series past: simple chromatic method for visualizing trends in biomedical signals / G. A. Burykin A, Mariani S, Henriques T, Silva TF, Schnettler WT, Costa MD // Physiol Meas. — 2015. — Vol. 36, No. 7. — P. 95–102.5. Pollard TJ, Johnson AEW, Raffa JD, Celi LA, Mark RG B. O. The eicu collaborative research database, a freely available multi-center database for critical care research / B. O. Pollard TJ, Johnson AEW, Raffa JD, Celi LA, Mark RG // Sci Data. — 2018.6. Pimentel MA, Santos MD, Springer DB C. G. Hidden semi-markov model-based heartbeat detection using multimodal data and signal quality indices / C. G. Pimentel MA, Santos MD, Springer DB. — 2014.7. Pimentel MA, Santos MD, Springer DB C. G. Heartbeat detection in multimodal physiological data using a hidden semi-markov model and signal quality indices / C. G. Pimentel MA, Santos MD, Springer DB // Physiological Measurement. — 2015. — Vol. 36, No. 8.8. Pimentel MA, Brennan T, Lehman LW, King NK, Ang BT F. M. Outcome prediction for patients with traumatic brain injury with dynamic features from intracranial pressure and arterial blood pressure signals: a gaussian process approach / F. M. Pimentel MA, Brennan T, Lehman LW, King NK, Ang BT // Acta Neurochir Suppl. — 2016. — P. 85–91.9. Clifford GD, Silva I, Behar J M. G. Moody gb. non-invasive fetal ecg analysis. / M. G. Clifford GD, Silva I, Behar J // Physiological Measurement. — 2014. — Vol. 35, No. 8. — P. 1521.10. Clifford G, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D M. R. Reducing false arrhythmia alarms in the icu / M. R. Clifford G, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D. — 2015.11. Moody GB, Moody B S. I. Robust detection of heart beats in multimodal data: the physionet/computing in cardiology challenge 2014 / S. I. Moody GB, Moody B. — 2014.12. Ikaro Silva, Benjamin Moody, Joachim Behar, Alistair Johnson, Julien Oster G. D. C. and G. B. M. Editorial: robust detection of heart beats in multimodal data / G. D. C. and G. B. M. Ikaro Silva, Benjamin Moody, Joachim Behar, Alistair Johnson, Julien Oster // Physiol Meas. — 2015. — Vol. 36, No. 8. — P. 1629–1644.13. Morgado E, Alonso-Atienza F, Santiago-Mozos R, Barquero-Pérez ?, Silva I, Ramos J M. R. Quality estimation of the electrocardiogram using cross-correlation among leads. / M. R. Morgado E, Alonso-Atienza F, Santiago-Mozos R, Barquero-Pérez ?, Silva I, Ramos J // Biomed Eng Online. — 2015. — Vol. 15, No. 59.14. Henriques TS, Mariani S, Burykin A, Rodrigues F, Silva TF G. A. Multiscale poincaré plots for visualizing the structure of heartbeat time series / G. A. Henriques TS, Mariani S, Burykin A, Rodrigues F, Silva TF // BMC Med Inform Decis Mak. — 2016. — Vol. 16. — P. 17.15. Clifford GD, Silva I, Moody B, Li Q, Kella D, Chahin A, Kooistra T, Perry D M. R. False alarm reduction in critical care / M. R. Clifford GD, Silva I, Moody B, Li Q, Kella D, Chahin A, Kooistra T, Perry D // Physiol Meas. — 2016. — Vol. 37, No. 8. — P. 5–23.16. Pangerc U J. F. Robust detection of heart beats in multimodal data using integer multiplier digital filters and morphological algorithms. / J. F. Pangerc U. — 2014.17. Pangerc U J. F. Robust detection of heart beats in multimodal records using slope- and peak-sensitive band-pass filters / J. F. Pangerc U // Physiological Measurement. — 2015. — Vol. 36, No. 8.18. Lehman LW, Adams RP, Mayaud L, Moody GB, Malhotra A, Mark RG N. S. A physiological time series dynamics-based approach to patient monitoring and outcome prediction / N. S. Lehman LW, Adams RP, Mayaud L, Moody GB, Malhotra A, Mark RG // IEEE J Biomed Health Inform. — 2015. — Vol. 19, No. 3. — P. 1068–1076.19. Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PC, Mark RG, Mietus JE, Moody GB, Peng CK S. H. PhysioBank, physiotoolkit, and physionet: components of a new research resource for complex physiologic signals. / S. H. Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PC, Mark RG, Mietus JE, Moody GB, Peng CK // Circulation. — 2000. — Vol. 101, No. 23. — P. 215–220.20. Mollakazemi JM, Atyabi SA G. A. Heart beat detection using multimodal data coupling method / G. A. Mollakazemi JM, Atyabi SA // Physiological Measurement. — 2015. — Vol. 36, No. 8.21. Mariani S, Borges AF, Henriques T, Goldberger AL C. M. Use of multiscale entropy to facilitate artifact detection in electroencephalographic signals / C. M. Mariani S, Borges AF, Henriques T, Goldberger AL // Conf Proc IEEE Eng Med Biol Soc. — 2015. — P. 7869–7872.22. Goldberger AL, Henriques T M. S. Sublimation-like behavior of cardiac dynamics in heart failure: a malignant phase transition? / M. S. Goldberger AL, Henriques T // Complexity. — 2016. — P. 24–32.23. Li T, Matsushima M, Timpson W, Young S, Miedema D, Gupta M H. T. Epidemiology of patient monitoring alarms in the neonatal intensive care unit / H. T. Li T, Matsushima M, Timpson W, Young S, Miedema D, Gupta M // J Perinatol. — 2018. — Vol. 38, No. 8. — P. 1030–1038.24. Geovanini GR, Wang R, Weng J, Tracy R, Jenny NS, Goldberger AL, Costa MD, Liu Y, Libby P R. S. Elevations in neutrophils with obstructive sleep apnea: the multi-ethnic study of atherosclerosis (mesa) / R. S. Geovanini GR, Wang R, Weng J, Tracy R, Jenny NS, Goldberger AL, Costa MD, Liu Y, Libby P // Int J Cardiol. — 2018. — P. 318–323.25. Lehman LH, Mark RG N. S. A model-based machine learning approach to probing autonomic regulation from nonstationary vital-signs time series / N. S. Lehman LH, Mark RG // IEEE J Biomed Health Inform. — 2016.26. Kemp B O. J. Clinical neurophysiology / O. J. Kemp B. — Richmond, Virginia : Cape Fear Publishing, 2003. — 1755–1761 p.27. Kemp B, V?rri A, D.Nielsen K G. J. Electroencephalography and clinical neurophysiology / G. J. Kemp B, V?rri A, D.Nielsen K. — Richmond, Virginia : Inkwell Book Co, 1992. — 391–393 p.28. Behar J, Johnson AE, Oster J C. G. An echo state neural network for foetal ecg extraction optimised by random search. machine learning for clinical data analysis and healthcare nips / C. G. Behar J, Johnson AE, Oster J. — Lake Tahoe, USA, 2013.29. Johnson AE, Behar J, Andreotti F, Clifford GD O. J. R-peak estimation using multimodal lead switching. / O. J. Johnson AE, Behar J, Andreotti F, Clifford GD. — 2014.30. Johnson AE, Behar J, Andreotti F, Clifford GD O. J. Multimodal heart beat detection using signal quality indices. / O. J. Johnson AE, Behar J, Andreotti F, Clifford GD // Physiological Measurement. — 2015. — Vol. 36, No. 8.31. Galeotti L, Scully CG, Vicente J, Johannesen L S. D. Robust algorithm to locate heartbeats from multiple physiological waveforms by individual signal detector voting. / S. D. Galeotti L, Scully CG, Vicente J, Johannesen L // Physiological Measurement. — 2015. — Vol. 36, No. 8.32. Johannesen L, Vicente J, Scully CG, Galeotti L S. D. Robust algorithm to locate heart beats from multiple physiological waveforms. / S. D. Johannesen L, Vicente J, Scully CG, Galeotti L. — 2014.33. Henriques TS, Costa MD, Mathur P, Mathur P, Davis RB, Mittleman MA, Khabbaz KR, Goldberger AL S. B. Complexity of preoperative blood pressure dynamics: possible utility in cardiac surgical risk assessment / S. B. Henriques TS, Costa MD, Mathur P, Mathur P, Davis RB, Mittleman MA, Khabbaz KR, Goldberger AL // J Clin Monit Comput. — 2018.34. Costa MD G. A. Generalized multiscale entropy analysis: application to quantifying the complex volatility of human heartbeat time series / G. A. Costa MD // Entropy (Basel). — 2015. — Vol. 15, No. 3. — P. 1197–1203.35. Schnettler WT, Goldberger AL, Ralston SJ C. M. Complexity analysis of fetal heart rate preceding intrauterine demise / C. M. Schnettler WT, Goldberger AL, Ralston SJ // Eur J Obstet Gynecol Reprod Biol. — 2016. — P. 286–290.36. Costa MD, Redline S, Davis RB, Heckbert SR, Soliman EZ G. A. Heart rate fragmentation as a novel biomarker of adverse cardiovascular events: the multi-ethnic study of atherosclerosis / G. A. Costa MD, Redline S, Davis RB, Heckbert SR, Soliman EZ // Front Physiol. — 2018.37. Gieraltowski J, Ciuchciński K, Grzegorczyk I, Ko?na K, Soliński M P. P. RS slope detection algorithm for extraction of heart rate from noisy, multimodal recordings. / P. P. Gieraltowski J, Ciuchciński K, Grzegorczyk I, Ko?na K, Soliński M // Physiological Measurement. — 2015. — Vol. 36, No. 8.38. Gieraltowski JJ, Ciuchcinski K, Grzegorczyk I, Kosna K, Solinski M P. P. Heart rate variability discovery: algorithm for detection of heart rate from noisy, multimodal recordings. / P. P. Gieraltowski JJ, Ciuchcinski K, Grzegorczyk I, Kosna K, Solinski M. — State of Missouri : 2014.39. Gee AH, Barbieri R, Paydarfar D I. P. Predicting bradycardia in preterm infants using point process analysis of heart rate / I. P. Gee AH, Barbieri R, Paydarfar D // IEEE Trans Biomed Eng. — 2017. — Vol. 64, No. 9. — P. 2300–2308.40. Dean DA 2nd, Goldberger AL, Mueller R, Kim M, Rueschman M, Mobley D, Sahoo SS, Jayapandian CP, Cui L, Morrical MG, Surovec S, Zhang GQ R. S. Scaling up scientific discovery in sleep medicine: the national sleep research resource / R. S. Dean DA 2nd, Goldberger AL, Mueller R, Kim M, Rueschman M, Mobley D, Sahoo SS, Jayapandian CP, Cui L, Morrical MG, Surovec S, Zhang GQ // Sleep. — 2016. — Vol. 39, No. 5. — P. 1151–1164.41. Cooman T, Goovaerts G, Varon C, Widjaja D V. H. S. De Heart beat detection in multimodal data using signal recognition and beat location estimation. / V. H. S. De Cooman T, Goovaerts G, Varon C, Widjaja D. — State of Missouri : 2014.42. Danziger J, Chen KP, Lee J, Feng M, Mark RG, Celi LA M. K. Obesity, acute kidney injury, and mortality in critical illness / M. K. Danziger J, Chen KP, Lee J, Feng M, Mark RG, Celi LA // Crit Care Med. — 2016. — Vol. 44, No. 2. — P. 328–334.43. Chen KP, Cavender S, Lee J, Feng M, Mark RG, Celi LA, Mukamal KJ D. J. Peripheral edema, central venous pressure, and risk of aki in critical illness / D. J. Chen KP, Cavender S, Lee J, Feng M, Mark RG, Celi LA, Mukamal KJ // Clin J Am Soc Nephrol. — 2016. — Vol. 11, No. 4. — P. 602–608.44. Costa MD, Davis RB G. A. Heart rate fragmentation: a new approach to the analysis of cardiac interbeat interval dynamics / G. A. Costa MD, Davis RB // Front Physiol. — 2017. — P. 255.45. Costa MD, Davis RB G. A. Heart rate fragmentation: a symbolic dynamical approach / G. A. Costa MD, Davis RB // Front Physiol. — 2017. — P. 827.46. Chang J P. D. Evolution of extrema features reveals optimal stimuli for biological state transitions / P. D. Chang J // Sci Rep. — 2018. — Vol. 8, No. 1.47. Antink CH, Bruser C L. S. Computing in cardiology conference / L. S. Antink CH, Bruser C. — State of Missouri : CinC, 2014.48. Antink CH, Brüser C L. S. Detection of heart beats in multimodal data: a robust beat-to-beat interval estimation approach / L. S. Antink CH, Brüser C // Physiological Measurement. — 2015. — Vol. 36.49. Любанович Б. Простой python. современный стиль программирования / Б. Любанович. — Издательский дом ?Питер?, 2016. — 480 p.50. Наоми С. Python. экспресс-курс. 3-е изд. / С. Наоми. — Издательский дом ?Питер?, 2018. — 480 p.ДОДАТОК АА.1 Св?дотство про п?дтвердження публ?кац??А.2 Розм?щення публ?кац??А.3 Публ?кац?я?нформац?йн? технолог??УДК: 612.087Солодкий В?тал?й Петровичкафедра б?омедично? к?бернетикиНац?ональний техн?чний ун?верситет Укра?ни ?Ки?вський пол?техн?чний ?нститут ?мен? ?горя С?корського?СтудентSolodkyi Vitalii PetrovichDepartment of biomedical cyberneticsIgor Sikorsky Kyiv Polytechnic InstituteStudentПРОГРАМНИЙ ДОДАТОК ДЛЯ В?ЗУАЛ?ЗАЦ?? МЕДИЧНИХ ПОКАЗНИК?В ЗА РЕСУРСОМ PHYSIONET SYSTEM FOR THE VISUALIZATION OF MEDICAL INDICATORS WITH THE PHYSIONET RESOURCEАнотац?я – розгляда?ться проектування, розробка та результати роботи над програмним додатком, який працю? з банком даних PhysioNet. За його допомогою зд?йсню?ться зв'язок з ресурсом та ? можлив?сть в?зуал?зац??, зм?ни та анал?зу даних в режим? онлайн/оффлайн. Abstract – Design, development and results of work on a software application that works with the PhysioNet data bank is considered. It connects to the resource and provides the ability to visualize, modify and analyze data online / offline.Ключов? слова: медичн? дан?, PhysioNet, wfdb, pythonKey words: medical data, PhysioNet, wfdb, pythonВСТУПPhysioNet пропону? в?льний доступ через ?нтернет, до великих колекц?й записаних ф?з?олог?чних сигнал?в ? в?дпов?дного програмного забезпечення з в?дкритим вих?дним кодом. Сайт PhysioNet ? державною службою досл?дницького ресурсу PhysioNet для комплексних ф?з?олог?чних сигнал?в, що ф?нансу?ться Нац?ональним ?нститутом загальних медичних наук (NIGMS) ? Нац?ональним ?нститутом б?о?нженер?? (NIBIB) п?д номером NIR 2R01GM104987-09.[1; 2]Ресурс PhysioNet[3], створений у 1999 роц?, призначений для стимулювання поточних досл?джень ? нових досл?джень у вивченн? складних б?омедичних ? ф?з?олог?чних сигнал?в.Задач?, як? повинен виконувати додаток:Залежно в?д вибору користувача скачувати файли даних з ресурсу PhysiоNet за наявн?стю ?нтернет зв’язкуНадавати змогу користувачу вибирати необх?дн?, для анал?зу, файли в систем?В?дкривати та в?зуал?зувати ?х Давати змогу користувачу масштабувати та вид?ляти необх?дн? частини граф?куЗбер?гати потр?бн? частини граф?к?в в формат? .png, для наступно? роботи ПРОЕКТУВАННЯ СИСТЕМИВ рамках даного етапу потр?бно зд?йснити наступн? кроки:Оц?нку результат?в проведеного початкового анал?зу ? виявлених обмеженьПошук критичних д?лянок системиФормування остаточно? арх?тектури створювано? системиАнал?з необх?дност? використання програмних модул?в або готових р?шень на сторон?Проектування основних елемент?в продукту – модел? процес?в ? кодуВиб?р середовища програмування ? ?нструмент?в розробкиЗатвердження ?нтерфейсу програми, включаючи елементи граф?чного в?дображення данихЗа попередн?м анал?зом було перев?рено ?снуюч? прототипи заруб?жних розробник?в. [4; 5; 6; 7] Результатами яких було виявлено критичн? д?лянки продукту, розроблена блок-схема та обран? ресурси, для його створення.Система ма? дек?лька критичних м?сць, серед яких: Перев?рка наявност? ?нтернет зв'язкуРобота з правильним типом даних На основ? анал?зу було обрано 3 сторонн? б?бл?отеки, для розробки додатку. Б?бл?отека, для UI ?нтерфейсу – PyQT п’ято? верс??. Б?бл?отека, для в?зуал?зац?? даних – matplotlib. Б?бл?отека, для роботи з даними в формат? .edf та .csv розроблена ресурсом PhysioNet – wfdb.Блок-схема роботи додатку наведений у схем? нижче, рис. 1. Схема наведена в нотац?ях ун?версально? мови моделювання UML.Рис. 1 Блок-схема роботи продукту, розробка автораНа основ? анал?зу було обрано мову програмування Python та середовище Jupiter Notebook.Загальний ?нтерфейс програми наведена макет?, рис. 2.Рис. 2 Макет граф?чного в?кна, розробка автора СТВОРЕННЯ ПРОГРАМНОГО ДОДАТКУЕтап створення додатку проходив в середовищ? Jupiter Notebook за допомогою мови програмування Python верс?? 3. Основн? б?бл?отеки, як? були ?мпортован?:Wfdb – для роботами з файловими форматами .edf та .csvMatplotlib – для в?зуал?зац?? та побудови граф?к?в дата сет?вPyQT5 – для розробки UI ?нтерфейсуRequests – для зв’язку онлайн з ресурсом PhysioNetmatplotlib.backends.backend_qt5agg – для зв’язку механ?зму в?зуал?зац?? з б?бл?отекою UI для подальшо? роботи та ?нтеграц??Методи, як? були використан? та опис ?х функц?оналу наведений у таблиц? 1.Огляд метод?в, для розробкиТаблиця 1№НазваПризначення1QApplication?н?ц?ал?зац?я ?нтерфейсу2QFileDialog.getOpenFileNameСтвореня файлового д?алогу м? користувачем та системою3PlotCanvasСтворення област?, для поля в?зуал?затора4NavigationToolbar?нтегрування панел? ?нструмент?в5FigureCanvas?н?ц?ал?зац?я граф?чно? област? показу6requests.get(url)Доступ до файлу з ресурса 7wfdb.rdrecordОброблення сигналу з файлу8wfdb.plot.plot_wfdbПобудова граф?куРЕЗУЛЬТАТИ РОБОТИРезультатом розробки ? програмний додаток, скр?н-шоти якого представлен? нижче рис. 3 та рис. 4 Рис. 3 В?кно ?нтерфейсу, розробка автораНа даному рисунку розсташован? основн? елементи програми в?дпов?дно, до проектного макету. Вс? необх?дн? пункти та об'?кти – враховано.Рис. 4 Результат в?зуал?затора, розробка автораТакож, наведена use-case д?аграма програми, рис. 5.Рис. 5 Наведена Use-case д?аграмма, розробка автораВИСНОВОКПрограмний додаток в?дпов?да? поставленим проектним вимогам. Може в?зуал?зувати дан? записан? у файлах двох розширень .edf та .csv. Працю? з дата сетами в режим? онлайн/оффлайн. Нада? змогу користувачу вид?ляти та масштабувати сво? власн? д?лянки даних. Збер?гати д?лянки в формат? .png.Л?ТЕРАТУРА REFERENCESADDIN Mendeley Bibliography CSL_BIBLIOGRAPHY 1. Geovanini GR, Wang R, Weng J, Tracy R, Jenny NS, Goldberger AL, Costa MD, Liu Y, Libby P R. S. Elevations in neutrophils with obstructive sleep apnea: the multi-ethnic study of atherosclerosis (mesa) / R. S. Geovanini GR, Wang R, Weng J, Tracy R, Jenny NS, Goldberger AL, Costa MD, Liu Y, Libby P // Int J Cardiol. — 2018. — P. 318–323.2. Antink CH, Brüser C L. S. Detection of heart beats in multimodal data: a robust beat-to-beat interval estimation approach / L. S. Antink CH, Brüser C // Physiological Measurement. — 2015. — Vol. 36.3. Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PC, Mark RG, Mietus JE, Moody GB, Peng CK S. H. PhysioBank, physiotoolkit, and physionet: components of a new research resource for complex physiologic signals. / S. H. Goldberger AL, Amaral LAN, Glass L, Hausdorff JM, Ivanov PC, Mark RG, Mietus JE, Moody GB, Peng CK // Circulation. — 2000. — Vol. 101, No. 23. — P. 215–220.4. Antink CH, Bruser C L. S. Computing in cardiology conference / L. S. Antink CH, Bruser C. — State of Missouri : CinC, 2014.5. Chang J P. D. Evolution of extrema features reveals optimal stimuli for biological state transitions / P. D. Chang J // Sci Rep. — 2018. — Vol. 8, No. 1.6. Clifford G, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D M. R. Reducing false arrhythmia alarms in the icu / M. R. Clifford G, Silva I, Moody B, Li Q, Kella D, Shahin A, Kooistra T, Perry D. — 2015.7. Clifford GD, Silva I, Moody B, Li Q, Kella D, Chahin A, Kooistra T, Perry D M. R. False alarm reduction in critical care / M. R. Clifford GD, Silva I, Moody B, Li Q, Kella D, Chahin A, Kooistra T, Perry D // Physiol Meas. — 2016. — Vol. 37, No. 8. — P. 5–23. ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download