You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

993 lines
36 KiB

<template>
<div style="display: flex">
<div :style="'width:' + (window.pageWidth - 200 - 120 - 70) + 'px;'" @contextmenu.prevent="onContextmenu">
<el-table :data="patientRegister.prList" border :height="patientRegister.prListHeight" highlight-current-row
@row-click="rowick" size="small" @selection-change="handleSelectionChange" @cell-contextmenu="onCellRightClick">
<el-table-column type="selection" width="40">
</el-table-column>
<el-table-column prop="completeFlag" label="体检进度">
<template slot-scope="scope">
<div>{{ ldddw(dict.completeFlag, "id", scope.row.completeFlag, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="guidePrintTimes" label="打印" width="50">
<template slot-scope="scope">
<i class="el-icon-printer" v-if="scope.row.guidePrintTimes > 0" style="font-size: 24px;color: green;"></i>
</template>
</el-table-column>
<el-table-column prop="isLock" label="锁住">
<template slot-scope="scope">
<div>{{ scope.row.isLock == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="customerOrgParentName" label="单位" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgParentName : scope.row.customerOrgName }}</div>
</template>
</el-table-column>
<el-table-column prop="customerOrgName" label="部门" width="180">
<template slot-scope="scope">
<div>{{ scope.row.customerOrgParentName ? scope.row.customerOrgName : "" }}</div>
</template>
</el-table-column>
<el-table-column prop="patientName" label="姓名" />
<el-table-column prop="sexId" label="性别">
<template slot-scope="scope">
<div>{{ ldddw(dict.sex, "id", scope.row.sexId, "displayName") }}</div>
</template>
</el-table-column>
<el-table-column prop="age" label="年龄" />
<el-table-column prop="patientRegisterNo" label="条码号" width="150" />
<el-table-column prop="patientNo" label="档案号" />
<el-table-column prop="medicalTimes" label="体检次数"></el-table-column>
<el-table-column label="分组/套餐" width="150">
<template slot-scope="scope">
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId === dict.personOrgId">
{{ ldddw(dict.medicalPackage, "id", scope.row.medicalPackageId, "displayName") }}
</div>
<div v-if="scope.row.medicalPackageId !== dict.personOrgId && scope.row.customerOrgId !== dict.personOrgId">
{{ ldddw(dict.customerOrgGroupAll, "id", scope.row.customerOrgGroupId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="nationId" label="民族">
<template slot-scope="scope">
<div>
{{ ldddw(dict.nation, "nationId", scope.row.nationId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="idNo" label="身份证" width="150" />
<el-table-column prop="birthDate" label="出生日期" width="100">
<template slot-scope="scope">
<div v-if="scope.row.birthDate">
{{ lmoment(scope.row.birthDate, "yyyy-MM-DD") }}
</div>
</template>
</el-table-column>
<el-table-column prop="email" label="邮箱" width="180" />
<el-table-column prop="mobileTelephone" label="手机" width="100" />
<el-table-column prop="telephone" label="电话" width="100" />
<el-table-column prop="address" label="地址" width="300" />
<el-table-column prop="medicalCardNo" label="体检卡号" />
<el-table-column prop="jobCardNo" label="工卡号" />
<el-table-column prop="maritalStatusId" label="婚姻状况">
<template slot-scope="scope">
<div>
{{ ldddw(dict.maritalStatus, "id", scope.row.maritalStatusId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="medicalTypeId" label="体检类别">
<template slot-scope="scope">
<div v-if="scope.row.medicalTypeId !== dict.personOrgId">
{{ ldddw(dict.medicalType, "id", scope.row.medicalTypeId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="personnelTypeId" label="人员类别">
<template slot-scope="scope">
<div v-if="scope.row.personnelTypeId !== dict.personOrgId">
{{ ldddw(dict.personnelType, "id", scope.row.personnelTypeId, "displayName") }}
</div>
</template>
</el-table-column>
<el-table-column prop="jobPost" label="职务" />
<el-table-column prop="jobTitle" label="职称" />
<el-table-column prop="salesman" label="介绍人" />
<el-table-column prop="isVip" label="是否VIP">
<template slot-scope="scope">
<div>{{ scope.row.isVip == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<el-table-column prop="creatorName" label="登记人" />
<el-table-column prop="creationTime" label="登记日期" width="100">
<template slot-scope="scope">
<div>{{ lmoment(scope.row.creationTime, "yyyy-MM-DD") }}</div>
</template>
</el-table-column>
<el-table-column prop="isUpload" label="是否上传">
<template slot-scope="scope">
<div>{{ scope.row.isUpload == "Y" ? "是" : "否" }}</div>
</template>
</el-table-column>
<!--
"sexHormoneTermId": "00000000-0000-0000-0000-000000000000",
"interposeMeasure": null,
"medicalConclusionId": "00000000-0000-0000-0000-000000000000",
"reportPrintTimes": 0,
"isMedicalStart": "N",
"medicalStartDate": "6/28/2023",
"isRecoverGuide": "N",
"summaryDate": "",
"summaryDoctor": null,
"isAudit": "N",
"auditDoctor": null,
"auditDate": "",
"isNameHide": "N",
"isPhoneFollow": "N",
"thirdInfo": null,
"guidePrintTimes": null,
"remark": null,
"organizationUnitId": "00000000-0000-0000-0000-000000000000",
"customerOrgRegisterId": "00000000-0000-0000-0000-000000000000",
"lastModifierName": "",
"lastModificationTime": null,
"lastModifierId": null,
"creatorId": null,
"id": "3a0c196d-a6d0-37fe-5c32-4806bdc4530f"
-->
</el-table>
<!-- 给合项目 基本信息 -->
<el-tabs v-model="tabChoosed">
<!-- 给合项目 -->
<el-tab-pane label="已选组合项目" name="1">
<PatientRegisterAsbItem />
</el-tab-pane>
</el-tabs>
</div>
<div style="margin-left: 10px;width:110px;">
<div class="listBtn">
<el-button type="success" class="btnClass" @click="add">人员登记</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="edit">编辑</el-button>
</div>
<div class="listBtn">
<el-button type="danger" class="btnClass" @click="del">删除</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="openCamera" icon="el-icon-camera">拍照</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass">健康档案</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="btnGroupBatch">调整分组</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="asbBatch">调整项目</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="guidePrint('0001', false)">指引单打印</el-button>
</div>
<div class="listBtn">
<el-button type="primary" class="btnClass" @click="guidePrint('0001', true)">指引单预览</el-button>
</div>
</div>
<!-- 体检人员登记 -->
<el-dialog :title="patientRegister.patientRegisterId ? '体检人员--编辑' : '体检人员--新增'" :visible.sync="dialogVisible"
:close-on-click-modal="false" fullscreen>
<PatientRegisterEdit :formInitData="formInitData" :editTimes="editTimes" />
</el-dialog>
<!-- 拍照 -->
<el-dialog title="拍照" :visible.sync="patientRegister.cameraVisble" width="400" height="800" :show-close="false"
:append-to-body="true" :close-on-click-modal="false">
<Camera :id="patientRegister.patientRegisterId" />
</el-dialog>
<!-- 指引单 -->
<el-dialog title="指引单" :visible.sync="dialogGuide" width="400" height="800" :append-to-body="true"
:close-on-click-modal="false">
<div>{{ guideMsg }}</div>
</el-dialog>
<!-- 批量调整分组 -->
<el-dialog title="批量调整分组" :visible.sync="dialogGroup" width="400" height="800" :append-to-body="true"
:close-on-click-modal="false">
<div>
<div>
批量调整分组只针对单位体检有效,个人体检将忽略此操作;不能调整已收费或已检的项目及已总检的体检人员。
</div>
<div>
<br /><span>分组</span>
<el-select v-model="groupBatch.customerOrgGroupId" placeholder="请选择" filterable size="small">
<el-option v-for="item in patientRegister.customerOrgGroup" :key="item.id" :label="item.displayName"
:value="item.id" />
</el-select>
</div>
<div>
<br /><el-radio v-model="groupBatch.payTypeFlag" label="0">个人支付</el-radio>
<br /><el-radio v-model="groupBatch.payTypeFlag" label="1">单位支付</el-radio>
<br /><el-radio v-model="groupBatch.payTypeFlag" label="2">免费</el-radio>
</div>
<div>
<br /><el-checkbox v-model="groupBatch.isReserveAddAsbitem">保留加做项目(包括不属于原分组的、没有设置分组的)</el-checkbox>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="groupBatchHandle">确 定</el-button>
<el-button @click="dialogGroup = false">取 消</el-button>
</span>
</el-dialog>
<!-- 批量调整分组 -->
<el-dialog title="批量调整项目" :visible.sync="dialogAsbitem" width="400" height="800" :append-to-body="true"
:close-on-click-modal="false">
<div>
<div>
批量调整分组只针对单位体检有效,个人体检将忽略此操作;不能调整已收费或已检的项目及已总检的体检人员。
</div>
<div>
<br /><el-radio v-model="asbitemBatch.operate" label="add">增加项目</el-radio>
<el-radio v-model="asbitemBatch.operate" label="del">删除项目</el-radio>
</div>
<div>
<br /><el-checkbox v-model="asbitemBatch.isDeleteGroup" :disabled="asbitemBatch.operate == 'add' ? true:false" >如果删除项目属于分组则删除体检记录信息的分组设置</el-checkbox>
</div>
<div>
<br /><span>直接录入</span>
<el-select v-model="asbitemBatch.asbItemId" placeholder="快速选择组合项目" size="small" filterable clearable remote
:remote-method="remoteMethod" @change="quickChoosedAsb" default-first-option
style="width:150px;text-align: left;padding-right: 15px;">
<el-option v-for="item in quickAsb" :key="item.id" :value="item.id" :label="item.displayName" />
</el-select>
</div>
<div>
<el-table :data="asbitemBatch.asbitemsTemp"
height="200" width="100%"
show-summary @row-dblclick="removeAbs" size="small" @row-click="rowClickaAbitemCurr">
<el-table-column label="组合项目" width="120" prop="asbitemName" />
<el-table-column v-if="asbitemBatch.operate == 'add' ? true:false" label="数量" prop="amount" width="50">
<template slot-scope="scope">
<el-input type="number" v-model="scope.row.amount" size="small" />
</template>
</el-table-column>
<el-table-column v-if="asbitemBatch.operate == 'add' ? true:false" label="实收价格" prop="chargePrice" width="70">
<template slot-scope="scope">
<el-input type="number" v-model="patientRegister.patientRegisterAbs[scope.$index].chargePrice" size="small" />
</template>
</el-table-column>
<el-table-column v-if="asbitemBatch.operate == 'add' ? true:false" label="支付方式" prop="payTypeFlag" width="100">
<template slot-scope="scope">
<el-select v-model="scope.row.payTypeFlag" size="small">
<el-option v-for="item in dict.payType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</template>
</el-table-column>
</el-table>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="asbitemBatchHandle">确 定</el-button>
<el-button @click="dialogAsbitem = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import { dddw, objCopy, arrayReduce, arrayExistObj } from "@/utlis/proFunc";
import PatientRegisterEdit from "../../components/patientRegister/PatientRegisterEdit.vue";
import Camera from "../../components/patientRegister/Camera.vue";
import PatientRegisterAsbItem from "../../components/patientRegister/patientRegisterAsbItem.vue";
export default {
components: {
PatientRegisterEdit,
Camera,
PatientRegisterAsbItem,
},
data() {
return {
multipleSelection: [], //选中的数据列表
dialogVisible: false,
dialogCamera: false,
dialogGuide: false,
guideMsg: 'guideMsg',
tabChoosed: "1",
formInitData: {}, //体检登记初始表单数据
editTimes: 0,
rClickRow: null, //右击的行
rClickColumn: null, //右击的列(预留)
dialogGroup: false,
groupBatch: {
patientRegisterId: null,
customerOrgGroupId: null,
payTypeFlag: "1", //0:个人付费,1:单位付费 2:免费
isReserveAddAsbitem: true, //是否保留加做项目
},
dialogAsbitem:false,
asbitemBatch:{
operate:'add',
isDeleteGroup:false,
asbItemId:'',
asbitemsTemp:[], //删除或增加项目临时用
asbitemCurr:{}, //当前选中要删除的项目(批量调整)
},
quickAsb:[], //可供快速选择的组合项目
asbitemDelBatch:{
isDeleteGroup:'N',
patientRegisterId:null,
asbitemIds:[],
},
asbitemAddBatch:{
organizationUnitId: null,
createRegisterAsbitemDtos: [],
// [
// {
// asbitemId: "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "standardPrice": 0,
// "chargePrice": 0,
// "payTypeFlag": "string",
// "isCharge": "string",
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "amount": 0,
// "groupPackageId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
// ]
},
};
},
created() { },
//挂载完成
mounted() {
this.quickAsb = this.dict.asbItemAll;
},
computed: {
...mapState(["window", "dict", "patientRegister", "customerOrg"]),
},
methods: {
...mapActions(["getCustomerOrgGroup", "getPatientRegisterAbs"]),
// 打印指引单(isPreview)
async guidePrint(ReportCode, isPreview) {
let token = localStorage.getItem('token');
let user = localStorage.getItem('user');
let toOutShell = {
ReportCode, token,
preViewCanPrint: 'N',
Parameters: [
{ Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' },
],
};
let lfind = -1;
if (this.multipleSelection.length < 1) {
this.$message.info("请勾选要打印指引单的人员记录!");
return;
}
if (isPreview) {
//
//this.multipleSelection.forEach((item,index) =>{
getapi(`/api/app/printreport/getpatientregisterguidereport?PatientRegisterId=${this.multipleSelection[0].id}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = res.data;
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.printPre(JSON.stringify(toOutShell));
}
})
.catch(err => {
this.$message.warning(err);
});
// });
} else {
this.multipleSelection.forEach((item, index) => {
getapi(`/api/app/printreport/getpatientregisterguidereport?PatientRegisterId=${item.id}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = res.data;
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.print(JSON.stringify(toOutShell));
}
})
.then(res => {
if (res.toLowerCase() == 'success') {
//更新打印次数
return postapi('api/app/patientregister/updatepatientregisterguideprinttimesmany', [item.id])
}
})
.then(res => {
if (res.code != -1) {
lfind = arrayExistObj(this.patientRegister.prList, 'id', item.id)
if (lfind > -1) {
if (this.patientRegister.prList[lfind].guidePrintTimes) {
this.patientRegister.prList[lfind].guidePrintTimes = Number(this.patientRegister.prList[lfind].guidePrintTimes) + 1;
} else {
this.patientRegister.prList[lfind].guidePrintTimes = 1;
}
}
}
})
.catch(err => {
this.$message.warning(err);
});
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
//console.log('this.multipleSelection',this.multipleSelection)
},
//获取单位分组 /api/app/customer-org-group/in-customer-org-id/3a0c0444-d7a0-871f-4074-19faf1655caf
getCustomerOrgGroup(customerOrgld) {
getapi(`/api/app/customer-org-group/in-customer-org-id/${customerOrgld}`)
.then((res) => {
console.log("getCustomerOrgGroup", res.data);
if (res.code == 1) {
this.patientRegister.customerOrgGroup = res.data;
}
});
},
//点击体检次数行
rowick(row) {
this.patientRegister.photo = ""; //清除照片缓存
this.patientRegister.patientRegisterId = row.id;
this.patientRegister.patientRegisterRd = row;
this.patientRegister.query.customerOrgParentId = row.customerOrgParentId;
this.patientRegister.customerOrgGroupChange = 0; //控制体检列表记录切换时,0 无需触发更换分组操作
this.patientRegister.medicalPackageChange = 0; //控制体检列表记录切换时,0 无需触发更换套餐操作
this.getCustomerOrgGroup(row.customerOrgParentId);
this.dict.asbItem = [...this.dict.asbItemAll]
this.getPatientRegisterAbs(row.id);
},
//体检次数 相关操作
add() {
let customerOrgId = this.patientRegister.query.customerOrgId;
if (!customerOrgId) {
alert("请选择单位或个人");
return;
}
//console.log('customerOrgId',customerOrgId)
this.patientRegister.patientRegisterId = "";
// this.patientRegister.patientRegisterRd.photo = '';
// this.patientRegister.patientRegisterRdInit.id = "";
// this.patientRegister.patientRegisterRdInit.customerOrgId = this.patientRegister.query.customerOrgId;
// this.patientRegister.addTimes++;
// this.patientRegister.patientRegisterTimes++;
this.patientRegister.patientRegisterRdInit.customerOrgId = this.patientRegister.query.customerOrgId;
this.formInitData = { ...this.patientRegister.patientRegisterRdInit };
this.patientRegister.patientRegisterAbs = [];
this.dialogVisible = true;
this.editTimes++; //触发表单窗口,数据更新
this.getPatientRegisterAbs();
},
edit() {
if (!this.patientRegister.patientRegisterRd.id) {
alert("请选择要操作的记录");
return;
}
//this.patientRegister.patientRegisterTimes++;
this.getPatientRegisterAbs(this.patientRegister.patientRegisterRd.id);
this.formInitData = { ...this.patientRegister.patientRegisterRd };
this.dialogVisible = true;
this.editTimes++; //触发表单窗口,数据更新
},
//拍照
openCamera() {
if (!this.patientRegister.patientRegisterId) {
alert("请选择要操作的记录");
return;
}
this.patientRegister.cameraVisble = true;
},
//删除(可批量删除)
// /api/app/patient-register/many?PatientRegisterIds=3a0c2cac-f44c-f407-9504-c1fc5e80a159&PatientRegisterIds=3a0c2cb3-d10c-ed70-db6a-b835e75ce641
del() {
if (this.multipleSelection.length < 1) {
alert("请先勾选要操作的记录");
return;
}
let patientRegisterIds = [];
for (let i = 0; i < this.multipleSelection.length; i++) {
patientRegisterIds.push(this.multipleSelection[i]["id"]);
}
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
//console.log('{patientRegisterIds}',{patientRegisterIds})
return postapi(`/api/app/patient-register/delete-many`, {
patientRegisterIds,
});
})
.then((res) => {
this.$message.success("删除成功");
this.patientRegister.query.times++;
this.patientRegister.patientRegisterId = "";
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除",
});
});
},
//单个删除方式
delBak() {
if (!this.patientRegister.patientRegisterId) {
alert("请选择要操作的记录");
return;
}
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning",
})
.then(() => {
//console.log('${this.patientRegister.patientRegisterId}',this.patientRegister.patientRegisterId)
return deletapi(`/api/app/patient-register/${this.patientRegister.patientRegisterId}`);
})
.then((res) => {
this.$message.success("删除成功");
this.patientRegister.query.times++;
this.patientRegister.patientRegisterId = "";
})
.catch(() => {
this.$message({ type: "info", message: "已取消删除", });
});
},
ldddw(arrayData, key, value, display) {
return dddw(arrayData, key, value, display);
},
lmoment(date, forMat) {
return moment(new Date(date)).format(forMat);
},
//查询
async query() {
this.patientRegister.prList = [];
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
let body = {}
console.log(`this.patientRegister.query`, this.patientRegister.query)
if (this.patientRegister.query.customerOrgFlag) {
if (this.patientRegister.query.CustomerOrgParentId) {
body.customerOrgId = this.patientRegister.query.CustomerOrgParentId
} else {
if (this.patientRegister.query.customerOrgId) body.customerOrgId = this.patientRegister.query.customerOrgId
}
}
if (this.patientRegister.query.sex) body.sexId = this.patientRegister.query.sex
if (this.patientRegister.query.patientName) body.patientName = this.patientRegister.query.patientName
if (this.patientRegister.query.completeFlag) body.completeFlag = this.patientRegister.query.completeFlag
//StartDate EndDate
if (this.patientRegister.query.dateRange) {
body.startDate = moment(new Date(this.patientRegister.query.dateRange[0])).format("yyyy-MM-DD")
body.endDate = moment(new Date(this.patientRegister.query.dateRange[1])).format("yyyy-MM-DD")
}
if (this.patientRegister.query.idCardNo) body = { idNo: this.patientRegister.query.idCardNo }
if (this.patientRegister.query.patientNo) body = { patientNo: this.patientRegister.query.patientNo }
if (this.patientRegister.query.patientRegisterNo) body = { patientRegisterNo: this.patientRegister.query.patientRegisterNo }
console.log('/api/app/patientregister/getlistinfilter', body)
postapi('/api/app/patientregister/getlistinfilter', body)
.then((res) => {
if (res.code != -1) {
this.patientRegister.prList = res.data.items;
}
loading.close();
})
.catch((err) => {
loading.close();
});
// try {
// let res =await postapi('/api/app/patientregister/getlistinfilter', body);
// this.patientRegister.prList = res.data;
// } catch (error) {
// console.log("query error",error);
// }
},
//右击菜单
onCellRightClick(row, column) {
this.rClickRow = { ...row }; //右击的行
this.rClickColumn = { ...column }; //右击的列(预留)
console.log(row, column.property);
},
onContextmenu(event) {
//console.log('onContextmenu',event);
if (!this.rClickRow) return false;
let row = { ...this.rClickRow };
this.$contextmenu({
items: [
{
label: "发送检验申请",
onClick: () => {
this.lisRequest(row.id);
}
},
{
label: "预览检验条码",
onClick: () => {
this.lisPrint(row.id, '0002', true);
}
},
{
label: "打印检验条码",
onClick: () => {
this.lisPrint(row.id, '0002', false);
}
},
{
label: "预览Pacs条码",
onClick: () => {
this.pacsPrint(row.id, '0004', true);
}
},
{
label: "打印Pacs条码",
onClick: () => {
this.pacsPrint(row.id, '0004', false);
}
},
],
event,
//x: event.clientX,
//y: event.clientY,
customClass: "custom-class",
zIndex: 3,
minWidth: 80,
});
this.rClickRow = null;
return false;
},
//批量更新分组按钮
btnGroupBatch() {
let customerOrgId = this.patientRegister.query.customerOrgId;
if (!customerOrgId) {
alert("请选择单位或个人");
return;
}
if (this.multipleSelection.length < 1) {
this.$message.info("请勾选要操作的人员!");
return;
}
this.dialogGroup = true;
},
//批量更新分组处理
async groupBatchHandle() {
let groupBatch = { patientRegisterId: null, ...this.groupBatch };
if (groupBatch.isReserveAddAsbitem) {
groupBatch.isReserveAddAsbitem = 'Y';
} else {
groupBatch.isReserveAddAsbitem = 'N';
}
console.log('groupBatch', groupBatch);
if (!groupBatch.customerOrgGroupId) {
this.$message.warning("请选择分组");
return;
}
for (let i = 0; i < this.multipleSelection.length; i++) {
groupBatch.patientRegisterId = this.multipleSelection[i].id;
try {
await postapi('/api/app/patientregister/updatepatientregistercustomerorggroup', groupBatch);
} catch (error) {
console.log(error);
}
}
this.dialogGroup = false;
},
remoteMethod(){
},
//快速选择项目
quickChoosedAsb(){
},
//删除临时显示的组合项目
removeAbs(row){
let lfind = arrayExistObj(this.asbitemBatch.asbitemsTemp,'asbitemId',row.asbitemId);
if(lfind > - 1){
this.asbitemBatch.asbitemsTemp.slice(lfind,1);
}
},
rowClickaAbitemCurr(row){
this.asbitemBatch.asbitemCurr = row;
},
btnRemoveAbs(){
if(!this.asbitemBatch.asbitemCurr.asbitemId){
this.$message.warning("请选择要删除的组合项目!");
return;
}
this.removeAbs(this.asbitemBatch.asbitemCurr);
this.asbitemBatch.asbitemCurr.asbitemId = null;
},
removeAllAbs(){
this.asbitemBatch.asbitemsTemp = [];
},
//批量更新项目
asbBatch() {
let customerOrgId = this.patientRegister.query.customerOrgId;
if (!customerOrgId) {
alert("请选择单位或个人");
return;
}
this.dialogAsbitem = true;
this.quickAsb = this.dict.asbItemAll;
},
asbitemBatchHandle(){
},
//检验申请
async lisRequest(prId) {
let isPrintLisRequest = false
let res = null
if (prId.length < 1) {
this.$message.info("人员信息尚未保存,不可执行此操作!");
return;
}
try {
res = await postapi(`/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`);
console.log(`/api/app/lisrequest/setlisrequest?PatientRegisterId=${prId}`, res)
} catch (error) {
return;
}
if (res.Code != -1) {
this.$message.info("发送检验申请成功!");
isPrintLisRequest = true;
}
//重复申请,重打
if (res.Code == -1 && res.Message.indexOf('已申请') > -1) {
isPrintLisRequest = true;
}
if (!isPrintLisRequest) return;
try {
await this.$confirm("是否打印检验申请单?", "提示", {
confirmButtonText: "是",
cancelButtonText: "否",
type: "info",
showClose: false,
closeOnClickModal: false,
closeOnPressEscape: false,
});
} catch (error) {
return;
}
//打印检验申请单
this.lisPrint(prId, '0003', false);
},
//检验条码打印
lisPrint(prId, ReportCode, isPreview) {
let token = localStorage.getItem('token');
let user = localStorage.getItem('user');
let toOutShell = {
ReportCode, token,
preViewCanPrint: 'N',
Parameters: [
{ Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' },
],
};
if (isPreview) {
//http://140.143.162.39:9529/api/app/printreport/getlisrequestreport?PatientRegisterId=3a0d2e90-da68-3746-6775-bf17e5f9b295
//this.multipleSelection.forEach((item,index) =>{
postapi(`/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = { lisRequest: res.data };
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.printPre(JSON.stringify(toOutShell));
}
})
.catch(err => {
this.$message.warning(err);
});
// });
} else {
postapi(`/api/app/printreport/getlisrequestreport?PatientRegisterId=${prId}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = { lisRequest: res.data };
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.print(JSON.stringify(toOutShell));
}
})
.then(res => {
if (res.toLowerCase() == 'success') {
//更新打印状态 /api/app/lisrequest/updatelisrequestisprint
// {
// "operateType": 0, 操作类型(1.按PatientRegisterId 2.按LisRequestId)
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
return postapi('/api/app/lisrequest/updatelisrequestisprint', { operateType: 1, patientRegisterId: prId })
}
})
.catch(err => {
this.$message.warning(err);
});
}
},
//pacs条码打印
pacsPrint(prId, ReportCode, isPreview) {
let token = localStorage.getItem('token');
let user = localStorage.getItem('user');
let toOutShell = {
ReportCode, token,
preViewCanPrint: 'Y',
Parameters: [
{ Name: 'printer', Value: user },
{ Name: 'hisLog', Value: 'pic/hisLog.jpg' },
],
};
if (isPreview) {
//http://140.143.162.39:9529/api/app/printreport/getpacsnoreport?PatientRegisterId=3a0c990e-5756-2dc0-19d5-69a617fe4048
//this.multipleSelection.forEach((item,index) =>{
postapi(`/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = { lisRequest: res.data };
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.printPre(JSON.stringify(toOutShell));
}
})
.catch(err => {
this.$message.warning(err);
});
// });
} else {
postapi(`/api/app/printreport/getpacsnoreport?PatientRegisterId=${prId}`)
.then((res) => {
if (res.code != -1) {
toOutShell.ReportTable = { lisRequest: res.data };
console.log('JSON.stringify(toOutShell)', JSON.stringify(toOutShell));
return this.$peisAPI.print(JSON.stringify(toOutShell));
}
})
.then(res => {
if (res.toLowerCase() == 'success') {
//更新打印状态 /api/app/lisrequest/updatelisrequestisprint
// {
// "operateType": 0, 操作类型(1.按PatientRegisterId 2.按LisRequestId)
// "patientRegisterId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
// "lisRequestId": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
// }
return postapi('/api/app/lisrequest/updatelisrequestisprint', { operateType: 1, patientRegisterId: prId })
}
})
.catch(err => {
this.$message.warning(err);
});
}
},
},
//监听事件
watch: {
//触发查询事件
"patientRegister.query.times"(newVal, oldVal) {
if (newVal != oldVal) {
//alert('触发查询事件')
this.query();
}
},
//新增后,触发赋值
"patientRegister.patientRegisterRd.id"(newVal, oldVal) {
if (newVal != oldVal) {
//console.log('patientRegister.patientRegisterRd.customerOrgId',this.patientRegister.patientRegisterRd.customerOrgId)
objCopy(this.patientRegister.patientRegisterRd, this.form);
}
},
},
};
</script>
<style scoped>
.box {
display: flex;
}
.listBtn {
margin-top: 5px;
text-align: center;
}
.btnClass {
width: 110px;
}
</style>