Android API для Challenge 2011

Початковий джерело: https://physionet.nlm.nih.gov/challenge/2011/api/

Android API для PhysioNet / CinC Challenge 2011

Якщо ви зацікавлені в змаганнях у подіях 2 та 3, ви можете завантажити останню версію API з посиланням нижче. Цей пакет включає в себе зразок реалізації дуже простих алгоритмів якості ЕКГ у файлі під назвою ChallengeEntry.java , для цілей тестування установки та для відправної точки розробника. Невеликий набір даних (імітаційний набір даних) поєднується з API, що дозволяє працювати як окрема програма для Android. Конкуренти можуть вдосконалювати алгоритм або створювати свої власні. Для того, щоб почати змінювати код, потрібні лише базові знання програмування.

Останні API

Примітка:

* Перш ніж встановлювати новий API, переконайтеся, що запис створено в іншому місці.

Нові можливості

  • Підтримка реєстрації (виведення результатів, включаючи час виконання, до текстового файлу в каталозі root / sdcard )
  • Читає інформацію про метадані (тобто вік та стать суб’єкта)
  • Дані зберігаються у двійковому форматі (один короткий масив)

Автономні рамки розробки Java

Необов’язковий альтернативний фреймворк може бути використаний для розробки і тестування коду для подій 2 і 3. Ця структура дозволяє ChallengeEntry.java виконуватися в межах окремої Java-програми, а не в межах програми Android. Якщо код виклику ChallengeEntry.java виконується в окремій рамці Java, він також повинен працювати в рамках API API, який використовується для запису подій 2 і 3. Автономна структура спрощує процес збору файлу журналу, який буде надіслано разом з вашим кодом, для документування його продуктивності.

Детальнішу інформацію див. На окремій сторінці розробки Java .

Сумісні дані API

  • Android-set-a.zip (дані навчання: 1000 ЕКГ в 20 партіях по 50 ЕКГ кожен)
  • Android-set-b.zip (тестові дані для подій 1 і 2: 500 ЕКГ у 10 партіях по 50 ЕКГ кожен)
  • Набори-a + b.zip (множини A і B: усі 1500 ЕКГ в одній партії)

Перші два zip-файли містять партії по 50 ЕКГ, зручний розмір (розпакований, близько 6 Мб на партію) для використання в телефоні або емуляторі Android. Кожна партія складається з двох каталогів з ім’ям raw і xml , які містять двійкові ЕКГ і метадані XML відповідно.

Третій zip-файл містить всі ті ж двійкові ЕКГ і метадані XML, що й у перших двох, але розташовані в одному пакеті. Це підходить для використання з автономним Java- середовищем розробки в середовищах з достатньою кількістю доступного сховища (розпакований, для цього потрібно 182 МБ).

