FHIR: фильтр даты в smart на fhir search api - PullRequest
0 голосов
/ 01 октября 2019

Я новичок в Smart на FHIR и создаю одно демонстрационное приложение для обучения с использованием fhirclient.js. Мне нужно получить определенную жизненно важную информацию о пациенте, такую ​​как температура, вес и т. Д. За указанный период времени (последние 3 месяца).

smart.patient.api.search({
                    type: "Observation",            
                    query: {          
                      $sort: [
                          ["date",
                          "asc"]
                    ],
                    code: {
                      $or: ['http://loinc.org|8462-4',
                        'http://loinc.org|8480-6',
                        'http://loinc.org|55284-4',
                        'http://loinc.org|8310-5',
                        'http://loinc.org|3141-9',
                        'http://loinc.org|718-7']
                    }
                  }
                  }).then(results => {

Дайте мне знать, как включить фильтр даты в этот API поиска?

1 Ответ

0 голосов
/ 01 октября 2019

Это просто моно-подобный синтаксис, предоставленный fhir.js. Он действует как построитель URL, и результирующий URL FHIR может выглядеть следующим образом:

https://r3.smarthealthit.org/Observation?_sort:asc=date&code=http://loinc.org|8462-4,http://loinc.org|8480-6,http://loinc.org|55284-4,http://loinc.org|8310-5,http://loinc.org|3141-9,http://loinc.org|718-7

Последние версии fhirclient не включают fhir.js. В настоящее время у нас есть такие вещи, как URLSearchParams, чтобы помочь нам достичь аналогичных результатов. Используя обновленную версию библиотеки fhirclient, искомый код может выглядеть следующим образом:

const client = new FHIR.client("https://r3.smarthealthit.org");
const query = new URLSearchParams();
query.set("_sort", "date");
query.set("code", [
  'http://loinc.org|8462-4',
  'http://loinc.org|8480-6',
  'http://loinc.org|55284-4',
  'http://loinc.org|8310-5',
  'http://loinc.org|3141-9',
  'http://loinc.org|718-7'
].join(","));
query.set("date", "ge2013-03-14"); // after or equal to 2013-03-14
query.set("date", "le2019-03-14"); // before or equal to 2019-03-14
client.request("Observation?" + query).then(...)

Также см. http://hl7.org/fhir/search.html#date для получения подробной информации о синтаксисе параметра date.

...