feat(sep): add form traffic accident

This commit is contained in:
riefive
2025-10-22 14:27:43 +07:00
parent baad005522
commit 00302ece84
7 changed files with 307 additions and 29 deletions
+56 -23
View File
@@ -12,17 +12,24 @@ import type { SepHistoryData } from '~/components/app/sep/list-cfg.history'
import type { SepVisitData } from '~/components/app/sep/list-cfg.visit'
// Constants
import { serviceTypes, serviceAssessments, registerMethods, trafficAccidents, supportCodes, procedureTypes, purposeOfVisits } from '~/lib/constants.vclaim'
import {
serviceTypes,
serviceAssessments,
registerMethods,
trafficAccidents,
supportCodes,
procedureTypes,
purposeOfVisits,
} from '~/lib/constants.vclaim'
// Services
import { getPatientDetail, getPatients } from '~/services/patient.service'
import { getList as getProvinceList } from '~/services/vclaim-region-province.service'
import { getList as getCityList } from '~/services/vclaim-region-city.service'
import { getList as getDistrictList } from '~/services/vclaim-region-district.service'
import { getValueLabelList as getProvinceList } from '~/services/vclaim-region-province.service'
import { getValueLabelList as getCityList } from '~/services/vclaim-region-city.service'
import { getValueLabelList as getDistrictList } from '~/services/vclaim-region-district.service'
import { getValueLabelList as getDoctorLabelList } from '~/services/vclaim-doctor.service'
import { getValueLabelList as getHealthFacilityLabelList } from '~/services/vclaim-health-facility.service'
import { getValueLabelList as getDiagnoseLabelList } from '~/services/vclaim-diagnose.service'
import { getList as getDiagnoseReferralList } from '~/services/vclaim-diagnose-referral.service'
import { getList as geMonitoringVisitList } from '~/services/vclaim-monitoring-visit.service'
import { getList as getMonitoringHistoryList } from '~/services/vclaim-monitoring-history.service'
import { create as createSep, createPayload as createSepPayload } from '~/services/vclaim-sep.service'
@@ -49,6 +56,9 @@ const accidentsList = ref<Array<{ value: string; label: string }>>([])
const purposeOfVisitsList = ref<Array<{ value: string; label: string }>>([])
const proceduresList = ref<Array<{ value: string; label: string }>>([])
const assessmentsList = ref<Array<{ value: string; label: string }>>([])
const provincesList = ref<Array<{ value: string; label: string }>>([])
const citiesList = ref<Array<{ value: string; label: string }>>([])
const districtsList = ref<Array<{ value: string; label: string }>>([])
const isPatientsLoading = ref(false)
const paginationMeta = ref<PaginationMeta>({
recordCount: 0,
@@ -253,25 +263,48 @@ function handleEvent(menu: string, value: any) {
async function handleFetch(params: any) {
const menu = params.menu || ''
const value = params.value || ''
if (menu === 'service-type') {
selectedServiceType.value = value
}
if (menu === 'diagnosis') {
diagnoses.value = await getDiagnoseLabelList({ diagnosa: value })
}
if (menu === 'doctor') {
console.log('value:', value)
}
if (menu === 'clinic') {
facilities.value = await getHealthFacilityLabelList({ faskes: value, 'jenis-faskes': 1 })
facilities.value = await getHealthFacilityLabelList({
faskes: value,
'jenis-faskes': selectedServiceType.value || 1,
})
facilities.value = await getHealthFacilityLabelList({
faskes: 'Puskesmas',
'jenis-faskes': selectedLetter.value || 1,
})
doctors.value = await getDoctorLabelList({
'jenis-pelayanan': selectedServiceType.value || 1,
'tgl-pelayanan': new Date().toISOString().substring(0, 10),
'kode-spesialis': 0,
})
}
if (menu === 'province') {
citiesList.value = await getCityList({ province: value })
districtsList.value = []
}
if (menu === 'city') {
districtsList.value = await getDistrictList({ city: value })
}
}
async function handleInit() {
diagnoses.value = await getDiagnoseLabelList({ diagnosa: 'paru' })
facilities.value = await getHealthFacilityLabelList({ faskes: 'Puskesmas', 'jenis-faskes': 1 })
facilities.value = await getHealthFacilityLabelList({
faskes: 'Puskesmas',
'jenis-faskes': selectedLetter.value || 1,
})
doctors.value = await getDoctorLabelList({
'jenis-pelayanan': 1,
'jenis-pelayanan': selectedServiceType.value || 1,
'tgl-pelayanan': new Date().toISOString().substring(0, 10),
'kode-spesialis': 0,
})
provincesList.value = await getProvinceList()
serviceTypesList.value = Object.keys(serviceTypes).map((item) => ({
value: item.toString(),
label: serviceTypes[item],
@@ -306,18 +339,15 @@ async function handleInit() {
onMounted(async () => {
await handleInit()
getProvinceList().then((value) => {
console.log('value:', value)
})
getCityList({ province: '14' }).then((value) => {
console.log('value:', value)
})
getDistrictList({ city: '0187' }).then((value) => {
console.log('value:', value)
})
getDiagnoseReferralList().then((value) => {
console.log('value:', value)
})
// getProvinceList().then((value) => {
// console.log('value:', value)
// })
// getCityList({ province: '14' }).then((value) => {
// console.log('value:', value)
// })
// getDistrictList({ city: '0187' }).then((value) => {
// console.log('value:', value)
// })
if (route.query) {
selectedObjects.value = { ...route.query }
}
@@ -345,6 +375,9 @@ onMounted(async () => {
:procedures="proceduresList"
:assessments="assessmentsList"
:support-codes="supportCodesList"
:provinces="provincesList"
:cities="citiesList"
:districts="districtsList"
:patient="selectedPatientObject"
@fetch="handleFetch"
@event="handleEvent"