123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470 |
- <template>
- <div class="main-contain">
- <div class="position">
- <bread-crumb :crumbs='crumbs'></bread-crumb>
- </div>
- <div class="app-container">
- <div class="nameTitle">患者基本信息:</div>
- <div class="formMain">
- <el-form class="basicForm" :model="form" :rules="rules" ref="form" label-width="100px">
- <el-form-item label="结算类型:">
- <el-select v-model="form.settlementValue" placeholder="请选择">
- <el-option
- v-for="item in settlement"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item class="specialFormItem" label="医保卡号:">
- <el-input v-model="form.medicalInsuranceCard"></el-input>
- <el-button type="primary" @click="reading">读卡</el-button>
- </el-form-item>
- <el-form-item label="患者姓名:">
- <el-input v-model="form.name"></el-input>
- </el-form-item>
- <el-form-item label="性别:">
- <el-select v-model="form.sex" placeholder="请选择">
- <el-option
- v-for="item in sex"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="证件类型:">
- <el-select v-model="form.certificates" placeholder="请选择">
- <el-option
- v-for="item in certificates"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="医疗类别:">
- <el-select v-model="form.medicalCare" placeholder="请选择">
- <el-option
- v-for="item in medicalCare"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="出生日期:">
- <el-date-picker v-model="form.birthday" type="date" @change="getBirthday" placeholder="选择日期"></el-date-picker>
- </el-form-item>
- <el-form-item label="年龄:">
- <el-input v-model="form.age"></el-input>
- </el-form-item>
- <el-form-item label="证件号码:" required prop="idCard">
- <el-input v-model="form.idCard"></el-input>
- <!-- <div class="el-form-item__error" v-show="show">
- 请填写证件号码
- </div> -->
- </el-form-item>
-
- </el-form>
- </div>
- <div class="nameTitle">患者挂号信息:</div>
- <div class="formMain">
- <el-form class="basicForm" :model="form" :rules="rules" label-width="100px">
- <el-form-item label="挂号类型:" prop="register">
- <el-select v-model="form.register" placeholder="请选择">
- <el-option
- v-for="item in register"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="医生:" prop="doctor" >
- <el-select v-model="form.doctor" placeholder="请选择">
- <el-option
- v-for="item in doctorList"
- :key="item.admin_user_id"
- :label="item.user_name"
- :value="item.admin_user_id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="科室:" prop="department">
- <el-select v-model="form.department" placeholder="请选择">
- <el-option
- v-for="item in departmentList"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-checkbox v-model="form.costChecked">是否需要工本费</el-checkbox>
- </el-form-item>
- <el-form-item label="挂号费:">
- <el-input v-model.number="form.registrationFee"></el-input>
- </el-form-item>
- <el-form-item label="诊疗费:">
- <el-input v-model.number="form.medicalExpenses"></el-input>
- </el-form-item>
- <el-form-item label="工本费:">
- <el-input v-model.number="form.cost" :readonly="!form.costChecked"></el-input>
- </el-form-item>
- <el-form-item label="合计:">
- <el-input v-model.number="total" readonly></el-input>
- </el-form-item>
- <el-form-item>
- <!-- <el-input v-model="form.name"></el-input> -->
- </el-form-item>
- </el-form>
- <el-button style="float:right" @click="saveHisPatient('form')" type="primary">挂号</el-button>
- </div>
-
- </div>
- </div>
- </template>
-
- <script>
- import BreadCrumb from '@/xt_pages/components/bread-crumb'
- import { basename } from 'path'
- import { getAllDoctorList,saveHisPatient } from "@/api/project/project"
- const moment = require('moment')
- export default {
- components:{
- BreadCrumb
- },
- data(){
- return{
- crumbs: [
- { path: false, name: '门诊挂号' },
- { path: false, name: '门诊挂号' }
- ],
- form:{
- settlementValue: '',
- medicalInsuranceCard:'',
- name:'',
- sex:'',
- certificates:'',
- medicalCare:'',
- birthday:'',
- age:'',
- idCard:'',
- register:'',
- doctor:'',
- department:'',
- costChecked:false,
- registrationFee:'',
- medicalExpenses:'',
- cost:'',
- total: ''
- },
- settlement: [{
- value: 1,
- label: '医保'
- }, {
- value: 2,
- label: '自费'
- }],
- sex: [{
- value: 1,
- label: '男'
- }, {
- value: 2,
- label: '女'
- }],
- certificates: [{
- value: 1,
- label: '内地身份证'
- }, {
- value: 2,
- label: "社保卡"
- },{
- value: 3,
- label: "护照"
- },{
- value: 4,
- label: "军官证"
- },{
- value: 5,
- label: "台胞证"
- },{
- value: 6,
- label: "港澳地区身份证"
- }],
- medicalCare: [{
- value: 1,
- label: '职工基本医疗保险'
- }, {
- value: 2,
- label: "公务员医疗补助"
- },{
- value: 3,
- label: "大额医疗费用补助"
- },{
- value: 4,
- label: "离休人员医疗"
- },{
- value: 5,
- label: "城乡居民基本医疗保险"
- },{
- value: 6,
- label: "城乡居民大病医疗保险"
- },
- {
- value: 7,
- label: "生育保险"
- }],
- register: [{
- value: 1,
- label: '普通'
- }, {
- value: 2,
- label: "主治"
- },{
- value: 3,
- label: "主任"
- },{
- value: 4,
- label: "免收诊金"
- },{
- value: 5,
- label: "专家"
- }],
- baseinfo:{
- certno:"440221195903290027",
- psn_no:"0221201972",
- gend:"2",
- brdy:"1960-03-29",
- naty:"01",
- psn_cert_type:"01",
- psn_name:"杨美英",
- age:60.7
- },
-
- rules: {
- idCard: [{ required: true, message: '请填写项目名称', trigger: 'blur' }],
- register: [{ required: true, message: '请选择挂号类型' , trigger: 'blur' }],
- doctor: [{ required: true, message: '请选择医生' , trigger: 'blur' }],
- department: [{ required: true, message: '请填写科室', trigger: 'blur' }],
- },
- doctorList:[],
- departmentList:[],
- check:0,
- show:false
- }
- },
- computed:{
- total(){
- if(this.form.registrationFee || this.form.medicalExpenses || this.form.cost){
- return parseFloat(this.form.registrationFee ? this.form.registrationFee : 0) + parseFloat(this.form.medicalExpenses ? this.form.medicalExpenses : 0) + parseFloat(this.form.cost ? this.form.cost : 0)
- }
- }
- },
- methods:{
- reading(medicalInsuranceCard){
- this.form.name = this.baseinfo.psn_name
- this.form.sex = parseInt(this.baseinfo.gend)
- this.form.psn_cert_type = this.baseinfo.certificates
- this.form.birthday = this.baseinfo.brdy
- this.form.age = parseInt(this.baseinfo.age)
- this.form.idCard = this.baseinfo.certno
- this.form.certificates = 1
- },
- getBirthday(date){
- console.log(date)
- let curTime = moment(new Date(date)).format('YYYY-MM-DD')
- console.log("curTime22222",curTime)
-
- console.log(this.jsGetAge(curTime))
-
- this.form.age = this.jsGetAge(curTime)
- },
- jsGetAge(strBirthday) { //传入形式yyyy-MM-dd
- //strBirthday = util.formatTime(strBirthday);转换成yyyy-MM-dd形式
- var returnAge
- var strBirthdayArr = strBirthday.split('-')
- var birthYear = strBirthdayArr[0]
- var birthMonth = strBirthdayArr[1]
- var birthDay = strBirthdayArr[2]
- var d = new Date()
- var nowYear = d.getFullYear()
- var nowMonth = d.getMonth() + 1
- var nowDay = d.getDate()
- if (nowYear == birthYear) {
- returnAge = 0 //同年 则为0岁
- } else {
- var ageDiff = nowYear - birthYear //年之差
- if (ageDiff > 0) {
- if (nowMonth == birthMonth) {
- var dayDiff = nowDay - birthDay //日之差
- if (dayDiff < 0) {
- returnAge = ageDiff - 1
- } else {
- returnAge = ageDiff
- }
- } else {
- var monthDiff = nowMonth - birthMonth //月之差
- if (monthDiff < 0) {
- returnAge = ageDiff - 1
- } else {
- returnAge = ageDiff
- }
- }
- } else {
- returnAge = -1 //返回-1 表示出生日期输入错误 晚于今天
- }
- }
- return returnAge //返回周岁年龄
- },
- getForm(){
- this.form.total = this.total
- if(localStorage.getItem("temp")){
- let a = JSON.parse(localStorage.getItem("temp"))
- // let arr = []
- this.form.create_time = new Date(new Date().toLocaleDateString()).getTime() / 1000
- this.form.org_id = this.$store.getters.xt_user.org_id
- a.push(this.form)
- console.log(111,a)
- localStorage.setItem("temp",JSON.stringify(a));
- Object.keys(this.form).forEach((key)=>{
- this.form[key] = ''
- })
- this.$message({message: '添加成功',type: 'success'});
- }else {
- let arr = []
- this.form.create_time = new Date(new Date().toLocaleDateString()).getTime() / 1000
- this.form.org_id = this.$store.getters.xt_user.org_id
- arr.push(this.form)
- localStorage.setItem("temp",JSON.stringify(arr));
- Object.keys(this.form).forEach((key)=>{
- this.form[key] = ''
- })
- this.$message({message: '添加成功',type: 'success'});
- }
- },
-
- getAllDoctorList(){
- getAllDoctorList().then(response=>{
- if(response.data.state == 1){
- var doctor = response.data.data.doctor
- this.doctorList = doctor
- var department = response.data.data.department
- console.log("department",department)
- this.departmentList = department
- }
- })
- },
- saveHisPatient(formName){
- this.$refs[formName].validate((valid)=>{
- if(valid){
- if(this.form.costChecked == true){
- this.check = 1
- }
- if(this.form.costChecked == false){
- this.check = 2
- }
- if(this.form.idCard == ""){
- this.show = true
- }
- var params = {
- settlementValue:this.form.settlementValue,
- medicalInsuranceCard:this.form.medicalInsuranceCard,
- name:this.form.name,
- sex:this.form.sex,
- certificates:this.form.certificates,
- medicalCare:this.form.medicalCare,
- birthDay:moment(new Date(this.form.birthday)).format('YYYY-MM-DD'),
- age:parseInt(this.form.age),
- idCard:this.form.idCard,
- register:this.form.register,
- doctor:this.form.doctor,
- department:this.form.department,
- costChecked:this.check,
- registrationFee:this.form.registrationFee,
- medicalExpenses:this.form.medicalExpenses,
- cost:this.form.cost,
- total:this.total
- }
- console.log("params",params)
- saveHisPatient(params).then(response=>{
- if(response.data.state == 1){
- var patient = response.data.data.patient
- console.log("patient",patient)
- this.$message.success("保存成功")
- this.form.settlementValue = "",
- this.form.medicalInsuranceCard = "",
- this.form.name = "",
- this.form.sex="",
- this.form.certificates="",
- this.form.medicalCare = "",
- this.form.birthday ="",
- this.form.age ="",
- this.form.idCard = "",
- this.form.register = "",
- this.form.doctor = "",
- this.form.department = "",
- this.form.costChecked = false,
- this.form.registrationFee = "",
- this.form.medicalExpenses = "",
- this.form.cost="",
- this.form.total= ""
- }
- })
- }
- })
- },
-
- },
- created(){
- //获取当前机构有人员信息
- this.getAllDoctorList()
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .nameTitle{
- font-weight: bold;
- font-size: 16px;
- }
- .formMain{
- // padding: 10px 90px;
- width:80%;
- margin: 0 auto;
- }
- .basicForm{
-
- display: flex;
- flex-wrap: wrap;
- justify-content: space-between;
- .el-form-item{
- width: 260px;
- }
- .specialFormItem{
- width:625px;
- .el-input{
- min-width: 150px;
- }
- }
- .el-select{
- width: 180px;
- }
- .el-input{
- width: 180px;
- }
- }
- .el-form-item__error{
- color: #F56C6C;
- font-size: 12px;
- line-height: 1;
- padding-top: 4px;
- position: absolute;
- top: 100%;
- left: 0;
- }
- </style>
|