pengjun 17 hours ago
parent
commit
3ab4896ab2
  1. 4
      public/sysConfig.json
  2. 2
      src/components/common/LocalConfig.vue
  3. 785
      src/components/customerOrg/customerOrgGroupAsbitem.vue
  4. 71
      src/components/doctorCheck/CheckPicture.vue
  5. 2
      src/components/doctorCheck/CheckPictureUpload.vue
  6. 2
      src/components/doctorCheck/QueueCheckList.vue
  7. 2
      src/components/patientRegister/PatientRegisterEditGroupBatch.vue
  8. 152
      src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue
  9. 23
      src/components/patientRegister/PatientRegisterList.vue
  10. 9
      src/main.js
  11. 2
      src/store/index.js
  12. 9
      src/views/customerOrg/customerOrgGroup.vue
  13. 1
      src/views/doctorCheck/doctorCheck.vue

4
public/sysConfig.json

@ -1,7 +1,7 @@
{
"apiurl": "http://192.168.0.188:9530",
"apiurl": "http://140.143.162.39:9529",
"softName": "神豚体检管理系统",
"pacsApi": "http://140.143.162.39:9530",
"pacsApi": "http://192.168.0.188:9530",
"dcmViewers": "https://app.mzaktj.com:4436",
"pacsApiHttps": "https://app.mzaktj.com:8042"
}

2
src/components/common/LocalConfig.vue

@ -341,11 +341,13 @@ export default {
});
//
/*
postapi("/api/app/PacsBusiness/GetDeviceListByCheckTypeFlag",{checkTypeFlag:'1'}).then((res) => {
if (res.code != -1) {
this.localDict.deviceList = res.data;
}
});
*/
},
},

785
src/components/customerOrg/customerOrgGroupAsbitem.vue
File diff suppressed because it is too large
View File

71
src/components/doctorCheck/CheckPicture.vue

