Ver código fonte

患者问诊信息

wjj 2 semanas atrás
pai
commit
6bd2344804

+ 27 - 0
src/api/his/inquiryPatient.js

@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+// 新增患者问诊信息
+export function addinquiryPatient(data) {
+  return request({
+    url: '/his/inquiryPatientInfo',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改患者问诊信息
+export function updateinquiryPatient(data) {
+  return request({
+    url: '/his/inquiryPatientInfo',
+    method: 'put',
+    data: data
+  })
+}
+
+//获取患者问诊信息详情
+export function detail(inquiryOrderId) {
+  return request({
+    url: '/his/inquiryPatientInfo/detail/'+ inquiryOrderId,
+    method: 'get'
+  })
+}

+ 261 - 0
src/views/components/his/inquiryOrderDetails.vue

@@ -31,6 +31,9 @@
               <div class="operate-button-container" >
                  <el-button size="mini" @click="handledetails()" v-hasPermi="['his:inquiryOrderReport:query']">咨询报告</el-button>
               </div>
+              <div class="operate-button-container" >
+                 <el-button size="mini" @click="handlePatient()" v-hasPermi="['his:inquiryOrderReport:query']">患者诊断数据</el-button>
+              </div>
 
 
              </div>
@@ -93,6 +96,197 @@
              <el-button type="primary" @click="editStatusOpenOk">确 定</el-button>
            </span>
          </el-dialog>
+
+        <el-dialog
+        title="患者问诊数据"
+        :visible.sync="patientOpen"
+        width="1000px"
+        append-to-body>
+          <el-form ref="patientForm" :model="patientForm" label-width="110px" >
+
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="患者姓名" prop="patientName">
+                  <el-input disabled v-model="item.patientName"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="患者性别" prop="sex">
+                  <el-select disabled v-model="JSON.parse(item.patientJson).sex">
+                    <el-option label="男" :value = "1"></el-option>
+                    <el-option label="女" :value = "0"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="患者年龄" prop="age">
+                  <el-input disabled v-model="JSON.parse(item.patientJson).age"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="患者电话" prop="mobile">
+                  <el-input disabled v-model="JSON.parse(item.patientJson).mobile"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="患者会员电话" prop="userPhone">
+                  <el-input disabled v-model="patientForm.userPhone"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="客户标签" prop="tag">
+                  <el-input  v-model="patientForm.tag"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="客服姓名" prop="companyUserName">
+                  <el-input disabled v-model="patientForm.companyUserName"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="课程档期" prop="courseName">
+                  <el-input  v-model="patientForm.courseName"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="预约医生" prop="doctorName">
+                  <el-input disabled v-model="item.doctorName"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="会诊时间" prop="subTime">
+                  <el-date-picker
+                  v-model="patientForm.subTime"
+                  type="date"
+                  value-format="yyyy-MM-dd"
+                  placeholder="选择日期">
+                  </el-date-picker>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="就诊状态" prop="sex">
+                  <el-select  v-model="patientForm.diagnosisStatus">
+                    <el-option label="初诊" :value = "1"></el-option>
+                    <el-option label="复诊" :value = "2"></el-option>
+                  </el-select>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="部门负责人" prop="deptManager">
+                  <el-input v-model="patientForm.deptManager"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+
+            <el-form-item label="患者病情主诉">
+              <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="patientForm.patientCondition">
+              </el-input>
+            </el-form-item>
+
+            <div class="contentx">
+              <div class="desct">
+                医生建议及处置
+              </div>
+            </div>
+            <el-form-item label="诊断">
+              <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="patientForm.doctorAdviceJson.diagnosis">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="饮食方面">
+              <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="patientForm.doctorAdviceJson.foodAdvice">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="运动方面">
+              <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="patientForm.doctorAdviceJson.sportAdvice">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="保健方面">
+              <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="patientForm.doctorAdviceJson.healthAdvice">
+              </el-input>
+            </el-form-item>
+
+            <el-form-item label="注意禁忌">
+              <el-input
+              type="textarea"
+              placeholder="请输入内容"
+              v-model="patientForm.taboo">
+              </el-input>
+            </el-form-item>
+            <el-form-item label="客户需求">
+              <el-input  v-model="patientForm.customerRequire"></el-input>
+            </el-form-item>
+            <el-row>
+              <el-col :span="12">
+                <el-form-item label="职业医师" prop="age">
+                  <el-input  v-model="patientForm.professionalDoctor"></el-input>
+                </el-form-item>
+              </el-col>
+              <el-col :span="12">
+                <el-form-item label="医生助理" prop="mobile">
+                  <el-input  v-model="patientForm.assistantDoctor"></el-input>
+                </el-form-item>
+              </el-col>
+            </el-row>
+            <div class="contentx">
+              <div class="desct">
+                治疗方面
+              </div>
+              </div>
+            <div v-for="(i,index) in patientForm.doctorAdviceJson.treatmentAdvice" :key="index">
+              <el-row>
+                <el-col :span="8">
+                  <el-form-item label="诊断内容" prop="content">
+                    <el-input  v-model="i.content"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-form-item label="建议治疗" prop="advice">
+                    <el-input  v-model="i.advice"></el-input>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="8">
+                  <el-button style="margin: 5px;" v-if="index+1 == patientForm.doctorAdviceJson.treatmentAdvice.length" @click="addItem(patientForm.doctorAdviceJson.treatmentAdvice.length)" type="primary" size="mini">+</el-button>
+                  <el-button style="margin: 5px;"  v-if="index !== 0" type="danger" size="mini" @click="delItem(i,index)">-</el-button>
+                </el-col>
+                
+              </el-row>
+            </div>
+          </el-form>
+          <span slot="footer" class="dialog-footer">
+             <el-button @click="patientOpen = false">取 消</el-button>
+             <el-button type="primary" @click="patientInquirySubmit">确 定</el-button>
+          </span>
+        </el-dialog>
  </div>
 
 <div class="contentx" v-if="item!=null">
@@ -259,6 +453,7 @@
 
 <script>
 import { msglist, sendMsg,listinquiryOrder,editStatus, logList,getinquiryOrder, delinquiryOrder, addinquiryOrder, updateinquiryOrder, exportinquiryOrder ,cancelOrder,refundOrder} from "@/api/his/inquiryOrder";
+import {addinquiryPatient, updateinquiryPatient, detail} from "@/api/his/inquiryPatient";
 import {getReportId} from "@/api/his/inquiryOrderReport";
 import msgDetails from '../../components/his/msgDetails.vue';
 import msgServiceDetails from '../../components/his/msgServiceDetails.vue';
@@ -273,6 +468,7 @@ import { js } from "js-beautify";
     components: { inquiryOrderReportDetails,msgDetails ,msgServiceDetails},
     data() {
       return {
+        patientOpen: false,
         logs:[],
         editStatusOpen:false,
         usageJson:{},
@@ -313,6 +509,21 @@ import { js } from "js-beautify";
         doctor:[],
         user:[],
         sexOptions: [],
+        patientForm: {
+          doctorAdviceJson: {
+            diagnosis: '',
+            foodAdvice: '',
+            sportAdvice: '',
+            healthAdvice: '',
+            treatmentAdvice: [
+              //默认一条
+              {
+                content: '',
+                advice: '',
+              }
+            ]
+          }
+        },
       }
     },
     created() {
@@ -340,6 +551,37 @@ import { js } from "js-beautify";
 
     },
     methods: {
+      addItem(length){
+        this.patientForm.doctorAdviceJson.treatmentAdvice.push({
+          content:'',
+          advice:'',
+        })
+        let ak = this.patientForm.doctorAdviceJson.treatmentAdvice.filter(obj => obj.content != '');
+      },
+      delItem(item,index){
+        this.patientForm.doctorAdviceJson.treatmentAdvice.splice(index,1)
+      },
+      handlePatient(){
+        this.patientOpen = true;
+        detail(this.item.orderId).then(res => {
+          this.patientForm = res.data;
+          if(!this.patientForm.doctorAdviceJson) {
+            this.patientForm.doctorAdviceJson = {
+              diagnosis: '',
+              foodAdvice: '',
+              sportAdvice: '',
+              healthAdvice: '',
+              treatmentAdvice: [
+                //默认一条
+                {
+                  content: '',
+                  advice: '',
+                }
+              ]
+            }
+          }
+        })
+      },
       cancelorder(){
         var that=this;
         this.$confirm('是否确认取消订单?', "警告", {
@@ -369,6 +611,25 @@ import { js } from "js-beautify";
           });
           });
       },
+      patientInquirySubmit(){
+        this.patientForm.patientId = this.item.patientId;
+        this.patientForm.companyUserId = this.item.companyUserId;
+        this.patientForm.userId = this.item.userId;
+        this.patientForm.inquiryOrderId = this.item.orderId;
+        this.patientForm.subDoctorId = this.item.doctorId;
+        console.log(this.patientForm);
+        if(this.patientForm.id != null) {
+          updateinquiryPatient(this.patientForm).then(res => {
+            this.msgSuccess("更新成功");
+            this.patientOpen = false;
+          })
+        } else {
+          addinquiryPatient(this.patientForm).then(res => {
+            this.msgSuccess("添加成功");
+            this.patientOpen = false;
+          })
+        }
+      },
       msgServiceDetailsClose(){
         this.msgServiceDetails.open = false;
       },