16
openhis-ui-vue3/src/App.vue
Executable file
@@ -0,0 +1,16 @@
|
||||
<template>
|
||||
<router-view />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import useSettingsStore from '@/store/modules/settings'
|
||||
import {handleThemeStyle} from '@/utils/theme'
|
||||
|
||||
onMounted(() => {
|
||||
nextTick(() => {
|
||||
// 初始化主题样式
|
||||
handleThemeStyle(useSettingsStore().theme)
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
55
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/ViewConfig.js
Executable file
@@ -0,0 +1,55 @@
|
||||
import {bodyTemperature, HEAD_HEIGHT, LINE_HEIGHT, TOP_KEYS} from './config';
|
||||
|
||||
export default class viewConfig {
|
||||
constructor({
|
||||
width = 640, // outer width, in pixels
|
||||
height = 400, // outer height, in pixels
|
||||
marginTop = 20, // top margin, in pixels
|
||||
marginRight = 20, // right margin, in pixels
|
||||
marginBottom = 50, // bottom margin, in pixels
|
||||
marginLeft = 30, // left margin, in pixels
|
||||
stroke = 'currentColor', // stroke color of line and dots
|
||||
strokeWidth = 2, // stroke width of line and dots
|
||||
strokeLinecap = 'round', // stroke line cap of line
|
||||
strokeLinejoin = 'round', // stroke line join of line
|
||||
renderData,
|
||||
} = {}) {
|
||||
// 基础配置赋值
|
||||
this.width = width;
|
||||
this.height = height;
|
||||
this.stroke = stroke;
|
||||
this.strokeWidth = strokeWidth;
|
||||
this.strokeLinecap = strokeLinecap;
|
||||
this.renderData = renderData;
|
||||
this.strokeLinejoin = strokeLinejoin;
|
||||
this.marginRight = marginRight;
|
||||
this.marginLeft = marginLeft;
|
||||
this.marginBottom = marginBottom;
|
||||
this.marginTop = marginTop;
|
||||
// 计算属性赋值
|
||||
this.contentWidth = width - marginLeft - marginRight;
|
||||
this.step = this.contentWidth / 8;
|
||||
this.bottomPos = height - HEAD_HEIGHT - marginTop - (marginBottom - 30); // 底部坐标,30是因为默认的30,忘记计算了,后续的按照30的偏移量计算
|
||||
this.tableHeight = height - marginBottom - HEAD_HEIGHT;
|
||||
const { micoStep, verticalHeight } = this.utilsGetMicoPos(this.step, this.bottomPos);
|
||||
this.micoStep = micoStep;
|
||||
this.verticalHeight = verticalHeight;
|
||||
this.X_OFFSET = micoStep / 2; // 为了让图标在小格子居中展示,需要进行一个偏移
|
||||
this.xRange = [this.step, width - marginLeft - marginRight]; // [60, 860]
|
||||
this.topPos = marginTop + HEAD_HEIGHT;
|
||||
this.topKeysPos = LINE_HEIGHT * (TOP_KEYS.length + 1); // 1 是时间那一行
|
||||
this.bottomKeysPosStart = this.topKeysPos + verticalHeight + 20;
|
||||
this.yRange = [this.bottomKeysPosStart - 20, this.topKeysPos];
|
||||
}
|
||||
|
||||
// 获取折线区域的高度
|
||||
utilsGetMicoPos(step, botpos) {
|
||||
const micoStep = (step * 7) / 42; // 折线小格子的宽度
|
||||
const verticalLength = bodyTemperature[1] - bodyTemperature[0]; // 根据体温来计算格子
|
||||
const verticalHeight = micoStep * 5 * verticalLength;
|
||||
return {
|
||||
micoStep,
|
||||
verticalHeight,
|
||||
};
|
||||
}
|
||||
}
|
||||
208
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/config.js
Executable file
@@ -0,0 +1,208 @@
|
||||
import dayjs from 'dayjs';
|
||||
import {getBottomKeys, getInfoKeys, HospitalName, showPainFlag, temperatureName,} from './template';
|
||||
|
||||
// 存放体温单的配置信息
|
||||
export const Header = {
|
||||
HospitalName,
|
||||
temperatureName,
|
||||
};
|
||||
// 患者信息
|
||||
export const INFO_KEYS = getInfoKeys();
|
||||
// 头部信息标签
|
||||
export const TOP_KEYS = [
|
||||
{
|
||||
name: '日 期',
|
||||
getValue: (i, renderData) => {
|
||||
const { beginDate, outdate = '', hospDate = '', dateClosed } = renderData.infoData;
|
||||
const tieml = new Date();
|
||||
const timeNew = new Date((tieml / 1000 + 86400) * 1000);
|
||||
const todayDate = dayjs(timeNew).format('YYYY-MM-DD');
|
||||
const endDate = dayjs(outdate).format('YYYY-MM-DD');
|
||||
let eachDate = dayjs(beginDate).add(i, 'day');
|
||||
const eachTime = eachDate.format('YYYY-MM-DD');
|
||||
if (eachTime === endDate || eachTime === todayDate) {
|
||||
dateClosed.stopTime = true;
|
||||
}
|
||||
// 统一补零格式:月份和日期都始终两位补零
|
||||
const month = eachDate.format('MM'); // 月份始终两位补零
|
||||
const date = eachDate.format('DD'); // 日期始终两位补零
|
||||
// 每月1号显示 MM月DD日,其他日期只显示 DD日
|
||||
return `${month}月${date}日`;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '住院日数',
|
||||
getValue: (i, renderData) => {
|
||||
const { beginDate, hospDays, outdate = '', dateClosed } = renderData.infoData;
|
||||
const beginDayjs = dayjs(beginDate);
|
||||
let num = '';
|
||||
// 只要 beginDate 有效,每一天都计算显示住院日数
|
||||
if (beginDayjs.isValid()) {
|
||||
if (hospDays !== undefined && hospDays !== null) {
|
||||
num = hospDays + i + 1;
|
||||
} else {
|
||||
// hospDays 不存在时,从入院开始直接计算
|
||||
num = i + 1;
|
||||
}
|
||||
}
|
||||
let hosNum = '';
|
||||
if (num !== '') {
|
||||
hosNum = '第' + '\xa0\xa0\xa0' + num + '\xa0\xa0\xa0' + '日';
|
||||
} else {
|
||||
hosNum = '第' + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' + '日';
|
||||
}
|
||||
return hosNum;
|
||||
},
|
||||
},
|
||||
{
|
||||
name: '术/娩后日数',
|
||||
getValue: (i, renderData) => {
|
||||
const { beginDate } = renderData.infoData;
|
||||
const surgeryNumDays = renderData.surgeryNumDays;
|
||||
const eachTime = dayjs(beginDate).add(i, 'day').format('YYYY-MM-DD');
|
||||
let num = surgeryNumDays.filter((item) => item.date === eachTime);
|
||||
let hosNum = '';
|
||||
if (num.length > 0) {
|
||||
hosNum = '第' + '\xa0\xa0\xa0' + num[0].typeValue + '\xa0\xa0\xa0' + '日';
|
||||
} else {
|
||||
hosNum = '第' + '\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0\xa0' + '日';
|
||||
}
|
||||
return hosNum;
|
||||
},
|
||||
},
|
||||
];
|
||||
// 最底部的字段绘制
|
||||
export const BOTTOM_KEYS = getBottomKeys();
|
||||
// 是否显示疼痛评分
|
||||
export const showPain = showPainFlag;
|
||||
|
||||
/** *********** 以下是固定选项 **************************/
|
||||
export const timeNumber = [2, 6, 10, 14, 18, 22]; // 时间展示
|
||||
export const nightTime = [2, 18, 22]; // 夜间红色高亮时间
|
||||
export const leftTEXT = [
|
||||
['脉搏,(次/分),', '180', '160', '140', '120', '100', '80', '60', '40'],
|
||||
['体温,(℃), ', '42', '41', '40', '39', '38', '37', '36', '35'],
|
||||
];
|
||||
export const painTEXT = [['疼 痛 强 度'], ['10', '8', '6', '4', '2', '0']];
|
||||
export const inOutItem = ['入观', '分娩', '手术', '转入', '出观', '死亡'];
|
||||
export const otherItem = ['外出', '请假', '拒测', '离院', '其他'];
|
||||
export const sheetOptions = {
|
||||
locations: [
|
||||
{
|
||||
code: '1',
|
||||
display: '体温',
|
||||
},
|
||||
{
|
||||
code: '2',
|
||||
display: '口温',
|
||||
},
|
||||
{
|
||||
code: '3',
|
||||
display: '肛温',
|
||||
},
|
||||
{
|
||||
code: '4',
|
||||
display: '耳温',
|
||||
},
|
||||
],
|
||||
breath: [
|
||||
{
|
||||
code: '',
|
||||
display: '自主呼吸',
|
||||
},
|
||||
{
|
||||
code: '®',
|
||||
display: '机械通气',
|
||||
},
|
||||
],
|
||||
poop: [
|
||||
{
|
||||
code: '',
|
||||
display: '正常',
|
||||
},
|
||||
{
|
||||
code: '※',
|
||||
display: '失禁',
|
||||
},
|
||||
{
|
||||
code: '☆',
|
||||
display: '人工肛门',
|
||||
},
|
||||
{
|
||||
code: '/E',
|
||||
display: '灌肠',
|
||||
},
|
||||
],
|
||||
pee: [
|
||||
{
|
||||
code: '',
|
||||
display: '正常',
|
||||
},
|
||||
{
|
||||
code: '※',
|
||||
display: '失禁',
|
||||
},
|
||||
{
|
||||
code: 'C+',
|
||||
display: '导尿',
|
||||
},
|
||||
],
|
||||
heart: ['窦性心律', '起搏心律', '房性心律', '异常心律'],
|
||||
weight: ['正常', '卧床', '轮椅', '平车'],
|
||||
};
|
||||
// 此处是显示数字的 要和leftTEXT保持一直
|
||||
export const bodyTemperature = [33, 43];
|
||||
export const starNumEnv = bodyTemperature[0]; // 开始体温
|
||||
export const endNumEnv = bodyTemperature[1]; // 结束体温
|
||||
export const heartRange = [0, 200];
|
||||
export const painScore = [0, 10];
|
||||
|
||||
// 中间图表字段对应
|
||||
export const CHART_KEYS = [
|
||||
{
|
||||
key: '001',
|
||||
code: 'breath',
|
||||
name: '呼吸',
|
||||
},
|
||||
{
|
||||
key: '002',
|
||||
code: 'sphygmus',
|
||||
name: '脉搏',
|
||||
},
|
||||
{
|
||||
key: '003',
|
||||
code: 'temperature',
|
||||
name: '体温',
|
||||
},
|
||||
{
|
||||
key: '012',
|
||||
code: 'inOut',
|
||||
name: '特殊标记',
|
||||
},
|
||||
{
|
||||
key: '013',
|
||||
code: 'refuse',
|
||||
name: '标记内容',
|
||||
},
|
||||
{
|
||||
key: '014',
|
||||
code: 'heartRate',
|
||||
name: '心率',
|
||||
},
|
||||
{
|
||||
key: '015',
|
||||
code: 'lowerTemp',
|
||||
name: '物理降温',
|
||||
},
|
||||
{
|
||||
key: '016',
|
||||
code: 'painScore',
|
||||
name: '疼痛评分',
|
||||
},
|
||||
];
|
||||
|
||||
export const HEAD_HEIGHT = 120; // 头部文字预留位置
|
||||
export const LINE_HEIGHT = 20; // 一行的行高
|
||||
export const textLeftMargin = 4; // 文字左边边距
|
||||
export const TEXT_MARGIN_BOTTOM = 6; // 文字向上偏移量
|
||||
export const symbolArrowHeight = 20;
|
||||
35
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/dataProcess.js
Executable file
@@ -0,0 +1,35 @@
|
||||
// 用于处理数据相关函数
|
||||
// {
|
||||
// date: "2022-03-02"
|
||||
// index: 0
|
||||
// value: 36
|
||||
// }
|
||||
export function getMaxList({ list = [], max = 0, min = 0, maxDefault = 0, minDefault = 0 } = {}) {
|
||||
return list.map((item) => {
|
||||
if ((item.value > max || item.value < min) && item.value !== null) {
|
||||
const ismax = item.value > max;
|
||||
return {
|
||||
...item,
|
||||
value: ismax ? maxDefault : minDefault,
|
||||
sourceValue: item.value,
|
||||
ismax: ismax,
|
||||
max,
|
||||
min,
|
||||
};
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function levelingData({ list = [], maxDefault = 0, minDefault = 0 }) {
|
||||
return list.map((item) => {
|
||||
if (item.value === null) return item;
|
||||
if (item.value > maxDefault) {
|
||||
item.value = maxDefault;
|
||||
} else if (item.value < minDefault) {
|
||||
item.value = minDefault;
|
||||
}
|
||||
return item;
|
||||
});
|
||||
}
|
||||
3279
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/datas.js
Executable file
683
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/drawfn.js
Executable file
@@ -0,0 +1,683 @@
|
||||
// 数据处理
|
||||
import * as d3 from 'd3';
|
||||
import {symbol} from 'd3-shape';
|
||||
import {
|
||||
degreesOnline,
|
||||
disconnectEvents,
|
||||
getBrokenLine,
|
||||
getHeartRate,
|
||||
getType,
|
||||
getTypeAnimalHeat,
|
||||
getTypeData,
|
||||
getTypeDatas,
|
||||
postpartumDays,
|
||||
setMergeTag,
|
||||
} from './utils';
|
||||
import {BOTTOM_KEYS, HEAD_HEIGHT, LINE_HEIGHT, symbolArrowHeight, textLeftMargin, TOP_KEYS,} from './config';
|
||||
|
||||
export const iconDrawObj = {
|
||||
// 绘制圆形图标
|
||||
getDrawRoundIcon: ({ content, data, x, y, fill = 'blue', stroke = 'blue', r = 5 }) => {
|
||||
// 增加icon 红色空心
|
||||
content
|
||||
.append('g')
|
||||
.attr('fill', fill)
|
||||
.attr('stroke', stroke)
|
||||
.attr('stroke-width', 1)
|
||||
.selectAll('circle')
|
||||
.data(data)
|
||||
.join('circle')
|
||||
.attr('transform', (i) => {
|
||||
const yVal = y(i) || 0;
|
||||
if (!yVal) {
|
||||
return 'scale(0)';
|
||||
}
|
||||
return '';
|
||||
})
|
||||
.attr('cx', x)
|
||||
.attr('cy', y)
|
||||
.attr('r', (i) => {
|
||||
if (y(i)) {
|
||||
return r;
|
||||
}
|
||||
return 0;
|
||||
});
|
||||
},
|
||||
// 绘制圆形点图标
|
||||
getDrawRoundDotIcon: ({
|
||||
content,
|
||||
data,
|
||||
x,
|
||||
y,
|
||||
fill = 'white',
|
||||
stroke = 'blue',
|
||||
deepFill = 'blue',
|
||||
r = 6,
|
||||
}) => {
|
||||
content
|
||||
.append('g')
|
||||
.attr('fill', fill)
|
||||
.attr('stroke', stroke)
|
||||
.attr('stroke-width', 1)
|
||||
.selectAll('circle')
|
||||
.data(data)
|
||||
.join('circle')
|
||||
.attr('transform', (i) => {
|
||||
const yVal = y(i) || 0;
|
||||
if (!yVal) {
|
||||
return 'scale(0)';
|
||||
}
|
||||
return '';
|
||||
})
|
||||
.attr('cx', x)
|
||||
.attr('cy', y)
|
||||
.attr('r', r)
|
||||
.clone()
|
||||
.attr('cx', x)
|
||||
.attr('cy', y)
|
||||
.attr('r', 1)
|
||||
.attr('fill', deepFill);
|
||||
},
|
||||
// 绘制x
|
||||
getDrawXIcon: ({ content, data, x, y, fill = 'blue', stroke = 'blue' }) => {
|
||||
content
|
||||
.append('g')
|
||||
.attr('fill', fill)
|
||||
.attr('stroke', stroke)
|
||||
.attr('stroke-width', 1)
|
||||
.selectAll('line')
|
||||
.data(data)
|
||||
.join('line')
|
||||
.attr('transform', (i) => {
|
||||
let yVal = y;
|
||||
if (typeof y === 'function') {
|
||||
yVal = y(i) || 0;
|
||||
}
|
||||
if (!yVal) {
|
||||
return 'scale(0)';
|
||||
}
|
||||
return '';
|
||||
})
|
||||
.attr('x1', function (d) {
|
||||
return x(d) - 4;
|
||||
})
|
||||
.attr('y1', function (d) {
|
||||
return y(d) - 4;
|
||||
})
|
||||
.attr('x2', function (d) {
|
||||
return x(d) + 4;
|
||||
})
|
||||
.attr('y2', function (d) {
|
||||
return y(d) + 4;
|
||||
})
|
||||
.clone()
|
||||
.attr('x1', function (d) {
|
||||
return x(d) + 4;
|
||||
})
|
||||
.attr('y1', function (d) {
|
||||
return y(d) - 4;
|
||||
})
|
||||
.attr('x2', function (d) {
|
||||
return x(d) - 4;
|
||||
})
|
||||
.attr('y2', function (d) {
|
||||
return y(d) + 4;
|
||||
});
|
||||
},
|
||||
// 绘制三角形
|
||||
drawThreeIcon: ({ content, data, x, y, fill = 'blue', stroke = 'blue', riangle = 48 }) => {
|
||||
// 蓝色三角形
|
||||
content
|
||||
.append('g')
|
||||
.attr('class', 'ceshiname')
|
||||
.selectAll('g')
|
||||
.data(data)
|
||||
.join('g')
|
||||
.attr('transform', (i) => {
|
||||
const yVal = y(i) || 0;
|
||||
if (!yVal) {
|
||||
return 'scale(0)';
|
||||
}
|
||||
return `translate(${x(i)},${yVal})`;
|
||||
})
|
||||
.append('path')
|
||||
.call((path) => {
|
||||
const symbolThree = symbol();
|
||||
const symbolIndex = 5;
|
||||
symbolThree.type(d3.symbols[symbolIndex]);
|
||||
path.attr('d', symbolThree.size(riangle)).attr('fill', fill).attr('stroke', stroke);
|
||||
// .transition()
|
||||
// .duration(1500)
|
||||
// .attr('d', symbolThree.size(48))
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export function getG(svg, viewConfig) {
|
||||
return svg
|
||||
.append('g')
|
||||
.attr('transform', `translate(${viewConfig.marginLeft},${viewConfig.marginTop + HEAD_HEIGHT})`);
|
||||
}
|
||||
|
||||
// 设置数据
|
||||
export function getData(allData) {
|
||||
const rowsData = allData.rows; // allData, '【全部数据】'
|
||||
const infoData = allData.grParamBOS;
|
||||
const typesData = getTypeDatas(allData.types, allData.grParamBOS.beginDate);
|
||||
const selectOp = allData.selectOp;
|
||||
const symbolTextArr = getTypeData('018', rowsData, false, allData.grParamBOS.beginDate); // 【特殊标记】
|
||||
const symbolGoUp = getType('003', rowsData, allData.grParamBOS.beginDate); // 不升
|
||||
// 体温单特殊数据
|
||||
const dicData = JSON.parse(window.localStorage.getItem('transDictCode'));
|
||||
const signsManagementList = dicData
|
||||
? dicData
|
||||
.filter((item) => item.name === '95')[0]
|
||||
.concept.sort((a, b) => {
|
||||
return a.displayOrder - b.displayOrder;
|
||||
})
|
||||
: [];
|
||||
const otherArr = [];
|
||||
if (signsManagementList.length > 0) {
|
||||
for (let j = 0; j < signsManagementList.length; j++) {
|
||||
if ((signsManagementList[j].code !== '9502') & (signsManagementList[j].code !== '9503')) {
|
||||
const otherArrItem = getTypeData(
|
||||
signsManagementList[j].code,
|
||||
rowsData,
|
||||
false,
|
||||
allData.grParamBOS.beginDate
|
||||
);
|
||||
otherArr.push(otherArrItem);
|
||||
}
|
||||
}
|
||||
}
|
||||
const surgeryNumDays = allData.types.filter((item) => item.typeCode === '031');
|
||||
const surgeryArr = getTypeData('9502', rowsData, false, allData.grParamBOS.beginDate); // '【手术】'
|
||||
const minSurgeryArr = getTypeData('9503', rowsData, false, allData.grParamBOS.beginDate); // '【小手术】'
|
||||
const temArr = getTypeData('00301', rowsData, false, allData.grParamBOS.beginDate); // '【体温拒测等】'
|
||||
// const symbolGoUp = getType('003', rowsData, allData.grParamBOS.beginDate) // symbolGoUp, '不升'
|
||||
// 35度线上的内容
|
||||
const symbolDegreesEvents = degreesOnline(symbolTextArr, selectOp, 0);
|
||||
const symbolDegreesOnline = disconnectEvents(symbolTextArr, selectOp, 'isBeforeAfter', 0);
|
||||
// 40~42线上的内容
|
||||
const symbolTopOnline = degreesOnline(symbolTextArr, selectOp, 1);
|
||||
const symbolTopDegreesOnline = disconnectEvents(symbolTextArr, selectOp, 'isBeforeAfter', 1);
|
||||
const symbolContent = getTypeData('013', rowsData, false, allData.grParamBOS.beginDate); // symbolContent, '【标记内容】'
|
||||
const mergeTag = setMergeTag(symbolTopOnline, symbolContent); // mergeTag, '【合并标记,标记内容】'
|
||||
// 产后日数
|
||||
infoData.postpartum = postpartumDays('031', typesData); // infoData, '产后日数'
|
||||
// 写死的先
|
||||
infoData.dateClosed = {
|
||||
stopTime: true, // 控制结束日期
|
||||
stopNumber: true, // 控制住院天数
|
||||
};
|
||||
// 折线
|
||||
const brokenLineData = getBrokenLine(
|
||||
'003',
|
||||
rowsData,
|
||||
symbolDegreesOnline,
|
||||
symbolGoUp,
|
||||
symbolTopDegreesOnline,
|
||||
allData.grParamBOS.beginDate
|
||||
);
|
||||
// 模拟数据 体温
|
||||
const datasetAnus = getTypeAnimalHeat('003', rowsData, '1', allData.grParamBOS.beginDate); // datasetAnus, '腋温【x】'
|
||||
const bodyData = getTypeAnimalHeat('003', rowsData, '2', allData.grParamBOS.beginDate); // dbodyData, '口温'
|
||||
// const datasetHeartrate = getTypeAnimalHeat('003', rowsData)
|
||||
const datasetHeartrate = getTypeAnimalHeat('003', rowsData, '3', allData.grParamBOS.beginDate); // datasetHeartrate, '肛温【红空圆】'
|
||||
const earCool = getTypeAnimalHeat('003', rowsData, '4', allData.grParamBOS.beginDate); // earCool, '耳朵温'
|
||||
const painScore = getHeartRate(
|
||||
// painScore, '疼痛'
|
||||
'016',
|
||||
rowsData,
|
||||
symbolDegreesOnline,
|
||||
symbolTopDegreesOnline,
|
||||
true,
|
||||
allData.grParamBOS.beginDate
|
||||
);
|
||||
const allTemperatureData = [bodyData, datasetAnus, datasetHeartrate, earCool]; // 所有的温度记录
|
||||
// '脉搏【红实圆】'
|
||||
const datasetPulse = getHeartRate(
|
||||
'002',
|
||||
rowsData,
|
||||
symbolDegreesOnline,
|
||||
symbolTopDegreesOnline,
|
||||
true,
|
||||
allData.grParamBOS.beginDate
|
||||
);
|
||||
// 心率【空心】
|
||||
const datasetHeartRate = getHeartRate(
|
||||
'014',
|
||||
rowsData,
|
||||
symbolDegreesOnline,
|
||||
symbolTopDegreesOnline,
|
||||
true,
|
||||
allData.grParamBOS.beginDate
|
||||
);
|
||||
// const allTemperatureData = getDrawData('003', rowsData, '1', allData.grParamBOS.beginDate) // datasetAnus, '腋温【x】'
|
||||
// const dataCool = getDrawCoolData('015', rowsData, true, allData.grParamBOS.beginDate) // dataCool, '【物理降温】'
|
||||
const dataCool = getTypeData('015', rowsData, true, allData.grParamBOS.beginDate); // 【物理降温】
|
||||
// 呼吸【黑实圆】
|
||||
const datasetPain = getTypeData('001', rowsData, false, allData.grParamBOS.beginDate); // 呼吸
|
||||
|
||||
const title = infoData.title;
|
||||
return {
|
||||
title,
|
||||
datasetHeartRate,
|
||||
bodyData,
|
||||
datasetAnus,
|
||||
datasetHeartrate,
|
||||
earCool,
|
||||
painScore,
|
||||
allTemperatureData,
|
||||
datasetPulse,
|
||||
symbolContent,
|
||||
symbolTextArr,
|
||||
mergeTag,
|
||||
dataCool,
|
||||
datasetPain,
|
||||
typesData,
|
||||
infoData,
|
||||
rowsData,
|
||||
symbolDegreesOnline,
|
||||
symbolGoUp,
|
||||
symbolDegreesEvents,
|
||||
brokenLineData,
|
||||
otherArr,
|
||||
temArr,
|
||||
surgeryArr,
|
||||
minSurgeryArr,
|
||||
surgeryNumDays,
|
||||
};
|
||||
}
|
||||
|
||||
export function drawTopMask(svg, viewConfig) {
|
||||
// ===================== //
|
||||
// 遮罩层挡住超出的折线 //
|
||||
// =====================//
|
||||
svg
|
||||
.append('g')
|
||||
.attr('transform', `translate(${viewConfig.marginLeft},${HEAD_HEIGHT - LINE_HEIGHT})`)
|
||||
.append('rect')
|
||||
.attr('class', 'mask-rect')
|
||||
.attr('x', 0)
|
||||
.attr('y', -100)
|
||||
.attr('width', viewConfig.contentWidth)
|
||||
// 2.5是上下的一个区域 1 是原来有 2的宽度
|
||||
.attr('height', LINE_HEIGHT * (TOP_KEYS.length + 7.5) - 1)
|
||||
.attr('stroke', viewConfig.stroke)
|
||||
.attr('fill', '#fff')
|
||||
.attr('style', 'stroke-width: 0');
|
||||
|
||||
drawTopVerticalLine(svg, viewConfig);
|
||||
}
|
||||
|
||||
export function drawTopVerticalLine(svg, viewConfig) {
|
||||
// 补上下竖线
|
||||
let start = viewConfig.step;
|
||||
const lineG = getG(svg, viewConfig).append('g').attr('class', 'maskline-top');
|
||||
while (start < viewConfig.contentWidth) {
|
||||
// const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth
|
||||
lineG
|
||||
.append('line')
|
||||
.attr('fill', 'stroke')
|
||||
.attr('x1', start)
|
||||
.attr('y1', 0)
|
||||
.attr('y2', (TOP_KEYS.length + 1) * LINE_HEIGHT)
|
||||
.attr('x2', start)
|
||||
.attr('stroke', start > viewConfig.step ? '#B22222' : viewConfig.stroke)
|
||||
// .attr('stroke', isLastLine ? 'black' : (start > viewConfig.step ? '#B22222' : viewConfig.stroke))
|
||||
.attr('stroke-width', 4); // 设置线条宽度为2
|
||||
start = start + viewConfig.step;
|
||||
}
|
||||
}
|
||||
|
||||
export function drawBottomMask(svg, viewConfig) {
|
||||
const g = getG(svg, viewConfig);
|
||||
// 遮罩层挡住超出的折线
|
||||
g.append('rect')
|
||||
.attr('class', 'mask-rect')
|
||||
.attr('x', 4)
|
||||
.attr('y', viewConfig.bottomKeysPosStart + viewConfig.micoStep * 2)
|
||||
.attr('width', viewConfig.contentWidth)
|
||||
.attr('height', LINE_HEIGHT * (BOTTOM_KEYS.length + 5))
|
||||
.attr('stroke', viewConfig.stroke)
|
||||
.attr('fill', '#ffffff')
|
||||
.attr('style', 'stroke-width: 0');
|
||||
drawBottomMaskLine(svg, viewConfig);
|
||||
}
|
||||
|
||||
function drawBottomMaskLine(svg, viewConfig) {
|
||||
// 补上下竖线
|
||||
let start = viewConfig.step;
|
||||
const lineG = getG(svg, viewConfig).append('g').attr('class', 'maskline');
|
||||
while (start < viewConfig.contentWidth) {
|
||||
// const isLastLine = (start + viewConfig.step) >= viewConfig.contentWidth;
|
||||
lineG
|
||||
.append('line')
|
||||
.attr('fill', 'stroke')
|
||||
.attr('x1', start)
|
||||
.attr('y1', viewConfig.bottomKeysPosStart)
|
||||
.attr('y2', viewConfig.tableHeight)
|
||||
.attr('x2', start)
|
||||
.attr('stroke', start > viewConfig.step ? '#B22222' : viewConfig.stroke)
|
||||
//.attr('stroke', isLastLine ? 'black' : (start > viewConfig.step ? '#B22222' : viewConfig.stroke))
|
||||
.attr('stroke-width', 4); // 设置线条宽度为2
|
||||
start = start + viewConfig.step;
|
||||
}
|
||||
}
|
||||
|
||||
// 绘制特殊事件文字 --- 有时间
|
||||
export function drawSpecialText(svg, viewConfig, textData) {
|
||||
const g = getG(svg, viewConfig);
|
||||
g.append('g')
|
||||
.selectAll('text')
|
||||
.data(textData)
|
||||
.join('text')
|
||||
.attr('style', 'font-size:14px; fill: red;')
|
||||
.attr('class', 'mytext')
|
||||
.html((d, i) => {
|
||||
const t = (d?.value || '').split(',');
|
||||
let time = '';
|
||||
if (t.length > 1) {
|
||||
time =
|
||||
t[0] + '于' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分';
|
||||
// time = t[0] + '㇑' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分'
|
||||
}
|
||||
const texts = time.split('');
|
||||
return texts
|
||||
.map((text, i) => {
|
||||
return `<tspan dx="${
|
||||
i === 1 ? -14 : i === 0 ? 0 : Number(text) ? -8 : -14
|
||||
}" dy="${20}">${text}</tspan>`;
|
||||
})
|
||||
.join('');
|
||||
})
|
||||
.attr('x', (d, i) => {
|
||||
return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin;
|
||||
})
|
||||
.attr('y', () => {
|
||||
return viewConfig.topKeysPos - textLeftMargin;
|
||||
});
|
||||
}
|
||||
// 绘制特殊事件文字 --- 大手术小手术
|
||||
export function drawSurgery(svg, viewConfig, textData) {
|
||||
const g = getG(svg, viewConfig);
|
||||
const textDatas = [];
|
||||
if (textData.length > 0) {
|
||||
for (let j = 0; j < textData.length; j++) {
|
||||
let item = {};
|
||||
if (textData[j].value) {
|
||||
item = {
|
||||
index: textData[j].index,
|
||||
value: textData[j].value.split(',')[0],
|
||||
date: textData[j].date,
|
||||
};
|
||||
} else {
|
||||
item = textData[j];
|
||||
}
|
||||
textDatas.push(item);
|
||||
}
|
||||
}
|
||||
g.append('g')
|
||||
.selectAll('text')
|
||||
.data(textDatas)
|
||||
.join('text')
|
||||
.attr('style', 'font-size:15px; fill: red;')
|
||||
.attr('class', 'mytext')
|
||||
.html((d, i) => {
|
||||
const texts = (d?.value || '').split('');
|
||||
return texts
|
||||
.map((text, i) => {
|
||||
return `<tspan dx="${
|
||||
i === 1 ? -15 : i === 0 ? 0 : Number(text) ? -8 : -15
|
||||
}" dy="${20}">${text}</tspan>`;
|
||||
})
|
||||
.join('');
|
||||
})
|
||||
.attr('x', (d, i) => {
|
||||
return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin - 2;
|
||||
})
|
||||
.attr('y', () => {
|
||||
return viewConfig.topKeysPos - textLeftMargin;
|
||||
});
|
||||
}
|
||||
// 绘制特殊事件文字 --- 无时间
|
||||
export function drawSpecialNoTimeText(svg, viewConfig, textData) {
|
||||
const g = getG(svg, viewConfig);
|
||||
const textDatas = [];
|
||||
if (textData.length > 0) {
|
||||
for (let j = 0; j < textData.length; j++) {
|
||||
let item = {};
|
||||
if (textData[j].value) {
|
||||
item = {
|
||||
index: textData[j].index,
|
||||
value: textData[j].value.split(',')[0],
|
||||
date: textData[j].date,
|
||||
};
|
||||
} else {
|
||||
item = textData[j];
|
||||
}
|
||||
textDatas.push(item);
|
||||
}
|
||||
}
|
||||
g.append('g')
|
||||
.selectAll('text')
|
||||
.data(textDatas)
|
||||
.join('text')
|
||||
.attr('style', 'font-size:15px; fill: red;')
|
||||
.attr('class', 'mytext')
|
||||
.html((d, i) => {
|
||||
const texts = (d?.value || '').split('');
|
||||
// let time = ''
|
||||
// if (t.length > 1) {
|
||||
// time = t[0] + '㇑' + transNum(t[1].split(':')[0]) + '时' + transNum(t[1].split(':')[1]) + '分'
|
||||
// }
|
||||
// const texts = time.split('')
|
||||
return texts
|
||||
.map((text, i) => {
|
||||
return `<tspan dx="${i === 1 ? -15 : i === 0 ? 0 : Number(text) ? -8 : -15}" dy="${
|
||||
i === 0 ? 20 : 80
|
||||
}">${text}</tspan>`;
|
||||
})
|
||||
.join('');
|
||||
})
|
||||
.attr('x', (d, i) => {
|
||||
return viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin - 2;
|
||||
})
|
||||
.attr('y', () => {
|
||||
return viewConfig.topKeysPos - textLeftMargin;
|
||||
});
|
||||
}
|
||||
|
||||
// 数字转换成文字
|
||||
function transNum(num) {
|
||||
const arr1 = ['', '十'];
|
||||
const arr2 = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'];
|
||||
const sw = num.split('')[0];
|
||||
const gw = num.split('')[1];
|
||||
const str1 = sw > 1 ? arr2[sw] + '十' : arr1[sw];
|
||||
let strNum = str1 + arr2[gw];
|
||||
// 若H为十点整小时,则把零去掉,若m为十分,则去掉零
|
||||
if (strNum.indexOf('十') > 0 || strNum.indexOf('零') === 1) {
|
||||
strNum = strNum.replace('零', '');
|
||||
}
|
||||
return strNum;
|
||||
}
|
||||
|
||||
// 绘制标签文字
|
||||
export function drawTagText(svg, viewConfig, textData) {
|
||||
const g = getG(svg, viewConfig);
|
||||
g.append('g')
|
||||
.selectAll('text')
|
||||
.data(textData)
|
||||
.join('text')
|
||||
.attr('style', 'font-size:14px; fill: black;')
|
||||
.attr('class', 'mytext')
|
||||
.html((d, i) => {
|
||||
const texts = (d?.value || '').split('');
|
||||
return texts
|
||||
.map((text, i) => {
|
||||
return `<tspan dx="${
|
||||
i === 1 ? -14 : i === 0 ? 0 : Number(text) ? -8 : -14
|
||||
}" dy="${20}">${text}</tspan>`;
|
||||
})
|
||||
.join('');
|
||||
})
|
||||
.attr('x', (d, i) => viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin)
|
||||
.attr('y', () => {
|
||||
return viewConfig.topKeysPos - textLeftMargin + 198;
|
||||
});
|
||||
}
|
||||
|
||||
// 绘制特殊事件文字底部
|
||||
export function drawBottomSpecialText(svg, viewConfig, textData) {
|
||||
const g = getG(svg, viewConfig);
|
||||
g.append('g')
|
||||
.selectAll('text')
|
||||
.data(textData)
|
||||
.join('text')
|
||||
.attr('style', 'font-size:14px; fill: blue;')
|
||||
.attr('class', 'mytext')
|
||||
.html((d, i) => {
|
||||
const texts = (d?.value || '').split('');
|
||||
return texts
|
||||
.map((text, i) => {
|
||||
return `<tspan dx="${
|
||||
i === 1 ? -14 : i === 0 ? 0 : Number(text) ? -8 : -14
|
||||
}" dy="${20}">${text}</tspan>`;
|
||||
})
|
||||
.join('');
|
||||
})
|
||||
.attr('x', (d, i) => viewConfig.step + d.index * viewConfig.micoStep + textLeftMargin)
|
||||
.attr('y', (d) => {
|
||||
const texts = (d?.value || '').split('');
|
||||
return viewConfig.bottomKeysPosStart - texts.length * LINE_HEIGHT - 6 - 58;
|
||||
});
|
||||
}
|
||||
|
||||
export function initArrow(svg) {
|
||||
const arrowMarkerRed = svg
|
||||
.append('defs')
|
||||
.append('marker')
|
||||
.attr('id', 'redArrow')
|
||||
.attr('markerUnits', 'strokeWidth')
|
||||
.attr('markerWidth', '12')
|
||||
.attr('markerHeight', '12')
|
||||
.attr('viewBox', '0 0 12 12')
|
||||
.attr('refX', '6')
|
||||
.attr('refY', '6')
|
||||
.attr('orient', 'auto');
|
||||
const arrowPath = 'M2,2 L10,6 L2,10 L6,6 L2,2';
|
||||
arrowMarkerRed.append('path').attr('d', arrowPath).attr('fill', 'red');
|
||||
const arrowMarkerBlue = svg
|
||||
.append('defs')
|
||||
.append('marker')
|
||||
.attr('id', 'blueArrow')
|
||||
.attr('markerUnits', 'strokeWidth')
|
||||
.attr('markerWidth', '12')
|
||||
.attr('markerHeight', '12')
|
||||
.attr('viewBox', '0 0 12 12')
|
||||
.attr('refX', '6')
|
||||
.attr('refY', '6')
|
||||
.attr('orient', 'auto');
|
||||
arrowMarkerBlue.append('path').attr('d', arrowPath).attr('fill', 'blue');
|
||||
}
|
||||
|
||||
export function lineArrow({ svg, viewConfig, scale, data } = {}) {
|
||||
const g = getG(svg, viewConfig);
|
||||
const vaildData = data.filter((item) => item);
|
||||
// {
|
||||
// ...item,
|
||||
// value: ismax ? maxDefault : minDefault,
|
||||
// sourceValue: item,
|
||||
// ismax: ismax ,
|
||||
// max,
|
||||
// min
|
||||
// }
|
||||
// 绘制直线
|
||||
g.selectAll('line')
|
||||
.data(vaildData)
|
||||
.join('line')
|
||||
.attr('x1', (d, i) => {
|
||||
return scale(d.index) + +viewConfig.X_OFFSET;
|
||||
})
|
||||
.attr('y1', (d, i) => {
|
||||
if (d.ismax) {
|
||||
// 顶部箭头
|
||||
return viewConfig.topKeysPos + symbolArrowHeight * 1.5;
|
||||
} else {
|
||||
// 底部箭头
|
||||
return viewConfig.bottomKeysPosStart - symbolArrowHeight * 1.5;
|
||||
}
|
||||
})
|
||||
.attr('x2', (d, i) => {
|
||||
return scale(d.index) + +viewConfig.X_OFFSET;
|
||||
})
|
||||
.attr('y2', (d, i) => {
|
||||
if (d.ismax) {
|
||||
// 顶部箭头
|
||||
return viewConfig.topKeysPos + symbolArrowHeight / 2;
|
||||
} else {
|
||||
// 底部箭头
|
||||
return viewConfig.bottomKeysPosStart - symbolArrowHeight / 2;
|
||||
}
|
||||
})
|
||||
.attr('stroke', (d) => {
|
||||
return d.ismax ? 'red' : 'blue';
|
||||
})
|
||||
.attr('stroke-width', 2)
|
||||
.attr('marker-end', (d, i) => {
|
||||
return d.ismax ? 'url(#redArrow)' : 'url(#blueArrow)';
|
||||
});
|
||||
g.selectAll('text')
|
||||
.data(vaildData)
|
||||
.join('text')
|
||||
.attr('class', 'desctextname')
|
||||
.html((item, i) => {
|
||||
const value = `${item.sourceValue}`.split('');
|
||||
const dotIndex = value.indexOf('.');
|
||||
return value
|
||||
.map((d, index) => {
|
||||
let y;
|
||||
let multiple = index;
|
||||
let addition = 0; // dot height
|
||||
if (item.ismax) {
|
||||
if (index >= dotIndex) {
|
||||
addition = 8;
|
||||
multiple = index - 1;
|
||||
}
|
||||
y =
|
||||
viewConfig.topKeysPos +
|
||||
symbolArrowHeight * 1.5 +
|
||||
(2 + multiple * 1.5) * viewConfig.X_OFFSET +
|
||||
addition;
|
||||
} else {
|
||||
if (index >= dotIndex) {
|
||||
addition = 9;
|
||||
multiple = index - 1;
|
||||
}
|
||||
y =
|
||||
viewConfig.bottomKeysPosStart -
|
||||
(2 + (value.length - multiple) * 1.5) * viewConfig.X_OFFSET +
|
||||
addition;
|
||||
}
|
||||
return `
|
||||
<tspan rotate="90" x="${scale(item.index) + viewConfig.X_OFFSET - 4}"
|
||||
y="${y}">${d}</tspan>`;
|
||||
})
|
||||
.join('');
|
||||
})
|
||||
.attr('x', (item, i) => {
|
||||
return scale(item.index) + viewConfig.X_OFFSET - 4;
|
||||
})
|
||||
.attr('y', (item) => {
|
||||
if (item.ismax) {
|
||||
return viewConfig.topKeysPos + symbolArrowHeight * 1.5 + LINE_HEIGHT / 2;
|
||||
} else {
|
||||
return viewConfig.bottomKeysPosStart - symbolArrowHeight / 2 - LINE_HEIGHT / 2;
|
||||
}
|
||||
})
|
||||
.attr('style', (item) => {
|
||||
return `font-size:14px;fill:${item.ismax ? 'red' : 'blue'};font-weight: bold;`;
|
||||
});
|
||||
}
|
||||
121
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/index.js
Executable file
@@ -0,0 +1,121 @@
|
||||
/*
|
||||
* @Author: 程堡
|
||||
* @Date: 2022-04-01 09:31:59
|
||||
* @LastEditTime: 2022-04-01 09:31:59
|
||||
* @LastEditors: 程堡
|
||||
* @Description: 体温单
|
||||
* @FilePath: src\action\nurseStation\temperatureSheet\index.js
|
||||
*/
|
||||
import Request from '@/axios/index.js';
|
||||
|
||||
const temperaturePath = 'app/temperature';
|
||||
const getTemperaturePath = 'app/temperature/by-encounter-id';
|
||||
const delTemperaturePath = 'app/temperature/retired';
|
||||
// import data from '../temperatureSheet/datas.js';
|
||||
export const API = {
|
||||
/**
|
||||
* @description 查询患者体温单
|
||||
* @param encounterId
|
||||
*/
|
||||
getTemperatures(id) {
|
||||
return Request({
|
||||
url: getTemperaturePath, // hash地址
|
||||
method: 'get', // 提交方法get
|
||||
verification: true, // 是否统一拦截验证
|
||||
untoken: false, // 是否不带token
|
||||
params: {
|
||||
// 参数列表
|
||||
id,
|
||||
},
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @description 创建体温单
|
||||
* @param encounterId
|
||||
*/
|
||||
createTemperature(encounterId, hisNo, clinicCode, recordTime, type, content) {
|
||||
return Request({
|
||||
url: temperaturePath,
|
||||
method: 'post',
|
||||
verification: true,
|
||||
untoken: false,
|
||||
data: {
|
||||
// 参数列表
|
||||
encounterId,
|
||||
hisNo,
|
||||
clinicCode,
|
||||
recordTime,
|
||||
operCode: sessionStorage.getItem('userCode'),
|
||||
operName: sessionStorage.getItem('userName'),
|
||||
type,
|
||||
content,
|
||||
hospitalOrgId: sessionStorage.getItem('hospitalOrgId'),
|
||||
},
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @description 修改体温单
|
||||
* @param encounterId
|
||||
*/
|
||||
updateTemperature(encounterId, hisNo, clinicCode, recordTime, type, content, id) {
|
||||
return Request({
|
||||
url: temperaturePath,
|
||||
method: 'put',
|
||||
verification: true,
|
||||
untoken: false,
|
||||
data: {
|
||||
// 参数列表
|
||||
encounterId,
|
||||
hisNo,
|
||||
clinicCode,
|
||||
recordTime,
|
||||
operCode: sessionStorage.getItem('userCode'),
|
||||
operName: sessionStorage.getItem('userName'),
|
||||
type,
|
||||
content,
|
||||
id,
|
||||
},
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @description 删除记录
|
||||
* @param encounterId
|
||||
*/
|
||||
deleteTemperature(id) {
|
||||
return Request({
|
||||
url: delTemperaturePath,
|
||||
method: 'post',
|
||||
verification: true,
|
||||
untoken: false,
|
||||
data: {
|
||||
// 参数列表
|
||||
id,
|
||||
},
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @description 获取患者时间线
|
||||
* @param EncounterId
|
||||
*/
|
||||
NewSheet(patientInfo) {
|
||||
return {
|
||||
grParamBOS: {
|
||||
age: patientInfo.age,
|
||||
birth: 868723200000,
|
||||
cwh: patientInfo.bedName,
|
||||
cardNo: patientInfo.hisId,
|
||||
hospDate: patientInfo.firstInBedTime.substring(0, 10),
|
||||
inDate: patientInfo.firstInBedTime,
|
||||
inDiagName: patientInfo.diag,
|
||||
name: patientInfo.patientName,
|
||||
deptName: patientInfo.deptName,
|
||||
operaDays: null,
|
||||
outdate: patientInfo.checkOutWardTime,
|
||||
sex: patientInfo.gender.display,
|
||||
},
|
||||
rows: [],
|
||||
types: [],
|
||||
};
|
||||
},
|
||||
};
|
||||
1702
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/line.js
Executable file
296
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/template.js
Executable file
@@ -0,0 +1,296 @@
|
||||
// 医院名称
|
||||
export const HospitalName = '';
|
||||
// 体温单名称
|
||||
export const temperatureName = '体 温 单';
|
||||
// 患者信息显示项目(修改显示顺序及是否显示)
|
||||
export const INFO_KEYS = [
|
||||
{
|
||||
name: '姓名',
|
||||
key: 'name',
|
||||
order: 1,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '性别',
|
||||
key: 'sex',
|
||||
order: 2,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '年龄',
|
||||
key: 'age',
|
||||
order: 3,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '病室',
|
||||
key: 'deptName',
|
||||
order: 4,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '床号',
|
||||
key: 'cwh',
|
||||
order: 5,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '病历号',
|
||||
key: 'hosNum',
|
||||
order: 6,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '入院日期',
|
||||
key: 'hospDate',
|
||||
order: 6,
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
name: '诊断',
|
||||
key: 'inDiagName',
|
||||
order: 8,
|
||||
show: false,
|
||||
},
|
||||
];
|
||||
// 体温单录入项目(修改显示顺序及是否显示)
|
||||
// 新增项目注意 key值、code值唯一性,不要与之前的项目重复
|
||||
export const BOTTOM_KEYS = [
|
||||
{
|
||||
name: '血压(mmHg)',
|
||||
code: 'bloodPressure',
|
||||
key: '008',
|
||||
times: 2,
|
||||
order: 1,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '大\u00A0便\u00A0次\u00A0数',
|
||||
code: 'poop',
|
||||
key: '005',
|
||||
order: 2,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '小\u00A0便\u00A0次\u00A0数',
|
||||
code: 'urine',
|
||||
key: '004',
|
||||
order: 3,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '液体总入量(ml)',
|
||||
code: 'input',
|
||||
key: '006',
|
||||
order: 4,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '其\u00A0\u00A0他(ml)',
|
||||
code: 'output',
|
||||
key: '007',
|
||||
order: 5,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '尿\u00A0\u00A0量(ml)',
|
||||
code: 'urineOutput',
|
||||
key: '011',
|
||||
order: 6,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '体\u00A0\u00A0重(kg)',
|
||||
code: 'weight',
|
||||
key: '009',
|
||||
order: 8,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: '身\u00A0\u00A0高(cm)',
|
||||
code: 'height',
|
||||
key: '030',
|
||||
order: 9,
|
||||
show: true,
|
||||
},
|
||||
{
|
||||
name: 'SPO2',
|
||||
code: 'SPO2',
|
||||
key: '021',
|
||||
times: 2,
|
||||
order: 10,
|
||||
show: false,
|
||||
},
|
||||
{
|
||||
name: '皮\u00A0试\u00A0阳\u00A0性',
|
||||
code: 'allergy',
|
||||
key: '017',
|
||||
order: 11,
|
||||
show: true,
|
||||
lines: 2,
|
||||
},
|
||||
{
|
||||
name: '过\u00A0敏\u00A0试\u00A0验',
|
||||
code: 'allergyTest',
|
||||
key: '020',
|
||||
order: 12,
|
||||
show: false,
|
||||
lines: 2,
|
||||
},
|
||||
{
|
||||
name: '其\u00A0\u00A0他',
|
||||
code: 'other',
|
||||
key: '025',
|
||||
order: 7,
|
||||
show: false,
|
||||
lines: 2,
|
||||
},
|
||||
{
|
||||
name: '',
|
||||
code: 'useless1',
|
||||
key: '100',
|
||||
order: 20,
|
||||
show: true,
|
||||
},
|
||||
];
|
||||
// 是否显示疼痛评分
|
||||
export const showPainFlag = true;
|
||||
|
||||
/** *********** 以上信息是本地化可以修改的部分 **************************/
|
||||
// 获取患者信息显示项目
|
||||
export function getInfoKeys() {
|
||||
return INFO_KEYS.filter((x) => x.show).sort((a, b) => a.order - b.order);
|
||||
}
|
||||
// 获取患者信息显示项目
|
||||
export function getBottomKeys() {
|
||||
return BOTTOM_KEYS.filter((x) => x.show).sort((a, b) => a.order - b.order);
|
||||
}
|
||||
|
||||
export const timeNumber = [2, 6, 10, 14, 18, 22]; // 时间展示
|
||||
export const nightTime = [2, 18, 22]; // 夜间红色高亮时间
|
||||
export const leftTEXT = [
|
||||
['脉搏,(次/分),180', '160', '140', '120', '100', '80', '60', '40'],
|
||||
['体温,(℃), 42', '41', '40', '39', '38', '37', '36', '35'],
|
||||
];
|
||||
|
||||
export const inOutItem = ['入观', '分娩', '手术', '转入', '出观', '死亡'];
|
||||
export const otherItem = ['外出', '请假', '拒测', '离院', '其他'];
|
||||
export const sheetOptions = {
|
||||
locations: [
|
||||
{
|
||||
code: '1',
|
||||
display: '体温',
|
||||
},
|
||||
{
|
||||
code: '2',
|
||||
display: '口温',
|
||||
},
|
||||
{
|
||||
code: '3',
|
||||
display: '肛温',
|
||||
},
|
||||
{
|
||||
code: '4',
|
||||
display: '耳温',
|
||||
},
|
||||
],
|
||||
breath: [
|
||||
{
|
||||
code: '',
|
||||
display: '自主呼吸',
|
||||
},
|
||||
{
|
||||
code: '®',
|
||||
display: '机械通气',
|
||||
},
|
||||
],
|
||||
poop: [
|
||||
{
|
||||
code: '',
|
||||
display: '正常',
|
||||
},
|
||||
{
|
||||
code: '※',
|
||||
display: '失禁',
|
||||
},
|
||||
{
|
||||
code: '☆',
|
||||
display: '人工肛门',
|
||||
},
|
||||
{
|
||||
code: '/E',
|
||||
display: '灌肠',
|
||||
},
|
||||
],
|
||||
pee: [
|
||||
{
|
||||
code: '',
|
||||
display: '正常',
|
||||
},
|
||||
{
|
||||
code: '※',
|
||||
display: '失禁',
|
||||
},
|
||||
{
|
||||
code: 'C+',
|
||||
display: '导尿',
|
||||
},
|
||||
],
|
||||
heart: ['窦性心律', '起搏心律', '房性心律', '异常心律'],
|
||||
weight: ['正常', '卧床', '轮椅', '平车'],
|
||||
};
|
||||
// 此处是显示数字的 要和leftTEXT保持一直
|
||||
export const bodyTemperature = [34, 42];
|
||||
export const starNumEnv = bodyTemperature[0]; // 开始体温
|
||||
export const endNumEnv = bodyTemperature[1]; // 结束体温
|
||||
export const heartRange = [20, 180];
|
||||
|
||||
// 中间图表字段对应
|
||||
export const CHART_KEYS = [
|
||||
{
|
||||
key: '001',
|
||||
code: 'breath',
|
||||
name: '呼吸',
|
||||
},
|
||||
{
|
||||
key: '002',
|
||||
code: 'sphygmus',
|
||||
name: '脉搏',
|
||||
},
|
||||
{
|
||||
key: '003',
|
||||
code: 'temperature',
|
||||
name: '不升',
|
||||
},
|
||||
{
|
||||
key: '012',
|
||||
code: 'inOut',
|
||||
name: '特殊标记',
|
||||
},
|
||||
{
|
||||
key: '013',
|
||||
code: 'refuse',
|
||||
name: '标记内容',
|
||||
},
|
||||
{
|
||||
key: '014',
|
||||
code: 'heartRate',
|
||||
name: '心率',
|
||||
},
|
||||
{
|
||||
key: '015',
|
||||
code: 'lowerTemp',
|
||||
name: '物理降温',
|
||||
},
|
||||
{
|
||||
key: '016',
|
||||
code: 'painScore',
|
||||
name: '疼痛评分',
|
||||
},
|
||||
];
|
||||
|
||||
export const HEAD_HEIGHT = 120; // 头部文字预留位置
|
||||
export const LINE_HEIGHT = 20; // 一行的行高
|
||||
export const textLeftMargin = 4; // 文字左边边距
|
||||
export const TEXT_MARGIN_BOTTOM = 6; // 文字向上偏移量
|
||||
export const symbolArrowHeight = 20;
|
||||
307
openhis-ui-vue3/src/action/nurseStation/temperatureSheet/utils.js
Executable file
@@ -0,0 +1,307 @@
|
||||
import moment from 'moment';
|
||||
|
||||
export function getG(svg, translateX, translateY) {
|
||||
return svg.append('g').attr('transform', `translate(${translateX},${translateY})`);
|
||||
}
|
||||
|
||||
// function generatePointer ({ pathData, type, yScaleInstance }) {
|
||||
// return (event) => {
|
||||
// var index = Math.round(
|
||||
// (d3.pointer(event)[0] - step - textLeftMargin) / xScale.step()
|
||||
// )
|
||||
// var val = xScale.domain()[index]
|
||||
// const i = d3.bisectCenter(d3.range(pathData.length), val)
|
||||
// console.log(val, index, '=====', pathData[i], 'pathData[i]')
|
||||
// const yPos = yScaleInstance(pathData[i].value) + marginTop + HEAD_HEIGHT
|
||||
// console.log(`translate(${xScale(i)},${yPos})`)
|
||||
// tooltip.style('display', null)
|
||||
// tooltip.attr('class', 'myTooltip')
|
||||
// tooltip.attr('transform', `translate(${xScale(i) + micoStep},${yPos})`)
|
||||
|
||||
// const path = tooltip
|
||||
// .selectAll('path')
|
||||
// .data(['', ''])
|
||||
// .join('path')
|
||||
// .attr('fill', 'white')
|
||||
// .attr('stroke', 'black')
|
||||
|
||||
// const text = tooltip
|
||||
// .selectAll('text')
|
||||
// .data(['', ''])
|
||||
// .join('text')
|
||||
// .call((text) =>
|
||||
// text
|
||||
// .selectAll('tspan')
|
||||
// .data([`${type}: ${pathData[i].value}`, `${pathData[i].date}`])
|
||||
// .join('tspan')
|
||||
// .attr('x', 0)
|
||||
// .attr('y', (_, i) => `${i * 1.2}em`)
|
||||
// .attr('font-weight', (_, i) => (i ? null : 'bold'))
|
||||
// .text((d) => d)
|
||||
// )
|
||||
|
||||
// const { x, y, width: w, height: h } = text.node().getBBox()
|
||||
// text.attr('transform', `translate(${-w / 2},${15 - y})`)
|
||||
// path.attr(
|
||||
// 'd',
|
||||
// `M${-w / 2 - 10},5H-5l5,-5l5,5H${w / 2 + 10}v${h + 20}h-${w + 20}z`
|
||||
// )
|
||||
// }
|
||||
// }
|
||||
export function getTypeDatas(typeData, beginDate) {
|
||||
const types = typeData.sort((a, b) => new Date(a.date) - new Date(b.date));
|
||||
return types.map((item) => {
|
||||
return {
|
||||
index: getIndex(beginDate, item.date, '00:00:00') / 6,
|
||||
times: 0,
|
||||
date: item.date,
|
||||
typeCode: item.typeCode,
|
||||
typeValue: item.typeValue || null,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
export function getTypeData(type, allData = [], isNumber = true, beginDate) {
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date,
|
||||
value: (isNumber ? +cur.typeValue : cur.typeValue) || null,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
return getList.sort((a, b) => a.index - b.index);
|
||||
}
|
||||
// 获取不升
|
||||
export function getType(type, allData = [], beginDate) {
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date,
|
||||
value: cur.typeValue !== '' ? (parseFloat(cur.typeValue) <= 35 ? '不升' : null) : null,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
return getList.sort((a, b) => a.index - b.index);
|
||||
}
|
||||
// 合并标记内容
|
||||
export function setMergeTag(ymbolTextArr = [], symbolContent = []) {
|
||||
const arr = [];
|
||||
ymbolTextArr.forEach((item) => {
|
||||
symbolContent.forEach((res) => {
|
||||
if (item.index === res.index) {
|
||||
arr.push({
|
||||
...item,
|
||||
...res,
|
||||
value: (item.value !== null ? item.value : '') + (res.value !== null ? res.value : ''),
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
return arr;
|
||||
}
|
||||
// 筛选手术产后日数
|
||||
export function postpartumDays(type, arr) {
|
||||
return arr.filter((item) => item.typeCode === type).map((i) => i.typeValue);
|
||||
}
|
||||
// 筛选体温
|
||||
export function getTypeAnimalHeat(type, allData = [], code, beginDate) {
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date,
|
||||
value: (+cur.collectionMode === +code ? +cur.typeValue : null) || null,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
return getList.sort((a, b) => a.index - b.index);
|
||||
}
|
||||
// 设置折线
|
||||
export function getBrokenLine(type, allData = [], arr = [], list = [], topList = [], beginDate) {
|
||||
const result = [];
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date,
|
||||
value: +cur.typeValue,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
const _a = arr.filter((item) => item.value);
|
||||
const _b = list.filter((item) => item.value);
|
||||
const _c = topList.filter((item) => item.value);
|
||||
const mergingData = [..._a, ..._b, ..._c, { index: 50 }].sort((a, b) => a.index - b.index);
|
||||
let start = 0;
|
||||
mergingData.forEach((item) => {
|
||||
const _p = getList.sort((a, b) => a.index - b.index).slice(start, item.index);
|
||||
start = item.index + 1;
|
||||
result.push(_p);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
// 处理脉搏心率
|
||||
export function getHeartRate(
|
||||
type,
|
||||
allData = [],
|
||||
arr = [],
|
||||
topList = [],
|
||||
isNumber = true,
|
||||
beginDate
|
||||
) {
|
||||
const result = [];
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date,
|
||||
value: (isNumber ? +cur.typeValue : cur.typeValue) || null,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
const _a = arr.filter((item) => item.value);
|
||||
const _c = topList.filter((item) => item.value);
|
||||
const mergingData = [..._a, ..._c, { index: 50 }].sort((a, b) => a.index - b.index);
|
||||
let start = 0;
|
||||
mergingData.forEach((item) => {
|
||||
const _p = getList.slice(start, item.index).sort((a, b) => {
|
||||
return a.index - b.index;
|
||||
});
|
||||
start = item.index;
|
||||
result.push(_p);
|
||||
});
|
||||
return result;
|
||||
}
|
||||
function getIndex(beginDate, date, time) {
|
||||
if (beginDate === undefined || date === undefined) return;
|
||||
const diffTime =
|
||||
moment(date.substring(0, 10)).diff(moment(beginDate.substring(0, 10))) / 1000 / 3600 / 24;
|
||||
const diffIndex = parseInt(time.substring(0, 2));
|
||||
return diffTime * 6 + Math.floor(diffIndex / 4);
|
||||
}
|
||||
// 筛选35和40~42数据
|
||||
export function degreesOnline(allData, data, type) {
|
||||
const arr = allData.map((item, index) => {
|
||||
const cur = data?.find((res) => item.value === res.name && +res.isShowPlace === type) || null;
|
||||
return {
|
||||
index: index,
|
||||
date: item.date,
|
||||
value: cur?.name || null,
|
||||
};
|
||||
});
|
||||
return arr;
|
||||
}
|
||||
// 35或42上断开的事件
|
||||
export function disconnectEvents(allData, data, code, type) {
|
||||
const arr = allData.map((item, index) => {
|
||||
const cur =
|
||||
data?.find(
|
||||
(res) => item.value === res.name && +res.isShowPlace === type && +res[code] === 1
|
||||
) || null;
|
||||
return {
|
||||
index: index,
|
||||
date: item.date,
|
||||
value: cur?.name || null,
|
||||
};
|
||||
});
|
||||
return arr;
|
||||
}
|
||||
|
||||
export function getDrawCoolData(type, allData = [], isNumber = true, beginDate) {
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date + cur.times,
|
||||
value: (isNumber ? +cur.typeValue : cur.typeValue) || null,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
return getList.sort((a, b) => a.index - b.index);
|
||||
}
|
||||
// 筛选降温getDrawData
|
||||
export function getDrawData(type, allData = [], code, beginDate) {
|
||||
const getList = allData
|
||||
.map((rowBOSItem, index) => {
|
||||
const rowBOS = rowBOSItem.rowBOS;
|
||||
const cur =
|
||||
rowBOS.find((item) => {
|
||||
return item.typeCode === type;
|
||||
}) || {};
|
||||
return {
|
||||
index: getIndex(beginDate, cur.date, cur.times),
|
||||
date: cur.date + cur.times,
|
||||
value: (+cur.collectionMode === +code ? +cur.typeValue : null) || null,
|
||||
};
|
||||
})
|
||||
.map((item) => {
|
||||
if (item.value) {
|
||||
// item.value = NaN
|
||||
}
|
||||
return item;
|
||||
});
|
||||
return getList.sort((a, b) => a.index - b.index);
|
||||
}
|
||||
105
openhis-ui-vue3/src/api/administration/practitionerPatient.js
Executable file
@@ -0,0 +1,105 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 查询医生患者关系列表
|
||||
*/
|
||||
export function listPractitionerPatient(query) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询医生患者关系详细
|
||||
*/
|
||||
export function getPractitionerPatient(id) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取医生的所有有效患者
|
||||
*/
|
||||
export function getPatientsByPractitioner(practitionerId) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/practitioner/' + practitionerId + '/patients',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取患者的所有有效医生
|
||||
*/
|
||||
export function getPractitionersByPatient(patientId) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/patient/' + patientId + '/practitioners',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增医生患者关系
|
||||
*/
|
||||
export function addPractitionerPatient(data) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改医生患者关系
|
||||
*/
|
||||
export function updatePractitionerPatient(data) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 终止医生患者关系
|
||||
*/
|
||||
export function terminatePractitionerPatient(id) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/terminate/' + id,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除医生患者关系
|
||||
*/
|
||||
export function delPractitionerPatient(id) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除医生患者关系
|
||||
*/
|
||||
export function delPractitionerPatientBatch(ids) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/' + ids,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量创建医生患者关系
|
||||
*/
|
||||
export function batchAddPractitionerPatient(data) {
|
||||
return request({
|
||||
url: '/administration/practitioner-patient/batch',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
25
openhis-ui-vue3/src/api/appoinmentmanage/appointmentConfig.js
Executable file
@@ -0,0 +1,25 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 获取预约配置
|
||||
* @returns
|
||||
*/
|
||||
export function getAppointmentConfig() {
|
||||
return request({
|
||||
url: '/dept/config',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存预约配置
|
||||
* @param {Object} data - 预约配置数据
|
||||
* @returns
|
||||
*/
|
||||
export function saveAppointmentConfig(data) {
|
||||
return request({
|
||||
url: '/dept/config',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
66
openhis-ui-vue3/src/api/appoinmentmanage/clinicRoom.js
Executable file
@@ -0,0 +1,66 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询诊室列表(分页)
|
||||
export function getClinicRoomList(query) {
|
||||
return request({
|
||||
url: '/appoinment/clinic-room/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询诊室详情
|
||||
export function getClinicRoomDetail(id) {
|
||||
return request({
|
||||
url: '/appoinment/clinic-room/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增诊室
|
||||
export function addClinicRoom(data) {
|
||||
return request({
|
||||
url: '/appoinment/clinic-room',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑诊室
|
||||
export function updateClinicRoom(data) {
|
||||
return request({
|
||||
url: '/appoinment/clinic-room',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除诊室
|
||||
export function deleteClinicRoom(id) {
|
||||
return request({
|
||||
url: '/appoinment/clinic-room/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取科室列表(用于下拉选择)
|
||||
export function getDepartmentList() {
|
||||
return request({
|
||||
url: '/app-common/department-list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取租户列表(用于下拉选择)
|
||||
export function getTenantList() {
|
||||
return request({
|
||||
url: '/system/tenant/page',
|
||||
method: 'get',
|
||||
params: {
|
||||
pageNum: 1,
|
||||
pageSize: 1000
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
36
openhis-ui-vue3/src/api/appoinmentmanage/dept.js
Executable file
@@ -0,0 +1,36 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询科室列表
|
||||
export function listDept(query) {
|
||||
return request({
|
||||
url: '/dept/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取挂号科室列表(与排班管理一致的数据源)
|
||||
export function listRegisterOrganizations(query) {
|
||||
return request({
|
||||
url: '/base-data-manage/organization/register-organizations',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询科室详情
|
||||
export function getDept(deptId) {
|
||||
return request({
|
||||
url: '/dept/' + deptId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 搜索科室列表
|
||||
export function searchDept(query) {
|
||||
return request({
|
||||
url: '/dept/search',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
78
openhis-ui-vue3/src/api/appoinmentmanage/deptappthoursManage.js
Executable file
@@ -0,0 +1,78 @@
|
||||
import request from '@/utils/request'
|
||||
import { STATUS } from '@/utils/medicalConstants'
|
||||
|
||||
export function getDeptAppthoursList(query) {
|
||||
return request({
|
||||
url: '/appoinment/dept-appthours/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getDeptAppthoursDetail(id) {
|
||||
return request({
|
||||
url: '/appoinment/dept-appthours/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function addDeptAppthours(data) {
|
||||
return request({
|
||||
url: '/appoinment/dept-appthours',
|
||||
method: 'post',
|
||||
data: {
|
||||
institution: data.institution,
|
||||
department: data.department,
|
||||
morningStart: data.morningStart,
|
||||
morningEnd: data.morningEnd,
|
||||
afternoonStart: data.afternoonStart,
|
||||
afternoonEnd: data.afternoonEnd,
|
||||
quota: data.quota,
|
||||
operator: data.operator
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function updateDeptAppthours(data) {
|
||||
return request({
|
||||
url: '/appoinment/dept-appthours',
|
||||
method: 'put',
|
||||
data: {
|
||||
id: data.id,
|
||||
institution: data.institution,
|
||||
department: data.department,
|
||||
morningStart: data.morningStart,
|
||||
morningEnd: data.morningEnd,
|
||||
afternoonStart: data.afternoonStart,
|
||||
afternoonEnd: data.afternoonEnd,
|
||||
quota: data.quota,
|
||||
operator: data.operator
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteDeptAppthours(id) {
|
||||
return request({
|
||||
url: '/appoinment/dept-appthours/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
export function getDepartmentList() {
|
||||
return request({
|
||||
url: '/app-common/department-list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getTenantList() {
|
||||
return request({
|
||||
url: '/system/tenant/page',
|
||||
method: 'get',
|
||||
params: {
|
||||
pageNum: 1,
|
||||
pageSize: 1000,
|
||||
status: STATUS.NORMAL // 只获取正常/启用的机构
|
||||
}
|
||||
})
|
||||
}
|
||||
14
openhis-ui-vue3/src/api/appoinmentmanage/scheduleCalendar.js
Executable file
@@ -0,0 +1,14 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 查询号源池列表
|
||||
* @param {Object} query - 查询参数
|
||||
* @returns {Promise}
|
||||
*/
|
||||
export function getSchedulePoolList(query) {
|
||||
return request({
|
||||
url: '/schedule-pool/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
66
openhis-ui-vue3/src/api/appoinmentmanage/ticket.js
Executable file
@@ -0,0 +1,66 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询号源列表
|
||||
export function listTicket(query) {
|
||||
return request({
|
||||
url: '/appointment/ticket/list',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询医生余号汇总(基于号源池,不受分页影响)
|
||||
export function listDoctorSummary(query) {
|
||||
return request({
|
||||
url: '/appointment/ticket/doctorSummary',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 预约号源
|
||||
export function bookTicket(data) {
|
||||
return request({
|
||||
url: '/appointment/ticket/book',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 取消预约
|
||||
export function cancelTicket(slotId) {
|
||||
return request({
|
||||
url: '/appointment/ticket/cancel',
|
||||
method: 'post',
|
||||
params: { slotId }
|
||||
})
|
||||
}
|
||||
|
||||
// 取号
|
||||
export function checkInTicket(slotId) {
|
||||
return request({
|
||||
url: '/appointment/ticket/checkin',
|
||||
method: 'post',
|
||||
params: { slotId }
|
||||
})
|
||||
}
|
||||
|
||||
// 停诊
|
||||
export function cancelConsultation(slotId) {
|
||||
return request({
|
||||
url: '/appointment/ticket/cancelConsultation',
|
||||
method: 'post',
|
||||
params: { slotId }
|
||||
})
|
||||
}
|
||||
|
||||
// 查询所有号源(用于测试)
|
||||
export function listAllTickets() {
|
||||
return request({
|
||||
url: '/appointment/ticket/listAll',
|
||||
method: 'get',
|
||||
headers: {
|
||||
isToken: false
|
||||
}
|
||||
})
|
||||
}
|
||||
60
openhis-ui-vue3/src/api/appointmentmanage/doctorSchedule.js
Executable file
@@ -0,0 +1,60 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取今日医生排班列表
|
||||
export function getTodayDoctorScheduleList() {
|
||||
return request({
|
||||
url: '/doctor-schedule/today',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取当前登录医生今日排班列表
|
||||
export function getTodayMySchedule() {
|
||||
return request({
|
||||
url: '/doctor-schedule/today-my-schedule',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取医生排班列表
|
||||
export function getDoctorScheduleList() {
|
||||
return request({
|
||||
url: '/appointment/doctor-schedule/list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 添加医生排班
|
||||
export function addDoctorSchedule(data) {
|
||||
return request({
|
||||
url: '/appointment/doctor-schedule',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 添加医生排班(带具体日期)
|
||||
export function addDoctorScheduleWithDate(data) {
|
||||
return request({
|
||||
url: '/appointment/doctor-schedule/add-with-date',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 更新医生排班
|
||||
export function updateDoctorSchedule(data) {
|
||||
return request({
|
||||
url: '/appointment/doctor-schedule',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除医生排班
|
||||
export function deleteDoctorSchedule(id) {
|
||||
return request({
|
||||
url: '/appointment/doctor-schedule/delete/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
57
openhis-ui-vue3/src/api/cardRenewal/api.js
Executable file
@@ -0,0 +1,57 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 查询患者列表
|
||||
* 完全复用门诊挂号查询患者的逻辑和API
|
||||
* @param {Object} query - 查询参数
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function getPatientList(query) {
|
||||
// 直接复用门诊挂号模块完全相同的实现方式
|
||||
// 不做额外的参数处理,直接将query传递给后端
|
||||
return request({
|
||||
url: '/charge-manage/register/patient-metadata',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 更新患者换卡信息
|
||||
* @param {Object} params - 换卡参数
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export const renewPatientCard = (params) => {
|
||||
return request({
|
||||
url: '/cardRenewal/card/renewal',
|
||||
method: 'post',
|
||||
data: params
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 获取患者详情信息
|
||||
* @param {string} patientId - 患者ID
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export const getPatientInfo = (patientId) => {
|
||||
return request({
|
||||
url: `/cardRenewal/patient/info/${patientId}`,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
// 获取患者详细信息
|
||||
/* export function getPatientInfo(patientId) {
|
||||
return request({
|
||||
url: '/cardRenewal/patient/info/' + patientId,
|
||||
method: 'get'
|
||||
}).catch(error => {
|
||||
console.error('获取患者详细信息API调用失败:', error);
|
||||
return {
|
||||
code: 500,
|
||||
msg: 'API调用失败',
|
||||
data: {}
|
||||
};
|
||||
});
|
||||
} */
|
||||
53
openhis-ui-vue3/src/api/consultation/confirmation.js
Executable file
@@ -0,0 +1,53 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询会诊确认列表
|
||||
export function listConfirmation(query) {
|
||||
return request({
|
||||
url: '/consultation/confirmation/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询会诊确认详细
|
||||
export function getConfirmation(id) {
|
||||
return request({
|
||||
url: '/consultation/confirmation/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增会诊确认
|
||||
export function addConfirmation(data) {
|
||||
return request({
|
||||
url: '/consultation/confirmation',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改会诊确认
|
||||
export function updateConfirmation(data) {
|
||||
return request({
|
||||
url: '/consultation/confirmation',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 确认会诊
|
||||
export function confirmConsultation(data) {
|
||||
return request({
|
||||
url: '/consultation/confirmation/confirm',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会诊确认
|
||||
export function delConfirmation(id) {
|
||||
return request({
|
||||
url: '/consultation/confirmation/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
44
openhis-ui-vue3/src/api/consultation/record.js
Executable file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询会诊记录列表
|
||||
export function listRecord(query) {
|
||||
return request({
|
||||
url: '/consultation/record/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询会诊记录详细
|
||||
export function getRecord(id) {
|
||||
return request({
|
||||
url: '/consultation/record/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增会诊记录
|
||||
export function addRecord(data) {
|
||||
return request({
|
||||
url: '/consultation/record',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改会诊记录
|
||||
export function updateRecord(data) {
|
||||
return request({
|
||||
url: '/consultation/record',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会诊记录
|
||||
export function delRecord(id) {
|
||||
return request({
|
||||
url: '/consultation/record/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
94
openhis-ui-vue3/src/api/consultation/request.js
Executable file
@@ -0,0 +1,94 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询会诊申请列表
|
||||
export function listRequest(query) {
|
||||
return request({
|
||||
url: '/consultation/request/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询会诊申请详细
|
||||
export function getRequest(id) {
|
||||
return request({
|
||||
url: '/consultation/request/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增会诊申请
|
||||
export function addRequest(data) {
|
||||
return request({
|
||||
url: '/consultation/request',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改会诊申请
|
||||
export function updateRequest(data) {
|
||||
return request({
|
||||
url: '/consultation/request',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除会诊申请
|
||||
export function delRequest(id) {
|
||||
return request({
|
||||
url: '/consultation/request/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 提交会诊申请
|
||||
export function submitRequest(id) {
|
||||
return request({
|
||||
url: '/consultation/request/submit/' + id,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 取消提交会诊申请
|
||||
export function cancelSubmitRequest(id) {
|
||||
return request({
|
||||
url: '/consultation/request/cancelSubmit/' + id,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 结束会诊申请
|
||||
export function endRequest(id) {
|
||||
return request({
|
||||
url: '/consultation/request/end/' + id,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 作废会诊申请
|
||||
export function cancelRequest(id) {
|
||||
return request({
|
||||
url: '/consultation/request/cancel/' + id,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 确认会诊
|
||||
export function confirmRequest(data) {
|
||||
return request({
|
||||
url: '/consultation/request/confirm',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 签名会诊
|
||||
export function signRequest(data) {
|
||||
return request({
|
||||
url: '/consultation/request/sign',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
61
openhis-ui-vue3/src/api/gf/ratioApplicationRecord.js
Executable file
@@ -0,0 +1,61 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询比例调整申请记录分页
|
||||
export function getPage(query) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-application-record/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询比例调整申请记录详情
|
||||
export function getDetail(id) {
|
||||
return request({
|
||||
url: `/nenu/gf-ratio-application-record/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 创建比例调整申请
|
||||
export function add(gfRatioApplicationRecordDto) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-application-record',
|
||||
method: 'post',
|
||||
data: gfRatioApplicationRecordDto
|
||||
})
|
||||
}
|
||||
|
||||
// 取消比例调整申请
|
||||
export function cancel(id) {
|
||||
return request({
|
||||
url: `/nenu/gf-ratio-application-record/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 处理比例调整申请
|
||||
export function process(gfRatioApplicationProcessDto) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-application-record',
|
||||
method: 'put',
|
||||
data: gfRatioApplicationProcessDto
|
||||
})
|
||||
}
|
||||
|
||||
// 查询申请项目选择弹窗分页
|
||||
export function getDefinitionSelectPage(query) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-application-record/definition-select-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询申请单打印列表
|
||||
export function getPrintList(ids) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-application-record/print-list?ids='+ids,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
28
openhis-ui-vue3/src/api/gf/ratioManage.js
Executable file
@@ -0,0 +1,28 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询大项比例列表
|
||||
export function getTypeRatioList() {
|
||||
return request({
|
||||
url: `/nenu/gf-ratio-manage/type-ratio-list`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 保存大项比例列表
|
||||
export function saveTypeRatioList(gfTypeRatioSaveDto) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-manage/type-ratio-list',
|
||||
method: 'put',
|
||||
data: gfTypeRatioSaveDto
|
||||
})
|
||||
}
|
||||
|
||||
// 查询单项比例分页
|
||||
export function getIndividualRatioPage(query) {
|
||||
return request({
|
||||
url: '/nenu/gf-ratio-manage/individual-ratio-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
44
openhis-ui-vue3/src/api/gf/studentList.js
Executable file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询学生名单分页
|
||||
export function getPage(query) {
|
||||
return request({
|
||||
url: '/nenu/gf-student-list/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询学生名单详情
|
||||
export function getDetail(id) {
|
||||
return request({
|
||||
url: `/nenu/gf-student-list/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 添加学生名单
|
||||
export function add(gfStudentListDto) {
|
||||
return request({
|
||||
url: '/nenu/gf-student-list',
|
||||
method: 'post',
|
||||
data: gfStudentListDto
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑学生名单
|
||||
export function edit(gfStudentListDto) {
|
||||
return request({
|
||||
url: '/nenu/gf-student-list',
|
||||
method: 'put',
|
||||
data: gfStudentListDto
|
||||
})
|
||||
}
|
||||
|
||||
// 删除学生名单
|
||||
export function remove(id) {
|
||||
return request({
|
||||
url: `/nenu/gf-student-list/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
17
openhis-ui-vue3/src/api/home.js
Executable file
@@ -0,0 +1,17 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 获取首页统计数据
|
||||
export function getHomeStatistics() {
|
||||
return request({
|
||||
url: '/system/home/statistics',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
|
||||
// 获取待写病历数量
|
||||
export function getPendingEmrCount() {
|
||||
return request({
|
||||
url: '/doctor-station/pending-emr/pending-count',
|
||||
method: 'get'
|
||||
});
|
||||
}
|
||||
60
openhis-ui-vue3/src/api/lab/labActivityDefinition.js
Executable file
@@ -0,0 +1,60 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
/**
|
||||
* 检验项目维护专属 API(操作 lab_activity_definition 表)
|
||||
* 后端路径前缀:/lab/activity-definition
|
||||
*/
|
||||
|
||||
// 分页查询检验项目列表
|
||||
export function getLabActivityDefinitionPage(query) {
|
||||
return request({
|
||||
url: '/lab/activity-definition/page',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询检验项目详情
|
||||
export function getLabActivityDefinitionOne(id) {
|
||||
return request({
|
||||
url: '/lab/activity-definition/one',
|
||||
method: 'get',
|
||||
params: { id },
|
||||
});
|
||||
}
|
||||
|
||||
// 新增检验项目
|
||||
export function addLabActivityDefinition(data) {
|
||||
return request({
|
||||
url: '/lab/activity-definition/add',
|
||||
method: 'post',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 编辑检验项目
|
||||
export function editLabActivityDefinition(data) {
|
||||
return request({
|
||||
url: '/lab/activity-definition/edit',
|
||||
method: 'put',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 停用检验项目
|
||||
export function stopLabActivityDefinition(ids) {
|
||||
return request({
|
||||
url: '/lab/activity-definition/stop',
|
||||
method: 'put',
|
||||
data: ids,
|
||||
});
|
||||
}
|
||||
|
||||
// 启用检验项目
|
||||
export function startLabActivityDefinition(ids) {
|
||||
return request({
|
||||
url: '/lab/activity-definition/start',
|
||||
method: 'put',
|
||||
data: ids,
|
||||
});
|
||||
}
|
||||
99
openhis-ui-vue3/src/api/login.js
Executable file
@@ -0,0 +1,99 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 登录方法
|
||||
export function login(username, password, code, uuid, tenantId) {
|
||||
const data = {
|
||||
username,
|
||||
password,
|
||||
code,
|
||||
uuid,
|
||||
tenantId
|
||||
}
|
||||
return request({
|
||||
url: '/login',
|
||||
headers: {
|
||||
isToken: false,
|
||||
repeatSubmit: false
|
||||
},
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 注册方法
|
||||
export function register(data) {
|
||||
return request({
|
||||
url: '/register',
|
||||
headers: {
|
||||
isToken: false
|
||||
},
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户详细信息
|
||||
export function getInfo() {
|
||||
return request({
|
||||
url: '/getInfo',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 退出方法
|
||||
export function logout() {
|
||||
return request({
|
||||
url: '/logout',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取验证码
|
||||
export function getUserBindTenantList(username) {
|
||||
// 确保username存在,避免构建出错误的URL
|
||||
const safeUsername = username || '';
|
||||
return request({
|
||||
url: '/system/tenant/user-bind/' + safeUsername,
|
||||
headers: {
|
||||
isToken: false
|
||||
},
|
||||
method: 'get',
|
||||
timeout: 20000
|
||||
})
|
||||
}
|
||||
|
||||
// 获取验证码
|
||||
export function getCodeImg() {
|
||||
return request({
|
||||
url: '/captchaImage',
|
||||
headers: {
|
||||
isToken: false
|
||||
},
|
||||
method: 'get',
|
||||
timeout: 20000
|
||||
})
|
||||
}
|
||||
|
||||
// 获取当前登录用户所属科室
|
||||
export function getOrg() {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/get-selectable-org-list',
|
||||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 切换科室
|
||||
export function switchOrg(orgId) {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/switch-org?orgId=' + orgId,
|
||||
method: 'put',
|
||||
})
|
||||
}
|
||||
|
||||
// 医保签到
|
||||
export function sign(practitionerId, mac, ip) {
|
||||
return request({
|
||||
url: `/yb-request/sign?practitionerId=${practitionerId}&mac=${mac}&ip=${ip}`,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
44
openhis-ui-vue3/src/api/medicationmanagement/dayEndSettlement.js
Executable file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询日结结算单列表
|
||||
export function listDayEndSettlement(query) {
|
||||
return request({
|
||||
url: '/medication/dayEndSettlement/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询日结结算单详细
|
||||
export function getDayEndSettlement(settlementId) {
|
||||
return request({
|
||||
url: '/medication/dayEndSettlement/' + settlementId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增日结结算单
|
||||
export function addDayEndSettlement(data) {
|
||||
return request({
|
||||
url: '/medication/dayEndSettlement',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改日结结算单
|
||||
export function updateDayEndSettlement(data) {
|
||||
return request({
|
||||
url: '/medication/dayEndSettlement',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除日结结算单
|
||||
export function delDayEndSettlement(settlementId) {
|
||||
return request({
|
||||
url: '/medication/dayEndSettlement/' + settlementId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
9
openhis-ui-vue3/src/api/menu.js
Executable file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取路由
|
||||
export const getRouters = () => {
|
||||
return request({
|
||||
url: '/getRouters',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
57
openhis-ui-vue3/src/api/monitor/cache.js
Executable file
@@ -0,0 +1,57 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询缓存详细
|
||||
export function getCache() {
|
||||
return request({
|
||||
url: '/monitor/cache',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询缓存名称列表
|
||||
export function listCacheName() {
|
||||
return request({
|
||||
url: '/monitor/cache/getNames',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询缓存键名列表
|
||||
export function listCacheKey(cacheName) {
|
||||
return request({
|
||||
url: '/monitor/cache/getKeys/' + cacheName,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询缓存内容
|
||||
export function getCacheValue(cacheName, cacheKey) {
|
||||
return request({
|
||||
url: '/monitor/cache/getValue/' + cacheName + '/' + cacheKey,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 清理指定名称缓存
|
||||
export function clearCacheName(cacheName) {
|
||||
return request({
|
||||
url: '/monitor/cache/clearCacheName/' + cacheName,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 清理指定键名缓存
|
||||
export function clearCacheKey(cacheKey) {
|
||||
return request({
|
||||
url: '/monitor/cache/clearCacheKey/' + cacheKey,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 清理全部缓存
|
||||
export function clearCacheAll() {
|
||||
return request({
|
||||
url: '/monitor/cache/clearCacheAll',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
71
openhis-ui-vue3/src/api/monitor/job.js
Executable file
@@ -0,0 +1,71 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询定时任务调度列表
|
||||
export function listJob(query) {
|
||||
return request({
|
||||
url: '/monitor/job/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询定时任务调度详细
|
||||
export function getJob(jobId) {
|
||||
return request({
|
||||
url: '/monitor/job/' + jobId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增定时任务调度
|
||||
export function addJob(data) {
|
||||
return request({
|
||||
url: '/monitor/job',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改定时任务调度
|
||||
export function updateJob(data) {
|
||||
return request({
|
||||
url: '/monitor/job',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除定时任务调度
|
||||
export function delJob(jobId) {
|
||||
return request({
|
||||
url: '/monitor/job/' + jobId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 任务状态修改
|
||||
export function changeJobStatus(jobId, status) {
|
||||
const data = {
|
||||
jobId,
|
||||
status
|
||||
}
|
||||
return request({
|
||||
url: '/monitor/job/changeStatus',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 定时任务立即执行一次
|
||||
export function runJob(jobId, jobGroup) {
|
||||
const data = {
|
||||
jobId,
|
||||
jobGroup
|
||||
}
|
||||
return request({
|
||||
url: '/monitor/job/run',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
26
openhis-ui-vue3/src/api/monitor/jobLog.js
Executable file
@@ -0,0 +1,26 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询调度日志列表
|
||||
export function listJobLog(query) {
|
||||
return request({
|
||||
url: '/monitor/jobLog/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 删除调度日志
|
||||
export function delJobLog(jobLogId) {
|
||||
return request({
|
||||
url: '/monitor/jobLog/' + jobLogId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 清空调度日志
|
||||
export function cleanJobLog() {
|
||||
return request({
|
||||
url: '/monitor/jobLog/clean',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
34
openhis-ui-vue3/src/api/monitor/logininfor.js
Executable file
@@ -0,0 +1,34 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询登录日志列表
|
||||
export function list(query) {
|
||||
return request({
|
||||
url: '/monitor/logininfor/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 删除登录日志
|
||||
export function delLogininfor(infoId) {
|
||||
return request({
|
||||
url: '/monitor/logininfor/' + infoId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 解锁用户登录状态
|
||||
export function unlockLogininfor(userName) {
|
||||
return request({
|
||||
url: '/monitor/logininfor/unlock/' + userName,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 清空登录日志
|
||||
export function cleanLogininfor() {
|
||||
return request({
|
||||
url: '/monitor/logininfor/clean',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
18
openhis-ui-vue3/src/api/monitor/online.js
Executable file
@@ -0,0 +1,18 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询在线用户列表
|
||||
export function list(query) {
|
||||
return request({
|
||||
url: '/monitor/online/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 强退用户
|
||||
export function forceLogout(tokenId) {
|
||||
return request({
|
||||
url: '/monitor/online/' + tokenId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
35
openhis-ui-vue3/src/api/monitor/operlog.js
Executable file
@@ -0,0 +1,35 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询操作日志列表
|
||||
export function list(query) {
|
||||
return request({
|
||||
url: '/monitor/operlog/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 删除操作日志
|
||||
export function delOperlog(operId) {
|
||||
return request({
|
||||
url: '/monitor/operlog/' + operId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 清空操作日志
|
||||
export function cleanOperlog() {
|
||||
return request({
|
||||
url: '/monitor/operlog/clean',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增操作日志
|
||||
export function addLog(data) {
|
||||
return request({
|
||||
url: '/monitor/operlog',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
9
openhis-ui-vue3/src/api/monitor/server.js
Executable file
@@ -0,0 +1,9 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 获取服务信息
|
||||
export function getServer() {
|
||||
return request({
|
||||
url: '/monitor/server',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
116
openhis-ui-vue3/src/api/operatingroom.js
Executable file
@@ -0,0 +1,116 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 查询手术室列表
|
||||
* @param {Object} query - 查询参数
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function listOperatingRoom(query) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询诊疗项目列表(用于诊疗子项检索)
|
||||
* @param {Object} query - 查询参数
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function listMedicalItems(query) {
|
||||
return request({
|
||||
url: '/clinical-manage/medical-item/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询医嘱类型列表
|
||||
* @param {Object} query - 查询参数
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function listAdviceTypes(query) {
|
||||
return request({
|
||||
url: '/clinical-manage/advice-type/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询手术室详细
|
||||
* @param {Long} id - 手术室ID
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function getOperatingRoom(id) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增手术室
|
||||
* @param {Object} data - 手术室信息
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function addOperatingRoom(data) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改手术室
|
||||
* @param {Object} data - 手术室信息
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function updateOperatingRoom(data) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除手术室
|
||||
* @param {Long|Array} ids - 手术室ID或ID数组
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function deleteOperatingRoom(ids) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room/' + ids,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 启用手术室
|
||||
* @param {Array} ids - 手术室ID数组
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function enableOperatingRoom(ids) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room/enable',
|
||||
method: 'put',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 停用手术室
|
||||
* @param {Array} ids - 手术室ID数组
|
||||
* @returns {Promise} 请求结果
|
||||
*/
|
||||
export function disableOperatingRoom(ids) {
|
||||
return request({
|
||||
url: '/base-data-manage/operating-room/disable',
|
||||
method: 'put',
|
||||
data: ids
|
||||
})
|
||||
}
|
||||
107
openhis-ui-vue3/src/api/public.js
Executable file
@@ -0,0 +1,107 @@
|
||||
import request from '@/utils/request';
|
||||
import axios from 'axios';
|
||||
|
||||
// 获取追溯码
|
||||
export function searchTraceNo(data) {
|
||||
return request({
|
||||
url: '/app-common/search-trace-no',
|
||||
method: 'get',
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取处方打印数据
|
||||
export function advicePrint(data) {
|
||||
return request({
|
||||
url: '/app-common/advice-print',
|
||||
method: 'get',
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取全部科室列表
|
||||
// 获取科室列表(别名)
|
||||
export function getDepartmentList(data) {
|
||||
return request({
|
||||
url: '/app-common/department-list',
|
||||
method: 'get',
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
export function getOrgList(data) {
|
||||
return request({
|
||||
url: '/app-common/department-list',
|
||||
method: 'get',
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取全部病区列表
|
||||
export function getWardList(data) {
|
||||
return request({
|
||||
url: '/app-common/ward-list',
|
||||
method: 'get',
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 获取全部供应商列表
|
||||
export function getSupplierList(data) {
|
||||
return request({
|
||||
url: '/app-common/supplier',
|
||||
method: 'get',
|
||||
params: data,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取项目定价方式,批次售价/统一售价
|
||||
*/
|
||||
export function getAdjustPriceSwitchState(params) {
|
||||
return request({
|
||||
url: '/change/price/getAdjustPriceSwitchState',
|
||||
method: 'get',
|
||||
params: params,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 批次号匹配
|
||||
*/
|
||||
export function lotNumberMatch(params, config = {}) {
|
||||
return request({
|
||||
url: '/app-common/lot-number-match',
|
||||
method: 'get',
|
||||
params: params,
|
||||
...config
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const env = import.meta.env.MODE;
|
||||
|
||||
export function invokeYbPlugin5001(data) {
|
||||
|
||||
return axios
|
||||
.create({
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: '',
|
||||
// 超时
|
||||
timeout: 60000,
|
||||
})
|
||||
.post('http://localhost:5001/api/data/', data);
|
||||
}
|
||||
|
||||
// }
|
||||
|
||||
export function invokeYbPlugin5000(data) {
|
||||
return axios
|
||||
.create({
|
||||
// axios中请求配置有baseURL选项,表示请求URL公共部分
|
||||
baseURL: '',
|
||||
// 超时
|
||||
timeout: 60000,
|
||||
})
|
||||
.post('http://localhost:5000/api/data/', data);
|
||||
}
|
||||
93
openhis-ui-vue3/src/api/surgerymanage.js
Executable file
@@ -0,0 +1,93 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
/**
|
||||
* 分页查询手术列表
|
||||
* @param queryParams 查询参数
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function getSurgeryPage(queryParams) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/surgery-page',
|
||||
method: 'get',
|
||||
params: queryParams
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID查询手术详情
|
||||
* @param id 手术ID
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function getSurgeryDetail(id) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/surgery-detail',
|
||||
method: 'get',
|
||||
params: { id }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增手术信息
|
||||
* @param data 手术信息
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function addSurgery(data) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/surgery',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改手术信息
|
||||
* @param data 手术信息
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function updateSurgery(data) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/surgery',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除手术信息
|
||||
* @param id 手术ID
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function deleteSurgery(id) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/surgery',
|
||||
method: 'delete',
|
||||
params: { id }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新手术状态
|
||||
* @param id 手术ID
|
||||
* @param statusEnum 状态
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function updateSurgeryStatus(id, statusEnum) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/surgery-status',
|
||||
method: 'put',
|
||||
params: { id, statusEnum }
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据患者ID查询就诊列表
|
||||
* @param patientId 患者ID
|
||||
* @returns {AxiosPromise}
|
||||
*/
|
||||
export function getEncounterListByPatientId(patientId) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery/encounter-list',
|
||||
method: 'get',
|
||||
params: { patientId }
|
||||
})
|
||||
}
|
||||
89
openhis-ui-vue3/src/api/surgicalschedule.js
Executable file
@@ -0,0 +1,89 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询手术安排列表
|
||||
export function getSurgerySchedulePage(query) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询手术安排详情
|
||||
export function getSurgeryScheduleDetail(scheduleId) {
|
||||
return request({
|
||||
url: `/clinical-manage/surgery-schedule/${scheduleId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增手术安排
|
||||
export function addSurgerySchedule(data) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/create',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改手术安排
|
||||
export function updateSurgerySchedule(data) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除手术安排
|
||||
export function deleteSurgerySchedule(scheduleId) {
|
||||
return request({
|
||||
url: `/clinical-manage/surgery-schedule/${scheduleId}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询手术申请列表
|
||||
export function getSurgeryApplyList(query) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/apply-list',
|
||||
method: 'post',
|
||||
data: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询已生成医嘱的计费项目
|
||||
export function getGeneratedOrders(chargeIds) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/generated-orders',
|
||||
method: 'post',
|
||||
data: { chargeIds }
|
||||
})
|
||||
}
|
||||
|
||||
// 生成临时医嘱
|
||||
export function generateTemporaryOrders(data) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/generate-orders',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 导出手术安排列表
|
||||
export function exportSurgerySchedule(query) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/export',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
//签名密码验证
|
||||
export function checkPassword(data) {
|
||||
return request({
|
||||
url: '/clinical-manage/surgery-schedule/checkPassword',
|
||||
method: 'POST',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
247
openhis-ui-vue3/src/api/system/checkType.js
Executable file
@@ -0,0 +1,247 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询所有检查类型列表(不分页,用于下拉选项)
|
||||
export function getAllCheckTypes() {
|
||||
return request({
|
||||
url: '/system/check-type/all',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检查类型列表
|
||||
export function listCheckType(query) {
|
||||
return request({
|
||||
url: '/system/check-type/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检查类型详细
|
||||
export function getCheckType(checkTypeId) {
|
||||
return request({
|
||||
url: '/system/check-type/' + checkTypeId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增检查类型
|
||||
export function addCheckType(data) {
|
||||
return request({
|
||||
url: '/system/check-type',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改检查类型
|
||||
export function updateCheckType(data) {
|
||||
return request({
|
||||
url: '/system/check-type',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检查类型
|
||||
export function delCheckType(checkTypeId) {
|
||||
return request({
|
||||
url: '/system/check-type/' + checkTypeId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检查方法列表
|
||||
export function listCheckMethod(query) {
|
||||
return request({
|
||||
url: '/check/method/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 搜索检查方法列表
|
||||
export function searchCheckMethod(query) {
|
||||
return request({
|
||||
url: '/check/method/search',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 新增检查方法
|
||||
export function addCheckMethod(data) {
|
||||
return request({
|
||||
url: '/check/method/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改检查方法
|
||||
export function updateCheckMethod(data) {
|
||||
return request({
|
||||
url: '/check/method/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检查方法
|
||||
export function delCheckMethod(checkMethodId) {
|
||||
return request({
|
||||
url: '/check/method/delete/' + checkMethodId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 导出检查方法
|
||||
export function exportCheckMethod(query) {
|
||||
return request({
|
||||
url: '/check/method/export',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 导出检查部位
|
||||
export function exportCheckPart(query) {
|
||||
return request({
|
||||
url: '/check/part/export',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检查部位列表
|
||||
export function listCheckPart(query) {
|
||||
return request({
|
||||
url: '/check/part/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 搜索检查部位列表
|
||||
export function searchCheckPart(query) {
|
||||
return request({
|
||||
url: '/check/part/search',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// 新增检查部位
|
||||
export function addCheckPart(data) {
|
||||
return request({
|
||||
url: '/check/part/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检查部位
|
||||
export function delCheckPart(checkPartId) {
|
||||
return request({
|
||||
url: '/check/part/delete/' + checkPartId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 更新检查部位
|
||||
export function updateCheckPart(data) {
|
||||
return request({
|
||||
url: '/check/part/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检查套餐列表
|
||||
export function listCheckPackage(query) {
|
||||
return request({
|
||||
url: '/system/package/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 根据ID查询检查套餐详情
|
||||
export function getCheckPackage(id) {
|
||||
return request({
|
||||
url: `/system/check-package/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增检查套餐
|
||||
export function addCheckPackage(data) {
|
||||
return request({
|
||||
url: '/system/check-package',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改检查套餐
|
||||
export function updateCheckPackage(data) {
|
||||
return request({
|
||||
url: '/system/check-package',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检查套餐
|
||||
export function delCheckPackage(id) {
|
||||
return request({
|
||||
url: `/system/check-package/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询LIS分组列表
|
||||
export function listLisGroup(query) {
|
||||
return request({
|
||||
url: '/check/lisGroupInfo/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 根据ID查询LIS分组详情
|
||||
export function getLisGroup(id) {
|
||||
return request({
|
||||
url: `/check/lisGroupInfo/${id}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增LIS分组
|
||||
export function addLisGroup(data) {
|
||||
return request({
|
||||
url: '/check/lisGroupInfo/add',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改LIS分组
|
||||
export function updateLisGroup(data) {
|
||||
return request({
|
||||
url: '/check/lisGroupInfo/update',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除LIS分组
|
||||
export function delLisGroup(id) {
|
||||
return request({
|
||||
url: `/check/lisGroupInfo/${id}`,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
61
openhis-ui-vue3/src/api/system/config.js
Executable file
@@ -0,0 +1,61 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询参数列表
|
||||
export function listConfig(query) {
|
||||
return request({
|
||||
url: '/system/config/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询参数详细
|
||||
export function getConfig(configId) {
|
||||
return request({
|
||||
url: '/system/config/' + configId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据参数键名查询参数值
|
||||
export function getConfigKey(configKey, options = {}) {
|
||||
return request({
|
||||
url: '/system/config/configKey/' + configKey,
|
||||
method: 'get',
|
||||
...options
|
||||
})
|
||||
}
|
||||
|
||||
// 新增参数配置
|
||||
export function addConfig(data) {
|
||||
return request({
|
||||
url: '/system/config',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改参数配置
|
||||
export function updateConfig(data) {
|
||||
return request({
|
||||
url: '/system/config',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除参数配置
|
||||
export function delConfig(configId) {
|
||||
return request({
|
||||
url: '/system/config/' + configId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 刷新参数缓存
|
||||
export function refreshCache() {
|
||||
return request({
|
||||
url: '/system/config/refreshCache',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
52
openhis-ui-vue3/src/api/system/dept.js
Executable file
@@ -0,0 +1,52 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询部门列表
|
||||
export function listDept(query) {
|
||||
return request({
|
||||
url: '/system/dept/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询部门列表(排除节点)
|
||||
export function listDeptExcludeChild(deptId) {
|
||||
return request({
|
||||
url: '/system/dept/list/exclude/' + deptId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询部门详细
|
||||
export function getDept(deptId) {
|
||||
return request({
|
||||
url: '/system/dept/' + deptId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增部门
|
||||
export function addDept(data) {
|
||||
return request({
|
||||
url: '/system/dept',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改部门
|
||||
export function updateDept(data) {
|
||||
return request({
|
||||
url: '/system/dept',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除部门
|
||||
export function delDept(deptId) {
|
||||
return request({
|
||||
url: '/system/dept/' + deptId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
53
openhis-ui-vue3/src/api/system/dict/data.js
Executable file
@@ -0,0 +1,53 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询字典数据列表
|
||||
export function listData(query) {
|
||||
return request({
|
||||
url: '/system/dict/data/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询字典数据详细
|
||||
export function getData(dictCode) {
|
||||
return request({
|
||||
url: '/system/dict/data/' + dictCode,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据字典类型查询字典数据信息
|
||||
export function getDicts(dictType, searchKey) {
|
||||
return request({
|
||||
url: '/system/dict/data/type/' + dictType,
|
||||
method: 'get',
|
||||
params: searchKey ? { searchKey } : {}
|
||||
})
|
||||
}
|
||||
|
||||
// 新增字典数据
|
||||
export function addData(data) {
|
||||
return request({
|
||||
url: '/system/dict/data',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改字典数据
|
||||
export function updateData(data) {
|
||||
return request({
|
||||
url: '/system/dict/data',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除字典数据
|
||||
export function delData(dictCode) {
|
||||
return request({
|
||||
url: '/system/dict/data/' + dictCode,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
60
openhis-ui-vue3/src/api/system/dict/type.js
Executable file
@@ -0,0 +1,60 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询字典类型列表
|
||||
export function listType(query) {
|
||||
return request({
|
||||
url: '/system/dict/type/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询字典类型详细
|
||||
export function getType(dictId) {
|
||||
return request({
|
||||
url: '/system/dict/type/' + dictId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增字典类型
|
||||
export function addType(data) {
|
||||
return request({
|
||||
url: '/system/dict/type',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改字典类型
|
||||
export function updateType(data) {
|
||||
return request({
|
||||
url: '/system/dict/type',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除字典类型
|
||||
export function delType(dictId) {
|
||||
return request({
|
||||
url: '/system/dict/type/' + dictId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 刷新字典缓存
|
||||
export function refreshCache() {
|
||||
return request({
|
||||
url: '/system/dict/type/refreshCache',
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取字典选择框列表
|
||||
export function optionselect() {
|
||||
return request({
|
||||
url: '/system/dict/type/optionselect',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
10
openhis-ui-vue3/src/api/system/info.js
Executable file
@@ -0,0 +1,10 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getSystemVersion(options = {}) {
|
||||
return request({
|
||||
url: '/system/version',
|
||||
method: 'get',
|
||||
...options
|
||||
})
|
||||
}
|
||||
|
||||
79
openhis-ui-vue3/src/api/system/inspectionPackage.js
Executable file
@@ -0,0 +1,79 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询检验套餐列表
|
||||
export function listInspectionPackage(query) {
|
||||
return request({
|
||||
url: '/system/inspection-package/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检验套餐详细
|
||||
export function getInspectionPackage(packageId) {
|
||||
return request({
|
||||
url: '/system/inspection-package/' + packageId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增检验套餐基本信息
|
||||
export function addInspectionPackage(data) {
|
||||
return request({
|
||||
url: '/system/inspection-package',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改检验套餐基本信息
|
||||
export function updateInspectionPackage(data) {
|
||||
return request({
|
||||
url: '/system/inspection-package',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检验套餐
|
||||
export function delInspectionPackage(packageId) {
|
||||
return request({
|
||||
url: '/system/inspection-package/' + packageId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 保存检验套餐明细数据
|
||||
export function saveInspectionPackageDetails(data) {
|
||||
return request({
|
||||
url: '/system/inspection-package/details',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检验套餐明细列表
|
||||
export function listInspectionPackageDetails(packageId) {
|
||||
return request({
|
||||
url: '/system/inspection-package/details/' + packageId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检验套餐明细
|
||||
export function delInspectionPackageDetails(detailIds) {
|
||||
return request({
|
||||
url: '/system/inspection-package/details',
|
||||
method: 'delete',
|
||||
data: detailIds
|
||||
})
|
||||
}
|
||||
|
||||
// 批量保存检验套餐明细
|
||||
export function batchSaveInspectionPackageDetails(data) {
|
||||
return request({
|
||||
url: '/system/inspection-package/details/batch',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
44
openhis-ui-vue3/src/api/system/inspectionType.js
Executable file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询检验类型列表
|
||||
export function listInspectionType(query) {
|
||||
return request({
|
||||
url: '/system/inspection-type/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询检验类型详细
|
||||
export function getInspectionType(inspectionTypeId) {
|
||||
return request({
|
||||
url: '/system/inspection-type/' + inspectionTypeId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增检验类型
|
||||
export function addInspectionType(data) {
|
||||
return request({
|
||||
url: '/system/inspection-type',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改检验类型
|
||||
export function updateInspectionType(data) {
|
||||
return request({
|
||||
url: '/system/inspection-type',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除检验类型
|
||||
export function delInspectionType(inspectionTypeId) {
|
||||
return request({
|
||||
url: '/system/inspection-type/' + inspectionTypeId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
33
openhis-ui-vue3/src/api/system/lisConfig.js
Executable file
@@ -0,0 +1,33 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getLisConfigPage(query) {
|
||||
return request({
|
||||
url: '/inspection/lisConfig/init-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getLisConfigDetail(id) {
|
||||
return request({
|
||||
url: '/inspection/lisConfig/info-detail',
|
||||
method: 'get',
|
||||
params: { id }
|
||||
})
|
||||
}
|
||||
|
||||
export function getLisConfigList(searchKey, type) {
|
||||
return request({
|
||||
url: '/inspection/lisConfig/init-list',
|
||||
method: 'get',
|
||||
params: { searchKey, type }
|
||||
})
|
||||
}
|
||||
|
||||
export function saveLisConfig(data) {
|
||||
return request({
|
||||
url: '/inspection/lisConfig/saveAll',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
88
openhis-ui-vue3/src/api/system/menu.js
Executable file
@@ -0,0 +1,88 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询菜单列表
|
||||
export function listMenu(query) {
|
||||
return request({
|
||||
url: '/system/menu/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询菜单详细
|
||||
export function getMenu(menuId) {
|
||||
return request({
|
||||
url: '/system/menu/' + menuId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询菜单下拉树结构
|
||||
export function treeselect() {
|
||||
return request({
|
||||
url: '/system/menu/treeselect',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 根据角色ID查询菜单下拉树结构
|
||||
export function roleMenuTreeselect(roleId) {
|
||||
return request({
|
||||
url: '/system/menu/roleMenuTreeselect/' + roleId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增菜单
|
||||
export function addMenu(data) {
|
||||
return request({
|
||||
url: '/system/menu',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改菜单
|
||||
export function updateMenu(data) {
|
||||
return request({
|
||||
url: '/system/menu',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除菜单
|
||||
export function delMenu(menuId) {
|
||||
return request({
|
||||
url: '/system/menu/' + menuId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取菜单完整路径
|
||||
export function getMenuFullPath(menuId) {
|
||||
return request({
|
||||
url: '/system/menu/fullPath/' + menuId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 生成完整路径
|
||||
export function generateFullPath(parentId, currentPath) {
|
||||
return request({
|
||||
url: '/system/menu/generateFullPath',
|
||||
method: 'post',
|
||||
params: {
|
||||
parentId: parentId,
|
||||
currentPath: currentPath
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 刷新菜单缓存
|
||||
export function refreshMenuCache() {
|
||||
return request({
|
||||
url: '/system/menu/refreshCache',
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
110
openhis-ui-vue3/src/api/system/notice.js
Executable file
@@ -0,0 +1,110 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询公告列表
|
||||
export function listNotice(query) {
|
||||
return request({
|
||||
url: '/system/notice/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取公开的公告列表(给普通用户使用)
|
||||
export function getPublicNoticeList(query) {
|
||||
return request({
|
||||
url: '/system/notice/public/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 获取当前用户的通知列表
|
||||
export function getUserNotices() {
|
||||
return request({
|
||||
url: '/system/notice/public/notice',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询公告详细
|
||||
export function getNotice(noticeId) {
|
||||
return request({
|
||||
url: '/system/notice/' + noticeId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增公告
|
||||
export function addNotice(data) {
|
||||
return request({
|
||||
url: '/system/notice',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改公告
|
||||
export function updateNotice(data) {
|
||||
return request({
|
||||
url: '/system/notice',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除公告
|
||||
export function delNotice(noticeId) {
|
||||
return request({
|
||||
url: '/system/notice/' + noticeId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 发布公告
|
||||
export function publishNotice(noticeId) {
|
||||
return request({
|
||||
url: '/system/notice/publish/' + noticeId,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 取消发布公告
|
||||
export function unpublishNotice(noticeId) {
|
||||
return request({
|
||||
url: '/system/notice/unpublish/' + noticeId,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取未读公告/通知数量
|
||||
export function getUnreadCount() {
|
||||
return request({
|
||||
url: '/system/notice/public/unread/count',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 标记公告/通知为已读
|
||||
export function markAsRead(noticeId) {
|
||||
return request({
|
||||
url: '/system/notice/public/read/' + noticeId,
|
||||
method: 'post'
|
||||
})
|
||||
}
|
||||
|
||||
// 批量标记公告/通知为已读
|
||||
export function markAllAsRead(noticeIds) {
|
||||
return request({
|
||||
url: '/system/notice/public/read/all',
|
||||
method: 'post',
|
||||
data: noticeIds
|
||||
})
|
||||
}
|
||||
|
||||
// 获取用户已读公告/通知ID列表
|
||||
export function getReadNoticeIds() {
|
||||
return request({
|
||||
url: '/system/notice/public/read/ids',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
48
openhis-ui-vue3/src/api/system/observation.js
Executable file
@@ -0,0 +1,48 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
export function getObservationInit() {
|
||||
return request({
|
||||
url: '/inspection/observation/init',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getObservationPage(query) {
|
||||
return request({
|
||||
url: '/inspection/observation/information-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
export function getObservationOne(id) {
|
||||
return request({
|
||||
url: '/inspection/observation/information-one',
|
||||
method: 'get',
|
||||
params: { id }
|
||||
})
|
||||
}
|
||||
|
||||
export function addObservation(data) {
|
||||
return request({
|
||||
url: '/inspection/observation/information',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function updateObservation(data) {
|
||||
return request({
|
||||
url: '/inspection/observation/information',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteObservation(ids) {
|
||||
return request({
|
||||
url: '/inspection/observation/information-status',
|
||||
method: 'post',
|
||||
data: { ids, type: '停用' }
|
||||
})
|
||||
}
|
||||
44
openhis-ui-vue3/src/api/system/post.js
Executable file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询岗位列表
|
||||
export function listPost(query) {
|
||||
return request({
|
||||
url: '/system/post/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询岗位详细
|
||||
export function getPost(postId) {
|
||||
return request({
|
||||
url: '/system/post/' + postId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增岗位
|
||||
export function addPost(data) {
|
||||
return request({
|
||||
url: '/system/post',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改岗位
|
||||
export function updatePost(data) {
|
||||
return request({
|
||||
url: '/system/post',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除岗位
|
||||
export function delPost(postId) {
|
||||
return request({
|
||||
url: '/system/post/' + postId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
119
openhis-ui-vue3/src/api/system/role.js
Executable file
@@ -0,0 +1,119 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询角色列表
|
||||
export function listRole(query) {
|
||||
return request({
|
||||
url: '/system/role/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询角色详细
|
||||
export function getRole(roleId) {
|
||||
return request({
|
||||
url: '/system/role/' + roleId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增角色
|
||||
export function addRole(data) {
|
||||
return request({
|
||||
url: '/system/role',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改角色
|
||||
export function updateRole(data) {
|
||||
return request({
|
||||
url: '/system/role',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 角色数据权限
|
||||
export function dataScope(data) {
|
||||
return request({
|
||||
url: '/system/role/dataScope',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 角色状态修改
|
||||
export function changeRoleStatus(roleId, status) {
|
||||
const data = {
|
||||
roleId,
|
||||
status
|
||||
}
|
||||
return request({
|
||||
url: '/system/role/changeStatus',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除角色
|
||||
export function delRole(roleId) {
|
||||
return request({
|
||||
url: '/system/role/' + roleId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询角色已授权用户列表
|
||||
export function allocatedUserList(query) {
|
||||
return request({
|
||||
url: '/system/role/authUser/allocatedList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询角色未授权用户列表
|
||||
export function unallocatedUserList(query) {
|
||||
return request({
|
||||
url: '/system/role/authUser/unallocatedList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 取消用户授权角色
|
||||
export function authUserCancel(data) {
|
||||
return request({
|
||||
url: '/system/role/authUser/cancel',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 批量取消用户授权角色
|
||||
export function authUserCancelAll(data) {
|
||||
return request({
|
||||
url: '/system/role/authUser/cancelAll',
|
||||
method: 'put',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 授权用户选择
|
||||
export function authUserSelectAll(data) {
|
||||
return request({
|
||||
url: '/system/role/authUser/selectAll',
|
||||
method: 'put',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据角色ID查询部门树结构
|
||||
export function deptTreeSelect(roleId) {
|
||||
return request({
|
||||
url: '/system/role/deptTree/' + roleId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
167
openhis-ui-vue3/src/api/system/tenant.js
Executable file
@@ -0,0 +1,167 @@
|
||||
import request from '@/utils/request';
|
||||
|
||||
// 查询租户分页列表
|
||||
export function getTenantPage(query) {
|
||||
return request({
|
||||
url: '/system/tenant/page',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户详情
|
||||
export function getTenantDetail(tenantId) {
|
||||
return request({
|
||||
url: `/system/tenant/${tenantId}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户所属用户分页列表
|
||||
export function getTenantUserPage(query) {
|
||||
return request({
|
||||
url: '/system/tenant/user/page',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 新增租户
|
||||
export function addTenant(data) {
|
||||
return request({
|
||||
url: '/system/tenant',
|
||||
method: 'post',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 修改租户
|
||||
export function editTenant(data) {
|
||||
return request({
|
||||
url: '/system/tenant',
|
||||
method: 'put',
|
||||
data: data,
|
||||
});
|
||||
}
|
||||
|
||||
// 删除租户
|
||||
export function delTenant(tenantIdList) {
|
||||
return request({
|
||||
url: '/system/tenant',
|
||||
method: 'delete',
|
||||
data: Array.isArray(tenantIdList) ? tenantIdList : [tenantIdList],
|
||||
});
|
||||
}
|
||||
|
||||
// 启用租户
|
||||
export function enableTenant(tenantIdList) {
|
||||
return request({
|
||||
url: '/system/tenant/enable',
|
||||
method: 'put',
|
||||
data: Array.isArray(tenantIdList) ? tenantIdList : [tenantIdList],
|
||||
});
|
||||
}
|
||||
|
||||
// 停用租户
|
||||
export function disableTenant(tenantIdList) {
|
||||
return request({
|
||||
url: '/system/tenant/disable',
|
||||
method: 'put',
|
||||
data: Array.isArray(tenantIdList) ? tenantIdList : [tenantIdList],
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户未绑定的用户列表
|
||||
export function getUnbindTenantUserList(query) {
|
||||
return request({
|
||||
url: `/system/tenant/${query.tenantId}/unbind-users`,
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 绑定租户用户
|
||||
export function bindTenantUser(tenantId, userIdList) {
|
||||
return request({
|
||||
url: `/system/tenant/${tenantId}/bind-users`,
|
||||
method: 'post',
|
||||
data: userIdList,
|
||||
});
|
||||
}
|
||||
|
||||
// 解绑租户用户
|
||||
export function unbindTenantUser(tenantId, userIdList) {
|
||||
return request({
|
||||
url: `/system/tenant/${tenantId}/unbind-users`,
|
||||
method: 'post',
|
||||
data: userIdList,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户合同信息分页
|
||||
export function getTenantContractPage(query) {
|
||||
return request({
|
||||
url: '/payment/contract/page',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户合同信息详情
|
||||
export function getTenantContractDetail(id) {
|
||||
return request({
|
||||
url: `/payment/contract/${id}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 新增租户合同信息
|
||||
export function addTenantContract(data) {
|
||||
return request({
|
||||
url: '/payment/contract',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 编辑租户合同信息
|
||||
export function editTenantContract(data) {
|
||||
return request({
|
||||
url: '/payment/contract',
|
||||
method: 'put',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 编辑租户合同信息
|
||||
export function delTenantContract(id) {
|
||||
return request({
|
||||
url: `/payment/contract/${id}`,
|
||||
method: 'delete',
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户配置项详情列表
|
||||
export function getTenantOptionDetailList(tenantId) {
|
||||
return request({
|
||||
url: `/system/tenant-option/detail-list/${tenantId}`,
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
|
||||
// 保存租户配置项详情列表
|
||||
export function saveTenantOptionDetailList(data) {
|
||||
return request({
|
||||
url: '/system/tenant-option/detail-list',
|
||||
method: 'post',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
// 查询租户配置项前端form表单列表
|
||||
export function getTenantOptionFormList() {
|
||||
return request({
|
||||
url: '/system/tenant-option/form-list',
|
||||
method: 'get',
|
||||
});
|
||||
}
|
||||
135
openhis-ui-vue3/src/api/system/user copy.js
Executable file
@@ -0,0 +1,135 @@
|
||||
import request from '@/utils/request'
|
||||
import {parseStrEmpty} from "@/utils/openhis";
|
||||
|
||||
// 查询用户列表
|
||||
export function listUser(query) {
|
||||
return request({
|
||||
url: '/system/user/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询用户详细
|
||||
export function getUser(userId) {
|
||||
return request({
|
||||
url: '/system/user/' + parseStrEmpty(userId),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增用户
|
||||
export function addUser(data) {
|
||||
return request({
|
||||
url: '/system/user',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改用户
|
||||
export function updateUser(data) {
|
||||
return request({
|
||||
url: '/system/user',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export function delUser(userId) {
|
||||
return request({
|
||||
url: '/system/user/' + userId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 用户密码重置
|
||||
export function resetUserPwd(userId, password) {
|
||||
const data = {
|
||||
userId,
|
||||
password
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/resetPwd',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户状态修改
|
||||
export function changeUserStatus(userId, status) {
|
||||
const data = {
|
||||
userId,
|
||||
status
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/changeStatus',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询用户个人信息
|
||||
export function getUserProfile() {
|
||||
return request({
|
||||
url: '/system/user/profile',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改用户个人信息
|
||||
export function updateUserProfile(data) {
|
||||
return request({
|
||||
url: '/system/user/profile',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户密码重置
|
||||
export function updateUserPwd(oldPassword, newPassword) {
|
||||
const data = {
|
||||
oldPassword,
|
||||
newPassword
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/profile/updatePwd',
|
||||
method: 'put',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户头像上传
|
||||
export function uploadAvatar(data) {
|
||||
return request({
|
||||
url: '/system/user/profile/avatar',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询授权角色
|
||||
export function getAuthRole(userId) {
|
||||
return request({
|
||||
url: '/system/user/authRole/' + userId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 保存授权角色
|
||||
export function updateAuthRole(data) {
|
||||
return request({
|
||||
url: '/system/user/authRole',
|
||||
method: 'put',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询部门下拉树结构
|
||||
export function deptTreeSelect() {
|
||||
return request({
|
||||
url: '/system/user/deptTree',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
172
openhis-ui-vue3/src/api/system/user.js
Executable file
@@ -0,0 +1,172 @@
|
||||
import request from '@/utils/request'
|
||||
import {parseStrEmpty} from "@/utils/openhis";
|
||||
|
||||
// 查询用户列表
|
||||
export function listUser(query) {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/user-practitioner-page',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询用户详细
|
||||
export function getUser(userId) {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/user-practitioner-detail?userId=' + parseStrEmpty(userId),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询角色
|
||||
export function getRole(userId) {
|
||||
return request({
|
||||
url: '/system/user/' + parseStrEmpty(userId),
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增用户
|
||||
export function addUser(data) {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/user-practitioner',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改用户
|
||||
export function updateUser(data) {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/user-practitioner',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除用户
|
||||
export function delUser(userId) {
|
||||
return request({
|
||||
url: '/base-data-manage/practitioner/user-practitioner?userId=' + userId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 用户密码重置
|
||||
export function resetUserPwd(userId, password) {
|
||||
const data = {
|
||||
userId,
|
||||
password
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/resetPwd',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户状态修改
|
||||
export function changeUserStatus(userId, status) {
|
||||
const data = {
|
||||
userId,
|
||||
status
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/changeStatus',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询用户个人信息
|
||||
export function getUserProfile() {
|
||||
return request({
|
||||
url: '/system/user/profile',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改用户个人信息
|
||||
export function updateUserProfile(data) {
|
||||
return request({
|
||||
url: '/system/user/profile',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户密码重置
|
||||
export function updateUserPwd(oldPassword, newPassword) {
|
||||
const data = {
|
||||
oldPassword,
|
||||
newPassword
|
||||
}
|
||||
return request({
|
||||
url: '/system/user/profile/updatePwd',
|
||||
method: 'put',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 用户头像上传
|
||||
export function uploadAvatar(data) {
|
||||
return request({
|
||||
url: '/system/user/profile/avatar',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询授权角色
|
||||
export function getAuthRole(userId) {
|
||||
return request({
|
||||
url: '/system/user/authRole/' + userId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 保存授权角色
|
||||
export function updateAuthRole(data) {
|
||||
return request({
|
||||
url: '/system/user/authRole',
|
||||
method: 'put',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询部门下拉树结构
|
||||
// 默认只显示科室类型(typeEnum=2),如果需要其他类型,可以传入 params 覆盖
|
||||
export function deptTreeSelect(params = {}) {
|
||||
return request({
|
||||
url: '/base-data-manage/organization/organization',
|
||||
method: 'get',
|
||||
params: {
|
||||
typeEnum: 2, // 默认只显示科室
|
||||
...params // 允许外部传入参数覆盖默认值
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 查询位下拉树结构
|
||||
export function locationTreeSelect() {
|
||||
return request({
|
||||
url: '/app-common/cabinet-list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询药房下拉树结构
|
||||
export function pharmacyTreeSelect() {
|
||||
return request({
|
||||
url: '/app-common/pharmacy-list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 查询病区下拉列表
|
||||
export function wardList() {
|
||||
return request({
|
||||
url: '/app-common/ward-list',
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
62
openhis-ui-vue3/src/api/system/userConfig.js
Executable file
@@ -0,0 +1,62 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询用户配置列表
|
||||
export function listUserConfig(query) {
|
||||
return request({
|
||||
url: '/system/userConfig/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询用户配置详细
|
||||
export function getUserConfig(configId) {
|
||||
return request({
|
||||
url: '/system/userConfig/' + configId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增用户配置
|
||||
export function addUserConfig(data) {
|
||||
return request({
|
||||
url: '/system/userConfig',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改用户配置
|
||||
export function updateUserConfig(data) {
|
||||
return request({
|
||||
url: '/system/userConfig',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除用户配置
|
||||
export function delUserConfig(configId) {
|
||||
return request({
|
||||
url: '/system/userConfig/' + configId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取当前用户的指定配置
|
||||
export function getCurrentUserConfig(configKey) {
|
||||
return request({
|
||||
url: '/system/userConfig/currentUserConfig',
|
||||
method: 'get',
|
||||
params: { configKey }
|
||||
})
|
||||
}
|
||||
|
||||
// 保存当前用户的配置
|
||||
export function saveCurrentUserConfig(configKey, configValue) {
|
||||
return request({
|
||||
url: '/system/userConfig/saveCurrentUserConfig',
|
||||
method: 'post',
|
||||
params: { configKey, configValue }
|
||||
})
|
||||
}
|
||||
85
openhis-ui-vue3/src/api/tool/gen.js
Executable file
@@ -0,0 +1,85 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询生成表数据
|
||||
export function listTable(query) {
|
||||
return request({
|
||||
url: '/tool/gen/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 查询db数据库列表
|
||||
export function listDbTable(query) {
|
||||
return request({
|
||||
url: '/tool/gen/db/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询表详细信息
|
||||
export function getGenTable(tableId) {
|
||||
return request({
|
||||
url: '/tool/gen/' + tableId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 修改代码生成信息
|
||||
export function updateGenTable(data) {
|
||||
return request({
|
||||
url: '/tool/gen',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 导入表
|
||||
export function importTable(data) {
|
||||
return request({
|
||||
url: '/tool/gen/importTable',
|
||||
method: 'post',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 创建表
|
||||
export function createTable(data) {
|
||||
return request({
|
||||
url: '/tool/gen/createTable',
|
||||
method: 'post',
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
// 预览生成代码
|
||||
export function previewTable(tableId) {
|
||||
return request({
|
||||
url: '/tool/gen/preview/' + tableId,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 删除表数据
|
||||
export function delTable(tableId) {
|
||||
return request({
|
||||
url: '/tool/gen/' + tableId,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
|
||||
// 生成代码(自定义路径)
|
||||
export function genCode(tableName) {
|
||||
return request({
|
||||
url: '/tool/gen/genCode/' + tableName,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 同步数据库
|
||||
export function synchDb(tableName) {
|
||||
return request({
|
||||
url: '/tool/gen/synchDb/' + tableName,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
153
openhis-ui-vue3/src/api/workflow/task.js
Executable file
@@ -0,0 +1,153 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询待办任务列表
|
||||
export function listTodo(query) {
|
||||
return request({
|
||||
url: '/flowable/task/todoList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询已办任务列表
|
||||
export function listFinished(query) {
|
||||
return request({
|
||||
url: '/flowable/task/finishedList',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询我发起的流程
|
||||
export function myListProcess(query) {
|
||||
return request({
|
||||
url: '/flowable/task/myProcess',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 完成任务
|
||||
export function completeTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/complete',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 驳回任务
|
||||
export function rejectTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/reject',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 退回任务
|
||||
export function returnTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/return',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 认领/签收任务
|
||||
export function claimTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/claim',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 取消认领/签收任务
|
||||
export function unClaimTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/unClaim',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 委派任务
|
||||
export function delegateTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/delegateTask',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 任务归还
|
||||
export function resolveTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/resolveTask',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 转办任务
|
||||
export function assignTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/assignTask',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 取消申请
|
||||
export function stopProcess(data) {
|
||||
return request({
|
||||
url: '/flowable/task/stopProcess',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 撤回流程
|
||||
export function revokeProcess(data) {
|
||||
return request({
|
||||
url: '/flowable/task/revokeProcess',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除任务
|
||||
export function deleteTask(data) {
|
||||
return request({
|
||||
url: '/flowable/task/delete',
|
||||
method: 'delete',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取流程变量
|
||||
export function getProcessVariables(taskId) {
|
||||
return request({
|
||||
url: `/flowable/task/processVariables/${taskId}`,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 获取下一节点
|
||||
export function getNextFlowNode(data) {
|
||||
return request({
|
||||
url: '/flowable/task/nextFlowNode',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取任务表单
|
||||
export function getTaskForm(taskId) {
|
||||
return request({
|
||||
url: '/flowable/task/getTaskForm',
|
||||
method: 'get',
|
||||
params: { taskId }
|
||||
})
|
||||
}
|
||||
44
openhis-ui-vue3/src/api/ybmanagement/dayEndMedicalInsuranceSettlement.js
Executable file
@@ -0,0 +1,44 @@
|
||||
import request from '@/utils/request'
|
||||
|
||||
// 查询日结医保结算列表
|
||||
export function listDayEndMedicalInsuranceSettlement(query) {
|
||||
return request({
|
||||
url: '/ybmanage/dayEndMedicalInsuranceSettlement/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
|
||||
// 查询日结医保结算详细
|
||||
export function getDayEndMedicalInsuranceSettlement(id) {
|
||||
return request({
|
||||
url: '/ybmanage/dayEndMedicalInsuranceSettlement/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
// 新增日结医保结算
|
||||
export function addDayEndMedicalInsuranceSettlement(data) {
|
||||
return request({
|
||||
url: '/ybmanage/dayEndMedicalInsuranceSettlement',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改日结医保结算
|
||||
export function updateDayEndMedicalInsuranceSettlement(data) {
|
||||
return request({
|
||||
url: '/ybmanage/dayEndMedicalInsuranceSettlement',
|
||||
method: 'put',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 删除日结医保结算
|
||||
export function delDayEndMedicalInsuranceSettlement(id) {
|
||||
return request({
|
||||
url: '/ybmanage/dayEndMedicalInsuranceSettlement/' + id,
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
BIN
openhis-ui-vue3/src/assets/401_images/401.gif
Executable file
|
After Width: | Height: | Size: 160 KiB |
BIN
openhis-ui-vue3/src/assets/404_images/404.png
Executable file
|
After Width: | Height: | Size: 96 KiB |
BIN
openhis-ui-vue3/src/assets/404_images/404_cloud.png
Executable file
|
After Width: | Height: | Size: 4.7 KiB |
BIN
openhis-ui-vue3/src/assets/fonts/HarmonyOS_Sans_Black.ttf
Executable file
BIN
openhis-ui-vue3/src/assets/fonts/HarmonyOS_Sans_Bold.ttf
Executable file
BIN
openhis-ui-vue3/src/assets/fonts/HarmonyOS_Sans_Light.ttf
Executable file
BIN
openhis-ui-vue3/src/assets/fonts/HarmonyOS_Sans_Medium.ttf
Executable file
BIN
openhis-ui-vue3/src/assets/fonts/HarmonyOS_Sans_Regular.ttf
Executable file
BIN
openhis-ui-vue3/src/assets/fonts/HarmonyOS_Sans_Thin.ttf
Executable file
4
openhis-ui-vue3/src/assets/icons/drug.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M704 192H320c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V256c0-35.2-28.8-64-64-64z m-64 576H384V320h256v448z" fill="currentColor"/>
|
||||
<path d="M416 384h192v128H416z m0 192h128v64H416z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 331 B |
1
openhis-ui-vue3/src/assets/icons/svg/404.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M121.718 73.272v9.953c3.957-7.584 6.199-16.05 6.199-24.995C127.917 26.079 99.273 0 63.958 0 28.644 0 0 26.079 0 58.23c0 .403.028.806.028 1.21l22.97-25.953h13.34l-19.76 27.187h6.42V53.77l13.728-19.477v49.361H22.998V73.272H2.158c5.951 20.284 23.608 36.208 45.998 41.399-1.44 3.3-5.618 11.263-12.565 12.674-8.607 1.764 23.358.428 46.163-13.178 17.519-4.611 31.938-15.849 39.77-30.513h-13.506V73.272H85.02V59.464l22.998-25.977h13.008l-19.429 27.187h6.421v-7.433l13.727-19.402v39.433h-.027zm-78.24 2.822a10.516 10.516 0 0 1-.996-4.535V44.548c0-1.613.332-3.124.996-4.535a11.66 11.66 0 0 1 2.713-3.68c1.134-1.032 2.49-1.864 4.04-2.468 1.55-.605 3.21-.908 4.982-.908h11.292c1.77 0 3.431.303 4.981.908 1.522.604 2.85 1.41 3.986 2.418l-12.26 16.303v-2.898a1.96 1.96 0 0 0-.665-1.512c-.443-.403-.996-.604-1.66-.604-.665 0-1.218.201-1.661.604a1.96 1.96 0 0 0-.664 1.512v9.071L44.364 77.606a10.556 10.556 0 0 1-.886-1.512zm35.73-4.535c0 1.613-.332 3.124-.997 4.535a11.66 11.66 0 0 1-2.712 3.68c-1.134 1.032-2.49 1.864-4.04 2.469-1.55.604-3.21.907-4.982.907H55.185c-1.77 0-3.431-.303-4.981-.907-1.55-.605-2.906-1.437-4.041-2.47a12.49 12.49 0 0 1-1.384-1.512l13.727-18.217v6.375c0 .605.222 1.109.665 1.512.442.403.996.604 1.66.604.664 0 1.218-.201 1.66-.604a1.96 1.96 0 0 0 .665-1.512V53.87L75.97 36.838c.913.932 1.66 1.99 2.214 3.175.664 1.41.996 2.922.996 4.535v27.011h.028z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
4
openhis-ui-vue3/src/assets/icons/svg/appointment.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M768 192H256c-35.2 0-64 28.8-64 64v576c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64V256c0-35.2-28.8-64-64-64z m-64 576H320V320h384v448z" fill="currentColor"/>
|
||||
<path d="M384 384h256v64H384z m0 128h192v64H384z m0 128h128v64H384z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 349 B |
4
openhis-ui-vue3/src/assets/icons/svg/billing.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M640 128H384c-35.2 0-64 28.8-64 64v640c0 35.2 28.8 64 64 64h256c35.2 0 64-28.8 64-64V192c0-35.2-28.8-64-64-64z m-64 640H448V256h128v512z" fill="currentColor"/>
|
||||
<path d="M480 320h64v128h-64z m-64 192h192v64H416z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 332 B |
1
openhis-ui-vue3/src/assets/icons/svg/bug.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M127.88 73.143c0 1.412-.506 2.635-1.518 3.669-1.011 1.033-2.209 1.55-3.592 1.55h-17.887c0 9.296-1.783 17.178-5.35 23.645l16.609 17.044c1.011 1.034 1.517 2.257 1.517 3.67 0 1.412-.506 2.635-1.517 3.668-.958 1.033-2.155 1.55-3.593 1.55-1.438 0-2.635-.517-3.593-1.55l-15.811-16.063a15.49 15.49 0 0 1-1.196 1.06c-.532.434-1.65 1.208-3.353 2.322a50.104 50.104 0 0 1-5.192 2.974c-1.758.87-3.94 1.658-6.546 2.364-2.607.706-5.189 1.06-7.748 1.06V47.044H58.89v73.062c-2.716 0-5.417-.367-8.106-1.102-2.688-.734-5.003-1.631-6.945-2.692a66.769 66.769 0 0 1-5.268-3.179c-1.571-1.057-2.73-1.94-3.476-2.65L33.9 109.34l-14.611 16.877c-1.066 1.14-2.344 1.711-3.833 1.711-1.277 0-2.422-.434-3.434-1.304-1.012-.978-1.557-2.187-1.635-3.627-.079-1.44.333-2.705 1.236-3.794l16.129-18.51c-3.087-6.197-4.63-13.644-4.63-22.342H5.235c-1.383 0-2.58-.517-3.592-1.55S.125 74.545.125 73.132c0-1.412.506-2.635 1.518-3.668 1.012-1.034 2.21-1.55 3.592-1.55h17.887V43.939L9.308 29.833c-1.012-1.033-1.517-2.256-1.517-3.669 0-1.412.505-2.635 1.517-3.668 1.012-1.034 2.21-1.55 3.593-1.55s2.58.516 3.593 1.55l13.813 14.106h67.396l13.814-14.106c1.012-1.034 2.21-1.55 3.592-1.55 1.384 0 2.581.516 3.593 1.55 1.012 1.033 1.518 2.256 1.518 3.668 0 1.413-.506 2.636-1.518 3.67l-13.814 14.105v23.975h17.887c1.383 0 2.58.516 3.593 1.55 1.011 1.033 1.517 2.256 1.517 3.668l-.005.01zM89.552 26.175H38.448c0-7.23 2.489-13.386 7.466-18.469C50.892 2.623 56.92.082 64 .082c7.08 0 13.108 2.541 18.086 7.624 4.977 5.083 7.466 11.24 7.466 18.469z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
3
openhis-ui-vue3/src/assets/icons/svg/build.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1568899741379" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2054"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M960 591.424V368.96c0-0.288 0.16-0.512 0.16-0.768S960 367.68 960 367.424V192a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v175.424c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768v222.464c0 0.288-0.16 0.512-0.16 0.768s0.16 0.48 0.16 0.768V864a32 32 0 0 0 32 32h832a32 32 0 0 0 32-32v-271.04c0-0.288 0.16-0.512 0.16-0.768S960 591.68 960 591.424z m-560-31.232v-160H608v160h-208z m208 64V832h-208v-207.808H608z m-480-224h208v160H128v-160z m544 0h224v160h-224v-160zM896 224v112.192H128V224h768zM128 624.192h208V832H128v-207.808zM672 832v-207.808h224V832h-224z" p-id="2055"></path></svg>
|
||||
|
After Width: | Height: | Size: 917 B |
3
openhis-ui-vue3/src/assets/icons/svg/button.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1588670460195" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1314"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M230.4 307.712c13.824 0 25.088-11.264 25.088-25.088 0-100.352 81.92-182.272 182.272-182.272s182.272 81.408 182.272 182.272c0 13.824 11.264 25.088 25.088 25.088s25.088-11.264 24.576-25.088c0-127.488-103.936-231.936-231.936-231.936S205.824 154.624 205.824 282.624c-0.512 14.336 10.752 25.088 24.576 25.088z m564.736 234.496c-11.264 0-21.504 2.048-31.232 6.144 0-44.544-40.448-81.92-88.064-81.92-14.848 0-28.16 3.584-39.936 10.24-13.824-28.16-44.544-48.128-78.848-48.128-12.288 0-24.576 2.56-35.328 7.68V284.16c0-45.568-37.888-81.92-84.48-81.92s-84.48 36.864-84.48 81.92v348.672l-69.12-112.64c-18.432-28.16-58.368-36.864-91.136-19.968-26.624 14.336-46.592 47.104-30.208 88.064 3.072 8.192 76.8 205.312 171.52 311.296 0 0 28.16 24.576 43.008 58.88 4.096 9.728 13.312 15.36 22.528 15.36 3.072 0 6.656-0.512 9.728-2.048 12.288-5.12 18.432-19.968 12.8-32.256-19.456-44.544-53.76-74.752-53.76-74.752C281.6 768 209.408 573.44 208.384 570.88c-5.12-12.8-2.56-20.992 7.168-26.112 9.216-4.608 21.504-4.608 26.112 2.56l113.152 184.32c4.096 8.704 12.8 14.336 22.528 14.336 13.824 0 25.088-10.752 25.088-25.088V284.16c0-17.92 15.36-32.256 34.816-32.256s34.816 14.336 34.816 32.256v284.16c0 13.824 10.24 25.088 24.576 25.088 13.824 0 25.088-11.264 25.088-25.088v-57.344c0-17.92 15.36-32.768 34.816-32.768 19.968 0 37.376 15.36 37.376 32.768v95.232c0 7.168 3.072 13.312 7.68 17.92 4.608 4.608 10.752 7.168 17.92 7.168 13.824 0 24.576-11.264 24.576-25.088V547.84c0-18.432 13.824-32.256 32.256-32.256 20.48 0 38.912 15.36 38.912 32.256v95.232c0 13.824 11.264 25.088 25.088 25.088s24.576-11.264 25.088-25.088v-18.944c0-18.944 12.8-32.256 30.72-32.256 18.432 0 22.528 18.944 22.528 31.744 0 1.024-11.776 99.84-50.688 173.056-30.72 58.368-45.056 112.128-51.2 146.944-2.56 13.312 6.656 26.112 19.968 28.672 1.536 0 3.072 0.512 4.608 0.512 11.776 0 22.016-8.192 24.064-20.48 5.632-31.232 18.432-79.36 46.08-132.608 43.52-81.92 55.808-186.88 56.32-193.536-0.512-50.688-29.696-83.968-72.704-83.968z"></path></path></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
3
openhis-ui-vue3/src/assets/icons/svg/cascader.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1576153230908" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="971"
|
||||
width="81" height="81"><defs><style type="text/css"></style></defs><path d="M772.87036133 734.06115723c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714843H475.90991211c-56.60705567 0-102.66723633-46.06018067-102.66723633-102.66723633V600.82446289h305.859375c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012S827.9942627 467.50537109 772.87036133 467.50537109c-43.34106445 0-80.00793458 27.93273926-93.76831055 66.57714844H373.24267578V401.01062011h321.92687989c55.12390137 0 99.94812012-44.82421875 99.94812011-99.94812011V190.07312011C795.11767578 134.94921875 750.29345703 90.125 695.16955567 90.125H251.12963867C196.0057373 90.125 151.18151855 134.94921875 151.18151855 190.07312011V301.0625c0 55.12390137 44.82421875 99.94812012 99.94812012 99.94812012h55.53588867v296.96044921c0 93.35632325 75.97045898 169.32678223 169.32678224 169.32678223h203.19213866c13.76037598 38.64440918 50.42724609 66.57714844 93.76831055 66.57714844 55.12390137 0 99.94812012-44.82421875 99.94812012-99.94812012s-44.90661622-99.86572266-100.03051758-99.86572265z m0-199.89624024c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857423s-14.91394043 33.28857422-33.28857422 33.28857421-33.28857422-14.91394043-33.28857422-33.28857421 14.91394043-33.28857422 33.28857422-33.28857422zM217.75866699 301.0625V190.07312011c0-18.37463379 14.91394043-33.28857422 33.28857423-33.28857421h444.03991698c18.37463379 0 33.28857422 14.91394043 33.28857422 33.28857422V301.0625c0 18.37463379-14.91394043 33.28857422-33.28857422 33.28857422H251.12963867c-18.37463379 0-33.37097168-14.91394043-33.37097168-33.28857422z m555.11169434 566.23535156c-18.37463379 0-33.28857422-14.91394043-33.28857422-33.28857422 0-18.37463379 14.91394043-33.28857422 33.28857422-33.28857422s33.28857422 14.91394043 33.28857422 33.28857422c0.08239747 18.29223633-14.91394043 33.28857422-33.28857422 33.28857422z" p-id="972"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
1
openhis-ui-vue3/src/assets/icons/svg/chart.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M0 54.857h36.571V128H0V54.857zM91.429 27.43H128V128H91.429V27.429zM45.714 0h36.572v128H45.714V0z"/></svg>
|
||||
|
After Width: | Height: | Size: 179 B |
3
openhis-ui-vue3/src/assets/icons/svg/checkbox.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1575982282951" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="902"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M828.40625 90.125H195.59375C137.375 90.125 90.125 137.375 90.125 195.59375v632.8125c0 58.21875 47.25 105.46875 105.46875 105.46875h632.8125c58.21875 0 105.46875-47.25 105.46875-105.46875V195.59375c0-58.21875-47.25-105.46875-105.46875-105.46875z m52.734375 738.28125c0 29.16-23.57015625 52.734375-52.734375 52.734375H195.59375c-29.109375 0-52.734375-23.574375-52.734375-52.734375V195.59375c0-29.109375 23.625-52.734375 52.734375-52.734375h632.8125c29.16 0 52.734375 23.625 52.734375 52.734375v632.8125z" p-id="903"></path><path d="M421.52890625 709.55984375a36.28125 36.28125 0 0 1-27.55265625-12.66890625L205.17453125 476.613125a36.28546875 36.28546875 0 0 1 55.10109375-47.22890625l164.986875 192.4846875 342.16171875-298.48078125a36.2896875 36.2896875 0 0 1 47.70984375 54.68765625L445.3859375 700.6203125a36.3234375 36.3234375 0 0 1-23.85703125 8.93953125z" p-id="904"></path></svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
1
openhis-ui-vue3/src/assets/icons/svg/clipboard.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M54.857 118.857h64V73.143H89.143c-1.902 0-3.52-.668-4.855-2.002-1.335-1.335-2.002-2.954-2.002-4.855V36.57H54.857v82.286zM73.143 16v-4.571a2.2 2.2 0 0 0-.677-1.61 2.198 2.198 0 0 0-1.609-.676H20.571c-.621 0-1.158.225-1.609.676a2.198 2.198 0 0 0-.676 1.61V16a2.2 2.2 0 0 0 .676 1.61c.451.45.988.676 1.61.676h50.285c.622 0 1.158-.226 1.61-.677.45-.45.676-.987.676-1.609zm18.286 48h21.357L91.43 42.642V64zM128 73.143v48c0 1.902-.667 3.52-2.002 4.855-1.335 1.335-2.953 2.002-4.855 2.002H52.57c-1.901 0-3.52-.667-4.854-2.002-1.335-1.335-2.003-2.953-2.003-4.855v-11.429H6.857c-1.902 0-3.52-.667-4.855-2.002C.667 106.377 0 104.759 0 102.857v-96c0-1.902.667-3.52 2.002-4.855C3.337.667 4.955 0 6.857 0h77.714c1.902 0 3.52.667 4.855 2.002 1.335 1.335 2.003 2.953 2.003 4.855V30.29c1 .622 1.856 1.29 2.569 2.003l29.147 29.147c1.335 1.335 2.478 3.145 3.429 5.43.95 2.287 1.426 4.383 1.426 6.291v-.018z"/></svg>
|
||||
|
After Width: | Height: | Size: 971 B |
4
openhis-ui-vue3/src/assets/icons/svg/code.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1546567861908" class="icon" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2422"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M318.577778 819.2L17.066667 512l301.511111-307.2 45.511111 45.511111L96.711111 512l267.377778 261.688889zM705.422222 819.2l-45.511111-45.511111L927.288889 512l-267.377778-261.688889 45.511111-45.511111L1006.933333 512zM540.785778 221.866667l55.751111 11.150222L483.157333 802.133333l-55.751111-11.093333z" p-id="2423"></path></svg>
|
||||
|
After Width: | Height: | Size: 685 B |
3
openhis-ui-vue3/src/assets/icons/svg/color.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1577252187056" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2508"
|
||||
width="81" height="81"><defs><style type="text/css"></style></defs><path d="M747.59340925 691.12859384c11.51396329 0.25305413 22.43746719-0.21087818 40.74171707-1.51832482 29.35428085-2.10878421 35.84933734-2.36183835 46.47761114-0.8856895 24.71495444 3.37405491 41.12129828 21.76265671 32.47528161 47.95376084-85.57447632 258.19957947-442.00123984 249.76444099-628.67084683 50.73735554-153.47733892-159.33976008-153.09775772-414.41833795 0.92786545-573.42069196 159.71934128-162.67163983 424.03439521-166.59397897 565.78689185 0.63263534 80.38686649 94.81095318 108.34934958 169.16669549 89.11723508 230.57450162-15.01454608 47.99593598-50.61082928 77.68762207-119.77896259 114.63352789-4.89237973 2.65706845-29.35428085 15.52065436-35.84933652 19.02123633-46.94154346 25.30541465-63.51659033 41.20565021-62.20914449 58.45550757 2.95229856 39.13904114 24.16667102 52.7196135 70.98168823 53.81618115z m44.41100207 50.10472101c-19.82257471 1.43397372-32.05352527 1.940082-45.63409763 1.6448519-70.34905207-1.60267593-115.98314969-30.91478165-121.38163769-101.64341492-3.45840683-46.05585397 24.7571304-73.13264758 89.24376132-107.96976837 6.7902866-3.66928501 31.37871396-16.57504688 36.06021551-19.06341229 57.69634516-30.83042972 85.15271997-53.73183005 94.76877722-84.47790866 12.77923398-40.78389304-9.10994898-98.94417051-79.24812286-181.6507002-121.17075953-142.97559219-350.14258521-139.60153647-489.2380134 2.06660824-134.49827774 138.84237405-134.79350784 362.12048163-0.42175717 501.637667 158.53842169 168.99799328 451.9968783 181.18676788 534.57688175-11.80919339-4.68150156 0.2952301-10.71262573 0.67481131-18.72600705 1.26527069z" p-id="2509"></path><path d="M346.03865637 637.18588562a78.82636652 78.82636652 0 0 0 78.32025825-79.29029883c0-43.69401562-35.005823-79.29029883-78.32025825-79.29029882a78.82636652 78.82636652 0 0 0-78.36243338 79.29029882c0 43.69401562 35.005823 79.29029883 78.36243338 79.29029883z m0-51.7495729a27.07679361 27.07679361 0 0 1-26.5706845-27.54072593c0-15.30977536 11.97789643-27.54072593 26.5706845-27.54072592 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072592a27.07679361 27.07679361 0 0 1-26.57068533 27.54072593zM475.7289063 807.11174353a78.82636652 78.82636652 0 0 0 78.3624334-79.29029882c0-43.69401562-34.96364785-79.29029883-78.32025825-79.29029883a78.82636652 78.82636652 0 0 0-78.32025742 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029882z m0-51.74957208a27.07679361 27.07679361 0 0 1-26.57068532-27.54072674c0-15.30977536 12.06224753-27.54072593 26.57068532-27.54072593 14.59278892 0 26.57068533 12.23095057 26.57068453 27.54072593a27.07679361 27.07679361 0 0 1-26.57068453 27.54072674zM601.24376214 377.21492718a78.82636652 78.82636652 0 0 0 78.32025742-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025742-79.29029882a78.82636652 78.82636652 0 0 0-78.32025823 79.29029883c0 43.69401562 34.96364785 79.29029883 78.32025824 79.29029883z m1e-8-51.74957208a27.07679361 27.07679361 0 0 1-26.57068534-27.54072675c0-15.30977536 11.97789643-27.54072593 26.57068534-27.54072591 14.55061295 0 26.57068533 12.23095057 26.57068451 27.54072592a27.07679361 27.07679361 0 0 1-26.57068451 27.54072674zM378.80916809 433.85687983a78.82636652 78.82636652 0 0 0 78.32025824-79.29029883c0-43.69401562-34.96364785-79.29029883-78.32025824-79.29029802a78.82636652 78.82636652 0 0 0-78.32025742 79.29029802c0 43.69401562 34.96364785 79.29029883 78.32025742 79.29029883z m0-51.74957209a27.07679361 27.07679361 0 0 1-26.57068451-27.54072674c0-15.30977536 11.97789643-27.54072593 26.57068451-27.54072593 14.55061295 0 26.57068533 12.23095057 26.57068533 27.54072593a27.07679361 27.07679361 0 0 1-26.57068533 27.54072674z" p-id="2510"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.9 KiB |
3
openhis-ui-vue3/src/assets/icons/svg/component.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1575804206892" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3145"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M826.56 470.016c-32.896 0-64.384 12.288-89.984 35.52l0-104.96c0-62.208-50.496-112.832-112.64-113.088L623.936 287.04 519.552 287.104C541.824 262.72 554.56 230.72 554.56 197.12c0-73.536-59.904-133.44-133.504-133.44-73.472 0-133.376 59.904-133.376 133.44 0 32.896 12.224 64.256 35.52 89.984L175.232 287.104l0 0.576C113.728 288.704 64 338.88 64 400.576l0.32 0 0.32 116.48C60.864 544.896 70.592 577.728 100.8 588.48c12.736 4.608 37.632 7.488 60.864-25.28 12.992-18.368 34.24-29.248 56.64-29.248 38.336 0 69.504 31.104 69.504 69.312 0 38.4-31.168 69.504-69.504 69.504-22.656 0-44.032-11.264-57.344-30.4C138.688 610.112 112.576 615.36 102.464 619.136c-29.824 10.752-39.104 43.776-38.144 67.392l0 160.384L64 846.912C64 909.248 114.752 960 177.216 960l446.272 0c62.4 0 113.152-50.752 113.152-113.152l0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.536 0 133.44-59.904 133.44-133.504C960 529.92 900.096 470.016 826.56 470.016zM826.56 672.896c-22.72 0-44.032-11.264-57.344-30.4-22.272-32.384-48.448-27.136-58.56-23.36-29.824 10.752-39.04 43.776-38.08 67.392l0 160.384c0 27.136-22.016 49.152-49.152 49.152L177.216 896.064C150.08 896 128 873.984 128 846.848l0.32 0 0-145.024c24.384 22.272 56.384 35.008 89.984 35.008 73.6 0 133.504-59.904 133.504-133.504 0-73.472-59.904-133.376-133.504-133.376-32.896 0-64.32 12.288-89.984 35.52l0-104.96L128 400.512c0-27.072 22.08-49.152 49.216-49.152L177.216 351.04 334.656 350.72c3.776 0.512 7.616 0.832 11.52 0.832 24.896 0 50.752-10.816 60.032-37.056 4.544-12.736 7.424-37.568-25.344-60.736C362.624 240.768 351.68 219.52 351.68 197.12c0-38.272 31.104-69.44 69.376-69.44 38.336 0 69.504 31.168 69.504 69.44 0 22.72-11.264 44.032-30.528 57.472C427.968 276.736 433.088 302.784 436.8 313.024c10.752 29.888 43.072 39.232 67.392 38.08l119.232 0 0 0.384c27.136 0 49.152 22.08 49.152 49.152l0.256 116.48c-3.776 27.84 6.016 60.736 36.224 71.488 12.736 4.608 37.632 7.488 60.8-25.28 13.056-18.368 34.24-29.248 56.704-29.248C864.832 534.016 896 565.12 896 603.392 896 641.728 864.832 672.896 826.56 672.896z" p-id="3146"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
1
openhis-ui-vue3/src/assets/icons/svg/dashboard.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="100" xmlns="http://www.w3.org/2000/svg"><path d="M27.429 63.638c0-2.508-.893-4.65-2.679-6.424-1.786-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.465 2.662-1.785 1.774-2.678 3.916-2.678 6.424 0 2.508.893 4.65 2.678 6.424 1.786 1.775 3.94 2.662 6.465 2.662 2.524 0 4.678-.887 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm13.714-31.801c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM71.714 65.98l7.215-27.116c.285-1.23.107-2.378-.536-3.443-.643-1.064-1.56-1.762-2.75-2.094-1.19-.33-2.333-.177-3.429.462-1.095.639-1.81 1.573-2.143 2.804l-7.214 27.116c-2.857.237-5.405 1.266-7.643 3.088-2.238 1.822-3.738 4.152-4.5 6.992-.952 3.644-.476 7.098 1.429 10.364 1.905 3.265 4.69 5.37 8.357 6.317 3.667.947 7.143.474 10.429-1.42 3.285-1.892 5.404-4.66 6.357-8.305.762-2.84.619-5.607-.429-8.305-1.047-2.697-2.762-4.85-5.143-6.46zm47.143-2.342c0-2.508-.893-4.65-2.678-6.424-1.786-1.775-3.94-2.662-6.465-2.662-2.524 0-4.678.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.786 1.775 3.94 2.662 6.464 2.662 2.524 0 4.679-.887 6.465-2.662 1.785-1.775 2.678-3.916 2.678-6.424zm-45.714-45.43c0-2.509-.893-4.65-2.679-6.425C68.68 10.01 66.524 9.122 64 9.122c-2.524 0-4.679.887-6.464 2.661-1.786 1.775-2.679 3.916-2.679 6.425 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zm32 13.629c0-2.508-.893-4.65-2.679-6.424-1.785-1.775-3.94-2.662-6.464-2.662-2.524 0-4.679.887-6.464 2.662-1.786 1.774-2.679 3.916-2.679 6.424 0 2.508.893 4.65 2.679 6.424 1.785 1.774 3.94 2.662 6.464 2.662 2.524 0 4.679-.888 6.464-2.662 1.786-1.775 2.679-3.916 2.679-6.424zM128 63.638c0 12.351-3.357 23.78-10.071 34.286-.905 1.372-2.19 2.058-3.858 2.058H13.93c-1.667 0-2.953-.686-3.858-2.058C3.357 87.465 0 76.037 0 63.638c0-8.613 1.69-16.847 5.071-24.703C8.452 31.08 13 24.312 18.714 18.634c5.715-5.68 12.524-10.199 20.429-13.559C47.048 1.715 55.333.035 64 .035c8.667 0 16.952 1.68 24.857 5.04 7.905 3.36 14.714 7.88 20.429 13.559 5.714 5.678 10.262 12.446 13.643 20.301 3.38 7.856 5.071 16.09 5.071 24.703z"/></svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
3
openhis-ui-vue3/src/assets/icons/svg/date-range.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1579774833889" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1376"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M887.466667 192.853333h-100.693334V119.466667c0-10.24-6.826667-17.066667-17.066666-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H303.786667V119.466667c0-10.24-6.826667-17.066667-17.066667-17.066667s-17.066667 6.826667-17.066667 17.066667v73.386666H168.96c-46.08 0-85.333333 37.546667-85.333333 85.333334V836.266667c0 46.08 37.546667 85.333333 85.333333 85.333333H887.466667c46.08 0 85.333333-37.546667 85.333333-85.333333V278.186667c0-47.786667-37.546667-85.333333-85.333333-85.333334z m-718.506667 34.133334h100.693333v66.56c0 10.24 6.826667 17.066667 17.066667 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56h450.56v66.56c0 10.24 6.826667 17.066667 17.066666 17.066666s17.066667-6.826667 17.066667-17.066666v-66.56H887.466667c27.306667 0 51.2 22.186667 51.2 51.2v88.746666H117.76v-88.746666c0-29.013333 22.186667-51.2 51.2-51.2zM887.466667 887.466667H168.96c-27.306667 0-51.2-22.186667-51.2-51.2V401.066667H938.666667V836.266667c0 27.306667-22.186667 51.2-51.2 51.2z" p-id="1377"></path><path d="M858.453333 493.226667H327.68c-10.24 0-17.066667 6.826667-17.066667 17.066666v114.346667h-116.053333c-10.24 0-17.066667 6.826667-17.066667 17.066667v133.12c0 10.24 6.826667 17.066667 17.066667 17.066666H460.8c10.24 0 17.066667-6.826667 17.066667-17.066666v-114.346667h380.586666c10.24 0 17.066667-6.826667 17.066667-17.066667v-133.12c0-10.24-6.826667-17.066667-17.066667-17.066666z m-413.013333 34.133333v97.28h-98.986667v-97.28h98.986667z m-230.4 131.413333h98.986667v98.986667h-98.986667v-98.986667z m131.413333 97.28v-97.28h98.986667v97.28h-98.986667z m133.12-228.693333h97.28v98.986667h-97.28v-98.986667z m131.413334 0h98.986666v98.986667h-98.986666v-98.986667z m230.4 97.28h-98.986667v-98.986667h98.986667v98.986667z" p-id="1378"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
3
openhis-ui-vue3/src/assets/icons/svg/date.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1577186573535" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1068"
|
||||
width="81" height="81"><defs><style type="text/css"></style></defs><path d="M479.85714249 608.42857168h64.28571502c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285751s-12.85714249-32.14285751-32.14285664-32.14285664h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285662s12.85714249 32.14285751 32.14285664 32.14285753z m-2e-8 122.14285665h64.28571504c19.28571417 0 32.14285751-12.85714249 32.14285664-32.14285665s-12.85714249-32.14285751-32.14285664-32.14285751h-64.28571504c-19.28571417 0-32.14285751 12.85714249-32.14285664 32.14285751s12.85714249 32.14285751 32.14285664 32.14285664z m353.57142921-559.28571416h-128.57142921v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285664-32.14285753s-32.14285751 12.85714249-32.14285751 32.14285753v32.14285664h-257.14285665v-32.14285664c0-19.28571417-12.85714249-32.14285751-32.14285752-32.14285753s-32.14285751 12.85714249-32.14285664 32.14285753v32.14285664h-128.57142919c-70.71428585 0-128.57142832 57.85714249-128.57142832 122.14285751v501.42857081c0 70.71428585 57.85714249 128.57142832 128.57142832 122.14285751h642.85714335c70.71428585 0 128.57142832-57.85714249 128.57142833-122.14285751v-501.42857081c0-70.71428585-57.85714249-122.14285753-128.57142833-122.14285751z m64.28571415 623.57142832c0 32.14285751-32.14285751 64.28571415-64.28571416 64.28571504h-642.85714335c-32.14285751 0-64.28571415-25.71428583-64.28571417-64.28571504v-372.85714249h771.42857168v372.85714249z m0-437.14285664h-771.42857168v-64.28571417c0-32.14285751 32.14285751-64.28571415 64.28571417-64.28571415h128.57142919v32.14285664c0 19.28571417 12.85714249 32.14285751 32.14285664 32.14285751s32.14285751-12.85714249 32.14285753-32.14285751v-32.14285664h257.14285665v32.14285664c0 19.28571417 12.85714249 32.14285751 32.1428575 32.14285751s32.14285751-12.85714249 32.14285664-32.14285751v-32.14285664h128.57142921c32.14285751 0 64.28571415 25.71428583 64.28571415 64.28571415v64.28571417z m-610.71428583 372.85714247h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285664s-12.85714249-32.14285751-32.14285753-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285751s12.85714249 32.14285751 32.14285751 32.14285665z m385.71428583-122.14285664h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285751s-12.85714249-32.14285751-32.14285751-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285664s12.85714249 32.14285751 32.14285753 32.14285751z m-385.71428583 0h64.28571415c19.28571417 0 32.14285751-12.85714249 32.14285753-32.14285751s-12.85714249-32.14285751-32.14285753-32.14285664h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285751 32.14285664s12.85714249 32.14285751 32.14285751 32.14285751z m385.71428583 122.14285665h64.28571417c19.28571417 0 32.14285751-12.85714249 32.14285751-32.14285665s-12.85714249-32.14285751-32.14285751-32.14285751h-64.28571415c-19.28571417 0-32.14285751 12.85714249-32.14285753 32.14285751s12.85714249 32.14285751 32.14285753 32.14285665z" p-id="1069"></path></svg>
|
||||
|
After Width: | Height: | Size: 3.3 KiB |
4
openhis-ui-vue3/src/assets/icons/svg/diagnosis.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M832 192H192c-35.2 0-64 28.8-64 64v512c0 35.2 28.8 64 64 64h640c35.2 0 64-28.8 64-64V256c0-35.2-28.8-64-64-64z m-64 512H256V320h512v384z" fill="currentColor"/>
|
||||
<path d="M320 384h128v128H320z m256 0h128v128H576z m-256 192h128v64H320z m256 0h128v64H576z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 373 B |
3
openhis-ui-vue3/src/assets/icons/svg/dict.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1566035680909" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3601"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M1002.0848 744.672l-33.568 10.368c0.96 7.264 2.144 14.304 2.144 21.76 0 7.328-1.184 14.432-2.368 21.568l33.792 10.56c7.936 2.24 14.496 7.616 18.336 14.752 3.84 7.328 4.672 15.808 1.952 23.552-5.376 16-23.168 24.672-39.936 19.68l-34.176-10.624c-7.136 12.8-15.776 24.672-26.208 35.2l20.8 27.488a28.96 28.96 0 0 1 5.824 22.816 29.696 29.696 0 0 1-12.704 19.616 32.544 32.544 0 0 1-44.416-6.752l-20.8-27.552c-13.696 6.56-28.192 11.2-43.008 13.888v33.632c0 16.736-14.112 30.432-31.648 30.432-17.6 0-31.872-13.696-31.872-30.432v-33.632a167.616 167.616 0 0 1-42.88-13.888l-20.928 27.552c-10.72 13.76-30.08 16.64-44.288 6.752a29.632 29.632 0 0 1-12.704-19.616 29.28 29.28 0 0 1 5.696-22.816l20.896-27.808a166.72 166.72 0 0 1-27.008-34.688l-33.376 10.432c-16.8 5.184-34.56-3.552-39.936-19.616a29.824 29.824 0 0 1 20.224-38.24l33.472-10.432c-0.8-7.264-2.016-14.304-2.016-21.824 0-7.36 1.184-14.496 2.304-21.632l-33.792-10.368c-16.672-5.376-25.632-22.496-20.224-38.432 5.376-16 23.136-24.672 39.936-19.68l34.016 10.752c7.328-12.672 15.84-24.8 26.336-35.328l-20.8-27.552a29.44 29.44 0 0 1 6.944-42.432 32.704 32.704 0 0 1 44.384 6.752l20.832 27.616c13.696-6.432 28.224-11.2 43.104-13.952v-33.568c0-16.736 14.048-30.432 31.648-30.432 17.536 0 31.808 13.568 31.808 30.432v33.504c15.072 2.688 29.344 7.808 42.848 14.016l20.992-27.616a32.48 32.48 0 0 1 44.224-6.752 29.568 29.568 0 0 1 7.136 42.432l-21.024 27.808c10.432 10.432 19.872 21.888 27.04 34.752l33.376-10.432c16.768-5.12 34.56 3.68 39.936 19.68 5.536 15.936-3.712 33.056-20.32 38.304z m-206.016-74.432c-61.344 0-111.136 47.808-111.136 106.56 0 58.88 49.792 106.496 111.136 106.496 61.312 0 111.104-47.616 111.104-106.496 0-58.752-49.792-106.56-111.104-106.56z" p-id="3602"></path><path d="M802.7888 57.152h-76.448c0-22.08-21.024-38.24-42.848-38.24H39.3968a39.68 39.68 0 0 0-39.36 40.032v795.616s41.888 120.192 110.752 120.192H673.2848a227.488 227.488 0 0 1-107.04-97.44H117.6368s-40.608-13.696-40.608-41.248l470.304-0.256 1.664 3.36a227.68 227.68 0 0 1-12.64-73.632c0-60.576 24-118.624 66.88-161.44a228.352 228.352 0 0 1 123.552-63.392l-3.2 0.288 2.144-424.672h38.208l0.576 421.024c27.04 0 52.672 4.8 76.64 13.344V101.536c0.032 0-6.304-44.384-38.368-44.384zM149.7648 514.336H72.3888v-77.408H149.7648v77.408z m0-144.32H72.3888v-77.44H149.7648v77.44z m0-137.248H72.3888v-77.44H149.7648v77.44z m501.856 281.568H206.0848v-77.408h445.536v77.408z m0-144.32H206.0848v-77.44h445.536v77.44z m0-137.248H206.0848v-77.44h445.536v77.44z" p-id="3603"></path></svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
4
openhis-ui-vue3/src/assets/icons/svg/doctor.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 64c-106.04 0-192 85.96-192 192 0 106.04 85.96 192 192 192 106.04 0 192-85.96 192-192 0-106.04-85.96-192-192-192z m0 320c-70.58 0-128-57.42-128-128 0-70.58 57.42-128 128-128 70.58 0 128 57.42 128 128 0 70.58-57.42 128-128 128z" fill="currentColor"/>
|
||||
<path d="M736 640h-64c-17.68 0-32 14.32-32 32v256c0 17.68 14.32 32 32 32h64c17.68 0 32-14.32 32-32v-256c0-17.68-14.32-32-32-32z m-192 0h-64c-17.68 0-32 14.32-32 32v256c0 17.68 14.32 32 32 32h64c17.68 0 32-14.32 32-32v-256c0-17.68-14.32-32-32-32z m-192 0h-64c-17.68 0-32 14.32-32 32v256c0 17.68 14.32 32 32 32h64c17.68 0 32-14.32 32-32v-256c0-17.68-14.32-32-32-32z m416-128c-17.68 0-32-14.32-32-32v-64H288v64c0 17.68-14.32 32-32 32h-64c-17.68 0-32-14.32-32-32V352c0-17.68 14.32-32 32-32h544c17.68 0 32 14.32 32 32v128c0 17.68-14.32 32-32 32z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 916 B |
1
openhis-ui-vue3/src/assets/icons/svg/documentation.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M71.984 44.815H115.9L71.984 9.642v35.173zM16.094.05h63.875l47.906 38.37v76.74c0 3.392-1.682 6.645-4.677 9.044-2.995 2.399-7.056 3.746-11.292 3.746H16.094c-4.236 0-8.297-1.347-11.292-3.746-2.995-2.399-4.677-5.652-4.677-9.044V12.84C.125 5.742 7.23.05 16.094.05zm71.86 102.32V89.58h-71.86v12.79h71.86zm23.952-25.58V64H16.094v12.79h95.812z"/></svg>
|
||||
|
After Width: | Height: | Size: 418 B |
3
openhis-ui-vue3/src/assets/icons/svg/download.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1569915748289" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3062"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M768.35456 416a256 256 0 1 0-512 0 192 192 0 1 0 0 384v64a256 256 0 0 1-58.88-505.216 320.128 320.128 0 0 1 629.76 0A256.128 256.128 0 0 1 768.35456 864v-64a192 192 0 0 0 0-384z m-512 384h64v64H256.35456v-64z m448 0h64v64h-64v-64z" fill="#333333" p-id="3063"></path><path d="M539.04256 845.248V512.192a32.448 32.448 0 0 0-32-32.192c-17.664 0-32 14.912-32 32.192v333.056l-36.096-36.096a32.192 32.192 0 0 0-45.056 0.192 31.616 31.616 0 0 0-0.192 45.056l90.88 90.944a31.36 31.36 0 0 0 22.528 9.088 30.08 30.08 0 0 0 22.4-9.088l90.88-90.88a32.192 32.192 0 0 0-0.192-45.12 31.616 31.616 0 0 0-45.056-0.192l-36.096 36.096z" fill="#333333" p-id="3064"></path></svg>
|
||||
|
After Width: | Height: | Size: 998 B |
1
openhis-ui-vue3/src/assets/icons/svg/drag.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M73.137 29.08h-9.209 29.7L63.886.093 34.373 29.08h20.49v27.035H27.238v17.948h27.625v27.133h18.274V74.063h27.41V56.115h-27.41V29.08zm-9.245 98.827l27.518-26.711H36.59l27.302 26.71zM.042 64.982l27.196 27.029V38.167L.042 64.982zm100.505-26.815V92.01l27.41-27.029-27.41-26.815z"/></svg>
|
||||
|
After Width: | Height: | Size: 356 B |
3
openhis-ui-vue3/src/assets/icons/svg/druid.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg t="1566036347051" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5853"
|
||||
width="200" height="200"><defs><style type="text/css"></style></defs><path d="M832 128H192a64.19 64.19 0 0 0-64 64v640a64.19 64.19 0 0 0 64 64h640a64.19 64.19 0 0 0 64-64V192a64.19 64.19 0 0 0-64-64z m0 703.89l-0.11 0.11H192.11l-0.11-0.11V768h640zM832 544H720L605.6 696.54 442.18 435.07 333.25 544H192v-64h114.75l147.07-147.07L610.4 583.46 688 480h144z m0-288H192v-63.89l0.11-0.11h639.78l0.11 0.11z" p-id="5854"></path></svg>
|
||||
|
After Width: | Height: | Size: 687 B |
1
openhis-ui-vue3/src/assets/icons/svg/edit.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M106.133 67.2a4.797 4.797 0 0 0-4.8 4.8c0 .187.014.36.027.533h-.027V118.4H9.6V26.667h50.133c2.654 0 4.8-2.147 4.8-4.8 0-2.654-2.146-4.8-4.8-4.8H9.6a9.594 9.594 0 0 0-9.6 9.6V118.4c0 5.307 4.293 9.6 9.6 9.6h91.733c5.307 0 9.6-4.293 9.6-9.6V72.533h-.026c.013-.173.026-.346.026-.533 0-2.653-2.146-4.8-4.8-4.8z"/><path d="M125.16 13.373L114.587 2.8c-3.747-3.747-9.854-3.72-13.6.027l-52.96 52.96a4.264 4.264 0 0 0-.907 1.36L33.813 88.533c-.746 1.76-.226 3.534.907 4.68 1.133 1.147 2.92 1.667 4.693.92l31.4-13.293c.507-.213.96-.52 1.36-.907l52.96-52.96c3.747-3.746 3.774-9.853.027-13.6zM66.107 72.4l-18.32 7.76 7.76-18.32L92.72 24.667l10.56 10.56L66.107 72.4zm52.226-52.227l-8.266 8.267-10.56-10.56 8.266-8.267.027-.026 10.56 10.56-.027.026z"/></svg>
|
||||
|
After Width: | Height: | Size: 818 B |
1
openhis-ui-vue3/src/assets/icons/svg/education.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M88.883 119.565c-7.284 0-19.434 2.495-21.333 8.25v.127c-4.232.13-5.222 0-7.108 0-1.895-5.76-14.045-8.256-21.333-8.256H0V0h42.523c9.179 0 17.109 5.47 21.47 13.551C68.352 5.475 76.295 0 85.478 0H128v119.57l-39.113-.005h-.004zM60.442 24.763c0-9.651-8.978-16.507-17.777-16.507H7.108V111.43H39.11c7.054-.14 18.177.082 21.333 6.12v-4.628c-.134-5.722-.004-13.522 0-13.832V27.413l.004-2.655-.004.005zm60.442-16.517h-35.55c-8.802 0-17.78 6.856-17.78 16.493v74.259c.004.32.138 8.115 0 13.813v4.627c3.155-6.022 14.279-6.26 21.333-6.114h32V8.25l-.003-.005z"/></svg>
|
||||
|
After Width: | Height: | Size: 627 B |
1
openhis-ui-vue3/src/assets/icons/svg/email.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="96" xmlns="http://www.w3.org/2000/svg"><path d="M64.125 56.975L120.188.912A12.476 12.476 0 0 0 115.5 0h-103c-1.588 0-3.113.3-4.513.838l56.138 56.137z"/><path d="M64.125 68.287l-62.3-62.3A12.42 12.42 0 0 0 0 12.5v71C0 90.4 5.6 96 12.5 96h103c6.9 0 12.5-5.6 12.5-12.5v-71a12.47 12.47 0 0 0-1.737-6.35L64.125 68.287z"/></svg>
|
||||
|
After Width: | Height: | Size: 347 B |
4
openhis-ui-vue3/src/assets/icons/svg/emergency.svg
Executable file
@@ -0,0 +1,4 @@
|
||||
<svg class="icon" viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M512 64C262.4 64 64 262.4 64 512s198.4 448 448 448 448-198.4 448-448S761.6 64 512 64z m0 768c-176.8 0-320-143.2-320-320s143.2-320 320-320 320 143.2 320 320-143.2 320-320 320z" fill="currentColor"/>
|
||||
<path d="M480 352h64v192h-64z m0 256h64v64h-64z" fill="currentColor"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 367 B |
1
openhis-ui-vue3/src/assets/icons/svg/example.svg
Executable file
@@ -0,0 +1 @@
|
||||
<svg width="128" height="128" xmlns="http://www.w3.org/2000/svg"><path d="M96.258 57.462h31.421C124.794 27.323 100.426 2.956 70.287.07v31.422a32.856 32.856 0 0 1 25.971 25.97zm-38.796-25.97V.07C27.323 2.956 2.956 27.323.07 57.462h31.422a32.856 32.856 0 0 1 25.97-25.97zm12.825 64.766v31.421c30.46-2.885 54.507-27.253 57.713-57.712H96.579c-2.886 13.466-13.146 23.726-26.292 26.291zM31.492 70.287H.07c2.886 30.46 27.253 54.507 57.713 57.713V96.579c-13.466-2.886-23.726-13.146-26.291-26.292z"/></svg>
|
||||
|
After Width: | Height: | Size: 497 B |