Node.js上的fhir.js-无法获取最新数据

时间:2018-07-04 18:17:22

标签: javascript node.js api

我正在使用fhir.js模块从fhir服务器读取数据。 我的nodejs api定义是:

var Data={};
var fhirService = fhirService || (function(patient_id, fhirApi) {
   console.log("given Patient ID =========== ", patient_id);
   let _c = config;
   if (fhirApi) {
       _c.baseUrl = fhirApi;
   };
   var client = FHIR(_c, adapter);
   _id = patient_id;
   let actions = [
      client.read({ type: 'Patient', id: _id }),
      client.search({ type: "Condition", query: { 'patient': _id, '_count': 
      '100' } }),
   ];
   let promises = Promise.all(actions);
   promises.then(function(results) {
        Data={patient: results[0], conditions: results[1]};
    })
    .catch(function(res) {
        console.error('fhirService::Error status in fhir response', res);
    });

}).bind(this);

exports.patient_get = function(patientid, fhirapi) {
return new Promise(function(resolve, reject) {
    try {
        let _fhr_api = fhirapi ? fhirapi : DEFAULT_FHIR_ENDPOINT;
        let _f = new FHIR(patientid, _fhr_api);
        setTimeout(function() {
            console.log("Loading promise...");
            let _output = Data;
            if (_output && Object.keys(_output).length > 0) {
                console.log("resolved out put is ======>>>>>> ", _output)
                resolve(_output);
            } else {
                resolve();
            }
        }, 1000);
       } catch (error) {
           console.log("error in guideline_patient_get... ", err);
           resolve();
       }
   });

}

在应用中:

var apiResponse= null;
var callback= function(error, data, response) {
    console.log(data);
    apiResponse == data;
}
 apiclient.patient_get(id,url1,callback.bind(this));

通过

致电此服务时

apiclient.patient_get(id1,url1,callback.bind(this)); => apiResponse = response1(正确的数据)。

apiclient.patient_get(id2,url1,callback.bind(this)); => apiRespnse = response1(不正确。预期的response2)。

当我重新启动nodejs服务器时,它将给出正确的响应。但是,这只是第一个电话。之后,它始终是第一个呼叫响应。 我应该清理任何缓存还是什么?当我调试时,数据将正确发送到Patient_get,FHIR调用。但是

0 个答案:

没有答案