ward_prescription.js 52 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181
  1. //@ sourceURL=ward_prescription.js
  2. var LODOP; //声明为全局变量
  3. var groupNo = window.localStorage["groupNo"];
  4. var pageNo="";//请领单号
  5. var pageNos="";//病室请领单号集合
  6. var pageClass="";//药单类型
  7. var wardCode="";//申请病室
  8. var wardName="";
  9. var hzFlag=0;//最近浏览药单还是科室汇总药单
  10. var nfdPrintIndex = window.localStorage["nfdPrintIndex"];
  11. var tableInterval;
  12. $(function () {
  13. init_daterangepicker();
  14. $('#reportrange span').html(moment().subtract(10, 'days').format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD'));
  15. $(".selectpicker").selectpicker({
  16. dropuAuto: false
  17. });
  18. if(groupNo == null){
  19. return errorMesageSimaple('当前药房未设置,请在发药参数设置中设置');
  20. }
  21. $("input").each(function () {
  22. this.onkeydown = function (e) { // 监听键盘事件
  23. let theEvent = window.event || e;
  24. let code = theEvent.keyCode || theEvent.which;
  25. if (code == 13) {//回车事件
  26. $("#btn_query").click(); //触发搜索按钮点击事件
  27. }
  28. }
  29. });
  30. initTbTable();
  31. clearInterval(tableInterval);
  32. //两分钟刷新一次请领单列表数据
  33. tableInterval = setInterval(initTbTable, 50000);
  34. initDeptSelect(0,"wardCode");
  35. //重置查询参数
  36. $('#btn_clean').click(function () {
  37. cleanParams();
  38. });
  39. $("#btn_query").click(function (t) {
  40. $("#initButton").find("button").each(function (index, element) {
  41. if ($(element).hasClass("btn-primary")) {
  42. $(element).removeClass("btn-primary").addClass("btn-default");
  43. }
  44. });
  45. $("#qld").removeClass("btn-default").addClass("btn-primary");
  46. initTbTable();
  47. });
  48. });
  49. /**
  50. * 列表类型按钮切换事件
  51. * @param object
  52. * @param realIndex 下标
  53. */
  54. function initButtonChange(object, realIndex) {
  55. $("#initButton").find("button").each(function (index, element) {
  56. if ($(element).hasClass("btn-primary")) {
  57. $(element).removeClass("btn-primary").addClass("btn-default");
  58. }
  59. });
  60. $(object).removeClass("btn-default").addClass("btn-primary");
  61. if (realIndex == 0) {
  62. cleanParams();
  63. initTbTable();
  64. } else if(realIndex == 1){
  65. setFrom();
  66. loadSummarizingTable(pageNo,pageClass,wardCode,hzFlag);
  67. }else if(realIndex == 2){
  68. setFrom();
  69. loadDetailTable();
  70. }
  71. }
  72. function setFrom() {
  73. $("#wardCode").selectpicker('val',wardCode);
  74. if(hzFlag == 0){
  75. $("#pageNoSearch").val(pageNo);
  76. }
  77. $("#pageClassSearch").val(pageClass);
  78. $("#wardCode").selectpicker('refresh');
  79. $("#pageClassSearch").selectpicker('refresh');
  80. $("#wardCode").attr('disabled',true);
  81. $("#pageNoSearch").attr('disabled',true);
  82. $("#pageClassSearch").attr('disabled',true);
  83. $("#btn_clean").attr('disabled',true);
  84. $("#btn_query").attr('disabled',true);
  85. }
  86. /**
  87. * 控制汇总和明细的显示
  88. */
  89. function detail(no,type,code,flag) {
  90. pageNo = no;
  91. pageClass = type;
  92. wardCode = code;
  93. hzFlag = flag;
  94. setFrom();
  95. if(flag == 1){
  96. initButtonChange("#hz",1);
  97. }else{
  98. switch (type) {
  99. case "2":
  100. case "5":
  101. case "6":
  102. initButtonChange("#mx",2);
  103. break;
  104. default:
  105. initButtonChange("#hz",1);
  106. }
  107. }
  108. }
  109. /**
  110. * 药单界面显示
  111. */
  112. function initHtml() {
  113. $("#tb_table_div").css("display", "");
  114. $("#tb_summarizing_table_div").css("display", "none");
  115. $("#tb_detail_table_div").css("display", "none");
  116. }
  117. /**
  118. * 药单汇总界面显示
  119. */
  120. function initSummarizingHtml() {
  121. $("#tb_summarizing_table_div").css("display", "");
  122. $("#tb_table_div").css("display", "none");
  123. $("#tb_detail_table_div").css("display", "none");
  124. }
  125. /**
  126. * 药单详细界面初始化
  127. */
  128. function initDetailHtml() {
  129. $("#tb_table_div").css("display", "none");
  130. $("#tb_summarizing_table_div").css("display", "none");
  131. $("#tb_detail_table_div").css("display", "");
  132. }
  133. /**
  134. * 查询药单基础信息
  135. */
  136. function initTbTable() {
  137. let pageIndex = $('#tb_table').bootstrapTable('getOptions').pageNumber;
  138. if($('#qld').hasClass('btn-primary')){
  139. initHtml();
  140. $('#tb_table').bootstrapTable("destroy");
  141. $('#tb_table').bootstrapTable({
  142. url: "/thmz/getYzYpPageNo", //请求后台的URL(*)
  143. method: 'post', //请求方式(*)
  144. striped: true, //是否显示行间隔色
  145. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  146. pagination: true, //是否显示分页(*)
  147. sortable: true, //是否启用排序
  148. sortOrder: "asc", //排序方式
  149. queryParams: queryParams, //传递参数(*)
  150. sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*)
  151. pageNumber: pageIndex || 1, //初始化加载第一页,默认第一页
  152. pageSize: 30, //每页的记录行数(*)
  153. pageList: [25, 50, 100], //可供选择的每页的行数(*)
  154. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  155. strictSearch: true,
  156. showColumns: false, //是否显示所有的列
  157. showRefresh: false, //是否显示刷新按钮
  158. minimumCountColumns: 2, //最少允许的列数
  159. clickToSelect: true, //是否启用点击选中行
  160. uniqueId: "ID", //每一行的唯一标识,一般为主键列
  161. showToggle: false, //是否显示详细视图和列表视图的切换按钮
  162. cardView: false, //是否显示详细视图
  163. detailView: false,
  164. ajaxOptions: {
  165. headers: {
  166. 'Accept': 'application/json',
  167. 'Authorization': 'Bearer ' + localStorage.getItem("token")
  168. }
  169. },
  170. columns: [
  171. {
  172. title: '操作',
  173. align: "center",
  174. valign: 'middle',
  175. formatter: function (value, row, index) {
  176. var str = '<button type="button" class="registration-no-color-foot-button" title="药单详细" onclick="detail(\'' + row.pageNo + '\',\'' + row.pageClass + '\',\'' + row.wardCode + '\',0)"><i class="fa fa-plus"></i></button>';
  177. if($("#submitFlagSearch").val() == 1 && row.pageClass!='T' && row.pageClass!='A' && row.pageClass!='5' && row.pageClass!='6'){
  178. str += '<button type="button" class="registration-no-color-foot-button" title="病室药单汇总" onclick="detail(\'' + row.pageNo + '\',\'' + row.pageClass + '\',\'' + row.wardCode + '\',1)"><i class="fa fa-compress"></i></button>';
  179. }
  180. if($("#submitFlagSearch").val() == 1){
  181. str += '<button type="button" class="registration-no-color-foot-button" title="撤销提交" onclick="cancelSubmit(\'' + row.pageNo + '\',\'' + row.wardName + '\',\'' + row.pageClass + '\')"><i class="fa fa-reply"></i></button>';
  182. }
  183. return str;
  184. }
  185. }, {
  186. field: 'wardName',
  187. title: '申请病室',
  188. align: "center",
  189. valign: 'middle'
  190. }, {
  191. field: 'pageNo',
  192. title: '药品单号',
  193. align: "center",
  194. valign: 'middle'
  195. }, {
  196. field: 'pageName',
  197. title: '药单类型',
  198. align: "center",
  199. valign: 'middle'
  200. }, {
  201. field: 'subName',
  202. title: '提交人',
  203. align: "center",
  204. valign: 'middle'
  205. }, {
  206. field: 'submitTime',
  207. title: '提交时间',
  208. align: "center",
  209. valign: 'middle',
  210. formatter: function (value, row, index) {
  211. if (value != null && value != "") {
  212. return format(value, "yyyy-MM-dd HH:mm:ss");
  213. }
  214. return "";
  215. }
  216. }, {
  217. field: 'cancelSubName',
  218. title: '取消人',
  219. align: "center",
  220. valign: 'middle',
  221. visible: $("#submitFlagSearch").val() == 2?true:false
  222. }, {
  223. field: 'cancelSubmitTime',
  224. title: '取消时间',
  225. align: "center",
  226. valign: 'middle',
  227. visible: $("#submitFlagSearch").val() == 2?true:false,
  228. formatter: function (value, row, index) {
  229. if (value != null && value != "") {
  230. return format(value, "yyyy-MM-dd HH:mm:ss");
  231. }
  232. return "";
  233. }
  234. }, {
  235. field: 'contirmName',
  236. title: '发药人',
  237. align: "center",
  238. valign: 'middle',
  239. visible: $("#submitFlagSearch").val() == 3?true:false
  240. }, {
  241. field: 'confirmTime',
  242. title: '发药时间',
  243. align: "center",
  244. valign: 'middle',
  245. visible: $("#submitFlagSearch").val() == 3?true:false,
  246. formatter: function (value, row, index) {
  247. if (value != null && value != "") {
  248. return format(value, "yyyy-MM-dd HH:mm:ss");
  249. }
  250. return "";
  251. }
  252. }, {
  253. field: 'startDate',
  254. title: '开始时间',
  255. align: "center",
  256. valign: 'middle',
  257. formatter: function (value, row, index) {
  258. if (value != null && value != "") {
  259. return format(value, "yyyy-MM-dd");
  260. }
  261. return "";
  262. }
  263. }, {
  264. field: 'endDate',
  265. title: '结束时间',
  266. align: "center",
  267. valign: 'middle',
  268. formatter: function (value, row, index) {
  269. if (value != null && value != "") {
  270. return format(value, "yyyy-MM-dd");
  271. }
  272. return "";
  273. }
  274. }
  275. ],
  276. rowStyle: function(row, index) {
  277. if( row.pageClass == "T"){
  278. return {css:{'color':'red','padding': '0px'}};
  279. }
  280. return {css:{'padding': '0px'}};
  281. },
  282. onDblClickRow: function (row) {
  283. loadSummarizingTable(row.pageNo,row.pageClass,row.wardCode,0);
  284. },
  285. responseHandler: function (res) {
  286. if (res == '401' || res == 401) {
  287. window.location.href = '/thmz/login/view'
  288. return;
  289. }
  290. var ress = eval(res);
  291. if (ress.code == -1) {
  292. if (ress.message != null && ress.message != '') {
  293. new PNotify({
  294. title: '错误提示',
  295. text: ress.message,
  296. type: 'error',
  297. hide: true,
  298. styling: 'bootstrap3'
  299. });
  300. }
  301. return {
  302. "total": 0,//总页数
  303. "rows": {} //数据
  304. };
  305. }
  306. return {
  307. "total": ress.total,//总页数
  308. "rows": ress.data //数据
  309. };
  310. },
  311. });
  312. }
  313. }
  314. /**
  315. * 加载药单汇总信息表格
  316. */
  317. function loadSummarizingTable() {
  318. initSummarizingHtml();
  319. initSummarizingTable();
  320. let url = '/thmz/getZyDrugCount';
  321. let tem={
  322. groupNo: groupNo,
  323. pageClass: pageClass,
  324. submitFlag: $("#submitFlagSearch").val()
  325. };
  326. if(hzFlag == 1){
  327. tem.wardCode=wardCode;
  328. $.ajax({
  329. type: "GET",
  330. url: '/thmz/queryYzYpPageNoStr',
  331. contentType: "application/json;charset=UTF-8",
  332. dataType: "json",
  333. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  334. data: tem,
  335. success: function (res) {
  336. if (res.code == 0) {
  337. url = '/thmz/getYzYpOrderWard';
  338. pageNos = res.data;
  339. $("#tb_summarizing_table").jqGrid('setGridParam',{
  340. datatype:'json',
  341. url: url,
  342. postData: tem,
  343. groupingView : {
  344. groupField : ['pageClass'],
  345. groupColumnShow : [false],//是否展示分组列
  346. groupText : ['<b>单号:'+res.data+'</b>'],//组名的展示文字
  347. },
  348. }).trigger('reloadGrid');
  349. } else {
  350. errorMesage(res);
  351. }
  352. }
  353. });
  354. }else{
  355. tem.pageNo=pageNo;
  356. $("#tb_summarizing_table").jqGrid('setGridParam',{
  357. datatype:'json',
  358. url: url,
  359. postData: tem
  360. }).trigger('reloadGrid');
  361. }
  362. }
  363. /**
  364. * 加载药单汇总信息表格
  365. */
  366. function loadDetailTable() {
  367. initDetailHtml();
  368. initDetailTable();
  369. $("#tb_detail_table").jqGrid('setGridParam',{
  370. datatype:'json'
  371. }).trigger('reloadGrid');
  372. }
  373. /**
  374. * 初始化药单汇总信息表格
  375. */
  376. function initSummarizingTable() {
  377. $.jgrid.gridUnload("tb_summarizing_table");
  378. $("#tb_summarizing_table").jqGrid({
  379. datatype: 'local',
  380. mtype: 'get',
  381. loadBeforeSend: function (jqXHR) {
  382. jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
  383. jqXHR.setRequestHeader("Accept", 'application/json');
  384. },
  385. postData: {
  386. pageNo: pageNo,
  387. pageClass: pageClass
  388. },
  389. toolbar : [ true, "top" ],
  390. styleUI: 'Bootstrap',
  391. height: screen.height*0.6,
  392. viewrecords: true,
  393. autowidth: true,
  394. /*loadonce:true,//一次加载全部数据到客户端,由客户端进行排序
  395. sortable: true,
  396. sortname: 'location', //设置默认的排序列
  397. sortorder: 'asc',*/
  398. cellEdit: true,
  399. cellsubmit: "clientArray",
  400. rownumbers: false,//是否显示序号
  401. rownumWidth: 50,
  402. rowNum: -1,//取消分页
  403. caption: '请领单药品汇总',
  404. grouping:true,
  405. groupingView : {
  406. groupField : ['pageClass'],
  407. groupSummary : [false],//是否开启汇总页脚
  408. groupColumnShow : [false],//是否展示分组列
  409. groupText : ['<b>单号:'+pageNo+'</b>'],//组名的展示文字
  410. groupCollapse : false,//是否收起
  411. },
  412. colNames: ['发药','拒退','单号','货位号','药品编码','药品名称','规格','发药量','原发药量','库存量','零售价','金额','生产厂家','药单类型','规格编号','医保编码'],
  413. colModel: [
  414. {name: 'fybz', index: 'fybz',align:'center',width:30,editable:true,formatter : "select",hidden:pageClass=='T'?true:false,
  415. edittype:"select",editoptions:{value : "0:发药;1:暂缓;2:拒发"},
  416. formatter:function(cellvalue, options, rowObject){
  417. if(cellvalue==null || cellvalue==0){
  418. return "<span style='color: green'>发药</span>"
  419. }else if(cellvalue==1){
  420. return "<span style='color: brown'>暂缓</span>"
  421. }else if(cellvalue==2){
  422. return "<span style='color: red'>拒发</span>"
  423. }
  424. }},
  425. {name: 'tybz', index: 'tybz',align:'center',width:30,formatter : "checkbox",editable:true,hidden:pageClass=='T'?false:true,
  426. edittype:'checkbox', editoptions:{value:"1:0"}},
  427. {name: 'pageNo', index: 'pageNo',align:'center',width:30,hidden:true},
  428. {name: 'location', index: 'location',align:'center',width:30},
  429. {name: 'chargeCode', index: 'chargeCode',align:'center',width:30},
  430. {name: 'drugName', index: 'drugName',align:'left',width:50},
  431. {name: 'specification', index: 'specification',align:'center',width:30},
  432. {name: 'amount', index: 'amount',align:'center',width:30},
  433. {name: 'oldAmount', index: 'oldAmount',align:'center',width:30,hidden:true,
  434. formatter:function(cellvalue, options, rowObject){
  435. return rowObject.amount
  436. }},
  437. {name: 'stockAmount', index: 'stockAmount',align:'center',width:30},
  438. {name: 'retprice', index: 'retprice',align:'center',width:30},
  439. {name: 'totalMoney', index: 'totalMoney',align:'center',width:30,
  440. formatter:function(cellvalue, options, rowObject){
  441. return keepTwoDecimal(rowObject.retprice*rowObject.amount)
  442. }},
  443. {name: 'manufactory', index: 'manufactory',align:'left',width:60},
  444. {name: 'pageClass', index: 'pageClass',align:'center',width:40},
  445. {name: 'serial', index: 'serial',align:'center',width:40,hidden:true},
  446. {name: 'nationalCode', index: 'nationalCode',align:'left',width:40,
  447. formatter:function(cellvalue, options, rowObject){
  448. return cellvalue == null ? "-" : cellvalue;
  449. }}
  450. ],
  451. jsonReader: {
  452. root: "data", repeatitems: false
  453. },
  454. afterSaveCell: function(rowid,celname,value,iRow,iCol) {
  455. let data = $("#tb_summarizing_table").getRowData(rowid);
  456. $("#tb_summarizing_table").setCell(rowid, iCol, value);
  457. if(value==null || value==0){
  458. //重置
  459. $("#tb_summarizing_table").setCell(rowid, "amount", data.oldAmount);
  460. $("#tb_summarizing_table").setCell(rowid, "totalMoney", keepTwoDecimal(data.retprice*data.oldAmount));
  461. }else{
  462. $("#tb_summarizing_table").setCell(rowid, "amount", 0);
  463. $("#tb_summarizing_table").setCell(rowid, "totalMoney", 0);
  464. }
  465. return true
  466. },
  467. loadComplete: function (res) { //加载完成(初始加载),回调函数
  468. if (res == '401' || res == 401) {
  469. window.location.href = '/thmz/login/view';
  470. return;
  471. }
  472. if (res.code == -1) {
  473. errorMesage(res);
  474. }
  475. }
  476. });
  477. $("#t_tb_summarizing_table").append("<button class='registration-no-color-foot-button' title='打印汇总药单' onclick='printCount()' style='margin-left: 10px;'><i class='fa fa-print'></i></button>");
  478. $("#t_tb_summarizing_table").append("<button class='registration-no-color-foot-button' title='打印口服标签' onclick='printLabelData(0)' style='color: green;margin-left: 10px;'><i class='fa fa-print'></i></button>");
  479. if($("#submitFlagSearch").val() == 1){
  480. $("#t_tb_summarizing_table").append("<button class='registration-no-color-foot-button' title='保存' id='collect_save' onclick='save(0)' style='color: green;margin-left: 10px;'><i class='fa fa-floppy-o'></i></button>");
  481. }
  482. }
  483. /**
  484. * 初始化药单详细信息表格
  485. */
  486. function initDetailTable() {
  487. $.jgrid.gridUnload("tb_detail_table");
  488. $("#tb_detail_table").jqGrid({
  489. datatype: 'local',
  490. mtype: 'get',
  491. url: '/thmz/getZyDrugDetail',
  492. loadBeforeSend: function (jqXHR) {
  493. jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
  494. jqXHR.setRequestHeader("Accept", 'application/json');
  495. },
  496. postData: {
  497. pageNo: hzFlag==0?pageNo:pageNos,
  498. pageClass: pageClass,
  499. submitFlag: $("#submitFlagSearch").val()
  500. },
  501. toolbar : [ true, "top" ],
  502. styleUI: 'Bootstrap',
  503. height: 350,
  504. viewrecords: true,
  505. autowidth: true,
  506. shrinkToFit: true,
  507. cellEdit: true,
  508. cellsubmit: "clientArray",
  509. rowNum: -1,//取消分页
  510. caption: '请领单药品明细',
  511. grouping:true,
  512. colNames: ['发药','拒退','单号','住院号','床号','次数','姓名','药品名称','规格','数量','原发药量','零售价','金额','执行时间','医嘱','给药方式'
  513. ,'频率','剂量','单位','医生','生日','性别','身份','诊断','科室','病室','是否婴儿','请领人','长期标志','药品类型','给药方式编码','医嘱号',
  514. '自费标志','单列','贵重','毒麻','审批标志','药房编码','规格','医生编码','药单类别','药品编码','口服开始时间','口服结束时间','帐页号','流水号','医保编码'],
  515. colModel: [
  516. {name: 'fybz', index: 'fybz',align:'center',width:30,editable:true,formatter : "select",hidden:pageClass=='T'?true:false,
  517. edittype:"select",editoptions:{value : "0:发药;1:暂缓;2:拒发"},
  518. formatter:function(cellvalue, options, rowObject){
  519. if(cellvalue==null || cellvalue==0){
  520. return "<span style='color: green'>发药</span>"
  521. }else if(cellvalue==1){
  522. return "<span style='color: brown'>暂缓</span>"
  523. }else if(cellvalue==2){
  524. return "<span style='color: red'>拒发</span>"
  525. }
  526. }},
  527. {name: 'tybz', index: 'tybz',align:'center',width:30,formatter : "checkbox",editable:true,hidden:pageClass=='T'?false:true,
  528. edittype:'checkbox', editoptions:{value:"1:0"}},
  529. {name: 'pageNo', index: 'pageNo',align:'center',width:30,hidden:true},
  530. {name: 'inpatientNo', index: 'inpatientNo',align:'center',width:30},
  531. {name: 'bedNo', index: 'bedNo',align:'center',width:30,hidden:pageClass=='A'?true:false},
  532. {name: 'admissTimes', index: 'admissTimes',align:'center',width:30},
  533. {name: 'name', index: 'name',align:'center',width:30},
  534. {name: 'drugName', index: 'drugName',align:'left',width:60,
  535. formatter:function(cellvalue, options, rowObject){
  536. return rowObject.drugName+"("+rowObject.manufactory+")"
  537. }},
  538. {name: 'specification', index: 'specification',align:'center',width:40},
  539. {name: 'amount', index: 'amount',align:'center',width:30},
  540. {name: 'oldAmount', index: 'oldAmount',align:'center',width:30,hidden:true,
  541. formatter:function(cellvalue, options, rowObject){
  542. return rowObject.amount
  543. }},
  544. {name: 'retprice', index: 'retprice',align:'center',width:30},
  545. {name: 'totalMoney', index: 'totalMoney',align:'center',width:30,
  546. formatter:function(cellvalue, options, rowObject){
  547. return keepTwoDecimal(rowObject.retprice*rowObject.amount)
  548. }},
  549. {name: 'occTime', index: 'occTime',align:'center',width:40
  550. ,formatter:"date",formatoptions: {srcformat:'Y-m-d H:i:s',newformat:'Y-m-d H:i:s'}},
  551. {name: 'instruction', index: 'instruction',align:'left',width:50,hidden:pageClass=='A'?true:false},
  552. {name: 'supplyName', index: 'supplyName',align:'center',width:40,hidden:pageClass=='A'?true:false},
  553. {name: 'frequCode', index: 'frequCode',align:'center',width:40,hidden:true},
  554. {name: 'dose', index: 'dose',align:'center',width:40,hidden:true},
  555. {name: 'doseUnit', index: 'doseUnit',align:'center',width:40,hidden:true},
  556. {name: 'doctorNameStr', index: 'doctorNameStr',align:'center',width:40,hidden:true},
  557. {name: 'birthDate', index: 'birthDate',align:'center',width:40,hidden:true},
  558. {name: 'sex', index: 'sex',align:'center',width:40,hidden:true},
  559. {name: 'responceName', index: 'responceName',align:'center',width:40,hidden:true},
  560. {name: 'admissDiagStr', index: 'admissDiagStr',align:'center',width:40,hidden:true},
  561. {name: 'deptCode', index: 'deptCode',align:'center',width:40,hidden:true},
  562. {name: 'wardCode', index: 'wardCode',align:'center',width:40,hidden:true},
  563. {name: 'infantFlag', index: 'infantFlag',align:'center',width:40,hidden:true},
  564. {name: 'drawer', index: 'drawer',align:'center',width:40,hidden:true},
  565. {name: 'alwaysFlag', index: 'alwaysFlag',align:'center',width:40,hidden:true},
  566. {name: 'drugClass', index: 'drugClass',align:'center',width:40,hidden:true},
  567. {name: 'supplyCode', index: 'supplyCode',align:'center',width:40,hidden:true},
  568. {name: 'actOrderNo', index: 'actOrderNo',align:'center',width:40,hidden:true},
  569. {name: 'selfFlag', index: 'selfFlag',align:'center',width:40,hidden:true},
  570. {name: 'separateFlag', index: 'separateFlag',align:'center',width:40,hidden:true},
  571. {name: 'supriceFlag', index: 'supriceFlag',align:'center',width:40,hidden:true},
  572. {name: 'drugFlag', index: 'drugFlag',align:'center',width:40,hidden:true},
  573. {name: 'paySelf', index: 'paySelf',align:'center',width:40,hidden:true},
  574. {name: 'groupNo', index: 'groupNo',align:'center',width:40,hidden:true},
  575. {name: 'serial', index: 'serial',align:'center',width:40,hidden:true},
  576. {name: 'doctorName', index: 'doctorName',align:'center',width:40,hidden:true},
  577. {name: 'pageClass', index: 'pageClass',align:'center',width:40,hidden:true},
  578. {name: 'chargeCode', index: 'chargeCode',align:'center',width:40,hidden:true},
  579. {name: 'kssj', index: 'kssj',align:'center',width:40,hidden:true},
  580. {name: 'jssj', index: 'jssj',align:'center',width:40,hidden:true},
  581. {name: 'ledgerSn', index: 'ledgerSn',align:'center',width:40,hidden:true},
  582. {name: 'detailSn', index: 'detailSn',align:'center',width:40,hidden:true},
  583. {name: 'nationalCode', index: 'nationalCode',align:'left',width:60,
  584. formatter:function(cellvalue, options, rowObject){
  585. return cellvalue == null ? "-" : cellvalue;
  586. }}
  587. ],
  588. jsonReader: {
  589. root: "data", repeatitems: false
  590. },
  591. afterSaveCell: function(rowid,celname,value,iRow,iCol) {
  592. let data = $("#tb_detail_table").getRowData(rowid);
  593. $("#tb_detail_table").setCell(rowid, iCol, value);
  594. if(value==null || value==0){
  595. //重置
  596. $("#tb_detail_table").setCell(rowid, "amount", data.oldAmount);
  597. $("#tb_detail_table").setCell(rowid, "totalMoney", keepTwoDecimal(data.retprice*data.oldAmount));
  598. }else{
  599. $("#tb_detail_table").setCell(rowid, "amount", 0);
  600. $("#tb_detail_table").setCell(rowid, "totalMoney", 0);
  601. }
  602. return true
  603. },
  604. loadComplete: function (res) { //加载完成(初始加载),回调函数
  605. if (res == '401' || res == 401) {
  606. window.location.href = '/thmz/login/view';
  607. return;
  608. }
  609. if (res.code == -1) {
  610. errorMesage(res);
  611. }
  612. }
  613. });
  614. $("#t_tb_detail_table").append("<button class='registration-no-color-foot-button' title='打印药单明细' onclick='getPrintDetail(0)' style='margin-left: 10px;'><i class='fa fa-print'></i></button>");
  615. $("#t_tb_detail_table").append("<button class='registration-no-color-foot-button' title='打印口服标签' onclick='printLabelData(1)' style='color: green;margin-left: 10px;'><i class='fa fa-print'></i></button>");
  616. if($("#submitFlagSearch").val() == 1){
  617. $("#t_tb_detail_table").append("<button class='registration-no-color-foot-button' title='保存' id='detail_save' onclick='save(1)' style='color: green;margin-left: 10px;'><i class='fa fa-floppy-o'></i></button>");
  618. }
  619. }
  620. /**
  621. * 获取时间选择器的时间数组
  622. * @returns {string[]}
  623. */
  624. function getRePortRangeArr() {
  625. var rePortRange = $('#reportrange span').html();
  626. var rePortRangeArr = rePortRange.split(" - ");
  627. rePortRangeArr[0] = rePortRangeArr[0] + " 00:00:00"
  628. rePortRangeArr[1] = rePortRangeArr[1] + " 23:59:59"
  629. return rePortRangeArr;
  630. }
  631. /**
  632. * 构建列表查询参数
  633. * @param params
  634. */
  635. function queryParams(params) {
  636. var rePortRangeArr = getRePortRangeArr();
  637. let wardCode;
  638. if($("#wardCode").val() == null){
  639. wardCode = null;
  640. }else{
  641. wardCode = $("#wardCode").val()[0]
  642. }
  643. var temp = {
  644. submitBeginDate: rePortRangeArr[0],
  645. submitEndDate: rePortRangeArr[1],
  646. wardCode: wardCode,
  647. pageNo: $("#pageNoSearch").val() == "" ? null : $("#pageNoSearch").val(),
  648. pageClass: $("#pageClassSearch").val() == "" ? null : $("#pageClassSearch").val(),
  649. groupNo: groupNo,
  650. submitFlag: $("#submitFlagSearch").val()
  651. };
  652. return temp;
  653. };
  654. /**
  655. * 清空查询条件
  656. */
  657. function cleanParams() {
  658. //$('#reportrange span').html(moment().subtract(10, 'days').format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD'));
  659. $("#pageNoSearch").val(null);
  660. $("#pageClassSearch").val(null);
  661. $("#wardCode").selectpicker('val','');
  662. $("#submitFlagSearch").val(1);
  663. $("#submitFlagSearch").selectpicker('refresh');
  664. $("#wardCode").removeAttr('disabled');
  665. $("#pageNoSearch").removeAttr('disabled');
  666. $("#pageClassSearch").removeAttr('disabled');
  667. $("#btn_query").removeAttr('disabled');
  668. $("#btn_clean").removeAttr('disabled');
  669. $("#wardCode").selectpicker('refresh');
  670. $("#pageClassSearch").selectpicker('refresh');
  671. }
  672. /**
  673. * 打印汇总单
  674. */
  675. function printCount() {
  676. let html = '';
  677. let totalMoney = 0;
  678. $(".title").text(pageClass=="T"?'病房退药单':'病房汇总领药单('+$("#pageClassSearch").find("option:selected").text()+')');
  679. $(".groupName").text(groupNo==71?'门诊西药房':'住院药房');
  680. let w_code = $("#wardCode").find("option:selected").text();
  681. $(".wardName").text(w_code.substring(0,w_code.lastIndexOf("(")));
  682. $(".pageNo").text($("#pageNoSearch").val()==''?pageNos:$("#pageNoSearch").val());
  683. $(".printDate").html(format(new Date(),"yyyy-MM-dd HH:mm"));
  684. $('.sjh').remove();
  685. let datas = getJQAllData("tb_summarizing_table");
  686. for (var i = 0; i < datas.length; i++) {
  687. let data = datas[i];
  688. let handle =data.fybz;
  689. if(pageClass == "T"){
  690. if(data.tybz == 0){
  691. handle = '退药'
  692. }else{
  693. handle = '拒退'
  694. }
  695. }
  696. html += '<tr class="sjh">';
  697. html += '<td class="xtd" style="text-align: center;">' + handle + '</td>';
  698. html += '<td class="xtd" style="text-align: center;">' + data.chargeCode + '</td>';
  699. html += '<td class="xtd" style="text-align: center;">' + data.location + '</td>';
  700. html += '<td class="xtd" style="text-align: left;">' + data.drugName + '</td>';
  701. html += '<td class="xtd" style="text-align: left;">' + data.specification + '</td>';
  702. html += '<td class="xtd" style="text-align: center;">' + data.amount + '</td>';
  703. html += '<td class="xtd" style="text-align: left;">' + data.manufactory + '</td>';
  704. html += '<td class="xtd" style="text-align: center;">' + data.retprice + '</td>';
  705. html += '<td class="xtd" style="text-align: center;">' + data.totalMoney + '</td>';
  706. html += '</tr>';
  707. totalMoney+=parseFloat(data.totalMoney);
  708. }
  709. html += '<tr class="sjh">';
  710. html += '<td colspan="8" style="text-align: right;font-weight: 700;">总计:' + keepTwoDecimal(parseFloat(totalMoney)) + '</td>';
  711. html += '<td colspan="1"></td>';
  712. html += '</tr>';
  713. html += '<tr class="sjh"><td colspan="9" style="border: transparent !important;">&nbsp</td></tr>';
  714. html += '<tr class="sjh">';
  715. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">调配人:</td>';
  716. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">核发人:</td>';
  717. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">领药人:</td>';
  718. html += '</tr>';
  719. $("#hzdy_table").append(html);
  720. print("hzdy_table_div");
  721. }
  722. /**
  723. *打印明细单
  724. * @param flag 0:手动打印 1:保存后自动打印
  725. */
  726. function getPrintDetail(flag) {
  727. let datas = getJQAllData("tb_detail_table");
  728. if(pageClass=="5" || pageClass=="6"){
  729. $.ajax({
  730. type: "GET",
  731. url: '/thmz/getOralPrintData',
  732. contentType: "application/json;charset=UTF-8",
  733. dataType: "json",
  734. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  735. data: {
  736. pageNo: hzFlag==0?pageNo:pageNos,
  737. pageClass: pageClass,
  738. submitFlag: $("#submitFlagSearch").val()
  739. },
  740. success: function (res) {
  741. if (res == '401' || res == 401) {
  742. window.location.href = '/thmz/login/view';
  743. return;
  744. }
  745. if (res.code == 0) {
  746. for (let i = 0; i < res.data.list.length; i++) {
  747. let byjDate = res.data.list[i];
  748. byjDate["oldAmount"] = byjDate["amount"];
  749. let flag = true;
  750. for (let j = 0; j < datas.length; j++) {
  751. let data = datas[j];
  752. //发药数量为0,删减汇总数量
  753. if(byjDate["inpatientNo"] == data["inpatientNo"]
  754. && byjDate["chargeCode"] == data["chargeCode"] && byjDate["serial"] == data["serial"]){
  755. flag = false;
  756. if(data["amount"] == 0 ){
  757. byjDate["amount"] -= parseFloat(data["oldAmount"])
  758. }
  759. }
  760. }
  761. if(flag){
  762. res.data.list.splice(i,1);
  763. i--;
  764. }
  765. }
  766. for (let i = 0; i < res.data.byjList.length; i++) {
  767. let byjDate = res.data.byjList[i];
  768. byjDate["oldAmount"] = byjDate["amount"];
  769. let flag = true;
  770. for (let j = 0; j < datas.length; j++) {
  771. let data = datas[j];
  772. //发药数量为0,删减汇总数量
  773. if(byjDate["inpatientNo"] == data["inpatientNo"]
  774. && byjDate["chargeCode"] == data["chargeCode"] && byjDate["serial"] == data["serial"]){
  775. flag = false;
  776. if(data["amount"] == 0){
  777. byjDate["amount"] -= parseFloat(data["oldAmount"])
  778. }
  779. }
  780. }
  781. if(flag){
  782. res.data.byjList.splice(i,1);
  783. i--;
  784. }
  785. }
  786. printDetail(res.data,1,flag)
  787. } else {
  788. errorMesage(res);
  789. }
  790. }
  791. });
  792. }else {
  793. printDetail(datas,0,flag);
  794. }
  795. }
  796. function printDetail(datas,kfFlag,flag) {
  797. if(kfFlag == 1){
  798. if(flag == 0){
  799. printDetailHtml(datas.list.concat(datas.byjList),flag);
  800. }else if(flag == 1){
  801. if(datas.list.length > 0){
  802. printDetailHtml(datas.list,flag);
  803. }
  804. if(datas.byjList.length > 0){
  805. printDetailHtml(datas.byjList,flag);
  806. }
  807. }
  808. }else{
  809. printDetailHtml(datas,flag);
  810. }
  811. }
  812. /**
  813. *
  814. */
  815. function printDetailHtml(datas,flag) {
  816. console.log(datas);
  817. let html = '';
  818. let totalMoney = 0;
  819. let oldInpatientNo = '';//记录上一个病人
  820. let title = '病房明细领药单('+$("#pageClassSearch").find("option:selected").text()+')';
  821. if(pageClass == '5'){
  822. title = '长期口服领药单'
  823. }else if(pageClass == '6'){
  824. title = '临时口服领药单'
  825. }
  826. if(flag == 1 && datas[0].byjFlag == 1){
  827. title += '(摆药机)'
  828. }else if(flag == 0){
  829. title += '(重打)'
  830. }
  831. $(".title").text(title);
  832. $(".groupName").text(groupNo==71?'门诊西药房':'住院药房');
  833. let w_code = $("#wardCode").find("option:selected").text();
  834. $(".wardName").text(w_code.substring(0,w_code.lastIndexOf("(")));
  835. $(".pageNo").text(pageNo);
  836. $(".printDate").html(format(new Date(),"yyyy-MM-dd HH:mm"));
  837. $('.sjh').remove();
  838. let minOccTime = '';
  839. for (var i = 0; i < datas.length; i++) {
  840. let data = datas[i];
  841. if(pageClass!="A" && pageClass!="5" && (oldInpatientNo=='' || oldInpatientNo!=data.inpatientNo)){//临时口服,统领单
  842. html += '<tr class="sjh">';
  843. html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">年龄:' + getBirthSlot(data.birthDate,new Date()) + '</td>';
  844. html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">性别:' + getSex(data.sex) + '</td>';
  845. html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">身份:' + data.responceName + '</td>';
  846. html += '<td colspan="7" class="xtd" style="text-align: left;border: transparent !important;">诊断:' ;
  847. if(data.admissDiagStr!=null){
  848. html += data.admissDiagStr
  849. }
  850. html += '</td>';
  851. html += '</tr>';
  852. }
  853. oldInpatientNo = data.inpatientNo;
  854. html += '<tr class="sjh">';
  855. if(pageClass=="5"){
  856. $(".zyh").hide();
  857. }else{
  858. $(".zyh").show();
  859. html += '<td class="xtd" style="text-align: center;">' + data.inpatientNo + '</td>';
  860. }
  861. html += '<td class="xtd" style="text-align: center;">' + data.name + '</td>';
  862. html += '<td class="xtd" style="text-align: center;">' + data.bedNo + '</td>';
  863. html += '<td class="xtd" style="text-align: left;">' + data.drugName;
  864. if(pageClass == '5' || pageClass == '6'){
  865. html += '('+data.manufactory+')'
  866. }
  867. + '</td>';
  868. html += '<td class="xtd" style="text-align: center;">' + data.specification + '</td>';
  869. html += '<td class="xtd" style="text-align: center;">' + data.oldAmount + '</td>';
  870. html += '<td class="xtd" style="text-align: center;">' + data.amount + '</td>';
  871. if(pageClass=="A"){//医技
  872. $(".yjmxtd").show();
  873. $(".kfmxtd").hide();
  874. $(".kssj").hide();
  875. $(".jssj").hide();
  876. html += '<td class="xtd" style="text-align: center;">' + data.retprice + '</td>';
  877. html += '<td class="xtd" style="text-align: center;">' + data.totalMoney + '</td>';
  878. html += '<td class="xtd" style="text-align: center;">' + data.occTime + '</td>';
  879. }else if(pageClass=="5" || pageClass=="6"){//口服单
  880. $(".kfmxtd").show();
  881. $(".yjmxtd").hide();
  882. $(".gyfs").hide();
  883. if(minOccTime == '' || minOccTime > data.occTime){
  884. minOccTime = data.occTime
  885. }
  886. html += '<td class="xtd" style="text-align: center;">' + data.frequCode + '</td>';
  887. html += '<td class="xtd" style="text-align: center;">' + data.dose + '</td>';
  888. html += '<td class="xtd" style="text-align: center;">' + data.doseUnit + '</td>';
  889. html += '<td class="xtd" style="text-align: left;">' + data.instruction + '</td>';
  890. html += '<td class="xtd" style="text-align: center;">' + data.kssj + '</td>';
  891. html += '<td class="xtd" style="text-align: center;">' + data.jssj + '</td>';
  892. html += '<td class="xtd" style="text-align: center;">' + data.doctorNameStr + '</td>';
  893. }else{
  894. $(".kfmxtd").show();
  895. $(".yjmxtd").hide();
  896. $(".kssj").hide();
  897. $(".jssj").hide();
  898. html += '<td class="xtd" style="text-align: center;">' + data.frequCode + '</td>';
  899. html += '<td class="xtd" style="text-align: center;">' + data.dose + '</td>';
  900. html += '<td class="xtd" style="text-align: center;">' + data.doseUnit + '</td>';
  901. html += '<td class="xtd" style="text-align: left;">' + data.instruction + '</td>';
  902. html += '<td class="xtd" style="text-align: center;">' + data.supplyName + '</td>';
  903. html += '<td class="xtd" style="text-align: center;">' + data.doctorNameStr + '</td>';
  904. }
  905. html += '</tr>';
  906. totalMoney+=parseFloat(data.totalMoney);
  907. }
  908. if(pageClass=="5" || pageClass=="6"){//口服单
  909. $(".kssj").show();
  910. $(".jssj").show();
  911. var arr1 = minOccTime.split(" ");
  912. var sdate = arr1[0].split('-');
  913. var kssj = new Date(sdate[0], sdate[1]-1, sdate[2]);
  914. $(".kssj").text(format(kssj, "yy/MM/dd"));
  915. kssj.setTime(kssj.getTime()+24*60*60*1000);
  916. $(".jssj").text(format(kssj, "yy/MM/dd"));
  917. }
  918. html += '<tr class="sjh"><td colspan="13" style="border: transparent !important;">&nbsp</td></tr>';
  919. html += '<tr class="sjh">';
  920. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">调配人:<br><br>时间:</td>';
  921. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">核发人:<br><br>时间:</td>';
  922. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">领药人:<br><br>时间:</td>';
  923. html += '<td colspan="4" style="text-align: left;font-weight: 700;border: transparent !important;">护士:<br><br>时间:</td>';
  924. html += '</tr>';
  925. $("#mxdy_table").append(html);
  926. print("mxdy_table_div");
  927. }
  928. /**
  929. * 打印标签
  930. */
  931. function printLabelData(flag) {
  932. $.ajax({
  933. type: "GET",
  934. url: '/thmz/getLabelPrintDatas',
  935. contentType: "application/json;charset=UTF-8",
  936. dataType: "json",
  937. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  938. data: {
  939. pageNo: hzFlag==0?pageNo:pageNos,
  940. submitFlag: $("#submitFlagSearch").val()
  941. },
  942. success: function (res) {
  943. if (res == '401' || res == 401) {
  944. window.location.href = '/thmz/login/view';
  945. return;
  946. }
  947. if (res.code == 0) {
  948. if(res.data.length == 0){
  949. warningMesageSimaple("没有需要打印的口服标签");
  950. return;
  951. }
  952. printLabel(res.data,flag);
  953. successMesage(res);
  954. } else {
  955. errorMesage(res);
  956. }
  957. }
  958. });
  959. }
  960. /**
  961. * 打印标签
  962. */
  963. function printLabel(datas,isMx) {
  964. LODOP = getLodop();
  965. LODOP.PRINT_INITA(6, 0, "80mm", "60mm", "住院患者内服袋打印");
  966. LODOP.SET_PRINT_PAGESIZE(1, "80mm", "60mm","");
  967. //设置打印机
  968. LODOP.SET_PRINTER_INDEX(nfdPrintIndex);
  969. LODOP.SET_PRINT_STYLE("FontSize", 10); //字体大小
  970. LODOP.SET_PRINT_STYLEA(0,"ItemType",2);
  971. LODOP.SET_PRINT_STYLEA(0,"ItemType",2);
  972. var strStyle="<style>table,td,th {border-width: 1px;" +
  973. "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 13px}.xtd{border: 1px solid black;}</style>";
  974. let html = '';
  975. let flag = true;//新的一张标签
  976. let number = 0;//计数,一张标签只存放五种药品
  977. let tableDatas = getJQAllData(isMx==1?"tb_detail_table":"tb_summarizing_table");
  978. $('.sjh').remove();
  979. for (var i = 0; i < datas.length; i++) {
  980. let data = datas[i];
  981. for (let j = 0; j < tableDatas.length; j++) {
  982. if(tableDatas[j].fybz.indexOf("发药") != -1 && tableDatas[j].chargeCode == data.chargeCode
  983. && tableDatas[j].serial == data.serial && (tableDatas[j].occTime == data.occTime || isMx==0)){
  984. if((i > 0 && (data.inpatientNo != datas[i-1].inpatientNo
  985. || data.occTime != datas[i-1].occTime)) || number == 5){//服药时间或者病人不同另起一页,超过五种药品另起一页
  986. if(html != ''){
  987. for (let j = 0; j < 5-number; j++) {
  988. html += '<tr class="sjh">';
  989. html += '<td class="xtd">&nbsp;</td>';
  990. html += '<td class="xtd"></td>';
  991. html += '<td class="xtd"></td>';
  992. html += '<td class="xtd"></td>';
  993. html += '<td class="xtd"></td>';
  994. html += '</tr>';
  995. }
  996. $("#bqdy_table").append(html);
  997. LODOP.ADD_PRINT_HTM("1mm", "3mm", "RightMargin:1mm", "BottomMargin:3mm",strStyle+ document.getElementById("bqdy_table_div").innerHTML);
  998. LODOP.NewPageA();
  999. html = '';
  1000. number = 0;
  1001. }
  1002. flag = true;
  1003. }else if(i != 0){
  1004. flag = false;
  1005. }
  1006. if(flag){
  1007. $('.sjh').remove();
  1008. $(".inpatientNo").text($.trim(data.inpatientNo));
  1009. $(".bedNo").text($.trim(data.bedNo));
  1010. $(".name").text($.trim(data.name));
  1011. $(".age").text(getBirthSlot(data.birthDate,new Date()));
  1012. $(".sex").text(getSex(data.sex));
  1013. $(".occTime").text(format(data.occTime,"yyyy/MM/dd HH:mm"));
  1014. }
  1015. html += '<tr class="sjh">';
  1016. html += '<td class="xtd" style="text-align: left;">' + data.drugName + '</td>';
  1017. html += '<td class="xtd" style="text-align: center;">' + data.dose+data.doseUnit + '</td>';
  1018. html += '<td class="xtd" style="text-align: center;">' + data.specification + '</td>';
  1019. html += '<td class="xtd" style="text-align: center;">' + data.dosage.replace(".0","") + '</td>';
  1020. html += '<td class="xtd" style="text-align: center;">' + data.amount + '</td>';
  1021. html += '</tr>';
  1022. number++;
  1023. break;
  1024. }
  1025. }
  1026. }
  1027. if(html != ''){
  1028. for (let j = 0; j < 5-number; j++) {
  1029. html += '<tr class="sjh">';
  1030. html += '<td class="xtd">&nbsp;</td>';
  1031. html += '<td class="xtd"></td>';
  1032. html += '<td class="xtd"></td>';
  1033. html += '<td class="xtd"></td>';
  1034. html += '<td class="xtd"></td>';
  1035. html += '</tr>';
  1036. }
  1037. $("#bqdy_table").append(html);
  1038. LODOP.ADD_PRINT_HTM("1mm", "3mm", "RightMargin:1mm", "BottomMargin:3mm",strStyle+ document.getElementById("bqdy_table_div").innerHTML);
  1039. LODOP.PRINT();
  1040. //LODOP.PRINT_DESIGN();
  1041. }
  1042. }
  1043. /**
  1044. * 打印报表
  1045. */
  1046. function print(div_id) {
  1047. setDefaultPrint();
  1048. LODOP = getLodop();
  1049. LODOP.PRINT_INITA(6, 0, "221mm", "93mm", "请领单打印");
  1050. LODOP.SET_PRINT_PAGESIZE(1, "221mm", "93mm","");
  1051. //设置默认打印机
  1052. LODOP.SET_PRINTER_INDEX(defaultPrintIndex);
  1053. LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小
  1054. LODOP.SET_PRINT_STYLEA(0,"ItemType",2);
  1055. var strStyle="<style>table,td,th {border-width: 1px;padding-bottom:0px;" +
  1056. "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 13}.xtd{border: 1px solid black;}</style>";
  1057. LODOP.ADD_PRINT_HTM("0mm", "0mm", "RightMargin:0mm", "BottomMargin:0mm",strStyle+ document.getElementById(div_id).innerHTML);
  1058. LODOP.PRINT();
  1059. //LODOP.PREVIEW();
  1060. //LODOP.PRINT_DESIGN();
  1061. }
  1062. /**
  1063. * 保存
  1064. * @param flag 0汇总打印 1明细打印
  1065. */
  1066. function save(flag){
  1067. if (!confirm("确定要对当前药单进行发药处理吗?")) {
  1068. return;
  1069. }
  1070. //拿到grid对象
  1071. var obj = $(flag==0?"#tb_summarizing_table":"#tb_detail_table");
  1072. //获取grid表中所有的rowid值
  1073. var rowIds = obj.getDataIDs();
  1074. //初始化一个数组arrayData容器,用来存放rowData
  1075. var datas = new Array();
  1076. if (rowIds.length > 0) {
  1077. for (var i = 0; i < rowIds.length; i++) {
  1078. if(obj.getRowData(rowIds[i]).fybz.indexOf("暂缓") == -1){
  1079. datas.push(obj.getRowData(rowIds[i]));
  1080. }
  1081. }
  1082. }
  1083. $(flag==0?"#collect_save":"#detail_save").attr('disabled',true);
  1084. $.ajax({
  1085. type: "POST",
  1086. url: '/thmz/sendWard',
  1087. contentType: "application/json;charset=UTF-8",
  1088. dataType: "json",
  1089. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1090. data: JSON.stringify({
  1091. pageNo: hzFlag==0?pageNo:pageNos,
  1092. yzYpZyOrders: datas
  1093. }),
  1094. success: function (res) {
  1095. $(flag==0?"#collect_save":"#detail_save").attr('disabled',false);
  1096. if (res == '401' || res == 401) {
  1097. window.location.href = '/thmz/login/view';
  1098. return;
  1099. }
  1100. if (res.code == 0) {
  1101. successMesage(res);
  1102. if(flag == 0){
  1103. printCount();
  1104. }else{
  1105. getPrintDetail(1);
  1106. }
  1107. if (!confirm("是否需要打印当前药单的口服标签?")) {
  1108. initButtonChange("#qld",0);
  1109. return;
  1110. }else{
  1111. printLabelData(flag);
  1112. initButtonChange("#qld",0);
  1113. }
  1114. } else {
  1115. errorMesage(res);
  1116. }
  1117. }
  1118. });
  1119. }
  1120. /**
  1121. * 撤销提交
  1122. * @param pageNo 药单号
  1123. */
  1124. function cancelSubmit(pageNo,wardName,pageClass){
  1125. if (!confirm("确定要撤销【"+wardName+"】提交的("+pageNo+")药单吗?")) {
  1126. return;
  1127. }
  1128. $.ajax({
  1129. type: "GET",
  1130. url: '/thmz/cancelWardPrescriptionSubmit',
  1131. data:{
  1132. pageNo:pageNo,
  1133. pageClass:pageClass
  1134. },
  1135. contentType: "application/json;charset=UTF-8",
  1136. dataType: "json",
  1137. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1138. success: function (res) {
  1139. if (res == '401' || res == 401) {
  1140. window.location.href = '/thmz/login/view';
  1141. return;
  1142. }
  1143. if (res.code == 0) {
  1144. successMesage(res);
  1145. initTbTable();
  1146. } else {
  1147. errorMesage(res);
  1148. }
  1149. }
  1150. });
  1151. }