Тематическое исследование

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

Задний план

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

План

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

  1. Начните с набора данных электронных медицинских карт. Сначала я буду использовать небольшой образец для тестирования моего рабочего процесса. Узел: образец.
  2. Найдите упоминания о сепсисе в тексте и получите подмножество, содержащее только эти записи. Это будет крайним сроком для пациентов, которых они представляют. Помните, что мы хотим сохранить только те записи, которые пациент получил до этого времени. Узел: поисковый запрос и подмножество поисковых запросов. Последний можно создать, щелкнув правой кнопкой мыши соответствующий запрос в узле Поисковый запрос и выбрав «Создать подмножество».
  3. Отсортируйте записи по времени: сначала самые ранние даты. Узел: Сортировка строк.
  4. Создайте новый столбец для информации о временной метке в каждой строке под названием «Самое раннее упоминание о сепсисе». В нашем случае некоторые записи временных меток были пустыми, и их нужно было заполнить более общей датой. Узел: Производный.
  5. Для любой пары идентификатор пациента/идентификатор госпитализации сохраните только первую запись. Теперь у вас есть список пациентов, каждый из которых имеет значение в столбце «Самое раннее упоминание о сепсисе», содержащее отметку времени для первой записи, в которой упоминается их сепсис. Узел: совокупный.
  6. Присоедините этот набор данных (справа) к исходному набору данных (слева). Используйте левое внешнее соединение, чтобы для каждой записи в исходном наборе данных он проверял ваш новый список на наличие совпадающего идентификатора пациента и госпитализации. Если есть, он добавит новую информацию: отметку времени самого раннего упоминания о сепсисе этого пациента. Если этого пациента и госпитализации нет в новом списке (у них никогда не было упоминания о сепсисе в их заметках), самое раннее упоминание о сепсисе останется пустым. Узел: присоединиться.
  7. Теперь о легкой части! Отфильтруйте строки, чтобы сохранить только записи с пустым значением в поле Самое раннее упоминание о сепсисе или где отметка времени записи является более ранним временем, чем самое раннее упоминание о сепсисе данного пациента. Узел: фильтровать строки.

Результат

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

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

Первоначально опубликовано на https://www.megaputer.com 19 ноября 2018 г.