Files
simrsx-fe/app/components/content/surgery-report/detail.vue
T
2025-11-25 09:17:11 +07:00

78 lines
1.9 KiB
Vue

<script setup lang="ts">
import { useRouter } from 'vue-router'
import { withBase } from '~/models/_base'
import type { HeaderPrep } from '~/components/pub/my-ui/data/types'
import type { Patient } from '~/models/patient'
import type { Person } from '~/models/person'
import { getDetail } from '~/services/surgery-report.service'
// Components
import Header from '~/components/pub/my-ui/nav-header/prep.vue'
import type { SurgeryReport } from '~/models/surgery-report'
// #region Props & Emits
const props = defineProps<{
}>()
// #endregion
// #region State & Computed
const route = useRoute()
const router = useRouter()
const encounterId = typeof route.params.id == 'string' ? parseInt(route.params.id) : 0
const surgeryReportId = typeof route.params.surgery_report_id == 'string' ? parseInt(route.params.surgery_report_id) : 0
const surgeryReport = ref<SurgeryReport | null>(null)
const headerPrep: HeaderPrep = {
title: 'Detail Laporan Operasi',
icon: 'i-lucide-newspaper',
}
// #endregion
// #region Lifecycle Hooks
onMounted(async () => {
const result = await getDetail(controlLetterId, {
includes: "unit,specialist,subspecialist,doctor-employee-person",
})
if (result.success) {
controlLetter.value = result.body?.data
}
})
// #endregion
// #region Functions
function goBack() {
router.go(-1)
}
// #endregion region
// #region Utilities & event handlers
function handleAction(type: string) {
switch (type) {
// case 'edit':
// navigateTo({
// name: 'rehab-encounter-id-surgery-report-control_letter_id-edit',
// params: { id: encounterId, "control_letter_id": controlLetterId },
// })
// break
case 'back':
goBack()
break
}
}
// #endregion
// #region Watchers
// #endregion
</script>
<template>
<Header :prep="headerPrep" :ref-search-nav="headerPrep.refSearchNav" />
<AppSurgeryReportDetail :instance="controlLetter" @click="handleAction" />
</template>