556 lines
15 KiB
JavaScript
556 lines
15 KiB
JavaScript
import Toast from '@vant/weapp/toast/toast';
|
||
import { API } from './../../../utils/network/api'
|
||
import Dialog from '@vant/weapp/dialog/dialog';
|
||
|
||
const api = new API()
|
||
const app = getApp()
|
||
Page({
|
||
data: {
|
||
navbarData: {
|
||
showCapsule: 1, //是否显示左上角图标 1表示显示 0表示不显示
|
||
title: '在线开方', //导航栏 中间的标题
|
||
},
|
||
autoHeight:{ minHeight: 100},
|
||
add_disease_desc:'',//医生填写的病情主诉
|
||
height: app.globalData.height,
|
||
zhenduan_popshow: false,
|
||
drugs_popshow: false,
|
||
note_popshow: false,
|
||
disease_class_name: "",
|
||
zhenduan_search_list: [],
|
||
zhenduan_list: [],
|
||
note_columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
|
||
drugs_box_item_list:[],
|
||
drug_content_show: false,
|
||
search_drug_list_empty: true,
|
||
search_drug_list: [],
|
||
product_name: "",
|
||
select_drug_id: "",
|
||
save_durg_product_id: "",
|
||
save_durg_prescription_product_num: "",
|
||
save_durg_single_unit: "",
|
||
save_durg_single_use: "",
|
||
save_durg_packaging_unit: "",
|
||
save_durg_frequency_use: "",
|
||
save_durg_available_days: "",
|
||
order_inquiry_id: "",
|
||
order_prescription_id: "",
|
||
doctor_advice: "",
|
||
doctors_advice_focus: false,
|
||
case_detail: {},
|
||
sub_disabled: false,
|
||
from: "",
|
||
now_filed_focus: 'save_durg_prescription_product_num',
|
||
page_meta_show: true,
|
||
static_host: api.getStaticHost()
|
||
},
|
||
changeFocus(e){
|
||
let next_filed_focus = e.currentTarget.dataset.next_filed_focus;
|
||
this.setData({
|
||
now_filed_focus: next_filed_focus
|
||
})
|
||
},
|
||
onDoctorsAdviceFocus(){
|
||
this.setData({
|
||
doctors_advice_focus: true
|
||
})
|
||
},
|
||
onLoad(options){
|
||
let from = options.from;
|
||
let order_inquiry_id = options.order_inquiry_id;
|
||
let order_prescription_id = options.order_prescription_id ;
|
||
//获取患者问诊病例
|
||
api.getInquiryDetail({order_inquiry_id: order_inquiry_id}).then(response => {
|
||
console.log(response);
|
||
this.setData({
|
||
case_detail: response.data
|
||
})
|
||
}).then(res => {
|
||
//有处方id,才去请求详情
|
||
if(order_prescription_id){
|
||
this.getDoctorPrescriptionInfo(order_inquiry_id, order_prescription_id);
|
||
}
|
||
}).catch(errors => {console.error(errors);})
|
||
this.setData({
|
||
order_inquiry_id: order_inquiry_id,
|
||
order_prescription_id: order_prescription_id,
|
||
from: from
|
||
})
|
||
if(from == 'chat'){
|
||
this.setData({
|
||
"navbarData.title": '处方详情'
|
||
})
|
||
}
|
||
},
|
||
select_drug(e){
|
||
this.setData({
|
||
drug_content_show: true,
|
||
product_name: e.currentTarget.dataset.product_name,
|
||
select_drug_id: e.currentTarget.dataset.product_id,
|
||
save_durg_product_id: e.currentTarget.dataset.product_id,
|
||
save_durg_single_use: e.currentTarget.dataset.single_use,
|
||
save_durg_frequency_use: e.currentTarget.dataset.frequency_use,
|
||
save_durg_single_unit: e.currentTarget.dataset.single_unit,
|
||
save_durg_available_days: e.currentTarget.dataset.available_days,
|
||
save_durg_packaging_unit: e.currentTarget.dataset.packaging_unit,
|
||
});
|
||
},
|
||
showPopup() {
|
||
this.setData({ drugs_popshow: true });
|
||
},
|
||
|
||
onClose() {
|
||
var _this = this;
|
||
this.setData({
|
||
drugs_popshow: false,
|
||
});
|
||
|
||
setTimeout(function(){
|
||
_this.setData({
|
||
drug_content_show: false,
|
||
search_value: ""
|
||
});
|
||
},1000)
|
||
},
|
||
|
||
showNotePopup() {
|
||
this.setData({ note_popshow: true });
|
||
},
|
||
|
||
onCloseNote() {
|
||
this.setData({ note_popshow: false });
|
||
},
|
||
|
||
onConfirmNote(event) {
|
||
const { picker, value, index } = event.detail;
|
||
Toast(`当前值:${value}, 当前索引:${index}`);
|
||
this.setData({ note_popshow: false });
|
||
},
|
||
|
||
onCancelNote(event) {
|
||
const { picker, value, index } = event.detail;
|
||
Toast(`当前值:${value}, 当前索引:${index}`);
|
||
this.setData({ note_popshow: false });
|
||
},
|
||
|
||
onChangeNote(event) {
|
||
const { picker, value, index } = event.detail;
|
||
Toast(`当前值:${value}, 当前索引:${index}`);
|
||
},
|
||
|
||
saveDrugs(){
|
||
console.log("saveDrugs");
|
||
|
||
let product_id = this.data.save_durg_product_id;
|
||
this.delDrugBox(product_id);
|
||
let save_durg_prescription_product_num = this.data.save_durg_prescription_product_num;
|
||
|
||
if(!save_durg_prescription_product_num || save_durg_prescription_product_num <0){
|
||
Dialog.alert({
|
||
message: '请输入药品数量',
|
||
}).then(() => {
|
||
this.setData({
|
||
save_durg_prescription_product_num: ""
|
||
})
|
||
});
|
||
return
|
||
}
|
||
|
||
let save_durg = {};
|
||
save_durg.product_name = this.data.product_name;
|
||
save_durg.product_id = this.data.save_durg_product_id;
|
||
save_durg.prescription_product_num = this.data.save_durg_prescription_product_num;
|
||
|
||
save_durg.single_unit = this.data.save_durg_single_unit;
|
||
save_durg.single_use = this.data.save_durg_single_use;
|
||
save_durg.packaging_unit = this.data.save_durg_packaging_unit;
|
||
save_durg.frequency_use = this.data.save_durg_frequency_use;
|
||
save_durg.available_days = this.data.save_durg_available_days;
|
||
let list = this.data.drugs_box_item_list;
|
||
list.push(save_durg);
|
||
this.setData({
|
||
drugs_box_item_list: list,
|
||
drugs_popshow: false,
|
||
product_name: "",
|
||
drug_content_show: false,
|
||
search_drug_list: [],
|
||
save_durg_product_id: "",
|
||
save_durg_prescription_product_num: "",
|
||
save_durg_single_unit: "",
|
||
save_durg_single_use: "",
|
||
save_durg_packaging_unit: "",
|
||
save_durg_frequency_use: "",
|
||
save_durg_available_days: ""
|
||
})
|
||
|
||
},
|
||
showZhenDuan(){
|
||
this.setData({
|
||
zhenduan_popshow: true
|
||
})
|
||
},
|
||
onZhenDuanChange(e){
|
||
console.log(e)
|
||
let name = e.detail;
|
||
this.setData({
|
||
zhenduan_search_list: []
|
||
})
|
||
if(name){
|
||
this.search();
|
||
}
|
||
},
|
||
search(){
|
||
//搜索诊断
|
||
let params = {};
|
||
params.icd_keyword = this.data.disease_class_name;
|
||
api.getBasicIcdSearch(params).then(response => {
|
||
console.log(response);
|
||
this.setData({
|
||
zhenduan_search_list: response.data
|
||
})
|
||
}).catch(errors => {
|
||
console.error(errors);
|
||
})
|
||
},
|
||
searchDrug(){
|
||
//搜索药品
|
||
let params = {};
|
||
params.product_keyword = this.data.product_name;
|
||
api.getBasicProductSearch(params).then(response => {
|
||
console.log(response);
|
||
this.setData({
|
||
drug_content_show: false
|
||
})
|
||
if(response.data.length > 0){
|
||
this.setData({
|
||
search_drug_list_empty: false,
|
||
search_drug_list: response.data,
|
||
})
|
||
}
|
||
}).catch(errors => {
|
||
console.error(errors);
|
||
})
|
||
},
|
||
onDrugChange(e){
|
||
console.log(e.detail);
|
||
let name = e.detail;
|
||
this.setData({
|
||
search_drug_list_empty: true,
|
||
search_drug_list: []
|
||
})
|
||
if(name){
|
||
this.searchDrug();
|
||
}
|
||
},
|
||
onZhenduanClose(){
|
||
this.setData({
|
||
zhenduan_popshow: false
|
||
})
|
||
},
|
||
addZhenDuan(e){
|
||
let icd_name = e.currentTarget.dataset.icd_name;
|
||
let icd_id = e.currentTarget.dataset.icd_id;
|
||
console.log("icd_name: ", icd_name);
|
||
console.log("icd_id: ", icd_id);
|
||
|
||
let disease_obj = {};
|
||
disease_obj.icd_name = icd_name;
|
||
disease_obj.icd_id = icd_id;
|
||
let list = this.data.zhenduan_list;
|
||
let find_index = list.findIndex(item => {
|
||
return item.icd_id == icd_id
|
||
});
|
||
if(find_index == -1){
|
||
list.push(disease_obj);
|
||
}
|
||
this.setData({
|
||
zhenduan_list: list,
|
||
zhenduan_popshow: false
|
||
})
|
||
},
|
||
delZhenDuan(e){
|
||
let disease_class_id = e.currentTarget.dataset.disease_class_id;
|
||
console.log("disease_class_id: ", disease_class_id);
|
||
let list = this.data.zhenduan_list;
|
||
let find_index = list.findIndex(item => {
|
||
return item.icd_id == disease_class_id
|
||
});
|
||
console.log("find_idex: ", find_index)
|
||
list.splice(find_index, 1);
|
||
this.setData({
|
||
zhenduan_list: list
|
||
})
|
||
},
|
||
go(e){
|
||
let url = e.currentTarget.dataset.url;
|
||
console.log(url);
|
||
app.go(url);
|
||
},
|
||
editDrug(e){
|
||
let product_id = e.currentTarget.dataset.product_id;
|
||
console.log(product_id);
|
||
let list = this.data.drugs_box_item_list;
|
||
let drug = list.find(item => {
|
||
return item.product_id == product_id;
|
||
})
|
||
console.log(drug);
|
||
this.setData({
|
||
drugs_popshow: true,
|
||
product_name: drug.product_name,
|
||
drug_content_show: true,
|
||
save_durg_product_id: drug.product_id,
|
||
save_durg_prescription_product_num: drug.prescription_product_num,
|
||
save_durg_single_unit: drug.single_unit,
|
||
save_durg_single_use: drug.single_use,
|
||
save_durg_packaging_unit: drug.packaging_unit,
|
||
save_durg_frequency_use: drug.frequency_use,
|
||
save_durg_available_days: drug.available_days
|
||
})
|
||
},
|
||
delDrug(e){
|
||
let product_id = e.currentTarget.dataset.product_id;
|
||
console.log(product_id);
|
||
this.delDrugBox(product_id);
|
||
},
|
||
delDrugBox(product_id){
|
||
let list = this.data.drugs_box_item_list;
|
||
let drug_index = list.findIndex(item => {
|
||
return item.product_id == product_id;
|
||
})
|
||
console.log(drug_index);
|
||
if(drug_index > -1){
|
||
list.splice(drug_index, 1);
|
||
this.setData({
|
||
drugs_box_item_list: list
|
||
})
|
||
}
|
||
},
|
||
onChangeTextAraa(event){
|
||
this.setData({
|
||
add_disease_desc:event.detail
|
||
})
|
||
},
|
||
getAdvice(e){
|
||
console.log(e.detail.value)
|
||
this.setData({
|
||
doctor_advice: e.detail.value
|
||
})
|
||
},
|
||
postDoctorPrescription(e){//新增处方
|
||
|
||
let sub_disabled = this.data.sub_disabled;
|
||
if(sub_disabled) return
|
||
|
||
console.log("postDoctorPrescription postDoctorPrescription");
|
||
//先置灰,避免重复提交
|
||
this.setData({
|
||
sub_disabled: true
|
||
})
|
||
|
||
let params = {};
|
||
params.order_inquiry_id = this.data.order_inquiry_id;
|
||
params.doctor_advice = this.data.doctor_advice;
|
||
let prescription_icd = [];
|
||
this.data.zhenduan_list.forEach(item => {
|
||
prescription_icd.push(item.icd_id);
|
||
})
|
||
params.prescription_icd = prescription_icd;
|
||
params.prescription_product = this.data.drugs_box_item_list;
|
||
|
||
console.log(params);
|
||
//糖组检测需要填病情主诉;
|
||
let disease_desc=this.data.case_detail.disease_desc;
|
||
params.disease_desc=disease_desc?disease_desc:this.data.add_disease_desc;
|
||
if(!params.disease_desc){
|
||
wx.showToast({
|
||
title: '请填写病情主诉',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(prescription_icd.length == 0){
|
||
wx.showToast({
|
||
title: '请选择诊断',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(params.prescription_product.length == 0){
|
||
wx.showToast({
|
||
title: '请选择药品',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(this.data.doctor_advice == ""){
|
||
wx.showToast({
|
||
title: '请填写医嘱',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(this.data.doctor_advice.length < 5 || this.data.doctor_advice.length > 200){
|
||
wx.showToast({
|
||
title: '医嘱字数5-20',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
|
||
|
||
api.postDoctorPrescription(params).then(response => {
|
||
console.log(response);
|
||
wx.showToast({
|
||
title: '提交成功',
|
||
icon: "success"
|
||
})
|
||
setTimeout(() => {
|
||
wx.navigateBack();
|
||
}, 1000);
|
||
}).catch(errors => {
|
||
console.error(errors);
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
})
|
||
},
|
||
get_save_durg_prescription_product_num(e){
|
||
console.log("get_save_durg_prescription_product_num")
|
||
let save_durg_prescription_product_num = e.detail
|
||
console.log(typeof save_durg_prescription_product_num)
|
||
save_durg_prescription_product_num = Number.parseInt(save_durg_prescription_product_num)
|
||
console.log(save_durg_prescription_product_num)
|
||
if(isNaN(save_durg_prescription_product_num)){
|
||
Dialog.alert({
|
||
message: '请输入正确数字',
|
||
}).then(() => {
|
||
this.setData({
|
||
save_durg_prescription_product_num: ""
|
||
})
|
||
});
|
||
return
|
||
}
|
||
|
||
if(save_durg_prescription_product_num > 5){
|
||
Dialog.alert({
|
||
message: '每个药品数量不允许添加超过5个',
|
||
}).then(() => {
|
||
this.setData({
|
||
save_durg_prescription_product_num: ""
|
||
})
|
||
});
|
||
return
|
||
}
|
||
this.setData({
|
||
save_durg_prescription_product_num: save_durg_prescription_product_num
|
||
})
|
||
},
|
||
putDoctorPrescription(){//修改处方
|
||
let sub_disabled = this.data.sub_disabled;
|
||
if(sub_disabled) return
|
||
|
||
console.log("putDoctorPrescription putDoctorPrescription");
|
||
//先置灰,避免重复提交
|
||
this.setData({
|
||
sub_disabled: true
|
||
})
|
||
|
||
let params = {};
|
||
params.order_prescription_id = this.data.order_prescription_id;
|
||
params.doctor_advice = this.data.doctor_advice;
|
||
let prescription_icd = [];
|
||
this.data.zhenduan_list.forEach(item => {
|
||
prescription_icd.push(item.icd_id);
|
||
})
|
||
params.prescription_icd = prescription_icd;
|
||
params.prescription_product = this.data.drugs_box_item_list;
|
||
|
||
console.log(params);
|
||
|
||
if(prescription_icd.length == 0){
|
||
wx.showToast({
|
||
title: '请选择诊断',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(params.prescription_product.length == 0){
|
||
wx.showToast({
|
||
title: '请选择药品',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(this.data.doctor_advice == ""){
|
||
wx.showToast({
|
||
title: '请填写医嘱',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
if(this.data.doctor_advice.length < 5 || this.data.doctor_advice.length > 200){
|
||
wx.showToast({
|
||
title: '医嘱字数5-20',
|
||
icon: "error"
|
||
})
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
return;
|
||
}
|
||
|
||
api.putDoctorPrescription(params).then(response => {
|
||
console.log(response);
|
||
wx.showToast({
|
||
title: '提交成功',
|
||
icon: "success"
|
||
})
|
||
setTimeout(() => {
|
||
wx.navigateBack();
|
||
}, 1000);
|
||
}).catch(errors => {
|
||
console.error(errors);
|
||
this.setData({
|
||
sub_disabled: false
|
||
})
|
||
})
|
||
},
|
||
getDoctorPrescriptionInfo(order_inquiry_id, order_prescription_id){//获取处方详情
|
||
let params = {};
|
||
params.order_inquiry_id = order_inquiry_id;
|
||
params.order_prescription_id = order_prescription_id;
|
||
api.getDoctorPrescriptionInfo(params).then(response => {
|
||
console.log(response);
|
||
this.setData({
|
||
doctor_advice: response.data.prescription.doctor_advice,
|
||
pharmacist_audit_status: response.data.prescription.pharmacist_audit_status,
|
||
zhenduan_list: response.data.prescription_icd,
|
||
drugs_box_item_list: response.data.prescription_product
|
||
})
|
||
}).catch(errors => {console.error(errors);})
|
||
}
|
||
}) |