diff --git a/src/api/liswork/qualityControl/index.ts b/src/api/liswork/qualityControl/index.ts
index 5826185..a86333a 100644
--- a/src/api/liswork/qualityControl/index.ts
+++ b/src/api/liswork/qualityControl/index.ts
@@ -211,3 +211,19 @@ export function savemonthskzj(data?: Object) {
data
})
}
+//查询质控数据
+export function qcgraphList(data?: Object) {
+ return request({
+ url: '/qcgraph/query',
+ method: 'get',
+ params: data
+ })
+}
+//查询质控参数列表
+export function querySample(data?: Object) {
+ return request({
+ url: '/qcgraph/querysample',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/views/liswork/qualityControl/qcgraph/index.vue b/src/views/liswork/qualityControl/qcgraph/index.vue
index a8eac67..a654fa0 100644
--- a/src/views/liswork/qualityControl/qcgraph/index.vue
+++ b/src/views/liswork/qualityControl/qcgraph/index.vue
@@ -279,7 +279,6 @@ const getEcharts = () => {
yAxis: [{
name: 'SD',
type: 'value',
- inverse: false,
splitLine: { show: true, lineStyle: { type: 'dashed' } },
axisLabel: { formatter: '{value}', color: '#474747', fontSize: 14 },
axisTick: { show: false },
diff --git a/src/views/liswork/qualityControl/westGard/index.vue b/src/views/liswork/qualityControl/westGard/index.vue
new file mode 100644
index 0000000..7eb7d17
--- /dev/null
+++ b/src/views/liswork/qualityControl/westGard/index.vue
@@ -0,0 +1,638 @@
+/**
+* @file index.vue 质控图westGard
+* @author: w
+* @since: 2026-02-04
+*/
+
+
+
+
+
+
+ 画图
+ 打印
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+ { queryParams.zkph = '' }" size="small" />
+
+
+
+
+
+
+ 计算均值
+ 评价
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.xmdh }} {{ row.xmmc }}
+
+
+
+
+
+
+
+
+
+
标准:
+
+
+
+ {{ row.zkph }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
当前图表数据:
+
+
+
+
{{ item.zkrqMonth }}
+
+
{{ item['zkjg' + v] }}
+
+
{{ item.yhdh }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提示:请选择计算起始和截止日期,系统自动计算出靶值和SD,计算完毕后可以按“确定”按钮返回计算值,也可以按“取消”按钮直接关闭窗口。
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/liswork/specimenMonitoring/index.vue b/src/views/liswork/specimenMonitoring/index.vue
index ccb559d..588c97d 100644
--- a/src/views/liswork/specimenMonitoring/index.vue
+++ b/src/views/liswork/specimenMonitoring/index.vue
@@ -8,8 +8,7 @@
-
+
@@ -26,8 +25,7 @@
-
+
@@ -43,10 +41,11 @@
查询
重置
+ 导出
-
+
@@ -55,8 +54,8 @@
-
-
+
+
@@ -73,11 +72,11 @@
-
+
+ label="zdmc" value="zddh" objKey="zddh" placeholder="请选择部门" />
@@ -89,7 +88,7 @@
@change="handletime" style="width: 46%;" />
-
+
@@ -104,8 +103,8 @@
@@ -127,6 +126,9 @@
+
+
+
{{ formatDict(row.zt.trim(), 'ST') }}
@@ -152,13 +154,13 @@ import YQSelectTable from '@/components/SelectTable/YQSelectTable'
import dayjs from 'dayjs'
import { getComDicts } from '@/api/liswork/dict/ComDict';
import { wholeprocessList } from '@/api/liswork/work/LisWork'
-import { load } from '@fingerprintjs/fingerprintjs';
+import { feeitemclassList } from '@/api/mzcx/index';
const { proxy } = getCurrentInstance();
const { lis_reqzt_type } = proxy.useDict("lis_reqzt_type"); //参数类别
const isExpand = ref(false);
-let queryParams = reactive({
+const queryParams = ref({
sqsj1: '',
sqsj2: '',
brdh: '',
@@ -166,6 +168,8 @@ let queryParams = reactive({
sqh: '',
mxjjzt: '',
jjzt: '',
+ jssj1: '',
+ jssj2: '',
pageNum: 1,
pageSize: 500,
})
@@ -173,7 +177,7 @@ let queryParams = reactive({
const sumMoney = ref(0)
const total = ref(0)
-
+const feeitemList = ref([])
const loading = ref(false)
// 数据源
const tableData = ref([])
@@ -182,7 +186,7 @@ const columns = ref([
{ field: 'yljg', title: '送检医院', align: 'center', resizable: true, slotName: 'yljg', width: 150 },
{ field: 'brlyname', title: '病人来源', align: 'center', resizable: true, width: 60 },
{ field: 'ksname', title: '申请科室', resizable: true, align: 'center', width: 100 },
- { field: 'yblx', title: '标本', align: 'center', resizable: true, width: 60 },
+ { field: 'yblxname', title: '标本', align: 'center', resizable: true, width: 60 },
{ field: 'ch', title: '床号', resizable: true, align: 'center', width: 40 },//sortable: true,
{ field: 'brxm', title: '姓名', align: 'center', resizable: true, width: 50 },
{ field: 'brxbname', title: '性别', align: 'center', resizable: true, width: 30 },
@@ -195,9 +199,9 @@ const columns = ref([
{ field: 'dj', title: '单价', align: 'center', resizable: true, width: 60 },
{ field: 'mxjjzt', title: '明细计价', align: 'center', resizable: true, width: 60, slotName: 'mxjjzt' },
{ field: 'jzbz', title: '急', align: 'center', resizable: true, slotName: 'jzbz', width: 30 },
- { field: 'zt', title: '当前状态', align: 'center', resizable: true, slotName: 'zt', width: 60 },
- { field: 'refused', title: '拒收标记', align: 'center', resizable: true, slotName: 'bj', width: 60 },
- { field: 'sqxmdh', title: '项目代号', align: 'center', resizable: true, width: 60 },
+ { field: 'ztname', title: '当前状态', align: 'center', resizable: true, width: 60 },
+ { field: 'refused', title: '拒收标记', align: 'center', resizable: true, slotName: 'refused', width: 60 },
+ { field: 'sqxmdh', title: '项目代号', align: 'center', resizable: true, width: 80 },
{ field: 'sqysname', title: '申请医生', align: 'center', resizable: true, width: 60 },
{ field: 'sqsj', title: '申请时间', align: 'center', resizable: true, width: 150 },
{ field: 'zxysname', title: '执行医生', align: 'center', resizable: true, width: 60 },
@@ -206,47 +210,45 @@ const columns = ref([
{ field: 'bbsjsj', title: '标本送出时间', align: 'center', resizable: true, width: 150 },
{ field: 'jssj', title: '接收时间', align: 'center', resizable: true, width: 150 },
{ field: 'sjsj', title: '上机时间', align: 'center', resizable: true, width: 150 },
- { field: 'confirmer', title: '审核人', align: 'center', resizable: true, width: 60 },
+ { field: 'confirmername', title: '审核人', align: 'center', resizable: true, width: 60 },
{ field: 'confirmtime', title: '审核时间', align: 'center', resizable: true, width: 150 },
{ field: 'cyrname', title: '采样人', align: 'center', resizable: true, width: 60 },
{ field: 'bbsjrname', title: '标本送出人', align: 'center', resizable: true, width: 80 },
{ field: 'jsysname', title: '接收医生', align: 'center', resizable: true, width: 60 },
- { field: 'zd', title: '诊断', align: 'center', resizable: true, width: 60 },
- { field: 'inputman', title: '录入人', align: 'center', resizable: true, width: 60 },
- { field: 'powerman', title: '批准人', align: 'center', resizable: true, width: 60 },
- { field: 'contactman', title: '联系人', align: 'center', resizable: true, width: 60 },
- { field: 'xh', title: '相关编号', align: 'center', resizable: true, width: 60 },
- { field: 'inzt', title: '是否销毁', align: 'center', resizable: true, slotName: 'inzt', width: 60 },
- { field: 'libpos', title: '存放位置', align: 'center', resizable: true, width: 60 },
- { field: 'inlibtime', title: '存放时间', align: 'center', resizable: true, width: 60 },
- { field: 'inlibman', title: '存放人', align: 'center', resizable: true, width: 60 },
- { field: 'outlibtime', title: '销毁时间', align: 'center', resizable: true, width: 60 },
- { field: 'outlibman', title: '销毁人', align: 'center', resizable: true, width: 60 },
- { field: 'yqdh', title: '上机仪器', align: 'center', resizable: true, width: 60 },
+ { field: 'zd', title: '诊断', align: 'center', resizable: true, width: 120 },
+ // { field: 'inputman', title: '录入人', align: 'center', resizable: true, width: 60 },
+ // { field: 'powerman', title: '批准人', align: 'center', resizable: true, width: 60 },
+ // { field: 'contactman', title: '联系人', align: 'center', resizable: true, width: 60 },
+ // { field: 'inzt', title: '是否销毁', align: 'center', resizable: true, slotName: 'inzt', width: 60 },
+ // { field: 'libpos', title: '存放位置', align: 'center', resizable: true, width: 60 },
+ // { field: 'inlibtime', title: '存放时间', align: 'center', resizable: true, width: 60 },
+ // { field: 'inlibman', title: '存放人', align: 'center', resizable: true, width: 60 },
+ // { field: 'outlibtime', title: '销毁时间', align: 'center', resizable: true, width: 60 },
+ // { field: 'outlibman', title: '销毁人', align: 'center', resizable: true, width: 60 },
+ { field: 'yqname', title: '上机仪器', align: 'center', resizable: true, width: 120 },
{ field: 'phone', title: '病人联系电话', align: 'center', resizable: true, width: 100 },
{ field: 'phone1', title: '家属联系电话', align: 'center', resizable: true, width: 100 },
- { field: 'sfzh', title: '身份证号', align: 'center', resizable: true, width: 60 },
- { field: 'cp_cytojs', title: '接收TAT', align: 'center', resizable: true, width: 60 },
- { field: 'cp_jstobg', title: '报告TAT', align: 'center', resizable: true, width: 60 },
+ { field: 'sfzh', title: '身份证号', align: 'center', resizable: true, width: 100 },
+ { field: 'cp_cytojs', title: '接收TAT', align: 'center', resizable: true, width: 100 },
+ { field: 'cp_jstobg', title: '报告TAT', align: 'center', resizable: true, width: 100 },
{ field: 'min1', title: '接收规定TAT', align: 'center', resizable: true, width: 100 },
{ field: 'min2', title: '报告规定TAT', align: 'center', resizable: true, width: 100 },
])
const handleColumnDragEnd = (data) => {
- console.log("🚀 ~ handleColumnDragEnd ~ data:", data)
columns.value = [];
nextTick(() => {
columns.value = [...data.columns];
});
}
const handletime = () => {
- const dayDiff = classCom.getDayDiff(queryParams.sqsj1, queryParams.sqsj2);
+ const dayDiff = classCom.getDayDiff(queryParams.value.sqsj1, queryParams.value.sqsj2);
if (dayDiff === -1 || dayDiff === -2) return ElMessage.warning('请选择有效的日期范围');
}
const pagination = (val) => {
- queryParams.pageSize = val.limit;
- queryParams.pageNum = val.page;
+ queryParams.value.pageSize = val.limit;
+ queryParams.value.pageNum = val.page;
handleQuery();
}
@@ -254,25 +256,37 @@ const pagination = (val) => {
const handleQuery = () => {
loading.value = true;
// 查询数据
- wholeprocessList(queryParams).then((res) => {
+ wholeprocessList(queryParams.value).then((res) => {
loading.value = false;
tableData.value = res.rows;
total.value = res.total;
sumMoney.value = (res.rows.reduce((acc, cur) => acc + cur.dj * cur.sl, 0)).toFixed(2);
});
+
+ isExpand.value = false;
}
const refresh = () => {
- queryParams = {
- st: '',
- et: '',
+ queryParams.value = {
+ sqsj1: '',
+ sqsj2: '',
brdh: '',
brxm: '',
sqh: '',
+ mxjjzt: '',
+ jjzt: '',
+ jssj1: '',
+ jssj2: '',
+ pageNum: 1,
+ pageSize: 500,
}
+ timeDate()
handleQuery();
}
+const printHandle = () => {
+}
+
const instrGroupOptions = ref([])
const instrGroupFields = ref([
{ prop: 'zddh', label: '代号', width: 80, enablePinyinSearch: true },
@@ -297,8 +311,8 @@ const timeDate = () => {
// queryParams.sqsj1 = startOfWeek.format('YYYY-MM-DD');
// queryParams.sqsj2 = today.format('YYYY-MM-DD');
- queryParams.sqsj1 = '2025-08-01';
- queryParams.sqsj2 = today.format('YYYY-MM-DD');
+ queryParams.value.sqsj1 = '2025-08-01';
+ queryParams.value.sqsj2 = today.format('YYYY-MM-DD');
}
@@ -307,6 +321,17 @@ onMounted(() => {
getinstrGroupOptions()
getDictData('HOS', 'PT', 'ST');
handleQuery()
+
+
+ feeitemclassList().then((res) => {
+ feeitemList.value = res.rows?.map(item => {
+ return {
+ ...item,
+ label: item.sflbmc,
+ value: item.sflbdh
+ }
+ })
+ })
})