Перевел добавление пациентов для мед. сестры из МИС
This commit is contained in:
@@ -5,6 +5,7 @@ import AppRadio from "../../../Components/AppRadio.vue";
|
||||
import {useDebounceFn} from "@vueuse/core";
|
||||
import {format} from "date-fns";
|
||||
import {router} from "@inertiajs/vue3";
|
||||
import AppPanel from "../../../Components/AppPanel.vue"
|
||||
const show = defineModel('show', { default: false })
|
||||
|
||||
const currentStep = ref(1)
|
||||
@@ -69,7 +70,7 @@ const visitResultOptions = [
|
||||
},
|
||||
{
|
||||
label: '3 - Переведён в дневной стационар',
|
||||
value: 2
|
||||
value: 3
|
||||
},
|
||||
{
|
||||
label: '4 - Переведён на другой профиль коек',
|
||||
@@ -139,9 +140,15 @@ const submit = () => {
|
||||
}
|
||||
|
||||
const searchOptions = ref([])
|
||||
const loadingSelect = ref(false)
|
||||
const loadingChangeSelect = ref(false)
|
||||
|
||||
const debounceSearch = useDebounceFn((s) => {
|
||||
if (s.length === 0 || s.length === 1) return
|
||||
if (s.length === 0 || s.length === 1) {
|
||||
searchOptions.value = []
|
||||
loadingSelect.value = false
|
||||
}
|
||||
loadingSelect.value = true
|
||||
search(s)
|
||||
}, 1000)
|
||||
|
||||
@@ -150,10 +157,13 @@ const search = (search) => {
|
||||
search
|
||||
}).then(res => {
|
||||
searchOptions.value = res.data
|
||||
}).finally((e) => {
|
||||
loadingSelect.value = false
|
||||
})
|
||||
}
|
||||
|
||||
const onChangeSearch = (historyId) => {
|
||||
loadingChangeSelect.value = true
|
||||
axios.get(`/api/nurse/patients/${historyId}`).then(res => {
|
||||
form.value.medical_card_number = res.data.medical_card_number
|
||||
form.value.full_name = res.data.full_name
|
||||
@@ -164,12 +174,20 @@ const onChangeSearch = (historyId) => {
|
||||
form.value.death_date = res.data.death_date
|
||||
form.value.extract_date = res.data.extract_date
|
||||
form.value.recipient_date = res.data.recipient_date
|
||||
}).finally((e) => {
|
||||
loadingChangeSelect.value = false
|
||||
})
|
||||
}
|
||||
|
||||
watch(() => currentStep.value, (val) => {
|
||||
if (val === 1) resetForm()
|
||||
})
|
||||
|
||||
const onAfterLeave = () => {
|
||||
resetForm()
|
||||
currentStep.value = 1
|
||||
searchOptions.value = []
|
||||
}
|
||||
</script>
|
||||
|
||||
<template>
|
||||
@@ -181,6 +199,7 @@ watch(() => currentStep.value, (val) => {
|
||||
draggable
|
||||
:close-on-esc="!buttonLoading"
|
||||
:closable="!buttonLoading"
|
||||
@afterLeave="onAfterLeave"
|
||||
>
|
||||
<NSteps size="small" :current="currentStep" :status="currentStatus">
|
||||
<NStep title="Тип пациента" description="Укажите тип пациента" />
|
||||
@@ -194,43 +213,46 @@ watch(() => currentStep.value, (val) => {
|
||||
</NRadioGroup>
|
||||
</NTabPane>
|
||||
<NTabPane :name="2">
|
||||
<NGrid cols="2" x-gap="8">
|
||||
<NFormItemGi v-if="form.patient_source === 'mis'" span="2" label="Поиск пациента">
|
||||
<NSelect v-model:value="form.id"
|
||||
filterable
|
||||
placeholder="Найти пациента по ФИО"
|
||||
remote
|
||||
:options="searchOptions"
|
||||
@search="debounceSearch"
|
||||
@change="onChangeSearch"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="2" label="ФИО">
|
||||
<NInput v-model:value="form.full_name" placeholder="Иванов Иван Иванович" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="2" label="№ карты">
|
||||
<NInput v-model:value="form.medical_card_number" />
|
||||
</NFormItemGi>
|
||||
<AppPanel :loading="loadingChangeSelect" class="border-none!" no-padding>
|
||||
<NGrid cols="2" x-gap="8">
|
||||
<NFormItemGi v-if="form.patient_source === 'mis'" span="2" label="Поиск пациента">
|
||||
<NSelect v-model:value="form.id"
|
||||
filterable
|
||||
placeholder="Найти пациента по ФИО"
|
||||
remote
|
||||
:loading="loadingSelect"
|
||||
:options="searchOptions"
|
||||
@search="debounceSearch"
|
||||
@change="onChangeSearch"
|
||||
/>
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="2" label="ФИО">
|
||||
<NInput v-model:value="form.full_name" placeholder="Иванов Иван Иванович" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="2" label="№ карты">
|
||||
<NInput v-model:value="form.medical_card_number" />
|
||||
</NFormItemGi>
|
||||
|
||||
<NFormItemGi span="1" label="Срочность">
|
||||
<NSelect filterable v-model:value="form.urgency_id" :options="urgencyOptions" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Исход госпитализации">
|
||||
<NSelect filterable v-model:value="form.visit_result_id" :options="visitResultOptions" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата рождения">
|
||||
<NDatePicker v-model:formatted-value="form.birth_date" class="w-full" format="dd.MM.yyyy" value-format="yyyy-MM-dd" clearable />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата и время госпитализации">
|
||||
<NDatePicker v-model:formatted-value="form.recipient_date" type="datetime" class="w-full" format="dd.MM.yyyy HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата и время выписки">
|
||||
<NDatePicker v-model:formatted-value="form.extract_date" type="datetime" class="w-full" format="dd.MM.yyyy HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата и время смерти">
|
||||
<NDatePicker v-model:formatted-value="form.death_date" type="datetime" class="w-full" format="dd.MM.yyyy HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
||||
</NFormItemGi>
|
||||
</NGrid>
|
||||
<NFormItemGi span="1" label="Срочность">
|
||||
<NSelect filterable v-model:value="form.urgency_id" :options="urgencyOptions" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Исход госпитализации">
|
||||
<NSelect filterable v-model:value="form.visit_result_id" :options="visitResultOptions" />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата рождения">
|
||||
<NDatePicker v-model:formatted-value="form.birth_date" class="w-full" format="dd.MM.yyyy" value-format="yyyy-MM-dd" clearable />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата и время госпитализации">
|
||||
<NDatePicker v-model:formatted-value="form.recipient_date" type="datetime" class="w-full" format="dd.MM.yyyy HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата и время выписки">
|
||||
<NDatePicker v-model:formatted-value="form.extract_date" type="datetime" class="w-full" format="dd.MM.yyyy HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
||||
</NFormItemGi>
|
||||
<NFormItemGi span="1" label="Дата и время смерти">
|
||||
<NDatePicker v-model:formatted-value="form.death_date" type="datetime" class="w-full" format="dd.MM.yyyy HH:mm:ss" value-format="yyyy-MM-dd HH:mm:ss" clearable />
|
||||
</NFormItemGi>
|
||||
</NGrid>
|
||||
</AppPanel>
|
||||
</NTabPane>
|
||||
</NTabs>
|
||||
<template #action>
|
||||
|
||||
Reference in New Issue
Block a user