fix: recheck create sep
This commit is contained in:
@@ -19,6 +19,7 @@ import type { PatientEntity } from '~/models/patient'
|
||||
// Helpers
|
||||
import { toTypedSchema } from '@vee-validate/zod'
|
||||
import { useForm } from 'vee-validate'
|
||||
import { is } from "date-fns/locale"
|
||||
|
||||
const props = defineProps<{
|
||||
isLoading?: boolean
|
||||
@@ -104,16 +105,28 @@ const mode = props.mode !== undefined ? props.mode : 'add'
|
||||
const isLoading = props.isLoading !== undefined ? props.isLoading : false
|
||||
const isReadonly = props.isReadonly !== undefined ? props.isReadonly : false
|
||||
const isService = ref(props.isService || false)
|
||||
const isDateReload = ref(false)
|
||||
|
||||
if (mode === 'add') {
|
||||
// sepDate.value = new Date().toISOString()
|
||||
// Set default sepDate to current date in YYYY-MM-DD format
|
||||
const today = new Date()
|
||||
const year = today.getFullYear()
|
||||
const month = String(today.getMonth() + 1).padStart(2, '0')
|
||||
const day = String(today.getDate()).padStart(2, '0')
|
||||
sepDate.value = `${year}-${month}-${day}`
|
||||
}
|
||||
|
||||
// Submit handler
|
||||
const onSubmit = handleSubmit((values) => {
|
||||
console.log('✅ Validated form values:', JSON.stringify(values, null, 2))
|
||||
emit('event', 'save-sep', values)
|
||||
})
|
||||
|
||||
watch(props, (value) => {
|
||||
const patient = value.patient || ({} as PatientEntity)
|
||||
const objects = value.objects || ({} as any)
|
||||
if (Object.keys(objects).length > 0) {
|
||||
sepDate.value = objects?.registerDate || '-'
|
||||
sepDate.value = objects?.registerDate || new Date().toISOString().substring(0, 10)
|
||||
bpjsNumber.value = objects?.bpjsNumber || '-'
|
||||
nationalId.value = objects?.nationalIdentity || '-'
|
||||
medicalRecordNumber.value = objects?.medicalRecordNumber || '-'
|
||||
@@ -122,6 +135,13 @@ watch(props, (value) => {
|
||||
if (objects?.sepType) {
|
||||
admissionType.value = '1'
|
||||
}
|
||||
isDateReload.value = true
|
||||
setTimeout(() => {
|
||||
if (objects?.letterDate) {
|
||||
referralLetterDate.value = objects?.letterDate
|
||||
}
|
||||
isDateReload.value = false
|
||||
}, 100)
|
||||
}
|
||||
if (Object.keys(patient).length > 0) {
|
||||
bpjsNumber.value = '-'
|
||||
@@ -132,12 +152,6 @@ watch(props, (value) => {
|
||||
}
|
||||
})
|
||||
|
||||
// Submit handler
|
||||
const onSubmit = handleSubmit((values) => {
|
||||
console.log('✅ Validated form values:', JSON.stringify(values, null, 2))
|
||||
emit('event', 'save-sep', values)
|
||||
})
|
||||
|
||||
onMounted(() => {
|
||||
if (!isService.value) {
|
||||
serviceType.value = '2'
|
||||
@@ -331,7 +345,9 @@ onMounted(() => {
|
||||
v-model="referralLetterNumber"
|
||||
v-bind="referralLetterNumberAttrs"
|
||||
:disabled="isLoading || isReadonly"
|
||||
@change="emit('event', 'search-letter', { admissionType, serviceType, search: $event })"
|
||||
@change="
|
||||
emit('event', 'search-letter', { admissionType, serviceType, search: referralLetterNumber || '' })
|
||||
"
|
||||
/>
|
||||
<Button
|
||||
variant="outline"
|
||||
@@ -358,6 +374,7 @@ onMounted(() => {
|
||||
</Label>
|
||||
<Field :errMessage="errors.referralLetterDate">
|
||||
<DatepickerSingle
|
||||
v-if="!isDateReload"
|
||||
id="referralLetterDate"
|
||||
v-model="referralLetterDate"
|
||||
v-bind="referralLetterDateAttrs"
|
||||
|
||||
@@ -19,13 +19,13 @@ export const config: Config = {
|
||||
headers: [
|
||||
[
|
||||
{ label: '' },
|
||||
{ label: 'CONTROL LETTER NO.' },
|
||||
{ label: 'PLANNED DATE' },
|
||||
{ label: 'SEP NO.' },
|
||||
{ label: 'PATIENT NAME' },
|
||||
{ label: 'BPJS CARD NO.' },
|
||||
{ label: 'CLINIC' },
|
||||
{ label: 'DOCTOR' },
|
||||
{ label: 'NO. SURAT' },
|
||||
{ label: 'TANGGAL SURAT' },
|
||||
{ label: 'NO. SEP' },
|
||||
{ label: 'NAMA PASIEN' },
|
||||
{ label: 'NO. KARTU BPJS' },
|
||||
{ label: 'KLINIK TUJUAN' },
|
||||
{ label: 'DOKTER' },
|
||||
],
|
||||
],
|
||||
|
||||
|
||||
@@ -197,13 +197,13 @@ async function getLetterMappers(admissionType: string, search: string) {
|
||||
} else {
|
||||
letters.value = [
|
||||
{
|
||||
letterNumber: lettersRaw.rujukan.noRujukan || '',
|
||||
letterNumber: lettersRaw.rujukan.noKunjungan || '',
|
||||
plannedDate: lettersRaw.rujukan.tglKunjungan || '',
|
||||
sepNumber: lettersRaw.rujukan.informasi.eSEP || '',
|
||||
sepNumber: lettersRaw.rujukan?.informasi?.eSEP || '-',
|
||||
patientName: lettersRaw.rujukan.peserta.nama || '',
|
||||
bpjsCardNo: lettersRaw.rujukan.peserta.noKartu || '',
|
||||
clinic: lettersRaw.rujukan.poliRujukan.nama || '',
|
||||
doctor: lettersRaw.rujukan.namaDokter || '',
|
||||
doctor: lettersRaw.rujukan.namaDokter || '-',
|
||||
},
|
||||
]
|
||||
}
|
||||
@@ -218,7 +218,11 @@ function handleSavePatient() {
|
||||
}
|
||||
|
||||
function handleSaveLetter() {
|
||||
console.log('Letter dipilih:', selectedLetter.value)
|
||||
// Find the selected letter and get its plannedDate
|
||||
const selectedLetterData = letters.value.find((letter) => letter.letterNumber === selectedLetter.value)
|
||||
if (selectedLetterData && selectedLetterData.plannedDate) {
|
||||
selectedObjects.value['letterDate'] = selectedLetterData.plannedDate
|
||||
}
|
||||
}
|
||||
|
||||
async function handleEvent(menu: string, value: any) {
|
||||
@@ -242,7 +246,15 @@ async function handleEvent(menu: string, value: any) {
|
||||
}
|
||||
if (menu === 'search-letter') {
|
||||
getLetterMappers(value.admissionType, value.search).then(() => {
|
||||
console.log('letters:', letters.value)
|
||||
if (letters.value.length > 0) {
|
||||
const copyObjects = { ...selectedObjects.value }
|
||||
selectedObjects.value = {}
|
||||
selectedLetter.value = letters.value[0].letterNumber
|
||||
setTimeout(() => {
|
||||
selectedObjects.value = copyObjects
|
||||
selectedObjects.value['letterDate'] = letters.value[0].plannedDate
|
||||
}, 100)
|
||||
}
|
||||
})
|
||||
return
|
||||
}
|
||||
@@ -371,12 +383,11 @@ async function handleInit() {
|
||||
label: classPaySources[item],
|
||||
})) as any
|
||||
if (route.query) {
|
||||
// resource=encounter®ister-date=2025-10-23&payment-type=bpjs&bpjs-number=121212121222&sep-type=ri
|
||||
// resource=encounter&is-service=false&patient-name=Slathem&national-identity=5617213001231231&medical-record-number=0000000018
|
||||
const queries = route.query as any
|
||||
isServiceHidden.value = queries['is-service'] === 'true'
|
||||
selectedObjects.value = {}
|
||||
if (queries['bpjs-number']) selectedObjects.value['bpjsNumber'] = queries['bpjs-number']
|
||||
if (queries['register-date']) selectedObjects.value['registerDate'] = queries['register-date']
|
||||
if (queries['sep-type']) selectedObjects.value['sepType'] = queries['sep-type']
|
||||
if (queries['sep-number']) selectedObjects.value['sepNumber'] = queries['sep-number']
|
||||
if (queries['register-date']) selectedObjects.value['registerDate'] = queries['register-date']
|
||||
@@ -463,12 +474,6 @@ onMounted(async () => {
|
||||
"
|
||||
@save="handleSavePatient"
|
||||
/>
|
||||
<AppSepTableSearchLetter
|
||||
v-model:open="openLetter"
|
||||
v-model:selected="selectedLetter"
|
||||
:letters="letters"
|
||||
@save="handleSaveLetter"
|
||||
/>
|
||||
<AppViewHistory
|
||||
v-model:open="openHistory"
|
||||
:histories="histories"
|
||||
@@ -477,7 +482,7 @@ onMounted(async () => {
|
||||
v-model:open="openLetter"
|
||||
:letters="letters"
|
||||
:selected="selectedLetter"
|
||||
:pagination-meta="paginationMeta"
|
||||
:pagination-meta="{ recordCount: 0, page: 1, pageSize: 10, totalPage: 0 } as any"
|
||||
@fetch="(value) => getLetterMappers(value.admissionType, value.search)"
|
||||
@save="handleSaveLetter"
|
||||
/>
|
||||
|
||||
@@ -67,10 +67,10 @@ const IntegrationBpjsSchema = z
|
||||
.min(1, ERROR_MESSAGES.required.phoneNumber),
|
||||
referralLetterNumber: z
|
||||
.string({ required_error: ERROR_MESSAGES.required.referralLetterNumber })
|
||||
.min(1, ERROR_MESSAGES.required.referralLetterNumber),
|
||||
.min(1, ERROR_MESSAGES.required.referralLetterNumber).optional(),
|
||||
referralLetterDate: z
|
||||
.string({ required_error: ERROR_MESSAGES.required.referralLetterDate })
|
||||
.min(1, ERROR_MESSAGES.required.referralLetterDate),
|
||||
.min(1, ERROR_MESSAGES.required.referralLetterDate).optional(),
|
||||
fromClinic: z
|
||||
.string({ required_error: ERROR_MESSAGES.required.fromClinic })
|
||||
.min(1, ERROR_MESSAGES.required.fromClinic)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// Base
|
||||
import * as base from './_crud-base'
|
||||
|
||||
const path = '/api/vclaim/v1/monitoring/history'
|
||||
const path = '/api/vclaim/v1/monitoring/hist'
|
||||
const name = 'monitoring-history'
|
||||
|
||||
export function getList(params: any = null) {
|
||||
|
||||
Reference in New Issue
Block a user