Обсуждение профилей FHIR: идентификаторы, Bundle/Composition и примеры

28:183 speakers
28:01
duration
12
chapters
3
speakers
7
Terms
FHIRидентификаторыBundle vs Compositionмаппингпримерыамбулаторная консультациялабораторные исследованияИИ/конференция

Speakers

3
Speaker A56%39 turns
Speaker B38%31 turns
Speaker C6%12 turns

Key ideas

6
  • Добавлены дискриминаторы по типу ресурса — теперь идентификаторы зависят от type/slicing.
  • В профили включены новые типы идентификаторов и примеры (взяты из лабораторной спецификации).
  • Bundle рассматривают как технологический контейнер; сутевые идентификаторы предпочтительнее помещать в Composition.
  • Для Bundle с кардинальностью 0..1 нельзя описать срез (slicing) стандартным способом — требуется специальная обработка.
  • Нецелесообразно на данном этапе массово генерировать дополнительные примеры без реальных кейсов.

Key highlights

6
  • Реализация дискриминаторов по типу ресурса изменила подход к идентификаторам.
  • Найдено практическое решение: держать технологические идентификаторы на Bundle, сутевые — в Composition.
  • Примеры для идентификаторов минималистичны и основаны на лабораторной спецификации.
  • Обсуждён план попробовать автономный маппинг на рукор с использованием агента.
  • Георгий С. Лебедев предварительно рассматривает файл ГОСТ и может прислать мысли в конце недели.

Decisions

4
  • Добавить дискриминаторы по типу ресурса — идентификаторы должны определяться через type/slicing.
  • Оставлять технологические идентификаторы на Bundle, а сутевые идентификаторы — в Composition (гипотеза для проверки).
  • Пока включать в набор примеров только лабораторные примеры; не расширять примеры без реальных кейсов.
  • Попробовать маппинг амбулаторной консультации (Encounter + Composition) как отдельную задачу и использовать агента для первого этапа.

Action items

2
  • Провести эксперимент с автономным маппингом на рукор с использованием агента и показать результат на следующей встречеЕвгений
  • Прислать замечания/мысли по файлу ГОСТГеоргий Станиславович Лебедев · в конце этой недели

Terms

7
Bundle — в FHIR — контейнер (группа ресурсов); здесь рассматривается как технологический контейнер, в котором можно хранить технические идентификаторы.
Composition — ресурс FHIR для объединения клинической документации; рекомендуется держать в нём сутевые (основные) идентификаторы документов.
Encounter (энкаунтер) — событие взаимодействия пациента с системой здравоохранения; может быть частью Composition при моделировании консультации.
Slicing / дискриминатор (slicing/discriminator) — механизм профилирования FHIR для разделения повторяющихся элементов по критериям типа/атрибута.
Invariant — правило/ограничение в профиле, которое должно соблюдаться (например, конкретный путь до идентификатора).

Main content

12 chapters · 28:01
6:29

1. Введение и цели встречи

Speaker A6:29

Так, Олег, приветствую. Как слышно?

Speaker B6:31

Евгений, добрый день. Прошу прощения, задержали на другой встрече. Так,

Speaker A6:41

Давайте обменяемся результатами и наметим, что дальше. Давайте я начну, если вы не против.

Speaker B6:51

Конечно.

Speaker A6:57

Ну, вроде завершился очередной цикл по работе.

Speaker C7:19

с идентификаторами

Speaker A7:25

Для сам там на мне висело несколько задач взаимозвездных. Теперь они реализовались вот так. Вот список идентификаторов, которые мы включили для Send. Вот здесь все, что можно, вроде бы оно включилось.

Создан кодэсистем. Типы идентификатор в него в итоге попали: снился, нн, и документы дикарючую, сыграющую личность, и поли сумас, и наши доп идентификаторы для центов.

Почему теперь так вышло? Точнее, почему раньше можно было без этого обойтись, и теперь так вышло? Потому что раньше мы не делали дискриминатор по типу у пациента. Дискриминаторы были прямо по системе, мы таким образом могли определять, что.

Speaker B8:37

Здесь обсуждали в прошлый раз. Да, да.

8:41

2. Идентификаторы и кодовые системы

Speaker A8:41

Да, теперь получается, что поскольку систем заранее неизвестен, то не проходит. Выяснилось, что нельзя одни определять по одному критерию, другие по другому критерию. Всегда один на слайсинг, и тогда это type. И тогда приходится добавить. Вот это сделал, теперь как это выглядит в профилях. Вот у бандла, ну добавлен бандл, и вот у него есть идентификатор.

