This commit is contained in:
Muhammad Shahzad 2024-06-07 04:24:45 +05:00
parent ac6640ba0e
commit 110e4b46ca
6 changed files with 265 additions and 6 deletions

View File

@ -9,6 +9,11 @@ export const PATIENT_MEETING_LIST_API = MAIN_DOMAIN + "/api/admin/get-meeting-h
export const PATIENT_UPDATE_API = MAIN_DOMAIN + "/api/admin/patient-update/"
export const PATIENT_DELETE_API = MAIN_DOMAIN + "/api/admin/patient-delete/"
export const PATIENT_LABKIT_LIST_API = MAIN_DOMAIN + "/api/admin/patient-labkit-list/"
export const PATIENT_LABKIT_STATUS_UPDATE_API = MAIN_DOMAIN + "/api/admin/labkit-status-update/"
export const PROVIDER_LIST_API = MAIN_DOMAIN + "/api/admin/telemed-pro-list"
export const PROVIDER_INFO_API = MAIN_DOMAIN + "/api/admin/telemed-pro/"
export const PROVIDER_UPDATE_API = MAIN_DOMAIN + "/api/admin/telemed-pro-update/"

View File

@ -0,0 +1,171 @@
<script setup>
import { onBeforeMount, onMounted, onUnmounted } from 'vue';
import { useRoute, useRouter } from 'vue-router';
import { useStore } from 'vuex';
const store = useStore()
const route = useRoute()
const router = useRouter()
const patientId = route.params.patient_id;
const search = ref('')
const getSelectedCart = ref('');
const patientLabKitList = ref([])
const getIsTonalSnackbarVisible = ref(false);
const labkitStatus = ref('');
onBeforeMount(async () => {});
onMounted(async () => {
store.dispatch('updateIsLoading', true)
await store.dispatch('patientLabKitList', {
patient_id : patientId
})
console.log('patientLabKitList',store.getters.getPatientLabKitList.cart)
store.dispatch('updateIsLoading', false)
});
const getPatientLabKitList = computed(async () => {
patientLabKitList.value = store.getters.getPatientLabKitList.cart;
return patientLabKitList.value;
});
const onChange = (id)=> {
getSelectedCart.value = id;
}
const onStatusChange = async(status) => {
console.log('Selected status:', status, getSelectedCart.value);
store.dispatch('updateIsLoading', true)
await store.dispatch('updateLabkitListStatus', {
cart_id : getSelectedCart.value,
status: status
})
labkitStatus.value = store.getters.getPatientLabKitStatus.status;
getIsTonalSnackbarVisible.value = true;
};
onUnmounted(async () => {});
const headers = [
{
title: 'NAME',
key: 'first_name',
},
{
title: 'Address',
key: 'shipping_address1',
},
{
title: 'Amount',
key: 'shipping_amount',
},
{
title: 'Status',
key: 'status',
},
]
const breadcrums = [
{
title: 'Patient',
disabled: false,
to: '/admin/patients',
},
{
title: 'Labkit',
disabled: false,
}
];
</script>
<template>
<v-breadcrumbs :items="breadcrums" class="text-primary pt-0 pb-0 mb-5">
<template v-slot:divider style="padding-top:0px; padding-bottom:0px">
>
</template>
</v-breadcrumbs>
<v-row>
<VSnackbar v-model="getIsTonalSnackbarVisible" :timeout="5000" location="top end" variant="flat"
color="success">
<VIcon
class="ri-success-line success-icon"
/> {{labkitStatus }}
</VSnackbar>
<v-col cols="12" md="12" v-if="getPatientLabKitList">
<v-card title="LabKits">
<VCardText >
<VRow>
<VCol
cols="12"
offset-md="8"
md="4"
>
<VTextField
v-model="search"
label="Search"
placeholder="Search ..."
append-inner-icon="ri-search-line"
single-line
hide-details
dense
outlined
/>
</VCol>
</VRow>
</VCardText>
<VDataTable
:headers="headers"
:items="patientLabKitList"
:search="search"
:items-per-page="5"
class="text-no-wrap"
>
<template #item.id="{ item }">
{{ item.id }}
</template>
<!-- full name -->
<template #item.first_name="{ item }">
<div class="d-flex align-center">
<span>{{ item.first_name }} {{ item.last_name }}</span>
</div>
</template>
<template #item.shipping_address1="{ item }">
<div class="d-flex align-center">
<span>{{ item.shipping_address1 }},
{{ item.shipping_address2 }},
{{ item.shipping_city }},
{{item.shipping_state}},
{{ item.shipping_zipcode}},
{{ item.shipping_country }}
</span>
</div>
</template>
<!-- status -->
<template #item.status="{ item }">
<VSelect
v-model="item.status"
placeholder="Status"
:items="['Pending', 'Shipped', 'Delivered', 'Transit', 'Recevied', 'Result']"
@update:model-value="onStatusChange"
@click="onChange(item.id)"
density="comfortable"
/>
</template>
</VDataTable>
</v-card>
</v-col>
</v-row>
</template>

View File

@ -122,9 +122,26 @@ const options = [
},
]
const breadcrums = [
{
title: 'Patient',
disabled: false,
to: '/admin/patients',
},
{
title: 'Meetings',
disabled: false,
}
];
</script>
<template>
<v-breadcrumbs :items="breadcrums" class="text-primary pt-0 pb-0 mb-5">
<template v-slot:divider style="padding-top:0px; padding-bottom:0px">
>
</template>
</v-breadcrumbs>
<v-row>
<v-col cols="12" md="12">
<v-card title="Meetings">

