From 816fe7cbf502429d5215f2d4309ed6b594ca1ebc Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Tue, 9 Dec 2025 08:07:35 +0700 Subject: [PATCH 1/6] dev: hotfix, menu structure --- app/handlers/encounter-init.handler.ts | 38 +- public/side-menu-items/emp-doc.json | 42 ++- public/side-menu-items/emp-doc.json-bu | 100 ----- .../{emp-mid.json => emp-miw.json} | 10 - public/side-menu-items/emp-nur.json | 14 +- public/side-menu-items/sys.json | 350 ------------------ public/side-menu-items/system.json | 64 ++-- 7 files changed, 89 insertions(+), 529 deletions(-) delete mode 100644 public/side-menu-items/emp-doc.json-bu rename public/side-menu-items/{emp-mid.json => emp-miw.json} (63%) delete mode 100644 public/side-menu-items/sys.json diff --git a/app/handlers/encounter-init.handler.ts b/app/handlers/encounter-init.handler.ts index 83cdb529..5e7e271c 100644 --- a/app/handlers/encounter-init.handler.ts +++ b/app/handlers/encounter-init.handler.ts @@ -68,12 +68,12 @@ const defaultKeys: Record = { classCode: ['ambulatory', 'emergency', 'inpatient'], unit: 'all', }, - earlyNurseryAssessment: { - id: 'early-nursery-assessment', - title: 'Pengkajian Awal Keperawatan', - classCode: ['ambulatory', 'emergency', 'inpatient'], - unit: 'all', - }, + // earlyNurseryAssessment: { + // id: 'early-nursery-assessment', + // title: 'Pengkajian Awal Keperawatan', + // classCode: ['ambulatory', 'emergency', 'inpatient'], + // unit: 'all', + // }, earlyMedicalAssessment: { id: 'early-medical-assessment', title: 'Pengkajian Awal Medis', @@ -87,13 +87,13 @@ const defaultKeys: Record = { unit: 'rehab', afterId: 'early-medical-assessment', }, - functionAssessment: { - id: 'function-assessment', - title: 'Asesmen Fungsi', - classCode: ['ambulatory'], - unit: 'rehab', - afterId: 'rehab-medical-assessment', - }, + // functionAssessment: { + // id: 'function-assessment', + // title: 'Asesmen Fungsi', + // classCode: ['ambulatory'], + // unit: 'rehab', + // afterId: 'rehab-medical-assessment', + // }, // therapyProtocol: { // id: 'therapy-protocol', // classCode: ['ambulatory'], @@ -106,9 +106,9 @@ const defaultKeys: Record = { classCode: ['ambulatory', 'emergency', 'inpatient'], unit: 'all', }, - fkr: { - id: 'fkr', - title: 'FKR', + kfr: { + id: 'kfr', + title: 'KFR', classCode: ['ambulatory', 'emergency', 'inpatient'], unit: 'all', }, @@ -234,12 +234,6 @@ const defaultKeys: Record = { classCode: ['ambulatory', 'emergency'], unit: 'all', }, - kfr: { - id: 'kfr', - title: 'KFR', - classCode: ['ambulatory', 'emergency', 'inpatient'], - unit: 'all', - }, refBack: { id: 'reference-back', title: 'PRB', diff --git a/public/side-menu-items/emp-doc.json b/public/side-menu-items/emp-doc.json index 36be57c7..350977e1 100644 --- a/public/side-menu-items/emp-doc.json +++ b/public/side-menu-items/emp-doc.json @@ -20,6 +20,11 @@ "title": "Konsultasi", "icon": "i-lucide-building-2", "link": "/ambulatory/consultation" + }, + { + "title": "Triase", + "icon": "i-lucide-stethoscope", + "link": "/ambulatory/triage" } ] }, @@ -47,7 +52,42 @@ { "title": "Kemoterapi", "icon": "i-lucide-droplets", - "link": "/chemotherapy" + "link": "/chemotherapy", + "children": [ + { + "title": "Administrasi", + "link": "/chemotherapy/early-encounter" + }, + { + "title": "Kunjungan", + "link": "/chemotherapy/encounter" + } + ] + }, + { + "title": "Hemofilia", + "icon": "i-lucide-droplet-off", + "link": "/hemophilia" + } + ] + }, + { + "heading": "Ruang Tindakan Anak", + "items": [ + { + "title": "Thalasemi", + "icon": "i-lucide-baby", + "link": "/thalasemia" + }, + { + "title": "Echocardiography", + "icon": "i-lucide-baby", + "link": "/echocardiography" + }, + { + "title": "Spirometri", + "icon": "i-lucide-baby", + "link": "/spirometry" } ] } diff --git a/public/side-menu-items/emp-doc.json-bu b/public/side-menu-items/emp-doc.json-bu deleted file mode 100644 index 2618a33b..00000000 --- a/public/side-menu-items/emp-doc.json-bu +++ /dev/null @@ -1,100 +0,0 @@ -[ - { - "heading": "Menu Utama", - "items": [ - { - "title": "Dashboard", - "icon": "i-lucide-home", - "link": "/" - }, - { - "title": "Rawat Jalan", - "icon": "i-lucide-stethoscope", - "children": [ - { - "title": "Kunjungan", - "icon": "i-lucide-stethoscope", - "link": "/ambulatory/encounter" - }, - { - "title": "Konsultasi", - "icon": "i-lucide-building-2", - "link": "/ambulatory/consultation" - } - ] - }, - { - "title": "IGD", - "icon": "i-lucide-zap", - "children": [ - { - "title": "Triase", - "icon": "i-lucide-stethoscope", - "link": "/emergency/triage" - }, - { - "title": "Kunjungan", - "icon": "i-lucide-building-2", - "link": "/emergency/encounter" - }, - { - "title": "Konsultasi", - "icon": "i-lucide-building-2", - "link": "/emergency/consultation" - } - ] - }, - { - "title": "Rawat Inap", - "icon": "i-lucide-building-2", - "children": [ - { - "title": "Kunjungan", - "icon": "i-lucide-building-2", - "link": "/inpatient/encounter" - }, - { - "title": "Konsultasi", - "icon": "i-lucide-building-2", - "link": "/inpatient/consultation" - } - ] - } - ] - }, - { - "heading": "Ruang Tindakan Rajal", - "items": [ - { - "title": "Kemoterapi", - "icon": "i-lucide-droplets", - "link": "/chemotherapy" - }, - { - "title": "Hemofilia", - "icon": "i-lucide-droplet-off", - "link": "/hemophilia" - } - ] - }, - { - "heading": "Ruang Tindakan Anak", - "items": [ - { - "title": "Thalasemi", - "icon": "i-lucide-baby", - "link": "/thalasemia" - }, - { - "title": "Echocardiography", - "icon": "i-lucide-baby", - "link": "/echocardiography" - }, - { - "title": "Spirometri", - "icon": "i-lucide-baby", - "link": "/spirometry" - } - ] - } -] diff --git a/public/side-menu-items/emp-mid.json b/public/side-menu-items/emp-miw.json similarity index 63% rename from public/side-menu-items/emp-mid.json rename to public/side-menu-items/emp-miw.json index 1c6e5aef..37bcbbae 100644 --- a/public/side-menu-items/emp-mid.json +++ b/public/side-menu-items/emp-miw.json @@ -12,16 +12,6 @@ "icon": "i-lucide-stethoscope", "link": "/ambulatory/encounter" }, - { - "title": "IGD", - "icon": "i-lucide-zap", - "link": "/emergency/encounter" - }, - { - "title": "Rehabilitasi Medik", - "icon": "i-lucide-bike", - "link": "/rehab/encounter-queue" - }, { "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 f940219e..a3fd9d4b 100644 --- a/public/side-menu-items/emp-nur.json +++ b/public/side-menu-items/emp-nur.json @@ -18,20 +18,10 @@ { "title": "Kunjungan", "link": "/ambulatory/encounter" - } - ] - }, - { - "title": "IGD", - "icon": "i-lucide-zap", - "children": [ - { - "title": "Triase", - "link": "/emergency/triage" }, { - "title": "Kunjungan", - "link": "/emergency/encounter" + "title": "Triase", + "link": "/ambulatory/triage" } ] }, diff --git a/public/side-menu-items/sys.json b/public/side-menu-items/sys.json deleted file mode 100644 index 996c2a6b..00000000 --- a/public/side-menu-items/sys.json +++ /dev/null @@ -1,350 +0,0 @@ -[ - { - "heading": "Menu Utama", - "items": [ - { - "title": "Dashboard", - "icon": "i-lucide-home", - "link": "/" - }, - { - "title": "Rawat Jalan", - "icon": "i-lucide-stethoscope", - "children": [ - { - "title": "Antrian Pendaftaran", - "link": "/ambulatory/registration-queue" - }, - { - "title": "Antrian Poliklinik", - "link": "/ambulatory/encounter-queue" - }, - { - "title": "Kunjungan", - "link": "/ambulatory/encounter" - }, - { - "title": "Konsultasi", - "link": "/ambulatory/consultation" - } - ] - }, - { - "title": "IGD", - "icon": "i-lucide-zap", - "children": [ - { - "title": "Triase", - "link": "/emergency/triage" - }, - { - "title": "Kunjungan", - "link": "/emergency/encounter" - }, - { - "title": "Konsultasi", - "link": "/emergency/consultation" - } - ] - }, - { - "title": "Rawat Inap", - "icon": "i-lucide-building-2", - "children": [ - { - "title": "Permintaan", - "link": "/inpatient/request" - }, - { - "title": "Kunjungan", - "link": "/inpatient/encounter" - }, - { - "title": "Konsultasi", - "link": "/inpatient/consultation" - } - ] - }, - { - "title": "Obat - Order", - "icon": "i-lucide-briefcase-medical", - "children": [ - { - "title": "Permintaan", - "link": "/medication/order" - }, - { - "title": "Standing Order", - "link": "/medication/standing-order" - } - ] - }, - { - "title": "Radiologi - Order", - "icon": "i-lucide-radio", - "link": "/radiology-order" - }, - { - "title": "Lab - Order", - "icon": "i-lucide-microscope", - "link": "/cp-lab-order" - }, - { - "title": "Lab Mikro - Order", - "icon": "i-lucide-microscope", - "link": "/micro-lab-order" - }, - { - "title": "Lab PA - Order", - "icon": "i-lucide-microscope", - "link": "/ap-lab-order" - }, - { - "title": "Gizi", - "icon": "i-lucide-egg-fried", - "link": "/nutrition-order" - }, - { - "title": "Pembayaran", - "icon": "i-lucide-banknote-arrow-up", - "link": "/payment" - } - ] - }, - { - "heading": "Ruang Tindakan Rajal", - "items": [ - { - "title": "Kemoterapi", - "icon": "i-lucide-droplets", - "link": "/outpation-action/cemotherapy" - }, - { - "title": "Hemofilia", - "icon": "i-lucide-droplet-off", - "link": "/outpation-action/hemophilia" - } - ] - }, - { - "heading": "Ruang Tindakan Anak", - "items": [ - { - "title": "Thalasemi", - "icon": "i-lucide-baby", - "link": "/children-action/thalasemia" - }, - { - "title": "Echocardiography", - "icon": "i-lucide-baby", - "link": "/children-action/echocardiography" - }, - { - "title": "Spirometri", - "icon": "i-lucide-baby", - "link": "/children-action/spirometry" - } - ] - }, - { - "heading": "Client", - "items": [ - { - "title": "Pasien", - "icon": "i-lucide-users", - "link": "/client/patient" - }, - { - "title": "Rekam Medis", - "icon": "i-lucide-file-text", - "link": "/client/medical-record" - } - ] - }, - { - "heading": "Integrasi", - "items": [ - { - "title": "BPJS", - "icon": "i-lucide-circuit-board", - "children": [ - { - "title": "SEP", - "icon": "i-lucide-circuit-board", - "link": "/integration/bpjs-vclaim/sep" - }, - { - "title": "Peserta", - "icon": "i-lucide-circuit-board", - "link": "/integration/bpjs-vclaim/member" - }, - { - "title": "Surat Kontrol", - "icon": "i-lucide-circuit-board", - "link": "/integration/bpjs-vclaim/control-letter" - } - ] - }, - { - "title": "SATUSEHAT", - "icon": "i-lucide-database", - "link": "/integration/satusehat" - } - ] - }, - { - "heading": "Source", - "items": [ - { - "title": "Peralatan dan Perlengkapan", - "icon": "i-lucide-layout-dashboard", - "children": [ - { - "title": "Obat", - "link": "/tools-equipment-src/medicine" - }, - { - "title": "Peralatan", - "link": "/tools-equipment-src/tools" - }, - { - "title": "Perlengkapan (BMHP)", - "link": "/tools-equipment-src/equipment" - }, - { - "title": "Metode Obat", - "link": "/tools-equipment-src/medicine-method" - }, - { - "title": "Jenis Obat", - "link": "/tools-equipment-src/medicine-type" - }, - { - "title": "Sediaan Obat", - "link": "/tools-equipment-src/medicine-form" - } - ] - }, - { - "title": "Pengguna", - "icon": "i-lucide-user", - "children": [ - { - "title": "Pegawai", - "link": "/human-src/employee" - }, - { - "title": "PPDS", - "link": "/human-src/specialist-intern" - } - ] - }, - { - "title": "Pemeriksaan Penunjang", - "icon": "i-lucide-layout-list", - "children": [ - { - "title": "Checkup", - "link": "/mcu-src/mcu" - }, - { - "title": "Prosedur", - "link": "/mcu-src/procedure" - }, - { - "title": "Diagnosis", - "link": "/mcu-src/diagnose" - }, - { - "title": "Medical Action", - "link": "/mcu-src/medical-action" - } - ] - }, - { - "title": "Infrastruktur", - "icon": "i-lucide-layout-list", - "children": [ - { - "title": "Kasur", - "link": "/infra-src/bed" - }, - { - "title": "Kamar", - "link": "/infra-src/chamber" - }, - { - "title": "Ruang", - "link": "/infra-src/room" - }, - { - "title": "Depo", - "link": "/infra-src/warehouse" - }, - { - "title": "Lantai", - "link": "/infra-src/floor" - }, - { - "title": "Gedung", - "link": "/infra-src/building" - }, - { - "title": "Counter", - "link": "/infra-src/counter" - }, - { - "title": "Public Screen (Big Screen)", - "link": "/infra-src/public-screen" - } - ] - }, - { - "title": "Organisasi", - "icon": "i-lucide-network", - "children": [ - { - "title": "Divisi", - "link": "/org-src/division" - }, - { - "title": "Instalasi", - "link": "/org-src/installation" - }, - { - "title": "Unit", - "link": "/org-src/unit" - }, - { - "title": "Spesialis", - "link": "/org-src/specialist" - }, - { - "title": "Sub Spesialis", - "link": "/org-src/subspecialist" - } - ] - }, - { - "title": "Umum", - "icon": "i-lucide-airplay", - "children": [ - { - "title": "Uom", - "link": "/common/uom" - } - ] - }, - { - "title": "Keuangan", - "icon": "i-lucide-airplay", - "children": [ - { - "title": "Item & Pricing", - "link": "/common/item" - } - ] - } - ] - } -] diff --git a/public/side-menu-items/system.json b/public/side-menu-items/system.json index 19d20336..e8bdc06c 100644 --- a/public/side-menu-items/system.json +++ b/public/side-menu-items/system.json @@ -26,24 +26,10 @@ { "title": "Konsultasi", "link": "/ambulatory/consultation" - } - ] - }, - { - "title": "IGD", - "icon": "i-lucide-zap", - "children": [ + }, { "title": "Triase", "link": "/emergency/triage" - }, - { - "title": "Kunjungan", - "link": "/emergency/encounter" - }, - { - "title": "Konsultasi", - "link": "/emergency/consultation" } ] }, @@ -139,12 +125,22 @@ { "title": "Kemoterapi", "icon": "i-lucide-droplets", - "link": "/outpation-action/chemotherapy" + "link": "/chemotherapy", + "children": [ + { + "title": "Administrasi", + "link": "/chemotherapy/early-encounter" + }, + { + "title": "Kunjungan", + "link": "/chemotherapy/encounter" + } + ] }, { "title": "Hemofilia", "icon": "i-lucide-droplet-off", - "link": "/outpation-action/hemophilia" + "link": "/hemophilia" } ] }, @@ -154,17 +150,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" } ] }, @@ -252,20 +248,6 @@ } ] }, - { - "title": "Pengguna", - "icon": "i-lucide-user", - "children": [ - { - "title": "Pegawai", - "link": "/human-src/employee" - }, - { - "title": "PPDS", - "link": "/human-src/specialist-intern" - } - ] - }, { "title": "Pemeriksaan Penunjang", "icon": "i-lucide-layout-list", @@ -288,6 +270,20 @@ } ] }, + { + "title": "Pengguna", + "icon": "i-lucide-user", + "children": [ + { + "title": "Pegawai", + "link": "/human-src/employee" + }, + { + "title": "PPDS", + "link": "/human-src/intern" + } + ] + }, { "title": "Layanan", "icon": "i-lucide-layout-list", From 9a7a95137901cbf255c15de00828904a8fc01784 Mon Sep 17 00:00:00 2001 From: Munawwirul Jamal Date: Tue, 9 Dec 2025 20:57:04 +0700 Subject: [PATCH 2/6] feat/role-check: wip --- app/components/content/encounter/entry.vue | 10 ++-- app/components/content/encounter/list.vue | 6 +- app/const/common/role.ts | 60 +++++++++++-------- app/handlers/encounter-entry.handler.ts | 50 +++++++++++----- app/lib/roles.ts | 20 +++++-- .../(features)/ambulatory/encounter/add.vue | 16 ++++- .../(features)/ambulatory/encounter/index.vue | 18 +++++- .../{list.vue => early-encounter/index.vue} | 36 +++++++---- .../{common => common-cr}/uom/index.vue | 0 .../[id]/education-assessment/add.vue | 43 ------------- .../encounter/[id]/kfr/[kfr_id]/edit.vue | 44 -------------- .../rehab/encounter/[id]/kfr/add.vue | 44 -------------- .../encounter/[id]/prb/[prb_id]/edit.vue | 41 ------------- .../encounter/[id]/prb/[prb_id]/index.vue | 41 ------------- .../rehab/encounter/[id]/prb/add.vue | 41 ------------- .../rehab/encounter/[id]/process.vue | 42 ------------- .../[surgery_report_id]/edit.vue | 41 ------------- .../[surgery_report_id]/index.vue | 41 ------------- .../encounter/[id]/surgery-report/add.vue | 41 ------------- .../[therapy_protocol_id]/edit.vue | 44 -------------- .../encounter/[id]/therapy-protocol/add.vue | 44 -------------- .../vaccine-data/[vaccine_data_id]/index.vue | 41 ------------- .../rehab/encounter/[id]/vaccine-data/add.vue | 41 ------------- app/pages/(features)/resume/add.vue | 41 ------------- .../therapy-protocol/[id]/detail.vue | 41 ------------- .../(features)/therapy-protocol/[id]/edit.vue | 41 ------------- app/pages/(features)/therapy-protocol/add.vue | 41 ------------- 27 files changed, 146 insertions(+), 823 deletions(-) rename app/pages/(features)/chemotherapy/{list.vue => early-encounter/index.vue} (55%) rename app/pages/(features)/{common => common-cr}/uom/index.vue (100%) delete mode 100644 app/pages/(features)/rehab/encounter/[id]/education-assessment/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/kfr/[kfr_id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/kfr/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/prb/[prb_id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/prb/[prb_id]/index.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/prb/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/process.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/surgery-report/[surgery_report_id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/surgery-report/[surgery_report_id]/index.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/surgery-report/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/therapy-protocol/[therapy_protocol_id]/edit.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/therapy-protocol/add.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/vaccine-data/[vaccine_data_id]/index.vue delete mode 100644 app/pages/(features)/rehab/encounter/[id]/vaccine-data/add.vue delete mode 100644 app/pages/(features)/resume/add.vue delete mode 100644 app/pages/(features)/therapy-protocol/[id]/detail.vue delete mode 100644 app/pages/(features)/therapy-protocol/[id]/edit.vue delete mode 100644 app/pages/(features)/therapy-protocol/add.vue diff --git a/app/components/content/encounter/entry.vue b/app/components/content/encounter/entry.vue index 6fab59e8..a4ffc0d8 100644 --- a/app/components/content/encounter/entry.vue +++ b/app/components/content/encounter/entry.vue @@ -16,7 +16,7 @@ import { useIntegrationSepEntry } from '~/handlers/integration-sep-entry.handler const props = defineProps<{ id: number classCode?: 'ambulatory' | 'emergency' | 'inpatient' | 'outpatient' - subClassCode?: 'reg' | 'rehab' | 'chemo' | 'emg' | 'eon' | 'op' | 'icu' | 'hcu' | 'vk' + subclassCode?: 'reg' | 'rehab' | 'chemo' | 'emg' | 'eon' | 'op' | 'icu' | 'hcu' | 'vk' formType: string }>() @@ -77,9 +77,7 @@ function handleSaveClick() { } function handleFetch(value?: any) { - if (value?.subSpecialistId) { - handleFetchDoctors(value.subSpecialistId) - } + // handleFetchDoctors(props.subclassCode) } async function handleEvent(menu: string, value?: any) { @@ -97,7 +95,7 @@ async function handleEvent(menu: string, value?: any) { isService: 'false', encounterId: props.id || null, sourcePath: route.path, - resource: `${props.classCode}-${props.subClassCode}`, + resource: `${props.classCode}-${props.subclassCode}`, ...value, }) } else if (menu === 'sep-number-changed') { @@ -213,7 +211,7 @@ onMounted(async () => { :is-action="true" :histories="histories" /> - +