fix: refactor page process on outpatient, inpatient, emergency

This commit is contained in:
riefive
2025-11-20 14:54:17 +07:00
parent bbdc79f7f5
commit 53a7d41373
6 changed files with 99 additions and 11 deletions
@@ -5,7 +5,7 @@ import { useRoute, useRouter } from 'vue-router'
// Components
import EncounterPatientInfo from '~/components/app/encounter/collapsible-patient-info.vue'
import EncounterHistoryButtonMenu from '~/components/app/encounter/history-button-menu.vue'
import CompMenu from '~/components/pub/my-ui/comp-menu/comp-menu.vue'
import SubMenu from '~/components/pub/my-ui/menus/submenu.vue'
// Libraries
import { getPositionAs } from '~/lib/roles'
@@ -59,8 +59,6 @@ if (activePosition.value === 'none') { // if user position is none, redirect to
router.push('/')
}
console.log(JSON.stringify(user, null, 4))
// Dummy rows for ProtocolList (matches keys expected by list-cfg.protocol)
const protocolRows = [
{
@@ -116,13 +114,18 @@ async function getData() {
}
function getMenus() {
const currentListItems = listItems[`installation|${props.classCode}`];
const normalClassCode = props.classCode === 'ambulatory' ? 'outpatient' : props.classCode
const currentListItems = listItems[`installation|${normalClassCode}`];
if (!currentListItems) return []
const unitCode = user?.unit?.code ? `unit|${user.unit.code}` : 'all';
const currentUnitItems = currentListItems[`${unitCode}`];
const currentUnitItems: any = currentListItems[`${unitCode}`];
if (!currentUnitItems) return []
if (currentUnitItems.roles && currentUnitItems.roles?.some((role: string) => role !== activePosition.value)) return []
let menus = [...currentUnitItems.items]
let menus = []
if (currentUnitItems.roles && currentUnitItems.roles?.some((role: string) => role === activePosition.value)) {
menus = [...currentUnitItems.items]
} else {
menus = [...currentUnitItems]
}
const indexStatus = getIndexById('status', menus)
const indexEarlyMedicalAssessment = getIndexById('early-medical-assessment', menus)
const indexRehabMedicalAssessment = getIndexById('rehab-medical-assessment', menus)
@@ -285,6 +288,6 @@ onMounted(async () => {
</div>
<EncounterPatientInfo v-if="isShowPatient" :data="data" />
<EncounterHistoryButtonMenu v-if="isShowPatient" />
<CompMenu :data="menus" :initial-active-menu="activeMenu" @change-menu="activeMenu = $event" />
<SubMenu :data="menus" :initial-active-menu="activeMenu" @change-menu="activeMenu = $event" />
</div>
</template>