From f818c726c82233a3b3081c651b9aa6d2db5825be Mon Sep 17 00:00:00 2001 From: hasyim_kai Date: Fri, 21 Nov 2025 14:09:54 +0700 Subject: [PATCH 1/6] Fix: typo in Unit Position Model --- app/models/unit-position.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/unit-position.ts b/app/models/unit-position.ts index a583d948..3e1dc426 100644 --- a/app/models/unit-position.ts +++ b/app/models/unit-position.ts @@ -2,7 +2,7 @@ import { type Base, genBase } from './_base' import type { Employee } from './employee' export interface UnitPosition extends Base { - unit_code: string + unit_id: string code: string name: string headStatus?: boolean @@ -14,7 +14,7 @@ export interface UnitPosition extends Base { export function genUnitPosition(): UnitPosition { return { ...genBase(), - unit_code: '', + unit_id: '', code: '', name: '', headStatus: false, From 33abc5b50cb401ea6e90d46c4f3929aad2b9cf9e Mon Sep 17 00:00:00 2001 From: Andrian Roshandy Date: Mon, 24 Nov 2025 08:11:50 +0700 Subject: [PATCH 2/6] feat/page-claning: moved some consts from lib --- app/composables/useRBAC.ts | 4 +- .../key-val/clinical.ts} | 0 .../key-val/common.ts} | 0 .../key-val/encounter.ts} | 0 .../org-const.ts => const/key-val/org.ts} | 0 .../key-val/person.ts} | 0 app/const/page-permission/chemo.ts | 32 +++++++++ app/const/page-permission/emergency.ts | 67 +++++++++++++++++++ app/const/page-permission/human-src.ts | 25 +++++++ app/const/page-permission/inpatient.ts | 57 ++++++++++++++++ app/const/page-permission/mcu-src.ts | 19 ++++++ app/const/page-permission/org-src.ts | 31 +++++++++ app/const/page-permission/outpatient.ts | 57 ++++++++++++++++ app/const/page-permission/tools-equipment.ts | 27 ++++++++ app/lib/page-permission.ts | 14 ++-- 15 files changed, 323 insertions(+), 10 deletions(-) rename app/{lib/clinical-const.ts => const/key-val/clinical.ts} (100%) rename app/{lib/common-const.ts => const/key-val/common.ts} (100%) rename app/{lib/encounter-const.ts => const/key-val/encounter.ts} (100%) rename app/{lib/org-const.ts => const/key-val/org.ts} (100%) rename app/{lib/person-const.ts => const/key-val/person.ts} (100%) create mode 100644 app/const/page-permission/chemo.ts create mode 100644 app/const/page-permission/emergency.ts create mode 100644 app/const/page-permission/human-src.ts create mode 100644 app/const/page-permission/inpatient.ts create mode 100644 app/const/page-permission/mcu-src.ts create mode 100644 app/const/page-permission/org-src.ts create mode 100644 app/const/page-permission/outpatient.ts create mode 100644 app/const/page-permission/tools-equipment.ts diff --git a/app/composables/useRBAC.ts b/app/composables/useRBAC.ts index 076cae68..2383e306 100644 --- a/app/composables/useRBAC.ts +++ b/app/composables/useRBAC.ts @@ -17,12 +17,12 @@ export function useRBAC() { const checkRole = (roleAccess: RoleAccess, _userRoles?: string[]): boolean => { const roles = authStore.userRole - return roles.some((role: string) => (role in roleAccess) || role === 'system') // system by-passes this check + return roles.some((role: string) => role === 'system' || (role in roleAccess)) // system by-passes this check } const checkPermission = (roleAccess: RoleAccess, permission: Permission, _userRoles?: string[]): boolean => { const roles = authStore.userRole - return roles.some((role: string) => roleAccess[role]?.includes(permission) || role === 'system') // system by-passes this check + return roles.some((role: string) => role === 'system' || roleAccess[role]?.includes(permission)) // system by-passes this check } const getUserPermissions = (roleAccess: RoleAccess, _userRoles?: string[]): Permission[] => { diff --git a/app/lib/clinical-const.ts b/app/const/key-val/clinical.ts similarity index 100% rename from app/lib/clinical-const.ts rename to app/const/key-val/clinical.ts diff --git a/app/lib/common-const.ts b/app/const/key-val/common.ts similarity index 100% rename from app/lib/common-const.ts rename to app/const/key-val/common.ts diff --git a/app/lib/encounter-const.ts b/app/const/key-val/encounter.ts similarity index 100% rename from app/lib/encounter-const.ts rename to app/const/key-val/encounter.ts diff --git a/app/lib/org-const.ts b/app/const/key-val/org.ts similarity index 100% rename from app/lib/org-const.ts rename to app/const/key-val/org.ts diff --git a/app/lib/person-const.ts b/app/const/key-val/person.ts similarity index 100% rename from app/lib/person-const.ts rename to app/const/key-val/person.ts diff --git a/app/const/page-permission/chemo.ts b/app/const/page-permission/chemo.ts new file mode 100644 index 00000000..8796999e --- /dev/null +++ b/app/const/page-permission/chemo.ts @@ -0,0 +1,32 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/chemo/verification': { + 'emp|reg': ['R'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + }, + '/chemo/verification/[id]': { + 'emp|reg': ['R'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + }, + '/chemo/verification/[id]/process': { + 'emp|doc': ['R', 'U'], + 'emp|nur': ['R', 'U'], + }, + '/chemo/action': { + 'emp|reg': ['R', 'U', 'D'], + }, + '/chemo/action/[id]': { + 'emp|reg': ['R', 'U', 'D'], + }, + '/chemo/action/[id]/process': { + 'emp|doc': ['R', 'U'], + 'emp|nur': ['R', 'U'], + 'emp|thr': ['R', 'U'], + }, +} diff --git a/app/const/page-permission/emergency.ts b/app/const/page-permission/emergency.ts new file mode 100644 index 00000000..cfbab478 --- /dev/null +++ b/app/const/page-permission/emergency.ts @@ -0,0 +1,67 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/emergency/triage': { + 'emp|doc': ['C', 'R', 'U', 'D'], + 'emp|nur': ['C', 'R', 'U', 'D'], + }, + '/emergency/triage/add': { + 'emp|doc': ['C', 'R', 'U', 'D'], + 'emp|nur': ['C', 'R', 'U', 'D'], + }, + '/emergency/triage/[id]': { + 'emp|doc': ['C', 'R', 'U', 'D'], + 'emp|nur': ['C', 'R', 'U', 'D'], + }, + '/emergency/triage/[id]/edit': { + 'emp|doc': ['C', 'R', 'U', 'D'], + 'emp|nur': ['C', 'R', 'U', 'D'], + }, + '/emergency/encounter': { + 'emp|reg': ['C', 'R', 'U', 'D'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + 'emp|thr': ['R'], + 'emp|miw': ['R'], + 'emp|nut': ['R'], + 'emp|pha': ['R'], + 'emp|lab': ['R'], + 'emp|rad': ['R'], + }, + '/emergency/encounter/add': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/emergency/encounter/[id]': { + 'emp|reg': ['C', 'R', 'U', 'D'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + 'emp|thr': ['R'], + 'emp|miw': ['R'], + 'emp|nut': ['R'], + 'emp|pha': ['R'], + 'emp|lab': ['R'], + 'emp|rad': ['R'], + }, + '/emergency/encounter/[id]/edit': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/emergency/encounter/[id]/process': { + 'emp|doc': ['R', 'U'], + 'emp|nur': ['R', 'U'], + 'emp|thr': ['R', 'U'], + 'emp|miw': ['R', 'U'], + 'emp|nut': ['R', 'U'], + 'emp|pha': ['R', 'U'], + 'emp|lab': ['R', 'U'], + 'emp|rad': ['R', 'U'], + }, + '/emergency/consulation': { + 'emp|doc': ['R'], + }, + '/emergency/consulation/[id]/process': { + 'emp|doc': ['R', 'U'], + }, +} diff --git a/app/const/page-permission/human-src.ts b/app/const/page-permission/human-src.ts new file mode 100644 index 00000000..1698f3e5 --- /dev/null +++ b/app/const/page-permission/human-src.ts @@ -0,0 +1,25 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/human-src/employee': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, + '/human-src/employee/add': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, + '/human-src/employee/[id]/edit': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, + '/human-src/intern': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, + '/human-src/intern/add': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, + '/human-src/intern/[id]/edit': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, +} diff --git a/app/const/page-permission/inpatient.ts b/app/const/page-permission/inpatient.ts new file mode 100644 index 00000000..b116c5fa --- /dev/null +++ b/app/const/page-permission/inpatient.ts @@ -0,0 +1,57 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/inpatient/request': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/inpatient/request/[id]/detail': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/inpatient/encounter': { + 'emp|reg': ['C', 'R', 'U', 'D'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + 'emp|thr': ['R'], + 'emp|miw': ['R'], + 'emp|nut': ['R'], + 'emp|pha': ['R'], + 'emp|lab': ['R'], + 'emp|rad': ['R'], + }, + '/inpatient/encounter/add': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/inpatient/encounter/[id]': { + 'emp|reg': ['C', 'R', 'U', 'D'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + 'emp|thr': ['R'], + 'emp|miw': ['R'], + 'emp|nut': ['R'], + 'emp|pha': ['R'], + 'emp|lab': ['R'], + 'emp|rad': ['R'], + }, + '/inpatient/encounter/[id]/edit': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/inpatient/encounter/[id]/process': { + 'emp|doc': ['R', 'U'], + 'emp|nur': ['R', 'U'], + 'emp|thr': ['R', 'U'], + 'emp|miw': ['R', 'U'], + 'emp|nut': ['R', 'U'], + 'emp|pha': ['R', 'U'], + 'emp|lab': ['R', 'U'], + 'emp|rad': ['R', 'U'], + }, + '/inpatient/consulation': { + 'emp|doc': ['R'], + }, + '/inpatient/consulation/[id]/process': { + 'emp|doc': ['R', 'U'], + }, +} diff --git a/app/const/page-permission/mcu-src.ts b/app/const/page-permission/mcu-src.ts new file mode 100644 index 00000000..85ad5f71 --- /dev/null +++ b/app/const/page-permission/mcu-src.ts @@ -0,0 +1,19 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/muc-src/checkup': { + 'emp|lab': ['C', 'R', 'U', 'D'], + }, + '/muc-src/checkup-category': { + 'emp|lab': ['C', 'R', 'U', 'D'], + }, + '/mcu-src/antibiotic-src': { + 'emp|lab': ['C', 'R', 'U', 'D'], + }, + '/mcu-src/antibiotic-src-category': { + 'emp|lab': ['C', 'R', 'U', 'D'], + } +} diff --git a/app/const/page-permission/org-src.ts b/app/const/page-permission/org-src.ts new file mode 100644 index 00000000..9bd9eb68 --- /dev/null +++ b/app/const/page-permission/org-src.ts @@ -0,0 +1,31 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/infra-src/bed': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/chamber': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/room': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/warehouse': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/building': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/floor': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/counter': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, + '/infra-src/public-screen': { + 'div|fin': ['C', 'R', 'U', 'D'], + }, +} diff --git a/app/const/page-permission/outpatient.ts b/app/const/page-permission/outpatient.ts new file mode 100644 index 00000000..644f63c9 --- /dev/null +++ b/app/const/page-permission/outpatient.ts @@ -0,0 +1,57 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/outpatient/registration-queue': { + 'emp|reg': ['R', 'U', 'D'], + }, + '/outpatient/encounter-queue': { + 'emp|nur': ['R', 'U', 'D'], + }, + '/outpatient/encounter': { + 'emp|reg': ['C', 'R', 'U', 'D'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + 'emp|thr': ['R'], + 'emp|miw': ['R'], + 'emp|nut': ['R'], + 'emp|pha': ['R'], + 'emp|lab': ['R'], + 'emp|rad': ['R'], + }, + '/outpatient/encounter/add': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/outpatient/encounter/[id]/detail': { + 'emp|reg': ['C', 'R', 'U', 'D'], + 'emp|doc': ['R'], + 'emp|nur': ['R'], + 'emp|thr': ['R'], + 'emp|miw': ['R'], + 'emp|nut': ['R'], + 'emp|pha': ['R'], + 'emp|lab': ['R'], + 'emp|rad': ['R'], + }, + '/outpatient/encounter/[id]/edit': { + 'emp|reg': ['C', 'R', 'U', 'D'], + }, + '/outpatient/encounter/[id]/process': { + 'emp|doc': ['R', 'U'], + 'emp|nur': ['R', 'U'], + 'emp|thr': ['R', 'U'], + 'emp|miw': ['R', 'U'], + 'emp|nut': ['R', 'U'], + 'emp|pha': ['R', 'U'], + 'emp|lab': ['R', 'U'], + 'emp|rad': ['R', 'U'], + }, + '/outpatient/consulation': { + 'emp|doc': ['R'], + }, + '/outpatient/consulation/[id]/process': { + 'emp|doc': ['R', 'U'], + }, +} diff --git a/app/const/page-permission/tools-equipment.ts b/app/const/page-permission/tools-equipment.ts new file mode 100644 index 00000000..dd112ae8 --- /dev/null +++ b/app/const/page-permission/tools-equipment.ts @@ -0,0 +1,27 @@ +import type { Permission } from "~/models/role"; + +// Should we define the keys first? +// export type Keys = 'key1' | 'key2' | 'key3' | etc + +export const permissions: Record> = { + '/tools-equipment-src/medicine': { + 'div|fin': ['C', 'R', 'U', 'D'], + 'emp|pha': ['R'], + }, + '/tools-equipment-src/medicine-method': { + 'div|fin': ['C', 'R', 'U', 'D'], + 'emp|pha': ['R'], + }, + '/tools-equipment-src/medicine-type': { + 'div|fin': ['C', 'R', 'U', 'D'], + 'emp|pha': ['R'], + }, + '/tools-equipment-src/medicine-form': { + 'div|fin': ['C', 'R', 'U', 'D'], + 'emp|pha': ['R'], + }, + '/tools-equipment-src/device-src': { + 'div|fin': ['C', 'R', 'U', 'D'], + 'emp|pha': ['R'], + }, +} diff --git a/app/lib/page-permission.ts b/app/lib/page-permission.ts index ab7b5550..807131a8 100644 --- a/app/lib/page-permission.ts +++ b/app/lib/page-permission.ts @@ -1,7 +1,7 @@ import type { RoleAccess } from '~/models/role' export const PAGE_PERMISSIONS = { - '/patient': { + '/client/patient': { 'emp|doc': ['R'], 'emp|nur': ['R'], 'emp|reg': ['C', 'R', 'U', 'D'], @@ -9,13 +9,11 @@ export const PAGE_PERMISSIONS = { 'emp|pay': ['R'], 'emp|mng': ['R'], }, - '/doctor': { - 'emp|doc': ['C', 'R', 'U', 'D'], - 'emp|nur': ['R'], - 'emp|reg': ['R'], - 'emp|pha': ['R'], - 'emp|pay': ['R'], - 'emp|mng': ['R'], + '/human-src/employee': { + 'div|hrd': ['C', 'R', 'U', 'D'], + }, + '/human-src/intern': { + 'div|hrd': ['C', 'R', 'U', 'D'], }, '/satusehat': { 'emp|doc': ['R'], From 9368530ee3fced55204d2ec99abdf21fb6c796f9 Mon Sep 17 00:00:00 2001 From: Andrian Roshandy Date: Mon, 24 Nov 2025 08:13:05 +0700 Subject: [PATCH 3/6] feat/page-cleaning: dropped unnecessary pages --- .../echocardiography/index.vue | 10 ---- .../children-action/spirometry/index.vue | 10 ---- .../children-action/thalasemia/index.vue | 10 ---- app/pages/(features)/doctor/add.vue | 41 -------------- app/pages/(features)/doctor/index.vue | 40 -------------- .../chemotherapy/[mode]/[id]/verification.vue | 47 ---------------- .../chemotherapy/[mode]/index.vue | 55 ------------------- .../outpation-action/chemotherapy/index.vue | 9 --- .../outpation-action/chemotherapy/list.vue | 40 -------------- .../outpation-action/hemophilia/index.vue | 10 ---- app/pages/(features)/patient/[id]/detail.vue | 9 --- app/pages/(features)/patient/[id]/edit.vue | 9 --- app/pages/(features)/patient/add.vue | 41 -------------- app/pages/(features)/patient/index.vue | 40 -------------- .../rehab/encounter-queue/index.vue | 3 - .../[control_letter_id]/edit.vue | 41 -------------- .../[control_letter_id]/index.vue | 41 -------------- .../encounter/[id]/control-letter/add.vue | 41 -------------- .../rehab/encounter/[id]/detail.vue | 41 -------------- .../document-upload/[document_id]/edit.vue | 41 -------------- .../encounter/[id]/document-upload/add.vue | 42 -------------- .../(features)/rehab/encounter/[id]/edit.vue | 55 ------------------- .../rehab/encounter/[id]/process.vue | 41 -------------- app/pages/(features)/rehab/encounter/add.vue | 49 ----------------- .../(features)/rehab/encounter/index.vue | 47 ---------------- .../rehab/registration/[id]/detail.vue | 41 -------------- .../rehab/registration/[id]/edit.vue | 41 -------------- .../(features)/rehab/registration/add.vue | 41 -------------- .../(features)/rehab/registration/index.vue | 40 -------------- 29 files changed, 976 deletions(-) delete mode 100644 app/pages/(features)/children-action/echocardiography/index.vue delete mode 100644 app/pages/(features)/children-action/spirometry/index.vue delete mode 100644 app/pages/(features)/children-action/thalasemia/index.vue delete mode 100644 app/pages/(features)/doctor/add.vue delete mode 100644 app/pages/(features)/doctor/index.vue delete mode 100644 app/pages/(features)/outpation-action/chemotherapy/[mode]/[id]/verification.vue delete mode 100644 app/pages/(features)/outpation-action/chemotherapy/[mode]/index.vue delete mode 100644 app/pages/(features)/outpation-action/chemotherapy/index.vue delete mode 100644 app/pages/(features)/outpation-action/chemotherapy/list.vue delete mode 100644 app/pages/(features)/outpation-action/hemophilia/index.vue delete mode 100644 app/pages/(features)/patient/[id]/detail.vue delete mode 100644 app/pages/(features)/patient/[id]/edit.vue delete mode 100644 app/pages/(features)/patient/add.vue delete mode 100644 app/pages/(features)/patient/index.vue delete mode 100644 app/pages/(features)/rehab/encounter-queue/index.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/control-letter/[control_letter_id]/index.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/control-letter/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/detail.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/document-upload/[document_id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/document-upload/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/process.vue delete mode 100644 app/pages/(features)/rehab/encounter/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/index.vue delete mode 100644 app/pages/(features)/rehab/registration/[id]/detail.vue delete mode 100644 app/pages/(features)/rehab/registration/[id]/edit.vue delete mode 100644 app/pages/(features)/rehab/registration/add.vue delete mode 100644 app/pages/(features)/rehab/registration/index.vue diff --git a/app/pages/(features)/children-action/echocardiography/index.vue b/app/pages/(features)/children-action/echocardiography/index.vue deleted file mode 100644 index 50485cec..00000000 --- a/app/pages/(features)/children-action/echocardiography/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/pages/(features)/children-action/spirometry/index.vue b/app/pages/(features)/children-action/spirometry/index.vue deleted file mode 100644 index 50485cec..00000000 --- a/app/pages/(features)/children-action/spirometry/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/pages/(features)/children-action/thalasemia/index.vue b/app/pages/(features)/children-action/thalasemia/index.vue deleted file mode 100644 index 50485cec..00000000 --- a/app/pages/(features)/children-action/thalasemia/index.vue +++ /dev/null @@ -1,10 +0,0 @@ - - - diff --git a/app/pages/(features)/doctor/add.vue b/app/pages/(features)/doctor/add.vue deleted file mode 100644 index a76811de..00000000 --- a/app/pages/(features)/doctor/add.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/app/pages/(features)/doctor/index.vue b/app/pages/(features)/doctor/index.vue deleted file mode 100644 index 078df778..00000000 --- a/app/pages/(features)/doctor/index.vue +++ /dev/null @@ -1,40 +0,0 @@ - - - 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 @@ - - - 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 @@ - - - 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 @@ - - - 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)/patient/index.vue b/app/pages/(features)/patient/index.vue deleted file mode 100644 index 1877289e..00000000 --- a/app/pages/(features)/patient/index.vue +++ /dev/null @@ -1,40 +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 @@ - 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 deleted file mode 100644 index e25b0e77..00000000 --- a/app/pages/(features)/rehab/encounter/[id]/process.vue +++ /dev/null @@ -1,41 +0,0 @@ - - - diff --git a/app/pages/(features)/rehab/encounter/add.vue b/app/pages/(features)/rehab/encounter/add.vue deleted file mode 100644 index fe7dd98c..00000000 --- a/app/pages/(features)/rehab/encounter/add.vue +++ /dev/null @@ -1,49 +0,0 @@ - - - diff --git a/app/pages/(features)/rehab/encounter/index.vue b/app/pages/(features)/rehab/encounter/index.vue deleted file mode 100644 index 1dd93aa0..00000000 --- a/app/pages/(features)/rehab/encounter/index.vue +++ /dev/null @@ -1,47 +0,0 @@ - - - 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 @@ - - - From 401b46ade2c0e936ce94769e6c0901b28a4f2113 Mon Sep 17 00:00:00 2001 From: Andrian Roshandy Date: Mon, 24 Nov 2025 08:17:07 +0700 Subject: [PATCH 4/6] feat/page-cleaning: moved service-src to infra-src --- app/pages/(features)/{service-src => infra-src}/bed/index.vue | 0 .../(features)/{service-src => infra-src}/building/index.vue | 0 app/pages/(features)/{service-src => infra-src}/chamber/index.vue | 0 app/pages/(features)/{service-src => infra-src}/counter/index.vue | 0 app/pages/(features)/{service-src => infra-src}/floor/index.vue | 0 .../(features)/{service-src => infra-src}/public-screen/index.vue | 0 app/pages/(features)/{service-src => infra-src}/room/index.vue | 0 .../(features)/{service-src => infra-src}/warehouse/index.vue | 0 8 files changed, 0 insertions(+), 0 deletions(-) rename app/pages/(features)/{service-src => infra-src}/bed/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/building/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/chamber/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/counter/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/floor/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/public-screen/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/room/index.vue (100%) rename app/pages/(features)/{service-src => infra-src}/warehouse/index.vue (100%) diff --git a/app/pages/(features)/service-src/bed/index.vue b/app/pages/(features)/infra-src/bed/index.vue similarity index 100% rename from app/pages/(features)/service-src/bed/index.vue rename to app/pages/(features)/infra-src/bed/index.vue diff --git a/app/pages/(features)/service-src/building/index.vue b/app/pages/(features)/infra-src/building/index.vue similarity index 100% rename from app/pages/(features)/service-src/building/index.vue rename to app/pages/(features)/infra-src/building/index.vue diff --git a/app/pages/(features)/service-src/chamber/index.vue b/app/pages/(features)/infra-src/chamber/index.vue similarity index 100% rename from app/pages/(features)/service-src/chamber/index.vue rename to app/pages/(features)/infra-src/chamber/index.vue diff --git a/app/pages/(features)/service-src/counter/index.vue b/app/pages/(features)/infra-src/counter/index.vue similarity index 100% rename from app/pages/(features)/service-src/counter/index.vue rename to app/pages/(features)/infra-src/counter/index.vue diff --git a/app/pages/(features)/service-src/floor/index.vue b/app/pages/(features)/infra-src/floor/index.vue similarity index 100% rename from app/pages/(features)/service-src/floor/index.vue rename to app/pages/(features)/infra-src/floor/index.vue diff --git a/app/pages/(features)/service-src/public-screen/index.vue b/app/pages/(features)/infra-src/public-screen/index.vue similarity index 100% rename from app/pages/(features)/service-src/public-screen/index.vue rename to app/pages/(features)/infra-src/public-screen/index.vue diff --git a/app/pages/(features)/service-src/room/index.vue b/app/pages/(features)/infra-src/room/index.vue similarity index 100% rename from app/pages/(features)/service-src/room/index.vue rename to app/pages/(features)/infra-src/room/index.vue diff --git a/app/pages/(features)/service-src/warehouse/index.vue b/app/pages/(features)/infra-src/warehouse/index.vue similarity index 100% rename from app/pages/(features)/service-src/warehouse/index.vue rename to app/pages/(features)/infra-src/warehouse/index.vue From 001a36233c3af190b6231a1ffe8dae80f39f0f32 Mon Sep 17 00:00:00 2001 From: Andrian Roshandy Date: Mon, 24 Nov 2025 08:28:36 +0700 Subject: [PATCH 5/6] feat/page-cleaning: moved human-src/specialist-intern/* to human-src/intern --- .../human-src/employee/[id]/edit.vue | 3 + .../human-src/employee/[id]/index.vue | 3 + .../{specialist-intern => intern}/add.vue | 0 .../{specialist-intern => intern}/index.vue | 0 public/side-menu-items/emp-doc.json | 18 +---- public/side-menu-items/emp-nur.json | 25 ++----- public/side-menu-items/emp-reg.json | 15 ---- public/side-menu-items/sys.json | 70 +++++++------------ 8 files changed, 36 insertions(+), 98 deletions(-) create mode 100644 app/pages/(features)/human-src/employee/[id]/edit.vue create mode 100644 app/pages/(features)/human-src/employee/[id]/index.vue rename app/pages/(features)/human-src/{specialist-intern => intern}/add.vue (100%) rename app/pages/(features)/human-src/{specialist-intern => intern}/index.vue (100%) diff --git a/app/pages/(features)/human-src/employee/[id]/edit.vue b/app/pages/(features)/human-src/employee/[id]/edit.vue new file mode 100644 index 00000000..00d68602 --- /dev/null +++ b/app/pages/(features)/human-src/employee/[id]/edit.vue @@ -0,0 +1,3 @@ + diff --git a/app/pages/(features)/human-src/employee/[id]/index.vue b/app/pages/(features)/human-src/employee/[id]/index.vue new file mode 100644 index 00000000..00d68602 --- /dev/null +++ b/app/pages/(features)/human-src/employee/[id]/index.vue @@ -0,0 +1,3 @@ + diff --git a/app/pages/(features)/human-src/specialist-intern/add.vue b/app/pages/(features)/human-src/intern/add.vue similarity index 100% rename from app/pages/(features)/human-src/specialist-intern/add.vue rename to app/pages/(features)/human-src/intern/add.vue diff --git a/app/pages/(features)/human-src/specialist-intern/index.vue b/app/pages/(features)/human-src/intern/index.vue similarity index 100% rename from app/pages/(features)/human-src/specialist-intern/index.vue rename to app/pages/(features)/human-src/intern/index.vue 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..d1cdc98e 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", @@ -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 +] From c9bac11029346cfeadfcbe61e33fef0597d8a2b4 Mon Sep 17 00:00:00 2001 From: Andrian Roshandy Date: Mon, 24 Nov 2025 08:59:05 +0700 Subject: [PATCH 6/6] feat/page-cleaning: adjust content/encounter consumers --- .../(features)/emergency/encounter/add.vue | 38 +++++++++-------- .../(features)/emergency/encounter/index.vue | 36 ++++++++++------ .../(features)/inpatient/encounter/add.vue | 40 +++++++++--------- .../(features)/inpatient/encounter/index.vue | 36 ++++++++++------ .../index.vue | 0 .../outpatient/encounter/[id]/process.vue | 41 +++++++++++++++++++ .../(features)/outpatient/encounter/add.vue | 36 ++++++++-------- .../(features)/outpatient/encounter/index.vue | 37 ++++++++++------- 8 files changed, 170 insertions(+), 94 deletions(-) rename app/pages/(features)/outpatient/{polyclinic-queue => encounter-queue}/index.vue (100%) create mode 100644 app/pages/(features)/outpatient/encounter/[id]/process.vue diff --git a/app/pages/(features)/emergency/encounter/add.vue b/app/pages/(features)/emergency/encounter/add.vue index aa382643..587e00e7 100644 --- a/app/pages/(features)/emergency/encounter/add.vue +++ b/app/pages/(features)/emergency/encounter/add.vue @@ -1,44 +1,46 @@