我正在使用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调用。但是