Merge branch 'dev' of ssh://git.codelfi.com:2202/telemedpro/hgh_admin into dev
This commit is contained in:
commit
872735dac3
@ -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_UPDATE_API = MAIN_DOMAIN + "/api/admin/patient-update/"
|
||||||
export const PATIENT_DELETE_API = MAIN_DOMAIN + "/api/admin/patient-delete/"
|
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_LIST_API = MAIN_DOMAIN + "/api/admin/telemed-pro-list"
|
||||||
export const PROVIDER_INFO_API = MAIN_DOMAIN + "/api/admin/telemed-pro/"
|
export const PROVIDER_INFO_API = MAIN_DOMAIN + "/api/admin/telemed-pro/"
|
||||||
export const PROVIDER_UPDATE_API = MAIN_DOMAIN + "/api/admin/telemed-pro-update/"
|
export const PROVIDER_UPDATE_API = MAIN_DOMAIN + "/api/admin/telemed-pro-update/"
|
||||||
|
194
resources/js/pages/pages/patient-labkits/labkit.vue
Normal file
194
resources/js/pages/pages/patient-labkits/labkit.vue
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
<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">
|
||||||
|
<!-- avatar -->
|
||||||
|
<VAvatar
|
||||||
|
size="32"
|
||||||
|
:color="item.avatar ? '' : 'primary'"
|
||||||
|
:class="item.avatar ? '' : 'v-avatar-light-bg primary--text'"
|
||||||
|
:variant="!item.avatar ? 'tonal' : undefined"
|
||||||
|
>
|
||||||
|
<VImg
|
||||||
|
v-if="item.avatar"
|
||||||
|
:src="item.avatar"
|
||||||
|
/>
|
||||||
|
<span
|
||||||
|
v-else
|
||||||
|
class="text-sm"
|
||||||
|
>{{ avatarText(item.first_name) }}</span>
|
||||||
|
</VAvatar>
|
||||||
|
|
||||||
|
<div class="d-flex flex-column ms-3">
|
||||||
|
<span class="d-block font-weight-medium text-high-emphasis text-truncate">{{ item.first_name }} {{ item.last_name }}</span>
|
||||||
|
<!-- <small>{{ item.post }}</small> -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<!-- <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"
|
||||||
|
density="comfortable"
|
||||||
|
:items="['Pending', 'Shipped', 'Delivered', 'Transit', 'Recevied', 'Result']"
|
||||||
|
@update:model-value="onStatusChange"
|
||||||
|
@click="onChange(item.id)"
|
||||||
|
|
||||||
|
/>
|
||||||
|
</template>
|
||||||
|
</VDataTable>
|
||||||
|
</v-card>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</template>
|
@ -122,9 +122,26 @@ const options = [
|
|||||||
},
|
},
|
||||||
|
|
||||||
]
|
]
|
||||||
|
const breadcrums = [
|
||||||
|
{
|
||||||
|
title: 'Patient',
|
||||||
|
disabled: false,
|
||||||
|
to: '/admin/patients',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Meetings',
|
||||||
|
disabled: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
];
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<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-row>
|
||||||
<v-col cols="12" md="12">
|
<v-col cols="12" md="12">
|
||||||
<v-card title="Meetings">
|
<v-card title="Meetings">
|
||||||
|
@ -93,6 +93,11 @@ const headers = [
|
|||||||
title: 'Phone',
|
title: 'Phone',
|
||||||
key: 'phone_no',
|
key: 'phone_no',
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
title: 'Lab Kit',
|
||||||
|
key: 'labkit',
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -208,6 +213,9 @@ function changeFormat(dateFormat) {
|
|||||||
console.log("formattedDate",formattedDate)
|
console.log("formattedDate",formattedDate)
|
||||||
return formattedDate;
|
return formattedDate;
|
||||||
}
|
}
|
||||||
|
const LabKit = (item)=> {
|
||||||
|
router.push('/admin/patients/labkit/'+item.id);
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -272,6 +280,8 @@ function changeFormat(dateFormat) {
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- status -->
|
<!-- status -->
|
||||||
<template #item.status="{ item }">
|
<template #item.status="{ item }">
|
||||||
<VChip
|
<VChip
|
||||||
@ -281,6 +291,9 @@ function changeFormat(dateFormat) {
|
|||||||
{{ resolveStatusVariant(item.status).text }}
|
{{ resolveStatusVariant(item.status).text }}
|
||||||
</VChip>
|
</VChip>
|
||||||
</template>
|
</template>
|
||||||
|
<template #item.labkit="{ item }">
|
||||||
|
<div class="text-primary cursor-pointer" @click="LabKit(item)"> LabKits</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
<!-- Actions -->
|
<!-- Actions -->
|
||||||
<template #item.actions="{ item }">
|
<template #item.actions="{ item }">
|
||||||
|
@ -43,6 +43,11 @@ export const routes = [
|
|||||||
name: 'admin-patients',
|
name: 'admin-patients',
|
||||||
component: () => import('@/pages/patients/patients.vue'),
|
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',
|
path: '/admin/patient/meetings/:id',
|
||||||
name: 'admin-patient-meeitngs',
|
name: 'admin-patient-meeitngs',
|
||||||
|
@ -21,6 +21,8 @@ import {
|
|||||||
MEETING_NOTES_API,
|
MEETING_NOTES_API,
|
||||||
MEETING_PRESCREPTIONS_API,
|
MEETING_PRESCREPTIONS_API,
|
||||||
PATIENT_DELETE_API,
|
PATIENT_DELETE_API,
|
||||||
|
PATIENT_LABKIT_LIST_API,
|
||||||
|
PATIENT_LABKIT_STATUS_UPDATE_API,
|
||||||
PATIENT_LIST_API,
|
PATIENT_LIST_API,
|
||||||
PATIENT_MEETING_LIST_API,
|
PATIENT_MEETING_LIST_API,
|
||||||
PATIENT_UPDATE_API,
|
PATIENT_UPDATE_API,
|
||||||
@ -32,7 +34,6 @@ import {
|
|||||||
} from './constants.js';
|
} from './constants.js';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export default createStore({
|
export default createStore({
|
||||||
state: {
|
state: {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
@ -40,9 +41,11 @@ export default createStore({
|
|||||||
isSuccessMsg: false,
|
isSuccessMsg: false,
|
||||||
patientList:[],
|
patientList:[],
|
||||||
patientMeetingList: [],
|
patientMeetingList: [],
|
||||||
|
patientLabKitList:[],
|
||||||
providerMeetingList:[],
|
providerMeetingList:[],
|
||||||
providersList:[],
|
providersList:[],
|
||||||
labsList:[],
|
labsList:[],
|
||||||
|
patientLabKitStatus:'',
|
||||||
singlePatientAppointment: null,
|
singlePatientAppointment: null,
|
||||||
patientPrescription:null,
|
patientPrescription:null,
|
||||||
patientNotes: null,
|
patientNotes: null,
|
||||||
@ -91,8 +94,11 @@ export default createStore({
|
|||||||
setPtientMeetingList(state, payload) {
|
setPtientMeetingList(state, payload) {
|
||||||
state.patientMeetingList = payload
|
state.patientMeetingList = payload
|
||||||
},
|
},
|
||||||
setProviderMeetingList(state, payload) {
|
setPtientMeetingList(state, payload) {
|
||||||
state.providerMeetingList = payload
|
state.patientMeetingList = payload
|
||||||
|
},
|
||||||
|
setPatientLabKitList(state, payload) {
|
||||||
|
state.patientLabKitList = payload
|
||||||
},
|
},
|
||||||
setProvidersList(state, payload) {
|
setProvidersList(state, payload) {
|
||||||
state.providersList = payload
|
state.providersList = payload
|
||||||
@ -123,7 +129,12 @@ export default createStore({
|
|||||||
},
|
},
|
||||||
setSiteSetting(state, payload) {
|
setSiteSetting(state, payload) {
|
||||||
state.siteSetting = payload
|
state.siteSetting = payload
|
||||||
|
},
|
||||||
|
setPatientLabKitStatus(state, payload) {
|
||||||
|
state.patientLabKitStatus = payload
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
|
|
||||||
@ -384,6 +395,39 @@ export default createStore({
|
|||||||
console.error('Error:', error);
|
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){
|
async getAppointmentByIdAgent ({commit,state},payload){
|
||||||
commit('setLoading', true)
|
commit('setLoading', true)
|
||||||
await axios.post(APPOINTMENT_DETAILS_API+payload.patient_id + '/' + payload.appointment_id, {}, {
|
await axios.post(APPOINTMENT_DETAILS_API+payload.patient_id + '/' + payload.appointment_id, {}, {
|
||||||
@ -392,7 +436,6 @@ export default createStore({
|
|||||||
}
|
}
|
||||||
}) .then(response => {
|
}) .then(response => {
|
||||||
commit('setLoading', false)
|
commit('setLoading', false)
|
||||||
console.log('Response Notes:', response.data.data);
|
|
||||||
commit('setSinglePatientAppointment',response.data.data)
|
commit('setSinglePatientAppointment',response.data.data)
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
@ -455,7 +498,6 @@ export default createStore({
|
|||||||
}
|
}
|
||||||
}) .then(response => {
|
}) .then(response => {
|
||||||
commit('setLoading', false)
|
commit('setLoading', false)
|
||||||
console.log('Response Notes:', response.data.data);
|
|
||||||
commit('setPatientNotes',response.data.data)
|
commit('setPatientNotes',response.data.data)
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
@ -857,7 +899,12 @@ export default createStore({
|
|||||||
getProviderMeetingList(state){
|
getProviderMeetingList(state){
|
||||||
return state.providerMeetingList
|
return state.providerMeetingList
|
||||||
},
|
},
|
||||||
|
getPatientLabKitList(state){
|
||||||
|
return state.patientLabKitList
|
||||||
|
},
|
||||||
|
getPatientLabKitStatus(state){
|
||||||
|
return state.patientLabKitStatus
|
||||||
|
},
|
||||||
getProvidersList(state){
|
getProvidersList(state){
|
||||||
return state.providersList
|
return state.providersList
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user