View File

@ -94,6 +94,11 @@ const headers = [
key: 'phone_no',
},
{
title: 'Lab Kit',
key: 'labkit',
},
{
@ -208,6 +213,9 @@ function changeFormat(dateFormat) {
console.log("formattedDate",formattedDate)
return formattedDate;
}
const LabKit = (item)=> {
router.push('/admin/patients/labkit/'+item.id);
}
</script>
@ -272,6 +280,8 @@ function changeFormat(dateFormat) {
</div>
</template>
<!-- status -->
<template #item.status="{ item }">
<VChip
@ -281,6 +291,9 @@ function changeFormat(dateFormat) {
{{ resolveStatusVariant(item.status).text }}
</VChip>
</template>
<template #item.labkit="{ item }">
<div class="text-primary cursor-pointer" @click="LabKit(item)"> LabKits</div>
</template>
<!-- Actions -->
<template #item.actions="{ item }">

View File

@ -43,6 +43,11 @@ export const routes = [
name: 'admin-patients',
component: () => import('@/pages/patients/patients.vue'),
},
{
path: '/admin/patients/labkit/:patient_id',
name: 'admin-patients-labkit',
component: () => import('@/pages/pages/patient-labkits/labkit.vue'),
},
{
path: '/admin/patient/meetings/:id',
name: 'admin-patient-meeitngs',

View File

@ -17,6 +17,8 @@ import {
MEETING_NOTES_API,
MEETING_PRESCREPTIONS_API,
PATIENT_DELETE_API,
PATIENT_LABKIT_LIST_API,
PATIENT_LABKIT_STATUS_UPDATE_API,
PATIENT_LIST_API,
PATIENT_MEETING_LIST_API,
PATIENT_UPDATE_API,
@ -28,7 +30,6 @@ import {
} from './constants.js';
export default createStore({
state: {
isLoading: false,
@ -36,9 +37,11 @@ export default createStore({
isSuccessMsg: false,
patientList:[],
patientMeetingList: [],
patientLabKitList:[],
providerMeetingList:[],
providersList:[],
labsList:[],
patientLabKitStatus:'',
singlePatientAppointment: null,
patientPrescription:null,
patientNotes: null,
@ -86,8 +89,11 @@ export default createStore({
setPtientMeetingList(state, payload) {
state.patientMeetingList = payload
},
setProviderMeetingList(state, payload) {
state.providerMeetingList = payload
setPtientMeetingList(state, payload) {
state.patientMeetingList = payload
},
setPatientLabKitList(state, payload) {
state.patientLabKitList = payload
},
setProvidersList(state, payload) {
state.providersList = payload
@ -115,7 +121,12 @@ export default createStore({
},
setSiteSetting(state, payload) {
state.siteSetting = payload
},
setPatientLabKitStatus(state, payload) {
state.patientLabKitStatus = payload
}
},
actions: {
@ -372,6 +383,39 @@ export default createStore({
console.error('Error:', error);
});
},
async patientLabKitList ({commit,state},payload){
commit('setLoading', true)
await axios.post(PATIENT_LABKIT_LIST_API+payload.patient_id ,{}, {
headers: {
'Authorization': `Bearer ${localStorage.getItem('admin_access_token')}`,
}
}) .then(response => {
commit('setLoading', false)
console.log('Response Labkit:', response.data);
commit('setPatientLabKitList',response.data)
})
.catch(error => {
commit('setLoading', false)
console.error('Error:', error);
});
},
async updateLabkitListStatus ({commit,state},payload){
commit('setLoading', true)
await axios.post(PATIENT_LABKIT_STATUS_UPDATE_API+payload.cart_id ,{
status:payload.status
}, {
headers: {
'Authorization': `Bearer ${localStorage.getItem('admin_access_token')}`,
}
}) .then(response => {
commit('setLoading', false)
commit('setPatientLabKitStatus',response.data);
})
.catch(error => {
commit('setLoading', false)
console.error('Error:', error);
});
},
async getAppointmentByIdAgent ({commit,state},payload){
commit('setLoading', true)
await axios.post(APPOINTMENT_DETAILS_API+payload.patient_id + '/' + payload.appointment_id, {}, {
@ -380,7 +424,6 @@ export default createStore({
}
}) .then(response => {
commit('setLoading', false)
console.log('Response Notes:', response.data.data);
commit('setSinglePatientAppointment',response.data.data)
})
.catch(error => {
@ -443,7 +486,6 @@ export default createStore({
}
}) .then(response => {
commit('setLoading', false)
console.log('Response Notes:', response.data.data);
commit('setPatientNotes',response.data.data)
})
.catch(error => {
@ -739,7 +781,12 @@ export default createStore({
getProviderMeetingList(state){
return state.providerMeetingList
},
getPatientLabKitList(state){
return state.patientLabKitList
},
getPatientLabKitStatus(state){
return state.patientLabKitStatus
},
getProvidersList(state){
return state.providersList
},
@ -770,5 +817,6 @@ export default createStore({
getCheckLoginExpire(state){
return state.checkLoginExpire
},
}
})