diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue
index eb3b5ad3..e9e76981 100644
--- a/app/components/content/sep/entry.vue
+++ b/app/components/content/sep/entry.vue
@@ -341,7 +341,7 @@ async function handleEvent(menu: string, value: any) {
if (menu === 'service-type') {
selectedServiceType.value = value
doctors.value = await getDoctorLabelList({
- serviceType: selectedServiceType.value || 1,
+ serviceType: selectedServiceType.value || '2',
serviceDate: new Date().toISOString().substring(0, 10),
specialistCode: 0,
})
@@ -369,13 +369,33 @@ async function handleEvent(menu: string, value: any) {
}
if (menu === 'search-letter') {
isLetterReadonly.value = false
- getLetterMappers(value.admissionType, value.search).then(() => {
+ getLetterMappers(value.admissionType, value.search).then(async () => {
if (letters.value.length > 0) {
const copyObjects = { ...selectedObjects.value }
const letter = letters.value[0]
selectedObjects.value = {}
- selectedLetter.value = letter.letterNumber
+ selectedLetter.value = letter.letterNumber
isLetterReadonly.value = true
+ if (letter.information || letter.clinic) {
+ const poly = value.admissionType === '3' ? letter.clinic : letter.information?.poly
+ if (poly) {
+ const resultControl = await getControlLetterList({
+ mode: 'by-schedule',
+ controlDate: letter.plannedDate,
+ controlType: selectedServiceType.value,
+ polyCode: poly,
+ })
+ if (resultControl && resultControl.success && resultControl.body) {
+ const resultData = resultControl.body?.response?.list || []
+ const resultUnique = [...new Map(resultData.map((item: any) => [item.kode, item])).values()]
+ const controlLetters = resultUnique.map((item: any) => ({
+ value: item.kodeDokter ? String(item.kodeDokter) : '',
+ label: `${item.kodeDokter} - ${item.namaDokter} - ${item.jadwalPraktek} (${item.kapasitas})`,
+ }))
+ doctors.value = controlLetters
+ }
+ }
+ }
setTimeout(async () => {
selectedObjects.value = copyObjects
selectedObjects.value['letterDate'] = letter.plannedDate
@@ -420,7 +440,7 @@ async function handleEvent(menu: string, value: any) {
}
if (menu === 'save-sep') {
isSaveLoading.value = true
-
+
// Map letter data to form if admissionType !== '3' and letters.value has data
let mappedValues = value
if (selectedAdmissionType.value !== '3') {
@@ -456,7 +476,7 @@ async function handleEvent(menu: string, value: any) {
if (!value.clinicExcecutive) {
mappedValues.clinicExcecutive = 'no'
}
-
+
createSep(makeSepData(mappedValues))
.then((res) => {
const body = res?.body
@@ -492,13 +512,13 @@ async function handleFetch(params: any) {
if (menu === 'clinic-from') {
facilitiesFrom.value = await getHealthFacilityLabelList({
healthcare: value,
- healthcareType: selectedServiceType.value || 1,
+ healthcareType: selectedServiceType.value || 2,
})
}
if (menu === 'clinic-to') {
facilitiesTo.value = await getHealthFacilityLabelList({
healthcare: value,
- healthcareType: selectedServiceType.value || 1,
+ healthcareType: selectedServiceType.value || 2,
})
}
if (menu === 'province') {
@@ -523,6 +543,7 @@ async function handleFetchSpecialists() {
}
async function handleInit() {
+ selectedServiceType.value = '2'
const facilities = await getHealthFacilityLabelList({
healthcare: 'Puskesmas',
healthcareType: selectedLetter.value || 1,
@@ -531,7 +552,7 @@ async function handleInit() {
facilitiesFrom.value = facilities
facilitiesTo.value = facilities
doctors.value = await getDoctorLabelList({
- serviceType: selectedServiceType.value || 1,
+ serviceType: selectedServiceType.value || '2',
serviceDate: new Date().toISOString().substring(0, 10),
specialistCode: 0,
})
@@ -616,44 +637,20 @@ onMounted(async () => {