diff --git a/app/components/content/encounter/home.vue b/app/components/content/encounter/home.vue index 40828502..bb8e94d2 100644 --- a/app/components/content/encounter/home.vue +++ b/app/components/content/encounter/home.vue @@ -18,7 +18,7 @@ import Consultation from '~/components/content/consultation/list.vue' import ProtocolList from '~/components/app/chemotherapy/list.protocol.vue' import MedicineProtocolList from '~/components/app/chemotherapy/list.medicine.vue' -const authStore = useUserStore() +const { getActiveRole } = useUserStore() const route = useRoute() const router = useRouter() @@ -27,8 +27,8 @@ const props = defineProps<{ subClassCode?: 'reg' | 'rehab' | 'chemo' | 'emg' | 'eon' | 'op' | 'icu' | 'hcu' | 'vk' }>() -const activeRole = authStore.getActiveRole() -const activePosition = getPositionAs(activeRole) +const activeRole = getActiveRole() +const activePosition = ref(getPositionAs(activeRole)) const tabs = ref([] as any) // activeTab selalu sinkron dengan query param @@ -159,43 +159,43 @@ const tabsRaws: TabItem[] = [ value: 'report', label: 'Laporan Tindakan', groups: ['medical'], - classCode: ['ambulatory'], - subClassCode: ['chemo'], + classCode: ['ambulatory', 'emergency', 'inpatient'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'patient-note', label: 'CPRJ', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'education-assessment', label: 'Asesmen Kebutuhan Edukasi', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'consent', label: 'General Consent', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'patient-note', label: 'CPRJ', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'prescription', label: 'Order Obat', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], component: PrescriptionList, }, { @@ -203,56 +203,56 @@ const tabsRaws: TabItem[] = [ label: 'Order Alkes', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'mcu-radiology', label: 'Order Radiologi', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'mcu-lab-pc', label: 'Order Lab PK', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'mcu-lab-micro', label: 'Order Lab Mikro', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'mcu-lab-pa', label: 'Order Lab PA', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'medical-action', label: 'Order Ruang Tindakan', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'mcu-result', label: 'Hasil Penunjang', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'consultation', label: 'Konsultasi', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], component: Consultation, props: { encounter: data }, }, @@ -261,21 +261,21 @@ const tabsRaws: TabItem[] = [ label: 'Resume', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'control', label: 'Surat Kontrol', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'screening', label: 'Skrinning MPP', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, { value: 'supporting-document', @@ -289,28 +289,25 @@ const tabsRaws: TabItem[] = [ label: 'Tarif Tindakan', groups: ['medical'], classCode: ['ambulatory', 'emergency', 'inpatient'], - subClassCode: ['reg', 'rehab', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], + subClassCode: ['reg', 'rehab', 'chemo', 'emg', 'eon', 'op', 'icu', 'hcu', 'vk'], }, ] function getTabs() { return tabsRaws - .filter((tab: TabItem) => (tab.groups ? tab.groups.some((group: string) => group?.includes(activePosition)) : true)) - .filter((tab: TabItem) => (tab.classCode && props.classCode ? tab.classCode.includes(props.classCode) : true)) - .filter((tab: TabItem) => (tab.subClassCode && props.subClassCode ? tab.subClassCode.includes(props.subClassCode) : true)) + .filter((tab: TabItem) => (tab.groups ? tab.groups.some((group: string) => group === activePosition.value) : false)) + .filter((tab: TabItem) => (tab.classCode && props.classCode ? tab.classCode.includes(props.classCode) : false)) + .filter((tab: TabItem) => (tab.subClassCode && props.subClassCode ? tab.subClassCode.includes(props.subClassCode) : false)) .map((tab: TabItem) => { return { ...tab, props: { ...tab.props, encounter: data } } }) } -watch( - () => activePosition, - () => { - if (activePosition) { - tabs.value = getTabs() - } - } -) +watch(getActiveRole, () => { + const activeRole = getActiveRole() + activePosition.value = getPositionAs(activeRole) + tabs.value = getTabs() +}) onMounted(() => { tabs.value = getTabs()