Speaker C9:16

Так а почему здесь?

Speaker A9:27

А, это особый случай. Это особый случай. Значит, давайте мы по-другому чуть-чуть. У пациента вот так выглядит идентификатор, фишкод определен, снился nn и так далее. И сделан инвариант. В нем теперь, кроме отсылки просто на sent, указано конкретно. Вот и он проверяет конкретный путь до этого самого региона много раз. То

Speaker B10:05

Что обсуждали? Что условно формулочный фасед, он будет у всех константный, не сменят на уровне Миндрава или на уровне вообще российской версии, российской ветки. Ойт, да, например, так.

Speaker A10:25

Вот аналогично устроен энкаунтер. У него теперь вот есть идентификатор энкаунтера в МЕСЕ, стационарного случая, амбулаторного случая. Соответственно, внизу определены соответствующие варианты. Вот и композиция. У композиции, да, у них все вот эти срезы с 0, 1.

Speaker C11:00

Как мы с вами решили, но вот.

Speaker A11:04

И он, вот он определен, он открытый. Здесь аналогично, и особый случай — это бандл, потому что у него сам идентификатор единственный, его кардинальность 0, 1, и fire не разрешает нарезку для такого рода атрибутов.

Поэтому описать это как срез невозможно, но можно сделать ровно то же самое. То есть описать, что в случае, если дело такой условный инвариант, что если это в данном случае система, наверное, вот такая.

Speaker C11:44

То... Сейчас, где же это теперь тут написано?

Speaker A11:50

Где наш инвариант?

11:59

3. Инварианты и модель Bundle/Composition

Speaker B11:59

Я думаю, они там чуть ниже должны быть, вот в ограничении. Но здесь у меня вот он, вот он, вот он, вот Евгений. У меня может быть позднее зажигание, но как будто бы вот эта система для идентификаторов экземпляров документов, как бы ей не нужно быть в Composition, потому что идентификатор бандла, он неспроста сведен из массива к единичному, потому что он должен быть скорее технологическим.

Вот это бы надо проверить, и тогда возможно, что у нас там бандл типа документ, а вот с технологическим идентификатором, а первый ресурс composition в его составе, который должен быть для бандла типа документа обязательно там первым, должен содержать вот этот идентификатор.

Speaker A13:02

Причем оба. Да, причем оба.

Speaker B13:06

Возможно, вот. Возможно, в прошлый раз я до этого не додумался, а сейчас мне вот прям как будто бы синего не надо проверить. Есть вот такая хорошая, хорошая гипотеза. Хорошая.

Speaker A13:22

Просто, если мы моделируем документ, композиция нам, а бандал — это технический контейнер, то надо.

Speaker C13:33

Сделать, как вы говорите, понял.

Speaker A13:41

Задачу я ищу ее по. Но по умолчанию, если ничто не будет противоречить, я перенесу.

Speaker B13:49

Мне кажется, все-таки бандл как технологический контейнер для группы связанных ресурсов, и поэтому сутевые идентификаторы действительно надо погружать в композицию, а на бандле оставлять только технологические, которые в конкретных фаер-серверах и реализациях взаимодействия могут быть сделаны участниками или разработчиками.

Speaker A14:16

Да, звучит логично. Спасибо. Так, и последний тогда раздел той задачи был связан с примерами, которые я в прошлый раз не нашел. Значит, он действительно погрузил их в общий список примеров. И вот они есть. Они для всех этих идентификаторов сделаны по примеру. Они все взяты из лабораторки. Из лабораторной спецификации. И выглядят вот так. Он минимальный. И он включает только примеры оттуда. Вот какой-то вывью.

Speaker C14:54

Все. Хотим.

15:06

4. Примеры и расширение набора примеров (амбулаторная консультация)

Speaker B15:06

Ли мы развивать, давать дополнительные примеры из не лабораторного домена, например?

Speaker A15:14

Я сейчас не вижу, честно говоря, оснований. Просто раздувать ру-код. Ну, потому что абстрактно, теоретически, можно понасоздавать примерно все сочетания, или как угодно.

И кажется, что задачи на такие примеры должна давать реальная жизнь. Как только мы столкнемся с каким-то полезным примером, наш ответ, как в этой ситуации делать, мы можем разместить в рукоре.

