Files
onboard/resources/js/Composables/usePatientColumns.js
brusnitsyn 90e0d04dfd * оптимизировал запросы выдачи пациентов, сохранения снапшотов
* доработал страницу отчета дежурного
* переделал "действия" над пациентом
* подключил виджеты на странице отчета дежурного
2026-05-08 17:04:56 +09:00

201 lines
5.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {format, formatDistanceStrict} from "date-fns";
import {ru} from "date-fns/locale";
import {h} from "vue";
import TooltipColumn from "../Pages/Report/Components/DataTableColumns/TooltipColumn.vue";
import OperationsColumn from "../Pages/Report/Components/DataTableColumns/OperationsColumn.vue";
import ActionsColumn from "../Pages/Report/Components/DataTableColumns/ActionsColumn.vue";
export const usePatientColumns = (actionHandlers = {}) => {
const { onMisClick, onAddObservable, onAddObservableComment, onRemoveObservable, onShowOperationModal } = actionHandlers
const defaultColumns = [
{
title: 'ФИО',
key: 'full_name',
width: 280
},
{
title: 'Возраст',
key: 'birth_date',
render: (row) => formatDistanceStrict(new Date(row.birth_date), new Date(), { locale: ru }),
width: 75,
},
{
title: 'Д/р',
key: 'birth_date',
minWidth: 94,
maxWidth: 100,
width: 94,
resizable: false,
render: (row) => format(new Date(row.birth_date), 'dd.MM.yyyy')
},
{
title: 'Д/п',
key: 'latest_migration.ingoing_date',
minWidth: 134,
maxWidth: 144,
width: 134,
resizable: false,
render: (row) => format(new Date(row.latest_migration.ingoing_date), 'dd.MM.yyyy HH:mm')
},
{
title: 'Диагноз',
key: 'latest_migration.diagnosis_code',
width: 75,
resizable: false,
render: (row) => h(TooltipColumn, { triggerText: row.latest_migration.diagnosis_code, contentText: row.latest_migration.diagnosis_name })
},
{
title: 'Операции',
key: 'latest_migration.operations',
width: 140,
className: 'relative',
render: (row) => h(OperationsColumn, { operations: row.latest_migration.operations, onClick: (operations) => onShowOperationModal(operations) })
},
]
const planOrEmergencyColumns = [
...defaultColumns,
{
title: '',
key: 'actions',
align: 'end',
render: (row) => {
return h(
ActionsColumn,
{
row: row,
isMis: true,
isAddObservable: true,
onMisClick,
onAddObservable,
onAddObservableComment,
onRemoveObservable,
}
)
}
}
]
const observableColumns = [
...defaultColumns,
{
title: '',
key: 'actions',
align: 'end',
render: (row) => {
return h(
ActionsColumn,
{
row: row,
isMis: true,
isAddObservableComment: true,
isRemoveObservable: true,
onMisClick,
onAddObservable,
onAddObservableComment,
onRemoveObservable,
}
)
}
}
]
const reanimationColumns = [
...defaultColumns,
{
title: '',
key: 'actions',
align: 'end',
render: (row) => {
return h(
ActionsColumn,
{
row: row,
isMis: true,
onMisClick,
onAddObservable,
onAddObservableComment,
onRemoveObservable,
}
)
}
}
]
const deceasedColumns = [
...defaultColumns,
{
title: '',
key: 'actions',
align: 'end',
render: (row) => {
return h(
ActionsColumn,
{
row: row,
isMis: true,
onMisClick,
onAddObservable,
onAddObservableComment,
onRemoveObservable,
}
)
}
}
]
const dischargedColumns = [
...defaultColumns,
{
title: '',
key: 'actions',
align: 'end',
render: (row) => {
return h(
ActionsColumn,
{
row: row,
isMis: true,
onMisClick,
onAddObservable,
onAddObservableComment,
onRemoveObservable,
}
)
}
}
]
const transferredColumns = [
...defaultColumns,
{
title: '',
key: 'actions',
align: 'end',
render: (row) => {
return h(
ActionsColumn,
{
row: row,
isMis: true,
onMisClick,
onAddObservable,
onAddObservableComment,
onRemoveObservable,
}
)
}
}
]
return {
planOrEmergencyColumns,
observableColumns,
reanimationColumns,
dischargedColumns,
deceasedColumns,
transferredColumns
}
}