Browse Source

细节修改

master
aBin 4 years ago
parent
commit
d70e20017c
  1. 8
      src/App.vue
  2. 2
      src/common/portrait.styl
  3. 4
      src/components/BtnCom/BtnCon.vue
  4. 2
      src/components/CaseTable/CaseTable.vue
  5. 7
      src/components/Echarts/PatientProgress.vue
  6. 123
      src/components/PatientInfo/PatientTable.vue
  7. 10
      src/components/PatientInfo/Search.vue
  8. 20
      src/config/api.js
  9. 4
      src/router/index.js
  10. 2
      src/store/modules/home/mutations.js
  11. 9
      src/store/modules/home/state.js
  12. 4
      src/views/BiologicalSampleSearch/BiologicalSampleSearch.vue
  13. 34
      src/views/BiologicalSamples/BiologicalSamples.vue
  14. 20
      src/views/CaseAnalysis/CaseAnalysis.vue
  15. 16
      src/views/CaseSearch/CaseSearch.vue
  16. 49
      src/views/PatientInfo/PatientInfo.vue
  17. 37
      src/views/ProjectAssistant/Examine.vue
  18. 43
      src/views/ProjectAssistant/General.vue
  19. 4
      src/views/SelectPatient/SelectPatient.vue

8
src/App.vue

