Merge branch 'dev' of ssh://git.codelfi.com:2202/TelemedPro/hgh_admin into dev
This commit is contained in:
commit
8c088ba169
@ -49,7 +49,7 @@ export default [
|
|||||||
{
|
{
|
||||||
title: 'Prodcuts',
|
title: 'Prodcuts',
|
||||||
icon: { icon: 'ri-medicine-bottle-line' },
|
icon: { icon: 'ri-medicine-bottle-line' },
|
||||||
to: 'admin-medicines',
|
to: 'admin-products',
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
const profile = ref(0)
|
const profile = ref(0)
|
||||||
const color = ref(0)
|
const color = ref(null)
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
userData: {
|
userData: {
|
||||||
type: Object,
|
type: Object,
|
||||||
|
211
resources/js/pages/patients/PatientLabTest.vue
Normal file
211
resources/js/pages/patients/PatientLabTest.vue
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
<script setup>
|
||||||
|
const props = defineProps({
|
||||||
|
userData: {
|
||||||
|
type: Object,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
import { onBeforeMount, onMounted, onUnmounted, ref } from 'vue';
|
||||||
|
import { useRoute, useRouter } from 'vue-router';
|
||||||
|
import { useStore } from 'vuex';
|
||||||
|
|
||||||
|
const store = useStore();
|
||||||
|
const router = useRouter();
|
||||||
|
const route = useRoute();
|
||||||
|
const editDialog = ref(false);
|
||||||
|
const deleteDialog = ref(false);
|
||||||
|
const search = ref('');
|
||||||
|
const appointmentId = ref('');
|
||||||
|
const defaultItem = ref({
|
||||||
|
id: -1,
|
||||||
|
avatar: '',
|
||||||
|
name: '',
|
||||||
|
email: '',
|
||||||
|
dob: '',
|
||||||
|
phone_no: '',
|
||||||
|
});
|
||||||
|
|
||||||
|
const editedItem = ref({ ...defaultItem.value });
|
||||||
|
const editedIndex = ref(-1);
|
||||||
|
const patientLabList = ref([]);
|
||||||
|
const isLoading = ref(false);
|
||||||
|
|
||||||
|
// Status options
|
||||||
|
const selectedOptions = [
|
||||||
|
{ text: 'Active', value: 1 },
|
||||||
|
{ text: 'InActive', value: 2 },
|
||||||
|
];
|
||||||
|
|
||||||
|
const refVForm = ref(null);
|
||||||
|
|
||||||
|
// Headers
|
||||||
|
const headers = [
|
||||||
|
// { title: 'Appointment Id', key: 'id' },
|
||||||
|
|
||||||
|
{ title: 'Lab Kit Name', key: 'name' },
|
||||||
|
// { key: 'appointment_date', sortable: false, title: 'Date' },
|
||||||
|
{ key: 'address', title: 'Address' },
|
||||||
|
{ key: 'amount', title: 'Amount' },
|
||||||
|
{ key: 'status', title: 'Status' },
|
||||||
|
// { title: 'ACTIONS', key: 'actions' },
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const formatDate = (date) => {
|
||||||
|
const messageDate = new Date(date);
|
||||||
|
const options = {
|
||||||
|
year: 'numeric',
|
||||||
|
month: 'numeric',
|
||||||
|
day: 'numeric',
|
||||||
|
hour: 'numeric', // Change from '2-digit' to 'numeric'
|
||||||
|
minute: '2-digit',
|
||||||
|
hour12: true, // Add hour12: true to get 12-hour format with AM/PM
|
||||||
|
};
|
||||||
|
const formattedDate = messageDate.toLocaleString('en-US', options).replace(/\//g, '-');
|
||||||
|
return `${formattedDate} `;
|
||||||
|
};
|
||||||
|
// Fetch and process the patient meeting list
|
||||||
|
const getPatientLabList = async () => {
|
||||||
|
//store.dispatch('updateIsLoading', true);
|
||||||
|
//await store.dispatch('patientMeetingList', { id: route.params.id });
|
||||||
|
// store.dispatch('updateIsLoading', false);
|
||||||
|
|
||||||
|
let list = props.userData.labkit;
|
||||||
|
|
||||||
|
patientLabList.value = list
|
||||||
|
console.log(list);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Lifecycle hooks
|
||||||
|
onBeforeMount(() => {});
|
||||||
|
onMounted(async () => {
|
||||||
|
await getPatientLabList();
|
||||||
|
|
||||||
|
});
|
||||||
|
onUnmounted(() => {});
|
||||||
|
const historyDetail = (item, value) => {
|
||||||
|
console.log('item',item.id ,value)
|
||||||
|
if(value == 'notes')
|
||||||
|
router.push('/admin/patient/meeting/notes/' + route.params.id + '/' + item.id);
|
||||||
|
if(value == 'prescription')
|
||||||
|
router.push('/admin/patient/meeting/prescription/' + route.params.id + '/' + item.id);
|
||||||
|
}
|
||||||
|
const menusVariant = [
|
||||||
|
'primary'
|
||||||
|
];
|
||||||
|
const options = [
|
||||||
|
{
|
||||||
|
title: 'Notes',
|
||||||
|
key: 'notes',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Prescription',
|
||||||
|
key: 'prescription',
|
||||||
|
},
|
||||||
|
|
||||||
|
]
|
||||||
|
const getStatusColor = (status) => {
|
||||||
|
switch (status) {
|
||||||
|
case 'pending':
|
||||||
|
return 'warning'; // Use Vuetify's warning color (typically yellow)
|
||||||
|
case 'shipped':
|
||||||
|
return '#45B8AC'; // Use Vuetify's primary color (typically blue)
|
||||||
|
case 'delivered':
|
||||||
|
return 'success';
|
||||||
|
case 'returned':
|
||||||
|
return 'red';
|
||||||
|
case 'results':
|
||||||
|
return 'blue';
|
||||||
|
default:
|
||||||
|
return 'grey'; // Use Vuetify's grey color for any other status
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="12" md="12" >
|
||||||
|
<v-card title="Lab Kits">
|
||||||
|
<v-card-text>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="12" offset-md="8" md="4">
|
||||||
|
<v-text-field
|
||||||
|
v-model="search"
|
||||||
|
label="Search"
|
||||||
|
placeholder="Search ..."
|
||||||
|
append-inner-icon="ri-search-line"
|
||||||
|
single-line
|
||||||
|
hide-details
|
||||||
|
dense
|
||||||
|
outlined
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
|
<v-data-table
|
||||||
|
:headers="headers"
|
||||||
|
:items="patientLabList"
|
||||||
|
:search="search"
|
||||||
|
:items-per-page="5"
|
||||||
|
class="text-no-wrap"
|
||||||
|
>
|
||||||
|
<template #item.id="{ item }">{{ item.id }}</template>
|
||||||
|
<template #item.provider_name="{ item }">
|
||||||
|
<div class="d-flex flex-column ms-3">
|
||||||
|
<router-link
|
||||||
|
:to="{ name: 'admin-provider-profile', params: { id: item.provider_id } }"
|
||||||
|
class="highlighted"
|
||||||
|
>
|
||||||
|
<span class="d-block font-weight-medium text-truncate">{{ item.provider_name }}</span>
|
||||||
|
</router-link>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template #item.status="{ item }">
|
||||||
|
<VChip
|
||||||
|
:color="getStatusColor(item.status)"
|
||||||
|
density="comfortable"
|
||||||
|
>
|
||||||
|
{{ item.status}}
|
||||||
|
</VChip>
|
||||||
|
</template>
|
||||||
|
<template #item.address="{ item }">{{ item.shipping_address1 }} <br/>{{ item.shipping_city }} {{ item.shipping_state }} {{ item.shipping_zipcode }}</template>
|
||||||
|
<!-- Actions -->
|
||||||
|
<template #item.actions="{ item }">
|
||||||
|
<div class="demo-space-x">
|
||||||
|
<VMenu
|
||||||
|
v-for="menu in menusVariant"
|
||||||
|
:key="menu"
|
||||||
|
>
|
||||||
|
<template #activator="{ props }">
|
||||||
|
|
||||||
|
<i class="ri-more-2-line cursor-pointer" style="font-size: 32px;" v-bind="props"></i>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<v-list>
|
||||||
|
<v-list-item
|
||||||
|
v-for="opt in options"
|
||||||
|
:key="opt.value"
|
||||||
|
@click="historyDetail(item, opt.key)"
|
||||||
|
>
|
||||||
|
{{ opt.title }}
|
||||||
|
</v-list-item>
|
||||||
|
</v-list>
|
||||||
|
</VMenu>
|
||||||
|
</div>
|
||||||
|
<!-- <div class="d-flex gap-1">
|
||||||
|
<VBtn class="text-capitalize text-white" @click="historyDetail(item)"> Detail
|
||||||
|
</VBtn>
|
||||||
|
</div> -->
|
||||||
|
</template>
|
||||||
|
</v-data-table>
|
||||||
|
</v-card>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
@ -2,6 +2,7 @@
|
|||||||
import NotesPanel from '@/pages/patients/NotesPanel.vue'
|
import NotesPanel from '@/pages/patients/NotesPanel.vue'
|
||||||
import PatienTabOverview from '@/pages/patients/PatienTabOverview.vue'
|
import PatienTabOverview from '@/pages/patients/PatienTabOverview.vue'
|
||||||
import PatientBioPanel from '@/pages/patients/PatientBioPanel.vue'
|
import PatientBioPanel from '@/pages/patients/PatientBioPanel.vue'
|
||||||
|
import PatientLabTest from '@/pages/patients/PatientLabTest.vue'
|
||||||
import PatientQuestionProfile from '@/pages/patients/PatientQuestionProfile.vue'
|
import PatientQuestionProfile from '@/pages/patients/PatientQuestionProfile.vue'
|
||||||
import PrescriptionPanel from '@/pages/patients/PrescriptionPanel.vue'
|
import PrescriptionPanel from '@/pages/patients/PrescriptionPanel.vue'
|
||||||
|
|
||||||
@ -24,6 +25,10 @@ const tabs = [
|
|||||||
{
|
{
|
||||||
icon: 'ri-bookmark-line',
|
icon: 'ri-bookmark-line',
|
||||||
title: 'Prescriptions',
|
title: 'Prescriptions',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: 'ri-flask-line',
|
||||||
|
title: 'Lab Test',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
icon: 'ri-survey-line',
|
icon: 'ri-survey-line',
|
||||||
@ -98,6 +103,10 @@ onMounted(async () => {
|
|||||||
<PrescriptionPanel :prescription-data="patientDtail"/>
|
<PrescriptionPanel :prescription-data="patientDtail"/>
|
||||||
</VWindowItem>
|
</VWindowItem>
|
||||||
|
|
||||||
|
<VWindowItem>
|
||||||
|
<PatientLabTest :user-data="patientDtail"/>
|
||||||
|
</VWindowItem>
|
||||||
|
|
||||||
<VWindowItem>
|
<VWindowItem>
|
||||||
<PatientQuestionProfile />
|
<PatientQuestionProfile />
|
||||||
</VWindowItem>
|
</VWindowItem>
|
||||||
|
@ -110,8 +110,8 @@ export const routes = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/admin/products',
|
path: '/admin/products',
|
||||||
name: 'admin-medicines',
|
name: 'admin-products',
|
||||||
component: () => import('@/pages/medicines/medicines.vue'),
|
component: () => import('@/pages/products/product.vue'),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/admin/profile',
|
path: '/admin/profile',
|
||||||
|
@ -159,6 +159,7 @@
|
|||||||
"Patients": "Patients",
|
"Patients": "Patients",
|
||||||
"Lab Kites": "Lab Kites",
|
"Lab Kites": "Lab Kites",
|
||||||
"Providers": "Providers",
|
"Providers": "Providers",
|
||||||
|
"Prodcuts": "Prodcuts",
|
||||||
"Labs": "Labs",
|
"Labs": "Labs",
|
||||||
"Medicines": "Medicines",
|
"Medicines": "Medicines",
|
||||||
"Profile": "Profile",
|
"Profile": "Profile",
|
||||||
|
@ -13,7 +13,7 @@ export const { themeConfig, layoutConfig } = defineThemeConfig({
|
|||||||
title: '',
|
title: '',
|
||||||
|
|
||||||
// ❗ if you have SVG logo and want it to adapt according to theme color, you have to apply color as `color: rgb(var(--v-global-theme-primary))`
|
// ❗ if you have SVG logo and want it to adapt according to theme color, you have to apply color as `color: rgb(var(--v-global-theme-primary))`
|
||||||
logo: h('div', { innerHTML: `<img src="${logoImage}" alt="Logo" style="width:150px;">` }),
|
logo: h('div', { innerHTML: `<img src="${logoImage}" alt="Logo" style="width:170px;">` }),
|
||||||
contentWidth: ContentWidth.Boxed,
|
contentWidth: ContentWidth.Boxed,
|
||||||
contentLayoutNav: AppContentLayoutNav.Vertical,
|
contentLayoutNav: AppContentLayoutNav.Vertical,
|
||||||
overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/
|
overlayNavFromBreakpoint: breakpointsVuetify.md + 16, // 16 for scrollbar. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/
|
||||||
|
3
typed-router.d.ts
vendored
3
typed-router.d.ts
vendored
@ -121,7 +121,6 @@ declare module 'vue-router/auto/routes' {
|
|||||||
'labs-labs': RouteRecordInfo<'labs-labs', '/labs/labs', Record<never, never>, Record<never, never>>,
|
'labs-labs': RouteRecordInfo<'labs-labs', '/labs/labs', Record<never, never>, Record<never, never>>,
|
||||||
'labs-labs-kit': RouteRecordInfo<'labs-labs-kit', '/labs/labs-kit', Record<never, never>, Record<never, never>>,
|
'labs-labs-kit': RouteRecordInfo<'labs-labs-kit', '/labs/labs-kit', Record<never, never>, Record<never, never>>,
|
||||||
'login': RouteRecordInfo<'login', '/login', Record<never, never>, Record<never, never>>,
|
'login': RouteRecordInfo<'login', '/login', Record<never, never>, Record<never, never>>,
|
||||||
'medicines-medicines': RouteRecordInfo<'medicines-medicines', '/medicines/medicines', Record<never, never>, Record<never, never>>,
|
|
||||||
'not-authorized': RouteRecordInfo<'not-authorized', '/not-authorized', Record<never, never>, Record<never, never>>,
|
'not-authorized': RouteRecordInfo<'not-authorized', '/not-authorized', Record<never, never>, Record<never, never>>,
|
||||||
'pages-account-settings-tab': RouteRecordInfo<'pages-account-settings-tab', '/pages/account-settings/:tab', { tab: ParamValue<true> }, { tab: ParamValue<false> }>,
|
'pages-account-settings-tab': RouteRecordInfo<'pages-account-settings-tab', '/pages/account-settings/:tab', { tab: ParamValue<true> }, { tab: ParamValue<false> }>,
|
||||||
'pages-authentication-forgot-password-v1': RouteRecordInfo<'pages-authentication-forgot-password-v1', '/pages/authentication/forgot-password-v1', Record<never, never>, Record<never, never>>,
|
'pages-authentication-forgot-password-v1': RouteRecordInfo<'pages-authentication-forgot-password-v1', '/pages/authentication/forgot-password-v1', Record<never, never>, Record<never, never>>,
|
||||||
@ -161,10 +160,12 @@ declare module 'vue-router/auto/routes' {
|
|||||||
'patients-patient-profile': RouteRecordInfo<'patients-patient-profile', '/patients/patient-profile', Record<never, never>, Record<never, never>>,
|
'patients-patient-profile': RouteRecordInfo<'patients-patient-profile', '/patients/patient-profile', Record<never, never>, Record<never, never>>,
|
||||||
'patients-patien-tab-overview': RouteRecordInfo<'patients-patien-tab-overview', '/patients/PatienTabOverview', Record<never, never>, Record<never, never>>,
|
'patients-patien-tab-overview': RouteRecordInfo<'patients-patien-tab-overview', '/patients/PatienTabOverview', Record<never, never>, Record<never, never>>,
|
||||||
'patients-patient-bio-panel': RouteRecordInfo<'patients-patient-bio-panel', '/patients/PatientBioPanel', Record<never, never>, Record<never, never>>,
|
'patients-patient-bio-panel': RouteRecordInfo<'patients-patient-bio-panel', '/patients/PatientBioPanel', Record<never, never>, Record<never, never>>,
|
||||||
|
'patients-patient-lab-test': RouteRecordInfo<'patients-patient-lab-test', '/patients/PatientLabTest', Record<never, never>, Record<never, never>>,
|
||||||
'patients-patient-question-profile': RouteRecordInfo<'patients-patient-question-profile', '/patients/PatientQuestionProfile', Record<never, never>, Record<never, never>>,
|
'patients-patient-question-profile': RouteRecordInfo<'patients-patient-question-profile', '/patients/PatientQuestionProfile', Record<never, never>, Record<never, never>>,
|
||||||
'patients-patients': RouteRecordInfo<'patients-patients', '/patients/patients', Record<never, never>, Record<never, never>>,
|
'patients-patients': RouteRecordInfo<'patients-patients', '/patients/patients', Record<never, never>, Record<never, never>>,
|
||||||
'patients-prescription-panel': RouteRecordInfo<'patients-prescription-panel', '/patients/PrescriptionPanel', Record<never, never>, Record<never, never>>,
|
'patients-prescription-panel': RouteRecordInfo<'patients-prescription-panel', '/patients/PrescriptionPanel', Record<never, never>, Record<never, never>>,
|
||||||
'patients-question-progress-bar': RouteRecordInfo<'patients-question-progress-bar', '/patients/QuestionProgressBar', Record<never, never>, Record<never, never>>,
|
'patients-question-progress-bar': RouteRecordInfo<'patients-question-progress-bar', '/patients/QuestionProgressBar', Record<never, never>, Record<never, never>>,
|
||||||
|
'products-product': RouteRecordInfo<'products-product', '/products/product', Record<never, never>, Record<never, never>>,
|
||||||
'providers-completed-meeting-tab': RouteRecordInfo<'providers-completed-meeting-tab', '/providers/CompletedMeetingTab', Record<never, never>, Record<never, never>>,
|
'providers-completed-meeting-tab': RouteRecordInfo<'providers-completed-meeting-tab', '/providers/CompletedMeetingTab', Record<never, never>, Record<never, never>>,
|
||||||
'providers-meeting-details': RouteRecordInfo<'providers-meeting-details', '/providers/meeting-details', Record<never, never>, Record<never, never>>,
|
'providers-meeting-details': RouteRecordInfo<'providers-meeting-details', '/providers/meeting-details', Record<never, never>, Record<never, never>>,
|
||||||
'providers-meetings': RouteRecordInfo<'providers-meetings', '/providers/meetings', Record<never, never>, Record<never, never>>,
|
'providers-meetings': RouteRecordInfo<'providers-meetings', '/providers/meetings', Record<never, never>, Record<never, never>>,
|
||||||
|
Loading…
Reference in New Issue
Block a user