| | |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-management"></i> 医疗档案</span |
| | | > |
| | | <el-tabs v-model="sonactiveName" @tab-click="handleClick"> |
| | | <el-tabs v-model="sonactiveName" @tab-click="handleClickson"> |
| | | <el-tab-pane name="outpatient" |
| | | ><span class="mulsz" slot="label" |
| | | >门诊({{ mznumber }})</span |
| | |
| | | > |
| | | <el-tab-pane name="inhospital" |
| | | ><span class="mulsz" slot="label" |
| | | >住院({{ zynumber }}) |
| | | >在院({{ zynumber }}) |
| | | </span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="checkout" |
| | | ><span class="mulsz" slot="label" |
| | | >体检({{ jynumber }}) |
| | | >出院({{ jynumber }}) |
| | | </span></el-tab-pane |
| | | > |
| | | </el-tabs> |
| | |
| | | <el-button type="primary" @click="savefile">保存患者档案</el-button> |
| | | </div> |
| | | <div class="detailed"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><div class="grid-content bg-purple"> |
| | | 患者姓名:<span class="spanvalue">{{ userform.name }}</span> |
| | | </div></el-col |
| | | > |
| | | <el-col :span="12" |
| | | ><div class="grid-content bg-purple"> |
| | | 联系电话:<span class="spanvalue">{{ userform.telcode }}</span> |
| | | </div></el-col |
| | | > |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><div class="grid-content bg-purple"> |
| | | 出生地:<span class="spanvalue">{{ userform.birthplace }}</span> |
| | | </div></el-col |
| | | > |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><div class="grid-content bg-purple"> |
| | | 居住地:<span class="spanvalue">{{ |
| | | userform.placeOfResidence |
| | | }}</span> |
| | | </div></el-col |
| | | > |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | | type="success" |
| | | v-for="tag in dynamicTags" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClose(tag)" |
| | | > |
| | | {{ tag.tagname }} |
| | | </el-tag> |
| | | <el-select |
| | | v-if="inputVisible" |
| | | v-model="inputValue" |
| | | @change="handleInputConfirm" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | placeholder="请选择/查询" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagname" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <el-form |
| | | ref="userform" |
| | | :model="userform" |
| | | :rules="rules" |
| | | label-width="100px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="患者姓名" prop="name"> |
| | | <el-input |
| | | v-model="userform.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | ></el-input> </el-form-item |
| | | ></el-col> |
| | | <el-col :span="12" |
| | | ><el-form-item label="联系方式" prop="telcode"> |
| | | <el-input |
| | | v-model="userform.telcode" |
| | | placeholder="请输入联系方式" |
| | | maxlength="30" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="出生地" prop="birthplace"> |
| | | <el-input |
| | | v-model="userform.birthplace" |
| | | placeholder="国、省、地市、区县、街道等详细信息" |
| | | maxlength="50" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="居住地" prop="placeOfResidence"> |
| | | <el-input |
| | | v-model="userform.placeOfResidence" |
| | | placeholder="国、省、地市、区县、街道等详细信息" |
| | | maxlength="50" |
| | | /> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="标签" prop="desc"> |
| | | <div class="xinz-inf"> |
| | | <el-tag |
| | | :key="tag.tagname" |
| | | type="success" |
| | | v-for="tag in dynamicTags" |
| | | v-if="tag.isoperation != 3" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClose(tag)" |
| | | > |
| | | {{ tag.tagname }} |
| | | </el-tag> |
| | | <el-select |
| | | v-if="inputVisible" |
| | | v-model="inputValue" |
| | | @change="handleInputConfirm" |
| | | filterable |
| | | allow-create |
| | | default-first-option |
| | | placeholder="请选择/查询" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagname" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | |
| | | <el-button |
| | | v-else |
| | | class="button-new-tag" |
| | | size="small" |
| | | @click="showInput" |
| | | >+ 新增标签</el-button |
| | | > |
| | | </div></el-col |
| | | > |
| | | </el-row> |
| | | <el-button |
| | | v-else |
| | | class="button-new-tag" |
| | | size="small" |
| | | @click="showInput" |
| | | >+ 新增标签</el-button |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div class="top-message"> |
| | | <div class="headline">病史</div> |
| | | <div class="detailed"> |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-form :model="form" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="过往疾病" prop="name"> |
| | |
| | | <!-- 联系电话 --> |
| | | <div class="bottom-message"> |
| | | <div class="headline"> |
| | | 号码维护<span style="margin-right: 60px"> </span> |
| | | 亲属号码维护<span style="margin-right: 60px"> </span> |
| | | <el-button type="primary" @click="addcompiletb">+新增</el-button> |
| | | </div> |
| | | <div class="Table-screen"> |
| | |
| | | <!-- 门诊 --> |
| | | <div v-if="sonactiveName == 'outpatient'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="daya" label="就诊日期" width="180"> |
| | | <el-table-column |
| | | label="就诊时间" |
| | | align="center" |
| | | key="createTime" |
| | | prop="createTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ formatTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="就诊科室" width="180"> |
| | | |
| | | <el-table-column |
| | | label="门诊号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | key="patname" |
| | | prop="patname" |
| | | /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="doctor" label="医生"> </el-table-column> |
| | | <el-table-column prop="result" label="疾病诊断"> </el-table-column> |
| | | <el-table-column prop="administrative" label="检验"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="检查"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="手术"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="用药"> |
| | | </el-table-column> |
| | | <el-table-column prop="columcz" label="医嘱" width="200"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="年龄" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="联系电话" |
| | | align="center" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="诊断" |
| | | align="center" |
| | | key="diagname" |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="就诊科室" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="接诊医生" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | </el-table> |
| | | |
| | | <pagination |
| | |
| | | </div> |
| | | <!-- 住院 --> |
| | | <div v-if="sonactiveName == 'inhospital'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="godaya" label="入院日期"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="出院时间"> |
| | | <el-table :data="serviceDatary" style="width: 100%"> |
| | | <el-table-column |
| | | label="住院号" |
| | | align="center" |
| | | key="patid" |
| | | prop="patid" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | key="patname" |
| | | prop="patname" |
| | | /> |
| | | <el-table-column label="性别" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "男" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="病区"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="主治医师"> </el-table-column> |
| | | <el-table-column prop="bed" label="管床护士"> </el-table-column> |
| | | <el-table-column prop="doctor" label="出院疾病诊断"> |
| | | </el-table-column> |
| | | <el-table-column prop="today" label="检验"> </el-table-column> |
| | | <el-table-column prop="administrative" label="检查"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="手术"> |
| | | </el-table-column> |
| | | <el-table-column prop="administrative" label="用药"> |
| | | </el-table-column> |
| | | <el-table-column prop="columcz" label="出院小结" width="200"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="年龄" |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="联系电话" |
| | | align="center" |
| | | key="telephone" |
| | | prop="telephone" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="入院诊断" |
| | | align="center" |
| | | key="diagname" |
| | | prop="diagname" |
| | | width="190" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="病区" |
| | | align="center" |
| | | key="deptname" |
| | | prop="deptname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="床位号" |
| | | align="center" |
| | | key="bedNo" |
| | | prop="bedNo" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="责任护士" |
| | | align="center" |
| | | key="Sister" |
| | | prop="Sister" |
| | | width="120" |
| | | /> |
| | | </el-table> |
| | | </div> |
| | | <!-- 体检 --> |
| | | <!-- 出院 --> |
| | | <div v-if="sonactiveName == 'checkout'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table :data="serviceDatacy" style="width: 100%"> |
| | | <el-table-column prop="godaya" label="体检类型"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="体检套餐名称"> |
| | | </el-table-column> |
| | |
| | | <el-input v-model="numberform.contactname"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话"> |
| | | <el-input v-model="numberform.contactway"></el-input> |
| | | <el-input v-model="numberform.telcode"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="关系"> |
| | | <el-input v-model="numberform.relation"></el-input> |
| | |
| | | delcontactinformation, |
| | | listcontactinformation, |
| | | alterpatient, |
| | | Patientclinic, |
| | | } from "@/api/patient/homepage"; |
| | | import { listPatouthosp } from "@/api/smartor/patouthosp"; |
| | | import { listpatient } from "@/api/patient/record"; |
| | | |
| | | export default { |
| | | name: "Profile", |
| | |
| | | address: "89", |
| | | }, |
| | | ], |
| | | serviceData: [ |
| | | { |
| | | daya: "2023-12-12", |
| | | hospitalname: "协和", |
| | | result: "韧带拉伤", |
| | | administrative: "骨科", |
| | | doctor: "吴大龙", |
| | | }, |
| | | ], |
| | | serviceData: [], |
| | | serviceDatary: [], |
| | | serviceDatacy: [], |
| | | options: [ |
| | | { |
| | | value: "1", |
| | |
| | | { label: "测量时间", width: "", prop: "name" }, |
| | | { label: "体温", width: "", prop: "sex" }, |
| | | ], |
| | | // 表单校验 |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: "用户名称不能为空", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "用户名称长度必须介于 2 和 20 之间", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | |
| | | sex: [{ required: true, message: "性别不能为空", trigger: "blur" }], |
| | | age: [{ required: true, message: "年龄不能为空", trigger: "blur" }], |
| | | nation: [{ required: true, message: "民族不能为空", trigger: "blur" }], |
| | | telcode: [ |
| | | { required: true, message: "联系方式不能为空", trigger: "blur" }, |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请输入正确的手机号码", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | idcardtype: [ |
| | | { required: true, message: "证件类型不能为空", trigger: "blur" }, |
| | | ], |
| | | idcardno: [ |
| | | { required: true, message: "证件号能为空", trigger: "blur" }, |
| | | ], |
| | | placeOfResidence: [ |
| | | { required: true, message: "居住地不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | // 查询档案列表信息 |
| | | getList() { |
| | | // 查询医疗档案各列表信息 |
| | | getList(type) { |
| | | this.loading = true; |
| | | if (type == 0) { |
| | | // 门诊记录 |
| | | listPatouthosp({ patid: this.id }).then((response) => { |
| | | if (response.code == 200) { |
| | | this.serviceData = response.rows; |
| | | } |
| | | }); |
| | | } else if (type == 1) { |
| | | listpatient({ patid: this.id }).then((response) => { |
| | | if (response.code == 200) { |
| | | this.serviceDatary = response.rows; |
| | | } |
| | | }); |
| | | } else if (type == 2) { |
| | | listpatient({ patid: this.id }).then((response) => { |
| | | if (response.code == 200) { |
| | | this.serviceDatacy = response.rows; |
| | | } |
| | | }); |
| | | } |
| | | }, |
| | | getcontactlist() { |
| | | listcontactinformation({ patid: this.id }).then((response) => { |
| | |
| | | }, |
| | | // 保存患者档案 |
| | | savefile() { |
| | | // this.userform.tagList = this.dynamicTags; |
| | | this.userform.isoperation = 2; |
| | | alterpatient(this.userform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("基础信息保存成功"); |
| | | } else { |
| | | this.$modal.msgError("基础信息修改失败"); |
| | | this.$refs["userform"].validate((valid) => { |
| | | if (valid) { |
| | | this.userform.isoperation = 2; |
| | | this.userform.tagList = this.dynamicTags; |
| | | alterpatient(this.userform).then((res) => { |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("基础信息保存成功"); |
| | | } else { |
| | | this.$modal.msgError("基础信息修改失败"); |
| | | } |
| | | }); |
| | | // 病史 |
| | | this.medicalhistory(); |
| | | } |
| | | }); |
| | | // 病史 |
| | | this.medicalhistory(); |
| | | }, |
| | | // 病史 |
| | | medicalhistory() { |
| | |
| | | }, |
| | | // tab切换 |
| | | handleClick(tab, event) { |
| | | console.log(tab, event); |
| | | if (tab.index == "1") { |
| | | this.getList(0); |
| | | } |
| | | }, |
| | | handleClickson(tab, event) { |
| | | console.log(tab.index, "son"); |
| | | this.getList(tab.index); |
| | | }, |
| | | // 联系方式新增 |
| | | Addanumber() {}, |
| | |
| | | gettabList() { |
| | | const tagqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 1000, |
| | | pageSize: 10000, |
| | | tagcategoryid: "0", |
| | | }; |
| | | listtag(tagqueryParams).then((response) => { |
| | |
| | | }, |
| | | handleClose(tag) { |
| | | const lindex = this.dynamicTags.indexOf(tag); |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.userform.tagList[lindex].isoperation = 3; |
| | | // this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | this.dynamicTags[lindex].isoperation = 3; |
| | | }, |
| | | |
| | | showInput() { |
| | |
| | | }; |
| | | } |
| | | console.log(tagvalue); |
| | | this.userform.tagList.push(tagvalue); |
| | | // this.userform.tagList.push(tagvalue); |
| | | this.dynamicTags.push(tagvalue); |
| | | console.log(this.userform.tagList); |
| | | console.log(this.dynamicTags); |