FHIR: фильтр даты в smart on fhir search api

Я новичок в 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 ответ

Решение

Это просто монго-подобный синтаксический сахар, предоставляемый 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 синтаксис параметра.

Другие вопросы по тегам