fix(role): update role of encounter
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user