fix: recheck create sep
This commit is contained in:
No files matched your search
@@ -19,6 +19,7 @@ import type { PatientEntity } from '~/models/patient'
|
|||||||
// Helpers
|
// Helpers
|
||||||
import { toTypedSchema } from '@vee-validate/zod'
|
import { toTypedSchema } from '@vee-validate/zod'
|
||||||
import { useForm } from 'vee-validate'
|
import { useForm } from 'vee-validate'
|
||||||
|
import { is } from "date-fns/locale"
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
isLoading?: boolean
|
isLoading?: boolean
|
||||||
@@ -104,16 +105,28 @@ const mode = props.mode !== undefined ? props.mode : 'add'
|
|||||||
const isLoading = props.isLoading !== undefined ? props.isLoading : false
|
const isLoading = props.isLoading !== undefined ? props.isLoading : false
|
||||||
const isReadonly = props.isReadonly !== undefined ? props.isReadonly : false
|
const isReadonly = props.isReadonly !== undefined ? props.isReadonly : false
|
||||||
const isService = ref(props.isService || false)
|
const isService = ref(props.isService || false)
|
||||||
|
const isDateReload = ref(false)
|
||||||
|
|
||||||
if (mode === 'add') {
|
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) => {
|
watch(props, (value) => {
|
||||||
const patient = value.patient || ({} as PatientEntity)
|
const patient = value.patient || ({} as PatientEntity)
|
||||||
const objects = value.objects || ({} as any)
|
const objects = value.objects || ({} as any)
|
||||||
if (Object.keys(objects).length > 0) {
|
if (Object.keys(objects).length > 0) {
|
||||||
sepDate.value = objects?.registerDate || '-'
|
sepDate.value = objects?.registerDate || new Date().toISOString().substring(0, 10)
|
||||||
bpjsNumber.value = objects?.bpjsNumber || '-'
|
bpjsNumber.value = objects?.bpjsNumber || '-'
|
||||||
nationalId.value = objects?.nationalIdentity || '-'
|
nationalId.value = objects?.nationalIdentity || '-'
|
||||||
medicalRecordNumber.value = objects?.medicalRecordNumber || '-'
|
medicalRecordNumber.value = objects?.medicalRecordNumber || '-'
|
||||||
@@ -122,6 +135,13 @@ watch(props, (value) => {
|
|||||||
if (objects?.sepType) {
|
if (objects?.sepType) {
|
||||||
admissionType.value = '1'
|
admissionType.value = '1'
|
||||||
}
|
}
|
||||||
|
isDateReload.value = true
|
||||||
|
setTimeout(() => {
|
||||||
|
if (objects?.letterDate) {
|
||||||
|
referralLetterDate.value = objects?.letterDate
|
||||||
|
}
|
||||||
|
isDateReload.value = false
|
||||||
|
}, 100)
|
||||||
}
|
}
|
||||||
if (Object.keys(patient).length > 0) {
|
if (Object.keys(patient).length > 0) {
|
||||||
bpjsNumber.value = '-'
|
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(() => {
|
onMounted(() => {
|
||||||
if (!isService.value) {
|
if (!isService.value) {
|
||||||
serviceType.value = '2'
|
serviceType.value = '2'
|
||||||
@@ -331,7 +345,9 @@ onMounted(() => {
|
|||||||
v-model="referralLetterNumber"
|
v-model="referralLetterNumber"
|
||||||
v-bind="referralLetterNumberAttrs"
|
v-bind="referralLetterNumberAttrs"
|
||||||
:disabled="isLoading || isReadonly"
|
:disabled="isLoading || isReadonly"
|
||||||
@change="emit('event', 'search-letter', { admissionType, serviceType, search: $event })"
|
@change="
|
||||||
|
emit('event', 'search-letter', { admissionType, serviceType, search: referralLetterNumber || '' })
|
||||||
|
"
|
||||||
/>
|
/>
|
||||||
<Button
|
<Button
|
||||||
variant="outline"
|
variant="outline"
|
||||||
@@ -358,6 +374,7 @@ onMounted(() => {
|
|||||||
</Label>
|
</Label>
|
||||||
<Field :errMessage="errors.referralLetterDate">
|
<Field :errMessage="errors.referralLetterDate">
|
||||||
<DatepickerSingle
|
<DatepickerSingle
|
||||||
|
v-if="!isDateReload"
|
||||||
id="referralLetterDate"
|
id="referralLetterDate"
|
||||||
v-model="referralLetterDate"
|
v-model="referralLetterDate"
|
||||||
v-bind="referralLetterDateAttrs"
|
v-bind="referralLetterDateAttrs"
|
||||||
|
|||||||
@@ -19,13 +19,13 @@ export const config: Config = {
|
|||||||
headers: [
|
headers: [
|
||||||
[
|
[
|
||||||
{ label: '' },
|
{ label: '' },
|
||||||
{ label: 'CONTROL LETTER NO.' },
|
{ label: 'NO. SURAT' },
|
||||||
{ label: 'PLANNED DATE' },
|
{ label: 'TANGGAL SURAT' },
|
||||||
{ label: 'SEP NO.' },
|
{ label: 'NO. SEP' },
|
||||||
{ label: 'PATIENT NAME' },
|
{ label: 'NAMA PASIEN' },
|
||||||
{ label: 'BPJS CARD NO.' },
|
{ label: 'NO. KARTU BPJS' },
|
||||||
{ label: 'CLINIC' },
|
{ label: 'KLINIK TUJUAN' },
|
||||||
{ label: 'DOCTOR' },
|
{ label: 'DOKTER' },
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|||||||
@@ -197,13 +197,13 @@ async function getLetterMappers(admissionType: string, search: string) {
|
|||||||
} else {
|
} else {
|
||||||
letters.value = [
|
letters.value = [
|
||||||
{
|
{
|
||||||
letterNumber: lettersRaw.rujukan.noRujukan || '',
|
letterNumber: lettersRaw.rujukan.noKunjungan || '',
|
||||||
plannedDate: lettersRaw.rujukan.tglKunjungan || '',
|
plannedDate: lettersRaw.rujukan.tglKunjungan || '',
|
||||||
sepNumber: lettersRaw.rujukan.informasi.eSEP || '',
|
sepNumber: lettersRaw.rujukan?.informasi?.eSEP || '-',
|
||||||
patientName: lettersRaw.rujukan.peserta.nama || '',
|
patientName: lettersRaw.rujukan.peserta.nama || '',
|
||||||
bpjsCardNo: lettersRaw.rujukan.peserta.noKartu || '',
|
bpjsCardNo: lettersRaw.rujukan.peserta.noKartu || '',
|
||||||
clinic: lettersRaw.rujukan.poliRujukan.nama || '',
|
clinic: lettersRaw.rujukan.poliRujukan.nama || '',
|
||||||
doctor: lettersRaw.rujukan.namaDokter || '',
|
doctor: lettersRaw.rujukan.namaDokter || '-',
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -218,7 +218,11 @@ function handleSavePatient() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleSaveLetter() {
|
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) {
|
async function handleEvent(menu: string, value: any) {
|
||||||
@@ -242,7 +246,15 @@ async function handleEvent(menu: string, value: any) {
|
|||||||
}
|
}
|
||||||
if (menu === 'search-letter') {
|
if (menu === 'search-letter') {
|
||||||
getLetterMappers(value.admissionType, value.search).then(() => {
|
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
|
return
|
||||||
}
|
}
|
||||||
@@ -371,12 +383,11 @@ async function handleInit() {
|
|||||||
label: classPaySources[item],
|
label: classPaySources[item],
|
||||||
})) as any
|
})) as any
|
||||||
if (route.query) {
|
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
|
const queries = route.query as any
|
||||||
isServiceHidden.value = queries['is-service'] === 'true'
|
isServiceHidden.value = queries['is-service'] === 'true'
|
||||||
selectedObjects.value = {}
|
selectedObjects.value = {}
|
||||||
if (queries['bpjs-number']) selectedObjects.value['bpjsNumber'] = queries['bpjs-number']
|
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-type']) selectedObjects.value['sepType'] = queries['sep-type']
|
||||||
if (queries['sep-number']) selectedObjects.value['sepNumber'] = queries['sep-number']
|
if (queries['sep-number']) selectedObjects.value['sepNumber'] = queries['sep-number']
|
||||||
if (queries['register-date']) selectedObjects.value['registerDate'] = queries['register-date']
|
if (queries['register-date']) selectedObjects.value['registerDate'] = queries['register-date']
|
||||||
@@ -463,12 +474,6 @@ onMounted(async () => {
|
|||||||
"
|
"
|
||||||
@save="handleSavePatient"
|
@save="handleSavePatient"
|
||||||
/>
|
/>
|
||||||
<AppSepTableSearchLetter
|
|
||||||
v-model:open="openLetter"
|
|
||||||
v-model:selected="selectedLetter"
|
|
||||||
:letters="letters"
|
|
||||||
@save="handleSaveLetter"
|
|
||||||
/>
|
|
||||||
<AppViewHistory
|
<AppViewHistory
|
||||||
v-model:open="openHistory"
|
v-model:open="openHistory"
|
||||||
:histories="histories"
|
:histories="histories"
|
||||||
@@ -477,7 +482,7 @@ onMounted(async () => {
|
|||||||
v-model:open="openLetter"
|
v-model:open="openLetter"
|
||||||
:letters="letters"
|
:letters="letters"
|
||||||
:selected="selectedLetter"
|
:selected="selectedLetter"
|
||||||
:pagination-meta="paginationMeta"
|
:pagination-meta="{ recordCount: 0, page: 1, pageSize: 10, totalPage: 0 } as any"
|
||||||
@fetch="(value) => getLetterMappers(value.admissionType, value.search)"
|
@fetch="(value) => getLetterMappers(value.admissionType, value.search)"
|
||||||
@save="handleSaveLetter"
|
@save="handleSaveLetter"
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -67,10 +67,10 @@ const IntegrationBpjsSchema = z
|
|||||||
.min(1, ERROR_MESSAGES.required.phoneNumber),
|
.min(1, ERROR_MESSAGES.required.phoneNumber),
|
||||||
referralLetterNumber: z
|
referralLetterNumber: z
|
||||||
.string({ required_error: ERROR_MESSAGES.required.referralLetterNumber })
|
.string({ required_error: ERROR_MESSAGES.required.referralLetterNumber })
|
||||||
.min(1, ERROR_MESSAGES.required.referralLetterNumber),
|
.min(1, ERROR_MESSAGES.required.referralLetterNumber).optional(),
|
||||||
referralLetterDate: z
|
referralLetterDate: z
|
||||||
.string({ required_error: ERROR_MESSAGES.required.referralLetterDate })
|
.string({ required_error: ERROR_MESSAGES.required.referralLetterDate })
|
||||||
.min(1, ERROR_MESSAGES.required.referralLetterDate),
|
.min(1, ERROR_MESSAGES.required.referralLetterDate).optional(),
|
||||||
fromClinic: z
|
fromClinic: z
|
||||||
.string({ required_error: ERROR_MESSAGES.required.fromClinic })
|
.string({ required_error: ERROR_MESSAGES.required.fromClinic })
|
||||||
.min(1, ERROR_MESSAGES.required.fromClinic)
|
.min(1, ERROR_MESSAGES.required.fromClinic)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
// Base
|
// Base
|
||||||
import * as base from './_crud-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'
|
const name = 'monitoring-history'
|
||||||
|
|
||||||
export function getList(params: any = null) {
|
export function getList(params: any = null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user