@ -5,9 +5,9 @@
<el-button type="primary" class="btnClass" @click="btnGetPic" :disabled="doctorBtnDisabled('btnGetPic')"
size="small">采图</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, 'Dcm')">
<el-button type="primary" class="btnClass" @click="btnBrowseDcm" :disabled="doctorBtnDisabled('btnBrowseDcm')"
size="small">Dcm</el-button>
<div v-show="checkPagePriv(pagePriv.privs, '导图')">
<el-button type="primary" class="btnClass" @click="btnExpPic" :disabled="doctorBtnDisabled('btnExpPic')"
size="small">导图</el-button>
</div>
<div v-show="checkPagePriv(pagePriv.privs, '保存')">
<el-button type="primary" class="btnClass" @click="btnSavePic" :disabled="doctorBtnDisabled('btnSavePic')"
@ -18,8 +18,8 @@
<el-button type="primary" class="btnClass" :disabled="doctorBtnDisabled('btnExpPic')">更多</el-button>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, '导图')" @click.native="btnExpPic"
:disabled="doctorBtnDisabled('btnExpPic')">导入图片</el-dropdown-item>
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, 'Dcm')" @click.native="btnBrowseDcm"
:disabled="doctorBtnDisabled('btnBrowseDcm')">Dcm</el-dropdown-item>
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, '裁图')" @click.native="btnCutPic"
:disabled="doctorBtnDisabled('btnCutPic')">裁剪图片</el-dropdown-item>
<el-dropdown-item v-show="checkPagePriv(pagePriv.privs, '清理pacs结果')" @click.native="btnClean"
@ -275,7 +275,16 @@ export default {
//
mounted() {
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id);
// Electron
if (this.$peisAPI) {
this.$peisAPI.onEventFromPictureHotKeyMain((data) => {
this.acceptHotKeyData(data)
});
}
if (this.dataTransOpts.tableS.register_check.id) {
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id);
}
},
computed: {
@ -454,6 +463,52 @@ export default {
},
//
// windows.peisAPI.receive("acceptHotKeyData",() => {
// this.$message.success({showClose:true,message:''})
// }),
acceptHotKeyData(data) {
console.log('acceptHotKeyData', data)
//this.$message.success({ showClose: true, message: '' })
if (!this.dataTransOpts.tableS.register_check.id) {
console.log("没有选中检查项目")
return
}
let baseHead = 'data:image/jpeg;base64,'
switch (item.ImageFormat) {
case 'png':
case 'bmp':
baseHead = `data:image/${item.ImageFormat};base64,`
break;
default:
break;
}
// item.isPrintTrans
this.checkPictures.push({ pictureFilename: baseHead + item.Image })
let body = {
registerCheckId: this.dataTransOpts.tableS.register_check.id,
pictureBaseStrs: [{
fileName,
localPathName: item.FilePath,
pictureBaseStr: baseHead + item.Image
}],
pictureFileType: '0' //01 this.pictureFileType
}
hadoopPost('pacsApi', '/api/app/RegisterCheckPicture/InstrumentMapping', body)
.then(() => {
})
.catch(err => {
console.log('err', err)
this.$message.error({ showClose: true, message: '热键采图失败' + err.message })
})
},
// tab
dispLabel(itemName) {
return itemName.length > 5 ? (itemName.substring(0, 4) + "…") : itemName
@ -520,8 +575,8 @@ export default {
summaryFlag: 'N',
}]
*/
if(this.doctorCheck.checkSummaryList.length == 0){
this.$message.warning({showClose:true,message:"请填写检查结论"})
if (this.doctorCheck.checkSummaryList.length == 0) {
this.$message.warning({ showClose: true, message: "请填写检查结论" })
return
}
this.save()

2
src/components/doctorCheck/CheckPictureUpload.vue

@ -1,7 +1,7 @@
<template>
<div>
<div>
<el-upload action="#" multiple :file-list="fileList" accept=".jpg,.png,.bmp,.gif" list-type="picture-card"
<el-upload action="#" multiple :file-list="fileList" accept=".jpg,.png,.bmp,.gif,.pdf" list-type="picture-card"
:on-change="onChange" :auto-upload="false">
<i slot="default" class="el-icon-plus"></i>
<div slot="file" slot-scope="{file}">

2
src/components/doctorCheck/QueueCheckList.vue

@ -10,7 +10,7 @@
style="width: 100px" size="small">
<el-option v-for="item in dict.room" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
</div>
</div>
<div>
<el-cascader :options="dict.itemTypeTree" v-model="LocalConfig.doctorCheck.queueItemTypeIds"
popper-class="example" style="width: 160px" :props="{

2
src/components/patientRegister/PatientRegisterEditGroupBatch.vue

@ -70,7 +70,7 @@ export default {
patientRegisterId: null,
customerOrgGroupId: null,
payTypeFlag: "1", //01 2
isReserveAddAsbitem: true, //
isReserveAddAsbitem: false, //
},
groupBatchInit: {},
};

152
src/components/patientRegister/PatientRegisterEditMedicalTypeBatch.vue

@ -0,0 +1,152 @@
<template>
<div>
<div>
<div style="margin-top: 2px">
<el-select v-model="medicalTypeId" placeholder="请选择" filterable clearable style="width:300px;" size="small">
<el-option v-for="item in dict.medicalType" :key="item.id" :label="item.displayName" :value="item.id" />
</el-select>
<div style="margin: 10px; display: flex;justify-content: space-between;">
<div></div>
<div>
<el-button class="commonbutton" type="primary" @click="btnOk"> </el-button>
<el-button class="commonbutton" @click="dialogWin.PatientRegisterEditMedicalTypeBatch = false"> </el-button>
</div>
</div>
</div>
</div>
<div>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
<ElProgressOCX />
</el-dialog>
</div>
</div>
</template>
<script>
import moment from "moment";
import { mapState, mapActions } from "vuex";
import { getapi, postapi, putapi, deletapi } from "@/api/api";
import {
dddw,
arrayReduce,
arrayExistObj,
deepCopy,
} from "../../utlis/proFunc";
import ElProgressOCX from "../report/ElProgressOCX.vue";
export default {
components: {
ElProgressOCX,
},
props: ["multipleSelection", "doctorType"],
data() {
return {
tableData: [],
users: [],
patientRegisterIds: [],
medicalTypeId:'',
};
},
//
created() {
this.asbitemBatchInit = deepCopy(this.asbitemBatch)
},
//
mounted() {
//
this.dictInit()
},
computed: {
...mapState([
"window",
"dataTransOpts",
"dialogWin",
"dict",
"elProgress",
"patientRegister",
"customerOrg",
]),
},
methods: {
moment, dddw, deepCopy,
//()
btnOk() {
this.$message.warning({showClose:true,message:'开发中.....'})
return
let url = '/api/app/RegisterCheck/UpdateBatchCheckDoctor'
//if(this.doctorType == 'audit') url = '/api/app/RegisterCheck/UpdateBatchAuditDoctor'
postapi(url, { patientRegisterIds: this.patientRegisterIds, medicalTypeId })
.then(res => {
if (res.code > -1) {
this.dialogWin.PatientRegisterEditMedicalTypeBatch = false;
}
})
},
//
dictInit() {
this.patientRegisterIds = []
this.multipleSelection.forEach(e => {
this.patientRegisterIds.push(e.id)
});
//
//
getapi("/api/app/medical-type/in-filter").then((res) => {
if (res.code > -1) {
this.dict.medicalType = res.data;
}
});
},
},
//
watch: {
"dataTransOpts.plus.PatientRegisterEditMedicalTypeBatch": {
// immediate: true, //
// deep: true, //
handler(newVal, oldVal) {
console.log(`watch: 刷新在用组合体检类别 newVal: ${newVal} oldVal:${oldVal}`)
if (newVal != oldVal) this.dictInit()
}
},
},
};
</script>
<style scoped>
@import "../../assets/css/global_input.css";
@import "../../assets/css/global_table.css";
@import "../../assets/css/global.css";
.box {
display: flex;
}
.listBtn {
margin-top: 5px;
text-align: center;
}
.btnClass {
width: 100px;
}
</style>

23
src/components/patientRegister/PatientRegisterList.vue

@ -398,6 +398,12 @@
<PatientRegisterEditDoctorBatch :multipleSelection="multipleSelection" :doctorType="doctorType" />
</el-dialog>
<!-- 批量调整体检类别 -->
<el-dialog title="批量调整体检类别" :visible.sync="dialogWin.PatientRegisterEditMedicalTypeBatch" width="610px"
:append-to-body="true" :close-on-click-modal="false">
<PatientRegisterEditMedicalTypeBatch :multipleSelection="multipleSelection" />
</el-dialog>
<!-- 通用进度条 -->
<el-dialog title="数据处理中……" :visible.sync="elProgress.display" width="600px" height="400" :show-close="false"
:close-on-click-modal="false" :append-to-body="true">
@ -449,6 +455,7 @@ import ElProgressOCX from "../../components/report/ElProgressOCX.vue";
import PatientRegisterEditGroupBatch from "./PatientRegisterEditGroupBatch.vue";
import PatientRegisterEditItemBatch from "./PatientRegisterEditItemBatch.vue";
import PatientRegisterEditDoctorBatch from "./PatientRegisterEditDoctorBatch.vue";
import PatientRegisterEditMedicalTypeBatch from "./PatientRegisterEditMedicalTypeBatch.vue";
import ImportOrgData from "./ImportOrgData.vue";
import LocalConfig from "../../components/common/LocalConfig.vue";
import Queue from "../../components/queue/Queue.vue";
@ -461,6 +468,7 @@ export default {
PatientRegisterEditGroupBatch, //
PatientRegisterEditItemBatch, //
PatientRegisterEditDoctorBatch, //
PatientRegisterEditMedicalTypeBatch, //
ElProgressOCX,
LocalConfig,
ImportOrgData,
@ -1921,7 +1929,20 @@ export default {
this.dialogWin.PatientRegisterEditDoctorBatch = true;
},
});
if (
checkPagePriv(this.pagePriv.privs, "批量调整体检类别") &&
this.multipleSelection.length > 0
){
items.push({
label: "批量调整体检类别",
onClick: () => {
// this.doctorType = 'check'
this.dataTransOpts.plus.PatientRegisterEditMedicalTypeBatch++; //
this.dialogWin.PatientRegisterEditMedicalTypeBatch = true;
},
});
}
if (
checkPagePriv(this.pagePriv.privs, "查看云胶片二维码")
)