Speaker B15:56

Так, вот у нас есть амбулаторный случай на примере лабораторного исследования. Может быть, дополнить его примером амбулаторной консультации хотя бы? Ну, как самый массовый. Как двух самых массовых медицинских услуг.

Speaker A16:17

Это, конечно, можно сделать. Давайте посмотрим, например, сейчас.

Speaker C16:28

Сейчас мы его вот.

Speaker A16:30

У нас экземпляры.

Speaker C16:51

пример

Speaker A16:56

А тут у нас амбулаторный случай, который был использован в протоколе. То есть сейчас вы имеете в виду, что нам нужен пример чего? Encounter, он же пример и не консультация как таковой. Консультация представляет собой набор ресурсов. Там есть, например, Encounter. Или вы хотите смоделировать здесь прям большую структуру?

Speaker B17:29

Ну вот, как будто бы пользы практической от смоделированного протокола консультации мы небольшим усилием можем нанести много. То есть, как будто бы само усилие небольшое, то есть скормить агенту руководство по send-у, протокол консультации с примерами и сказать: "А теперь замапируй его на текущий профиль FHIR."

18:05

5. Маппинг сэнда и перенос на Rucore

Speaker A18:05

Ну, да, да, да. Сама работа не очень большая.

Speaker B18:08

Ну, мне ее придется перепроверить, но саму работу как раз можно на агента свалить.

А пользы можем нанести много, продемонстрировав маппинг еще одного сэнда на рукор.

Speaker A18:23

Мы здесь не продемонстрировали маппинг сэнда протокола лабораторного исследования на рукор.

Сейчас, вот тут есть тонкость, конечно. Значит, маппинг сэнда на FHIR — это не рукор, а наследник. Погружать его в рукор не всегда хорошо, потому что там есть особенности, которые мы сознательно оставляли в статье.

Speaker B18:55

Переформулирую. Маппинг клинического примера из сенда амбулаторной консультации на рукор.

Speaker A19:04

Именно энкаунтера, верно?

Speaker B19:09

Энкаунтера, возможно, связанного с композицией, с этим энкаунтером. То есть он как будто должен быть достаточно компактным. Энкаунтер плюс композиция, например.

19:26

6. Выбор клинического примера: энкаунтер и амбулаторная консультация

Speaker A19:26

Ну, давайте капельку порассуждаем. Значит, это уже малая композиция. Там будет энкаунтер, будет кондиция. Иначе какой-то непонятно просто энкаунтер. Что там еще будет? Патиент какой-то должна быть ссылочка.

Speaker B19:47

Понятно. То есть, кроличья нора глубока, я понял.

Speaker A19:52

Да, я просто думаю, что границу надо... и, соответственно, границу цели и границу реализации. Если мы ставим цель проиллюстрировать сендами, то это отдельная задача. И она, кстати, может оказаться очень информативной для пользователей любых. Потому что вот, например, есть такая... а мы, кстати, мы же делаем уже в...

Speaker C20:19

Гости, делаем на ВМП пример, но там.

Speaker B20:28

Именно ВМП он более ограничен и специфичный.

Speaker A20:33

Специфичен да, там заявка в основном все.

Speaker B20:36

Делал заявки. Я почему на этом сфокусировался? Если посмотреть валовый объем всех оказанных медицинских услуг, то амбулаторные приемы, консультация, осмотр и лабораторные исследования займут 60% всех оказываемых услуг. Больше половины, по моей скромной оценке, они займут. Доля.

Speaker A21:12

Да, при этом развивая эту мысль, кажется, что если про такое лабораторное исследование было много возни, потому что там много специфических сущностей, то с протоколом амбулаторной консультации не так много должно бы быть.

21:27

7. Попытки автоматизации: агенты, навыки и публикация на GitHub

Speaker A21:27

Надо изучить вопрос. Можно так быть, что она вообще ляжет без профилирования?

Speaker B21:35

Ну, хотя бы попытаться с помощью тех же наших агентов попробовать. Могло бы быть интересно, и тогда можно было бы после этого делать некоторые заявления.

Перекладка SAMD на Rucore — это теперь вопрос навыков, прикрепленного к вашему кодексу, курсору, код-коду.

Speaker A22:10

Да, да, да. И более того, мы эти навыки можем бесплатно вывести на сайт.

Speaker B22:15

Да, да. Прямо вывести на GitHub.ru.

Speaker A22:19

Да, да-да.

