Merge branch 'dev' into feat/kfr-kemoterapi-174

This commit is contained in:
2025-12-01 20:47:45 +07:00
161 changed files with 5956 additions and 2860 deletions
+26
View File
@@ -74,6 +74,19 @@ export async function update(path: string, id: number | string, data: any, name:
}
}
export async function updateCustom(path: string, data: any, name: string = 'item') {
try {
const resp = await xfetch(`${path}`, 'PATCH', data)
const result: any = {}
result.success = resp.success
result.body = (resp.body as Record<string, any>) || {}
return result
} catch (error) {
console.error(`Error putting ${name}:`, error)
throw new Error(`Failed to put ${name}`)
}
}
export async function remove(path: string, id: number | string, name: string = 'item') {
try {
const resp = await xfetch(`${path}/${id}`, 'DELETE')
@@ -86,3 +99,16 @@ export async function remove(path: string, id: number | string, name: string = '
throw new Error(`Failed to delete ${name}`)
}
}
export async function removeCustom(path: string, data: any, name: string = 'item') {
try {
const resp = await xfetch(`${path}`, 'DELETE', data)
const result: any = {}
result.success = resp.success
result.body = (resp.body as Record<string, any>) || {}
return result
} catch (error) {
console.error(`Error deleting ${name}:`, error)
throw new Error(`Failed to delete ${name}`)
}
}
+5
View File
@@ -28,6 +28,11 @@ export function remove(id: number | string) {
return base.remove(path, id, name)
}
export function cancel(id: number | string) {
let url = `${path}/${id}/cancel`
return base.updateCustom(url, null, name)
}
export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> {
let data: { value: string; label: string }[] = []
const result = await getList(params)
@@ -15,11 +15,11 @@ export function getList(params: any = null) {
if (params?.letterNumber && params.mode === 'by-sep') {
url += `/${params.letterNumber}`
}
if (params?.letterNumber && params.mode === 'by-schedule') {
url += `/jadwalDokter?jeniskontrol=${params.controlType}&kodepoli=${params.poliCode}&tanggalkontrol=${params.controlDate}`
if (params?.controlDate && params.mode === 'by-schedule') {
url += `/jadwalDokter?jeniskontrol=${params.controlType}&kodepoli=${params.polyCode}&tanggalkontrol=${params.controlDate}`
delete params.controlType
delete params.poliCode
delete params.controlDate
delete params.polyCode
}
if (params) {
delete params.letterNumber
+10 -62
View File
@@ -4,68 +4,16 @@ import * as base from './_crud-base'
const path = '/api/vclaim/v1/monitoring/visit'
const name = 'monitoring-visit'
const dummyResponse = {
metaData: {
code: '200',
message: 'Sukses',
},
response: {
sep: [
{
diagnosa: 'K65.0',
jnsPelayanan: 'R.Inap',
kelasRawat: '2',
nama: 'HANIF ABDURRAHMAN',
noKartu: '0001819122189',
noSep: '0301R00110170000004',
noRujukan: '0301U01108180200084',
poli: null,
tglPlgSep: '2017-10-03',
tglSep: '2017-10-01',
},
{
diagnosa: 'I50.0',
jnsPelayanan: 'R.Inap',
kelasRawat: '3',
nama: 'ASRIZAL',
noKartu: '0002283324674',
noSep: '0301R00110170000005',
noRujukan: '0301U01108180200184',
poli: null,
tglPlgSep: '2017-10-10',
tglSep: '2017-10-01',
},
],
},
}
export async function getList(params: any = null) {
try {
let url = path
if (params?.date && params.serviceType) {
url += `/${params.date}/${params.serviceType}`
}
if (params) {
delete params.date
delete params.serviceType
}
const resp = await base.getList(url, params, name)
// Jika success false, return dummy response
if (!resp.success || !resp.body?.response) {
return {
success: true,
body: dummyResponse,
}
}
return resp
} catch (error) {
// Jika terjadi error, return dummy response
console.error(`Error fetching ${name}s:`, error)
return {
success: true,
body: dummyResponse,
}
let url = path
if (params?.date && params.serviceType) {
url += `/${params.date}/${params.serviceType}`
}
if (params) {
delete params.date
delete params.serviceType
}
const resp = await base.getList(url, params, name)
return resp
}
+37 -10
View File
@@ -7,6 +7,9 @@ import type { IntegrationBpjsFormData } from '~/schemas/integration-bpjs.schema'
const path = '/api/vclaim-swagger/sep'
const name = 'sep'
// TODO: temporary destinationClinic
const destinationClinic = '1323R001'
export function create(data: any) {
return base.create(path, data, name)
}
@@ -20,8 +23,19 @@ export function getList(params: any = null) {
return base.getList(url, params, name)
}
export function getDetail(id: number | string) {
return base.getDetail(path, id, name)
}
export function remove(payload: any) {
const url = `${path}`
return base.removeCustom(url, payload, name)
}
export function makeSepData(
data: IntegrationBpjsFormData & {
userName: string
polyCode?: string
referralFrom?: string
referralTo?: string
referralLetterDate?: string
@@ -31,13 +45,13 @@ export function makeSepData(
const content = {
noKartu: data.cardNumber || '',
tglSep: data.sepDate,
ppkPelayanan: data.fromClinic || '',
jnsPelayanan: data.admissionType ? String(data.admissionType) : '1',
ppkPelayanan: destinationClinic || data.fromClinic || '',
jnsPelayanan: data.serviceType ? String(data.serviceType) : '2',
noMR: data.medicalRecordNumber || '',
catatan: data.note || '',
diagAwal: data.initialDiagnosis || '',
poli: {
tujuan: data.destinationClinic || '',
tujuan: data.polyCode || '',
eksekutif: data.clinicExcecutive === 'yes' ? '1' : '0',
},
cob: {
@@ -46,19 +60,21 @@ export function makeSepData(
katarak: {
katarak: data.cataract === 'yes' ? '1' : '0',
},
tujuanKunj: data.purposeOfVisit || '',
tujuanKunj: data.purposeOfVisit || '0',
flagProcedure: data.procedureType || '',
kdPenunjang: data.supportCode || '',
assesmentPel: data.serviceAssessment || '',
skdp: {
noSurat: ['3'].includes(data.admissionType) ? data.referralLetterNumber : '',
kodeDPJP: ['3'].includes(data.admissionType)? data.attendingDoctor : '',
kodeDPJP: ['3'].includes(data.admissionType) ? data.attendingDoctor : '',
},
rujukan: {
asalRujukan: ['2'].includes(data.admissionType) ? data?.referralFrom || '' : '',
tglRujukan: ['2'].includes(data.admissionType) ? data?.referralLetterDate || '' : '',
noRujukan: ['2'].includes(data.admissionType) ? data?.referralLetterNumber || '' : '',
ppkRujukan: ['2'].includes(data.admissionType) ? data?.referralTo || '' : '',
// Handle referral data for admissionType !== '3'
// asalRujukan: 1 = Faskes 1, 2 = Faskes RS
asalRujukan: !['3'].includes(data.admissionType) ? data?.referralFrom || '' : '',
tglRujukan: !['3'].includes(data.admissionType) ? data?.referralLetterDate || '' : '',
noRujukan: !['3'].includes(data.admissionType) ? data?.referralLetterNumber || '' : '',
ppkRujukan: !['3'].includes(data.admissionType) ? data?.referralTo || '' : '',
},
klsRawat: {
klsRawatHak: data.classLevel || '',
@@ -68,7 +84,7 @@ export function makeSepData(
},
dpjpLayan: data.attendingDoctor || '',
noTelp: data.phoneNumber || '',
user: data.patientName || '',
user: data.userName || '',
jaminan: {
lakaLantas: data.trafficAccident || '0',
noLP: data.lpNumber || '',
@@ -93,3 +109,14 @@ export function makeSepData(
},
}
}
export function makeSepDataForRemove(data: any) {
return {
request: {
t_sep: {
noSep: data.sepNumber,
user: data.userName,
},
},
}
}