Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
shidongli 2024-03-29 09:12:15 +08:00
commit d22cdb94e7
8 changed files with 219 additions and 49 deletions

View File

@ -18,4 +18,19 @@ export function updatePatientInfo(data) {
data: data
})
}
// 查询患者信息详细
export function getPatientInfo(id) {
return request({
url: '/manage/visitRecord/' + id,
method: 'get'
})
}
// 意向签约
export function intentionalSign(data) {
return request({
url: '/manage/signRecord/intentionalSign',
method: 'post',
data: data
})
}

View File

@ -163,6 +163,7 @@ export default {
},
list: {},
form: {
signCategory: 'reSign',
record: {
patientId: undefined,
patientPhone: undefined,

View File

@ -142,6 +142,7 @@ export default {
packagePaymentStatus: '',
},
form: {
signCategory: 'sign',
record: {
patientId: undefined,
patientPhone: undefined,

View File

@ -174,14 +174,12 @@
<el-table-column label="手术名称" align="center" prop="surgicalName" />
<!-- <el-table-column label="出院方式" align="center" prop="dischargeMethod" /> -->
<el-table-column label="患者来源" align="center" prop="patientSource">
<template slot-scope="scope">
<dict-tag :options="dict.type.patient_source" :value="scope.row.patientSource" />
</template>
</el-table-column>
<el-table-column label="住址" align="center" prop="address" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)">详情</el-button>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
@ -204,7 +202,7 @@
<el-input v-model="form.patientPhone" placeholder="请输入患者电话" style="width:200px" maxlength="11" />
</el-form-item>
<el-form-item label="家属电话" prop="familyMemberPhone">
<el-input v-model="form.familyMemberPhone" placeholder="请输入家属电话" style="width:200px" maxlength="11"/>
<el-input v-model="form.familyMemberPhone" placeholder="请输入家属电话" style="width:200px" maxlength="11" />
</el-form-item>
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker clearable v-model="form.birthDate" style="width:200px" type="date" value-format="yyyy-MM-dd"
@ -212,7 +210,7 @@
</el-date-picker>
</el-form-item>
<el-form-item label="身份证号" prop="cardNo">
<el-input v-model="form.cardNo" placeholder="请输入身份证号" style="width:200px" maxlength="18"/>
<el-input v-model="form.cardNo" placeholder="请输入身份证号" style="width:200px" maxlength="18" />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="form.sex">
@ -279,14 +277,17 @@
<el-form-item label="就诊流水号" prop="visitSerialNumber">
<el-input v-model="form.visitSerialNumber" placeholder="请输入就诊流水号" style="width:200px" />
</el-form-item>
<el-form-item label="手术名称" prop="surgicalName">
<el-input v-model="form.surgicalName" placeholder="请输入手术名称" style="width:200px" />
</el-form-item>
<el-form-item label="入院时间" prop="admissionDate">
<el-date-picker clearable v-model="form.admissionDate" type="date" value-format="yyyy-MM-dd"
style="width:200px" placeholder="请选择入院时间">
</el-date-picker>
</el-form-item>
<el-form-item label="手术名称" prop="surgicalName">
<el-input v-model="form.surgicalName" placeholder="请输入手术名称" style="width:200px" />
</el-form-item>
<el-form-item label="手术记录" prop="surgicalRecord" v-if="form.visitMethod == 'BE_IN_HOSPITAL'">
<el-input type="textarea" v-model="form.surgicalRecord" style="width:800px" placeholder="请输入手术记录" :rows="8" />
</el-form-item>
<el-form-item label="病历内容">
<editor v-model="form.medicalRecordContent" :min-height="192" />
</el-form-item>
@ -383,8 +384,8 @@
<script>
import { usergetList } from "@/api/unitconfig/patientConfiguration";
import { listPatientInfo, getPatientInfo, delPatientInfo } from "@/api/manage/patientInfo";
import { addPatientInfo, updatePatientInfo } from "@/api/manage/visit";
import { listPatientInfo, delPatientInfo } from "@/api/manage/patientInfo";
import { addPatientInfo, updatePatientInfo, getPatientInfo } from "@/api/manage/visit";
import { getAge } from "@/utils/age";
import { selectAgencyList, getDepartmentList, getAgencyList } from "@/api/manage/selectAgencyList";
import { getToken } from '@/utils/auth'
@ -420,6 +421,7 @@ export default {
loading: true,
//
ids: [],
patientVisitRecordIds: [],
//
single: true,
//
@ -459,6 +461,7 @@ export default {
wardId: null,
wardName: null,
surgicalName: null,
surgicalRecord: null,
admissionDate: null,
outpatientNumber: null,
visitTime: null,
@ -469,16 +472,16 @@ export default {
form: {},
//
rules: {
cardNo:[
{ required: false, message: '', trigger: 'change' },
{
cardNo: [
{ required: false, message: '', trigger: 'change' },
{
pattern: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/,
message: "身份证号格式有误!",
trigger: "blur"
}
],
familyMemberPhone:[
{ required: false, message: '', trigger: 'change' },
familyMemberPhone: [
{ required: false, message: '', trigger: 'change' },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号",
@ -582,6 +585,7 @@ export default {
admissionNumber: null,
responsibleNurse: null,
visitSerialNumber: null,
surgicalRecord: null,
surgicalName: null,
admissionDate: null,
dischargeDate: null,
@ -621,6 +625,7 @@ export default {
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.patientVisitRecordIds = selection.map(item => item.patientVisitRecordId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
@ -633,7 +638,7 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
const id = row.patientVisitRecordId || this.patientVisitRecordIds
getPatientInfo(id).then(response => {
this.form = response.data;
if (this.form.hospitalAgencyId) {

View File

@ -183,8 +183,9 @@
</template>
</el-table-column>
<el-table-column label="住址" align="center" prop="address" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right">
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="200">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="addsign(scope.row)">意向签约</el-button>
<el-button size="mini" type="text" @click="handleAuthRole(scope.row)">详情</el-button>
<el-button size="mini" type="text" @click="handleUpdate(scope.row)"
v-hasPermi="['manage:preHospitalized:edit']">编辑</el-button>
@ -203,10 +204,10 @@
<el-input v-model="form.patientName" placeholder="请输入患者姓名" style="width:200px" />
</el-form-item>
<el-form-item label="患者电话" prop="patientPhone">
<el-input v-model="form.patientPhone" placeholder="请输入患者电话" style="width:200px" maxlength="11"/>
<el-input v-model="form.patientPhone" placeholder="请输入患者电话" style="width:200px" maxlength="11" />
</el-form-item>
<el-form-item label="家属电话" prop="familyMemberPhone">
<el-input v-model="form.familyMemberPhone" placeholder="请输入家属电话" style="width:200px" maxlength="11"/>
<el-input v-model="form.familyMemberPhone" placeholder="请输入家属电话" style="width:200px" maxlength="11" />
</el-form-item>
<el-form-item label="出生日期" prop="birthDate">
<el-date-picker clearable v-model="form.birthDate" style="width:200px" type="date" value-format="yyyy-MM-dd"
@ -214,7 +215,7 @@
</el-date-picker>
</el-form-item>
<el-form-item label="身份证号" prop="cardNo">
<el-input v-model="form.cardNo" placeholder="请输入身份证号" style="width:200px" maxlength="18"/>
<el-input v-model="form.cardNo" placeholder="请输入身份证号" style="width:200px" maxlength="18" />
</el-form-item>
<el-form-item label="性别" prop="sex">
<el-radio-group v-model="form.sex">
@ -284,9 +285,6 @@
<el-form-item label="就诊流水号" prop="visitSerialNumber">
<el-input v-model="form.visitSerialNumber" placeholder="请输入就诊流水号" style="width:200px" />
</el-form-item>
<el-form-item label="手术名称" prop="surgicalName">
<el-input v-model="form.surgicalName" placeholder="请输入手术名称" style="width:200px" />
</el-form-item>
<el-form-item label="就诊时间" prop="visitTime" v-if="form.visitMethod == 'OUTPATIENT_SERVICE'">
<el-date-picker clearable v-model="form.visitTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择就诊时间"
style="width:200px">
@ -297,6 +295,17 @@
style="width:200px" placeholder="请选择入院时间">
</el-date-picker>
</el-form-item>
<el-form-item label="出院时间" prop="dischargeTime" v-if="form.visitMethod == 'BE_IN_HOSPITAL'">
<el-date-picker clearable v-model="form.dischargeTime" type="date" value-format="yyyy-MM-dd"
:picker-options="pickerOptions" style="width:200px" placeholder="请选择出院时间">
</el-date-picker>
</el-form-item>
<el-form-item label="手术名称" prop="surgicalName">
<el-input v-model="form.surgicalName" placeholder="请输入手术名称" style="width:200px" />
</el-form-item>
<el-form-item label="手术记录" prop="surgicalRecord" v-if="form.visitMethod == 'BE_IN_HOSPITAL'">
<el-input type="textarea" v-model="form.surgicalRecord" style="width:800px" placeholder="请输入手术记录" :rows="8" />
</el-form-item>
<el-form-item label="病历内容">
<editor v-model="form.medicalRecordContent" :min-height="192" />
</el-form-item>
@ -363,7 +372,30 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 意向签约 -->
<el-dialog title="意向签约" :visible.sync="addsignopen" width="500px" append-to-body>
<el-form ref="addsignform" :model="addsignform" :rules="rules" label-width="100px">
<el-form-item label="开单医生" prop="billingDoctorId">
<el-select v-model="addsignform.billingDoctorId" filterable placeholder="请选择开单医生" style="width:200px"
clearable>
<el-option v-for="item in addsignattendingPhysicianlist" :key="item.userId" :label="item.nickName"
:value="item.userId">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="意向来源" prop="intentionalSource">
<el-select v-model="addsignform.intentionalSource" filterable placeholder="请选择意向来源" style="width:200px"
clearable>
<el-option label="医生开单" value="DOCTOR_BILLING">
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addsignupload"> </el-button>
<el-button @click="addsignopen = false"> </el-button>
</div>
</el-dialog>
<!-- // -->
<el-dialog title="导入门诊患者信息" :visible.sync="uploadopen" width="400px" append-to-body>
<el-upload drag class="upload-demo" ref="upload" :action="action.url" :headers="action.headers"
@ -407,8 +439,8 @@
</template>
<script>
import { listPatientInfo, getPatientInfo, delPatientInfo } from "@/api/manage/patientInfo";
import { addPatientInfo, updatePatientInfo } from "@/api/manage/visit";
import { listPatientInfo, delPatientInfo } from "@/api/manage/patientInfo";
import { addPatientInfo, updatePatientInfo, getPatientInfo, intentionalSign } from "@/api/manage/visit";
import { getAge } from "@/utils/age";
import { selectAgencyList, getDepartmentList, getAgencyList } from "@/api/manage/selectAgencyList";
import { getToken } from '@/utils/auth'
@ -419,6 +451,14 @@ export default {
dicts: ['patient_type', 'visit_method', 'sign_status', 'patient_source'],
data() {
return {
pickerOptions: {
disabledDate: (time) => {
if (this.form.admissionDate != "") {
return time.getTime() < new Date(this.form.admissionDate).getTime();
}
},
},
addsignopen: false,
//
attendingPhysicianlist: [],
//form-
@ -445,6 +485,7 @@ export default {
loading: true,
//
ids: [],
patientVisitRecordId: [],
//
single: true,
//
@ -484,7 +525,9 @@ export default {
wardId: null,
wardName: null,
surgicalName: null,
surgicalRecord: null,
admissionDate: null,
dischargeTime: null,
outpatientNumber: null,
visitTime: null,
dischargeMethod: null,
@ -494,16 +537,16 @@ export default {
form: {},
//
rules: {
cardNo:[
{ required: false, message: '', trigger: 'change' },
{
cardNo: [
{ required: false, message: '', trigger: 'change' },
{
pattern: /^\d{6}(18|19|20)?\d{2}(0[1-9]|1[0-2])(([0-2][1-9])|10|20|30|31)\d{3}(\d|X|x)$/,
message: "身份证号格式有误!",
trigger: "blur"
}
],
familyMemberPhone:[
{ required: false, message: '', trigger: 'change' },
familyMemberPhone: [
{ required: false, message: '', trigger: 'change' },
{
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号",
@ -528,9 +571,18 @@ export default {
admissionDate: [
{ required: true, message: '请选择患者入院时间', trigger: 'change' }
],
dischargeTime: [
{ required: true, message: '请选择患者出院时间', trigger: 'change' }
],
visitTime: [
{ required: true, message: '请选择患者就诊时间', trigger: 'change' }
],
billingDoctorId: [
{ required: true, message: '请选择开单医生', trigger: 'change' }
],
intentionalSource: [
{ required: true, message: '请选择意向来源', trigger: 'change' }
],
},
action: {
data: {
@ -544,6 +596,14 @@ export default {
},
url: process.env.VUE_APP_BASE_API + '/manage/visitRecord/importPatientInfo'
},
//
addsignattendingPhysicianlist: [],
addsignform: {
billingDoctorId: '',
billingDoctorName: '',
intentionalSource: '',
patientId: '',
},
};
},
created() {
@ -551,6 +611,35 @@ export default {
this.selectAgencyinfo();
},
methods: {
addsignupload() {
if (this.addsignform.billingDoctorId && this.addsignattendingPhysicianlist.length > 0) {
this.addsignform.billingDoctorName = this.addsignattendingPhysicianlist.find(e => e.userId == this.addsignform.billingDoctorId).nickName
}
intentionalSign(this.addsignform).then(res => {
this.$modal.msgSuccess("意向签约成功");
this.addsignopen = false
})
},
addsign(item) {
this.addsignform = {
billingDoctorId: '',
billingDoctorName: '',
intentionalSource: '',
patientId: item.id,
}
this.usergetListinfotwo(item.hospitalAgencyId)
this.resetForm("addsignform");
this.addsignopen = true
},
//
usergetListinfotwo(id) {
usergetList({
agencyId: id,
postName: 'DOCTOR'
}).then(res => {
this.addsignattendingPhysicianlist = res.data
})
},
/** 详情操作 */
handleAuthRole(row) {
this.$router.push({
@ -614,7 +703,9 @@ export default {
responsibleNurse: null,
visitSerialNumber: null,
surgicalName: null,
surgicalRecord: null,
admissionDate: null,
dischargeTime: null,
dischargeDate: null,
medicalRecordContent: null,
appointmentTreatmentGroup: null,
@ -651,6 +742,7 @@ export default {
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.patientVisitRecordIds = selection.map(item => item.patientVisitRecordId)
this.single = selection.length !== 1
this.multiple = !selection.length
},
@ -663,7 +755,7 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
const id = row.patientVisitRecordId || this.patientVisitRecordIds
getPatientInfo(id).then(response => {
this.form = response.data;
this.form = response.data;

View File

@ -153,7 +153,12 @@
}}</el-descriptions-item
>
<el-descriptions-item label="行政区划"
>{{ agencyList.areaName }}
v-if="agencyList.provinceName" >{{ agencyList.provinceName }}-{{ agencyList.cityName }}-{{
agencyList.regionName
}}-{{ agencyList.streetName }}-{{ agencyList.communityName }}
</el-descriptions-item>
<el-descriptions-item label="行政区划"
v-else >
</el-descriptions-item>
</el-descriptions>
<!-- <div class="information">机构信息</div>
@ -318,7 +323,7 @@
></el-option>
</el-select>
<el-select
v-model="form.areaCode"
v-model="form.communityCode"
clearable
placeholder="请选择社区"
style="width: 129px; margin-left: 10px"
@ -829,19 +834,25 @@ export default {
//
clickstreet(item) {
// this.form.areaCode=item.areaCode
console.log(item, "jiedao");
this.form.communityCode = "";
this.form.communityName = "";
getSecondaryLevelInfo(item.id).then((res) => {
this.streetlists = res.data;
if (res.data.length == 0) {
this.form.areaCode = item.areaCode;
} else {
this.streetlists = res.data;
}
});
},
//
clickstreetlist(item) {
console.log(item,'555555')
console.log(item, "555555");
this.form.areaCode = item.areaCode;
this.form.communityName = item.areaName;
// this.form.communityCode = item.areaName;
},
//
clickarea(item) {
@ -854,7 +865,17 @@ export default {
this.form.communityName = "";
getSecondaryLevelInfo(item.id).then((res) => {
this.streetlist = res.data;
console.log(item, "qu");
if (res.data.length == 0) {
this.form.areaCode = item.areaCode;
} else {
this.streetlist = res.data;
}
// if (res.data) {
// this.streetlist = res.data;
// } else {
// this.form.areaCode = item.areaCode;
// }
});
},
//
@ -865,9 +886,15 @@ export default {
this.form.streetName = "";
this.form.communityCode = "";
this.form.communityName = "";
// console.log(this.form.cityName,'this.form.cityNames')
// console.log(item, "shi");
// this.form.areaCode=item.areaCode
getSecondaryLevelInfo(item.id).then((res) => {
this.arealist = res.data;
if (res.data.length == 0) {
this.form.areaCode = item.areaCode;
} else {
this.arealist = res.data;
}
});
},
/** 获取省列表 */
@ -878,6 +905,10 @@ export default {
},
//
province(item) {
console.log(item, "sheng");
// this.form.areaCode=item.areaCode
this.form.cityName = "";
// this.form.streeName = "";
// this.form.communityCode =''
@ -888,7 +919,7 @@ export default {
this.form.communityCode = "";
this.form.regionName = "";
this.form.areaCode = "";
// this.form.areaCode = "";
// this.form.streetCode = "";
getSecondaryLevelInfo(item.id).then((res) => {
this.citylist = res.data;
@ -939,9 +970,8 @@ export default {
}
},
changeagencyCategoryId(e) {
if(e){
if (e) {
this.form.agencyCategoryId = e[e.length - 1];
}
},
// //
@ -1008,8 +1038,13 @@ export default {
//
reset() {
this.form = {
cityName:null,
regionName:null,
provinceName:null,
streetCode:null,
id: null,
parentId: null,
communityCode: null,
agencyCategoryId: null,
agencyCategoryName: null,
areaCode: null,
@ -1067,6 +1102,7 @@ export default {
getAgency(this.id).then((response) => {
console.log(response.data, "response.data.parentId");
this.form = response.data;
this.form.communityCode = response.data.communityName;
this.form.parentAgencyName = response.data.parentAgencyName;
// this.form.parentId=response.data.parentId
@ -1079,9 +1115,13 @@ export default {
/** 提交按钮 */
submitForm() {
if (this.form.provinceCode && !this.form.communityCode) {
this.$message("请选择到社区");
}
// if (this.form.provinceCode && !this.form.communityCode) {
// this.$message("");
// }
// if(this.form.cityName){
// this.form.areaCode=this.form.cityName
// }
console.log(this.form);
this.$refs["form"].validate((valid) => {
if (valid) {
if (this.form.id != null) {

View File

@ -702,9 +702,9 @@ export default {
handleAdd() {
this.reset();
this.open = true;
if (this.itemname == null) {
// if (this.itemname == null) {
this.form.departmentName = "请选择科室";
}
// }
this.title = "添加科室病种信息";
},
/** 修改按钮操作 */

View File

@ -45,7 +45,7 @@
</el-radio-group>
</el-form-item>
</el-form>
<el-form ref="form" :model="form" :rules="rules" label-width="120px" :inline="true">
<el-form ref="form" :model="form" :rules="rules" label-width="130px" :inline="true">
<el-form-item label="主要诊断" prop="mainDiagnosis">
<el-input v-model="form.mainDiagnosis" style="width:300px" placeholder="请输入主要诊断"></el-input>
</el-form-item>
@ -69,6 +69,10 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="门诊/住院编号" prop="inHospitalNumber">
<el-input v-model="form.inHospitalNumber" style="width:300px"
placeholder="请输入门诊/住院编号"></el-input>
</el-form-item>
<el-form-item label="入院时间" prop="admissionTime">
<el-date-picker style="width:300px" v-model="form.admissionTime" type="datetime"
:picker-options="pickerOptions" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间">
@ -79,6 +83,10 @@
:picker-options="pickerOptionstwo" value-format="yyyy-MM-dd HH:mm:ss" placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="手术记录" prop="surgicalRecord" v-if="form.visitMethod == 'BE_HOSPITALIZED'">
<el-input type="textarea" v-model="form.surgicalRecord" style="width:800px"
:rows="8"></el-input>
</el-form-item>
<el-form-item label="入院病历" prop="inHospitalInfo" v-if="form.visitMethod == 'BE_HOSPITALIZED'">
<el-input type="textarea" v-model="form.inHospitalInfo" style="width:800px"
:rows="8"></el-input>
@ -134,6 +142,9 @@ export default {
attendingPhysicianId: [
{ required: true, message: "主治医生不能为空", trigger: "blur" }
],
inHospitalNumber: [
{ required: true, message: "门诊/住院编号不能为空", trigger: "blur" }
],
departmentId: [
{ required: true, message: "科室名称不能为空", trigger: "blur" }
],
@ -143,6 +154,9 @@ export default {
dischargeTime: [
{ required: true, message: "出院时间不能为空", trigger: "blur" }
],
surgicalRecord: [
{ required: true, message: "手术记录不能为空", trigger: "blur" }
],
inHospitalInfo: [
{ required: true, message: "病历不能为空", trigger: "blur" }
],
@ -170,10 +184,12 @@ export default {
departmentId: '',
departmentName: '',
attendingPhysicianId: '',
inHospitalNumber: '',
attendingPhysicianName: '',
admissionTime: this.todaytime,
dischargeTime: '',
inHospitalInfo: '',
surgicalRecord: '',
outHospitalInfo: '',
}
this.recodelist.unshift(item)