Speaker B22:22

То есть, есть так, пофантазировать.

Speaker A22:25

Да, любопытная мысль, Олег, отлично. Размышляет на дне недельку. В следующий раз сопоставить. Ну, может, я что-то выложу. И посмотреть, что получается. Хорошо. Хорошо, принято. Ладно, мой доклад окончен. Если у вас нет еще предложений, замечаний?

22:54

8. Доработки в Rucore и реакция на файл ГОСТ

Speaker B22:54

Ну, пока нет. А я, собственно, все, что мы обсудили по тем доработкам, которые планировались, прям в прошлый вторник сразу и воткнул в рукор. Так что у меня там в целом тоже все из нового.

Speaker A23:12

Ну да, там была обязательность рубрики снять, степень подтвержденности диагноза, снять ограничения и опубликовать все это реализованно.

Speaker B23:24

Вот, так что, взяв курсор с авторами коммитов репозитория, я несколько нарастил скорость обработки.

Speaker A23:35

Ну да.

Speaker B23:37

Вот, поэтому сейчас как раз можно подумать про следующие шаги. Вот, что еще можно было бы. Да,

Speaker A23:47

Я хочу предложить, что Георгий Станиславович Лебедев отреагировал на наш файлик с ГОСТом. Пока предварительно он сказал, что он его рассматривает, и в конце этой недели, возможно, пришлет свои мысли на этот счет.

Speaker C24:07

Пока так уклончиво.

24:15

9. Планирование секции по искусственному интеллекту на ИТМ

Speaker B24:15

У нас какая-то повестка для ИТМа есть? Вы будете что-то докладывать?

Speaker A24:20

Нет, по файру не буду.

Speaker B24:24

Ну, я, видимо, тоже.

Speaker A24:28

Не предполагал, по крайней мере.

В ИТМе мы планировали с Ерманом и Орловым небольшую секцию по пациентскому и врачебному искусственному интеллекту. Вот если у вас есть что про.

Speaker B24:48

Это сказать можете присоединиться. Ну, давайте подумаем, потому что там что-то секции по искусству интеллекта уже появилась. Ну, конечно, так.

Speaker A24:59

И должно быть, да он параллельно нашей. А нет, параллельна. Да, и Татьяна Васильевна с Скобринским тоже что-то ведут такое с.

Speaker C25:13

Тем же названием, ребят. Вот, а наша.

Speaker A25:17

Будет последней, последним номером. Второй день, 16 до 18.

25:22

10. Приветствие и обсуждение планов

Speaker B25:22

Вот, ну, видимо, да, и встретимся.

А вот пока я еще не определился в различиях между всеми секциями, поэтому пока не знаю, вот, в итоге, куда.

Speaker A25:39

Хорошо. Скажите, пожалуйста, вы участвуете в работе этого центра по искусственному интеллекту?

Speaker B25:47

Нет, пока нет. Я даже не знаю. Видимо, его как-то проанонсируют на конференции.

Speaker C26:07

Хорошо.

Speaker B26:07

Пока я на самом деле публичных новостей не видел. Может быть, пропустил, но как-то публичных не видел.

26:17

11. Центр по искусственному интеллекту и секция‑панель

Speaker A26:17

Ясно. А эту секцию мы думали сделать как панель и обсудить там то, что пациенты используют искусственный интеллект, врачи используют искусственный интеллект. И либо это войдет в конфликт, либо это будет друг другу помогать.

Аспекты, которые при этом можно пообсуждать. Такие были мысли.

Speaker B26:47

Тут, наверное, надо вставить главную идею, что если у вас есть внешний сервис искусственного интеллекта, вызывать его нужно по FIRE. Шутка, но только с долей шутки.

Speaker A27:08

Тогда больше вероятность, что он вас правильно поймет. Хорошо,

27:19

12. Эксперимент с автономным маппингом, технические детали и прощание

Speaker B27:19

Евгений, тогда на связи. Давайте попробуем эксперимент с автономным маппингом на рукор провести.

Speaker A27:31

Давайте, давайте, попробую и посмотрим на результат в следующий раз. Так, есть ли у вас камера?

Speaker B27:41

Да, наверное, сейчас попробую выбрать ракурс, угол. Так. В целом, вы знаете, я в той же настройке, что и на аватарке.

Speaker A27:56

Ну, в принципе, да, но живее все равно. Хорошо.

Ладно, тогда всего доброго, до новых встреч, до свидания.