{"version":3,"sources":["webpack:///./src/components/common/MacroEnabledEditor.vue?6fd6","webpack:///src/components/common/MacroEnabledEditor.vue","webpack:///./src/components/common/MacroEnabledEditor.vue?d45d","webpack:///./src/components/common/MacroEnabledEditor.vue","webpack:///./src/components/common/MacroEnabledEditor.vue?21a7","webpack:///./src/modules/getSpecimenGCode.js","webpack:///./src/components/GCodePopup.vue?b3a7","webpack:///src/components/GCodePopup.vue","webpack:///./src/components/GCodePopup.vue?b779","webpack:///./src/components/GCodePopup.vue","webpack:///./src/modules/specimenCompleteMode.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","targetComponent","_g","_b","ref","tag","attrs","name","macroIntellisense","on","toggleEditorSpellChecker","onInitiailized","customizeQuillModules","model","value","callback","$$v","_value","expression","targetComponentProps","$listeners","staticRenderFns","Quill","inheritAttrs","props","type","required","default","expanded","components","Editor","DragonEditor","data","component","_editor","isSpellCheckRunning","intervalId","spellCheckIteration","editorCheckerStatus","lastKeydown","mounted","subscriptions","immediate","filter","tap","setTimeout","switchMap","typeCharacter$","watch","useDragonEditors","handler","methods","focus","expand","collapse","config","styles","initialized","status","computed","mapState","currentUser","applicationSettings","currentLab","specimens","MacroSearchWithPeriod","currentSpecimen","SpellCheckOnSave","mapGetters","webSpellCheckInstance","mentions","targetList","get","set","displayExpr","searchExpr","valueExpr","dataSource","marker","minSearchLength","itemTemplate","isExtension","getSpecimenGCode","GCodesPayload","reduce","acc","curr","cptCodes","length","billingTransactionCodeIds","map","e","id","icdCodes","icdCodeIds","DropdownApi","getMatchingGCodes","gCodes","eventBus","$emit","OPEN_G_CODE","message","Promise","resolve","$once","SET_G_CODE","GCodeId","gCode","isOpen","handleShow","handleTearDown","scopedSlots","_u","key","fn","directives","rawName","staticClass","$event","preventDefault","handleSubmit","apply","arguments","_v","_s","gCodeMessage","selectedGCode","proxy","$attrs","DxPopup","DxScrollView","SelectInput","saveShortkey","caseDetails","opener$","window","handleCancel","prefix","store","getters","permissions","CaseFinalizeSlidePrep","alert","site","siteRequired","resultsMacroId","pathologistId","protocolId","Array","isArray","pathologists","currentPathologistIndex","findIndex","isPrimary","uniqBy","find","Error","MacrosApi","getMacroDetails","macro","mergeSpecimensWithMacros","macroName","specimen","contact","contacts","isICDModified","all","code","moment","expiryOn","isBefore","Date","effectiveOn","isAfter","notify","displayCode","IcdRulesApi","findBillableCode","caseReceivedOn","receivedOn","searchFor","replace","specimenDiagnosis","diagnosis","specimenSite","response","icdEngineCalls","forEach","nonBillableCodes","newCodes","includes","detail","isBillable","push","replacementIcdCode","icd","SpecimensApi","updateSpecimen","handleMissingCptPairs","test","specimensWithGcode","idx","CasesApi","updateCase","labLocationId","state","currentLabLocation","availableLabLocations","signCase","caseId","logItem","createLogItem","AuditLogItems","ChangeAccession","comments","caseNumber","AuditLogApi","insertLogMessage"],"mappings":"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","file":"js/chunk-0fd27940.f018df74.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.targetComponent,_vm._g(_vm._b({ref:\"editor\",tag:\"component\",attrs:{\"name\":_vm.name,\"mentions\":_vm.macroIntellisense},on:{\"toggleBaseSpellChecker\":_vm.toggleEditorSpellChecker,\"initialized\":_vm.onInitiailized,\"customize-modules\":_vm.customizeQuillModules},model:{value:(_vm._value),callback:function ($$v) {_vm._value=$$v},expression:\"_value\"}},'component',_vm.targetComponentProps,false),_vm.$listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MacroEnabledEditor.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MacroEnabledEditor.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MacroEnabledEditor.vue?vue&type=template&id=a86458fa&scoped=true&\"\nimport script from \"./MacroEnabledEditor.vue?vue&type=script&lang=js&\"\nexport * from \"./MacroEnabledEditor.vue?vue&type=script&lang=js&\"\nimport style0 from \"./MacroEnabledEditor.vue?vue&type=style&index=0&id=a86458fa&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"a86458fa\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MacroEnabledEditor.vue?vue&type=style&index=0&id=a86458fa&lang=scss&scoped=true&\"","import { DropdownApi } from \"@/services\";\nimport { OPEN_G_CODE, SET_G_CODE } from \"./constants\";\nimport eventBus from \"./eventBus\";\n\nexport async function getSpecimenGCode(data, specimens) {\n const GCodesPayload = specimens.reduce(\n (acc, curr) => {\n if (curr.cptCodes?.length) {\n acc.billingTransactionCodeIds = [\n ...acc.billingTransactionCodeIds,\n ...curr.cptCodes.map(e => e.id)\n ];\n }\n if (curr.icdCodes?.length) {\n acc.icdCodeIds = [...acc.icdCodeIds, ...curr.icdCodes.map(e => e.id)];\n }\n return acc;\n },\n { billingTransactionCodeIds: [], icdCodeIds: [] }\n );\n const gCodes = await DropdownApi.getMatchingGCodes(GCodesPayload);\n eventBus.$emit(OPEN_G_CODE, { message: data, gCodes });\n const gCode = await new Promise(resolve => {\n eventBus.$once(SET_G_CODE, GCodeId => {\n resolve(GCodeId);\n });\n });\n return gCode;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('DxPopup',_vm._b({attrs:{\"visible\":_vm.isOpen,\"drag-enabled\":false,\"show-title\":true,\"width\":350,\"height\":280,\"showCloseButton\":false,\"container\":\".dx-viewport\",\"title\":\"G-Code Alert\"},on:{\"shown\":_vm.handleShow,\"hidden\":_vm.handleTearDown},scopedSlots:_vm._u([{key:\"content\",fn:function(){return [_c('form',{directives:[{name:\"shortkey\",rawName:\"v-shortkey\",value:(_vm.saveShortkey),expression:\"saveShortkey\"}],staticClass:\"container d-flex flex-column\",on:{\"submit\":function($event){$event.preventDefault();return _vm.handleSubmit.apply(null, arguments)},\"shortkey\":_vm.handleSubmit}},[_c('dx-scroll-view',[_c('p',[_vm._v(_vm._s(_vm.gCodeMessage))])]),_c('select-input',{ref:\"input\",attrs:{\"label\":\"G-Codes\",\"name\":\"G-Codes\",\"id\":\"G-Codes\",\"items\":_vm.gCodes},model:{value:(_vm.selectedGCode),callback:function ($$v) {_vm.selectedGCode=$$v},expression:\"selectedGCode\"}}),_c('button',{staticClass:\"mt-1 btn btn-primary align-self-end\",attrs:{\"type\":\"submit\"}},[_vm._v(\"Save\")])],1)]},proxy:true}])},'DxPopup',_vm.$attrs,false))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GCodePopup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GCodePopup.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./GCodePopup.vue?vue&type=template&id=cda8c904&scoped=true&\"\nimport script from \"./GCodePopup.vue?vue&type=script&lang=js&\"\nexport * from \"./GCodePopup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"cda8c904\",\n null\n \n)\n\nexport default component.exports","import { AuditLogApi, CasesApi, IcdRulesApi, MacrosApi, SpecimensApi } from \"@/services\";\nimport { mergeSpecimensWithMacros } from \"./mergeSpecimensWithMacros\";\nimport { uniqBy } from \"lodash\";\nimport moment from \"moment\";\nimport store from \"@/store\";\n\nimport { getSpecimenGCode } from \"./getSpecimenGCode\";\nimport { handleMissingCptPairs } from \"./handleMissingCptPairs\";\nimport { AuditLogItems } from \"./enums\";\nimport { createLogItem } from \"./helpers\";\n\nexport default async function (prefix, caseDetails) {\n if (!store.getters.permissions?.CaseFinalizeSlidePrep) {\n window.alert(\"User does not have permission to finalize cases.\");\n return;\n }\n const { site, siteRequired, resultsMacroId, pathologistId, protocolId } = prefix;\n if (Array.isArray(caseDetails.pathologists)) {\n if (pathologistId) {\n const currentPathologistIndex = caseDetails.pathologists.findIndex(\n e => e.id === pathologistId\n );\n caseDetails.pathologists = caseDetails.pathologists.map(e => ({ ...e, isPrimary: false }));\n if (currentPathologistIndex > -1) {\n caseDetails.pathologists[currentPathologistIndex].isPrimary = true;\n } else {\n caseDetails.pathologists = uniqBy(\n [...caseDetails.pathologists, { id: pathologistId, isPrimary: true }],\n \"id\"\n );\n }\n } else if (!caseDetails.pathologists.find(e => e.isPrimary)) {\n throw new Error(\"No primary pathologist found.\");\n }\n } else {\n caseDetails.pathologists = [{ id: pathologistId, isPrimary: true }];\n }\n if (resultsMacroId) {\n const macro = await MacrosApi.getMacroDetails(resultsMacroId);\n caseDetails.specimens = await mergeSpecimensWithMacros(\n caseDetails.specimens,\n [macro],\n `.${macro.macroName}`,\n null,\n true\n );\n for (const specimen of caseDetails.specimens) {\n if (protocolId && !specimen.protocolId) {\n specimen.protocolId = protocolId;\n }\n if (!siteRequired && !specimen.site) {\n specimen.site = site;\n }\n specimen.pathologists = caseDetails.pathologists;\n specimen.contact = caseDetails.contacts;\n if (!specimen?.isICDModified) {\n const icdEngineCalls = await Promise.all(\n macro.icdCodes.map(async code => {\n if (\n moment(code.expiryOn).isBefore(new Date()) ||\n moment(code.effectiveOn).isAfter(new Date())\n ) {\n window.notify(\n `Icd code outside of effective range found ${code.displayCode}.`,\n \"warning\"\n );\n }\n const response = await IcdRulesApi.findBillableCode({\n caseReceivedOn: caseDetails.receivedOn,\n searchFor: code.displayCode.replace(/\\.([0-9]+)/gi, \"\"),\n specimenDiagnosis: specimen.diagnosis,\n specimenSite: specimen.site ?? \"\"\n });\n return [response, code];\n })\n );\n\n icdEngineCalls.forEach(([response, code]) => {\n const nonBillableCodes = [];\n let newCodes = macro.icdCodes;\n if ([3, 4, 6, 3, 5, 7, 8].includes(response.detail) && !code.isBillable) {\n nonBillableCodes.push(code.displayCode);\n } else if ([2].includes(response.detail)) {\n const { replacementIcdCode } = response;\n\n newCodes = newCodes.map(icd => {\n if (icd.id === code.id && replacementIcdCode !== icd.id) {\n return replacementIcdCode;\n }\n return icd;\n });\n }\n\n specimen.icdCodes = uniqBy([...(specimen?.icdCodes || []), ...newCodes], \"id\");\n });\n }\n }\n }\n try {\n caseDetails.specimens = await SpecimensApi.updateSpecimen(caseDetails.specimens);\n handleMissingCptPairs(caseDetails.specimens);\n } catch (error) {\n if (error?.response?.data && /g\\s?code/i.test(error.response.data)) {\n const gCode = await getSpecimenGCode(error.response.data, caseDetails.specimens);\n const specimensWithGcode = caseDetails.specimens.map((specimen, idx) => {\n if (idx === 0) {\n specimen.cptCodes = [{ id: gCode }, ...(specimen.cptCodes || [])];\n }\n return specimen;\n });\n caseDetails.specimens = await SpecimensApi.updateSpecimen(specimensWithGcode);\n handleMissingCptPairs(caseDetails.specimens);\n } else {\n throw error;\n }\n }\n caseDetails = await CasesApi.updateCase(caseDetails);\n const labLocationId = store.state.currentLabLocation || store.state.availableLabLocations[0].id;\n\n await CasesApi.signCase(caseDetails.caseId, labLocationId);\n const logItem = createLogItem(caseDetails, AuditLogItems.ChangeAccession);\n logItem.comments = `Finalized specimens for case ${caseDetails.caseNumber}.`;\n AuditLogApi.insertLogMessage(logItem);\n return caseDetails;\n}\n"],"sourceRoot":""}