healthone
Version:
Health One format library for JavaScript
2 lines • 1.4 kB
JavaScript
;var _index=_interopRequireDefault(require("lodash.mergewith/index.js"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=insertRecord;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function customizer(a,b){if(Array.isArray(a))return a.concat(b)}function insertRecord(a,b){let{descriptor:c,...d}=b;const{kind:e}=a;if(d.reference!==a.reference)throw new Error(`Invalid record reference '${d.reference}'. Current reference is '${a.reference}'.`);switch(c){case"L1":{if("report"===e)throw new Error(`Invalid record descriptor '${c}' for a report document.`);return{...(0,_index.default)({},a,d,customizer),kind:"lab"}}case"L2":case"L3":case"L5":{if("lab"===e)throw new Error(`Invalid record descriptor '${c}' for a lab document.`);if(void 0!==a.speciality&&d.speciality!==a.speciality)throw new Error(`Invalid record speciality '${d.speciality}'. Current speciality is '${a.speciality}'.`);const{speciality:b,text:f,...g}=d;if(a.sections!==void 0){const{sections:c,...d}=a,e=c.slice(0,-1),h=c.at(-1);if(b===h.speciality)return{...(0,_index.default)({},d,g,{sections:[...e,(0,_index.default)({},h,{text:f},customizer)]},customizer),kind:"report"}}return{...(0,_index.default)({},a,g,{sections:[{speciality:b,text:f}]},customizer),kind:"report"}}default:return(0,_index.default)({},a,d,customizer)}}
//# sourceMappingURL=insertRecord.cjs.map