{"version":3,"sources":["webpack:///./src/lib/composables/useAuthInfo.ts","webpack:///./src/modules/tiss/components/forms/TissProcedimentoForm.tsx","webpack:///./src/modules/tiss/pages/procedimento/TissProcedimentoFormPage.tsx","webpack:///./src/graphql/tiss/tissNext/tissNextLote.graphql","webpack:///./src/modules/tiss/pages/guiaHonorarios/TissGuiasHonorariosPage.tsx","webpack:///./src/modules/tiss/components/TissSidebar.tsx","webpack:///./src/modules/tiss/components/forms/utils/TissProcedimentosTable.tsx","webpack:///./src/modules/tiss/components/forms/TissGuiaConsultaForm.tsx","webpack:///./src/modules/tiss/pages/guiaConsulta/TissGuiaConsultaFormPage.tsx","webpack:///./src/modules/tiss/components/lote/TissLoteGuias.tsx","webpack:///./src/modules/tiss/components/lote/TissLoteForm.tsx","webpack:///./src/modules/tiss/pages/lote/TissLoteFormPage.tsx","webpack:///./src/lib/composables/useContextSidebar.ts","webpack:///./src/components/sidebars/context/ContextSidebar.tsx","webpack:///./src/modules/tiss/components/forms/TissGuiaHonorariosForm.tsx","webpack:///./src/modules/tiss/pages/guiaHonorarios/TissGuiaHonorariosFormPage.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuSubheader.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuTileAction.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenu.tsx","webpack:///./src/graphql/tiss/tissNext/tissNextGuia.graphql","webpack:///./src/modules/tiss/pages/lote/TissLotesPage.tsx","webpack:///./src/lib/helpers/models/tissProcedimento.ts","webpack:///./src/modules/tiss/pages/procedimento/TissProcedimentosPage.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuTileLink.tsx","webpack:///./src/components/sidebars/context/ContextSidebarMenuHeader.tsx","webpack:///./src/components/buttons/BtnSelectedRows.tsx","webpack:///./src/modules/tiss/pages/guiaSpSadt/TissGuiasSpSadtPage.tsx","webpack:///./src/lib/helpers/jsx.ts","webpack:///./src/components/datatable/IndexDataTable.tsx","webpack:///./src/components/alerts/AlertSelectProfissional.tsx","webpack:///./src/graphql/tiss/tissNext/TissNextGraphql.ts","webpack:///./src/lib/services/tiss/tissNext.service.ts","webpack:///./src/modules/tiss/components/forms/TissGuiaOdontologicaForm.tsx","webpack:///./src/modules/tiss/pages/guiaOdontologica/TissGuiaOdontologicaFormPage.tsx","webpack:///./src/modules/tiss/pages/guiaOdontologica/TissGuiasOdontologicasPage.tsx","webpack:///./src/modules/tiss/components/forms/TissGuiaSpSadtForm.tsx","webpack:///./src/modules/tiss/pages/guiaSpSadt/TissGuiaSpSadtFormPage.tsx","webpack:///./src/modules/tiss/components/TissSelectProfissional.tsx","webpack:///./src/modules/tiss/components/TissPage.tsx","webpack:///./src/modules/tiss/pages/guiaConsulta/TissGuiasConsultasPage.tsx"],"names":["useAuthInfo","$user","s","auth","user","$clinica","clinica","$userIsProfissionalSaude","value","tipo","PROFISSIONAL_SAUDE","$userIsRecepcionista","RECEPCIONISTA","$userIsAdmin","adminAccount","adminClinica","clinicaId","id","TissProcedimentoForm","name","props","page","type","Object","required","setup","ctx","profissionalId","indexRoute","app","tiss","procedimentos","index","useForm","$form","$schema","emitSubmit","emitDelete","model","useFormConfig","initialValue","codigo","nome","tabela","sexo","mapSchema","label","items","procedimentoTabelas","validations","mask","minLength","procedimentoSexos","loadEditCallback","setFormModel","getById","editValue","useFormPage","submitCallback","update","create","handleSubmit","isEdit","$title","handleDelete","delete","doc","loc","source","collectFragmentReferences","node","refs","kind","add","selectionSet","selections","forEach","selection","variableDefinitions","def","definitions","definitionRefs","findOperation","i","length","element","oneQuery","operationName","newDoc","hasOwnProperty","opRefs","Set","allRefs","newRefs","refName","size","prevRefs","has","childRefs","childRef","op","push","module","exports","menus","text","header","icon","tissLote","to","lotes","subheader","tissGuiaConsulta","guiasConsultas","tissGuiaSpSadt","guiasSpSadt","tissGuiaHonorarios","guiasHonorarios","tissGuiaOdontologica","guiasOdontologicas","tissProcedimento","TissProcedimentosTable","Array","String","headers","useHeaders","useEvents","handleValorUnitarioInput","mapValue","v","slice","width","align","valueAlign","sortable","descricao","quantidade","valorUnitario","money","slot","CONSULTA","undefined","item","hideDetails","valorTotal","emitInput","filter","f","emit","TissGuiaConsultaForm","loadNumeroGuiaPrestador","loadProfissionalInfo","loadAgendamentoInfo","geral","paciente","contratado","atendimento","agendamentoId","convenioId","registroANS","numeroGuiaPrestador","numeroGuiaOperadora","pacienteId","numeroCarteira","dataNascimento","cns","tipoDocumento","CODIGO_NA_OPERADORA","tipoPessoa","JURIDICA","documento","contratadoNome","cnes","profissionalNome","conselho","numeroConselho","uf","cbos","data","tipoConsulta","indicacaoAcidente","observacao","uuid","TB_22","itemLabel","lookup","convenio","noParticular","onModelChange","setConvenioInfo","layout","sm","maxWidth","maxLength","setPacienteInfo","mapSchemaContratadoDocumento","conselhos","estados","itemValue","cbo","disabled","FISICA","indicadorAcidente","agendamento","beneficiarioNumeroCarteira","pacienteDataNascimento","beneficiarioNome","beneficiarioNumeroCNS","contratadoTipoDocumento","contratadoTipoPessoa","contratadoCodigoPrestadorNaOperadora","CPF","contratadoCpf","contratadoCnpj","contratadoCNES","profissionalConselho","profissionalNumeroConselho","profissionalUF","profissionalCBOS","atendimentoData","atendimentoTipoConsulta","procedimentoValor","cpf","cnpj","convenios","find","numeroCarteirinha","particular","registroAns","profissionais","profissional","codigoOperadora","getNext","next","guia","toString","Promise","all","conselhoRegistro","conselhoUf","query","aid","procedimento","valor","TissLoteGuias","loteId","TissLoteForm","$guiasIds","loadNumeroLote","lote","guiasIds","setGuiasIds","formConfig","GUIA_CONSULTA","prestadorCodigoNaOperadora","numeroLote","versao","V3_05_00","loteTipo","loteVersao","mapValueToValidate","mapCustomErrors","errors","error","map","prestadorCodigoPrestadorNaOperadora","useContextSidebar","miniWidth","$temporarySidebarOpen","temporarySidebar","open","$showMiniSidebar","$currentWidth","$width","$miniVariant","$mini","contextSidebar","mini","useUpdateAppLeft","checkNoSidebar","fullPath","routesNoSidebar","includes","updateAppLeft","vuetify","application","left","ContextSidebar","$miniIcon","sidebarExpand","sidebarCollapse","defaultSlot","slots","default","coolGray800","stop","toggleContext","TissGuiaHonorariosForm","ContextSidebarMenuSubheader","title","ContextSidebarMenuTileAction","menu","errorText","hasError","action","active","ContextSidebarMenu","$menus","hidden","divider","useTissLotesQuery","TissLotesQuery","variables","mapData","result","tissLotes","nodes","numero","createdAt","versaoTiss","download","nextLote","btn","new","actions","editRoute","edit","formatDate","$data","$loading","tabelas","removeMany","deleteMany","useTissProcedimentosQuery","useQueryConfig","TissProcedimentosQuery","tissProcedimentos","ContextSidebarMenuTileLink","errorClass","noExact","listItemAction","imageUrl","cyan800","ContextSidebarMenuHeader","BtnSelectedRows","selected","$show","$label","num","$ids","activator","menuActivator","listMenus","on","selectedRows","menuDown","scopedSlots","entries","reduce","obj","slotName","IndexDataTable","titleText","loading","Boolean","selectable","noSearch","draggable","$selected","setSelected","useComputeds","$button","$selectedMenus","$showActionsRow","emitReorder","onClick","MyIcons","color","outlined","selecionado","remove","selectedMenus","actionsSlot","AlertSelectProfissional","select","form","$items","$name","TissNextGraphql","nextGuia","apollo","then","tissNextGuia","tissNextLote","TissNextService","setNext","store","state","TissGuiaOdontologicaForm","TissGuiaSpSadtForm","TissSelectProfissional","mode","$text","$select","handleInput","route","newRoute","replace","TissPage","useTissGuiasConsultasQuery","TissGuiasConsultasQuery","tissGuiasConsultas"],"mappings":"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","file":"js/tiss.39948c20.js","sourcesContent":["import { UserTipo } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { useState } from '.';\n\nexport function useAuthInfo() {\n const $user = useState(s => s.auth.user);\n\n const $clinica = useState(s => s.auth.clinica);\n\n const $userIsProfissionalSaude = computed(\n () => $user.value?.tipo === UserTipo.PROFISSIONAL_SAUDE,\n );\n\n const $userIsRecepcionista = computed(\n () => $user.value?.tipo === UserTipo.RECEPCIONISTA,\n );\n\n const $userIsAdmin = computed(\n () => !!$user.value?.adminAccount || !!$clinica.value?.adminClinica,\n );\n\n return {\n clinicaId: $clinica.value?.id,\n $user,\n $clinica,\n $userIsProfissionalSaude,\n $userIsRecepcionista,\n $userIsAdmin,\n };\n}\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { ConstantsHelper } from '@/lib/constants/helper';\nimport { TissProcedimentoService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport { IFormSchema, ITissProcedimentoModel } from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\nexport const TissProcedimentoForm = createComponent({\n name: 'TissProcedimentoForm',\n props: {\n page: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const indexRoute = Routes.app.tiss(profissionalId).procedimentos.index;\n\n const { $form, $schema, emitSubmit, emitDelete } = useForm(props, ctx);\n\n return () => (\n \n \n \n \n \n );\n },\n});\n\nfunction useForm(props: IProps, ctx: SetupContext) {\n return useFormConfig<\n ITissProcedimentoModel,\n IFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: {\n codigo: null,\n nome: null,\n tabela: null,\n sexo: null,\n },\n mapSchema: () => ({\n tabela: {\n label: 'Tabela',\n type: 'select',\n items: ConstantsHelper.tiss.procedimentoTabelas,\n validations: { required: true },\n },\n codigo: {\n label: 'Código',\n type: 'text',\n mask: 'tissProcedimentoCodigo',\n validations: {\n required: true,\n minLength: 8,\n },\n },\n nome: {\n label: 'Nome',\n type: 'text',\n validations: { required: true },\n },\n sexo: {\n label: 'Sexo',\n type: 'select',\n items: ConstantsHelper.tiss.procedimentoSexos,\n validations: { required: true },\n },\n }),\n async loadEditCallback({ id, setFormModel }) {\n const editValue = await TissProcedimentoService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n setFormModel({\n codigo: editValue.codigo,\n nome: editValue.nome,\n tabela: editValue.tabela,\n sexo: editValue.sexo,\n });\n },\n });\n}\n","import { MyPage } from '@/components/page/MyPage';\nimport { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { TissProcedimentoService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { ITissProcedimentoModel } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissProcedimentoForm } from '../../components/forms/TissProcedimentoForm';\n\nexport default createComponent({\n name: 'TissProcedimentoFormPage',\n setup(props, ctx) {\n const { page, handleSubmit, isEdit } = useFormPage({\n ctx,\n async submitCallback(model: ITissProcedimentoModel) {\n if (page.id) {\n return TissProcedimentoService.update(page.id, model);\n } else {\n return TissProcedimentoService.create(model);\n }\n },\n });\n\n const $title = computed(() =>\n isEdit ? 'Editar Procedimento próprio' : 'Novo Procedimento próprio',\n );\n\n async function handleDelete(id: string) {\n return TissProcedimentoService.delete(id);\n }\n\n return () => (\n \n \n \n );\n },\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ITissNextLoteQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"profissionalId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tissNextLote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"profissionalId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"profissionalId\"}}}],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":99}};\n doc.loc.source = {\"body\":\"query ITissNextLoteQuery($profissionalId: ID!) {\\n tissNextLote(profissionalId: $profissionalId)\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ITissNextLoteQuery\"] = oneQuery(doc, \"ITissNextLoteQuery\");\n \n","import { createComponent } from '@/lib/vue';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement index page\nexport default createComponent({\n name: 'TissGuiasHonorariosPage',\n setup(props, ctx) {\n return () => (\n \n );\n },\n});\n","import { ContextSidebar } from '@/components/sidebars/context/ContextSidebar';\nimport { ContextSidebarMenu } from '@/components/sidebars/context/ContextSidebarMenu';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { IMenu } from '@/typings';\n\nexport default createComponent({\n name: 'TissSidebar',\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const menus: IMenu[] = [\n {\n text: 'TISS',\n header: true,\n },\n {\n text: 'Lotes',\n icon: MyIcons.tissLote,\n to: Routes.app.tiss(profissionalId).lotes.index,\n },\n {\n text: 'Guias',\n subheader: true,\n },\n {\n text: 'Consultas',\n icon: MyIcons.tissGuiaConsulta,\n to: Routes.app.tiss(profissionalId).guiasConsultas.index,\n },\n {\n text: 'SP/SADT',\n icon: MyIcons.tissGuiaSpSadt,\n to: Routes.app.tiss(profissionalId).guiasSpSadt.index,\n },\n {\n text: 'Honorários',\n icon: MyIcons.tissGuiaHonorarios,\n to: Routes.app.tiss(profissionalId).guiasHonorarios.index,\n },\n {\n text: 'Odontológicas (GTO)',\n icon: MyIcons.tissGuiaOdontologica,\n to: Routes.app.tiss(profissionalId).guiasOdontologicas.index,\n },\n {\n text: 'Cadastro',\n subheader: true,\n },\n {\n text: 'Procedimentos',\n icon: MyIcons.tissProcedimento,\n to: Routes.app.tiss(profissionalId).procedimentos.index,\n },\n ];\n\n return () => (\n \n \n \n );\n },\n});\n","import { TdInputNumber } from '@/components/datatable/columns/TdInputNumber';\nimport { DataTable } from '@/components/datatable/DataTable';\nimport FormHeader from '@/components/typography/FormHeader';\nimport { createComponent } from '@/lib/vue';\nimport {\n IDataTableHeader,\n ITissGuiaProcedimentoModel,\n TissGuiaTipo,\n} from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\nimport { PropType } from 'vue';\n\ninterface IProps {\n value: ITissGuiaProcedimentoModel[];\n tipo: TissGuiaTipo;\n}\n\ninterface IEvents {\n onInput(items: ITissGuiaProcedimentoModel[]): void;\n}\n\nexport const TissProcedimentosTable = createComponent({\n name: 'TissProcedimentosTable',\n props: {\n value: {\n type: Array as PropType,\n required: true,\n },\n tipo: { type: String as PropType, required: true },\n },\n setup(props, ctx) {\n const headers = useHeaders({ props, ctx });\n\n return () => (\n
\n \n\n
\n \n\n \n
\n
\n );\n },\n});\n\nfunction useHeaders({\n props,\n ctx,\n}: {\n props: IProps;\n ctx: SetupContext;\n}): IDataTableHeader[] {\n const { handleValorUnitarioInput } = useEvents({ props, ctx });\n\n return [\n {\n text: 'Tabela',\n value: 'tabela',\n mapValue: v => v.tabela?.slice(3, 5),\n width: 50,\n align: 'center',\n valueAlign: 'center',\n sortable: false,\n },\n {\n text: 'Código',\n value: 'codigo',\n mapValue: v => v.codigo,\n width: 80,\n align: 'center',\n valueAlign: 'center',\n sortable: false,\n },\n {\n text: 'Descrição',\n value: 'descricao',\n mapValue: v => v.descricao,\n },\n {\n text: 'Quantidade',\n value: 'quantidade',\n mapValue: v => v.quantidade,\n width: 80,\n align: 'center',\n valueAlign: 'center',\n sortable: false,\n },\n {\n text: 'Valor unitário',\n value: 'valorUnitario',\n mapValue: v => v.valorUnitario,\n width: 150,\n money: true,\n align: 'center',\n valueAlign: 'center',\n sortable: false,\n slot:\n props.tipo !== TissGuiaTipo.CONSULTA\n ? undefined\n : ({ header, item }) => (\n handleValorUnitarioInput({ item, value })}\n />\n ),\n },\n {\n text: 'Total',\n value: 'valorTotal',\n mapValue: v => v.valorTotal,\n width: 160,\n money: true,\n align: 'center',\n valueAlign: 'center',\n sortable: false,\n },\n ];\n}\n\nfunction useEvents({ props, ctx }: { props: IProps; ctx: SetupContext }) {\n function handleValorUnitarioInput({\n item,\n value,\n }: {\n item: ITissGuiaProcedimentoModel;\n value: number | null;\n }) {\n const valorUnitario = value || 0;\n emitInput([\n ...props.value.filter(f => f.id !== item.id),\n {\n ...item,\n valorUnitario,\n valorTotal: valorUnitario * (item.quantidade || 0),\n },\n ]);\n }\n\n function emitInput(items: ITissGuiaProcedimentoModel[]) {\n ctx.emit('input', items);\n }\n\n return { handleValorUnitarioInput, emitInput };\n}\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useAuthInfo } from '@/lib/composables/useAuthInfo';\nimport { useRoute, useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { ConstantsHelper } from '@/lib/constants/helper';\nimport { LookupsConfigs } from '@/lib/form/lookups';\nimport { uuid } from '@/lib/helpers/uuid';\nimport {\n AgendamentoService,\n ClinicaService,\n ConvenioService,\n PacienteService,\n ProcedimentoService,\n TissGuiaConsultaService,\n UserService,\n} from '@/lib/services';\nimport { TissNextService } from '@/lib/services/tiss/tissNext.service';\nimport { createComponent, watchLazy } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport {\n IConvenioFragment,\n IFormInputType,\n IPacienteFragment,\n ITissGuiaConsultaFormSchema,\n ITissGuiaConsultaModel,\n TissGuiaTipo,\n TissTabela,\n TissTipoDocumento,\n TissTipoPessoa,\n} from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\nimport { TissProcedimentosTable } from './utils/TissProcedimentosTable';\n\ninterface IProps extends IFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\nexport const TissGuiaConsultaForm = createComponent({\n name: 'TissGuiaConsultaForm',\n props: {\n page: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const indexRoute = Routes.app.tiss(profissionalId).guiasConsultas.index;\n\n const { $form, $schema, emitDelete, emitSubmit, isEdit } = useForm({\n props,\n ctx,\n profissionalId,\n });\n\n loadNumeroGuiaPrestador({ $form, isEdit, profissionalId });\n\n loadProfissionalInfo({ $form, isEdit, profissionalId });\n\n loadAgendamentoInfo({ $form, isEdit, profissionalId });\n\n return () => (\n \n \n \n \n\n \n \n \n\n \n\n \n \n \n\n \n \n \n \n );\n },\n});\n\nfunction useForm({\n props,\n ctx,\n profissionalId,\n}: {\n props: IProps;\n ctx: SetupContext;\n profissionalId: string;\n}) {\n return useFormConfig({\n page: props.page,\n ctx,\n initialValue: {\n geral: {\n agendamentoId: null,\n convenioId: null,\n registroANS: null,\n numeroGuiaPrestador: null,\n numeroGuiaOperadora: null,\n },\n paciente: {\n pacienteId: null,\n numeroCarteira: null,\n dataNascimento: null,\n nome: null,\n cns: null,\n },\n contratado: {\n tipoDocumento: TissTipoDocumento.CODIGO_NA_OPERADORA,\n tipoPessoa: TissTipoPessoa.JURIDICA,\n documento: null,\n contratadoNome: null,\n cnes: null,\n profissionalNome: null,\n conselho: null,\n numeroConselho: null,\n uf: null,\n cbos: null,\n },\n atendimento: {\n data: null,\n tipoConsulta: null,\n indicacaoAcidente: '9',\n observacao: null,\n },\n procedimentos: [\n {\n id: uuid(),\n tabela: TissTabela.TB_22,\n codigo: '10101012',\n descricao: 'CONSULTA',\n quantidade: 1,\n valorUnitario: 0,\n valorTotal: 0,\n },\n ],\n },\n mapSchema: (model, $form) => ({\n geral: {\n convenioId: {\n label: 'Convênio',\n type: 'autocomplete',\n itemLabel: 'nome',\n lookup: LookupsConfigs.convenio({\n noParticular: true,\n onModelChange(convenio) {\n setConvenioInfo({ $form, convenio, profissionalId });\n },\n }),\n validations: { required: true },\n layout: { sm: 6 },\n },\n registroANS: {\n label: 'Registro ANS',\n type: 'text',\n mask: 'numbers6',\n validations: { required: true },\n layout: { maxWidth: 200 },\n },\n numeroGuiaPrestador: {\n label: 'Número Guia Prestador',\n type: 'text',\n mask: 'numbers20',\n validations: { required: true },\n layout: { width: 260 },\n },\n numeroGuiaOperadora: {\n label: 'Número Guia Operadora',\n type: 'text',\n maxLength: 20,\n layout: { width: 260 },\n },\n },\n paciente: {\n pacienteId: {\n label: 'Paciente',\n type: 'autocomplete',\n itemLabel: 'nome',\n lookup: LookupsConfigs.paciente({\n onModelChange(paciente) {\n setPacienteInfo({ $form, paciente });\n },\n }),\n validations: { required: true },\n layout: { sm: 6 },\n },\n dataNascimento: {\n label: 'Data de nascimento',\n type: 'date',\n validations: { required: true },\n layout: { width: 280 },\n },\n numeroCarteira: {\n label: 'Número da carteira',\n type: 'text',\n maxLength: 20,\n validations: { required: true },\n layout: { width: 260 },\n },\n cns: {\n label: 'CNS',\n type: 'text',\n maxLength: 15,\n layout: { width: 260 },\n },\n },\n contratado: {\n profissionalNome: {\n label: 'Profissional Executante',\n type: 'text',\n maxLength: 70,\n validations: { required: true },\n },\n tipoDocumento: {\n label: 'Tipo de documento',\n type: 'select',\n items: ConstantsHelper.tiss.tipoDocumento,\n validations: { required: true },\n layout: { width: 250 },\n },\n documento: mapSchemaContratadoDocumento(model),\n conselho: {\n label: 'Conselho',\n type: 'select',\n items: ConstantsHelper.tiss.conselhos,\n validations: { required: true },\n layout: { width: 200 },\n },\n numeroConselho: {\n label: 'Número no conselho',\n type: 'text',\n maxLength: 15,\n validations: { required: true },\n layout: { width: 240 },\n },\n uf: {\n label: 'UF',\n type: 'select',\n items: ConstantsHelper.estados,\n itemLabel: 'sigla',\n itemValue: 'sigla',\n validations: { required: true },\n layout: { maxWidth: 100 },\n },\n cbos: {\n label: 'Especialidade (CBO-S)',\n type: 'autocomplete',\n items: ConstantsHelper.tiss.cbo,\n validations: { required: true },\n },\n tipoPessoa: {\n label: 'Tipo de pessoa',\n type: 'select',\n items: ConstantsHelper.tiss.tipoPessoa,\n validations: { required: true },\n layout: { width: 200 },\n },\n contratadoNome: {\n label: 'Nome do Contratado',\n type: 'text',\n disabled: model.contratado.tipoPessoa === TissTipoPessoa.FISICA,\n maxLength: 70,\n validations: { required: true },\n layout: { sm: 6 },\n },\n cnes: {\n label: 'CNES',\n type: 'text',\n maxLength: 7,\n validations: { required: true },\n layout: { width: 200 },\n },\n },\n atendimento: {\n data: {\n label: 'Data do atendimento',\n type: 'date',\n validations: { required: true },\n layout: { width: 270 },\n },\n tipoConsulta: {\n label: 'Tipo da consulta',\n type: 'select',\n items: ConstantsHelper.tiss.tipoConsulta,\n validations: { required: true },\n layout: { width: 280 },\n },\n indicacaoAcidente: {\n label: 'Indicação de acidente',\n type: 'select',\n items: ConstantsHelper.tiss.indicadorAcidente,\n validations: { required: true },\n layout: { width: 240 },\n },\n observacao: { label: 'Observação', type: 'textarea' },\n },\n }),\n async loadEditCallback({ id, setFormModel }) {\n const editValue = await TissGuiaConsultaService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n setFormModel({\n geral: {\n agendamentoId: editValue.agendamento?.id,\n convenioId: editValue.convenio.id,\n registroANS: editValue.registroANS,\n numeroGuiaPrestador: editValue.numeroGuiaPrestador,\n numeroGuiaOperadora: editValue.numeroGuiaOperadora,\n },\n paciente: {\n pacienteId: editValue.paciente.id,\n numeroCarteira: editValue.beneficiarioNumeroCarteira,\n dataNascimento: editValue.pacienteDataNascimento,\n nome: editValue.beneficiarioNome,\n cns: editValue.beneficiarioNumeroCNS,\n },\n contratado: {\n tipoDocumento: editValue.contratadoTipoDocumento,\n tipoPessoa: editValue.contratadoTipoPessoa,\n documento:\n editValue.contratadoTipoDocumento ===\n TissTipoDocumento.CODIGO_NA_OPERADORA\n ? editValue.contratadoCodigoPrestadorNaOperadora\n : editValue.contratadoTipoDocumento === TissTipoDocumento.CPF\n ? editValue.contratadoCpf\n : editValue.contratadoCnpj,\n contratadoNome: editValue.contratadoNome,\n cnes: editValue.contratadoCNES,\n profissionalNome: editValue.profissionalNome,\n conselho: editValue.profissionalConselho,\n numeroConselho: editValue.profissionalNumeroConselho,\n uf: editValue.profissionalUF,\n cbos: editValue.profissionalCBOS,\n },\n atendimento: {\n data: editValue.atendimentoData,\n tipoConsulta: editValue.atendimentoTipoConsulta,\n indicacaoAcidente: editValue.indicacaoAcidente,\n observacao: editValue.observacao,\n },\n procedimentos: [\n {\n id: uuid(),\n tabela: TissTabela.TB_22,\n codigo: '10101012',\n descricao: 'CONSULTA',\n quantidade: 1,\n valorUnitario: editValue.procedimentoValor,\n valorTotal: 0,\n },\n ],\n });\n },\n });\n\n function mapSchemaContratadoDocumento({\n contratado,\n }: ITissGuiaConsultaModel): IFormInputType {\n if (contratado.tipoDocumento === TissTipoDocumento.CODIGO_NA_OPERADORA) {\n return {\n label: 'Código na Operadora',\n type: 'text',\n maxLength: 14,\n validations: { required: true },\n layout: { width: 240 },\n };\n } else if (contratado.tipoDocumento === TissTipoDocumento.CPF) {\n return {\n label: 'CPF',\n type: 'text',\n mask: 'cpf',\n validations: { required: true, cpf: true },\n layout: { width: 240 },\n };\n }\n\n return {\n label: 'CNPJ',\n type: 'text',\n mask: 'cnpj',\n validations: { required: true, cnpj: true },\n layout: { width: 240 },\n };\n }\n}\n\nfunction setPacienteInfo({\n $form,\n paciente,\n}: Pick, '$form'> & {\n paciente: IPacienteFragment | null;\n}) {\n $form.value.model.paciente.pacienteId = paciente?.id || null;\n\n $form.value.model.paciente.nome = paciente?.nome;\n $form.value.model.paciente.dataNascimento = paciente?.dataNascimento;\n $form.value.model.paciente.cns = paciente?.cns;\n\n $form.value.model.paciente.numeroCarteira = paciente?.convenios?.find(\n f => f.convenio.id === $form.value.model.geral.convenioId,\n )?.numeroCarteirinha;\n}\n\nfunction setConvenioInfo({\n $form,\n convenio,\n profissionalId,\n}: Pick, '$form'> & {\n convenio: IConvenioFragment | null;\n profissionalId: string;\n}) {\n if (convenio?.particular) return;\n\n $form.value.model.geral.convenioId = convenio?.id || null;\n\n $form.value.model.geral.registroANS = convenio?.registroAns;\n\n if (\n $form.value.model.contratado.tipoDocumento ===\n TissTipoDocumento.CODIGO_NA_OPERADORA\n ) {\n $form.value.model.contratado.documento = convenio?.profissionais?.find(\n f => f.profissional.id === profissionalId,\n )?.codigoOperadora;\n }\n}\n\nasync function loadNumeroGuiaPrestador({\n isEdit,\n profissionalId,\n $form,\n}: Pick, '$form' | 'isEdit'> & {\n profissionalId: string;\n}) {\n if (isEdit) return;\n\n const next = await TissNextService.getNext({ profissionalId, tipo: 'guia' });\n\n if (!next?.guia) return;\n\n $form.value.model.geral.numeroGuiaPrestador = next.guia.toString();\n}\n\nasync function loadProfissionalInfo({\n isEdit,\n profissionalId,\n $form,\n}: Pick, '$form' | 'isEdit'> & {\n profissionalId: string;\n}) {\n if (isEdit) return;\n\n const { clinicaId } = useAuthInfo();\n\n if (!clinicaId) return;\n\n const [clinica, profissional] = await Promise.all([\n ClinicaService.getById(clinicaId),\n UserService.getById(profissionalId),\n ]);\n\n if (!clinica || !profissional) return;\n\n $form.value.model.contratado.contratadoNome = clinica.nome;\n $form.value.model.contratado.cnes = clinica.cnes;\n\n $form.value.model.contratado.profissionalNome = profissional.nome;\n $form.value.model.contratado.conselho = profissional.conselho;\n $form.value.model.contratado.numeroConselho = profissional.conselhoRegistro;\n $form.value.model.contratado.uf = profissional.conselhoUf;\n $form.value.model.contratado.cbos = profissional.cbo;\n\n watchLazy(\n () => $form.value.model.contratado.tipoPessoa,\n tipoPessoa => {\n $form.value.model.contratado.contratadoNome =\n tipoPessoa === TissTipoPessoa.FISICA ? '' : clinica.nome;\n },\n );\n}\n\nasync function loadAgendamentoInfo({\n isEdit,\n profissionalId,\n $form,\n}: Pick, '$form' | 'isEdit'> & {\n profissionalId: string;\n}) {\n const agendamentoId = useRoute().query.aid as string | null;\n\n if (isEdit || !agendamentoId) return;\n\n const agendamento = await AgendamentoService.getById(agendamentoId);\n\n if (\n !agendamento?.convenio?.id ||\n !agendamento?.paciente?.id ||\n agendamento.procedimentos?.length !== 1\n )\n return;\n\n const [convenio, paciente, procedimento] = await Promise.all([\n ConvenioService.getById(agendamento.convenio.id),\n PacienteService.getById(agendamento.paciente.id),\n ProcedimentoService.getById(agendamento.procedimentos[0].procedimento.id),\n ]);\n\n if (!convenio || !paciente || !procedimento) return;\n\n setConvenioInfo({ $form, convenio, profissionalId });\n\n setPacienteInfo({ $form, paciente });\n\n // Set valor da consulta\n $form.value.model.procedimentos[0].valorUnitario =\n procedimento.convenios?.find(f => f.convenio.id === convenio.id)?.valor ||\n procedimento.valor ||\n 0;\n $form.value.model.procedimentos[0].valorTotal =\n $form.value.model.procedimentos[0].valorUnitario *\n $form.value.model.procedimentos[0].quantidade;\n\n $form.value.model.geral.agendamentoId = agendamentoId;\n}\n","import { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { TissGuiaConsultaService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { ITissGuiaConsultaModel } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissGuiaConsultaForm } from '../../components/forms/TissGuiaConsultaForm';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement form page\nexport default createComponent({\n name: 'TissGuiaConsultaFormPage',\n setup(props, ctx) {\n const { page, handleSubmit, isEdit } = useFormPage({\n ctx,\n\n async submitCallback(model) {\n if (page.id) {\n // return TissGuiaConsultaService.update(page.id, model);\n } else {\n // return TissGuiaConsultaService.create(model);\n }\n },\n });\n\n const $title = computed(() =>\n isEdit ? 'Editar Guia de Consulta' : 'Nova Guia de Consulta',\n );\n\n async function handleDelete(id: string) {\n return TissGuiaConsultaService.delete(id);\n }\n\n return () => (\n \n \n \n );\n },\n});\n","import { PageSection } from '@/components/page/PageSection';\nimport { FormHeader } from '@/components/typography/FormHeader';\nimport { createComponent } from '@/lib/vue';\nimport { IRequireField } from '@/typings';\n\ninterface IJsxProps {\n // model\n value?: string[];\n convenioId?: string | null;\n loteId?: string | null;\n initialValue?: string[] | null;\n}\n\ntype IProps = IRequireField;\n\nexport const TissLoteGuias = createComponent({\n name: 'TissLoteGuias',\n props: {\n value: { type: Array, required: true },\n convenioId: { type: String },\n loteId: { type: String },\n initialValue: { type: Array },\n },\n setup(props: IProps, ctx) {\n // const { $selected, setSelected, headers } = useData();\n\n // const { $data: $items, $loading } = useTissGuiasConsultasQuery(props);\n\n // const { handleSelectedChange } = useEvents({\n // props,\n // ctx,\n // $items,\n // setSelected,\n // });\n\n return () => (\n \n \n\n {/* */}\n \n );\n },\n});\n\n// function useData() {\n// const [$selected, setSelected] = useValue([]);\n\n// const headers: Array> = [\n// {\n// text: 'Paciente',\n// value: 'paciente',\n// mapValue: v => v.paciente,\n// },\n// {\n// text: 'Data da consulta',\n// value: 'atendimentoData',\n// mapValue: v => DateHelpers.formatDate(v.atendimentoData),\n// },\n// ];\n\n// return { $selected, setSelected, headers };\n// }\n\n// function useEvents({\n// props,\n// ctx,\n// $items,\n// setSelected,\n// }: {\n// props: IProps;\n// ctx: SetupContext;\n// $items: Ref;\n// setSelected: (v: ITissLoteGuiaItem[]) => void;\n// }) {\n// function handleSelectedChange(newValue: ITissLoteGuiaItem[] | null) {\n// setSelected(newValue || []);\n\n// const value = (newValue || []).map(v => v.id);\n\n// emitInput(value);\n// }\n\n// function emitInput(value: string[]) {\n// ctx.emit('input', value);\n// }\n\n// watchRun($items, items => {\n// if (props.initialValue) {\n// setSelected(\n// (items || []).filter(f => props.initialValue!.includes(f.id)),\n// );\n// }\n// });\n\n// return {\n// handleSelectedChange,\n// emitInput,\n// };\n// }\n\n// function useTissGuiasConsultasQuery(props: IProps) {\n// return useQueryConfig<\n// ITissGuiasConsultasQuery,\n// ITissLoteGuiaItem[],\n// ITissGuiasConsultasQueryVariables\n// >({\n// query: QueryGraphql.TissGuiasConsultasQuery,\n// variables() {\n// if (props.loteId) {\n// return {\n// where: {\n// OR: [\n// {\n// convenioId: props.convenioId,\n// loteId: props.loteId,\n// },\n// {\n// convenioId: props.convenioId,\n// loteId: null,\n// },\n// ],\n// },\n// };\n// }\n\n// return {\n// where: {\n// convenioId: props.convenioId,\n// loteId: null,\n// },\n// };\n// },\n// mapData: result =>\n// result?.tissGuiasConsultas.nodes.map(v => ({\n// id: v.id,\n// paciente: v.paciente.nome,\n// atendimentoData: v.atendimentoData,\n// })) || [],\n// enabled: () => !!props.convenioId,\n// });\n// }\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport { useValue } from '@/lib/composables';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { ConstantsHelper } from '@/lib/constants/helper';\nimport { TissLoteVersao } from '@/lib/constants/helper/tiss/loteVersao';\nimport { LookupsConfigs } from '@/lib/form/lookups';\nimport { TissLoteService } from '@/lib/services';\nimport { TissNextService } from '@/lib/services/tiss/tissNext.service';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport {\n IFormSchema,\n IFormValidationErrors,\n ITissLoteFormModel,\n ITissLoteModel,\n TissLoteTipo,\n} from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\nimport { TissLoteGuias } from './TissLoteGuias';\n\ninterface IProps extends IFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\nexport const TissLoteForm = createComponent({\n name: 'TissLoteForm',\n props: {\n page: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const indexRoute = Routes.app.tiss(profissionalId).lotes.index;\n\n const { $form, $schema, emitDelete, emitSubmit, isEdit, $guiasIds } =\n useForm(props, ctx);\n\n loadNumeroLote({ $form, isEdit, profissionalId });\n\n return () => (\n \n \n \n \n\n \n \n );\n },\n});\n\nfunction useForm(props: IProps, ctx: SetupContext) {\n const [$guiasIds, setGuiasIds] = useValue([]);\n\n const formConfig = useFormConfig<\n ITissLoteFormModel,\n IFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: {\n lote: {\n tipo: TissLoteTipo.GUIA_CONSULTA,\n convenioId: null,\n prestadorCodigoNaOperadora: null,\n registroANS: null,\n numeroLote: null,\n versao: TissLoteVersao.V3_05_00,\n },\n guiasIds: [],\n },\n mapSchema: (model, $form) => {\n return {\n tipo: {\n label: 'Tipo',\n type: 'select',\n items: ConstantsHelper.tiss.loteTipo,\n validations: { required: true },\n layout: { width: 260 },\n },\n versao: {\n label: 'Versão',\n type: 'select',\n items: ConstantsHelper.tiss.loteVersao,\n validations: { required: true },\n layout: { width: 200 },\n },\n convenioId: {\n label: 'Convênio',\n type: 'autocomplete',\n itemLabel: 'nome',\n lookup: LookupsConfigs.convenio({\n noParticular: true,\n onModelChange(value) {\n $form.value.model.lote.registroANS = value?.registroAns || null;\n },\n }),\n validations: { required: true },\n layout: { sm: 6 },\n },\n registroANS: {\n label: 'Registro ANS',\n type: 'text',\n mask: 'numbers6',\n validations: { required: true },\n layout: { sm: 6 },\n },\n numeroLote: {\n label: 'Número do lote',\n type: 'text',\n mask: 'numbers12',\n validations: { required: true },\n layout: { sm: 6 },\n },\n prestadorCodigoNaOperadora: {\n label: 'Código na operadora',\n type: 'text',\n maxLength: 14,\n validations: { required: true },\n layout: { sm: 6 },\n },\n };\n },\n mapValueToValidate: model => model.lote,\n mapCustomErrors: model => {\n const errors: IFormValidationErrors[] = [];\n\n if (model.guiasIds.length === 0) {\n errors.push({\n label: 'Guias',\n error: 'selecione ao menos uma guia',\n });\n }\n\n return errors;\n },\n async loadEditCallback({ id, setFormModel }) {\n const editValue = await TissLoteService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n setGuiasIds((editValue.guiasConsultas || []).map(v => v.id));\n\n setFormModel({\n lote: {\n tipo: editValue.tipo,\n convenioId: editValue.convenio.id,\n prestadorCodigoNaOperadora:\n editValue.prestadorCodigoPrestadorNaOperadora,\n registroANS: editValue.registroANS,\n numeroLote: editValue.numeroLote,\n versao: editValue.versao,\n },\n guiasIds: [...$guiasIds.value],\n });\n },\n });\n\n return { ...formConfig, $guiasIds, setGuiasIds };\n}\n\nasync function loadNumeroLote({\n isEdit,\n profissionalId,\n $form,\n}: Pick, '$form' | 'isEdit'> & {\n profissionalId: string;\n}) {\n if (isEdit) return;\n\n const next = await TissNextService.getNext({ profissionalId, tipo: 'lote' });\n\n $form.value.model.lote.numeroLote = next?.lote?.toString() || null;\n}\n","import { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { TissLoteService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { ITissLoteFormModel } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissLoteForm } from '../../components/lote/TissLoteForm';\nimport { TissPage } from '../../components/TissPage';\n\nexport default createComponent({\n name: 'TissLoteFormPage',\n setup(props, ctx) {\n const { page, handleSubmit, isEdit } = useFormPage({\n ctx,\n async submitCallback(model) {\n if (page.id) {\n // return TissLoteService.update(page.id, model);\n } else {\n // return TissLoteService.create(model);\n }\n },\n });\n\n const $title = computed(() =>\n isEdit ? 'Editar Lote de Guias' : 'Novo Lote de Guias',\n );\n\n async function handleDelete(id: string) {\n return TissLoteService.delete(id);\n }\n\n return () => (\n \n \n \n );\n },\n});\n","import { computed, SetupContext } from '@vue/composition-api';\nimport { useState } from '.';\nimport { watchRun } from '../vue';\nimport { useBreakpoints } from './utils/useBreakpoints';\nimport { useRoute } from './utils/useRouter';\nimport { useVuetify } from './utils/useVuetify';\n\nexport function useContextSidebar(ctx: SetupContext) {\n const width = 300;\n\n const miniWidth = 40;\n\n const $temporarySidebarOpen = useState(s => s.layout.temporarySidebar.open);\n\n const { $showMiniSidebar, $width: $currentWidth } = useBreakpoints();\n\n const $miniVariant = computed(() =>\n $showMiniSidebar.value ? $mini.value : false,\n );\n\n const $mini = useState(s => s.layout.contextSidebar.mini);\n\n return {\n $currentWidth,\n width,\n miniWidth,\n $temporarySidebarOpen,\n $showMiniSidebar,\n $miniVariant,\n $mini,\n };\n}\n\nexport function useUpdateAppLeft(ctx: SetupContext) {\n const {\n $miniVariant,\n miniWidth,\n width,\n $temporarySidebarOpen,\n $currentWidth,\n } = useContextSidebar(ctx);\n\n function checkNoSidebar() {\n const fullPath = useRoute().fullPath;\n\n const routesNoSidebar = [\n '/pacientes',\n '/configuracoes/meu-perfil',\n '/contatos',\n '/cid',\n ];\n\n return (\n routesNoSidebar.includes(fullPath) ||\n // routes => /cid/*\n fullPath.includes('/cid/') ||\n // routes => /contatos/*\n fullPath.includes('/contatos/') ||\n // routes => /erro/*\n fullPath.includes('/erro/')\n );\n }\n\n function updateAppLeft() {\n const vuetify = useVuetify();\n\n if (checkNoSidebar()) {\n return (vuetify.application.left = 0);\n }\n\n // fix the left padding issue\n vuetify.application.left = $miniVariant.value ? miniWidth : width;\n }\n\n watchRun($temporarySidebarOpen, updateAppLeft);\n\n watchRun($currentWidth, updateAppLeft);\n\n watchRun(() => useRoute().fullPath, updateAppLeft);\n}\n","import { useContextSidebar } from '@/lib/composables/useContextSidebar';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\nimport { createComponent, modifiers } from '@/lib/vue';\nimport { LayoutState } from '@/store/modules/layout.store';\nimport { computed } from '@vue/composition-api';\n\nexport const ContextSidebar = createComponent({\n name: 'ContextSidebar',\n setup(props, ctx) {\n const { $mini, width, miniWidth, $miniVariant, $showMiniSidebar } =\n useContextSidebar(ctx);\n\n const $miniIcon = computed(() =>\n $mini.value ? MyIcons.sidebarExpand : MyIcons.sidebarCollapse,\n );\n\n return () => {\n const defaultSlot = ctx.slots.default?.();\n\n return (\n
\n \n {$showMiniSidebar.value && (\n \n {$miniIcon.value}\n \n )}\n\n {!$miniVariant.value && defaultSlot}\n \n
\n );\n };\n },\n});\n\nexport default ContextSidebar;\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { TissGuiaHonorariosService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport {\n ITissGuiaHonorariosFormSchema,\n ITissGuiaHonorariosModel,\n} from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\n// TODO: implement form\nexport const TissGuiaHonorariosForm = createComponent({\n name: 'TissGuiaHonorariosForm',\n props: {\n page: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const indexRoute = Routes.app.tiss(profissionalId).guiasHonorarios.index;\n\n // TODO: handle agendimentoId, add to model on save\n // const agendamentoId = useRoute().query.aid as string | null;\n\n const { $form, $schema, emitDelete, emitSubmit } = useForm(props, ctx);\n\n return () => (\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n );\n },\n});\n\nfunction useForm(props: IProps, ctx: SetupContext) {\n const { $form, emitSubmit, emitDelete, $schema } = useFormConfig<\n ITissGuiaHonorariosModel,\n ITissGuiaHonorariosFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: {\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n },\n mapSchema: model => {\n // TODO: better form schema\n return {\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n };\n },\n async loadEditCallback({ id, setFormModel }) {\n const editValue = await TissGuiaHonorariosService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n setFormModel({\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n });\n },\n });\n\n return { $form, emitSubmit, emitDelete, $schema };\n}\n","import { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { TissGuiaHonorariosService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { ITissGuiaHonorariosModel } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissGuiaHonorariosForm } from '../../components/forms/TissGuiaHonorariosForm';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement form page\nexport default createComponent({\n name: 'TissGuiaHonorariosFormPage',\n setup(props, ctx) {\n const { page, handleSubmit, isEdit } =\n useFormPage({\n ctx,\n async submitCallback(model) {\n if (page.id) {\n // return TissGuiaHonorariosService.update(page.id, model);\n } else {\n // return TissGuiaHonorariosService.create(model);\n }\n },\n });\n\n const $title = computed(() =>\n isEdit ? 'Editar Guia de Honorarios' : 'Nova Guia de Honorarios',\n );\n\n async function handleDelete(id: string) {\n return TissGuiaHonorariosService.delete(id);\n }\n\n return () => (\n \n \n \n );\n },\n});\n","import { createComponent } from '@/lib/vue';\n\ninterface IProps {\n title: string;\n}\n\nexport const ContextSidebarMenuSubheader = createComponent({\n name: 'ContextSidebarMenuSubheader',\n props: {\n title: { type: String, required: true },\n },\n setup(props, ctx) {\n return () => {props.title};\n },\n});\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\n\ninterface IProps {\n menu: IMenu;\n}\n\nexport const ContextSidebarMenuTileAction = createComponent({\n name: 'ContextSidebarMenuTileAction',\n props: {\n menu: { type: Object, required: true },\n },\n setup(props, ctx) {\n return () => {\n const { menu } = props;\n\n const errorText = { 'text-error': !!menu.hasError };\n\n return (\n \n {menu.icon && (\n \n {menu.icon}\n \n )}\n\n \n {menu.text}\n \n \n );\n };\n },\n});\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { ContextSidebarMenuHeader } from './ContextSidebarMenuHeader';\nimport { ContextSidebarMenuSubheader } from './ContextSidebarMenuSubheader';\nimport { ContextSidebarMenuTileAction } from './ContextSidebarMenuTileAction';\nimport { ContextSidebarMenuTileLink } from './ContextSidebarMenuTileLink';\n\ninterface IProps {\n menus: readonly IMenu[];\n}\n\nexport const ContextSidebarMenu = createComponent({\n name: 'ContextSidebarMenu',\n props: {\n menus: { type: Array, required: true },\n },\n setup(props, ctx) {\n const $menus = computed(() => props.menus.filter(f => !f.hidden));\n\n return () => {$menus.value.map(menuItem)};\n },\n});\n\nconst menuItem = (menu: IMenu, index: number) => {\n if (menu.header && menu.text) {\n return ;\n } else if (menu.subheader && menu.text) {\n return ;\n } else if (menu.divider) {\n return ;\n } else if (menu.action) {\n return ;\n } else if (menu.to) {\n return ;\n }\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"ITissNextGuiaQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"profissionalId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tissNextGuia\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"profissionalId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"profissionalId\"}}}],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":99}};\n doc.loc.source = {\"body\":\"query ITissNextGuiaQuery($profissionalId: ID!) {\\n tissNextGuia(profissionalId: $profissionalId)\\n}\\n\",\"name\":\"GraphQL request\",\"locationOffset\":{\"line\":1,\"column\":1}};\n \n\n var names = {};\n function unique(defs) {\n return defs.filter(\n function(def) {\n if (def.kind !== 'FragmentDefinition') return true;\n var name = def.name.value\n if (names[name]) {\n return false;\n } else {\n names[name] = true;\n return true;\n }\n }\n )\n }\n \n\n // Collect any fragment/type references from a node, adding them to the refs Set\n function collectFragmentReferences(node, refs) {\n if (node.kind === \"FragmentSpread\") {\n refs.add(node.name.value);\n } else if (node.kind === \"VariableDefinition\") {\n var type = node.type;\n if (type.kind === \"NamedType\") {\n refs.add(type.name.value);\n }\n }\n\n if (node.selectionSet) {\n node.selectionSet.selections.forEach(function(selection) {\n collectFragmentReferences(selection, refs);\n });\n }\n\n if (node.variableDefinitions) {\n node.variableDefinitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n\n if (node.definitions) {\n node.definitions.forEach(function(def) {\n collectFragmentReferences(def, refs);\n });\n }\n }\n\n var definitionRefs = {};\n (function extractReferences() {\n doc.definitions.forEach(function(def) {\n if (def.name) {\n var refs = new Set();\n collectFragmentReferences(def, refs);\n definitionRefs[def.name.value] = refs;\n }\n });\n })();\n\n function findOperation(doc, name) {\n for (var i = 0; i < doc.definitions.length; i++) {\n var element = doc.definitions[i];\n if (element.name && element.name.value == name) {\n return element;\n }\n }\n }\n\n function oneQuery(doc, operationName) {\n // Copy the DocumentNode, but clear out the definitions\n var newDoc = {\n kind: doc.kind,\n definitions: [findOperation(doc, operationName)]\n };\n if (doc.hasOwnProperty(\"loc\")) {\n newDoc.loc = doc.loc;\n }\n\n // Now, for the operation we're running, find any fragments referenced by\n // it or the fragments it references\n var opRefs = definitionRefs[operationName] || new Set();\n var allRefs = new Set();\n var newRefs = new Set();\n\n // IE 11 doesn't support \"new Set(iterable)\", so we add the members of opRefs to newRefs one by one\n opRefs.forEach(function(refName) {\n newRefs.add(refName);\n });\n\n while (newRefs.size > 0) {\n var prevRefs = newRefs;\n newRefs = new Set();\n\n prevRefs.forEach(function(refName) {\n if (!allRefs.has(refName)) {\n allRefs.add(refName);\n var childRefs = definitionRefs[refName] || new Set();\n childRefs.forEach(function(childRef) {\n newRefs.add(childRef);\n });\n }\n });\n }\n\n allRefs.forEach(function(refName) {\n var op = findOperation(doc, refName);\n if (op) {\n newDoc.definitions.push(op);\n }\n });\n\n return newDoc;\n }\n \n module.exports = doc;\n \n module.exports[\"ITissNextGuiaQuery\"] = oneQuery(doc, \"ITissNextGuiaQuery\");\n \n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { QueryGraphql } from '@/graphql/query';\nimport { useQueryConfig } from '@/lib/composables/useQueryConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { DateHelpers } from '@/lib/helpers/date.helpers';\nimport { TissNextService } from '@/lib/services/tiss/tissNext.service';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport {\n IDataTableHeader,\n IIndexDataTableActions,\n IIndexDataTableButton,\n ITissLotesItem,\n ITissLotesQuery,\n ITissLotesQueryVariables,\n} from '@/typings';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: download xml\nexport default createComponent({\n name: 'TissLotesPage',\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n TissNextService.nextLote(profissionalId);\n\n const btn: IIndexDataTableButton = {\n text: 'Novo Lote',\n to: Routes.app.tiss(profissionalId).lotes.new,\n };\n\n const actions: IIndexDataTableActions = {\n editRoute: Routes.app.tiss(profissionalId).lotes.edit,\n };\n\n const headers: Array> = [\n {\n text: 'Número',\n value: 'numero',\n mapValue: v => v.numero,\n },\n {\n text: 'Convênio',\n value: 'convenio',\n mapValue: v => v.convenio,\n },\n {\n text: 'Data',\n value: 'data',\n mapValue: v => DateHelpers.formatDate(v.data),\n },\n {\n text: 'Versão TISS',\n value: 'versaoTiss',\n mapValue: v => v.versaoTiss,\n },\n {\n text: 'Download',\n value: 'download',\n mapValue: v => v.download,\n },\n ];\n\n const { $data, $loading } = useTissLotesQuery(profissionalId);\n\n return () => (\n \n \n \n );\n },\n});\n\nfunction useTissLotesQuery(profissionalId: string) {\n return useQueryConfig<\n ITissLotesQuery,\n ITissLotesItem[],\n ITissLotesQueryVariables\n >({\n query: QueryGraphql.TissLotesQuery,\n variables: () => ({ profissionalId }),\n mapData: result =>\n result?.tissLotes.nodes.map(v => ({\n id: v.id,\n numero: v.numeroLote,\n convenio: v.convenio.nome,\n data: v.createdAt,\n versaoTiss: null,\n download: null,\n })) || [],\n });\n}\n","import { ConstantsHelper } from '@/lib/constants/helper';\n\nexport const getTissProcedimentoTabela = (tabela: string | undefined) =>\n ConstantsHelper.tiss.tabelas.find(f => f.value === tabela)?.label;\n\nexport const getTissProcedimentoSexo = (sexo: string | undefined) =>\n ConstantsHelper.tiss.procedimentoSexos.find(f => f.value === sexo)?.label;\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { MyPage } from '@/components/page/MyPage';\nimport { QueryGraphql } from '@/graphql/query';\nimport { useQueryConfig } from '@/lib/composables/useQueryConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport {\n getTissProcedimentoSexo,\n getTissProcedimentoTabela,\n} from '@/lib/helpers/models/tissProcedimento';\nimport { TissProcedimentoService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport {\n IIndexDataTableActions,\n IIndexDataTableButton,\n ITissProcedimentoItem,\n ITissProcedimentosQuery,\n ITissProcedimentosQueryVariables,\n IDataTableHeader,\n} from '@/typings';\n\nexport default createComponent({\n name: 'TissProcedimentosPage',\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const btn: IIndexDataTableButton = {\n text: 'Novo Procedimento',\n to: Routes.app.tiss(profissionalId).procedimentos.new,\n };\n\n const actions: IIndexDataTableActions = {\n editRoute: Routes.app.tiss(profissionalId).procedimentos.edit,\n removeMany: TissProcedimentoService.deleteMany,\n };\n\n const headers: Array> = [\n {\n text: 'Tabela',\n value: 'tabela',\n mapValue: v => getTissProcedimentoTabela(v.tabela),\n width: 240,\n },\n {\n text: 'Código',\n value: 'codigo',\n mapValue: v => v.codigo,\n },\n {\n text: 'Nome',\n value: 'nome',\n mapValue: v => v.nome,\n },\n {\n text: 'Sexo',\n value: 'sexo',\n mapValue: v => getTissProcedimentoSexo(v.sexo),\n },\n ];\n\n const { $data, $loading } = useTissProcedimentosQuery();\n\n return () => (\n \n \n \n );\n },\n});\n\nfunction useTissProcedimentosQuery() {\n return useQueryConfig<\n ITissProcedimentosQuery,\n ITissProcedimentoItem[],\n ITissProcedimentosQueryVariables\n >({\n query: QueryGraphql.TissProcedimentosQuery,\n variables: () => ({}),\n mapData: result =>\n result?.tissProcedimentos.nodes.map(v => ({\n id: v.id,\n tabela: v.tabela,\n codigo: v.codigo,\n nome: v.nome,\n sexo: v.sexo,\n })) || [],\n });\n}\n","import { createComponent } from '@/lib/vue';\nimport { IMenu } from '@/typings';\nimport { MyTheme } from '@/lib/helpers/MyTheme';\n\ninterface IProps {\n menu: IMenu;\n}\n\nexport const ContextSidebarMenuTileLink = createComponent({\n name: 'ContextSidebarMenuTileLink',\n props: {\n menu: { type: Object, required: true },\n },\n setup(props, ctx) {\n return () => {\n const { menu } = props;\n\n const errorClass = menu.hasError ? 'text-error' : '';\n\n return (\n \n {listItemAction({ menu, errorClass })}\n\n \n {menu.text}\n \n \n );\n };\n },\n});\n\nfunction listItemAction({\n menu,\n errorClass,\n}: {\n menu: IMenu;\n errorClass: string;\n}) {\n if (menu.imageUrl) {\n return (\n \n \n {menu.text}\n \n \n );\n } else if (menu.icon) {\n return (\n \n {menu.icon}\n \n );\n }\n\n return null;\n}\n","import { createComponent } from '@/lib/vue';\n\ninterface IProps {\n title: string;\n}\n\nexport const ContextSidebarMenuHeader = createComponent({\n name: 'ContextSidebarMenuHeader',\n props: {\n title: { type: String, required: true },\n },\n setup(props, ctx) {\n return () => (\n
\n \n {props.title}\n \n\n \n
\n );\n },\n});\n\nexport default ContextSidebarMenuHeader;\n","import { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport { IItem, IMenuSelected } from '@/typings';\nimport { computed, ComputedRef, Ref } from '@vue/composition-api';\nimport isString from 'lodash/isString';\n\ninterface IProps {\n selected: Array;\n menus: readonly IMenuSelected[];\n}\n\nexport const BtnSelectedRows = createComponent({\n name: 'BtnSelectedRows',\n props: {\n selected: { type: Array, required: true },\n menus: { type: Array, required: true },\n },\n setup(props, ctx) {\n const $show = computed(\n () => !!props.selected.length && !!props.menus.length,\n );\n\n const $label = computed(() => {\n const num = props.selected.length;\n const label = num > 1 ? 'selecionados' : 'selecionado';\n\n return `${num} ${label}`;\n });\n\n const $ids = computed(() =>\n props.selected.map(v => (isString(v) ? v : v.id)),\n );\n\n return () => (\n \n {$show.value && (\n \n {listMenus({ props, $ids })}\n \n )}\n \n );\n },\n});\n\nconst menuActivator =\n ($label: Ref) =>\n ({ on }) =>\n (\n \n {MyIcons.selectedRows}\n\n {$label.value}\n\n {MyIcons.menuDown}\n \n );\n\nconst listMenus = ({\n props,\n $ids,\n}: {\n props: IProps;\n $ids: ComputedRef;\n}) => (\n \n {props.menus.map(menu => (\n menu.action($ids.value, props.selected)}\n >\n \n {menu.icon}\n \n\n \n {menu.text}\n \n \n ))}\n \n);\n","import { createComponent } from '@/lib/vue';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement index page\nexport default createComponent({\n name: 'TissGuiasSpSadtsPage',\n setup(props, ctx) {\n return () => (\n \n );\n },\n});\n","import { SetupContext } from '@vue/composition-api';\n\nexport const bindProps = props => ({ attrs: props });\n\nexport const passDownScopedSlots = (scopedSlots: SetupContext['slots']) =>\n Object.entries(scopedSlots).reduce(\n (obj, [slotName, slot]) => ({\n ...obj,\n [slotName]: props => slot && slot(props),\n }),\n {} as any,\n );\n","import { useValue } from '@/lib/composables';\nimport { passDownScopedSlots } from '@/lib/helpers/jsx';\nimport { MyIcons } from '@/lib/helpers/MyIcons';\nimport { createComponent } from '@/lib/vue';\nimport {\n IIndexDataTableActions,\n IIndexDataTableButton,\n IMenuSelected,\n IDataTableHeader,\n} from '@/typings';\nimport { computed, ComputedRef, Ref, SetupContext } from '@vue/composition-api';\nimport { BtnSelectedRows } from '../buttons/BtnSelectedRows';\nimport { PageSection } from '../page/PageSection';\nimport { FormHeader } from '../typography/FormHeader';\nimport { DataTable } from './DataTable';\n\ninterface IProps {\n title?: string | null;\n titleText?: string | null;\n btn?: IIndexDataTableButton | null;\n headers: readonly IDataTableHeader[];\n items?: readonly any[] | null;\n loading?: boolean;\n selectable?: boolean;\n actions?: IIndexDataTableActions | null;\n noSearch?: boolean;\n divider?: boolean;\n draggable?: boolean;\n}\n\ninterface IEvents {\n onReorder: (items: any[]) => void;\n}\n\nexport const IndexDataTable = createComponent({\n name: 'IndexDataTable',\n props: {\n title: { type: String },\n titleText: { type: String },\n btn: { type: Object },\n headers: { type: Array, required: true },\n items: { type: Array, default: () => [] },\n loading: { type: Boolean, default: false },\n selectable: { type: Boolean, default: true },\n actions: { type: Object },\n noSearch: { type: Boolean, default: false },\n divider: { type: Boolean, default: false },\n draggable: { type: Boolean, default: false },\n },\n setup(props, ctx) {\n const [$selected, setSelected] = useValue([]);\n\n const { $button, $selectedMenus, $showActionsRow } = useComputeds({\n props,\n $selected,\n });\n\n const { emitReorder } = useEvents(ctx);\n\n return () => (\n \n {(props.title || props.titleText) && (\n \n )}\n\n {actionsRow({\n ctx,\n $selected,\n $showActionsRow,\n $button,\n $selectedMenus,\n })}\n\n \n \n );\n },\n});\n\nfunction useComputeds({\n props,\n $selected,\n}: {\n props: IProps;\n $selected: Ref;\n}) {\n const $button = computed(() => ({\n to: null,\n onClick: () => null,\n icon: MyIcons.new,\n text: '',\n color: 'primary',\n outlined: false,\n ...props.btn,\n }));\n\n const $showActionsRow = computed(\n () => !!props.btn || (!!props.selectable && !!props.actions?.removeMany),\n );\n\n const $selectedMenus = computed(() => {\n let menus: IMenuSelected[] = [];\n\n const selecionado =\n $selected.value.length > 1 ? 'selecionados' : 'selecionado';\n\n if (props.actions) {\n if (props.actions.removeMany) {\n menus.push({\n text: `Excluir ${selecionado}`,\n icon: MyIcons.remove,\n action: props.actions.removeMany,\n });\n }\n\n if (props.actions.selectedMenus) {\n menus = [...menus, ...props.actions.selectedMenus];\n }\n }\n\n return menus;\n });\n\n return {\n $button,\n $showActionsRow,\n $selectedMenus,\n };\n}\n\nfunction useEvents(ctx: SetupContext) {\n function emitReorder(items: any[]) {\n ctx.emit('reorder', items);\n }\n\n return { emitReorder };\n}\n\nconst actionsRow = ({\n ctx,\n $selected,\n $showActionsRow,\n $button,\n $selectedMenus,\n}: {\n ctx: SetupContext;\n $selected: Ref;\n $showActionsRow: Ref;\n $button: Ref;\n $selectedMenus: ComputedRef;\n}) => {\n const actionsSlot = ctx.slots.actions?.();\n\n return (\n $showActionsRow.value && (\n
\n \n\n \n\n {actionsSlot || (\n \n {$button.value.icon}\n {$button.value.text}\n \n )}\n
\n )\n );\n};\n","import { InputSelect } from '@/components/form/inputs/InputSelect';\nimport { useAuthInfo } from '@/lib/composables/useAuthInfo';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { createComponent } from '@/lib/vue';\nimport { computed } from '@vue/composition-api';\n\ninterface IProps {\n select: boolean;\n text: string;\n form: boolean;\n}\n\ninterface IEvents {\n onInput: (value: string | null) => void;\n}\n\nexport const AlertSelectProfissional = createComponent({\n name: 'AlertSelectProfissional',\n props: {\n select: { type: Boolean, default: false },\n text: { type: String, required: true },\n form: { type: Boolean, default: false },\n },\n setup(props, ctx) {\n const { profissionalId, $items, $name } = useComputeds();\n\n function emitInput(value: string | null) {\n ctx.emit('input', value);\n }\n\n return () => (\n \n
\n {props.text}\n\n {props.select ? (\n
\n \n
\n ) : (\n {$name.value}\n )}\n
\n \n );\n },\n});\n\nfunction useComputeds() {\n const { profissionalId } = useRouteParams();\n\n const { $user, $clinica } = useAuthInfo();\n\n const $name = computed(\n () =>\n $clinica.value?.profissionais.find(f => f.id === profissionalId)?.nome ||\n $user.value?.nome,\n );\n\n const $items = computed(\n () =>\n $clinica.value?.profissionais.map(v => ({\n label: v.nome,\n value: v.id,\n })) || [],\n );\n\n return { profissionalId, $name, $items };\n}\n","import TissNextGuiaQuery from '@/graphql/tiss/tissNext/tissNextGuia.graphql';\nimport TissNextLoteQuery from '@/graphql/tiss/tissNext/tissNextLote.graphql';\nimport { apolloClient } from '@/plugins/apollo';\nimport { ITissNextGuiaQuery, ITissNextLoteQuery } from '@/typings';\n\nexport const TissNextGraphql = {\n async nextGuia(profissionalId: string) {\n return apolloClient\n .query({\n query: TissNextGuiaQuery,\n variables: { profissionalId },\n })\n .then(({ data }) => data?.tissNextGuia);\n },\n\n async nextLote(profissionalId: string) {\n return apolloClient\n .query({\n query: TissNextLoteQuery,\n variables: { profissionalId },\n })\n .then(({ data }) => data?.tissNextLote);\n },\n};\n","import { TissNextGraphql } from '@/graphql/tiss/tissNext/TissNextGraphql';\nimport { handleError } from '@/lib/helpers/error';\nimport { store } from '@/store';\nimport { TissState } from '@/store/modules/tiss.store';\nimport { ITissNextState } from '@/typings';\n\nexport const TissNextService = {\n async nextGuia(profissionalId: string): Promise {\n try {\n const guia = await TissNextGraphql.nextGuia(profissionalId);\n\n TissState.setNext({ guia, profissionalId });\n\n return {\n guia,\n lote: null,\n profissionalId,\n };\n } catch (error) {\n handleError(error);\n }\n },\n\n async nextLote(profissionalId: string): Promise {\n try {\n const lote = await TissNextGraphql.nextLote(profissionalId);\n\n TissState.setNext({ lote, profissionalId });\n\n return {\n lote,\n guia: null,\n profissionalId,\n };\n } catch (error) {\n handleError(error);\n }\n },\n\n async getNext({\n profissionalId,\n tipo,\n }: {\n profissionalId: string;\n tipo: 'guia' | 'lote';\n }): Promise {\n let next = store.state.tiss.next.find(\n f => f.profissionalId === profissionalId,\n );\n\n if (!next) {\n next =\n tipo === 'guia'\n ? await TissNextService.nextGuia(profissionalId)\n : await TissNextService.nextLote(profissionalId);\n }\n\n return next || null;\n },\n};\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { TissGuiaOdontologicaService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport {\n ITissGuiaOdontologicaFormSchema,\n ITissGuiaOdontologicaModel,\n} from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\n// TODO: implement form\nexport const TissGuiaOdontologicaForm = createComponent({\n name: 'TissGuiaOdontologicaForm',\n props: {\n page: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const indexRoute = Routes.app.tiss(profissionalId).guiasOdontologicas.index;\n\n // TODO: handle agendimentoId, add to model on save\n // const agendamentoId = useRoute().query.aid as string | null;\n\n const { $form, $schema, emitDelete, emitSubmit } = useForm(props, ctx);\n\n return () => (\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n );\n },\n});\n\nfunction useForm(props: IProps, ctx: SetupContext) {\n const { $form, emitSubmit, emitDelete, $schema } = useFormConfig<\n ITissGuiaOdontologicaModel,\n ITissGuiaOdontologicaFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: {\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n },\n mapSchema: model => {\n // TODO: better form schema\n return {\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n };\n },\n async loadEditCallback({ id, setFormModel }) {\n const editValue = await TissGuiaOdontologicaService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n setFormModel({\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n });\n },\n });\n\n return { $form, emitSubmit, emitDelete, $schema };\n}\n","import { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { TissGuiaOdontologicaService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { ITissGuiaOdontologicaModel } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissGuiaOdontologicaForm } from '../../components/forms/TissGuiaOdontologicaForm';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement form page\nexport default createComponent({\n name: 'TissGuiaOdontologicaFormPage',\n setup(props, ctx) {\n const { page, handleSubmit, isEdit } =\n useFormPage({\n ctx,\n async submitCallback(model) {\n if (page.id) {\n // return TissGuiaOdontologicaService.update(page.id, model);\n } else {\n // return TissGuiaOdontologicaService.create(model);\n }\n },\n });\n\n const $title = computed(() =>\n isEdit\n ? 'Editar Guia Odontológica (GTO)'\n : 'Nova Guia Odontológica (GTO)',\n );\n\n async function handleDelete(id: string) {\n return TissGuiaOdontologicaService.delete(id);\n }\n\n return () => (\n \n \n \n );\n },\n});\n","import { createComponent } from '@/lib/vue';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement index page\nexport default createComponent({\n name: 'TissGuiasConsultasPage',\n setup(props, ctx) {\n return () => (\n \n );\n },\n});\n","import { FormFields } from '@/components/form/fields/FormFields';\nimport { MyForm } from '@/components/form/MyForm';\nimport { PageSection } from '@/components/page/PageSection';\nimport {\n IFormEvents,\n IFormProps,\n useFormConfig,\n} from '@/lib/composables/form/useFormConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { TissGuiaSpSadtService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport { redirectError } from '@/routes/utils';\nimport { ITissGuiaSpSadtFormSchema, ITissGuiaSpSadtModel } from '@/typings';\nimport { SetupContext } from '@vue/composition-api';\n\ninterface IProps extends IFormProps {}\n\ninterface IEvents extends IFormEvents {}\n\n// TODO: implement form\nexport const TissGuiaSpSadtForm = createComponent({\n name: 'TissGuiaSpSadtForm',\n props: {\n page: { type: Object, required: true },\n },\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n const indexRoute = Routes.app.tiss(profissionalId).guiasSpSadt.index;\n\n // TODO: handle agendimentoId, add to model on save\n // const agendamentoId = useRoute().query.aid as string | null;\n\n const { $form, $schema, emitDelete, emitSubmit } = useForm(props, ctx);\n\n return () => (\n \n \n \n \n\n \n \n \n\n \n \n \n\n \n \n \n \n );\n },\n});\n\nfunction useForm(props: IProps, ctx: SetupContext) {\n const { $form, emitSubmit, emitDelete, $schema } = useFormConfig<\n ITissGuiaSpSadtModel,\n ITissGuiaSpSadtFormSchema\n >({\n page: props.page,\n ctx,\n initialValue: {\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n },\n mapSchema: model => {\n // TODO: better form schema\n return {\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n };\n },\n async loadEditCallback({ id, setFormModel }) {\n const editValue = await TissGuiaSpSadtService.getById(id);\n\n if (!editValue) return redirectError(404);\n\n setFormModel({\n geral: {},\n paciente: {},\n contratado: {},\n atendimento: {},\n });\n },\n });\n\n return { $form, emitSubmit, emitDelete, $schema };\n}\n","import { useFormPage } from '@/lib/composables/form/useFormPage';\nimport { TissGuiaSpSadtService } from '@/lib/services';\nimport { createComponent } from '@/lib/vue';\nimport { ITissGuiaSpSadtModel } from '@/typings';\nimport { computed } from '@vue/composition-api';\nimport { TissGuiaSpSadtForm } from '../../components/forms/TissGuiaSpSadtForm';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: implement form page\nexport default createComponent({\n name: 'TissGuiaSpSadtFormPage',\n setup(props, ctx) {\n const { page, handleSubmit, isEdit } = useFormPage({\n ctx,\n\n async submitCallback(model) {\n if (page.id) {\n // return TissGuiaSpSadtService.update(page.id, model);\n } else {\n // return TissGuiaSpSadtService.create(model);\n }\n },\n });\n\n const $title = computed(() =>\n isEdit ? 'Editar Guia SP/SADT' : 'Nova Guia SP/SADT',\n );\n\n async function handleDelete(id: string) {\n return TissGuiaSpSadtService.delete(id);\n }\n\n return () => (\n \n \n \n );\n },\n});\n","import { AlertSelectProfissional } from '@/components/alerts/AlertSelectProfissional';\nimport { useAuthInfo } from '@/lib/composables/useAuthInfo';\nimport { useRoute, useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { createComponent } from '@/lib/vue';\nimport { router } from '@/routes';\nimport { userIsAdminAccount, userIsAdminClinica } from '@/store/utils/auth';\nimport { computed } from '@vue/composition-api';\nimport { PropType } from 'vue';\n\nexport type ITissSelectProfissionalMode = 'insert' | 'edit' | 'view';\nexport type ITissSelectProfissionalType = 'guia' | 'lote' | 'procedimento';\n\ninterface IProps {\n select: boolean;\n form: boolean;\n mode: ITissSelectProfissionalMode;\n type: ITissSelectProfissionalType;\n}\n\nexport const TissSelectProfissional = createComponent({\n name: 'TissSelectProfissional',\n props: {\n select: { type: Boolean, default: false },\n form: { type: Boolean, default: false },\n mode: {\n type: String as PropType,\n required: true,\n },\n type: {\n type: String as PropType,\n required: true,\n },\n },\n setup(props, ctx) {\n const { $text, $select } = useComputeds(props);\n\n function handleInput(value: string | null) {\n const { profissionalId } = useRouteParams();\n\n if (!value || value === profissionalId) return;\n\n const route = useRoute().fullPath;\n\n const newRoute = route.replace(profissionalId, value);\n\n router.push(newRoute);\n }\n\n return () => (\n \n );\n },\n});\n\nfunction useComputeds(props: IProps) {\n const $text = computed(() => {\n if (props.mode === 'insert') {\n return `Você está inserindo ${props.type} para:`;\n } else if (props.mode === 'edit') {\n return `Você está alterando ${props.type} de:`;\n }\n // else if (props.modo === 'view')\n return `Você está vizualizando ${props.type}s de:`;\n });\n\n const { $clinica } = useAuthInfo();\n\n const $select = computed(\n () =>\n props.select &&\n (userIsAdminClinica() || userIsAdminAccount()) &&\n $clinica.value &&\n $clinica.value.profissionais.length > 1,\n );\n\n return { $text, $select };\n}\n","import { MyPage } from '@/components/page/MyPage';\nimport { createComponent } from '@/lib/vue';\nimport { PropType } from 'vue';\nimport {\n ITissSelectProfissionalMode,\n ITissSelectProfissionalType,\n TissSelectProfissional,\n} from './TissSelectProfissional';\n\nexport const TissPage = createComponent({\n name: 'TissPage',\n props: {\n title: { type: String, required: true },\n select: { type: Boolean, default: false },\n form: { type: Boolean, default: false },\n mode: {\n type: String as PropType,\n required: true,\n },\n type: {\n type: String as PropType,\n required: true,\n },\n },\n setup(props, ctx) {\n return () => {\n const defaultSlot = ctx.slots.default?.();\n\n return (\n
\n \n\n \n {defaultSlot}\n \n
\n );\n };\n },\n});\n","import { IndexDataTable } from '@/components/datatable/IndexDataTable';\nimport { QueryGraphql } from '@/graphql/query';\nimport { useQueryConfig } from '@/lib/composables/useQueryConfig';\nimport { useRouteParams } from '@/lib/composables/utils/useRouter';\nimport { DateHelpers } from '@/lib/helpers/date.helpers';\nimport { TissNextService } from '@/lib/services/tiss/tissNext.service';\nimport { createComponent } from '@/lib/vue';\nimport { Routes } from '@/routes/routes';\nimport {\n IDataTableHeader,\n IIndexDataTableActions,\n IIndexDataTableButton,\n ITissGuiaConsultaFragment,\n ITissGuiasConsultasQuery,\n ITissGuiasConsultasQueryVariables,\n} from '@/typings';\nimport { TissPage } from '../../components/TissPage';\n\n// TODO: criar link para lote\n// TODO: não permitir alterar guia relacionada com lote\nexport default createComponent({\n name: 'TissGuiasConsultasPage',\n setup(props, ctx) {\n const { profissionalId } = useRouteParams();\n\n TissNextService.nextGuia(profissionalId);\n\n const btn: IIndexDataTableButton = {\n text: 'Nova Guia de Consulta',\n to: Routes.app.tiss(profissionalId).guiasConsultas.new(),\n };\n\n const actions: IIndexDataTableActions = {\n editRoute: Routes.app.tiss(profissionalId).guiasConsultas.edit,\n };\n\n const headers: Array> = [\n {\n text: 'Paciente',\n value: 'paciente',\n mapValue: v => v.paciente,\n },\n {\n text: 'Convênio',\n value: 'convenio',\n mapValue: v => v.convenio,\n },\n {\n text: 'Data',\n value: 'atendimentoData',\n mapValue: v => DateHelpers.formatDate(v.atendimentoData),\n },\n {\n text: 'Lote',\n value: 'lote',\n mapValue: v => v.lote?.numeroLote,\n },\n {\n text: 'Número da guia',\n value: 'numeroGuiaPrestador',\n mapValue: v => v.numeroGuiaPrestador,\n },\n ];\n\n const { $data, $loading } = useTissGuiasConsultasQuery(profissionalId);\n\n return () => (\n \n \n \n );\n },\n});\n\nfunction useTissGuiasConsultasQuery(profissionalId: string) {\n return useQueryConfig<\n ITissGuiasConsultasQuery,\n ITissGuiaConsultaFragment[],\n ITissGuiasConsultasQueryVariables\n >({\n query: QueryGraphql.TissGuiasConsultasQuery,\n variables: () => ({ profissionalId }),\n mapData: result => result?.tissGuiasConsultas.nodes || [],\n });\n}\n"],"sourceRoot":""}