FHIR:Smart On Fhir Search API中的日期过滤器

时间:2019-10-01 06:37:29

标签: javascript hl7-fhir smart-on-fhir

我是FHIR上Smart的新手,并且正在使用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 :(得分:0)

这只是fhir.js提供的类似mongo的语法糖。它充当URL构建器,结果FHIR URL可能类似于:

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(...)

有关date参数语法的详细信息,请参见http://hl7.org/fhir/search.html#date