向现有关系数组添加新关系

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);