Запуск нового пакету в API

  • Перейдіть до каталогу робочого середовища проекту Eclipse і видаліть каталоги / raw і / xml у каталозі / res (наприклад, видаліть директорії / робочу область / PhysioNet2011_Challenge / res / raw і / workspace / PhysioNet2011_Challenge / res / xml
  • Скопіюйте та вставте каталоги / raw та / xml з будь-якої з пакетів у вказану вище / res
  • Очистіть проект в Eclipse, перейшовши до: Project → Clean
  • Оновити проект в Eclipse, клацнувши правою кнопкою миші на проекті і вибравши Refresh

Тепер ви повинні мати змогу працювати з новим набором даних.

Отримання вихідного файлу з результатами

Щоб отримати вихідний файл журналу з результатами моделювання, виконайте такі дії (якщо ви виконуєте пакет 6 з набору B, set-b-p6 , для цього прикладу):

  1. Замініть відповідні / сирі та xml каталоги, як згадано вище
  2. Запустіть моделювання до завершення. Це генеруватиме файл файлу журналу ECG_LOG_ecgheader_set-X _p Z , де X – ім’я набору, а Z – номер партії (починаючи з 0). Так що в нашому прикладі файл буде називатися ECG_LOG_ecgheader_set-b_p6.txt
  3. Збережіть файл на комп’ютері за допомогою Eclipse: перейдіть до точки зору DDMS в Eclipse. Використовуючи вікно переглядача файлів з цієї точки зору, файл ECG_LOG_ecgheader_set-b_p6.txtповинен розташовуватися поверх кореневого каталогу / sdcard .
  4. Виберіть файл і скористайтеся піктограмою ” Отримати файл (диск)” у верхньому правому куті, щоб зберегти текстовий файл на комп’ютері.

Крім того, якщо ви працюєте на стільниковому телефоні, ви також можете підключити телефон через USB до комп’ютера і отримати доступ до файлу через стандартний браузер файлів після завершення моделювання.

Примітка:

* Новий API записує файл журналу з результатами в каталог root / sdcard , тому програма Android запитує дозвіл WRITE_EXTERNAL_STORAGE .

Старі API

Налаштування API для розробки та розгортання

Щоб інсталювати API як окремий пакет Android у емуляторі Android у вашому комп’ютері або на стільниковому телефоні, виконайте наведені нижче дії.

  1. З Sana’s Installing Tools [сторінка відкривається в іншій вкладці або вікні] дотримуйтесь інструкцій для встановлення Eclipse і Android Tools (кроки 1.1, 4.1-4.5).
  2. Завантажте останню версію API PhysioNet / CINC 2011 у верхній частині цієї сторінки (не розпаковуйте її)
  3. З Eclipse виконайте такі дії:
    1. Виберіть Файл → Імпортувати → Існуючі проекти в робочу область і натисніть кнопку Далі
    2. Позначте Вибрати файл архіву та знайдіть завантажений файл zip-файлу PhysioNet / CINC 2011 і натисніть Вибрати все
    3. Натисніть кнопку ” Готово ” внизу, і це створить проект Eclipse з назвою PhysioNet2011_Challenge
  4. Переконайтеся, що все завершено, запустивши проект як додаток для Android на емуляторі: Запустити → Запустити як → Програма для Android (виберіть запит емулятора VM). Емулятор і додаток займуть кілька хвилин. Будь ласка, будьте терплячі.

Зміна та надсилання запису

Конкуренти повинні лише змінювати та подавати файл ChallengeEntry.java, розташований у вашому проекті за адресою: PhysioNet2011_Challenge → src → org.physionet.challenge2011 . Зверніть увагу, що ChallengeEntry.java вже реалізує дуже простий алгоритм виявлення піку. Вам доведеться або покращити алгоритм, або створити новий з наступними правилами:

  • Ваша заявка повинна мати таку саму підпис, як ChallengeEntry.java : вона повинна мати вхідний потік і виводити ціле число від -9 до 0, що представляє хороший якісний сигнал, або від 1 до 10 для позначення сигналу ЕКГ поганої якості. Ваш код може виводити лише 0 (прийнятні) і 1 (неприйнятні) значення, але вам рекомендується використовувати весь діапазон вихідних значень для позначення діапазону оцінок якості; якщо ви це зробите, ми повернемо робочу криву приймача, що документує продуктивність вашого подання, оскільки поріг між прийнятним і неприйнятним варіюється в межах від -9 до 10.
  • Не видаляйте IOException . Якщо під час запуску будь-якого з тестових файлів ЕКГ, що входять до складу Емулятора Android (Android 2.1-update1, API 7), ваш анонс зависає / зависає, він не буде зарахований!
  • Вам дозволяється використовувати потоки.
  • Ви не можете використовувати системні виклики. Будь-яке подання, яке зробить це, буде дискваліфіковано.
  • Вам не дозволяється імпортувати будь-які додаткові бібліотеки / пакети (крім стандартної бібліотеки математики, як зазначено в API). Якщо ви хочете, щоб ми включили бібліотеку / пакет, зв’яжіться з нами, і ми розглянемо ваш запит.
  • Доступ до файлів даних можна отримати лише через потік вхідного файлу.
  • Ваша заявка повинна приймати щонайменше 10 секунд даних. Майте на увазі, що деякі файли можуть займати кілька секунд (ви можете використовувати будь-які додаткові зразки).

Вкажіть своє ім’я та дані членів вашої команди та контактну інформацію за тиждень з 5 по 12 серпня в коментарі біля початку файлу ChallengeEntry.java .

Коли ви готові надіслати свій код, виконайте описану вище процедуру, щоб отримати вихідний файл журналу. (Якщо бажаєте, ви можете створити повний набір файлів вихідних журналів і об’єднати їх, щоб отримати повний файл результатів у тому ж форматі, що й для записів 1). подано разом з вашим файлом ChallengeEntry.java . Ми порівнюватимемо отримані результати під час виконання коду з тими, які ви надіслали, щоб переконатися, що ваш код працює так, як ви хотіли на наш довідковий телефон. Якщо існує невідповідність, або якщо ваш код не запущено, ми спробуємо зв’язатися з вами, використовуючи контактну інформацію у вашому коді.

На сторінці учасника виклику (доступної за допомогою входу в PhysioNetWorks і натискання кнопки Оглядправоруч від проекту PhysioNet / CinC Challenge 2011 ) наведено інструкції та форму для подання коду та файлів результатів. Ви можете уявити і переглянути свій захід 2 і 3 запис в будь-який час до остаточного терміну полудня за Гринвічем в п’ятницю, 5 серпня 2011 р Відзначимо, однак, що кожна вистава замінює всі попередні уявлення, і тільки остаточне уявлення , зроблене до закінчення терміну буде бути забито. Ваші бали і ранг у кожному з подій 2 і 3 будуть розміщені на цій сторінці, як тільки вони стануть доступними (через кілька днів після останнього кінцевого терміну в 12:00 GMT у п’ятницю, 5 серпня 2011 року).

Метадані пацієнта

Наступні метадані пацієнта доступні під час виконання через об’єкт ECG_MetaData :

  • секс (символ): [0 (за замовчуванням), F, M]
  • вік (короткий): -1 (за умовчанням)
  • електрод (рядок): [нульовий (за замовчуванням), одноразові , присоски ]
  • sampling_frequency (float): 500 (постійна)
  • number_of_leads (короткий): 12 (постійна)
  • ch_labels (String): I, II, III, aVR, aVF, aVL, V1, V2, V3, V4, V5, V6 (постійна)

Для цілей цієї задачі можна припустити, що виправлені вибірки sampling_frequency , number_of_leads і ch_labels .

ПРИМІТКА. Значення за замовчуванням, визначені вище, надаються в об’єкті ECG_MetaData, коли відповідні метадані недоступні для даного запису.