123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
- <title>随访记录</title>
- <link rel="shortcut icon" href="../../favicon.ico" />
- <link rel="stylesheet" type="text/css" href="../../../css/bootstrap.min.css" />
- <link rel="stylesheet" type="text/css" href="../../../css/style.min.css" />
- <link rel="stylesheet" type="text/css" href="../../../css/cross.css" />
- <link rel="stylesheet" href="../../../plugins/toastr/toastr.min.css" />
- <link rel="stylesheet" href="../../../plugins/element-ui/element-ui.css" />
- <link rel="stylesheet" href="../css/common.css" />
- </head>
- <style>
- #app {
- /* display: flex; */
- }
- .left {
- border-right: 1px solid rgba(0, 0, 0, 0.1);
- height: 100%;
- }
- .left .question-box {
- border-radius: 6px;
- border: 1px solid rgba(0, 0, 0, 0.1);
- margin: 20px 20px 0;
- padding: 10px 20px 50px 20px;
- box-sizing: border-box;
- }
- .title {
- font-weight: bold;
- font-size: 18px;
- line-height: 24px;
- }
- .left .form-item {
- padding: 6px 0 8px;
- border-top: 1px solid rgba(0, 0, 0, 0.1);
- font-size: 14px;
- }
- .el-checkbox + .el-checkbox {
- margin-left: 0;
- }
- .el-checkbox {
- margin-right: 0;
- }
- </style>
- <body>
- <div id="app" v-cloak>
- <div class="left" :style="flag=='2'?'pointer-events: none;':''">
- <div class="question-box">
- <el-form label-position="left" label-width="120px">
- <el-form-item label="姓名" required>
- <el-input v-model="form.patientName" placeholder="请输入姓名" :readonly="true"></el-input>
- </el-form-item>
- <el-form-item label="随访日期" required>
- <el-date-picker v-model="form.followupDate" type="datetime" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" placeholder="请选择随访日期"></el-date-picker>
- </el-form-item>
- <el-form-item label="随访医生" required>
- <el-input v-model="form.doctorName" placeholder="请输入随访医生" :readonly="true"></el-input>
- </el-form-item>
- <el-form-item label="血压" required>
- <el-row :gutter="10" style="display: flex">
- <el-col :span="8">
- <el-input v-model="form.bloodPressure" placeholder="" :readonly="!editable"></el-input>
- </el-col>
- <el-col :span="2">/</el-col>
- <el-col :span="8">
- <el-input v-model="form.bloodPressureDown" placeholder="" :readonly="!editable"></el-input>
- </el-col>
- <el-col :span="6">mmHg</el-col>
- </el-row>
- </el-form-item>
- <el-form-item label="心率" required>
- <el-input v-model="form.heartRate" placeholder="请输入心率" :readonly="!editable">
- <template slot="append">次/分钟</template>
- </el-input>
- </el-form-item>
- <el-form-item label="LDL-C" required>
- <el-input v-model="form.ldlc" placeholder="请输入LDL-C" :readonly="!editable">
- <template slot="append">mmol/L</template>
- </el-input>
- </el-form-item>
- <el-form-item label="糖化血红蛋白" required>
- <el-input v-model="form.thxhdb" placeholder="请输入糖化血红蛋白" :readonly="!editable">
- <template slot="append">%</template>
- </el-input>
- </el-form-item>
- <el-form-item label="吸烟情况" required>
- <el-radio-group v-model="form.smoking" :disabled="!editable">
- <el-radio label="1">已戒烟或从未吸烟</el-radio>
- <el-radio label="5">仍吸烟</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="饮酒情况" required>
- <el-radio-group v-model="form.drinking" :disabled="!editable">
- <el-radio label="1">戒酒或不饮酒</el-radio>
- <el-radio label="4">仍饮酒</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="目前服用药物" required>
- <el-checkbox-group v-model="takingListChecked" :disabled="!editable" v-if="selectTak.length==0">
- <el-checkbox v-for="(item,index) in takingList" :key="item.code" :label="index">{{ item.value }}</el-checkbox>
- </el-checkbox-group>
- <el-checkbox-group v-model="takingListChecked" :disabled="!editable" v-else>
- <el-checkbox v-for="(item,index) in selectTak" :key="item.code" :label="item.index">{{ item.value }}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="不良事件种类">
- <el-checkbox-group v-model="adverseEventArr" :disabled="!editable" v-if="selectAdverse.length==0">
- <el-checkbox v-for="(item,index) in badEventList1" :key="item.key" :label="index">{{ item.name }}</el-checkbox>
- </el-checkbox-group>
- <el-checkbox-group v-model="adverseEventArr" :disabled="!editable" v-else>
- <el-checkbox v-for="(item,index) in selectAdverse" :key="item.key" :label="item.index">{{ item.name }}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-form-item label="其他事件">
- <el-input type="textarea" v-model="form.otherEvents" placeholder="请输入其他事件情况" :rows="3" :maxlength="200" show-word-limit :readonly="!editable"></el-input>
- </el-form-item>
- <el-form-item label="是否转诊上级医院" required label-width="150px">
- <el-radio-group v-model="form.isMoveSuperiorHospital" :disabled="!editable">
- <el-radio label="1">是</el-radio>
- <el-radio label="2">否</el-radio>
- </el-radio-group>
- </el-form-item>
- <el-form-item label="随访医院" required>
- <el-input v-model="form.followHospital" placeholder="请输入随访医院" :readonly="true"></el-input>
- </el-form-item>
- </el-form>
- </div>
- <div
- v-if="flag=='1'"
- class="btns"
- style="
- position: fixed;
- left: 0;
- bottom: 0;
- border: 1px solid #e5e5e5;
- background-color: #fff;
- z-index: 99;
- width: 100%;
- height: 60px;
- padding: 0 50px;
- display: flex;
- align-items: center;
- justify-content: space-between;
- ">
- <div style="height: 40px; width: 150px; background-color: #fff; color: red; line-height: 40px; text-align: center; border: 1px solid red" @click="close">退出</div>
- <div style="height: 40px; width: 150px; background-color: #17b3ec; line-height: 40px; text-align: center; color: #fff" @click="onSave">提交</div>
- </div>
- </div>
- <!-- <div class="right">
- <div class="base-info">
- <div class="title mb8">基本信息</div>
- <div class="info-item">
- <div class="info-label">随访表单:</div>
- <div class="info-value">冠心病日常随访</div>
- </div>
- <div class="info-item">
- <div class="info-label">对象:</div>
- <div class="info-value">黄小蕾</div>
- </div>
- <div class="info-item">
- <div class="info-label">随访医生:</div>
- <div class="info-value">黄琴</div>
- </div>
- </div>
- <div class="complete-rate">
- <div class="title mb8">完成情况</div>
- <div class="progress">
- <el-progress type="circle" :stroke-width="12" :percentage="percentage" ></el-progress>
- </div>
- </div>
- <div class="btn-box">
- <el-button type="primary" style="width: 100%;">提交</el-button>
- </div>
- </div> -->
- </div>
- <script type="text/javascript" src="../../../js/vue.js"></script>
- <script type="text/javascript" src="../../../js/jquery-2.2.4.js"></script>
- <script type="text/javascript" src="../../../js/es6-promise.js" charset="utf-8"></script>
- <script type="text/javascript" src="../../../plugins/toastr/toastr.min.js"></script>
- <script type="text/javascript" src="../../../plugins/element-ui/element-ui.js"></script>
- <script type="text/javascript" src="../../../api/http-request.js"></script>
- <script type="text/javascript" src="../../../plugins/layer/layer.min.js"></script>
- <script type="text/javascript" src="../../../api/rehabilitation-api.js"></script>
- <script type="text/javascript" src="../../../api/recover_api.js"></script>
- <script type="text/javascript" src="../../../js/underscore-1.9.1.js"></script>
- <script type="text/javascript" src="../../../component/rehabilitation/server-items-detail.js"></script>
- <script type="text/javascript" src="../../../js/util.js" charset="utf-8"></script>
- <script type="text/javascript" src="../js/vaile.js" charset="utf-8"></script>
- <script>
- var httpData = GetRequest()
- new Vue({
- el: '#app',
- data() {
- var vm = this
- return {
- takingListChecked: [],
- selectTak:[],
- selectAdverse:[],
- adverseEventArr: [],
- docInfo: JSON.parse(localStorage.docInfo),
- badEventListChecked: [],
- editable: true,
- isLoaded: false,
- followup: '',
- followTypes: [
- { code: '2', text: '家庭' },
- { code: '3', text: '电话' }
- ],
- PositiveList: [
- { name: '无阳性体征', checkBox: false, key: 'PositiveNo' },
- { name: '颈静脉怒张', checkBox: false, key: 'PositiveJugular' },
- { name: '肺部啰音', checkBox: false, key: 'PositiveLungs' },
- { name: '心脏杂音', checkBox: false, key: 'PositiveHeart' },
- { name: '双下肢水肿', checkBox: false, key: 'PositiveLower' }
- ],
- badEventList1: [
- { name: '无不良事件', checkBox: false, key: 'badEventNo' },
- { name: '心源性原因再次入院', checkBox: false, key: 'badEventCardiac' },
- { name: '再发心梗', checkBox: false, key: 'badEventMyocardial' },
- { name: '脑卒中', checkBox: false, key: 'badEventStroke' },
- { name: '严重出血', checkBox: false, key: 'badEventBleeding' },
- { name: '外周血管栓塞', checkBox: false, key: 'badEventVascular' },
- { name: '恶性心律失常(室速/室颤)', checkBox: false, key: 'badEventMalignant' },
- { name: '左室附壁血栓', checkBox: false, key: 'badEventBlood' },
- { name: '死亡', checkBox: false, key: 'badEventBusy' },
- { name: '其他', checkBox: false, key: 'badEventOther' }
- ],
- drugEffectsList: [
- { name: '无', checkBox: false, key: 'drugEffectsNo' },
- { name: '出血', checkBox: false, key: 'drugEffectsBleeding' },
- { name: '心率低于55次/分', checkBox: false, key: 'drugEffectsHeartLow' },
- { name: '收缩压低于100mmHg', checkBox: false, key: 'drugEffectspressureLow' },
- { name: '转氨酶升高', checkBox: false, key: 'drugEffectsTransaminase' },
- { name: '肌酶升高', checkBox: false, key: 'drugEffectsEnzymes' },
- { name: '其他', checkBox: false, key: 'drugEffectsOther' }
- ],
- bleedingList: [
- { name: '皮肤粘膜', checkBox: false, key: 'bleedingSkin' },
- { name: '消化道', checkBox: false, key: 'bleedingDigestive' },
- { name: '泌尿道', checkBox: false, key: 'bleedingUrinary' },
- { name: '呼吸道', checkBox: false, key: 'bleedingRespiratory' },
- { name: '脑出血', checkBox: false, key: 'bleedingCerebral' },
- { name: '其他', checkBox: false, key: 'bleedingOther' }
- ],
- followData: '',
- form: {
- type: '2', //版本 目前第二版
- followId: '',
- patientCode: '',
- doctorCode: '',
- patientName: '', // 姓名
- sex: '', // 性别
- followupDate: '', // 随访日期
- doctorName: '', //随访医生
- bloodPressure: '', // 血压1
- bloodPressureDown: '', // 血压2
- heartRate: '', // 心率
- ldlc: '', //LDL-C
- thxhdb: '', //糖化血红蛋白
- positiveSigns: '', // 阳性体征
- smoking: '', // 吸烟情况
- drinking: '', // 饮酒情况
- randomBloodSugar: '', // 血糖
- ccsLevel: '', // 心绞痛
- nyhaLevel: '', // 心功能
- takeMedicine: '', // 目前服用药物
- drugSideEffects: '', // 药物副作用
- otherDrugSideEffects: '', // 其他副作用情况
- bleedingSite: '', // 出血部位
- bleedingDegree: '', // 出血程度
- mace: '', // 不良心血管病事件(MACE)
- adverseEvent: '', // 不良事件种类 心源性原因再次入院
- otherEvents: '', // 其他事件
- isMoveSuperiorHospital: '', // 是否转诊上级医院
- followHospital: '' // 随访医院
- },
- serviceInfo: {},
- takingList: [],
- flag: '1',
- rules: {
- form: {
- patientName: [{ required: true, message: '请输入姓名' }],
- followupDate: [{ required: true, message: '请选择随访日期' }],
- doctorName: [{ required: true, message: '请输入随访医生' }],
- bloodPressure: [{ required: true, message: '请输入完整血压' }],
- bloodPressureDown: [{ required: true, message: '请输入完整血压' }],
- heartRate: [{ required: true, message: '请输入心率' }],
- positiveSigns: {
- value: function () {
- return _.some(vm.PositiveList, function (v) {
- return v.checkBox === true
- })
- }
- },
- smoking: [{ required: true, message: '请选择吸烟情况' }],
- drinking: [{ required: true, message: '请选择饮酒情况' }],
- // taking: {
- // value: function () {
- // return _.some(vm.takingList, function (v) {
- // return v.checkBox === true
- // })
- // },
- // rule: [{ required: true, message: '请选择目前服用药物' }]
- // },
- // drugEffects: {
- // value: function () {
- // return _.some(vm.drugEffectsList, function (v) {
- // return v.checkBox === true
- // })
- // },
- // rule: [{ required: true, message: '请选择药物副作用情况' }]
- // },
- // mace: [{ required: true, message: '请选择是否有不良心血管病事件' }],
- isMoveSuperiorHospital: [{ required: true, message: '请选择是否转诊上级医院' }],
- followHospital: [{ required: true, message: '请输入随访医院' }]
- }
- }
- }
- },
- watch: {
- 'form.takeMedicine': {
- handler: function (value) {
- console.log(value, 'sssssssssssssss')
- }
- }
- },
- mounted: function () {
- var vm = this
- this.getDictByDictName()
- if (httpData.serviceInfo) {
- vm.serviceInfo = JSON.parse(decodeURIComponent(httpData.serviceInfo))
- console.log(vm.serviceInfo, 'dsaaaaaaaaaaaaaa222')
- }
- this.form.patientName = vm.serviceInfo.patientName
- this.form.followId = vm.serviceInfo.relationCode
- vm.form.followupDate = new Date(vm.serviceInfo.executeTime).format('yyyy-MM-dd HH:mm')
- this.form.followHospital = this.docInfo.hospitalName
- this.form.doctorName = this.docInfo.name
- this.form.doctorCode = this.docInfo.code
- this.getFollowup(vm.serviceInfo.relationCode)
- this.load()
- console.log('docInfo', this.docInfo)
- },
- methods: {
- load: function () {
- var vm = this
- httpRequest.get('doctor/visitDetail/selectFollowupDiseaseById', { data: { type: 'XiaXinCoronaryHear', followupId: vm.serviceInfo.relationCode } }).then(function (res) {
- console.log(res, '000000000')
- if (res.status == '200') {
- vm.followup = _.assign(vm.followup, res.data.followup)
- if (res.data.content) {
- vm.form = _.assign(vm.form, res.data.content)
- vm.$set(vm, 'takingListChecked', res.data.content && res.data.content.takeMedicine.split(','))
- vm.$set(vm, 'adverseEventArr', res.data.content && res.data.content.adverseEvent.split(','))
- vm.flag = '2'
- vm.selectTak=vm.takingListChecked.map(function(index){
- vm.takingList[index].index=index
- return vm.takingList[index]
- })
- vm.selectAdverse=vm.adverseEventArr.map(function(index){
- vm.badEventList1[index].index=index
- return vm.badEventList1[index]
- })
- }
- console.log(vm.form, '122222222222', vm.selectTak, vm.selectAdverse)
- }
- })
- },
- getFollowup: function (code) {
- var vm = this
- httpRequest.get('doctor/followup/getFollowup', { data: { id: code } }).then(function (res) {
- if (res.status == 200) {
- var data = res.data
- vm.followData = res.data
- vm.form.sex = data.sex
- vm.followup = {
- followup_id: code,
- // status: data.status,
- // patientName: vm.serviceInfo.patientName,
- followupNextDate: data.followupNextDate,
- followupType: data.followupType,
- followupClass: data.followupClass,
- jwDoctorWorkType: data.jwDoctorWorkType,
- followupDate: data.followupDate,
- doctorName: data.doctorName,
- orgName: data.orgName
- // type: vm.serviceInfo.type
- }
- console.log(vm.followup, '我是vm.followup')
- }
- })
- },
- getDictByDictName: function () {
- var vm = this
- httpRequest.get('/common/getDictByDictName', { data: { name: 'CurrentlyTakingMedication' } }).then(function (res) {
- if (res.status == 200) {
- var data = res.list
- data.forEach(function (v) {
- v.checkBox = false
- })
- vm.takingList = data
- }
- })
- },
- close: function () {
- var index = parent.layer.getFrameIndex(window.name) //先得到当前iframe层的索引
- parent.layer.close(index) //再执行关闭
- },
- onSave: function () {
- var vm = this
- var errors = suifangValidate.call(this)
- console.log(errors)
- if (errors.length) {
- layer.msg(errors[0].message)
- return Promise.reject()
- }
- if (vm.takingListChecked.length == 0) {
- layer.msg('请选择目前服用药物')
- return Promise.reject()
- }
- if (vm.adverseEventArr.length == 0) {
- layer.msg('请选择药物副作用情况')
- return Promise.reject()
- }
- var loadding = top.layer.load(0, { shade: false }) //0代表加载的风格,支持0-2
- var positiveSignsarr = []
- var takeMedicinearr = []
- var drugSideEffectsarr = []
- var bleedingSitearr = []
- for (var i = 0; i < vm.PositiveList.length; i++) {
- if (vm.PositiveList[i].checkBox == true) {
- positiveSignsarr.push(i)
- }
- }
- vm.form.positiveSigns = positiveSignsarr.join()
- // for (var i = 0; i < vm.takingList.length; i++) {
- // if (vm.takingList[i].checkBox == true) {
- // takeMedicinearr.push(i)
- // }
- // }
- vm.form.takeMedicine = vm.takingListChecked.join()
- for (var i = 0; i < vm.drugEffectsList.length; i++) {
- if (vm.drugEffectsList[i].checkBox == true) {
- drugSideEffectsarr.push(i)
- }
- }
- vm.form.drugSideEffects = drugSideEffectsarr.join()
- for (var i = 0; i < vm.bleedingList.length; i++) {
- if (vm.bleedingList[i].checkBox == true) {
- bleedingSitearr.push(i)
- }
- }
- vm.form.bleedingSite = bleedingSitearr.join()
- var badEventList = vm.form.type == 2 ? vm.badEventList1 : vm.badEventList
- // for (var i = 0; i < badEventList.length; i++) {
- // if (badEventList[i].checkBox == true) {
- // adverseEventarr.push(i)
- // }
- // }
- vm.form.adverseEvent = vm.adverseEventArr.join()
- var content = vm.form
- content = _.mapObject(content, function (v) {
- if (v === false) {
- return ''
- } else if (v === true) {
- return 1
- }
- return v
- })
- return httpRequest
- .post('doctor/visitDetail/saveFollowupDiseaseArchives', {
- data: {
- type: 'XiaXinCoronaryHear',
- followupId: vm.serviceInfo.relationCode,
- jsonData: JSON.stringify({
- followup: vm.followup,
- content: content
- })
- }
- })
- .then(function (res) {
- if (res.status == '200') {
- httpRequest
- .post('doctor/followup/finishFollowup', {
- data: {
- id: vm.followData.id
- }
- })
- .then(function () {
- httpRequest
- .post('doctor/specialist/rehabilitation/updateNoteAndImageRehabilitationOperate', {
- data: {
- planDetailId: httpData.planDetailId,
- node: '完成',
- image: '',
- relationCode: vm.serviceInfo.relationCode
- }
- })
- .then(function (res) {
- console.log(res, '我是完成随访')
- vm.close()
- })
- top.layer.close(loadding)
- })
- }
- return res
- })
- }
- }
- })
- </script>
- </body>
- </html>
|