const extend = (target, source) => Object
.entries(source instanceof Object ? source : {})
.reduce((acc, [ k, v ]) => {
acc[k] = v instanceof Object ? extend(acc[k], v) : k in acc ? acc[k] : v;
return acc;
}, target instanceof Object ? target : {});
extend(patient, donor);