Як Golang та Flutter покращують стоматологічну медицину
Привіт! Мене звати Еміля Аджисалієва, я Program Manager в Luxoft. Сьогодні я хочу поговорити про звʼязок між медициною та ІТ.
Сучасна медицина зазнає суттєвих змін разом з розвитком технологій. Як і в інших сферах, розробляються різноманітні датчики та застосунки, над якими працюють ІТ-спеціалісти.
Щорічно в США встановлюють приблизно 2,5 млн стоматологічних імплантів. Це стає можливим завдяки використанню програм та обладнання, що створюють досконалі моделі ротової порожнини. І хоча вже зараз важко уявити роботу стоматологів без необхідного ПО, ще багато напрямів можуть стати ефективнішими завдяки технологіям.
Пропоную розібратись, що привносять в розробку мова Golang та фреймворк Flutter, які їхні особливості та як ми з командою використовуємо поєднання цих інструментів в стоматологічній медицині.
Програмування в медичній сфері
Цифровізація вже давно стала невіддільною частиною гарної організації процесу лікування та відстеження перебігу хвороби. Зараз експерти з Precedence Research прогнозують значний ріст світового ринку інформаційних систем охорони здоров’я, який може досягти обʼєму приблизно 528,5 мільярдів доларів США у 2030 році.
Це вказує на ріст ніші на 7,8% з 2022 до 2030 роки. Уряди різних країн активно впроваджують інноваційні підходи, розвивають нові технології й намагаються цифровізувати сферу охорони здоров’я, аби задовольняти потреби пацієнтів якісніше, а також знайти значно ефективніші рішення для лікування.
Медична галузь суворо регульована, особливо зі сторони забезпечення конфіденційності даних пацієнтів, тому більшість створених програмних забезпечень додатково проходять тести на відповідність стандартам. У цій сфері здебільшого використовують вісім основних мов програмування, виходячи із сильних сторін і можливостей кожної.
- Python — використовується в різних медичних застосунках для аналізу даних, машинного навчання та розвитку технологій штучного інтелекту.
- Java — використовується під час розробки інформаційних систем охорони здоров’я, застосунків для управління лікарнями та систем електронних медичних записів (EHR).
- C++ — використовується в програмах медичної візуалізації та системах реального часу, де продуктивність є критично важливою, а також під час розробки програмного забезпечення для медичного обладнання та вбудованих систем.
- JavaScript — разом з такими фреймворками як Node.js використовується для розробки вебзастосунків у секторі охорони здоров’я.
- C# — використовується під час розробки медичних застосунків і програмного забезпечення на базі Microsoft.
- R — використовується в медичних дослідженнях і клінічних випробуваннях для статистичного аналізу та візуалізації даних.
- SQL — використовується в системах електронних медичних записів, системах управління лікарнями та різних медичних програмах для ефективного пошуку та зберігання даних.
- Ruby — використовується під час розробки різноманітних програмних рішень, які покращують ефективність та якість надання послуг. До таких належать: системи електронних медичних карток, аналіз медичних даних, віддалені медичні консультації та інші.
Але кожна з цих мов має свої недоліки, як-от кволість у певних обчислювальних завданнях для Python, труднощі з кросплатформеністю на C# чи повільніша розробка через ручне керування памʼяттю на C++.
Саме це і стало приводом для пошуку мов програмування, що краще б відповідали потребам медичної галузі. Надійні протоколи шифрування даних, вбудовані механізми аутентифікації, стабільність, ефективне управління памʼяттю, легка інтегрованість до інших систем, підтримка стандартних форматів даних та наявність можливості масштабуватись — це все про ідеальну мову програмування для медичної сфери, якої, звісно, поки не існує.
Як і в будь-якій іншій галузі, вибір мови залежить від конкретних вимог і варіантів використання проєктів, але у нашому випадку поєднання Golang (Go) та Flutter дає чудовий результат.
Огляд мови Golang та фреймворку Flutter
Golang (Go) була розроблена компанією Google та вперше випущена у 2009 році. Вона є необхідною в різних операційних системах і фреймворках для розробки вебзастосунків, хмарних і мережевих сервісів та інших типів програмного забезпечення. Основна увага приділяється простоті та безпеці. Популярність мови стрімко зростає, її вже використовують Google, Cloudflare, Dropbox, MongoDB, Netflix, SoundCloud, Twitch, Uber та інші відомі компанії.
Go має ряд переваг, що вирізняє її серед інших мов програмування. Насамперед вона переводиться у машинний код, що забезпечує високу продуктивність та ефективність, має вбудовані механізми для паралельної обробки даних, що дають змогу займатися розробкою масштабних застосунків та опрацьовувати великі масиви інформації. Мова має високу надійність коштом потужної бібліотеки стандартів безпеки, а також сприяє уникненню помилок завдяки своїй простоті.
У Go реалізовано сувору статичну типізацію, яка допомагає виявляти помилки під час компіляції та забезпечує безпеку типів, підвищуючи надійність коду, а функція Garbage collector (автоматичне збирання сміття), спрощує керування пам’яттю та знижує ризик витоку пам’яті в застосунках.
Golang приваблива ще й завдяки своїй кросплатформеності: розробка можлива для Linux, macOS, Windows і FreeBSD. Також плюсом є спільнота та екосистема розробників, які мають можливість оновлювати та користуватися бібліотекою даних.
Простий і зрозумілий синтаксис Golang значно полегшує написання коду і дозволяє вивчити її відносно швидко: процес навчання до середнього рівня займає близько
Наразі спеціалісти, що працюють з Go, мають попит, особливо у сфері охорони здоровʼя. Хоча мова є «невідомою» у порівнянні з іншими, багато світових компаній з кожним роком активніше використовують її та шукають розробників.
З власного досвіду можу сказати, що рівень підготовленості українських спеціалістів, що працюють з Go, в рази перевершує навички колег з Європи, що, з одного боку, приємно, а з іншого — створює голод на західному ринку серед програмістів, які працюють з Go.
Flutter, у свою чергу, був створений та запущений за підтримки Google у 2018 році. Це кросплатформенний фреймворк, який підходить для розробки мобільних застосунків та вебплатформ. Інструмент підтримує різні типи програмного забезпечення, що містять як Android, так і iOS, — це значно скорочує час і витрати на розробку.
Flutter пропонує велику кількість готових компонентів та віджетів, які можна використовувати для візуально привабливого інтерфейсу. Однією з переваг є наявність функції Hot Reload, що дозволяє розробникам бачити зміни в режимі реального часу без необхідності перезавантаження програми.
До того ж у фреймворку відкритий вихідний код, що дає змогу розробникам зробити вклад у розвиток інструменту. Flutter, як і Go, має свою екосистему та спільноту, що відкриває доступ до великої кількості ресурсів і бібліотек.
Наразі фреймворк перебуває на етапі активного розвитку та набирає обертів. У березні 2021 року був випущений Flutter 2. Тоді лише у Play Store було більше ніж 150 тис. застосунків, створених за допомогою Flutter. Уже за 2 роки, у травні 2023, кількість сягала більше ніж 1 млн застосунків. Широко відомі Google Pay, Etsy, Groupon, SpaceX app та Google Ads розроблені саме під час використання фреймворку Flutter.
Порівняно з мовою Go, Flutter значно поширеніший за кількістю спеціалістів на ринку. Якщо у вас є досвід роботи з JavaScript або TypeScript, особливо для веброзробки, перехід на Flutter може відбутися легше, оскільки архітектура Flutter на основі віджетів і концепції реактивного програмування мають подібність із сучасними середовищами JavaScript, як-от React.
Також перехід на Flutter буде легший для розробників, які мають досвід роботи зі Swift (оскільки Flutter запозичує його шаблони проєктування).
Поєднання Golang та Flutter у стоматологічній медицині
Під час вибору технологій та підходів до розробки платформ у сфері медицини ми орієнтуємось на майбутні цілі: переведення функціонала на мобільні застосунки, потенційні потреби клієнтів та можливість підтримки різних програмних забезпечень.
З мого досвіду, однією з найпоширеніших звʼязок в галузі медицини є поєднання Java на Back-end та React на Front-end. У нашому ж випадку ефективним є використання Flutter та Golang. Останній замінив С++ через технічні обмеження на етапі переміщення розробки проєктів у хмарні сховища.
Таке поєднання дозволяє легко масштабуватися, обробляти великі масиви даних, а віджети Flutter візуально привабливі та легко піддаються адаптації. З технічної точки зору Golang використовується для серверних платформ, що зберігають та обробляють дані про пацієнта, тоді як Flutter відповідає за візуальну складову розробки платформ та необхідний для створення зручних застосунків, наприклад, для запису на прийом, планування лікування або обміну інформацією з медичними працівниками.
Одним з прикладів поєднання Golang + Flutter слугує вебзастосунок, у розробці якого ми брали участь. Він дозволяє зберігати знімки та інші клінічні дані пацієнтів з можливістю для лікарів додавати і ділитися замітками з іншими користувачами. Також застосунок дає змогу записувати пацієнтів на прийоми й у разі потреби, надсилати нагадування про візит чи необхідність провести процедури.
Ця цифрова «прийомна-картотека» дозволяє значно покращити клієнтський досвід пацієнта, позбавивши його потреби зайвий раз телефонувати в клініку та уточнювати дані.
Інший застосунок, створений за допомогою поєднання Golang + Flutter, над яким ми працювали разом з колегами, — це проєкт з впровадження серверної служби, яка на основі 3D-знімків порожнини рота з нуля забезпечує моделювання кінцевого вирівнювання зубів. Рішення дозволяє пацієнтам і лікарям побачити результати моделювання зубів пацієнта до того, як лікар справді змінить їх. Завдяки цьому можна поетапно спостерігати лікування і коригувати його, відштовхуючись від створеної моделі.
Golang і Flutter можуть стати сильною та ефективною комбінацією для розробки медичних застосунків, зокрема пов’язаних зі стоматологією. Однак те, чи вважається ця комбінація «ідеальним» або «найкращим» рішенням, залежить від різних чинників, зокрема від конкретних вимогами медичного застосування та цілей проєкту.
Висновки
Потенційні варіанти застосування Golang і Flutter у стоматології та інших сферах необмежені: Flutter чудово впорається з будь-якими завданнями, що стосуються зовнішнього інтерфейсу. Golang допоможе обробити логіку управління даними, впровадити керування автоматичними системами нагадувань та проаналізувати й обчислити будь-які обʼєми файлів з найвищою ефективністю.
Обирати кожен ладен сам, і тепер ви маєте в скарбничці ще одну чудово звʼязку. Сподіваюсь, у майбутньому вона внесе користь у розвиток вашого проєкту.
34 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів