向现有关系数组添加新关系
Adding new relationship to the existing array of relationship
我的一项资产中有一系列关系。
asset Patient identified by medicalRecordNumber {
--> LabReports[] labReports optional
}
在事务中,我试图在数组 labReports 中添加新关系。但它给了我错误 TypeError: Cannot read property 'push' of undefined
这是我的 logic.js 代码
var patientId = searchPatient[0].medicalRecordNumber;
var patientRegistry = await getAssetRegistry('org.zcon.healthcare.Patient');
var patientObj = await patientRegistry.get(patientId);
var labreports=[];
labreports=patientObj.labReports;
var newLabReport =factory.newResource('org.zcon.healthcare', 'LabReports', labReportFromattedId);
labreports.push(newLabReport);
patientObj.labReports=labreports;
await patientRegistry.update(patientObj);
如何更新资产?
最初你没有任何 labReports
用于 patientObj
因此它是未定义的,当你尝试访问 undefined
属性 的 push
方法时,它会抛出错误。
尝试以下解决方案,它应该有效
var patientId = searchPatient[0].medicalRecordNumber;
var patientRegistry = await getAssetRegistry('org.zcon.healthcare.Patient');
var patientObj = await patientRegistry.get(patientId);
if(typeof patientObj.labReports !== 'object' || patientObj.labReports.constructor !== Array) {
patientObj.labReports = [];
}
var newLabReport = factory.newResource('org.zcon.healthcare', 'LabReports', labReportFromattedId);
patientObj.labReports.push(newLabReport);
await patientRegistry.update(patientObj);
我的一项资产中有一系列关系。
asset Patient identified by medicalRecordNumber {
--> LabReports[] labReports optional
}
在事务中,我试图在数组 labReports 中添加新关系。但它给了我错误 TypeError: Cannot read property 'push' of undefined
这是我的 logic.js 代码
var patientId = searchPatient[0].medicalRecordNumber;
var patientRegistry = await getAssetRegistry('org.zcon.healthcare.Patient');
var patientObj = await patientRegistry.get(patientId);
var labreports=[];
labreports=patientObj.labReports;
var newLabReport =factory.newResource('org.zcon.healthcare', 'LabReports', labReportFromattedId);
labreports.push(newLabReport);
patientObj.labReports=labreports;
await patientRegistry.update(patientObj);
如何更新资产?
最初你没有任何 labReports
用于 patientObj
因此它是未定义的,当你尝试访问 undefined
属性 的 push
方法时,它会抛出错误。
尝试以下解决方案,它应该有效
var patientId = searchPatient[0].medicalRecordNumber;
var patientRegistry = await getAssetRegistry('org.zcon.healthcare.Patient');
var patientObj = await patientRegistry.get(patientId);
if(typeof patientObj.labReports !== 'object' || patientObj.labReports.constructor !== Array) {
patientObj.labReports = [];
}
var newLabReport = factory.newResource('org.zcon.healthcare', 'LabReports', labReportFromattedId);
patientObj.labReports.push(newLabReport);
await patientRegistry.update(patientObj);