Запрос FHIR Search Slots

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

Я могу получить слоты по 4 параметрам, используя

  1. идентификатор врача
  2. идентификатор организации
  3. идентификатор местоположения
  4. дата слота

Ниже будет считаться допустимым запрос слота с использованием FHIR:

http://localhost:8080/context/fhir/Slot?practitioner=Practitioner/123456789&organization=Organization/1234&location=Location/2&start=2016-07-25

Кроме того, в ответе на вышеуказанный запрос, поскольку ссылка на расписание абсолютно необходима (слот имеет card = 1..1 для ссылки на расписание), могу ли я передать ссылочное значение как-то вроде:

"schedule": {
    "reference": "Schedule/notrequired"
  }

в слоте ответ?


person comeOnGetIt    schedule 25.07.2016    source источник


Ответы (2)


К сожалению, прямо сейчас вам нужно открыть расписание, но нет никаких причин, по которым оно должно быть «реальным». В настоящее время мы реализовали поиск по слотам, открывая фиктивное расписание с единственным элементом данных, являющимся ссылкой на актера. Например:

<Schedule xmlns="http://hl7.org/fhir">
<id value="1234" />
<actor>
    <display value="Cooper Thompson, MD" />
    <reference value="http://host/api/FHIR/DSTU2/Practitioner/1234" />
</actor>

Our Slot search ends up looking like this (with some edits for brevity and clarity, specifically around the slottype):

http://host/api/FHIR/DSTU2/Slot?Schedule.actor:Practitioner=1234&Schedule.actor:Patient=5678&slottype=urn:oid:1.2.3|Cardiology&start=2016-07-21

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

Есть несколько элементов отслеживания (9989, 9208) в FHIR gforge о создании Обновления в Слоте, чтобы они были более удобными для «простых клиентов». Будем признательны за ваш вклад :).

person Cooper    schedule 08.08.2016
comment
Thant заставляет отправить ... один вопрос относительно упомянутого URL-адреса, как вы разбираете параметры Schedule.actor:Practitioner & Schedule.actor:Patient=5678 на стороне сервера? Разве они не переводятся в URL-адрес типа host / api / FHIR / DSTU2 / т.е. URL с таким же именем параметра субъект? - person comeOnGetIt; 08.08.2016
comment
stackoverflow.com/questions/38855829/ - person comeOnGetIt; 09.08.2016
comment
На самом деле URL-адрес не участвует в контексте этих параметров поиска. Мы просто смотрим на значение 1234 как на идентификатор специалиста. Аналогично с пациентом. Мы предполагаем / требуем, чтобы идентификаторы, используемые для поиска, были идентификаторами наших серверов. Правильно ли я понял ваш вопрос? - person Cooper; 10.08.2016
comment
Понятно, еще один запрос, вы ищете встречи только на 21.07.2016 или также после 21.07.2016? - person comeOnGetIt; 10.08.2016
comment
Обычно для поиска на дату или после нее нужно использовать & start = ge2016-07-21. См. hl7.org/fhir/search.html#date. - person Cooper; 11.08.2016

Я могу что-то здесь упустить, но не уверен, как вы определяете разницу между слотом и расписанием?

Ресурс Schedule просто определяет период времени, в течение которого могут существовать слоты, и для какого другого ресурса. Он не определяет и не раскрывает встречи, которые могут существовать в это время.

параметры поиска слотов не определяют никаких параметров поиска, как вы подразумевали. Все они находятся в ресурсе расписания, с которого он ссылается.

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

Исходя из моего понимания того, что вы пытаетесь сделать (создание FHIR Façade перед системой управления практикой), я думаю, вам нужно будет предоставить следующие ресурсы:

  • Практик: раскрыть подробности практикующего (интересно, могут ли ваши практикующие работать в нескольких местах)
  • Расписание: чтобы просто показать диапазон дат, в который вы принимаете встречи (и будет определена доступность слотов), и практикующий связан с этим ресурсом, если они работают в нескольких местах, у вас будет один из этих диапазонов для каждого места, где работает практикующий специалист. . (Если ресурсы местоположения имеют собственное расписание, тогда необходимо будет дополнительно рассмотреть его и то, где выполняется согласование доступных слотов)
  • Слот: для определения доступных слотов, в которые можно запланировать встречи. (примечание: это не встречи)
  • Встреча: для получения созданных встреч (не уверен, как вы собираетесь справиться с этим, если у вас нет доступа к расписанию)
  • Пациент: Предполагается, что вы хотите назначать пациентов на приемы;)

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

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