@ -1,16 +1,15 @@
<!--
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-02-22 09:20:03
* @Date: 2021-04-19 10:23:19
* @LastEditors: wally
* @LastEditTime: 2021-05-09 21:17:03
* @LastEditTime: 2021-05-11 18:45:33
-->
<template>
<a-config-provider :locale="zh_CN">
<div class="d-flex flex-row flex-nowrap" id="app">
<!-- <btn-con /> -->
<router-view class="flex-1 bg pa-3"></router-view>
<router-view class="flex-1 bg" style="padding: 6px"></router-view>
</div>
</a-config-provider>
</template>
@ -40,6 +39,7 @@ export default {
},
},
created() {
// async created() {
// const userId = '1210049212671201280';
// const params = { userId };
// await this.getUserId(params);

2
src/common/portrait.styl

@ -202,7 +202,7 @@
position: fixed;
height: 40px;
right: 50px;
bottom: 50px;
bottom: 150px;
}
.bot-right-tips {
position: fixed;

4
src/components/BtnCom/BtnCon.vue

@ -3,8 +3,8 @@
<div @click="jump('/')" class="btn">首页数据统计</div>
<div @click="jump('/meeting')" class="btn">会议纪要</div>
<div @click="jump('/MeetingPreview')" class="btn">会议查看</div>
<div @click="jump('/selectPatient')" class="btn">选择患者信息</div>
<div @click="jump('/patientInfo')" class="btn">患者信息录入</div>
<div @click="jump('/selectPatient')" class="btn">选择病例信息</div>
<div @click="jump('/patientInfo')" class="btn">病例信息录入</div>
<div @click="jump('/caseSearch')" class="btn">病例搜索</div>
<div @click="jump('/caseAnalysis')" class="btn">病例分析</div>
<div @click="jump('/biologicalSamples')" class="btn">生物样本</div>

2
src/components/CaseTable/CaseTable.vue

@ -21,6 +21,8 @@
<span v-else-if="record.inputStatus === 2">数据收集按时完成</span>
<span v-else-if="record.inputStatus === 3">数据收集超时中</span>
<span v-else-if="record.inputStatus === 4">废弃</span>
<span v-else-if="record.inputStatus === 5">审核通过</span>
<span v-else-if="record.inputStatus === 6">已结算</span>
</template>
<template slot="id" slot-scope="text, record">
<a-icon @click="showEditModal(record.id, record.inputStatus)" class="pointer pointerEdit" theme="twoTone" type="edit" />

7
src/components/Echarts/PatientProgress.vue

@ -27,6 +27,7 @@ export default {
dataList: [],
series: [], //
colorList: ['#5470C6', '#91CC75', '#FAC858', '#EE6666', '#73C0DE'],
fullwidth: '',
};
},
watch: {
@ -94,6 +95,12 @@ export default {
},
mounted() {
this.init(this.drawLine);
const that = this;
window.onresize = () => {
return (() => {
that.init(this.drawLine);
})();
};
},
methods: {
drawLine() {

123
src/components/PatientInfo/PatientTable.vue

@ -37,68 +37,89 @@
</template>
<template slot="edit" slot-scope="text, record">
<a-button @click="showModal(record.id, record.hospitalization, record.code)" class="mr-4" size="small" type="primary">
<div class="d-flex flex-column">
<a-popconfirm placement="left" ok-text="确定" cancel-text="取消" @confirm="handleOk">
<a-icon slot="icon" type="question-circle" />
<template slot="title">
<div style="width: auto">
您是否要为<br />住院号为{{ hospitalization }} , 研究编号为: {{ recordCode }}<br />的病例进行信息录入
</div>
</template>
<a-button @click="showModal(record.id, record.hospitalization, record.code)" size="small" type="primary"> 选择 </a-button>
</a-popconfirm>
<!-- <a-button @click="showModal(record.id, record.hospitalization, record.code)" class="mr-4" size="small" type="primary">
选择
</a-button>
<a-button type="primary" size="small" class="mr-4" @click="details(record.id, record.hospitalization, record.code)">
</a-button> -->
<a-button type="primary" size="small" class="mt-4" @click="details(record.id, record.hospitalization, record.code)">
查看详情
</a-button>
<a-button v-if="record.inputStatus < 5" size="small" type="primary" @click="showStatus(record.id, record.inputStatus)">
<a-popconfirm placement="left" ok-text="确定" cancel-text="取消" @confirm="submit(record.id)">
<!-- <a-icon slot="icon" type="none" /> -->
<a-icon slot="icon" type="exclamation-circle" />
<template slot="title">
<div>修改状态:</div>
<a-radio-group v-model="recordStatus">
<a-radio :style="radioStyle" v-for="(a, b) in status" :value="b" :key="b"> {{ a }} </a-radio>
</a-radio-group>
</template>
<a-button class="mt-4" v-if="record.inputStatus < 5" size="small" type="primary" @click="handleChange(record.inputStatus)">
修改状态
</a-button>
</a-popconfirm>
</div>
</template>
</a-table>
</div>
<a-empty v-else />
<a-modal title="选择患者" width="600px" v-model="visible" @ok="handleOk" @cancel="handleCancel">
<!-- <a-modal title="选择病例" width="600px" v-model="visible" @ok="handleOk" @cancel="handleCancel">
是否要录入住院号为
<span style="color: green">{{ hospitalization }}</span>
, 研究编号为:
<span style="color: green">{{ recordCode }}</span>
, 的患者的相关数据
</a-modal>
<a-modal title="修改状态" width="600px" v-model="statusModal" @ok="submit">
<a-select :default-value="recordStatus" style="width: 240px" @change="handleChange">
<a-select-option v-for="(item, index) in status" :value="index" :key="index"> {{ item }} </a-select-option>
</a-select>
</a-modal>
, 的病例的相关数据
</a-modal> -->
</div>
</template>
<script>
import { mapMutations, mapState } from 'vuex';
import { generatePatientReport, upPatientMes } from 'config/api';
import { checkPatientComplete, upPatientMes } from 'config/api';
const columns = [
{
title: '序号',
align: 'center',
dataIndex: 'id',
key: 'id',
scopedSlots: { customRender: 'id' },
},
// {
// title: '',
// align: 'center',
// dataIndex: 'id',
// width: 60,
// key: 'id',
// scopedSlots: { customRender: 'id' },
// },
{
title: '研究编号',
align: 'center',
dataIndex: 'code',
width: 100,
key: 'code',
},
{
title: '住院号',
align: 'center',
dataIndex: 'hospitalization',
width: 160,
key: 'hospitalization',
},
{
title: '主治医生',
align: 'center',
dataIndex: 'doctorName',
width: 100,
key: 'doctorName',
},
{
title: '组别',
align: 'center',
dataIndex: 'name',
width: 160,
key: 'name',
},
{
@ -106,6 +127,7 @@ const columns = [
align: 'center',
dataIndex: 'inputStatus',
key: 'inputStatus',
width: 120,
scopedSlots: { customRender: 'inputStatus' },
},
{
@ -113,7 +135,8 @@ const columns = [
align: 'center',
dataIndex: 'edit',
key: 'edit',
width: 300,
width: 80,
textAlign: 'center',
scopedSlots: { customRender: 'edit' },
},
];
@ -127,15 +150,20 @@ export default {
return {
columns,
loading: false,
visible: false,
hasPatientId: false,
patientId: '', // Id
hospitalization: '', //
recordCode: '', //
patientId: '', // Id
hospitalization: '', //
recordCode: '', //
status: ['新建', '数据搜集中', '数据搜集完成', '数据搜集超时', '废弃'],
statusModal: false,
recordStatus: 0,
recordId: '',
radioStyle: {
width: '200px',
display: 'block',
height: '30px',
lineHeight: '30px',
},
};
},
@ -156,26 +184,21 @@ export default {
this.patientId = id;
this.hospitalization = hospitalization;
this.recordCode = recordCode;
this.visible = true;
},
handleCancel(e) {
this.visible = false;
this.visible1 = false;
},
handleOk() {
this.chooseItem(this.patientId, this.hospitalization, this.recordCode);
this.visible1 = true;
},
handleChange(e) {
this.recordType = e;
this.recordStatus = e;
},
//
async submit() {
async submit(id) {
try {
const params = {
param: {
id: this.recordId,
inputStatus: this.recordType,
id,
inputStatus: typeof this.recordStatus === 'number' ? this.recordStatus : this.recordStatus.target.value,
},
};
const res = await upPatientMes(params);
@ -192,23 +215,32 @@ export default {
}
},
//
async chooseItem(id, hospitalization, recordCode) {
try {
chooseItem(id, hospitalization, recordCode) {
this.setPatientId(id);
this.setHospitalization(hospitalization);
this.setRecordCode(recordCode);
localStorage.setItem('patientId', id);
localStorage.setItem('hospitalization', hospitalization);
localStorage.setItem('recordCode', recordCode);
const params = { param: { patientId: id } };
const res = await generatePatientReport(params);
this.generator(id, hospitalization);
},
//
async generator(patientId, serialNumber) {
try {
const params = {
param: {
patientId,
serialNumber,
},
};
const res = await checkPatientComplete(params);
const { code, msg, data } = res.data;
console.log(data);
if (code === 200) {
console.log(data);
localStorage.setItem('reportId', data.id);
}
if (localStorage.getItem('patientId') && localStorage.getItem('hospitalization')) {
this.visible = false;
this.$message.success('选择成功');
this.setShowTable(1);
}
@ -216,13 +248,13 @@ export default {
console.log(error);
}
},
//
handleTableChange(pagination) {
const { current } = pagination;
this.$emit('handleSelPatientMes', current);
},
//
//
details(Id, hospitalization, code) {
this.setPatientId(Id);
this.setHospitalization(hospitalization);
@ -232,13 +264,6 @@ export default {
localStorage.setItem('recordCode', code);
this.$router.push('/patientInfo');
},
//
showStatus(id, inputStatus) {
this.recordId = id;
this.recordStatus = inputStatus;
this.statusModal = true;
},
},
};
</script>

10
src/components/PatientInfo/Search.vue

@ -3,7 +3,7 @@
* @email: 18603454788@163.com
* @Date: 2021-04-19 10:23:19
* @LastEditors: wally
* @LastEditTime: 2021-05-06 14:55:47
* @LastEditTime: 2021-05-11 11:14:47
-->
<template>
<!-- search -->
@ -11,17 +11,17 @@
<div class="d-flex flex-row flex-nowrap">
<a-form :form="form" @submit="handleSubmit" class="d-flex flex-nowrap align-center" layout="inline">
<a-form-item>
<a-input placeholder="研究编号" style="width: 14em" v-decorator="['code']" />
<a-input placeholder="研究编号" style="width: 10em" v-decorator="['code']" />
</a-form-item>
<a-form-item>
<a-input placeholder="住院号" style="width: 14em" v-decorator="['hospitalization']" />
<a-input placeholder="住院号" style="width: 10em" v-decorator="['hospitalization']" />
</a-form-item>
<a-form-item>
<a-select placeholder="请选择组别" style="min-width: 450px" v-decorator="['groupValue']" allow-clear>
<a-select placeholder="请选择组别" style="min-width: 160px" v-decorator="['groupValue']" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in controlGroups">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-button class="mr-4" html-type="submit" icon="search" type="primary">搜索</a-button>
<a-button class="mr-2" html-type="submit" icon="search" type="primary">搜索</a-button>
</a-form>
<div class="flex-1"></div>
<a-button @click="showModal" class="mt-1" html-type="submit" icon="plus" type="primary">新增</a-button>

20
src/config/api.js

@ -3,14 +3,14 @@
* @email: 18603454788@163.com
* @Date: 2021-01-29 11:16:27
* @LastEditors: wally
* @LastEditTime: 2021-05-08 19:25:11
* @LastEditTime: 2021-05-11 18:33:24
*/
import axios from 'axios';
let { proxyUrl } = require('@/config/setting');
const tcm = `${proxyUrl}/tcm`;
const question = `${proxyUrl}/question`;
const patient = `${tcm}/patient`; // 患者相关接口
const patient = `${tcm}/patient`; // 病例相关接口
const imp = `${tcm}/import`; // 试题相关接口
const inpatient = `${tcm}/inpatient`; // 组别接口
const statistics = `${tcm}/statistics`; // 数据统计相关接口
@ -28,19 +28,19 @@ export const getHId = params => axios.get(`${hospatil}/byProjectId?projectId=${p
// 查询医院列表
export const getHList = params => axios.get(`${hospatil}/selHospatil`);
// 保存患者病例信息
// 保存病例病例信息
export const saveCaseMes = params => axios.post(`${patient}/saveCaseMes`, params);
// 添加患者基本信息
// 添加病例基本信息
export const savePatientMes = params => axios.post(`${patient}/savePatientMes`, params);
// 修改患者录入状态
// 修改病例录入状态
export const upPatientMes = params => axios.post(`${patient}/upPatientMes`, params);
// 查询患者基本信息
// 查询病例基本信息
export const selPatientMes = params => axios.post(`${patient}/selPatientMes`, params);
// 通过搜索条件查询患者病例的信息
// 通过搜索条件查询病例病例的信息
export const selPatientMesList = params => axios.post(`${patient}/selPatientMesList`, params);
// 通过查询搜索条件
@ -70,7 +70,7 @@ export const countCase = params => axios.post(`${statistics}/countCase`, params)
// 统计生物样本数量
export const selAllYBS = params => axios.get(`${biologicalSamples}/selAllYBS`);
// 获取某个患者的生物样本
// 获取某个病例的生物样本
export const queryByPatient = params => axios.post(`${biologicalSamples}/queryByPatient`, params);
// 添加会议记录
@ -91,14 +91,14 @@ export const selBiologicalSamples = params => axios.post(`${biologicalSamples}/s
// 搜索某个医院的病例完成情况
export const selByHosAllYBS = params => axios.post(`${biologicalSamples}/selByHosAllYBS`, params);
// 进行中的患者进度
// 进行中的病例进度
export const patientProgress = params => axios.post(`${statistics}/selPatientProgress`, params);
// 临近任务统计
export const adjacentTasks = params => axios.post(`${statistics}/adjacentTasks`, params);
// 生成报告单
export const generatePatientReport = params => axios.post(`${question}/generatePatientReport`, params);
export const checkPatientComplete = params => axios.post(`${question}/checkPatientComplete`, params);
// 查询认知量表的搜索条件
export const searchParam = params => axios.post(`${question}/patientReport/searchParam`, params);

4
src/router/index.js

@ -23,13 +23,13 @@ const routes = [
name: 'MeetingPreview',
component: () => import('@/views/Meeting/MeetingPreview.vue'),
},
// 选择患者信息
// 选择病例信息
{
path: '/selectPatient',
name: 'SelectPatient',
component: () => import('@/views/SelectPatient/SelectPatient.vue'),
},
// 患者信息录入
// 病例信息录入
{
path: '/patientInfo',
name: 'PatientInfo',

2
src/store/modules/home/mutations.js

@ -98,7 +98,7 @@ const mutations = {
},
/**
* 设置选择患者信息界面是否显示列表
* 设置选择病例信息界面是否显示列表
* @param {object} state
* @param {object} data
*/

9
src/store/modules/home/state.js

@ -1,17 +1,10 @@
/*
* @Author: wally
* @email: 18603454788@163.com
* @Date: 2021-02-22 09:20:03
* @LastEditors: wally
* @LastEditTime: 2021-05-09 21:10:40
*/
const state = {
anyringToken: '',
user: { id: '', phone: '', account: '' },
controlGroups: [], // 组别
patientId: '', // 病患id
hospitalization: '', // 病患住院号
recordCode: '', // 患者研究编号
recordCode: '', // 病例研究编号
previewInfo: { host: '', place: '', startTime: '', endTime: '', participants: '', meetingMinutes: '', discussionContent: '' }, // 预览信息
ptProps: { userId: '1' }, // 接受PT传过来的 pluginId,projectId,roleId,taskId,userId
hospitalId: '', // 医院Id

4
src/views/BiologicalSampleSearch/BiologicalSampleSearch.vue

@ -26,7 +26,7 @@ export default {
lists: { pageNum: 1, pageSize: 10, total: 1, list: [] },
collectTime: '', //
hospitalId: '', // id
hospitalization: '', //
hospitalization: '', //
pageNum: 1, //
sampleType: '', //
codes: '',
@ -62,7 +62,7 @@ export default {
param: {
collectTime, //
hospitalId, // id
hospitalization, //
hospitalization, //
pageNum, //
pageSize: 10, //
sampleTypes, //

34
src/views/BiologicalSamples/BiologicalSamples.vue

@ -4,10 +4,10 @@
<div class="metting">
<a-card :bordered="false" title="生物样本">
<a-form :form="form" @submit="handleSubmit">
<!-- 患者编号 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="研究编号">
<a-input
:disabled="showrzlb"
<!-- 病例编号 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="研究编号" required>
<!-- <a-input
v-if="!showrzlb"
placeholder="研究编号"
v-decorator="[
'inpatientNumber',
@ -20,7 +20,8 @@
initialValue: recordCode,
},
]"
/>
/> -->
<span>{{ recordCode }}</span>
</a-form-item>
<!-- 样本类型 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="样本类型" required>
@ -32,13 +33,13 @@
</a-checkbox-group>
</a-form-item>
<!-- 样本类型 -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="采集时间" required>
<a-select placeholder="请选择采集时间" style="min-width: 150px" v-decorator="['acquisitionTime']" allow-clear>
<!-- {
initialValue: callback,
}, -->
<a-form-item :label-col="formItemLayout.labelCol" :wrapper-col="formItemLayout.wrapperCol" label="采集时间">
<!-- <a-select placeholder="请选择采集时间" style="min-width: 150px" v-decorator="['acquisitionTime']" allow-clear>
<a-select-option :key="t.id" :value="t.id" v-for="t in acquisitionTime">{{ t.title }}</a-select-option>
</a-select>
</a-select> -->
<a-radio-group name="radioGroup" v-decorator="['acquisitionTime', { initialValue: 0 }]">
<a-radio :key="t.id" :value="t.id" v-for="t in acquisitionTime"> {{ t.title }} </a-radio>
</a-radio-group>
</a-form-item>
<a-form-item class="d-flex flex-row-reverse">
@ -121,15 +122,12 @@ export default {
this.$message.error('请填写完整信息');
return;
}
if (!values.acquisitionTime && values.acquisitionTime !== 0) {
this.$message.error('请填写完整信息');
return;
}
try {
const { sampleType, recordCode } = this;
const param = {
sampleTypes: this.sampleType,
code: values.inpatientNumber,
collectTime: values.acquisitionTime,
sampleTypes: sampleType,
code: recordCode,
collectTime: values.acquisitionTime ? values.acquisitionTime : 0,
};
const params = { param };
const res = await addBiologicalSamples(params);

20
src/views/CaseAnalysis/CaseAnalysis.vue

@ -15,7 +15,7 @@
</a-select>
</a-form-item>
<a-form-item>
<a-input placeholder="患者患者编号" style="width: 14em" v-model="setObj.hospitalization" />
<a-input placeholder="病例病例编号" style="width: 14em" v-model="setObj.hospitalization" />
</a-form-item>
<a-form-item>
<a-select @change="chooseHos($event, 3)" allow-clear placeholder="请选择录入状态" style="min-width: 150px">
@ -64,6 +64,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, a.id)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-else-if="a.type === 7"
@ -191,6 +192,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -453,6 +455,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -726,6 +729,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, e.id, e.recordId)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-else-if="e.type === 7"
@ -856,6 +860,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -1117,6 +1122,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -1396,6 +1402,12 @@ export default {
tailItemLayout,
form: this.$form.createForm(this, { name: 'page-add' }),
form1: this.$form.createForm(this, { name: 'search' }),
beforeUpload1: file => {
if (file.size > 10 * 1024 * 1024) {
this.$message.error('图片最大不得大于10M');
return false;
}
},
hospitals: [],
value: 1,
radioStyle: {
@ -1409,7 +1421,7 @@ export default {
numList: [1, 2, 3, 4, 5],
setObj: {
hospitalId: '', // Id
hospitalization: '', //
hospitalization: '', //
inpatientId: '', // Id
inputStatus: '', //
},
@ -1943,7 +1955,7 @@ export default {
const objList = list[indexA].subReportCodes[indexB];
const params = {
param: {
hospitalId: this.hospitalId,
patientId: this.patientId,
code: title,
url: info.file.response.data[0].visitUrl,
},
@ -2093,7 +2105,7 @@ export default {
conditionList: this.contentList,
conditionListDate: this.conditionListDate,
hospitalId: this.setObj.hospitalId, // id
hospitalization: this.setObj.hospitalization, //
hospitalization: this.setObj.hospitalization, //
inpatientId: this.inpatientList, // id
inputStatus: this.setObj.inputStatus, //
reportParams: this.caseAnswer, //

16
src/views/CaseSearch/CaseSearch.vue

@ -8,7 +8,7 @@
</a-select>
</a-form-item>
<a-form-item>
<a-input placeholder="患者编号" style="width: 14em" v-model="setObj.hospitalization" />
<a-input placeholder="病例编号" style="width: 14em" v-model="setObj.hospitalization" />
</a-form-item>
<a-form-item>
<a-select @change="chooseHos($event, 2)" allow-clear placeholder="请选择组别" style="min-width: 450px">
@ -61,6 +61,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, a.id)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-else-if="a.type === 7"
@ -188,6 +189,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -450,6 +452,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -724,6 +727,7 @@
:headers="headers"
@change="fileChange($event, e.id, e.recordId)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="e.type === 7"
>
@ -853,6 +857,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -1114,6 +1119,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-else-if="h.type === 7"
>
@ -1375,6 +1381,12 @@ export default {
tailItemLayout,
form: this.$form.createForm(this, { name: 'page-add' }),
form1: this.$form.createForm(this, { name: 'search' }),
beforeUpload1: file => {
if (file.size > 10 * 1024 * 1024) {
this.$message.error('图片最大不得大于10M');
return false;
}
},
hospitals: [],
value: 1,
radioStyle: {
@ -1889,7 +1901,7 @@ export default {
const objList = list[indexA].subReportCodes[indexB];
const params = {
param: {
hospitalId: this.hospitalId,
patientId: this.patientId,
code: title,
url: info.file.response.data[0].visitUrl,
},

49
src/views/PatientInfo/PatientInfo.vue

@ -42,6 +42,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, a.id)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-if="code || showrzlb"
@ -167,6 +168,7 @@
:headers="headers"
@change="fileChange($event, h.id)"
list-type="picture"
:before-upload="beforeUpload1"
name="files"
v-if="code || showrzlb"
>
@ -428,6 +430,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, h.id)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-if="code || showrzlb"
@ -644,6 +647,7 @@
<a-upload
v-if="w.recordType && (getCode || code || showrzlb)"
name="files"
:before-upload="beforeUpload"
:multiple="true"
:action="action"
:headers="headers"
@ -700,6 +704,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, e.id, e.recordId)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-if="code || showrzlb"
@ -827,6 +832,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, h.id)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-if="code || showrzlb"
@ -1093,6 +1099,7 @@
:default-file-list="fileList"
:headers="headers"
@change="fileChange($event, h.id)"
:before-upload="beforeUpload1"
list-type="picture"
name="files"
v-if="code || showrzlb"
@ -1332,14 +1339,14 @@
@change="changeDate"
/>-->
<div class="bot-right-tips">
当前选择患者的住院号为
当前选择病例的住院号为
<span style="color: green">{{ hospitalization }}</span>
,研究编号为
<span style="color: green">{{ recordCode }}</span>
</div>
<a-button @click="choosePatient" class="choose-btn" type="primary">
<a-icon type="retweet" />
重新选择患者
重新选择病例
</a-button>
<a-button
v-if="list.length > 0 && typeof tabNums === 'number' && (getCode || code || showrzlb)"
@ -1352,8 +1359,11 @@
</a-button>
<a-modal :confirm-loading="confirmLoading" :visible="visible" @cancel="handleCancel" @ok="setData" title="提示">
<p>
是否提交患者编号为
<span style="color: green">{{ hospitalization }}</span> 的患者的信息
是否提交病例编号为
<span style="color: green">{{ hospitalization }}</span>
,研究编号为
<span style="color: green">{{ recordCode }}</span>
的病例的信息
</p>
</a-modal>
</div>
@ -1395,6 +1405,33 @@ export default {
formItemLayout1,
tailItemLayout,
form: this.$form.createForm(this, { name: 'page-add' }),
beforeUpload: file => {
let reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => {
const image = new Image();
image.src = reader.result;
image.onload = () => {
let w = image.width;
let h = image.height;
// if (w < 15 || h < 15) {
// this.$message.error('15px');
// return false;
// }
// if (w > 4096 || h > 4096) {
// this.$message.error('4096px');
// return false;
// }
// console.log('', w, h);
};
};
},
beforeUpload1: file => {
if (file.size > 10 * 1024 * 1024) {
this.$message.error('图片最大不得大于10M');
return false;
}
},
value: 1,
checked: true,
radioStyle: {
@ -1468,7 +1505,7 @@ export default {
methods: {
...mapMutations('home', ['setCallback']),
/**
* 重新选择患者
* 重新选择病例
*/
choosePatient() {
this.$router.push('/selectPatient');
@ -1867,7 +1904,7 @@ export default {
param: {
patientId: this.patientId,
code: title,
url: info.file.response.data[0].visitUrl,
fileId: info.file.response.data[0].id,
},
};
const res = await basic(params);

37
src/views/ProjectAssistant/Examine.vue

@ -1,14 +1,15 @@
<template>
<div class="flex-1 flex-wrap">
<div style="width: 100%">
<a-form :form="form" class="d-flex flex-nowrap align-center" layout="inline">
<a-form :form="form" class="d-flex flex-wrap align-center" layout="inline">
<div class="fill-width d-flex">
<a-form-item>
<a-select placeholder="请选择医生" style="min-width: 120px" @change="changeDoctorId" allow-clear>
<a-select placeholder="请选择医生" style="width: 260px" @change="changeDoctorId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in doctorList">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-range-picker @change="changeTime">
<a-range-picker @change="changeTime" style="width: 358px" class="mt-1">
<template slot="dateRender" slot-scope="current">
<div class="ant-calendar-date" :style="getCurrentStyle(current)">
{{ current.date() }}
@ -16,17 +17,22 @@
</template>
</a-range-picker>
</a-form-item>
</div>
<div class="fill-width d-flex">
<a-form-item>
<a-select placeholder="请选择状态" :default-value="recordStatus" style="min-width: 120px" @change="changeStatus" allow-clear>
<a-select placeholder="请选择状态" :default-value="recordStatus" style="width: 260px" @change="changeStatus" allow-clear>
<a-select-option :key="index" :value="index" v-for="(item, index) in status">{{ item }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-select placeholder="请选择组别" style="min-width: 360px" @change="changeInpatientId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in controlGroups">{{ item.name }}</a-select-option>
<a-select placeholder="请选择组别" style="width: 260px" @change="changeInpatientId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in controlGroups">
{{ item.name }}
</a-select-option>
</a-select>
</a-form-item>
<a-button @click="handleSearch" class="mr-4" html-type="submit" icon="search" type="primary">搜索</a-button>
<a-button @click="handleSearch" class="mt-1" html-type="submit" icon="search" type="primary">搜索</a-button>
</div>
</a-form>
<a-table
v-if="lists && lists.list && lists.list.length > 0"
@ -63,16 +69,18 @@
</template>
<template slot="edit" slot-scope="text, record">
<div class="d-flex flex-column">
<a-popconfirm placement="left" ok-text="确定" cancel-text="取消" @confirm="changeRecordStatus(record.id)">
<template slot="title">
<p>是否确定通过该患者记录</p>
<p>是否确定通过该病例记录</p>
</template>
<a-button v-if="record.inputStatus === 2" size="small" type="primary">审核通过</a-button>
</a-popconfirm>
<a-button type="primary" size="small" class="ml-4" @click="details(record.id, record.hospitalization, record.code)">
<a-button type="primary" size="small" class="mt-4" @click="details(record.id, record.hospitalization, record.code)">
查看详情
</a-button>
</div>
</template>
</a-table>
<a-empty v-else />
@ -83,13 +91,6 @@
import { mapState, mapActions, mapMutations } from 'vuex';
import { selPatientMes, upPatientMes } from 'config/api';
const columns = [
{
title: '序号',
align: 'center',
dataIndex: 'id',
key: 'id',
scopedSlots: { customRender: 'id' },
},
{
title: '研究编号',
align: 'center',
@ -126,7 +127,7 @@ const columns = [
align: 'center',
dataIndex: 'edit',
key: 'edit',
width: 250,
width: 80,
scopedSlots: { customRender: 'edit' },
},
];
@ -201,7 +202,7 @@ export default {
throw new Error(error);
}
},
//
//
details(Id, hospitalization, code) {
this.setPatientId(Id);
this.setHospitalization(hospitalization);

43
src/views/ProjectAssistant/General.vue

@ -1,19 +1,27 @@
<template>
<div class="flex-1 flex-wrap">
<div style="width: 100%">
<a-form :form="form" class="d-flex flex-nowrap align-center" layout="inline">
<a-form :form="form" class="d-flex flex-wrap align-center" layout="inline">
<div class="fill-width">
<a-form-item>
<a-select placeholder="请选择医院" style="min-width: 240px" @change="changeHospitalId" allow-clear>
<a-select placeholder="请选择医院" style="width: 200px" @change="changeHospitalId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in hospitals">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-select placeholder="请选择医生" style="min-width: 120px" @change="changeDoctorId" allow-clear>
<a-select placeholder="请选择医生" style="width: 200px" @change="changeDoctorId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in doctorList">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-range-picker @change="changeTime" style="width: 300px">
<a-select placeholder="请选择组别" style="width: 200px" @change="changeInpatientId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in controlGroups">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
</div>
<div class="fill-width">
<a-form-item>
<a-range-picker @change="changeTime" style="width: 318px">
<template slot="dateRender" slot-scope="current">
<div class="ant-calendar-date" :style="getCurrentStyle(current)">
{{ current.date() }}
@ -22,16 +30,12 @@
</a-range-picker>
</a-form-item>
<a-form-item>
<a-select placeholder="请选择状态" :default-value="recordStatus" style="min-width: 120px" @change="changeStatus" allow-clear>
<a-select placeholder="请选择状态" :default-value="recordStatus" style="width: 200px" @change="changeStatus" allow-clear>
<a-select-option :key="index" :value="index" v-for="(item, index) in status">{{ item }}</a-select-option>
</a-select>
</a-form-item>
<a-form-item>
<a-select placeholder="请选择组别" style="min-width: 360px" @change="changeInpatientId" allow-clear>
<a-select-option :key="item.id" :value="item.id" v-for="item in controlGroups">{{ item.name }}</a-select-option>
</a-select>
</a-form-item>
<a-button @click="handleSearch" class="mr-4" html-type="submit" icon="search" type="primary">搜索</a-button>
<a-button @click="handleSearch" class="mt-1" html-type="submit" icon="search" type="primary">搜索</a-button>
</div>
</a-form>
<a-table
v-if="lists && lists.list && lists.list.length > 0"
@ -68,16 +72,18 @@
</template>
<template slot="edit" slot-scope="text, record">
<div class="d-flex flex-column">
<a-popconfirm placement="left" ok-text="确定" cancel-text="取消" @confirm="changeRecordStatus(record.id)">
<template slot="title">
<p>是否确定通过该患者记录</p>
<p>是否确定通过该病例记录</p>
</template>
<a-button v-if="record.inputStatus === 5" size="small" type="primary">审核通过</a-button>
</a-popconfirm>
<a-button type="primary" size="small" class="ml-4" @click="details(record.id, record.hospitalization, record.code)">
<a-button type="primary" size="small" class="mt-4" @click="details(record.id, record.hospitalization, record.code)">
查看详情
</a-button>
</div>
</template>
</a-table>
<a-empty v-else />
@ -88,13 +94,6 @@
import { mapState, mapActions, mapMutations } from 'vuex';
import { selPatientMes, upPatientMes, getHList } from 'config/api';
const columns = [
{
title: '序号',
align: 'center',
dataIndex: 'id',
key: 'id',
scopedSlots: { customRender: 'id' },
},
{
title: '研究编号',
align: 'center',
@ -131,7 +130,7 @@ const columns = [
align: 'center',
dataIndex: 'edit',
key: 'edit',
width: 250,
width: 80,
scopedSlots: { customRender: 'edit' },
},
];
@ -234,7 +233,7 @@ export default {
throw new Error(error);
}
},
//
//
details(Id, hospitalization, code) {
this.setPatientId(Id);
this.setHospitalization(hospitalization);

4
src/views/SelectPatient/SelectPatient.vue

@ -32,7 +32,7 @@
</a-tabs> -->
<a-button @click="choosePatient" class="choose-btn" type="primary">
<a-icon type="retweet" />
重新选择患者
重新选择病例
</a-button>
</div>
</div>
@ -127,7 +127,7 @@ export default {
},
/**
* 重新选择患者
* 重新选择病例
*/
choosePatient() {
this.setPatientId('');

Loading…
Cancel
Save