1dd8e8e7b3
commit 72ce2260c50597f782f07d29db3985607ecc2f34 Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Mon Nov 17 15:19:36 2025 +0700 Feat: add doc preview in Therpay protocol List commit 7032cd2409a660d40899ffd421137e4158cfde4a Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Wed Nov 12 15:34:30 2025 +0700 Fix: prepare API integration protokol terapi verification commit dbf6f78d00afc818baf2b34d128ee2153814cc88 Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Wed Nov 12 14:09:28 2025 +0700 Feat: add basic CRUD therapy protocol commit 46a44e90fe4d4097b5460d2d4e5689b2a5389467 Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Tue Nov 11 15:57:54 2025 +0700 Fix: Prepare protokol terapi API Integration commit 4674090566727cebd947e50e2c06c44e8c7afa7e Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Mon Nov 10 15:33:22 2025 +0700 Fix: hotfix style add protokol terapi commit 919c91abd8ef8b4cd193012eed7f5e8cf635cda2 Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Mon Nov 10 15:17:14 2025 +0700 Fix: Typo drpodown-action-p in protokol-terapi commit e21d30eacf1a08118e289d4bb64889e708d5023a Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Mon Nov 10 15:14:33 2025 +0700 Fix: add diagnose & procedure dialog picker in add protokol terapi commit 9a3d73b72b0dceea778d83e7630c5ead110a6a4c Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Tue Nov 4 10:21:24 2025 +0700 Fix: Add Schema therapy protocol rehab medik commit 4d8d2d633bbbd78038b1cc607558c1ceb31c5986 Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Tue Nov 4 09:30:55 2025 +0700 Fix: refactor Actions Btn ba-dr-su commit 5f290a6e4bd1559c0e5864a508c5ab650cfae6e8 Author: hasyim_kai <muhammad.hasyim.c.a@gmail.com> Date: Mon Nov 3 17:08:20 2025 +0700 Feat: UI protokol terapi in Rehab medik commit 63010f69ff30532bb8ac91443112f31d4942b221 Author: Khafid Prayoga <khafidp@pm.me> Date: Tue Oct 21 09:54:13 2025 +0700 wip: list protokol terapi commit 44eedc298680a5255fee0ee8feee3e24beda93dd Author: Khafid Prayoga <khafidp@pm.me> Date: Mon Oct 20 12:54:01 2025 +0700 feat(therapy-protocol): init form entry feat(therapy-protocol): init page routes wip: init entry form wip: form entry protokol terapi todo: table procedure, and diagnose picker wip: schema form new entry todo: picker/modal yang relateds ke form entry
146 lines
5.2 KiB
Vue
146 lines
5.2 KiB
Vue
<script setup lang="ts">
|
|
import type { FormErrors } from '~/types/error'
|
|
import { toTypedSchema } from '@vee-validate/zod'
|
|
import { Form } from '~/components/pub/ui/form'
|
|
import { FieldArray } from 'vee-validate'
|
|
import SelectDate from './_common/select-date.vue'
|
|
import InputBase from '~/components/pub/my-ui/form/input-base.vue'
|
|
|
|
import * as DE from '~/components/pub/my-ui/doc-entry'
|
|
import TextAreaInput from '~/components/pub/my-ui/form/text-area-input.vue'
|
|
import SelectSecondaryDiagnosis from './_common/select-secondary-diagnosis.vue'
|
|
import SelectPrimaryDiagnosis from './_common/select-primary-diagnosis.vue'
|
|
import SelectArrangement from './_common/select-arrangement.vue'
|
|
import type { ResumeArrangementType } from '~/schemas/resume.schema'
|
|
import SelectFaskes from './_common/select-faskes.vue'
|
|
import SelectDeathCause from './_common/select-death-cause.vue'
|
|
import { cn } from '~/lib/utils'
|
|
import RadioRelationship from './_common/radio-relationship.vue'
|
|
import RadioIllnessBcsWork from './_common/radio-illness-bcs-work.vue'
|
|
import { functionalDiagnosisConfig, medicalDiagnosisConfig, proceduralConfig } from './add-list.cfg'
|
|
import DetailRow from '~/components/pub/my-ui/form/view/detail-row.vue'
|
|
import Badge from '~/components/pub/ui/badge/Badge.vue'
|
|
import { detailTherapyProtocolListConfig } from './detail-list.cfg'
|
|
import Confirmation from '~/components/pub/my-ui/confirmation/confirmation.vue'
|
|
|
|
const props = defineProps<{
|
|
|
|
}>()
|
|
|
|
const router = useRouter()
|
|
const formRef = ref()
|
|
const isConfirmationOpen = ref(false)
|
|
|
|
defineExpose({
|
|
validate: () => formRef.value?.validate(),
|
|
resetForm: () => formRef.value?.resetForm(),
|
|
setValues: (values: any, shouldValidate = true) => formRef.value?.setValues(values, shouldValidate),
|
|
values: computed(() => formRef.value?.values),
|
|
})
|
|
|
|
function goBack() {
|
|
router.go(-1)
|
|
}
|
|
async function handleConfirmAdd() {
|
|
// handleActionClick('submit')
|
|
console.log(`tersubmit wak`)
|
|
}
|
|
|
|
function handleCancelAdd() {
|
|
isConfirmationOpen.value = false
|
|
}
|
|
// #endregion region
|
|
|
|
// #region Utilities & event handlers
|
|
async function handleActionClick(eventType: string) {
|
|
if (eventType === 'submit') {
|
|
isConfirmationOpen.value = true
|
|
// const patient: Patient = await composeFormData()
|
|
// let createdPatientId = 0
|
|
|
|
// const response = await handleActionSave(
|
|
// patient,
|
|
// () => {},
|
|
// () => {},
|
|
// toast,
|
|
// )
|
|
|
|
// const data = (response?.body?.data ?? null) as PatientBase | null
|
|
// if (!data) return
|
|
// createdPatientId = data.id
|
|
|
|
// If has callback provided redirect to callback with patientData
|
|
// if (props.callbackUrl) {
|
|
// await navigateTo(props.callbackUrl + '?patient-id=' + patient.id)
|
|
// return
|
|
// }
|
|
|
|
// Navigate to patient list or show success message
|
|
// await navigateTo('/outpatient/encounter')
|
|
// return
|
|
}
|
|
|
|
if (eventType === 'back') {
|
|
goBack()
|
|
}
|
|
}
|
|
|
|
const dummymedicalDiagnosis = [
|
|
{ id: `asdfouno182y49128y3`, program: 'Latihan penguatan otot', icd_x: 'E11' },
|
|
{ id: `asdfouno182y49128g8`, program: 'Mobilisasi otot', icd_x: 'I10' },
|
|
]
|
|
</script>
|
|
|
|
<template>
|
|
<div class="flex items-center">
|
|
<Button type="button" variant="outline" class="ml-auto text-gray-500 border border-orange-400 bg-orange-50" @click="handleActionClick('back')">
|
|
<Icon name="i-lucide-arrow-left" class="h-4 w-4 align-middle transition-colors" />
|
|
Kembali
|
|
</Button>
|
|
</div>
|
|
|
|
<section class="">
|
|
<h1 class="mb-2 text-base font-medium">Form 1</h1>
|
|
<DetailRow label="Tanggal Pemeriksaan">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Diagnosa">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Permintaan Terapi">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Frekuensi Terapi">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Waktu Mencapai Target">{{ `aaaaaa bulan` }}</DetailRow>
|
|
</section>
|
|
<Separator class="my-5" />
|
|
|
|
<section class="">
|
|
<h1 class="mb-2 text-base font-medium">Form 2</h1>
|
|
<DetailRow label="Hubungan dengan Tertanggung">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Anamnesa">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Pemeriksaan Fisik dan Uji Fungsi">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Diagnosa Medis (ICD-X)" class="mb-1">
|
|
<Badge variant="outline" class="bg-gray-200">aaaaaa</Badge>
|
|
</DetailRow>
|
|
<DetailRow label="Diagnosa Fungsional (ICD-X)" class="mb-1">
|
|
<Badge variant="outline" class="bg-gray-200">aaaaaa</Badge>
|
|
</DetailRow>
|
|
<DetailRow label="Prosedur Tata Laksana (ICD-IX CM)" class="mb-1">
|
|
<Badge variant="outline" class="bg-gray-200">aaaaaa</Badge>
|
|
</DetailRow>
|
|
<DetailRow label="Pemeriksaan Penunjang">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Evaluasi">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Anjuran">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Suspek Penyakit Akibat Kerja">{{ `aaaaaa` }}</DetailRow>
|
|
</section>
|
|
<Separator class="my-5" />
|
|
|
|
<section class="">
|
|
<h1 class="mb-2 text-base font-medium">Form 3</h1>
|
|
<DetailRow label="Diagnosa">{{ `aaaaaa` }}</DetailRow>
|
|
<DetailRow label="Permintaan Terapi">{{ `aaaaaa` }}</DetailRow>
|
|
|
|
<div class="mt-3">
|
|
<PubMyUiDataTable
|
|
v-bind="detailTherapyProtocolListConfig"
|
|
:rows="dummymedicalDiagnosis" />
|
|
</div>
|
|
|
|
</section>
|
|
</template>
|