-
diff --git a/app/pages/(features)/outpatient/polyclinic-queue/index.vue b/app/pages/(features)/outpatient/polyclinic-queue/index.vue
deleted file mode 100644
index 50485cec..00000000
--- a/app/pages/(features)/outpatient/polyclinic-queue/index.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
Hello world!!
-
You are accessing "{{ route.fullPath }}"
-
-
diff --git a/app/pages/(features)/outpation-action/chemotherapy/[mode]/[id]/verification.vue b/app/pages/(features)/outpation-action/chemotherapy/[mode]/[id]/verification.vue
deleted file mode 100644
index ef936ff2..00000000
--- a/app/pages/(features)/outpation-action/chemotherapy/[mode]/[id]/verification.vue
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/outpation-action/chemotherapy/[mode]/index.vue b/app/pages/(features)/outpation-action/chemotherapy/[mode]/index.vue
deleted file mode 100644
index cf33691a..00000000
--- a/app/pages/(features)/outpation-action/chemotherapy/[mode]/index.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
diff --git a/app/pages/(features)/outpation-action/chemotherapy/index.vue b/app/pages/(features)/outpation-action/chemotherapy/index.vue
deleted file mode 100644
index a2dfdea5..00000000
--- a/app/pages/(features)/outpation-action/chemotherapy/index.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/outpation-action/chemotherapy/list.vue b/app/pages/(features)/outpation-action/chemotherapy/list.vue
deleted file mode 100644
index a141baaa..00000000
--- a/app/pages/(features)/outpation-action/chemotherapy/list.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/outpation-action/hemophilia/index.vue b/app/pages/(features)/outpation-action/hemophilia/index.vue
deleted file mode 100644
index 50485cec..00000000
--- a/app/pages/(features)/outpation-action/hemophilia/index.vue
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
Hello world!!
-
You are accessing "{{ route.fullPath }}"
-
-
diff --git a/app/pages/(features)/patient/[id]/detail.vue b/app/pages/(features)/patient/[id]/detail.vue
deleted file mode 100644
index 33a36f0f..00000000
--- a/app/pages/(features)/patient/[id]/detail.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- detail pasien
-
diff --git a/app/pages/(features)/patient/[id]/edit.vue b/app/pages/(features)/patient/[id]/edit.vue
deleted file mode 100644
index 2b7e8a31..00000000
--- a/app/pages/(features)/patient/[id]/edit.vue
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
- edit pasien
-
diff --git a/app/pages/(features)/patient/add.vue b/app/pages/(features)/patient/add.vue
deleted file mode 100644
index 412c2b3e..00000000
--- a/app/pages/(features)/patient/add.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter-queue/index.vue b/app/pages/(features)/rehab/encounter-queue/index.vue
deleted file mode 100644
index 8616dd19..00000000
--- a/app/pages/(features)/rehab/encounter-queue/index.vue
+++ /dev/null
@@ -1,3 +0,0 @@
-
- Examination Queue
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/edit.vue b/app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/edit.vue
deleted file mode 100644
index cc5d182f..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/edit.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/index.vue b/app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/index.vue
deleted file mode 100644
index 612315ad..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/index.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/control-letter/add.vue b/app/pages/(features)/rehab/encounter/[id]/control-letter/add.vue
deleted file mode 100644
index fa0b386b..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/control-letter/add.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/detail.vue b/app/pages/(features)/rehab/encounter/[id]/detail.vue
deleted file mode 100644
index e3d45895..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/detail.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/document-upload/[document_id]/edit.vue b/app/pages/(features)/rehab/encounter/[id]/document-upload/[document_id]/edit.vue
deleted file mode 100644
index 1cf5cc7c..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/document-upload/[document_id]/edit.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/document-upload/add.vue b/app/pages/(features)/rehab/encounter/[id]/document-upload/add.vue
deleted file mode 100644
index e04220f3..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/document-upload/add.vue
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/edit.vue b/app/pages/(features)/rehab/encounter/[id]/edit.vue
deleted file mode 100644
index 02dc5428..00000000
--- a/app/pages/(features)/rehab/encounter/[id]/edit.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/encounter/[id]/process.vue b/app/pages/(features)/rehab/encounter/[id]/process.vue
index e25b0e77..9708adfd 100644
--- a/app/pages/(features)/rehab/encounter/[id]/process.vue
+++ b/app/pages/(features)/rehab/encounter/[id]/process.vue
@@ -2,6 +2,7 @@
import type { PagePermission } from '~/models/role'
import Error from '~/components/pub/my-ui/error/error.vue'
import { PAGE_PERMISSIONS } from '~/lib/page-permission'
+import EncounterProcess from '~/components/content/encounter/process-next.vue'
definePageMeta({
middleware: ['rbac'],
@@ -35,7 +36,7 @@ const pagePermission = getPagePermissions(roleAccess)
-
+
diff --git a/app/pages/(features)/rehab/registration/[id]/detail.vue b/app/pages/(features)/rehab/registration/[id]/detail.vue
deleted file mode 100644
index 77c30c00..00000000
--- a/app/pages/(features)/rehab/registration/[id]/detail.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/registration/[id]/edit.vue b/app/pages/(features)/rehab/registration/[id]/edit.vue
deleted file mode 100644
index c6af01a9..00000000
--- a/app/pages/(features)/rehab/registration/[id]/edit.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/registration/add.vue b/app/pages/(features)/rehab/registration/add.vue
deleted file mode 100644
index 87053270..00000000
--- a/app/pages/(features)/rehab/registration/add.vue
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/app/pages/(features)/rehab/registration/index.vue b/app/pages/(features)/rehab/registration/index.vue
deleted file mode 100644
index 5b4fbfb8..00000000
--- a/app/pages/(features)/rehab/registration/index.vue
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
diff --git a/app/schemas/integration-bpjs.schema.ts b/app/schemas/integration-bpjs.schema.ts
index 47206edf..452735f7 100644
--- a/app/schemas/integration-bpjs.schema.ts
+++ b/app/schemas/integration-bpjs.schema.ts
@@ -78,7 +78,7 @@ const IntegrationBpjsSchema = z
.optional(),
destinationClinic: z
.string({ required_error: ERROR_MESSAGES.required.destinationClinic })
- .min(1, ERROR_MESSAGES.required.destinationClinic),
+ .min(1, ERROR_MESSAGES.required.destinationClinic).optional(),
attendingDoctor: z
.string({ required_error: ERROR_MESSAGES.required.attendingDoctor })
.min(1, ERROR_MESSAGES.required.attendingDoctor),
@@ -89,7 +89,7 @@ const IntegrationBpjsSchema = z
cataract: z.string({ required_error: ERROR_MESSAGES.required.cataract }).min(1, ERROR_MESSAGES.required.cataract),
clinicExcecutive: z
.string({ required_error: ERROR_MESSAGES.required.clinicExcecutive })
- .min(1, ERROR_MESSAGES.required.clinicExcecutive),
+ .min(1, ERROR_MESSAGES.required.clinicExcecutive).optional(),
subSpecialistId: z
.string({ required_error: ERROR_MESSAGES.required.subSpecialistId })
.min(1, ERROR_MESSAGES.required.subSpecialistId)
diff --git a/app/services/_crud-base.ts b/app/services/_crud-base.ts
index e3c57689..bf3a89c5 100644
--- a/app/services/_crud-base.ts
+++ b/app/services/_crud-base.ts
@@ -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
) || {}
+ 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) || {}
+ return result
+ } catch (error) {
+ console.error(`Error deleting ${name}:`, error)
+ throw new Error(`Failed to delete ${name}`)
+ }
+}
\ No newline at end of file
diff --git a/app/services/encounter.service.ts b/app/services/encounter.service.ts
index 6e42fd41..3643277a 100644
--- a/app/services/encounter.service.ts
+++ b/app/services/encounter.service.ts
@@ -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)
diff --git a/app/services/vclaim-control-letter.service.ts b/app/services/vclaim-control-letter.service.ts
index 007e91c5..2c638c2e 100644
--- a/app/services/vclaim-control-letter.service.ts
+++ b/app/services/vclaim-control-letter.service.ts
@@ -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
diff --git a/app/services/vclaim-monitoring-visit.service.ts b/app/services/vclaim-monitoring-visit.service.ts
index 0c5da64e..6004673e 100644
--- a/app/services/vclaim-monitoring-visit.service.ts
+++ b/app/services/vclaim-monitoring-visit.service.ts
@@ -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
}
diff --git a/app/services/vclaim-sep.service.ts b/app/services/vclaim-sep.service.ts
index fdccc9c4..93224a4a 100644
--- a/app/services/vclaim-sep.service.ts
+++ b/app/services/vclaim-sep.service.ts
@@ -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,
+ },
+ },
+ }
+}
diff --git a/package.json b/package.json
index d415abde..08b0d87c 100644
--- a/package.json
+++ b/package.json
@@ -23,10 +23,12 @@
"date-fns": "^4.1.0",
"embla-carousel": "^8.5.2",
"embla-carousel-vue": "^8.5.2",
+ "file-saver": "^2.0.5",
"h3": "^1.15.4",
"pinia": "^3.0.3",
"pinia-plugin-persistedstate": "^4.4.1",
- "tailwindcss-animate": "^1.0.7"
+ "tailwindcss-animate": "^1.0.7",
+ "xlsx": "^0.18.5"
},
"devDependencies": {
"@antfu/eslint-config": "^4.10.1",
@@ -36,6 +38,7 @@
"@nuxtjs/color-mode": "^3.5.2",
"@nuxtjs/tailwindcss": "6.14.0",
"@pinia/nuxt": "^0.11.2",
+ "@types/file-saver": "^2.0.7",
"@unocss/eslint-plugin": "^66.0.0",
"@unocss/nuxt": "^66.0.0",
"@vee-validate/zod": "^4.15.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 5ae777c3..565ff313 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -32,6 +32,9 @@ dependencies:
embla-carousel-vue:
specifier: ^8.5.2
version: 8.6.0(vue@3.5.21)
+ file-saver:
+ specifier: ^2.0.5
+ version: 2.0.5
h3:
specifier: ^1.15.4
version: 1.15.4
@@ -44,6 +47,9 @@ dependencies:
tailwindcss-animate:
specifier: ^1.0.7
version: 1.0.7(tailwindcss@3.4.17)
+ xlsx:
+ specifier: ^0.18.5
+ version: 0.18.5
devDependencies:
'@antfu/eslint-config':
@@ -67,6 +73,9 @@ devDependencies:
'@pinia/nuxt':
specifier: ^0.11.2
version: 0.11.2(pinia@3.0.3)
+ '@types/file-saver':
+ specifier: ^2.0.7
+ version: 2.0.7
'@unocss/eslint-plugin':
specifier: ^66.0.0
version: 66.5.1(eslint@9.36.0)(typescript@5.9.2)
@@ -3182,6 +3191,10 @@ packages:
/@types/estree@1.0.8:
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+ /@types/file-saver@2.0.7:
+ resolution: {integrity: sha512-dNKVfHd/jk0SkR/exKGj2ggkB45MAkzvWCaqLUUgkyjITkGNzH8H+yUwr+BLJUBjZOe9w8X3wgmXhZDRg1ED6A==}
+ dev: true
+
/@types/geojson@7946.0.16:
resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==}
dev: false
@@ -4588,6 +4601,11 @@ packages:
engines: {node: '>=0.4.0'}
hasBin: true
+ /adler-32@1.3.1:
+ resolution: {integrity: sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==}
+ engines: {node: '>=0.8'}
+ dev: false
+
/agent-base@7.1.4:
resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
engines: {node: '>= 14'}
@@ -4796,12 +4814,12 @@ packages:
dev: true
optional: true
- /my-ui64-js@1.5.1:
+ /base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
dev: true
- /my-uiline-browser-mapping@2.8.6:
- resolution: {integrity: sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==}
+ /baseline-browser-mapping@2.8.29:
+ resolution: {integrity: sha512-sXdt2elaVnhpDNRDz+1BDx1JQoJRuNk7oVlAlbGiFkLikHCAQiccexF/9e91zVi6RCgqspl04aP+6Cnl9zRLrA==}
hasBin: true
dev: true
@@ -4845,7 +4863,7 @@ packages:
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
hasBin: true
dependencies:
- baseline-browser-mapping: 2.8.6
+ baseline-browser-mapping: 2.8.29
caniuse-lite: 1.0.30001743
electron-to-chromium: 1.5.222
node-releases: 2.0.21
@@ -4966,6 +4984,14 @@ packages:
resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==}
dev: true
+ /cfb@1.2.2:
+ resolution: {integrity: sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ adler-32: 1.3.1
+ crc-32: 1.2.2
+ dev: false
+
/chai@5.3.3:
resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==}
engines: {node: '>=18'}
@@ -5084,6 +5110,11 @@ packages:
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
dev: true
+ /codepage@1.15.0:
+ resolution: {integrity: sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==}
+ engines: {node: '>=0.8'}
+ dev: false
+
/color-convert@2.0.1:
resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
engines: {node: '>=7.0.0'}
@@ -5244,7 +5275,6 @@ packages:
resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==}
engines: {node: '>=0.8'}
hasBin: true
- dev: true
/crc32-stream@6.0.0:
resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==}
@@ -6754,6 +6784,10 @@ packages:
flat-cache: 4.0.1
dev: true
+ /file-saver@2.0.5:
+ resolution: {integrity: sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==}
+ dev: false
+
/file-uri-to-path@1.0.0:
resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
dev: true
@@ -6814,6 +6848,11 @@ packages:
engines: {node: '>=0.4.x'}
dev: true
+ /frac@1.1.2:
+ resolution: {integrity: sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==}
+ engines: {node: '>=0.8'}
+ dev: false
+
/fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
dev: true
@@ -10219,6 +10258,13 @@ packages:
resolution: {integrity: sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==}
engines: {node: '>=0.10.0'}
+ /ssf@0.11.2:
+ resolution: {integrity: sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==}
+ engines: {node: '>=0.8'}
+ dependencies:
+ frac: 1.1.2
+ dev: false
+
/stable-hash-x@0.2.0:
resolution: {integrity: sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==}
engines: {node: '>=12.0.0'}
@@ -11603,11 +11649,21 @@ packages:
stackback: 0.0.2
dev: true
+ /wmf@1.0.2:
+ resolution: {integrity: sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==}
+ engines: {node: '>=0.8'}
+ dev: false
+
/word-wrap@1.2.5:
resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==}
engines: {node: '>=0.10.0'}
dev: true
+ /word@0.3.0:
+ resolution: {integrity: sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==}
+ engines: {node: '>=0.8'}
+ dev: false
+
/wrap-ansi@7.0.0:
resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
engines: {node: '>=10'}
@@ -11648,6 +11704,20 @@ packages:
is-wsl: 3.1.0
dev: true
+ /xlsx@0.18.5:
+ resolution: {integrity: sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==}
+ engines: {node: '>=0.8'}
+ hasBin: true
+ dependencies:
+ adler-32: 1.3.1
+ cfb: 1.2.2
+ codepage: 1.15.0
+ crc-32: 1.2.2
+ ssf: 0.11.2
+ wmf: 1.0.2
+ word: 0.3.0
+ dev: false
+
/xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
diff --git a/public/bpjs.png b/public/bpjs.png
new file mode 100644
index 00000000..781e19b0
Binary files /dev/null and b/public/bpjs.png differ
diff --git a/public/side-menu-items/emp-doc.json b/public/side-menu-items/emp-doc.json
index b7ecb430..a0e13128 100644
--- a/public/side-menu-items/emp-doc.json
+++ b/public/side-menu-items/emp-doc.json
@@ -12,7 +12,7 @@
"icon": "i-lucide-stethoscope",
"children": [
{
- "title": "Triase",
+ "title": "Kunjungan",
"icon": "i-lucide-stethoscope",
"link": "/outpatient/encounter"
},
@@ -44,22 +44,6 @@
}
]
},
- {
- "title": "Rehabilitasi Medik",
- "icon": "i-lucide-bike",
- "children": [
- {
- "title": "Kunjungan",
- "icon": "i-lucide-building-2",
- "link": "/rehab/encounter"
- },
- {
- "title": "Konsultasi",
- "icon": "i-lucide-building-2",
- "link": "/rehab/consultation"
- }
- ]
- },
{
"title": "Rawat Inap",
"icon": "i-lucide-building-2",
diff --git a/public/side-menu-items/emp-nur.json b/public/side-menu-items/emp-nur.json
index 1c993144..a1a72518 100644
--- a/public/side-menu-items/emp-nur.json
+++ b/public/side-menu-items/emp-nur.json
@@ -35,21 +35,6 @@
}
]
},
- {
- "title": "Rehabilitasi Medik",
- "icon": "i-lucide-bike",
- "link": "/rehab",
- "children": [
- {
- "title": "Antrean Poliklinik",
- "link": "/rehab/encounter-queue"
- },
- {
- "title": "Kunjungan",
- "link": "/rehab/encounter"
- }
- ]
- },
{
"title": "Rawat Inap",
"icon": "i-lucide-building-2",
@@ -63,12 +48,12 @@
{
"title": "Kemoterapi",
"icon": "i-lucide-droplets",
- "link": "/outpation-action/chemotherapy"
+ "link": "/chemotherapy"
},
{
"title": "Hemofilia",
"icon": "i-lucide-droplet-off",
- "link": "/outpation-action/hemophilia"
+ "link": "/hemophilia"
}
]
},
@@ -78,17 +63,17 @@
{
"title": "Thalasemi",
"icon": "i-lucide-baby",
- "link": "/children-action/thalasemia"
+ "link": "/thalasemia"
},
{
"title": "Echocardiography",
"icon": "i-lucide-baby",
- "link": "/children-action/echocardiography"
+ "link": "/echocardiography"
},
{
"title": "Spirometri",
"icon": "i-lucide-baby",
- "link": "/children-action/spirometry"
+ "link": "/spirometry"
}
]
}
diff --git a/public/side-menu-items/emp-reg.json b/public/side-menu-items/emp-reg.json
index 86d6d4ed..02c21179 100644
--- a/public/side-menu-items/emp-reg.json
+++ b/public/side-menu-items/emp-reg.json
@@ -26,21 +26,6 @@
"icon": "i-lucide-zap",
"link": "/emergency/encounter"
},
- {
- "title": "Rehabilitasi Medik",
- "icon": "i-lucide-bike",
- "link": "/rehab",
- "children": [
- {
- "title": "Antrean Pendaftaran",
- "link": "/rehab/registration-queue"
- },
- {
- "title": "Kunjungan",
- "link": "/rehab/encounter"
- }
- ]
- },
{
"title": "Rawat Inap",
"icon": "i-lucide-building-2",
diff --git a/public/side-menu-items/sys.json b/public/side-menu-items/sys.json
index 039066a4..b3d86111 100644
--- a/public/side-menu-items/sys.json
+++ b/public/side-menu-items/sys.json
@@ -17,7 +17,7 @@
},
{
"title": "Antrian Poliklinik",
- "link": "/outpatient/polyclinic-queue"
+ "link": "/outpatient/encounter-queue"
},
{
"title": "Kunjungan",
@@ -47,28 +47,6 @@
}
]
},
- {
- "title": "Rehab Medik",
- "icon": "i-lucide-bike",
- "children": [
- {
- "title": "Antrean Pendaftaran",
- "link": "/rehab/registration-queue"
- },
- {
- "title": "Antrean Poliklinik",
- "link": "/rehab/polyclinic-queue"
- },
- {
- "title": "Kunjungan",
- "link": "/rehab/encounter"
- },
- {
- "title": "Konsultasi",
- "link": "/rehab/consultation"
- }
- ]
- },
{
"title": "Rawat Inap",
"icon": "i-lucide-building-2",
@@ -101,10 +79,15 @@
}
]
},
+ {
+ "title": "Radiologi - Order",
+ "icon": "i-lucide-radio",
+ "link": "/radiology-order"
+ },
{
"title": "Lab - Order",
"icon": "i-lucide-microscope",
- "link": "/pc-lab-order"
+ "link": "/cp-lab-order"
},
{
"title": "Lab Mikro - Order",
@@ -114,12 +97,7 @@
{
"title": "Lab PA - Order",
"icon": "i-lucide-microscope",
- "link": "/pa-lab-order"
- },
- {
- "title": "Radiologi - Order",
- "icon": "i-lucide-radio",
- "link": "/radiology-order"
+ "link": "/ap-lab-order"
},
{
"title": "Gizi",
@@ -193,17 +171,17 @@
{
"title": "SEP",
"icon": "i-lucide-circuit-board",
- "link": "/integration/bpjs/sep"
+ "link": "/integration/bpjs-vclaim/sep"
},
{
"title": "Peserta",
"icon": "i-lucide-circuit-board",
- "link": "/integration/bpjs/member"
+ "link": "/integration/bpjs-vclaim/member"
},
{
"title": "Surat Kontrol",
"icon": "i-lucide-circuit-board",
- "link": "/integration/bpjs/control-letter"
+ "link": "/integration/bpjs-vclaim/control-letter"
}
]
},
@@ -284,40 +262,40 @@
]
},
{
- "title": "Layanan",
+ "title": "Infrastruktur",
"icon": "i-lucide-layout-list",
"children": [
- {
- "title": "Counter",
- "link": "/service-src/counter"
- },
- {
- "title": "Public Screen (Big Screen)",
- "link": "/service-src/public-screen"
- },
{
"title": "Kasur",
- "link": "/service-src/bed"
+ "link": "/infra-src/bed"
},
{
"title": "Kamar",
- "link": "/service-src/chamber"
+ "link": "/infra-src/chamber"
},
{
"title": "Ruang",
- "link": "/service-src/room"
+ "link": "/infra-src/room"
},
{
"title": "Depo",
- "link": "/service-src/warehouse"
+ "link": "/infra-src/warehouse"
},
{
"title": "Lantai",
- "link": "/service-src/floor"
+ "link": "/infra-src/floor"
},
{
"title": "Gedung",
- "link": "/service-src/building"
+ "link": "/infra-src/building"
+ },
+ {
+ "title": "Counter",
+ "link": "/infra-src/counter"
+ },
+ {
+ "title": "Public Screen (Big Screen)",
+ "link": "/infra-src/public-screen"
}
]
},
@@ -369,4 +347,4 @@
}
]
}
-]
\ No newline at end of file
+]
diff --git a/public/side-menu-items/system.json b/public/side-menu-items/system.json
index e12f58ec..2dc94443 100644
--- a/public/side-menu-items/system.json
+++ b/public/side-menu-items/system.json
@@ -193,17 +193,17 @@
{
"title": "SEP",
"icon": "i-lucide-circuit-board",
- "link": "/integration/bpjs/sep"
+ "link": "/integration/bpjs-vclaim/sep"
},
{
"title": "Peserta",
"icon": "i-lucide-circuit-board",
- "link": "/integration/bpjs/member"
+ "link": "/integration/bpjs-vclaim/member"
},
{
"title": "Surat Kontrol",
"icon": "i-lucide-circuit-board",
- "link": "/integration/bpjs/control-letter"
+ "link": "/integration/bpjs-vclaim/control-letter"
}
]
},
diff --git a/server/api/[...req].ts b/server/api/[...req].ts
index 5948eda6..c58bf7d6 100644
--- a/server/api/[...req].ts
+++ b/server/api/[...req].ts
@@ -1,7 +1,7 @@
import { defineEventHandler, getCookie, getRequestHeaders, getRequestURL, readBody } from 'h3'
export default defineEventHandler(async (event) => {
- const { method } = event.node.req
+ const { method } = event.node.req as any
const headers = getRequestHeaders(event)
const url = getRequestURL(event)
const config = useRuntimeConfig()
@@ -36,7 +36,7 @@ export default defineEventHandler(async (event) => {
}
let body: any
- if (['POST', 'PATCH'].includes(method!)) {
+ if (['POST', 'PATCH', 'PUT', 'DELETE'].includes(method)) {
if (headers['content-type']?.includes('multipart/form-data')) {
body = await readBody(event)
} else {