xufangxiangqing.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622
  1. mui.plusReady(function(){
  2. var docInfo = JSON.parse(plus.storage.getItem("docInfo")),
  3. self = plus.webview.currentWebview(),
  4. teamCode = self.teamCode?self.teamCode:'',
  5. info= self.infoStr?JSON.parse(self.infoStr):'',
  6. isLeader;
  7. var $patiInfo = $('#patient-info');
  8. var strOriginalData;//认证专用
  9. var prescriptionCode = info?info.code:self.prescriptionCode;
  10. //判断是否为该团队团队长
  11. if(docInfo.isLeader && teamCode == docInfo.adminTeamCode){
  12. isLeader = 1;
  13. }else{
  14. isLeader=0
  15. }
  16. queryData();
  17. bindEvent();
  18. function queryData(){
  19. plus.nativeUI.showWaiting();
  20. var params ={
  21. code:prescriptionCode,
  22. type:isLeader
  23. }
  24. sendPost("doctor/prescriptionInfo/getContinuedPrescriptionAsDoctor",params, function(){
  25. plus.nativeUI.closeWaiting();
  26. mui.toast("请求失败");
  27. }, function(res){
  28. plus.nativeUI.closeWaiting();
  29. if(res.status == 200){
  30. strOriginalData = res.data;
  31. var html = template('pati_tmp',{data:res.data,isLeader:isLeader})
  32. $patiInfo.html(html);
  33. //判断团队长
  34. if(isLeader){
  35. $('.layer-res').show();
  36. if(res.data.prescription.status == 0){
  37. $('.header-link').show();
  38. $('.header-link2').hide();
  39. }else if(res.data.prescription.status == 2 ||res.data.prescription.status == 3){
  40. $('.header-link2').show();
  41. $('.header-link').hide();
  42. }
  43. //加载插件
  44. if(res.data.prescription.status == 0 || res.data.prescription.status == 31){
  45. $('.os-main').css('padding-bottom','147px')
  46. selectFee();
  47. selectHome();
  48. selectResult();
  49. nopassReason();
  50. }else{
  51. $('.os-main').css('padding-bottom','10px')
  52. }
  53. }
  54. }else{
  55. mui.toast("获取数据失败");
  56. }
  57. },'get')
  58. }
  59. function bindEvent(){
  60. //选择调整平台
  61. $(".header-link").on('tap', function(){
  62. mui('#sheet1').popover('toggle');
  63. })
  64. //防止在调整中,再次请求接口
  65. $(".header-link2").on('tap', function(){
  66. mui.openWindow({
  67. id: "change-chufang1",
  68. url: "change-chufang1.html",
  69. waiting:{autoShow:false},
  70. extras: {
  71. prescriptionCode:prescriptionCode,
  72. state:strOriginalData.prescription.status
  73. }
  74. })
  75. })
  76. $('.j-change-method').click(function(){
  77. var $this = $(this)
  78. mui('#sheet1').popover('toggle');
  79. if($this.index()==1){
  80. mui.openWindow({
  81. id: "change-chufang1",
  82. url: "change-chufang1.html",
  83. waiting:{autoShow:false},
  84. extras: {
  85. state:strOriginalData.prescription.status,
  86. prescriptionCode:prescriptionCode,
  87. jwHospital:strOriginalData.prescription.jwHospital,
  88. jwDoctorCode:strOriginalData.prescription.jwDoctorCode
  89. }
  90. })
  91. }else{
  92. nextPage();
  93. }
  94. })
  95. function nextPage(){
  96. var usefulMsg = {};
  97. usefulMsg.prescriptionCode = prescriptionCode;
  98. usefulMsg.diagnosis = strOriginalData.diagnosis;
  99. usefulMsg.prescriptionInfo = strOriginalData.prescriptionInfo;
  100. mui.openWindow({
  101. id: "change-chufang2",
  102. url: "change-chufang2.html",
  103. extras: {
  104. jsonStr:usefulMsg
  105. }
  106. })
  107. }
  108. //调整处方
  109. $patiInfo.on('click','#changeMethod',function(){
  110. nextPage()
  111. })
  112. //不通过原因
  113. $patiInfo.on('click','.nopass-list li',function(){
  114. var $this = $(this)
  115. if($this.hasClass('active')){
  116. $this.removeClass('active')
  117. }else{
  118. $this.addClass('active')
  119. }
  120. fillWord()
  121. })
  122. function fillWord(){
  123. var str=''
  124. $.map($('.nopass-list li.active'),function(o,i){
  125. str += $('.nopass-list li.active').eq(i).text()+',';
  126. })
  127. $('#textarea').val(str.substr(0,str.length-1))
  128. }
  129. $patiInfo.on('click','#old-data',function(){
  130. mui.openWindow({
  131. id: "chufangxiangqing",
  132. url: "chufangxiangqing.html",
  133. extras: {
  134. code:strOriginalData.prescription.jwCode,
  135. patient:strOriginalData.prescription.patient,
  136. preCode: prescriptionCode
  137. }
  138. })
  139. })
  140. //跳转订单
  141. $patiInfo.on('click','#booking',function(){
  142. mui.openWindow({
  143. id: "dingdangenzong",
  144. url: "dingdangenzong.html",
  145. extras: {
  146. prescriptionCode:prescriptionCode,
  147. teamCode:teamCode
  148. }
  149. })
  150. })
  151. $patiInfo.on('click','#history_msg',function(){
  152. var $this = $(this)
  153. mui.openWindow({
  154. id: "juminxufangjilu",
  155. url: "juminxufangjilu.html",
  156. extras: {
  157. patiCode:strOriginalData.prescription.patient,
  158. teamCode:teamCode,
  159. patiName:strOriginalData.prescription.patientName
  160. }
  161. })
  162. })
  163. //回答居民
  164. $('.layer-res').click(function(){
  165. if(strOriginalData.prescription.status == 100){
  166. mui.openWindow({
  167. id: "xufangzixunxiangqing",
  168. url: "xufangzixunxiangqing.html",
  169. extras: {
  170. sessionId:strOriginalData.prescription.patient+'_'+strOriginalData.prescription.consult+'_'+8,
  171. sessionName:strOriginalData.prescription.patientName,
  172. sessionTime:checkDate(strOriginalData.prescription.createTime),
  173. patiCode:strOriginalData.prescription.patient,
  174. status:2,
  175. type:8
  176. }
  177. })
  178. }else{
  179. mui.openWindow({
  180. id: "xufangzixun.html",
  181. url: "../../message/html/xufangzixun.html",
  182. extras: {
  183. type:8,
  184. sessionId:strOriginalData.prescription.patient+'_'+strOriginalData.prescription.consult+'_'+8,
  185. sessionName:strOriginalData.prescription.patientName
  186. }
  187. })
  188. }
  189. })
  190. //提交审核
  191. $patiInfo.on('click','#confirm',function(){
  192. if($('#showResult').attr('data-id')){
  193. if($('#showResult').attr('data-id')==2){
  194. if($('#textarea').val().trim()){
  195. passingReview();
  196. }else{
  197. mui.toast('请填写不通过原因')
  198. }
  199. }else if($('#doctorHome').attr('data-id') && $('#feeCheck').attr('data-id')){
  200. nextDo();
  201. }else{
  202. mui.toast('请完善续方审核')
  203. }
  204. }else{
  205. mui.toast('请完善续方审核')
  206. }
  207. })
  208. function nextDo(){
  209. plus.nativeUI.showWaiting();
  210. sendPost("doctor/isAuthentication",{}, function(){
  211. plus.nativeUI.closeWaiting();
  212. mui.toast("请求失败");
  213. }, function(res){
  214. if(res.status == 200){
  215. plus.nativeUI.closeWaiting();
  216. if(res.data.type != 4){
  217. dialog({
  218. content: '您暂未安装CA证书,无法进行续方审核,点击前往安装',
  219. okValue: '前往安装',
  220. cancelValue: '取消',
  221. cancel: function () {
  222. return;
  223. },
  224. ok: function() {
  225. mui.openWindow({
  226. id: "cazhengshu",
  227. url: "cazhengshu.html",
  228. waiting:{autoShow:false},
  229. extras: {
  230. code:res.data.type
  231. }
  232. })
  233. }
  234. }).showModal();
  235. }else{
  236. $('#doctorName').html(docInfo.name)
  237. $('.layer-bg').show();
  238. }
  239. }else{
  240. plus.nativeUI.closeWaiting();
  241. mui.toast("请求证书信息失败");
  242. }
  243. },'get')
  244. }
  245. //输入密码
  246. var psw = 0;
  247. var $li = $('#password').find('li');
  248. $('.number-pad').on('tap','li',function(){
  249. var $this = $(this)
  250. if(!$this.hasClass('no')){
  251. if(!$this.hasClass('del')){
  252. if(psw <=5){
  253. var $one = $li.eq(psw);
  254. $one.addClass('active');
  255. $one.attr('data-val',$this.text().trim());
  256. psw++;
  257. }else{
  258. mui.toast('请点击确定')
  259. }
  260. }else{
  261. if(psw >=1){
  262. psw--;
  263. var $one = $li.eq(psw);
  264. $one.removeClass('active');
  265. $one.attr('data-val','');
  266. }
  267. }
  268. }else{
  269. if(psw ==6){
  270. submitContent()
  271. }
  272. }
  273. })
  274. //时间格式
  275. function checkDate(d) {
  276. var t = new Date(d);
  277. var month = (t.getMonth() + 1) < 10 ? '0' + (t.getMonth() + 1) : (t.getMonth() + 1);
  278. var day = t.getDate() < 10 ? '0' + t.getDate() : t.getDate();
  279. return month+day
  280. }
  281. //提取密码
  282. function takePassword(){
  283. var str = '';
  284. $li.each(function(){
  285. str += $(this).attr('data-val');
  286. })
  287. return str
  288. }
  289. //忘记密码
  290. $('#forget').click(function(){
  291. mui.openWindow({
  292. id: "shenfenrenzheng",
  293. url: "shenfenrenzheng.html",
  294. waiting:{autoShow:false}
  295. })
  296. })
  297. //取消
  298. $('.layer-bg').click(function(){
  299. cancel();
  300. })
  301. $('.xufang-num').click(function(e){ e.stopPropagation() })
  302. $('#cancel').click(function(){
  303. cancel();
  304. })
  305. function cancel(){
  306. $('.layer-bg').hide();
  307. psw = 0;
  308. $li.removeClass('active');
  309. $li.attr('data-val','');
  310. }
  311. function submitContent(){
  312. plus.nativeUI.showWaiting();
  313. var imporMsg = {};
  314. imporMsg.prescription = {};
  315. imporMsg.prescription.jwCode = strOriginalData.prescription.jwCode;
  316. imporMsg.prescription.patientName = strOriginalData.prescription.patientName;
  317. imporMsg.prescription.doctorName = strOriginalData.prescription.doctorName;
  318. imporMsg.prescription.diagnosis = strOriginalData.diagnosis;
  319. var arr=[]
  320. _.map(strOriginalData.prescriptionInfo,function(item){
  321. var obj = _.pick(item, 'drugCode','drugName','jwSubCode','physicAmount','physicAmountUnit','physicAmountUnitName');
  322. arr.push(obj)
  323. })
  324. imporMsg.prescription.prescriptionInfo = arr;
  325. var params ={
  326. strRealNameSoftCertCalledPasswd:takePassword(),
  327. strOriginalData:JSON.stringify(imporMsg),
  328. prescriptionCode:prescriptionCode
  329. }
  330. sendPost("doctor/requestRealNameSoftCertAndSign",params, function(){
  331. plus.nativeUI.closeWaiting();
  332. mui.toast("请求失败");
  333. }, function(res){
  334. if(res.status==200){
  335. if(res.data){
  336. cancel()
  337. passingReview()
  338. }else{
  339. plus.nativeUI.closeWaiting();
  340. mui.toast(res.msg)
  341. }
  342. }else{
  343. plus.nativeUI.closeWaiting();
  344. mui.toast("用户不存在或密码错误")
  345. psw = 0;
  346. $li.removeClass('active');
  347. $li.attr('data-val','');
  348. }
  349. })
  350. }
  351. function passingReview(){
  352. plus.nativeUI.showWaiting();
  353. //不通过CODE
  354. var reasonCode=[];
  355. $.map($('.nopass-list li.active'),function(o,i){
  356. reasonCode.push($('.nopass-list li.active').eq(i).attr('data-code'))
  357. })
  358. var datas = {
  359. code:prescriptionCode,
  360. registerFee:$('#feeCheck').attr('data-name'),
  361. rateTypeCode:$('#feeCheck').attr('data-id'),
  362. dept:$('#doctorHome').attr('data-id'),
  363. reason:$('#textarea').val(),
  364. reasonCode:reasonCode.join(','),
  365. state:$('#showResult').attr('data-id')
  366. }
  367. sendPost("doctor/prescriptionInfo/reviewPrescription",datas, function(){
  368. plus.nativeUI.closeWaiting();
  369. mui.toast("提交审核超时")
  370. },function(res){
  371. plus.nativeUI.closeWaiting();
  372. if(res.status == 200){
  373. if(res.data){
  374. refreshHz()
  375. if($('#showResult').attr('data-id') == 1){
  376. dialog({
  377. content: '提交审核成功,记得去完成该居民的随访哦',
  378. okValue: '好的',
  379. ok: function() {
  380. mui.back()
  381. }
  382. }).showModal();
  383. }else{
  384. mui.toast('提交成功')
  385. setTimeout(function(){
  386. mui.back()
  387. },500)
  388. }
  389. }else{
  390. refreshHz()
  391. mui.toast("开方失败")
  392. }
  393. }else{
  394. mui.toast("提交审核失败")
  395. }
  396. })
  397. }
  398. }
  399. template.helper('setStatus',function(o){
  400. if(o == -5){return '<span style="color: #999">线下取消</span>'}
  401. if(o == -4){return '<span style="color: #999">线下退费</span>'}
  402. if(o == -3){ return '<span style="color:#999">续方取消(24小时未支付)</span>' }
  403. if(o == -2){ return '<span style="color:#999">续方取消(居民主动取消)</span>' }
  404. if(o == -1){ return '<span style="color:#ff4c4c">审核未通过</span>' }
  405. if(o == 0 || o == 10){ return '<span style="color:#ffa54b">审核中</span>' }
  406. if(o == 2){ return '<span style="color:#ffa54b">调整中</span>' }
  407. if(o == 3){ return '<span style="color:#ffa54b">调整成功/待ca认证</span>' }
  408. if(o == 4){ return '<span style="color:#ffa54b">调整失败</span>' }
  409. if(o == 20){ return '<span style="color:#ffa54b">药师审核中</span>' }
  410. if(o == 21){ return '<span style="color:#ff4c4c">药师审核失败</span>' }
  411. if(o == 30){ return '<span style="color:#ffa54b">开方中</span>' }
  412. if(o == 31){ return '<span style="color:#ff4c4c">开方失败</span>' }
  413. if(o == 40 || o == 41){ return '<span style="color:#db6bbd">待支付</span>' }
  414. if(o == 50){ return '<span style="color:#ffa54b">配药中</span>' }
  415. if(o == 60){ return '<span style="color:#db6bbd">等待领药</span>' }
  416. if(o == 61 || o == 62 || o == 65 || o == 69){ return '<span style="color:#06bf04">配送中</span>' }
  417. if(o == 100){ return '<span style="color:#17b3ec">已完成</span>' }
  418. })
  419. template.helper('setReview',function(o){
  420. if(o == 0){ return '<span style="color:#ffa54b">审核中</span>' }
  421. if(o == 1){ return '<span style="color:#17b3ec">审核通过</span>' }
  422. if(o == -1){ return '<span style="color:#ff4c4c">审核未通过</span>' }
  423. if(o == -2){ return '<span style="color:#ff4c4c">审核无效</span>' }
  424. })
  425. template.helper('setPrescription',function(array){
  426. var arr=[];
  427. $.map(array,function(item,index){
  428. arr.push(item.name)
  429. })
  430. return arr.join(',')
  431. })
  432. template.helper('setRestTime',function(minDate,sDate){
  433. var now = getNowDate();
  434. var createDate = sDate.split(' ');
  435. var diff = getDays(createDate[0],now);
  436. if(diff<minDate){
  437. return '<span style="color:#17b3ec">'+(minDate-diff)+'天</span>'
  438. }else{
  439. return '<span style="color:#ff4c4c">已用完</span>'
  440. }
  441. })
  442. //相隔几天
  443. function getDays(sDate,eDate){
  444. var oDate1;
  445. var oDate2;
  446. var iDays;
  447. oDate1= sDate.split("-");
  448. oDate2= eDate.split("-");
  449. var strDateS = new Date(oDate1[0], oDate1[1]-1, oDate1[2]);
  450. var strDateE = new Date(oDate2[0], oDate2[1]-1, oDate2[2]);
  451. iDays = parseInt(Math.abs(strDateE - strDateS ) / 1000 / 60 / 60 /24)
  452. return iDays ;
  453. }
  454. //现在时间
  455. function getNowDate() {
  456. var date = new Date();
  457. var year = date.getFullYear();
  458. var month = date.getMonth() + 1;
  459. var day = date.getDate();
  460. var hour = date.getHours();
  461. var minute = date.getMinutes();
  462. var second = date.getSeconds();
  463. return year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day);
  464. }
  465. //费用下拉
  466. function selectFee(){
  467. var data={
  468. jwHospital:strOriginalData.prescription.jwHospital,
  469. jwDoctorCode:strOriginalData.prescription.jwDoctorCode
  470. }
  471. sendPost("doctor/prescriptionInfo/getRegisterRee",data, function(){
  472. mui.toast("请求失败");
  473. }, function(res){
  474. if(res.status == 200){
  475. var result = res.data;
  476. var html = '<option disabled selected></option>';
  477. $.map(result,function(item,index){
  478. if(item.registerType == strOriginalData.prescription.jwGisterTypeCode){
  479. html += '<option selected value="'+item.registerType+'">'+item.registerTypeName+' '+item.registerFee+' 元'+'</option>';
  480. }else{
  481. html += '<option value="'+item.registerType+'">'+item.registerTypeName+' '+item.registerFee+' 元'+'</option>';
  482. }
  483. })
  484. $('#feeCheck').html(html);
  485. $('#feeCheck').mobiscroll().select({
  486. theme: 'ios',
  487. lang: 'zh',
  488. display: 'bottom',
  489. placeholder:'请按医生级别选择诊查费用',
  490. rows:4,
  491. onSelect: function ( valueText, inst) {
  492. $('#feeCheck').attr('data-id',inst._tempValue)
  493. $('#feeCheck').attr('data-name',valueText.split(' ')[1])
  494. }
  495. })
  496. }
  497. },'get')
  498. }
  499. // 科室下拉
  500. function selectHome(){
  501. var data={
  502. jwHospital:strOriginalData.prescription.jwHospital,
  503. jwDoctorCode:strOriginalData.prescription.jwDoctorCode
  504. }
  505. sendPost("doctor/prescriptionInfo/getDeptList",data, function(){
  506. mui.toast("请求失败");
  507. }, function(res){
  508. if(res.status == 200){
  509. var result = res.data;
  510. var html = '<option disabled selected></option>';
  511. $.map(result,function(item,index){
  512. if(item.deptCode ==strOriginalData.prescription.jwDeptCode){
  513. html += '<option selected value="'+item.deptCode+'">'+item.deptName+'</option>';
  514. }else{
  515. html += '<option value="'+item.deptCode+'">'+item.deptName+'</option>';
  516. }
  517. })
  518. $('#doctorHome').html(html);
  519. $('#doctorHome').mobiscroll().select({
  520. theme: 'ios',
  521. lang: 'zh',
  522. display: 'bottom',
  523. placeholder:'请选择您所在科室',
  524. rows:4,
  525. onSelect: function ( valueText, inst) {
  526. $('#doctorHome').attr('data-id',inst._tempValue)
  527. }
  528. })
  529. }
  530. },'get')
  531. }
  532. //审核下拉
  533. function selectResult(){
  534. $('#showResult').mobiscroll().select({
  535. theme: 'ios',
  536. lang: 'zh',
  537. display: 'bottom',
  538. placeholder:'请选择审核结果',
  539. rows:4,
  540. onSelect: function ( valueText, inst) {
  541. $('#showResult').attr('data-id',inst._tempValue)
  542. if(inst._tempValue ==2){
  543. $('#nopass').show()
  544. $('#feeList').hide()
  545. $('#homeList').hide()
  546. }else if(inst._tempValue ==1){
  547. $('#nopass').hide()
  548. $('#feeList').show()
  549. $('#homeList').show()
  550. }else{
  551. $('#nopass').hide()
  552. $('#feeList').hide()
  553. $('#homeList').hide()
  554. }
  555. $('.os-main').css('padding-bottom',$('.xf-position').height()+10)
  556. }
  557. })
  558. }
  559. //不通过原因
  560. function nopassReason(){
  561. sendPost("doctor/prescriptionInfo/getReasonByType",{type:0}, function(){
  562. mui.toast("请求失败");
  563. }, function(res){
  564. if(res.status = 200){
  565. var str=""
  566. $.map(res.data,function(o,i){
  567. str += '<li data-code="'+o.code+'">'+o.value+'</li>'
  568. })
  569. $('.nopass-list').html(str)
  570. }
  571. },'get')
  572. }
  573. function reloadPageData(){
  574. queryData()
  575. }
  576. window.addEventListener("refreshXufang", function(){
  577. reloadPageData()
  578. })
  579. function refreshHz(){
  580. var page = plus.webview.getWebviewById("xufangguanli");
  581. if(page){
  582. mui.fire(page, "refreshXufang");
  583. }
  584. var page1 = plus.webview.getWebviewById("juminxufangjilu");
  585. if(page1){
  586. mui.fire(page1, "refreshXufang");
  587. }
  588. var page2 = plus.webview.getWebviewById("xufangxiangqing");
  589. if(page2){
  590. mui.fire(page2, "refreshXufang");
  591. }
  592. var page3 = plus.webview.getWebviewById("xufangxiaoxi");
  593. if(page3){
  594. mui.fire(page3, "refreshPage");
  595. }
  596. var page4 = plus.webview.getWebviewById("xufangzixun");
  597. if(page4){
  598. mui.fire(page4, "refreshPage");
  599. }
  600. }
  601. })