//@ sourceURL=registration.js var $dataTableHot; //病人下拉选当前页记录 var pageIndex = 0; //判断病人列表是否在加载中,防止重复加载 var msg_list_loading = false; //挂号卡片列表页面下标 var pageIndex = 0; var LODOP; //声明为全局变量 //默认打印机下标 var printIndex = -1; var TableInit = function () { var oTableInit = new Object(); //初始化Table oTableInit.Init = function () { $dataTableHot = $('#tb_fee_info').bootstrapTable({ url: '', //请求后台的URL(*) method: 'post', //请求方式(*) toolbar: '#toolbar', //工具按钮用哪个容器 striped: true, //是否显示行间隔色 cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination: false, //是否显示分页(*) sortable: true, //是否启用排序 sortOrder: "asc", //排序方式 //queryParams: oTableInit.queryParams,//传递参数(*) sidePagination: "server", //分页方式:client客户端分页,server服务端分页(*) pageNumber: 1, //初始化加载第一页,默认第一页 pageSize: 10, //每页的记录行数(*) pageList: [10, 25, 50, 100], //可供选择的每页的行数(*) search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 strictSearch: true, showColumns: false, //是否显示所有的列 showRefresh: false, //是否显示刷新按钮 minimumCountColumns: 2, //最少允许的列数 clickToSelect: true, //是否启用点击选中行 uniqueId: "ID", //每一行的唯一标识,一般为主键列 showToggle: false, //是否显示详细视图和列表视图的切换按钮 cardView: false, //是否显示详细视图 detailView: false, ajaxOptions: { headers: { 'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token") } }, columns: [ // { // checkbox: true // }, { field: 'name', title: '名称', align: "center", valign: 'middle', //sortable: true }, { field: 'money', title: '金额(元)', align: "center", valign: 'middle', //sortable: true }, { field: 'moneyReceived', title: '实收金额(元)', align: "center", valign: 'middle', // sortable: true }], responseHandler: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var ress = eval(res); if (ress.code == -1) { new PNotify({ title: '错误提示', text: ress.message, type: 'error', hide: true, styling: 'bootstrap3' }); return { "total": 0,//总页数 "rows": {} //数据 }; } return { "total": ress.pageViewVO.total,//总页数 "rows": ress.pageViewVO.data //数据 }; }, }); }; return oTableInit; }; $(function () { initGenderSelect(); initResponceTypeSelect(); // var birthDay = $('#birthDayGroup').datetimepicker({ // format: 'yyyy-mm-dd', // language: 'zh-CN', // minView: "month", // }).on('changeDate', changeDate); // var editUserBirthDay = $('#editUserBirthDayGroup').datetimepicker({ // format: 'yyyy-mm-dd', // language: 'zh-CN', // minView: "month", // }); //设置挂号窗口的高度 var width = $('#confirmFee').css("width"); var widthNum = parseInt(width); widthNum -= 24; $("#confirmFee").css("width", widthNum + "px"); init_daterangepicker(); //1.初始化Table var oTable = new TableInit(); oTable.Init(); formatCheck(); //默认光标在卡号输入框 $("#cardNo").focus(); //根据病人姓名输入框内容动态加载病人列表 //initUserList(); //卡号输入改变事件 cardNoChange(); //卡号输入改变事件 userNameChange(); //数据校验 init_validator(); //时间区间 initMzWorkTime(); //初始门诊收银方式下拉选 initChequeType("payType"); /** * 清空 */ $("#clearRegistration").on("click", function (t) { clearRegistration(); }); /** * 增加收款方式按钮事件 */ $("#addPayType").on("click", function (t) { var payTypeIndex = $("#payTypeIndex").val(); var payTypeId = "payType_" + payTypeIndex; var html = '
'; $("#changeAmountParent").before(html); initChequeType(payTypeId) payTypeIndex = payTypeIndex + 1; $("#payTypeIndex").val(payTypeIndex); }); // //当ic卡号输入框失去光标后,重置光标到卡号输入框 // $("#cardNo").blur(function () { // var focus = !($("#userName").is(":focus") || $("#age").is(":focus") || $("#birthDay").is(":focus") || $("#phoneNum").is(":focus") || $("#idCard").is(":focus") || $("#address").is(":focus")); // if (focus && $("#cardNo").val() == null || $("#cardNo").val() == "") { // //默认光标在卡号输入框 // $("#cardNo").focus(); // } // }); /** * 保存挂号信息 */ $("#saveConfirmFee").on("click", function (t) { var patientId = $("#patientId").val(); if (patientId == null || patientId == "") { savePatient(true); } else { saveMzyReqrec(); } }); // /** // * 设置窗口号 // */ // $("#editWindows").on("click", function (t) { // $.ajax({ // type: "GET", // url: '/thmz/getLastWindowsByCurrentUser', // contentType: "application/json;charset=UTF-8", // dataType: "json", // headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, // success: function (res) { // if (res == '401' || res == 401) { // window.location.href = '/thmz/login/view' // return; // } // if (res.code == 0) { // $("#windowsNum").val(res.data.windowsNo) // } else { // new PNotify({ // title: '错误提示', // text: res.message, // type: 'error', // hide: true, // styling: 'bootstrap3' // }); // } // } // }); // $("#editWindowsModal").modal(); // }); /** * 患者信息修改 */ $("#saveEditUser").on("click", function (t) { modifyPatient(); }); /** * 挂号列表中的科室和医生列表初始化 */ initListSelect(); // $("#editPrint").on("click", function (t) { // CreatePrinterList(); // $("#editPrintModal").modal(); // }); //每隔三秒读一次身份证 setInterval(function(){ new Device().startFun(); },3000); // $("#birthDay").keypress(function () { // keypress:输入框每获取一个字符,就触发一次该事件。 // var birthDay= $("#birthDay").val(); // birthDay='19880613'; // // }); $("#birthDay").change(function(e){ var birthDay= $("#birthDay").val(); if(birthDay.length==8 && birthDay.indexOf("-")<=0){ birthDay=birthDay.substring(0,4)+"-"+birthDay.substring(4,6)+"-"+birthDay.substring(6); $("#birthDay").val(birthDay); } var dateFormat =/^(\d{4})-(\d{2})-(\d{2})$/; if(!dateFormat.test(birthDay)){ new PNotify({ title: '错误提示', text: '生日日期错误', type: 'error', hide: true, styling: 'bootstrap3' }); } var arr =birthDay.split("-"); if(!checkDate(arr[0],arr[1],arr[2])){ new PNotify({ title: '错误提示', text: '生日日期错误', type: 'error', hide: true, styling: 'bootstrap3' }); } var returnAge=jsGetAge(birthDay); $("#age").val(returnAge); $("#age").blur(); }); $("#editUserBirthDay").change(function(e){ var editUserBirthDay= $("#editUserBirthDay").val(); if(editUserBirthDay.length==8 && editUserBirthDay.indexOf("-")<=0){ editUserBirthDay=editUserBirthDay.substring(0,4)+"-"+editUserBirthDay.substring(4,6)+"-"+editUserBirthDay.substring(6); $("#editUserBirthDay").val(editUserBirthDay); } var dateFormat =/^(\d{4})-(\d{2})-(\d{2})$/; if(!dateFormat.test(editUserBirthDay)){ new PNotify({ title: '错误提示', text: '生日日期错误', type: 'error', hide: true, styling: 'bootstrap3' }); } var arr =editUserBirthDay.split("-"); if(!checkDate(arr[0],arr[1],arr[2])){ new PNotify({ title: '错误提示', text: '生日日期错误', type: 'error', hide: true, styling: 'bootstrap3' }); } var returnAge=jsGetAge(editUserBirthDay); $("#editUserAge").val(returnAge); }); $("#idCard").change(function(e){ queryUserInfoBySocialNo(); }); $("#editUserIdCard").change(function(e){ var editUserIdCard = $("#editUserIdCard").val(); var birthday = editUserIdCard.substring(6,14); birthday =birthday.substring(0,4)+"-"+birthday.substring(4,6)+"-"+birthday.substring(6); $("#editUserBirthDay").val(birthday); var returnAge=jsGetAge(birthday); $("#editUserAge").val(returnAge); var gender = editUserIdCard.substring(16,17); if (gender%2 ==0){ $("#editUserGender").val(2); }else { $("#editUserGender").val(1); } $('#editUserGender').selectpicker('refresh'); }); }); //判断给定日期是否合法 function checkDate(year,month,date){ var now = new Date(year,month -1,date); if(now.getDate()==date&&now.getFullYear()==year&&now.getMonth()==(month-1)){ return true; } return false; } // function CreatePageList() { // LODOP = getLodop(); // LODOP.PRINT_INITA(6, 0, "92mm", "120mm", "泰和门诊发票打印"); // //获取纸张大小数,用于进行遍历 // var strPageSizeList = LODOP.GET_PAGESIZES_LIST($('#printSelect').val(), "\n"); // var html = ""; // var arr = strPageSizeList.split("\n"); // for (var i = 0; i < arr.length; i++) { // html += ""; // } // $('#pageSelect').html(html); // $('#pageSelect').selectpicker('refresh'); // } /** * 初始化性别下拉选 */ function initGenderSelect() { $(".selectpicker").selectpicker({ dropuAuto: false }); var gender = ''; $('#gender').html(gender); $('#gender').selectpicker('refresh'); $('#editUserGender').html(gender); $('#editUserGender').selectpicker('refresh'); } /** * 初始化病人身份类别下拉选 */ function initResponceTypeSelect() { $(".selectpicker").selectpicker({ dropuAuto: false }); $.ajax({ type: "GET", url: '/thmz/getMzResponceType', contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { res.data.forEach(function (item, index) { var html = ''; $('#patientsNature').append(html); $('#editUserPatientsNature').append(html); }); $('#patientsNature').selectpicker('refresh'); $('#editUserPatientsNature').selectpicker('refresh'); } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } /** * 初始科室下拉选 * @param ampm 时间段区间 */ function initDeptPlus() { //科室列表 $.ajax({ type: "GET", url: '/thmz/getUnitCodeByRequestDay?ampm=' + $("#ampm").val(), dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (data) { if (data == '401' || data == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(data.data, function (commentIndex, comment) { html += ''; }); $('#deptNo').empty(); $('#deptNo').html(html); $('#deptNo').selectpicker('refresh'); $('#chargeType').empty(); $('#chargeType').selectpicker('refresh'); emptyInput(); } }); } /** * 初始医生下拉选 * @param ampm 时间段区间 */ function initEmployee() { //医生列表 $.ajax({ type: "GET", url: '/thmz/getDoctorCodeByRequestDay?unitCode=' + $('#deptNo').val() + "&m=" + $("#ampm").val() + "&chargeType=" + $("#chargeType").val(), dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; var defaultCode=null; $.each(res.data, function (commentIndex, comment) { html += ''; if(res.data.length==1){ //如果只有一个号别,默认选中 defaultCode=comment.employee.employeeCode; } }); $('#doctor').empty(); $('#doctor').html(html); $('#doctor').selectpicker('refresh'); validator.checkAll($("#regi_form")); if (defaultCode!=null) { //如果有无需选择医生的选项,默认选择 $('#doctor').selectpicker('val', defaultCode); $('#doctor').selectpicker('refresh'); fitFee(); } } }); } /** * 初始门诊时间区间下拉选 */ function initMzWorkTime() { $.ajax({ type: "GET", url: '/thmz/getMzWorkTime', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; var ampm = null; $.each(res.data, function (commentIndex, comment) { html += ''; if (ampm == null || (ampm != "a" && ampm != "p")) { var startTime = paseToFullTime(comment.startTime); var endTime = paseToFullTime(comment.endTime); if (range(startTime, endTime)) { ampm = comment.code; } } }); $('#ampm').empty(); //清空resText里面的所有内容 $('#ampm').html(html); $('#ampm').selectpicker('refresh'); $("#ampm").selectpicker('val', ampm); $('#ampm').selectpicker('refresh'); initDeptPlus(); } }); } /** * 初始门诊号别下拉选 */ function initChargeType() { $.ajax({ type: "GET", url: '/thmz/getChargeTypeByRequestDay?unitCode=' + $('#deptNo').val() + "&m=" + $("#ampm").val(), dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; var defaultCode=null; $.each(res.data, function (commentIndex, comment) { if(res.data.length==1){ //如果只有一个号别,默认选中 defaultCode=comment.code; } html += ''; }); $('#chargeType').empty(); //清空resText里面的所有内容 $('#chargeType').html(html); $('#chargeType').selectpicker('refresh'); if (defaultCode!=null) { //如果有默认选项,默认选择 $('#chargeType').selectpicker('val', defaultCode); $('#chargeType').selectpicker('refresh'); initEmployee(); } validator.checkAll($("#regi_form")); emptyInput(); } }); } /** * 设置挂号费等费用 */ function fitFee() { var chargeType = $('#doctor').find("option:selected").attr('data-chargeType'); var checkFee = $('#doctor').find("option:selected").attr('data-checkFee'); $("#checkFee").val(checkFee); $("#amountMoney").text(checkFee); $("#amountMoneyConfirm").text(checkFee); $("#realMoney").val(checkFee); $("#cash").val(checkFee); $("#changeAmount").val(0); $.ajax({ type: "GET", url: '/thmz/getMzChargeTypeByCode?code=' + chargeType, dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } $("#registrationFee").val(res.data.reqFee); $("#hospitalFee").val(res.data.clinicFee); checkFee = parseFloat(checkFee) + parseFloat(res.data.reqFee) + parseFloat(res.data.clinicFee); $("#amountMoney").text(checkFee); $("#amountMoneyConfirm").text(checkFee); $("#realMoney").val(checkFee); $("#cash").val(checkFee); validator.checkAll($("#regi_form")); } }); } /** * 初始门诊收银方式下拉选 */ function initChequeType(payType) { $.ajax({ type: "GET", url: '/thmz/getAllZdChequeTypeForMz', dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } var html = ''; $.each(res.data, function (commentIndex, comment) { html += ''; }); $('#' + payType).empty(); $('#' + payType).html(html); $('#' + payType).selectpicker('refresh'); $('#' + payType).selectpicker('val', 1); $('#' + payType).selectpicker('refresh'); } }); } /** * 日期值改变修改年龄字段 * @param ev */ function changeDate(ev) { } /** * 列表类型按钮切换事件 * @param object */ function titleButtonChange(object) { $("#regi_List_btn_group").find("button").each(function (index, element) { if ($(element).hasClass("btn-primary")) { $(element).removeClass("btn-primary").addClass("btn-default"); } }); $(object).removeClass("btn-default").addClass("btn-primary"); loadRegistrationList(true); } /** * 表格类型切换事件 卡片展示或者列表形式 */ function listTypeChange(object) { //var indexNum = 0; $("#regi_List_type").find("button").each(function (index, element) { if ($(element).hasClass("btn-primary")) { $(element).removeClass("btn-primary").addClass("btn-default"); } // if (object == element) { // indexNum = index; // } }); $(object).removeClass("btn-default").addClass("btn-primary"); loadRegistrationList(true); } /** * 打开编辑用户信息窗口 * @param data */ function editUserModal(data) { $("#editUserModal").modal(); if (data == null) { data = $("#patientId").val(); } $.ajax({ type: "GET", url: '/thmz/getByPatientId?patientId=' + data, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != null) { //延时调用,因为当前弹框还没有加载出来,校验规则无法获取光标与模拟光标丢失事件,延时可以等弹框加载出来后模拟事件 setTimeout(function () { fillPlusPatinet(res.data); }, 400); } } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } /** * 打开打印内容窗口 * @param data */ function printModal(data) { $("#printOrPreviewModal").modal("hide"); $("#printModal").modal(); } /** * 打开收费窗口 * @param data */ function confirmFeeModal() { var validatorResult = validator.checkAll($("#regi_form")); if (!validatorResult) { return; } var prevAll = $("#changeAmountParent").prevAll(); while (prevAll.length > 2) { $("#changeAmountParent").prev().remove(); prevAll = $("#changeAmountParent").prevAll(); } $("#realMoney").val($("#amountMoneyConfirm").text()); $("#cash").val($("#amountMoneyConfirm").text()); $("#confirmFeeModal").modal(); } /** * checkBox样式 */ function formatCheck() { if ($("input.flat")[0]) { $(document).ready(function () { $('input.flat').iCheck({ checkboxClass: 'icheckbox_flat-blue', radioClass: 'iradio_flat-blue' }); }); } } /** * 卡号有变化后查询病人信息 */ function queryUserInfoByCardNo() { var cardNo = $("#cardNo").val(); if (cardNo.length == 8) { $("#cardNo").attr("title", cardNo); $.ajax({ type: "GET", url: '/thmz/getByIcCardNo?icCardNo=' + cardNo, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != null) { $("#cardNo").blur(); $("#userName").val(res.data.name); $("#userName").blur(); $("#userNameReadOnly").val(res.data.name); $("#age").val(res.data.age); $("#age").blur(); $("#gender").selectpicker('val', res.data.sex); $("#gender").selectpicker('refresh'); $("#gender").blur(); $("#birthDayReadonly").val(res.data.birthDayStr); $("#birthDayReadonly").attr("title", res.data.birthDayStr); $("#birthDay").val(res.data.birthDayStr); $("#birthDay").blur(); $("#phoneNum").val(res.data.phoneNo); $("#phoneNum").attr("title", res.data.phoneNo); $("#phoneNum").blur(); $("#patientsNature").selectpicker('val', res.data.responseType);//默认选中 $('#patientsNature').selectpicker('refresh'); $("#patientsNature").blur(); $("#idCard").val(res.data.socialNo); $("#idCard").attr("title", res.data.socialNo); $("#idCard").blur(); $("#address").val(res.data.address); $("#address").blur(); $("#patientId").val(res.data.patientId); if (res.data.name != null && res.data.name != "") { $("#editUser").show(); $("#clearIcCardNo").show(); } readonlyOrNot(true); $("#saveUser").hide(); } else { $("#saveUser").show(); $("#newCardModal").modal(); } } else { new PNotify({ title: '错误提示', text: res.message, type: 'error', hide: true, styling: 'bootstrap3' }); } } }); } } /** * 卡号输入改变事件 */ function cardNoChange() { if (window.ActiveXObject || "ActiveXObject" in window) { $("#cardNo").on('input propertychange', function () { queryUserInfoByCardNo(); }); } else { $("#cardNo").on('input οninput', function () { queryUserInfoByCardNo(); }); } } /** * 病人姓名输入改变事件 */ function userNameChange() { if (window.ActiveXObject || "ActiveXObject" in window) { $("#userName").on('input propertychange', function () { refeshPatinetList(true); }); } else { $("#userName").on('input οninput', function () { refeshPatinetList(true); }); } } /** * 校验收款金额 */ function checkFee() { var cash = parseFloat($("#cash").val()); var realMoney = parseFloat($("#realMoney").val()); realMoney = realMoney.toFixed(2); $("#realMoney").val(realMoney) if (cash < realMoney) { new PNotify({ title: '错误提示', text: "收款金额不能少于实收金额!", type: 'error', hide: true, styling: 'bootstrap3' }); return; } else if (cash > realMoney) { if ($("#payType").val() == 1) { var changeAmount = cash - realMoney; $("#changeAmount").val(changeAmount.toFixed(2)); } else { new PNotify({ title: '错误提示', text: "非现金收款金额不能大于实收金额!", type: 'error', hide: true, styling: 'bootstrap3' }); return; } } //计算和设置折扣比例 var amountMoneyConfirm = parseFloat($("#amountMoneyConfirm").text()); var discount = 100; if (realMoney < amountMoneyConfirm) { discount = realMoney / amountMoneyConfirm * 100; } $("#discount").text(discount.toFixed(2)) } /** * 根据病人姓名输入框内容动态加载病人列表 */ function initUserList() { //var width=$("#userName").css("width"); var settings = { trigger: 'click', content: '', width: 170, multi: true, closeable: false, style: '', delay: 300, padding: true, height: 300 }; var webuiPopover = $('#userName').webuiPopover('destroy').webuiPopover(settings); //用户姓名选中事件 $("#userName").on("click", function (t) { if ($(webuiPopover).css("display") == "block") { refeshPatinetList(true); } }); } /** * 刷新病人列表 */ function refeshPatinetList(flag) { //如果是重新加载病人列表,需要重置下标 if (flag) { //重置下标 pageIndex = 0; msg_list_loading = true; } var userName = $('#userName').val(); if (!(userName == null || userName == "" || isChinese(userName))) { return; } $.ajax({ type: "GET", url: '/thmz/getPatientMiByName?name=' + userName + "&pageIndex=" + pageIndex, contentType: "application/json;charset=UTF-8", dataType: "json", headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")}, success: function (res) { if (res == '401' || res == 401) { window.location.href = '/thmz/login/view' return; } if (res.code == 0) { if (res.data != null && res.data.length > 0) { $("#webuiPopover0").css("display", "block"); var html = '