person Brian Postlethwaite    schedule 31.07.2016
comment
Спасибо за подробный ответ, Брайан, в ближайшее время я опишу здесь подробности окружения. А пока только один вопрос - нам разрешено вводить дополнительные параметры в любой запрос FHIR, верно? - при условии, что мы поместим их в Заявление о соответствии сервера? - person comeOnGetIt; 01.08.2016
comment
Привет, Брайан, я предполагал, что график - это не что иное, как часы работы врача, верно? Скажем, врач, работающий с 8 утра до 5 вечера, тогда я рассматривал этот временной интервал как график. - person comeOnGetIt; 01.08.2016
comment
В некотором смысле да, и слот определяет конкретные конкретные случаи в расписании. Который ссылается на этот экземпляр расписания. - person Brian Postlethwaite; 02.08.2016
comment
Что касается добавления дополнительных параметров, это снижает вашу совместимость без изменений. Это то, что мы действительно ищем, замените его на лучший вариант. Мне все еще нужно написать справочное руководство по этому поводу с примерами, я рад получить отзывы о том, чего, по вашему мнению, не хватает. - person Brian Postlethwaite; 02.08.2016
comment
Спасибо, хотел бы объяснить среду. У нас единый логин для любого пациента в любой практике. Таким образом, пациент может перейти на example.com, выбрать организацию и войти в систему с кредитами, чтобы просмотреть записи из нашей ЭУЗ. На том же веб-сайте мы публикуем профиль врачей и их доступные слоты в зависимости от выбора местоположения пользователей. Поскольку у нас есть 1 URL-адрес для всех практик (example.com), когда мы получаем слоты для врачей, нам требуется идентификатор врача, идентификатор практики, идентификатор местоположения и дата. Это означает, что даже когда мы ищем расписание врачей, нам требуются идентификатор организации и идентификатор местоположения. Это объясняет наш env? Дайте мне знать, если возникнут вопросы. - person comeOnGetIt; 02.08.2016
comment
В приведенном выше объяснении я беру на себя смелость взаимозаменяемо использовать практику и организацию. - person comeOnGetIt; 02.08.2016
comment
Только что был задан еще один вопрос, в ресурсе «Назначение» я вижу, что он может иметь 0 или более ссылок на слоты. Разве не должно быть ровно одно место, на которое нужно записаться? Если в объявленной встрече нет места (запрос на встречу POST, который принимает полный ресурс встречи в качестве опубликованных данных), который должен быть забронирован, как его можно забронировать? - person comeOnGetIt; 03.08.2016
comment
Не все системы имеют или используют слоты, и бот, имеющий их, поддерживает это. Однако принимающая система может проверить расписание и соответствующим образом распределить слоты. Что касается того, что может быть более 1 слота, 2 причины: более длинные сеансы, охватывающие более 1 слота (зарезервировать 30-минутное приложение на 2 15-минутных слота), слоты обычно фиксированной длины. И другая причина: если было задействовано 2 расписания, доктора и / или комнаты. - person Brian Postlethwaite; 04.08.2016
comment
Ок, теперь я понимаю, почему это так, спасибо. Кроме того, после записи на прием, каким должен быть ответ веб-службы, если я использую взаимодействие @create из HAPI FHIR или, если на то пошло, в целом, если я использую взаимодействие создания? - person comeOnGetIt; 05.08.2016
comment
Операция создания может возвращаться с результатом операции для ошибок или записью, которая была сохранена, это будет иметь идентификатор, назначенный ресурсу. Другие серверы могут изменять результат, например заменять проверенные слоты, если ни один из них не был применен (на данный момент никто этого не делает, но мой сервер скоро появится). - person Brian Postlethwaite; 07.08.2016