9
src/main.js

@ -13,11 +13,18 @@ import 'umy-ui/lib/theme-chalk/index.css'; // 引入样式
import "element-ui/lib/theme-chalk/index.css";
Vue.use(Contextmenu);
Vue.use(Meta);
Vue.use(ElementUI);
Vue.prototype.$axios = axios
Vue.prototype.Window = {
peisAPI:{
receive: function (args) {
// 函数逻辑
//console.log('这是全局函数', args);
}
}
}
//全局注册外壳的 peisAPI 对象
try {

2
src/store/index.js

@ -527,6 +527,7 @@ export default new Vuex.Store({
PatientRegisterEditGroupBatch: 0, // 刷新批量调整分组窗口
PatientRegisterEditItemBatch: 0, // 刷新批量调整项目窗口
PatientRegisterEditDoctorBatch: 0, // 刷新批量调整项目检查医生窗口
PatientRegisterEditMedicalTypeBatch:0, // 刷新批量调整体检类别窗口
PatientRegisterForChoose: 0, // 体检人员查询窗口
OccDisease: 0, // 职业病
WebBooking: 0, // 网上预约
@ -548,6 +549,7 @@ export default new Vuex.Store({
PatientRegisterEditItemBatch: false, //批量调整项目
PatientRegisterEditGroupBatch: false, //批量调整分组
PatientRegisterEditDoctorBatch: false, // 批量调整检查项目医生
PatientRegisterEditMedicalTypeBatch: false, // 批量调整体检类别
MenuPageSet: false, // 设置角色菜单权限
LocalConfig: false, // 设置窗口
AsbChargeRequest: false, // 收费申请

9
src/views/customerOrg/customerOrgGroup.vue

@ -104,7 +104,13 @@
<!--分组项目信息 -->
<div>
<CustomerOrgGroupAsbitem :customerOrgGroup="curCustomerOrgGroup" :refreshMoney="refreshMoney" />
<CustomerOrgGroupAsbitem
:customerOrgGroup="curCustomerOrgGroup"
:curOrgGroups="customerOrgGroups"
:customerOrgAll="customerOrgAll"
:curOrgRegister="customerOrgRegister"
:curOrgRegisterList="customerOrgRegisterList"
:refreshMoney="refreshMoney" />
</div>
</div>
@ -144,6 +150,7 @@ export default {
routeUrlorPageName: "customerOrgGroup", //
privs: [], //
},
customerOrgAll:[], //
customerOrg: [], //
customerOrgGroups: [], //
customerOrgId: "", //id

1
src/views/doctorCheck/doctorCheck.vue

@ -37,6 +37,7 @@
<CheckItemList :isCheckPicture="isCheckPicture" :doctor_check_check_charge="doctor_check_check_charge"
:registerCheckId="dataTransOpts.tableS.register_check.id" />
</div>
<!--采图导图图片预览组件-->
<div v-if="isCheckPicture" class="demo-image__preview"
:style="'margin-top: 2px;margin-left: 2px;'">
<CheckPicture :doctorBtnDisabled="doctorBtnDisabled" :save="save" />

Loading…
Cancel
Save