fix(role): update role of encounter

This commit is contained in:
riefive
2025-11-14 11:11:09 +07:00
parent 8547373a17
commit bf69c80072
+30 -33
View File
@@ -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()