feat(sep): testing create sep

This commit is contained in:
riefive
2025-10-23 16:15:04 +07:00
parent abb0881338
commit fb3e10bd11
4 changed files with 131 additions and 118 deletions

No files matched your search

+2
View File
@@ -893,6 +893,8 @@ onMounted(() => {
</Cell> </Cell>
</Block> </Block>
<!-- {{ JSON.stringify(errors, null, 2) }} -->
<!-- Actions --> <!-- Actions -->
<div class="mt-6 flex justify-end gap-2"> <div class="mt-6 flex justify-end gap-2">
<Button <Button
+3 -2
View File
@@ -274,8 +274,9 @@ async function handleEvent(menu: string, value: any) {
isSaveLoading.value = true isSaveLoading.value = true
createSep(makeSepData(value)) createSep(makeSepData(value))
.then((res) => { .then((res) => {
const code = res?.metaData?.code const body = res?.body
const message = res?.metaData?.message const code = body?.metaData?.code
const message = body?.metaData?.message
if (code && code !== '200') { if (code && code !== '200') {
toast({ title: 'Gagal', description: message || 'Gagal membuat SEP', variant: 'destructive' }) toast({ title: 'Gagal', description: message || 'Gagal membuat SEP', variant: 'destructive' })
return return
+105 -105
View File
@@ -123,111 +123,111 @@ const IntegrationBpjsSchema = z
classPaySource: z.string({ required_error: ERROR_MESSAGES.required.classPaySource }).optional(), classPaySource: z.string({ required_error: ERROR_MESSAGES.required.classPaySource }).optional(),
responsiblePerson: z.string({ required_error: ERROR_MESSAGES.required.responsiblePerson }).optional(), responsiblePerson: z.string({ required_error: ERROR_MESSAGES.required.responsiblePerson }).optional(),
}) })
.refine( // .refine(
(data) => { // (data) => {
return data.trafficAccident !== '' && data.accidentDate && data.accidentDate.trim() !== '' // return data.trafficAccident !== '' && data.accidentDate && data.accidentDate.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.accidentDate, // message: ERROR_MESSAGES.required.accidentDate,
path: ['accidentDate'], // path: ['accidentDate'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return data.trafficAccident !== '' && data.accidentProvince && data.accidentProvince.trim() !== '' // return data.trafficAccident !== '' && data.accidentProvince && data.accidentProvince.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.accidentProvince, // message: ERROR_MESSAGES.required.accidentProvince,
path: ['accidentProvince'], // path: ['accidentProvince'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return data.trafficAccident !== '' && data.accidentCity && data.accidentCity.trim() !== '' // return data.trafficAccident !== '' && data.accidentCity && data.accidentCity.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.accidentCity, // message: ERROR_MESSAGES.required.accidentCity,
path: ['accidentCity'], // path: ['accidentCity'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return data.trafficAccident !== '' && data.accidentDistrict && data.accidentDistrict.trim() !== '' // return data.trafficAccident !== '' && data.accidentDistrict && data.accidentDistrict.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.accidentDistrict, // message: ERROR_MESSAGES.required.accidentDistrict,
path: ['accidentDistrict'], // path: ['accidentDistrict'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return data.trafficAccident !== '' && data.suplesi && data.suplesi.trim() !== '' // return data.trafficAccident !== '' && data.suplesi && data.suplesi.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.suplesi, // message: ERROR_MESSAGES.required.suplesi,
path: ['suplesi'], // path: ['suplesi'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return ( // return (
data.trafficAccident !== '' && // data.trafficAccident !== '' &&
data.suplesi?.trim() === 'yes' && // data.suplesi?.trim() === 'yes' &&
data.suplesiNumber && // data.suplesiNumber &&
data.suplesiNumber.trim() !== '' // data.suplesiNumber.trim() !== ''
) // )
}, // },
{ // {
message: ERROR_MESSAGES.required.suplesiNumber, // message: ERROR_MESSAGES.required.suplesiNumber,
path: ['suplesiNumber'], // path: ['suplesiNumber'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return data.serviceType === '1' && data.classLevel && data.classLevel.trim() !== '' // return data.serviceType === '1' && data.classLevel && data.classLevel.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.classLevel, // message: ERROR_MESSAGES.required.classLevel,
path: ['classLevel'], // path: ['classLevel'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return data.serviceType === '1' && data.classLevelUpgrade && data.classLevelUpgrade.trim() !== '' // return data.serviceType === '1' && data.classLevelUpgrade && data.classLevelUpgrade.trim() !== ''
}, // },
{ // {
message: ERROR_MESSAGES.required.classLevelUpgrade, // message: ERROR_MESSAGES.required.classLevelUpgrade,
path: ['classLevelUpgrade'], // path: ['classLevelUpgrade'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return ( // return (
data.serviceType === '1' && // data.serviceType === '1' &&
data.classLevelUpgrade?.trim() !== '' && // data.classLevelUpgrade?.trim() !== '' &&
data.classPaySource && // data.classPaySource &&
data.classPaySource.trim() !== '' // data.classPaySource.trim() !== ''
) // )
}, // },
{ // {
message: ERROR_MESSAGES.required.classLevelUpgrade, // message: ERROR_MESSAGES.required.classLevelUpgrade,
path: ['classPaySource'], // path: ['classPaySource'],
}, // },
) // )
.refine( // .refine(
(data) => { // (data) => {
return ( // return (
data.serviceType === '1' && // data.serviceType === '1' &&
data.classPaySource?.trim() !== '' && // data.classPaySource?.trim() !== '' &&
data.responsiblePerson && // data.responsiblePerson &&
data.responsiblePerson.trim() !== '' // data.responsiblePerson.trim() !== ''
) // )
}, // },
{ // {
message: ERROR_MESSAGES.required.responsiblePerson, // message: ERROR_MESSAGES.required.responsiblePerson,
path: ['responsiblePerson'], // path: ['responsiblePerson'],
}, // },
) // )
type IntegrationBpjsFormData = z.infer<typeof IntegrationBpjsSchema> type IntegrationBpjsFormData = z.infer<typeof IntegrationBpjsSchema>
+21 -11
View File
@@ -20,16 +20,20 @@ export function makeSepData(
}, },
) { ) {
const content = { const content = {
noKartu: data.bpjsNumber || '', noKartu: '0002084879801', // data.bpjsNumber || '',
tglSep: data.sepDate, tglSep: data.sepDate,
ppkPelayanan: data.serviceType || '', ppkPelayanan: '1323R001', // data.serviceType || '',
jnsPelayanan: data.admissionType ? String(data.admissionType) : '1', jnsPelayanan: data.admissionType ? String(data.admissionType) : '1',
noMR: data.medicalRecordNumber || '', noMR: data.medicalRecordNumber || '',
catatan: data.note || '', catatan: data.note || '',
diagAwal: data.initialDiagnosis || '', diagAwal: data.initialDiagnosis || '',
// poli: {
// tujuan: data.destinationClinic || '',
// eksekutif: data.clinicExcecutive === 'yes' ? '1' : '0',
// },
poli: { poli: {
tujuan: data.destinationClinic || '', tujuan: 'URO',
eksekutif: data.clinicExcecutive === 'yes' ? '1' : '0', eksekutif: '0',
}, },
cob: { cob: {
cob: data.cob === 'yes' ? '1' : '0', cob: data.cob === 'yes' ? '1' : '0',
@@ -42,14 +46,20 @@ export function makeSepData(
kdPenunjang: data.supportCode || '', kdPenunjang: data.supportCode || '',
assesmentPel: data.serviceAssessment || '', assesmentPel: data.serviceAssessment || '',
skdp: { skdp: {
noSurat: data.admissionType === '3' ? data.referralLetterNumber : '', noSurat: '', // data.admissionType === '3' ? data.referralLetterNumber : '',
kodeDPJP: data.admissionType === '3' ? data.attendingDoctor : '', kodeDPJP: '', // data.admissionType === '3' ? data.attendingDoctor : '',
}, },
// rujukan: {
// asalRujukan: data?.referralFrom || '',
// tglRujukan: '', // data?.referralLetterDate || '',
// noRujukan: '', // data?.referralLetterNumber || '',
// ppkRujukan: data?.referralTo || '',
// },
rujukan: { rujukan: {
asalRujukan: data?.referralFrom || '', noRujukan: '0212R0300625B000006',
tglRujukan: data?.referralLetterDate || '', ppkRujukan: '0212R030',
noRujukan: data?.referralLetterNumber || '', tglRujukan: '2025-06-26',
ppkRujukan: data?.referralTo || '', asalRujukan: '2',
}, },
klsRawat: { klsRawat: {
klsRawatHak: data.classLevel || '', klsRawatHak: data.classLevel || '',
@@ -57,7 +67,7 @@ export function makeSepData(
pembiayaan: data.classPaySource || '', pembiayaan: data.classPaySource || '',
penanggungJawab: data.responsiblePerson || '', penanggungJawab: data.responsiblePerson || '',
}, },
dpjpLayan: data.attendingDoctor || '', dpjpLayan: '28080', // data.attendingDoctor || '',
noTelp: data.phoneNumber || '', noTelp: data.phoneNumber || '',
user: data.patientName || '', user: data.patientName || '',
jaminan: { jaminan: {