UNPKG

healthone

Version:

Health One format library for JavaScript

2 lines 1.39 kB
"use strict";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,{descriptor:b,...c}){const{kind:d}=a;if(c.reference!==a.reference)throw new Error(`Invalid record reference '${c.reference}'. Current reference is '${a.reference}'.`);switch(b){case"L1":{if("report"===d)throw new Error(`Invalid record descriptor '${b}' for a report document.`);return{...(0,_index.default)({},a,c,customizer),kind:"lab"}}case"L2":case"L3":case"L5":{if("lab"===d)throw new Error(`Invalid record descriptor '${b}' for a lab document.`);if(void 0!==a.speciality&&c.speciality!==a.speciality)throw new Error(`Invalid record speciality '${c.speciality}'. Current speciality is '${a.speciality}'.`);const{speciality:e,text:f,...g}=c;if(a.sections!==void 0){const{sections:b,...c}=a,d=b.slice(0,-1),h=b.at(-1);if(e===h.speciality)return{...(0,_index.default)({},c,g,{sections:[...d,(0,_index.default)({},h,{text:f},customizer)]},customizer),kind:"report"}}return{...(0,_index.default)({},a,g,{sections:[{speciality:e,text:f}]},customizer),kind:"report"}}default:return(0,_index.default)({},a,c,customizer)}} //# sourceMappingURL=insertRecord.cjs.map