feat (encounter): add patient search and add functionality to entry form

This commit is contained in:
Abizrh
2025-09-27 23:15:01 +07:00
parent dcfadcf4a0
commit a5b7b15910
3 changed files with 72 additions and 1 deletions
+37 -1
View File
@@ -1,8 +1,40 @@
<script setup lang="ts">
import Dialog from '~/components/pub/base/modal/dialog.vue'
const props = defineProps<{
id: number
formType: string
}>()
const isOpen = ref(false)
const data = ref([])
const isLoading = reactive<DataTableLoader>({
isTableLoading: false,
})
async function getPatientList() {
isLoading.isTableLoading = true
const resp = await xfetch('/api/v1/patient')
if (resp.success) {
data.value = (resp.body as Record<string, any>).data
}
isLoading.isTableLoading = false
}
onMounted(() => {
getPatientList()
})
function onClick(e: 'search' | 'add') {
console.log('click', e)
if (e === 'search') {
isOpen.value = true
} else if (e === 'add') {
navigateTo('/client/patient/add')
}
}
provide('table_data_loader', isLoading)
</script>
<template>
@@ -10,6 +42,10 @@ const props = defineProps<{
<Icon name="i-lucide-user" class="me-2" />
<span class="font-semibold">{{ props.formType }}</span> Kunjungan
</div>
<AppEncounterEntryForm />
<AppEncounterEntryForm @click="onClick" />
<AppSepSmallEntry v-if="props.id" />
<Dialog v-model:open="isOpen" title="Cari Pasien" size="xl" prevent-outside>
<AppPatientPicker :data="data" />
</Dialog>
</template>