Для розробників

Дані про ліки для ШІ-агентів: як кодувати ліки за допомогою АТС та зберігати їх у FHIR для використання моделлю

Як розробники мають обирати базу даних ліків для ШІ-агента: що дають коди АТС, що охоплює пакетна підмножина термінології та чого вона не охоплює (відсутність взаємодій), як структуровані MedicationStatement та MedicationAdministration, і як агент читає та пропонує ліки через платформу Anpheros.

від Опубліковано 3 хв читання

Коди перш за все: ATC

Анатомічна терапевтична хімічна класифікація ВООЗ присвоює кожному активному речовині код, організований за тим, на що він діє, і що він робить: C09AA02 — це еналаприл (C — серцево-судинні, C09 — ренін-ангіотензин, C09AA — інгібітори АПФ). ATC є безкоштовним, міжнародним і стабільним, тому Anpheros кодує кожні ліки за ним. Назва продукту залишається в code.text, тому людина все ще бачить "Nolvadex", а агент бачить L02BA01.

Чого ATC не надає: форми випуску, розміри упаковки, національні ідентифікатори продуктів, ціни або взаємодії. Це специфічно для країни та часто ліцензовано. Агенту, якому вони потрібні, потрібне друге джерело.

Що надає платформа

  • Зібраний підмножина ATC для пошуку, достатня для ліків, які люди в Європі фактично приймають, з відображуваними іменами, доступна для пошуку за адресою GET /v1/terminology/atc?q= та за кодом за адресою GET /v1/terminology/atc/{code}. Та сама підмножина підтримує інструмент MCP lookup_code. Код поза підмножиною все ще може бути використаний у ресурсі; пошук просто не матиме для нього відображення.
  • Зібраний підмножина LOINC для вимірювань та лабораторних результатів, з тими ж кінцевими точками під /v1/terminology/loinc.
  • FHIR-ресурси з правильною структурою: MedicationStatement для плану лікування (що людина приймає, з якого часу, як часто), MedicationAdministration для кожної прийнятої дози, пов'язаної з цим твердженням, Immunization з кодами вакцин ATC J07, та AllergyIntolerance з ATC для алергій на ліки.

Що платформа не надає: повну базу даних ліків, перевірку взаємодій, перевірку діапазону доз або підтримку клінічних рішень. Це свідомо поза межами, оскільки це зробило б платформу медичним пристроєм. Якщо вашому агенту вони потрібні, використовуйте ліцензовану службу та збережіть платформу як запис.

Як агент читає ліки

API контексту повертає активні ліки з їхнім кодом ATC, текстом, дозуванням та походженням (хто ввів: пацієнт, практикуючий лікар, імпорт), в межах бюджету токенів, тому модель бачить чистий список, а не купу ресурсів. Через MCP те саме — get_patient_context, а search_fhir з MedicationStatement?patient=…&status=active надає сирі ресурси.

curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $TOKEN"

Як агент записує ліки

Він не записує, він пропонує. MedicationStatement, надісланий додатком, зареєстрованим як AI-агент, за згодою особи, перевіряється та зберігається як пропозиція. Людина бачить "Помічник X хоче додати тамоксифен 20 мг щодня", приймає або відхиляє, і лише прийнята пропозиція потрапляє до запису, позначена як написана AI. Агент повинен надсилати код ATC, коли він впевнений, і завжди назву продукту в code.text; текстовий варіант, який можна читати людиною, без коду, все ще приймається і може бути закодований пізніше.

Перед надсиланням validate_fhir_resource (або POST /fhir/R4/MedicationStatement/$validate) повідомляє агенту, чи є ресурс добре сформованим, тому людину ніколи не просять схвалити щось некоректне.

Вибір другого джерела, якщо воно вам потрібне

Якщо агент повинен відповісти "чи взаємодіє це з тим", виберіть джерело за країною (дані про взаємодії та ідентифікатори продуктів відрізняються) та за ліцензією (більшість є комерційними). Зберігайте результат як власну анотацію, а не як ресурс у записі особи, якщо тільки клініцист не підтвердить його. Запис повинен містити те, що було прийнято; рівень порад — ваш.

Поширені запитання

Чи є у Anpheros повна база даних ліків?

Ні. Вона має зібрану підмножину ATC для кодування та пошуку, і зберігає ліки як FHIR-ресурси з кодами ATC. Взаємодії, перевірки доз та національні каталоги продуктів не включені.

Чому ATC, а не RxNorm чи національний список?

ATC є міжнародним і безкоштовним, що важливо для запису, який супроводжує людину через кордони. RxNorm зосереджений на США; національні списки зупиняються на кордоні. Додаток може додати друге кодування (наприклад, національний код продукту) поруч з кодом ATC на тому ж ресурсі.

Чи може агент додати ліки до запису особи?

Тільки як пропозицію, яку особа схвалює. Ніщо, надіслане AI-агентом, не застосовується без цього схвалення.

Як агент дізнається, хто ввів ліки?

Кожен елемент в API контексту містить author_type та джерело, а кожен ресурс має Provenance. Ліки, введені практикуючим лікарем, і ті, що введені пацієнтом, виглядають по-різному для моделі, що й є суттю.

Чи є безкоштовний спосіб спробувати це?

Так: пісочниця є безкоштовною, а її 30 синтетичних пацієнтів мають реалістичні ліки з кодами ATC. Дивіться Безкоштовний FHIR-сервер: пісочниця.

Цей посібник призначений для інформаційних цілей і не замінює медичну консультацію. Для прийняття рішень щодо вашого здоров'я зверніться до лікаря. У разі надзвичайної ситуації телефонуйте 112.
Про автора
Adrian Kereky

Founder of Anpheros. An electronics engineer, he spent six years in autonomous driving, on automotive projects run in partnership with Samsung and NVIDIA, designing the architecture of driver-assistance and AI systems that run on NVIDIA chips with CUDA. He then built Anpheros: the patient-controlled medical record and the HL7 FHIR R4 platform it runs on.

Більше про Anpheros та автора →

Тримайте свою медичну карту завжди з собою

Anpheros Daily зберігає симптоми, результати аналізів, ліки та документи в одному місці, у стандартному форматі, під вашим контролем. Базовий план безкоштовний.

Отримати Anpheros Daily