ward_prescription.js 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696
  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. var lastrow;//最后编辑单元格的行
  13. var lastcell;//最后编辑单元格的列
  14. $(function () {
  15. init_daterangepicker();
  16. $('#reportrange span').html(moment().subtract(10, 'days').format('YYYY-MM-DD') + ' - ' + moment().format('YYYY-MM-DD'));
  17. $(".selectpicker").selectpicker({
  18. dropuAuto: false
  19. });
  20. $('#submitFlagSearch').html("");
  21. let submitFlagHtml = '';
  22. if (groupNo == null) {
  23. return errorMesageSimaple('当前药房未设置,请在发药参数设置中设置');
  24. } else if (groupNo === '81') {
  25. $('.isXy').css('display', 'none');
  26. $('.isZy').css('display', '');
  27. $('#mx').css('display', 'none');
  28. submitFlagHtml = '<option value="3" selected>待发</option>' +
  29. '<option value="4">已发</option>';
  30. } else {
  31. $('.isXy').css('display', '');
  32. $('.isZy').css('display', 'none');
  33. $('#mx').css('display', '');
  34. submitFlagHtml = '<option value="1" selected>待发</option>' +
  35. '<option value="2">已取消</option>' +
  36. '<option value="3">已确认</option>';
  37. }
  38. $('#submitFlagSearch').append(submitFlagHtml);
  39. $('#submitFlagSearch').selectpicker('refresh');
  40. initTbTable();
  41. clearInterval(tableInterval);
  42. //五分钟刷新一次请领单列表数据
  43. tableInterval = setInterval(initTbTable, 50000);
  44. initDynamicSelect("allUnitCode", "wardCode");
  45. //重置查询参数
  46. $('#btn_clean').click(function () {
  47. cleanParams();
  48. });
  49. $("#btn_query").click(function (t) {
  50. $("#initButton").find("button").each(function (index, element) {
  51. if ($(element).hasClass("btn-primary")) {
  52. $(element).removeClass("btn-primary").addClass("btn-default");
  53. }
  54. });
  55. $("#qld").removeClass("btn-default").addClass("btn-primary");
  56. initTbTable();
  57. });
  58. $("#printSend").click(function (t) {
  59. $('#zydybqModal').modal('hide');
  60. $("#zyypbq_name").attr("value", $("#zydyNameLabel").val());
  61. $("#zyypbq_bedno").attr("value", $("#bedNoLabel").val());
  62. $("#zyypbq_ward").attr("value", $("#wardLabel").val());
  63. $("#zyypbq_date").attr("value", $("#dateLabel").val());
  64. $("#zyypbq_comm").text($("#yfLabel").val());
  65. if ($("#syfsLabel").val() == 0) {
  66. $("#zybq_title").text("中药口服标签");
  67. } else {
  68. $("#zybq_title").text("中药外用标签");
  69. }
  70. LODOP = getLodop();
  71. LODOP.PRINT_INITA(6, 0, "50mm", "30mm", "中药标签");
  72. //设置默认打印机
  73. LODOP.SET_PRINTER_INDEX(nfdPrintIndex);
  74. LODOP.SET_PRINT_PAGESIZE(1, '50mm', '30mm', "CreateCustomPage");
  75. LODOP.SET_SHOW_MODE("BKIMG_WIDTH", "50mm");
  76. LODOP.SET_SHOW_MODE("BKIMG_HEIGHT", "30mm");
  77. LODOP.SET_PRINT_MODE("CREATE_CUSTOM_PAGE_NAME", "中药标签");//对新建的纸张重命名
  78. LODOP.SET_PRINT_COPIES(parseInt($("#dyslLabel").val()));
  79. LODOP.ADD_PRINT_HTM("2mm", "2mm", "50mm", "30mm", $('#print_view_zybq').html());
  80. LODOP.PRINT();
  81. //LODOP.PREVIEW();
  82. });
  83. $("#barCode").on('blur', function (t) {
  84. let rowid = $("#tb_detail_table").jqGrid("getGridParam","selrow");
  85. setTimeout(function () {//延时防止编辑单元格输入框未生效
  86. if($("input[name='manuNo']").length == 0 && $("select[name='fybz']").length == 0){
  87. return $("#barCode").focus();
  88. }
  89. $("#"+rowid+"_manuNo,#"+rowid+"_fybz").on('blur', function (t) {
  90. $("#barCode").focus();
  91. });
  92. if($("input[name='manuNo']").length > 0){
  93. if(!$("#"+rowid+"_manuNo").is(':focus')){
  94. return $("#barCode").focus();
  95. }
  96. }else if($("select[name='fybz']").length > 0){
  97. if(!$("#"+rowid+"_fybz").is(':focus')){
  98. return $("#barCode").focus();
  99. }
  100. }
  101. },500)
  102. });
  103. /**
  104. * 扫码条码
  105. */
  106. $("#barCode").on('input', debounce(e=>{
  107. autoBar(e.delegateTarget.value)
  108. },500));
  109. });
  110. /**
  111. * 条码赋值
  112. * @param value
  113. */
  114. function autoBar(value) {
  115. request({
  116. url: '/getBarCode',
  117. method: 'GET',
  118. data: {
  119. barCode: value
  120. }
  121. }).then((res) => {
  122. $("#barCode").val("");
  123. if(Object.keys(res.data).length === 0){
  124. return warningMesageSimaple("未找到该条码对应的批号");
  125. }
  126. let rowId=$("#tb_detail_table").jqGrid("getGridParam", "selrow");
  127. var rowData=$("#tb_detail_table").jqGrid('getRowData', rowId);
  128. let chargeCode = '';
  129. for(let key in res.data){
  130. chargeCode = key
  131. }
  132. if(chargeCode != rowData.chargeCode){
  133. return warningMesageSimaple("该条码对应的药品编码和表格选中药品不一致");
  134. }
  135. if(!isEmpty(rowData.manuNo)){
  136. let oldManuNos = rowData.manuNo.split(",");
  137. if(oldManuNos.indexOf(res.data[chargeCode]) != -1){
  138. return warningMesageSimaple("条码重复扫描");
  139. }
  140. }
  141. $("#tb_detail_table").jqGrid("setCell", rowId,'manuNo', (isEmpty(rowData.manuNo)?"":(rowData.manuNo+","))+res.data[chargeCode]);
  142. $("#tb_detail_table").setSelection(rowId+1, false);
  143. successMesageSimaple("扫描条码赋值批号成功");
  144. });
  145. }
  146. /**
  147. * 列表类型按钮切换事件
  148. * @param object
  149. * @param realIndex 下标
  150. */
  151. function initButtonChange(object, realIndex) {
  152. $("#initButton").find("button").each(function (index, element) {
  153. if ($(element).hasClass("btn-primary")) {
  154. $(element).removeClass("btn-primary").addClass("btn-default");
  155. }
  156. });
  157. $(object).removeClass("btn-default").addClass("btn-primary");
  158. if (realIndex == 0) {
  159. cleanParams();
  160. initTbTable();
  161. } else if (realIndex == 1) {
  162. setFrom();
  163. $("#barCode").attr('disabled', true);
  164. loadSummarizingTable();
  165. } else if (realIndex == 2) {
  166. setFrom();
  167. $("#barCode").attr('disabled', false);
  168. $("#barCode").focus();
  169. loadDetailTable();
  170. }
  171. }
  172. function setFrom() {
  173. $("#wardCode").selectpicker('val', wardCode);
  174. if (hzFlag === 0) {
  175. $("#pageNoSearch").val(pageNo);
  176. }
  177. $("#pageClassSearch").val(pageClass);
  178. $("#wardCode").selectpicker('refresh');
  179. $("#pageClassSearch").selectpicker('refresh');
  180. $("#wardCode").attr('disabled', true);
  181. $("#pageNoSearch").attr('disabled', true);
  182. $("#pageClassSearch").attr('disabled', true);
  183. $("#btn_clean").attr('disabled', true);
  184. $("#btn_query").attr('disabled', true);
  185. }
  186. /**
  187. * 控制汇总和明细的显示
  188. */
  189. function detail(no, type, code, flag) {
  190. pageNo = no;
  191. pageClass = type;
  192. wardCode = code;
  193. hzFlag = flag;
  194. setFrom();
  195. if (flag === 1) {
  196. initButtonChange("#hz", 1);
  197. } else {
  198. switch (type) {
  199. case "2":
  200. case "5":
  201. case "6":
  202. initButtonChange("#mx", 2);
  203. break;
  204. default:
  205. initButtonChange("#hz", 1);
  206. }
  207. }
  208. }
  209. /**
  210. * 药单界面显示
  211. */
  212. function initHtml() {
  213. $("#tb_table_div").css("display", "");
  214. $("#tb_summarizing_table_div").css("display", "none");
  215. $("#tb_detail_table_div").css("display", "none");
  216. }
  217. /**
  218. * 药单汇总界面显示
  219. */
  220. function initSummarizingHtml() {
  221. $("#tb_summarizing_table_div").css("display", "");
  222. $("#tb_table_div").css("display", "none");
  223. $("#tb_detail_table_div").css("display", "none");
  224. }
  225. /**
  226. * 药单详细界面初始化
  227. */
  228. function initDetailHtml() {
  229. $("#tb_table_div").css("display", "none");
  230. $("#tb_summarizing_table_div").css("display", "none");
  231. $("#tb_detail_table_div").css("display", "");
  232. }
  233. /**
  234. * 查询药单基础信息
  235. */
  236. function initTbTable() {
  237. let pageIndex = $('#tb_table').bootstrapTable('getOptions').pageNumber;
  238. if ($('#qld').hasClass('btn-primary')) {
  239. initHtml();
  240. $('#tb_table').bootstrapTable("destroy");
  241. $('#tb_table').bootstrapTable({
  242. url: "/thmz/getYzYpPageNo", //请求后台的URL(*)
  243. method: 'post', //请求方式(*)
  244. striped: true, //是否显示行间隔色
  245. cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  246. pagination: true, //是否显示分页(*)
  247. sortable: true, //是否启用排序
  248. sortOrder: "asc", //排序方式
  249. queryParams: queryParams, //传递参数(*)
  250. sidePagination: "client", //分页方式:client客户端分页,server服务端分页(*)
  251. pageNumber: pageIndex || 1, //初始化加载第一页,默认第一页
  252. pageSize: 30, //每页的记录行数(*)
  253. pageList: [25, 50, 100], //可供选择的每页的行数(*)
  254. search: false, //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
  255. strictSearch: true,
  256. showColumns: false, //是否显示所有的列
  257. showRefresh: false, //是否显示刷新按钮
  258. minimumCountColumns: 2, //最少允许的列数
  259. clickToSelect: true, //是否启用点击选中行
  260. uniqueId: "ID", //每一行的唯一标识,一般为主键列
  261. showToggle: false, //是否显示详细视图和列表视图的切换按钮
  262. cardView: false, //是否显示详细视图
  263. detailView: false,
  264. ajaxOptions: {
  265. headers: {
  266. 'Accept': 'application/json',
  267. 'Authorization': 'Bearer ' + localStorage.getItem("token")
  268. }
  269. },
  270. columns: initColumns(),
  271. rowStyle: function (row, index) {
  272. if (row.pageClass == "T") {
  273. return {css: {'color': 'red', 'padding': '0px'}};
  274. }
  275. return {css: {'padding': '0px'}};
  276. },
  277. onDblClickRow: function (row) {
  278. loadSummarizingTable();
  279. },
  280. responseHandler: function (res) {
  281. if (res == '401' || res == 401) {
  282. window.location.href = '/thmz/login/view'
  283. return;
  284. }
  285. var ress = eval(res);
  286. if (ress.code == -1) {
  287. if (ress.message != null && ress.message != '') {
  288. new PNotify({
  289. title: '错误提示',
  290. text: ress.message,
  291. type: 'error',
  292. hide: true,
  293. styling: 'bootstrap3'
  294. });
  295. }
  296. return {
  297. "total": 0,//总页数
  298. "rows": {} //数据
  299. };
  300. }
  301. return {
  302. "total": ress.total,//总页数
  303. "rows": ress.data //数据
  304. };
  305. },
  306. });
  307. }
  308. }
  309. /**
  310. * 初始化列
  311. * @returns {*[]}
  312. */
  313. function initColumns() {
  314. let base = [{
  315. title: '操作',
  316. align: "center",
  317. valign: 'middle',
  318. formatter: function (value, row, index) {
  319. 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>';
  320. if (groupNo !== '81' && $("#submitFlagSearch").val() === '1' && row.pageClass != 'T' && row.pageClass != 'HT' && row.pageClass != 'A' && row.pageClass != '5' && row.pageClass != '6') {
  321. 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>';
  322. }
  323. if ((groupNo !== '81' && $("#submitFlagSearch").val() === '1') || (groupNo === '81' && $("#submitFlagSearch").val() === '3')) {
  324. 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>';
  325. }
  326. return str;
  327. }
  328. }, {
  329. field: 'wardName',
  330. title: '申请病室',
  331. align: "center",
  332. valign: 'middle'
  333. }, {
  334. field: 'pageNo',
  335. title: '药品单号',
  336. align: "center",
  337. valign: 'middle'
  338. }];
  339. let xy = [{
  340. field: 'pageName',
  341. title: '药单类型',
  342. align: "center",
  343. valign: 'middle'
  344. }, {
  345. field: 'subName',
  346. title: '提交人',
  347. align: "center",
  348. valign: 'middle'
  349. }, {
  350. field: 'submitTime',
  351. title: '提交时间',
  352. align: "center",
  353. valign: 'middle',
  354. formatter: function (value, row, index) {
  355. if (value != null && value != "") {
  356. return format(value, "yyyy-MM-dd HH:mm:ss");
  357. }
  358. return "";
  359. }
  360. }, {
  361. field: 'cancelSubName',
  362. title: '取消人',
  363. align: "center",
  364. valign: 'middle',
  365. visible: $("#submitFlagSearch").val() === '2' ? true : false
  366. }, {
  367. field: 'cancelSubmitTime',
  368. title: '取消时间',
  369. align: "center",
  370. valign: 'middle',
  371. visible: $("#submitFlagSearch").val() === '2' ? true : false,
  372. formatter: function (value, row, index) {
  373. if (value != null && value != "") {
  374. return format(value, "yyyy-MM-dd HH:mm:ss");
  375. }
  376. return "";
  377. }
  378. }, {
  379. field: 'contirmName',
  380. title: '发药人',
  381. align: "center",
  382. valign: 'middle',
  383. visible: $("#submitFlagSearch").val() === '3' ? true : false
  384. }, {
  385. field: 'confirmTime',
  386. title: '发药时间',
  387. align: "center",
  388. valign: 'middle',
  389. visible: $("#submitFlagSearch").val() === '3' ? true : false,
  390. formatter: function (value, row, index) {
  391. if (value != null && value != "") {
  392. return format(value, "yyyy-MM-dd HH:mm:ss");
  393. }
  394. return "";
  395. }
  396. }, {
  397. field: 'startDate',
  398. title: '开始时间',
  399. align: "center",
  400. valign: 'middle',
  401. formatter: function (value, row, index) {
  402. if (value != null && value != "") {
  403. return format(value, "yyyy-MM-dd");
  404. }
  405. return "";
  406. }
  407. }, {
  408. field: 'endDate',
  409. title: '结束时间',
  410. align: "center",
  411. valign: 'middle',
  412. formatter: function (value, row, index) {
  413. if (value != null && value != "") {
  414. return format(value, "yyyy-MM-dd");
  415. }
  416. return "";
  417. }
  418. }];
  419. let zy = [{
  420. field: 'chargeDate',
  421. title: '收费时间',
  422. align: "center",
  423. valign: 'middle',
  424. formatter: function (value, row, index) {
  425. if (value != null && value != "") {
  426. return format(value, "yyyy-MM-dd");
  427. }
  428. return "";
  429. }
  430. }, {
  431. field: 'orderName',
  432. title: '处方名称',
  433. align: "center",
  434. valign: 'middle'
  435. }, {
  436. field: 'doctorName',
  437. title: '医生',
  438. align: "center",
  439. valign: 'middle'
  440. }, {
  441. field: 'orderNo',
  442. title: '医嘱号',
  443. align: "center",
  444. valign: 'middle'
  445. }];
  446. if (groupNo === '81') {
  447. return base.concat(zy)
  448. } else {
  449. return base.concat(xy)
  450. }
  451. }
  452. /**
  453. * 加载药单汇总信息表格
  454. */
  455. function loadSummarizingTable() {
  456. initSummarizingHtml();
  457. initSummarizingTable();
  458. let url = '/thmz/getZyDrugCount';
  459. let tem = {
  460. groupNo: groupNo,
  461. pageClass: pageClass,
  462. submitFlag: $("#submitFlagSearch").val()
  463. };
  464. if (groupNo === '81') {
  465. url = '/thmz/getZyDrugCyCount';
  466. tem = {};
  467. }
  468. if (hzFlag === 1) {
  469. tem.wardCode = wardCode;
  470. $.ajax({
  471. type: "GET",
  472. url: '/thmz/queryYzYpPageNoStr',
  473. contentType: "application/json;charset=UTF-8",
  474. dataType: "json",
  475. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  476. data: tem,
  477. success: function (res) {
  478. if (res.code == 0) {
  479. url = '/thmz/getYzYpOrderWard';
  480. pageNos = res.data;
  481. $("#tb_summarizing_table").jqGrid('setGridParam', {
  482. datatype: 'json',
  483. url: url,
  484. postData: tem,
  485. groupingView: {
  486. groupField: ['pageClass'],
  487. groupColumnShow: [false],//是否展示分组列
  488. groupText: ['<b>单号:' + res.data + '</b>'],//组名的展示文字
  489. },
  490. }).trigger('reloadGrid');
  491. } else {
  492. errorMesage(res);
  493. }
  494. }
  495. });
  496. } else {
  497. tem.pageNo = pageNo;
  498. $("#tb_summarizing_table").jqGrid('setGridParam', {
  499. datatype: 'json',
  500. url: url,
  501. postData: tem
  502. }).trigger('reloadGrid');
  503. }
  504. }
  505. /**
  506. * 加载药单汇总信息表格
  507. */
  508. function loadDetailTable() {
  509. initDetailHtml();
  510. initDetailTable();
  511. $("#tb_detail_table").jqGrid('setGridParam', {
  512. datatype: 'json'
  513. }).trigger('reloadGrid');
  514. }
  515. /**
  516. * 初始化药单汇总信息表格
  517. */
  518. function initSummarizingTable() {
  519. $.jgrid.gridUnload("tb_summarizing_table");
  520. $("#tb_summarizing_table").jqGrid({
  521. datatype: 'local',
  522. mtype: 'get',
  523. loadBeforeSend: function (jqXHR) {
  524. jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
  525. jqXHR.setRequestHeader("Accept", 'application/json');
  526. },
  527. postData: {
  528. pageNo: pageNo,
  529. pageClass: pageClass
  530. },
  531. toolbar: [true, "top"],
  532. styleUI: 'Bootstrap',
  533. height: screen.height * 0.6,
  534. viewrecords: true,
  535. autowidth: true,
  536. /*loadonce:true,//一次加载全部数据到客户端,由客户端进行排序
  537. sortable: true,
  538. sortname: 'location', //设置默认的排序列
  539. sortorder: 'asc',*/
  540. cellEdit: true,
  541. cellsubmit: "clientArray",
  542. rownumbers: false,//是否显示序号
  543. rownumWidth: 50,
  544. rowNum: -1,//取消分页
  545. caption: '请领单药品汇总',
  546. grouping: groupNo === '81' ? false : true,
  547. groupingView: {
  548. groupField: ['pageClass'],
  549. groupSummary: [false],//是否开启汇总页脚
  550. groupColumnShow: [false],//是否展示分组列
  551. groupText: ['<b>单号:' + pageNo + '</b>'],//组名的展示文字
  552. groupCollapse: false,//是否收起
  553. },
  554. colNames: ['发药', '拒退', '单号', '批号','住院号', '床号', '姓名', '货位号', '药品编码', '药品名称', '规格', '数量/剂数','代煎剂数','处方金额', '代煎单价',
  555. '每天剂数','煎药说明','加水量','煮取量','复煎次数','几次服用','服用说明','医生','每剂数量', '发药量', '原发药量', '库存量', '零售价', '金额', '生产厂家', '药单类型', '规格编号', '医保编码'],
  556. colModel: [
  557. {
  558. name: 'fybz',
  559. index: 'fybz',
  560. align: 'center',
  561. width: 30,
  562. editable: true,
  563. formatter: "select",
  564. hidden: (pageClass === 'T' || groupNo === '81' || pageClass === 'HT') ? true : false,
  565. edittype: "select",
  566. editoptions: {value: "0:发药;1:暂缓;2:拒发"},
  567. formatter: function (cellvalue, options, rowObject) {
  568. if (cellvalue == null || cellvalue == 0) {
  569. return "<span style='color: green'>发药</span>"
  570. } else if (cellvalue == 1) {
  571. return "<span style='color: brown'>暂缓</span>"
  572. } else if (cellvalue == 2) {
  573. return "<span style='color: red'>拒发</span>"
  574. }
  575. }
  576. },
  577. {
  578. name: 'tybz',
  579. index: 'tybz',
  580. align: 'center',
  581. width: 30,
  582. formatter: "checkbox",
  583. editable: true,
  584. hidden: (pageClass === 'T' || pageClass === 'HT') ? false : true,
  585. edittype: 'checkbox',
  586. editoptions: {value: "1:0"}
  587. },
  588. {name: 'pageNo', index: 'pageNo', align: 'center', width: 30, hidden: true},
  589. {
  590. name: 'manuNo',
  591. index: 'manuNo',
  592. align: 'center',
  593. width: 30,
  594. editable: true,
  595. hidden: (pageClass == 'T' || pageClass == 'HT') ? true : false,
  596. edittype: "text"
  597. },
  598. {
  599. name: 'inpatientNo',
  600. index: 'inpatientNo',
  601. align: 'center',
  602. width: 30,
  603. hidden: groupNo === '81' ? false : true
  604. },
  605. {name: 'bedNo', index: 'bedNo', align: 'center', width: 30, hidden: groupNo === '81' ? false : true},
  606. {name: 'name', index: 'name', align: 'center', width: 30, hidden: groupNo === '81' ? false : true},
  607. {name: 'location', index: 'location', align: 'center', width: 30},
  608. {name: 'chargeCode', index: 'chargeCode', align: 'center', width: 30},
  609. {name: 'drugName', index: 'drugName', align: 'left', width: 50},
  610. {name: 'specification', index: 'specification', align: 'center', width: 30},
  611. {name: 'amount', index: 'amount', align: 'center', width: 30},
  612. {name: 'quantityDj', index: 'quantityDj', hidden: true},
  613. {name: 'orderJe', index: 'orderJe', hidden: true},
  614. {name: 'orderJeDj', index: 'orderJeDj', hidden: true},
  615. {name: 'cyMtjs', index: 'cyMtjs', hidden: true},
  616. {name: 'cyJssm', index: 'cyJssm', hidden: true},
  617. {name: 'cyJsl', index: 'cyJsl', hidden: true},
  618. {name: 'cyZql', index: 'cyZql', hidden: true},
  619. {name: 'cyFj', index: 'cyFj', hidden: true},
  620. {name: 'cyFfcs', index: 'cyFfcs', hidden: true},
  621. {name: 'fysmContent', index: 'fysmContent', hidden: true},
  622. {name: 'doctorName', index: 'doctorName', hidden: true},
  623. {name: 'minAmount', index: 'minAmount', align: 'center', width: 30,hidden: groupNo === '81' ? false : true},
  624. {
  625. name: 'amountCount',
  626. index: 'amountCount',
  627. align: 'center',
  628. width: 30,
  629. hidden: groupNo === '81' ? false : true,
  630. formatter: function (cellvalue, options, rowObject) {
  631. return rowObject.amount * rowObject.minAmount
  632. }
  633. },
  634. {
  635. name: 'oldAmount', index: 'oldAmount', align: 'center', width: 30, hidden: true,
  636. formatter: function (cellvalue, options, rowObject) {
  637. return rowObject.amount
  638. }
  639. },
  640. {name: 'stockAmount', index: 'stockAmount', align: 'center', width: 30},
  641. {name: 'retprice', index: 'retprice', align: 'center', width: 30},
  642. {
  643. name: 'totalMoney', index: 'totalMoney', align: 'center', width: 30,
  644. formatter: function (cellvalue, options, rowObject) {
  645. if(groupNo === '81'){
  646. return keepTwoDecimal(rowObject.retprice * rowObject.amount * rowObject.minAmount)
  647. }else{
  648. return keepTwoDecimal(rowObject.retprice * rowObject.amount)
  649. }
  650. }
  651. },
  652. {
  653. name: 'manufactory',
  654. index: 'manufactory',
  655. align: 'left',
  656. width: 60,
  657. hidden: groupNo === '81' ? true : false
  658. },
  659. {
  660. name: 'pageClass',
  661. index: 'pageClass',
  662. align: 'center',
  663. width: 40,
  664. hidden: groupNo === '81' ? true : false
  665. },
  666. {name: 'serial', index: 'serial', align: 'center', width: 40, hidden: true},
  667. {
  668. name: 'nationalCode', index: 'nationalCode', align: 'left', width: 40,
  669. formatter: function (cellvalue, options, rowObject) {
  670. return cellvalue == null ? "-" : cellvalue;
  671. }
  672. }
  673. ],
  674. jsonReader: {
  675. root: "data", repeatitems: false
  676. },
  677. beforeEditCell:function(rowid, cellname, v, iRow, iCol){
  678. lastrow = iRow;
  679. lastcell = iCol;
  680. },
  681. afterSaveCell: function (rowid, celname, value, iRow, iCol) {
  682. if(celname === 'manuNo'){
  683. return true
  684. }
  685. let data = $("#tb_summarizing_table").getRowData(rowid);
  686. $("#tb_summarizing_table").setCell(rowid, iCol, value);
  687. if (value == null || value == 0) {
  688. //重置
  689. $("#tb_summarizing_table").setCell(rowid, "amount", data.oldAmount);
  690. $("#tb_summarizing_table").setCell(rowid, "totalMoney", keepTwoDecimal(data.retprice * data.oldAmount));
  691. } else {
  692. $("#tb_summarizing_table").setCell(rowid, "amount", 0);
  693. $("#tb_summarizing_table").setCell(rowid, "totalMoney", 0);
  694. }
  695. return true
  696. },
  697. loadComplete: function (res) { //加载完成(初始加载),回调函数
  698. if (res == '401' || res == 401) {
  699. window.location.href = '/thmz/login/view';
  700. return;
  701. }
  702. if (res.code == -1) {
  703. errorMesage(res);
  704. }
  705. }
  706. });
  707. $("#t_tb_summarizing_table").append("<button class='registration-no-color-foot-button' title='打印汇总药单' onclick='printCount(0)' style='margin-left: 10px;'><i class='fa fa-print'></i></button>");
  708. $("#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>");
  709. if (($("#submitFlagSearch").val() === '1' && groupNo !== '81') || ($("#submitFlagSearch").val() === '3' && groupNo === '81')) {
  710. $("#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>");
  711. }else{
  712. $("#t_tb_summarizing_table").append("<button class='registration-no-color-foot-button' title='保存批号' id='manu_save_hz' style='color: green;margin-left: 10px;'><i class='fa fa-floppy-o'></i></button>");
  713. }
  714. $("#manu_save_hz").click(function (t) {
  715. var obj = $('#tb_summarizing_table');
  716. var rowIds = obj.getDataIDs();
  717. var arrayData = new Array();
  718. if (rowIds.length > 0) {
  719. for (var i = 0; i < rowIds.length; i++) {
  720. let rowDate = obj.getRowData(rowIds[i]);
  721. if(!isEmpty(rowDate.manuNo)){
  722. arrayData.push({
  723. pageNo: rowDate.pageNo,
  724. chargeCode: rowDate.chargeCode,
  725. manuNo: rowDate.manuNo
  726. });
  727. }
  728. }
  729. }
  730. request({
  731. url: '/modifyManuNoZy',
  732. method: 'POST',
  733. data: JSON.stringify(arrayData)
  734. }).then((res) => {
  735. successMesage(res);
  736. initButtonChange("#qld", 0);
  737. });
  738. });
  739. }
  740. /**
  741. * 初始化药单详细信息表格
  742. */
  743. function initDetailTable() {
  744. $.jgrid.gridUnload("tb_detail_table");
  745. $("#tb_detail_table").jqGrid({
  746. datatype: 'local',
  747. mtype: 'get',
  748. url: '/thmz/getZyDrugDetail',
  749. loadBeforeSend: function (jqXHR) {
  750. jqXHR.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem("token"));
  751. jqXHR.setRequestHeader("Accept", 'application/json');
  752. },
  753. postData: {
  754. pageNo: hzFlag === 0 ? pageNo : pageNos,
  755. pageClass: pageClass,
  756. submitFlag: $("#submitFlagSearch").val()
  757. },
  758. toolbar: [true, "top"],
  759. styleUI: 'Bootstrap',
  760. height: 350,
  761. viewrecords: true,
  762. autowidth: true,
  763. shrinkToFit: true,
  764. cellEdit: true,
  765. cellsubmit: "clientArray",
  766. rowNum: -1,//取消分页
  767. caption: '请领单药品明细',
  768. grouping: true,
  769. colNames: ['发药', '拒退', '批号', '单号', '住院号', '床号', '次数', '姓名', '药品名称', '规格', '数量', '原发药量', '零售价', '金额', '执行时间', '医嘱', '给药方式'
  770. , '频率', '剂量', '单位', '医生', '生日', '性别', '身份', '诊断', '科室', '病室', '是否婴儿', '请领人', '长期标志', '药品类型', '给药方式编码', '医嘱号',
  771. '自费标志', '单列', '贵重', '毒麻', '审批标志', '药房编码', '规格', '医生编码', '药单类别', '药品编码', '口服开始时间', '口服结束时间', '帐页号', '流水号', '医保编码'],
  772. colModel: [
  773. {
  774. name: 'fybz',
  775. index: 'fybz',
  776. align: 'center',
  777. width: 30,
  778. editable: true,
  779. formatter: "select",
  780. hidden: (pageClass == 'T' || pageClass == 'HT') ? true : false,
  781. edittype: "select",
  782. editoptions: {value: "0:发药;1:暂缓;2:拒发"},
  783. formatter: function (cellvalue, options, rowObject) {
  784. if (cellvalue == null || cellvalue == 0) {
  785. return "<span style='color: green'>发药</span>"
  786. } else if (cellvalue == 1) {
  787. return "<span style='color: brown'>暂缓</span>"
  788. } else if (cellvalue == 2) {
  789. return "<span style='color: red'>拒发</span>"
  790. }
  791. }
  792. },
  793. {
  794. name: 'tybz',
  795. index: 'tybz',
  796. align: 'center',
  797. width: 30,
  798. formatter: "checkbox",
  799. editable: true,
  800. hidden: (pageClass == 'T' || pageClass == 'HT') ? false : true,
  801. edittype: 'checkbox',
  802. editoptions: {value: "1:0"}
  803. },
  804. {
  805. name: 'manuNo',
  806. index: 'manuNo',
  807. align: 'center',
  808. width: 30,
  809. editable: true,
  810. hidden: (pageClass == 'T' || pageClass == 'HT') ? true : false,
  811. edittype: "text"
  812. },
  813. {name: 'pageNo', index: 'pageNo', align: 'center', width: 30, hidden: true},
  814. {name: 'inpatientNo', index: 'inpatientNo', align: 'center', width: 30},
  815. {name: 'bedNo', index: 'bedNo', align: 'center', width: 30, hidden: pageClass == 'A' ? true : false},
  816. {name: 'admissTimes', index: 'admissTimes', align: 'center', width: 30},
  817. {name: 'name', index: 'name', align: 'center', width: 30},
  818. {
  819. name: 'drugName', index: 'drugName', align: 'left', width: 60,
  820. formatter: function (cellvalue, options, rowObject) {
  821. return rowObject.drugName + "(" + rowObject.manufactory + ")"
  822. }
  823. },
  824. {name: 'specification', index: 'specification', align: 'center', width: 40},
  825. {name: 'amount', index: 'amount', align: 'center', width: 30},
  826. {
  827. name: 'oldAmount', index: 'oldAmount', align: 'center', width: 30, hidden: true,
  828. formatter: function (cellvalue, options, rowObject) {
  829. return rowObject.amount
  830. }
  831. },
  832. {name: 'retprice', index: 'retprice', align: 'center', width: 30},
  833. {
  834. name: 'totalMoney', index: 'totalMoney', align: 'center', width: 30,
  835. formatter: function (cellvalue, options, rowObject) {
  836. return keepTwoDecimal(rowObject.retprice * rowObject.amount)
  837. }
  838. },
  839. {
  840. name: 'occTime', index: 'occTime', align: 'center', width: 40
  841. , formatter: "date", formatoptions: {srcformat: 'Y-m-d H:i:s', newformat: 'Y-m-d H:i:s'}
  842. },
  843. {
  844. name: 'instruction',
  845. index: 'instruction',
  846. align: 'left',
  847. width: 50,
  848. hidden: pageClass == 'A' ? true : false
  849. },
  850. {
  851. name: 'supplyName',
  852. index: 'supplyName',
  853. align: 'center',
  854. width: 40,
  855. hidden: pageClass == 'A' ? true : false
  856. },
  857. {name: 'frequCode', index: 'frequCode', align: 'center', width: 40, hidden: true},
  858. {name: 'dose', index: 'dose', align: 'center', width: 40, hidden: true},
  859. {name: 'doseUnit', index: 'doseUnit', align: 'center', width: 40, hidden: true},
  860. {name: 'doctorNameStr', index: 'doctorNameStr', align: 'center', width: 40, hidden: true},
  861. {name: 'birthDate', index: 'birthDate', align: 'center', width: 40, hidden: true},
  862. {name: 'sex', index: 'sex', align: 'center', width: 40, hidden: true},
  863. {name: 'responceName', index: 'responceName', align: 'center', width: 40, hidden: true},
  864. {name: 'admissDiagStr', index: 'admissDiagStr', align: 'center', width: 40, hidden: true},
  865. {name: 'deptCode', index: 'deptCode', align: 'center', width: 40, hidden: true},
  866. {name: 'wardCode', index: 'wardCode', align: 'center', width: 40, hidden: true},
  867. {name: 'infantFlag', index: 'infantFlag', align: 'center', width: 40, hidden: true},
  868. {name: 'drawer', index: 'drawer', align: 'center', width: 40, hidden: true},
  869. {name: 'alwaysFlag', index: 'alwaysFlag', align: 'center', width: 40, hidden: true},
  870. {name: 'drugClass', index: 'drugClass', align: 'center', width: 40, hidden: true},
  871. {name: 'supplyCode', index: 'supplyCode', align: 'center', width: 40, hidden: true},
  872. {name: 'actOrderNo', index: 'actOrderNo', align: 'center', width: 40, hidden: true},
  873. {name: 'selfFlag', index: 'selfFlag', align: 'center', width: 40, hidden: true},
  874. {name: 'separateFlag', index: 'separateFlag', align: 'center', width: 40, hidden: true},
  875. {name: 'supriceFlag', index: 'supriceFlag', align: 'center', width: 40, hidden: true},
  876. {name: 'drugFlag', index: 'drugFlag', align: 'center', width: 40, hidden: true},
  877. {name: 'paySelf', index: 'paySelf', align: 'center', width: 40, hidden: true},
  878. {name: 'groupNo', index: 'groupNo', align: 'center', width: 40, hidden: true},
  879. {name: 'serial', index: 'serial', align: 'center', width: 40, hidden: true},
  880. {name: 'doctorName', index: 'doctorName', align: 'center', width: 40, hidden: true},
  881. {name: 'pageClass', index: 'pageClass', align: 'center', width: 40, hidden: true},
  882. {name: 'chargeCode', index: 'chargeCode', align: 'center', width: 40, hidden: true},
  883. {name: 'kssj', index: 'kssj', align: 'center', width: 40, hidden: true},
  884. {name: 'jssj', index: 'jssj', align: 'center', width: 40, hidden: true},
  885. {name: 'ledgerSn', index: 'ledgerSn', align: 'center', width: 40, hidden: true},
  886. {name: 'detailSn', index: 'detailSn', align: 'center', width: 40, hidden: true},
  887. {
  888. name: 'nationalCode', index: 'nationalCode', align: 'left', width: 60,
  889. formatter: function (cellvalue, options, rowObject) {
  890. return cellvalue == null ? "-" : cellvalue;
  891. }
  892. }
  893. ],
  894. jsonReader: {
  895. root: "data", repeatitems: false
  896. },
  897. beforeEditCell:function(rowid, cellname, v, iRow, iCol){
  898. lastrow = iRow;
  899. lastcell = iCol;
  900. },
  901. afterSaveCell: function (rowid, celname, value, iRow, iCol) {
  902. if(celname === 'manuNo'){
  903. return true
  904. }
  905. let data = $("#tb_detail_table").getRowData(rowid);
  906. $("#tb_detail_table").setCell(rowid, iCol, value);
  907. if (value == null || value == 0) {
  908. //重置
  909. $("#tb_detail_table").setCell(rowid, "amount", data.oldAmount);
  910. $("#tb_detail_table").setCell(rowid, "totalMoney", keepTwoDecimal(data.retprice * data.oldAmount));
  911. } else {
  912. $("#tb_detail_table").setCell(rowid, "amount", 0);
  913. $("#tb_detail_table").setCell(rowid, "totalMoney", 0);
  914. }
  915. return true
  916. },
  917. loadComplete: function (res) { //加载完成(初始加载),回调函数
  918. if (res == '401' || res == 401) {
  919. window.location.href = '/thmz/login/view';
  920. return;
  921. }
  922. if (res.code == -1) {
  923. errorMesage(res);
  924. }else{
  925. if(!isEmpty(res.data) && res.data.length > 0){
  926. $("#tb_detail_table").setSelection(1, false)
  927. }
  928. }
  929. }
  930. });
  931. $("#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>");
  932. $("#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>");
  933. if ($("#submitFlagSearch").val() === '1') {
  934. $("#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>");
  935. }else{
  936. $("#t_tb_detail_table").append("<button class='registration-no-color-foot-button' title='保存批号' id='manu_save_mx' style='color: green;margin-left: 10px;'><i class='fa fa-floppy-o'></i></button>");
  937. }
  938. $("#manu_save_mx").click(function (t) {
  939. var obj = $('#tb_detail_table');
  940. var rowIds = obj.getDataIDs();
  941. var arrayData = new Array();
  942. if (rowIds.length > 0) {
  943. for (var i = 0; i < rowIds.length; i++) {
  944. let rowDate = obj.getRowData(rowIds[i]);
  945. if(!isEmpty(rowDate.manuNo)){
  946. arrayData.push({
  947. actOrderNo: rowDate.actOrderNo,
  948. chargeCode: rowDate.chargeCode,
  949. inpatientNo: rowDate.inpatientNo,
  950. orderDate: rowDate.occTime,
  951. manuNo: rowDate.manuNo
  952. });
  953. }
  954. }
  955. }
  956. request({
  957. url: '/modifyManuNoZy',
  958. method: 'POST',
  959. data: JSON.stringify(arrayData)
  960. }).then((res) => {
  961. successMesage(res);
  962. initButtonChange("#qld", 0);
  963. });
  964. });
  965. }
  966. /**
  967. * 获取时间选择器的时间数组
  968. * @returns {string[]}
  969. */
  970. function getRePortRangeArr() {
  971. var rePortRange = $('#reportrange span').html();
  972. var rePortRangeArr = rePortRange.split(" - ");
  973. rePortRangeArr[0] = rePortRangeArr[0] + " 00:00:00"
  974. rePortRangeArr[1] = rePortRangeArr[1] + " 23:59:59"
  975. return rePortRangeArr;
  976. }
  977. /**
  978. * 构建列表查询参数
  979. * @param params
  980. */
  981. function queryParams(params) {
  982. var rePortRangeArr = getRePortRangeArr();
  983. let wardCode;
  984. if ($("#wardCode").val() == null) {
  985. wardCode = null;
  986. } else {
  987. wardCode = $("#wardCode").val()[0]
  988. }
  989. var temp = {
  990. submitBeginDate: rePortRangeArr[0],
  991. submitEndDate: rePortRangeArr[1],
  992. wardCode: wardCode,
  993. pageNo: $("#pageNoSearch").val() == "" ? null : $("#pageNoSearch").val(),
  994. groupNo: groupNo,
  995. submitFlag: $("#submitFlagSearch").val()
  996. };
  997. if (groupNo !== '81') {
  998. temp.pageClass = $("#pageClassSearch").val() == "" ? null : $("#pageClassSearch").val();
  999. }
  1000. return temp;
  1001. };
  1002. /**
  1003. * 清空查询条件
  1004. */
  1005. function cleanParams() {
  1006. $("#pageNoSearch").val(null);
  1007. $("#pageClassSearch").val(null);
  1008. $("#wardCode").selectpicker('val', '');
  1009. if (groupNo === '81') {
  1010. $("#submitFlagSearch").val(3);
  1011. } else {
  1012. $("#submitFlagSearch").val(1);
  1013. }
  1014. $("#submitFlagSearch").selectpicker('refresh');
  1015. $("#wardCode").removeAttr('disabled');
  1016. $("#pageNoSearch").removeAttr('disabled');
  1017. $("#pageClassSearch").removeAttr('disabled');
  1018. $("#btn_query").removeAttr('disabled');
  1019. $("#btn_clean").removeAttr('disabled');
  1020. $("#wardCode").selectpicker('refresh');
  1021. $("#pageClassSearch").selectpicker('refresh');
  1022. $("#barCode").attr('disabled', true);
  1023. }
  1024. /**
  1025. * 打印西药汇总单
  1026. */
  1027. function printXyCount(flag) {
  1028. let html = '';
  1029. let totalMoney = 0;
  1030. let title = (pageClass == "T" || pageClass == "HT") ? '病房退药单' : '病房汇总领药单(' + $("#pageClassSearch").find("option:selected").text() + ')';
  1031. $(".title").text(flag == 0?title+"(重打)":title);
  1032. $(".groupName").text(groupNo == 71 ? '门诊西药房' : '住院药房');
  1033. let w_code = $("#wardCode").find("option:selected").text();
  1034. $(".wardName").text(w_code.substring(0, w_code.lastIndexOf("(")));
  1035. $(".pageNo").text($("#pageNoSearch").val() == '' ? pageNos : $("#pageNoSearch").val());
  1036. $(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
  1037. $('.sjh').remove();
  1038. let datas = getJQAllData("tb_summarizing_table");
  1039. for (var i = 0; i < datas.length; i++) {
  1040. let data = datas[i];
  1041. let handle = data.fybz;
  1042. if (pageClass === "T" || pageClass === "HT") {
  1043. if (data.tybz == 0) {
  1044. handle = '退药'
  1045. } else {
  1046. handle = '拒退'
  1047. }
  1048. }
  1049. html += '<tr class="sjh">';
  1050. html += '<td class="xtd" style="text-align: center;">' + handle + '</td>';
  1051. html += '<td class="xtd" style="text-align: center;">' + data.chargeCode + '</td>';
  1052. html += '<td class="xtd" style="text-align: center;">' + data.location + '</td>';
  1053. html += '<td class="xtd" style="text-align: left;">' + data.drugName + '</td>';
  1054. html += '<td class="xtd" style="text-align: left;">' + data.specification + '</td>';
  1055. html += '<td class="xtd" style="text-align: center;">' + data.amount + '</td>';
  1056. html += '<td class="xtd" style="text-align: left;">' + data.manufactory + '</td>';
  1057. html += '<td class="xtd" style="text-align: center;">' + data.retprice + '</td>';
  1058. html += '<td class="xtd" style="text-align: center;">' + data.totalMoney + '</td>';
  1059. html += '</tr>';
  1060. totalMoney += parseFloat(data.totalMoney);
  1061. }
  1062. html += '<tr class="sjh">';
  1063. html += '<td colspan="8" style="text-align: right;font-weight: 700;">总计:' + keepTwoDecimal(parseFloat(totalMoney)) + '</td>';
  1064. html += '<td colspan="1"></td>';
  1065. html += '</tr>';
  1066. html += '<tr class="sjh"><td colspan="9" style="border: transparent !important;">&nbsp</td></tr>';
  1067. html += '<tr class="sjh">';
  1068. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">调配人:</td>';
  1069. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">核发人:</td>';
  1070. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">领药人:</td>';
  1071. html += '</tr>';
  1072. $("#hzdy_table").append(html);
  1073. print("hzdy_table_div");
  1074. }
  1075. /**
  1076. * 打印草药处方
  1077. */
  1078. function printCyCount(flag) {
  1079. let html = '';
  1080. let datas = getJQAllData("tb_summarizing_table");
  1081. let w_code = $("#wardCode").find("option:selected").text();
  1082. $(".wardName").text(w_code.substring(0, w_code.lastIndexOf("(")));
  1083. $(".pageNo").text($("#pageNoSearch").val());
  1084. $(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
  1085. $('.sjh').remove();
  1086. for (var i = 0; i < datas.length; ) {
  1087. let data = datas[i];
  1088. if(i === 0){
  1089. $(".inpatientNo").text(data.inpatientNo);
  1090. $(".name").text(data.name);
  1091. $(".bedNo").text(data.bedNo);
  1092. }
  1093. html += '<tr class="sjh">';
  1094. html += '<td class="xtd" style="text-align: center;">' + data.drugName + '</td>';
  1095. html += '<td class="xtd" style="text-align: center;">' + data.specification + '</td>';
  1096. html += '<td class="xtd" style="text-align: center;">' + data.minAmount + '</td>';
  1097. html += '<td class="xtd" style="text-align: left;">' + '' + '</td>';
  1098. if(i !== datas.length-1){
  1099. html += '<td class="xtd" style="text-align: center;">' + datas[i+1].drugName + '</td>';
  1100. html += '<td class="xtd" style="text-align: center;">' + datas[i+1].specification + '</td>';
  1101. html += '<td class="xtd" style="text-align: center;">' + datas[i+1].minAmount + '</td>';
  1102. html += '<td class="xtd" style="text-align: left;">' + '' + '</td>';
  1103. html += '</tr>';
  1104. }
  1105. i+=2;
  1106. }
  1107. $("#trContent").append(html);
  1108. let totalContent = '共 '+datas[0].amount+' 剂,'+datas[0].orderJe+' 元/剂,院内代煎 '+datas[0].quantityDj+' 剂,'+
  1109. '药费总金额:'+datas[0].orderJe*datas[0].amount+',代煎费:'+datas[0].quantityDj*datas[0].orderJeDj+'。';
  1110. let fyfsContent = '每天 '+datas[0].cyMtjs+' 剂,'+datas[0].cyJssm+datas[0].cyJsl+'ml,煮取'+datas[0].cyZql+'ml,复煎 '+datas[0].cyFj+' 次,'+
  1111. '分 '+datas[0].cyFfcs+' 次,'+datas[0].fysmContent+'。';
  1112. $(".total").text(totalContent);
  1113. $(".fyfs").text(fyfsContent);
  1114. $(".doctorName").text(datas[0].doctorName);
  1115. print("zydy_table_div");
  1116. }
  1117. /**
  1118. * 打印汇总单
  1119. * @param flag 0:手动打印 1:保存后自动打印
  1120. */
  1121. function printCount(flag) {
  1122. if(groupNo === '81'){
  1123. printCyCount(flag);
  1124. }else{
  1125. printXyCount(flag);
  1126. }
  1127. }
  1128. /**
  1129. *打印明细单
  1130. * @param flag 0:手动打印 1:保存后自动打印
  1131. */
  1132. function getPrintDetail(flag) {
  1133. let datas = getJQAllData("tb_detail_table");
  1134. if (pageClass == "5" || pageClass == "6") {
  1135. $.ajax({
  1136. type: "GET",
  1137. url: '/thmz/getOralPrintData',
  1138. contentType: "application/json;charset=UTF-8",
  1139. dataType: "json",
  1140. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1141. data: {
  1142. pageNo: hzFlag === 0 ? pageNo : pageNos,
  1143. pageClass: pageClass,
  1144. submitFlag: $("#submitFlagSearch").val()
  1145. },
  1146. success: function (res) {
  1147. if (res == '401' || res == 401) {
  1148. window.location.href = '/thmz/login/view';
  1149. return;
  1150. }
  1151. if (res.code == 0) {
  1152. for (let i = 0; i < res.data.list.length; i++) {
  1153. let byjDate = res.data.list[i];
  1154. byjDate["oldAmount"] = byjDate["amount"];
  1155. let flag = true;
  1156. for (let j = 0; j < datas.length; j++) {
  1157. let data = datas[j];
  1158. //发药数量为0,删减汇总数量
  1159. if (byjDate["inpatientNo"] == data["inpatientNo"]
  1160. && byjDate["chargeCode"] == data["chargeCode"] && byjDate["serial"] == data["serial"]) {
  1161. flag = false;
  1162. if (data["amount"] == 0) {
  1163. byjDate["amount"] -= parseFloat(data["oldAmount"])
  1164. }
  1165. }
  1166. }
  1167. if (flag) {
  1168. res.data.list.splice(i, 1);
  1169. i--;
  1170. }
  1171. }
  1172. for (let i = 0; i < res.data.byjList.length; i++) {
  1173. let byjDate = res.data.byjList[i];
  1174. byjDate["oldAmount"] = byjDate["amount"];
  1175. let flag = true;
  1176. for (let j = 0; j < datas.length; j++) {
  1177. let data = datas[j];
  1178. //发药数量为0,删减汇总数量
  1179. if (byjDate["inpatientNo"] == data["inpatientNo"]
  1180. && byjDate["chargeCode"] == data["chargeCode"] && byjDate["serial"] == data["serial"]) {
  1181. flag = false;
  1182. if (data["amount"] == 0) {
  1183. byjDate["amount"] -= parseFloat(data["oldAmount"])
  1184. }
  1185. }
  1186. }
  1187. if (flag) {
  1188. res.data.byjList.splice(i, 1);
  1189. i--;
  1190. }
  1191. }
  1192. printDetail(res.data, 1, flag)
  1193. } else {
  1194. errorMesage(res);
  1195. }
  1196. }
  1197. });
  1198. } else {
  1199. printDetail(datas, 0, flag);
  1200. }
  1201. }
  1202. function printDetail(datas, kfFlag, flag) {
  1203. if (kfFlag == 1) {
  1204. if (flag == 0) {
  1205. printDetailHtml(datas.list.concat(datas.byjList), flag);
  1206. } else if (flag == 1) {
  1207. if (datas.list.length > 0) {
  1208. printDetailHtml(datas.list, flag);
  1209. }
  1210. if (datas.byjList.length > 0) {
  1211. printDetailHtml(datas.byjList, flag);
  1212. }
  1213. }
  1214. } else {
  1215. printDetailHtml(datas, flag);
  1216. }
  1217. }
  1218. /**
  1219. *
  1220. */
  1221. function printDetailHtml(datas, flag) {
  1222. let html = '';
  1223. let totalMoney = 0;
  1224. let oldInpatientNo = '';//记录上一个病人
  1225. let title = '病房明细领药单(' + $("#pageClassSearch").find("option:selected").text() + ')';
  1226. if (pageClass == '5') {
  1227. title = '长期口服领药单';
  1228. $(".wardName").text(datas[0].wardName);
  1229. } else if (pageClass == '6') {
  1230. title = '临时口服领药单';
  1231. $(".wardName").text(datas[0].wardName);
  1232. } else {
  1233. let w_code = $("#wardCode").find("option:selected").text();
  1234. $(".wardName").text(w_code.substring(0, w_code.lastIndexOf("(")));
  1235. }
  1236. if (flag == 1 && datas[0].byjFlag == 1) {
  1237. title += '(摆药机)'
  1238. } else if (flag == 0) {
  1239. title += '(重打)'
  1240. }
  1241. $(".title").text(title);
  1242. $(".groupName").text(groupNo == 71 ? '门诊西药房' : '住院药房');
  1243. $(".pageNo").text(pageNo);
  1244. $(".printDate").html(format(new Date(), "yyyy-MM-dd HH:mm"));
  1245. $('.sjh').remove();
  1246. let minOccTime = '';
  1247. for (var i = 0; i < datas.length; i++) {
  1248. let data = datas[i];
  1249. if (pageClass != "A" && pageClass != "5" && (oldInpatientNo == '' || oldInpatientNo != data.inpatientNo)) {//临时口服,统领单
  1250. html += '<tr class="sjh">';
  1251. html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">年龄:' + getBirthSlot(data.birthDate, new Date()) + '</td>';
  1252. html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">性别:' + getSex(data.sex) + '</td>';
  1253. html += '<td colspan="2" class="xtd" style="text-align: left;border: transparent !important;">身份:' + data.responceName + '</td>';
  1254. html += '<td colspan="7" class="xtd" style="text-align: left;border: transparent !important;">诊断:';
  1255. if (data.admissDiagStr != null) {
  1256. html += data.admissDiagStr
  1257. }
  1258. html += '</td>';
  1259. html += '</tr>';
  1260. }
  1261. html += '<tr class="sjh">';
  1262. if (pageClass == "5") {
  1263. $(".zyh").hide();
  1264. if(oldInpatientNo == '' || oldInpatientNo != data.inpatientNo){
  1265. html += '<td class="xtd" style="text-align: center;">' + data.name + '</td>';
  1266. }else{
  1267. html += '<td class="xtd" style="text-align: center;border:0;"></td>';
  1268. }
  1269. } else {
  1270. $(".zyh").show();
  1271. html += '<td class="xtd" style="text-align: center;">' + data.inpatientNo + '</td>';
  1272. html += '<td class="xtd" style="text-align: center;">' + data.name + '</td>';
  1273. }
  1274. html += '<td class="xtd" style="text-align: center;">' + data.bedNo + '</td>';
  1275. html += '<td class="xtd" style="text-align: left;">' + data.drugName;
  1276. oldInpatientNo = data.inpatientNo;
  1277. if (pageClass == '5' || pageClass == '6') {
  1278. html += '(' + data.manufactory + ')'
  1279. }
  1280. +'</td>';
  1281. html += '<td class="xtd" style="text-align: center;">' + data.specification + '</td>';
  1282. html += '<td class="xtd" style="text-align: center;">' + data.oldAmount + '</td>';
  1283. html += '<td class="xtd" style="text-align: center;">' + data.amount + '</td>';
  1284. if (pageClass == "A") {//医技
  1285. $(".yjmxtd").show();
  1286. $(".kfmxtd").hide();
  1287. $(".kssj").hide();
  1288. $(".jssj").hide();
  1289. html += '<td class="xtd" style="text-align: center;">' + data.retprice + '</td>';
  1290. html += '<td class="xtd" style="text-align: center;">' + data.totalMoney + '</td>';
  1291. html += '<td class="xtd" style="text-align: center;">' + data.occTime + '</td>';
  1292. } else if (pageClass == "5" || pageClass == "6") {//口服单
  1293. $(".kfmxtd").show();
  1294. $(".yjmxtd").hide();
  1295. $(".gyfs").hide();
  1296. if (minOccTime == '' || minOccTime > data.occTime) {
  1297. minOccTime = data.occTime
  1298. }
  1299. html += '<td class="xtd" style="text-align: center;">' + data.frequCode + '</td>';
  1300. html += '<td class="xtd" style="text-align: center;">' + data.dose + '</td>';
  1301. html += '<td class="xtd" style="text-align: center;">' + data.doseUnit + '</td>';
  1302. html += '<td class="xtd" style="text-align: left;">' + data.instruction + '</td>';
  1303. html += '<td class="xtd" style="text-align: center;">' + data.kssj + '</td>';
  1304. html += '<td class="xtd" style="text-align: center;">' + data.jssj + '</td>';
  1305. html += '<td class="xtd" style="text-align: center;">' + data.doctorNameStr + '</td>';
  1306. } else {
  1307. $(".kfmxtd").show();
  1308. $(".yjmxtd").hide();
  1309. $(".kssj").hide();
  1310. $(".jssj").hide();
  1311. html += '<td class="xtd" style="text-align: center;">' + data.frequCode + '</td>';
  1312. html += '<td class="xtd" style="text-align: center;">' + data.dose + '</td>';
  1313. html += '<td class="xtd" style="text-align: center;">' + data.doseUnit + '</td>';
  1314. html += '<td class="xtd" style="text-align: left;">' + data.instruction + '</td>';
  1315. html += '<td class="xtd" style="text-align: center;">' + data.supplyName + '</td>';
  1316. html += '<td class="xtd" style="text-align: center;">' + data.doctorNameStr + '</td>';
  1317. }
  1318. html += '<td class="xtd" style="text-align: center;">' + (isEmpty(data.manuNo)?"":data.manuNo) + '</td>';
  1319. html += '</tr>';
  1320. totalMoney += parseFloat(data.totalMoney);
  1321. }
  1322. if (pageClass == "5" || pageClass == "6") {//口服单
  1323. $(".kssj").show();
  1324. $(".jssj").show();
  1325. var arr1 = minOccTime.split(" ");
  1326. var sdate = arr1[0].split('-');
  1327. var kssj = new Date(sdate[0], sdate[1] - 1, sdate[2]);
  1328. $(".kssj").text(format(kssj, "yy/MM/dd"));
  1329. kssj.setTime(kssj.getTime() + 24 * 60 * 60 * 1000);
  1330. $(".jssj").text(format(kssj, "yy/MM/dd"));
  1331. }
  1332. html += '<tr class="sjh"><td colspan="13" style="border: transparent !important;">&nbsp</td></tr>';
  1333. html += '<tr class="sjh">';
  1334. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">调配人:<br><br>时间:</td>';
  1335. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">核发人:<br><br>时间:</td>';
  1336. html += '<td colspan="3" style="text-align: left;font-weight: 700;border: transparent !important;">领药人:<br><br>时间:</td>';
  1337. html += '<td colspan="4" style="text-align: left;font-weight: 700;border: transparent !important;">护士:<br><br>时间:</td>';
  1338. html += '</tr>';
  1339. $("#mxdy_table").append(html);
  1340. print("mxdy_table_div");
  1341. }
  1342. /**
  1343. * 打印标签
  1344. * @param flag 当前是否为明细栏
  1345. * @param isByj 是否使用摆药机
  1346. */
  1347. function printLabelData(flag, isByj) {
  1348. if(groupNo === '81'){
  1349. printZyLabelData();
  1350. }else{
  1351. printXyLabelData(flag, isByj);
  1352. }
  1353. }
  1354. /**
  1355. * 西药打印标签
  1356. * @param flag 当前是否为明细栏
  1357. * @param isByj 是否使用摆药机
  1358. */
  1359. function printXyLabelData(flag, isByj) {
  1360. $.ajax({
  1361. type: "GET",
  1362. url: '/thmz/getLabelPrintDatas',
  1363. contentType: "application/json;charset=UTF-8",
  1364. dataType: "json",
  1365. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1366. data: {
  1367. pageNo: hzFlag === 0 ? pageNo : pageNos,
  1368. submitFlag: $("#submitFlagSearch").val(),
  1369. isByj: isByj ? isByj : 0
  1370. },
  1371. success: function (res) {
  1372. if (res == '401' || res == 401) {
  1373. window.location.href = '/thmz/login/view';
  1374. return;
  1375. }
  1376. if (res.code == 0) {
  1377. if (res.data.length == 0) {
  1378. warningMesageSimaple("没有需要打印的口服标签");
  1379. return;
  1380. }
  1381. printLabel(res.data, flag);
  1382. successMesage(res);
  1383. } else {
  1384. errorMesage(res);
  1385. }
  1386. }
  1387. });
  1388. }
  1389. /**
  1390. * 中药打印标签
  1391. * @param flag 当前是否为明细栏
  1392. * @param isByj 是否使用摆药机
  1393. */
  1394. function printZyLabelData() {
  1395. var ids = $('#tb_summarizing_table').getDataIDs();
  1396. let data = $("#tb_summarizing_table").getRowData(ids[0]);
  1397. $('#zydybqform')[0].reset();
  1398. if (nfdPrintIndex == null) {
  1399. return errorMesageSimaple('未设置内服袋打印机,请在发药参数设置中设置');
  1400. }
  1401. let w_code = $("#wardCode").find("option:selected").text();
  1402. $('#zydyNameLabel').val(data.name);
  1403. $('#bedNoLabel').val(data.bedNo);
  1404. $('#wardLabel').val(w_code.substring(0, w_code.lastIndexOf("(")));
  1405. $('#dyslLabel').val(data.amount*2);
  1406. $('#dateLabel').val(format(new Date(), "MM-dd"));
  1407. $('#zydybqModal').modal();
  1408. }
  1409. /**
  1410. * 打印标签
  1411. */
  1412. function printLabel(datas, isMx) {
  1413. LODOP = getLodop();
  1414. LODOP.PRINT_INITA(6, 0, "80mm", "60mm", "住院患者内服袋打印");
  1415. LODOP.SET_PRINT_PAGESIZE(1, "80mm", "60mm", "");
  1416. //设置打印机
  1417. LODOP.SET_PRINTER_INDEX(nfdPrintIndex);
  1418. LODOP.SET_PRINT_STYLE("FontSize", 10); //字体大小
  1419. LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
  1420. LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
  1421. var strStyle = "<style>table,td,th {border-width: 1px;" +
  1422. "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 13px}.xtd{border: 1px solid black;}</style>";
  1423. let html = '';
  1424. let flag = true;//新的一张标签
  1425. let number = 0;//计数,一张标签只存放五种药品
  1426. let tableDatas = getJQAllData(isMx == 1 ? "tb_detail_table" : "tb_summarizing_table");
  1427. $('.sjh').remove();
  1428. for (var i = 0; i < datas.length; i++) {
  1429. let data = datas[i];
  1430. for (let j = 0; j < tableDatas.length; j++) {
  1431. if (tableDatas[j].fybz.indexOf("发药") != -1 && tableDatas[j].chargeCode == data.chargeCode
  1432. && tableDatas[j].serial == data.serial && (tableDatas[j].occTime == data.occTime || isMx == 0)) {
  1433. if ((i > 0 && (data.inpatientNo != datas[i - 1].inpatientNo
  1434. || data.occTime != datas[i - 1].occTime)) || number == 5) {//服药时间或者病人不同另起一页,超过五种药品另起一页
  1435. if (html != '') {
  1436. for (let j = 0; j < 5 - number; j++) {
  1437. html += '<tr class="sjh">';
  1438. html += '<td class="xtd">&nbsp;</td>';
  1439. html += '<td class="xtd"></td>';
  1440. html += '<td class="xtd"></td>';
  1441. html += '<td class="xtd"></td>';
  1442. html += '<td class="xtd"></td>';
  1443. html += '</tr>';
  1444. }
  1445. $("#bqdy_table").append(html);
  1446. LODOP.ADD_PRINT_HTM("1mm", "3mm", "RightMargin:1mm", "BottomMargin:3mm", strStyle + document.getElementById("bqdy_table_div").innerHTML);
  1447. LODOP.NewPageA();
  1448. html = '';
  1449. number = 0;
  1450. }
  1451. flag = true;
  1452. } else if (i != 0) {
  1453. flag = false;
  1454. }
  1455. if (flag) {
  1456. $('.sjh').remove();
  1457. $(".inpatientNo").text($.trim(data.inpatientNo));
  1458. $(".bedNo").text($.trim(data.bedNo));
  1459. $(".name").text($.trim(data.name));
  1460. $(".age").text(getBirthSlot(data.birthDate, new Date()));
  1461. $(".sex").text(getSex(data.sex));
  1462. $(".occTime").text(format(data.occTime, "yyyy/MM/dd HH:mm"));
  1463. }
  1464. html += '<tr class="sjh">';
  1465. html += '<td class="xtd" style="text-align: left;">' + data.drugName + '</td>';
  1466. html += '<td class="xtd" style="text-align: center;">' + data.dose + data.doseUnit + '</td>';
  1467. html += '<td class="xtd" style="text-align: center;">' + data.specification + '</td>';
  1468. html += '<td class="xtd" style="text-align: center;">' + data.dosage.replace(".0", "") + '</td>';
  1469. html += '<td class="xtd" style="text-align: center;">' + data.amount + '</td>';
  1470. html += '</tr>';
  1471. number++;
  1472. break;
  1473. }
  1474. }
  1475. }
  1476. if (html != '') {
  1477. for (let j = 0; j < 5 - number; j++) {
  1478. html += '<tr class="sjh">';
  1479. html += '<td class="xtd">&nbsp;</td>';
  1480. html += '<td class="xtd"></td>';
  1481. html += '<td class="xtd"></td>';
  1482. html += '<td class="xtd"></td>';
  1483. html += '<td class="xtd"></td>';
  1484. html += '</tr>';
  1485. }
  1486. $("#bqdy_table").append(html);
  1487. LODOP.ADD_PRINT_HTM("1mm", "3mm", "RightMargin:1mm", "BottomMargin:3mm", strStyle + document.getElementById("bqdy_table_div").innerHTML);
  1488. LODOP.PRINT();
  1489. //LODOP.PRINT_DESIGN();
  1490. }
  1491. }
  1492. /**
  1493. * 打印报表
  1494. */
  1495. function print(div_id) {
  1496. setDefaultPrint();
  1497. LODOP = getLodop();
  1498. LODOP.PRINT_INITA(6, 0, "221mm", "93mm", "请领单打印");
  1499. LODOP.SET_PRINT_PAGESIZE(1, "221mm", "93mm", "");
  1500. //设置默认打印机
  1501. LODOP.SET_PRINTER_INDEX(defaultPrintIndex);
  1502. LODOP.SET_PRINT_STYLE("FontSize", 11); //字体大小
  1503. LODOP.SET_PRINT_STYLEA(0, "ItemType", 2);
  1504. var strStyle = "<style>table,td,th {border-width: 1px;padding-bottom:0px;" +
  1505. "border-style: solid;border-collapse: collapse;table-layout:fixed;word-wrap:break-word;font-size: 13}.xtd{border: 1px solid black;}</style>";
  1506. LODOP.ADD_PRINT_HTM("0mm", "0mm", "RightMargin:0mm", "BottomMargin:0mm", strStyle + document.getElementById(div_id).innerHTML);
  1507. LODOP.PRINT();
  1508. //LODOP.PREVIEW();
  1509. //LODOP.PRINT_DESIGN();
  1510. }
  1511. /**
  1512. * 保存
  1513. * @param flag 0汇总打印 1明细打印
  1514. */
  1515. function save(flag) {
  1516. if (!confirm("确定要对当前药单进行发药处理吗?")) {
  1517. return;
  1518. }
  1519. if (groupNo === '81') {
  1520. sendZy();
  1521. } else {
  1522. $("#"+(flag == 0 ? "tb_summarizing_table" : "tb_detail_table")).jqGrid("saveCell",lastrow,lastcell);//当前单元格退出编辑模式
  1523. sendXy(flag);
  1524. }
  1525. }
  1526. /**
  1527. * 中药确认发药
  1528. * @param flag
  1529. */
  1530. function sendZy() {
  1531. request({
  1532. url: '/sendZyWard',
  1533. method: 'GET',
  1534. data: {pageNo: pageNo,isTy: 0}
  1535. }).then((res) => {
  1536. successMesage(res);
  1537. initButtonChange("#qld", 0);
  1538. });
  1539. }
  1540. /**
  1541. * 西药确认发药
  1542. * @param flag
  1543. */
  1544. function sendXy(flag) {
  1545. var tableId = (flag == 0 ? "tb_summarizing_table" : "tb_detail_table");
  1546. var obj = $("#" + tableId);
  1547. var rowIds = obj.getDataIDs();
  1548. var arrayData = new Array();
  1549. if (rowIds.length > 0) {
  1550. for (var i = 0; i < rowIds.length; i++) {
  1551. if(obj.getRowData(rowIds[i]).fybz.indexOf('暂缓') == -1){
  1552. arrayData.push(obj.getRowData(rowIds[i]));
  1553. }
  1554. }
  1555. }
  1556. $(flag == 0 ? "#collect_save" : "#detail_save").attr('disabled', true);
  1557. $.ajax({
  1558. type: "POST",
  1559. url: '/thmz/sendWard',
  1560. contentType: "application/json;charset=UTF-8",
  1561. dataType: "json",
  1562. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1563. data: JSON.stringify({
  1564. pageNo: hzFlag === 0 ? pageNo : pageNos,
  1565. yzYpZyOrders: arrayData
  1566. }),
  1567. success: function (res) {
  1568. $(flag == 0 ? "#collect_save" : "#detail_save").attr('disabled', false);
  1569. if (res == '401' || res == 401) {
  1570. window.location.href = '/thmz/login/view';
  1571. return;
  1572. }
  1573. if (res.code == 0) {
  1574. successMesage(res);
  1575. if (flag == 0) {
  1576. printCount(1);
  1577. } else {
  1578. getPrintDetail(1);
  1579. }
  1580. if (!confirm("是否需要打印当前药单的口服标签?")) {
  1581. if (res.data) {
  1582. printLabelData(flag, 1);//口服药单,并使用摆药机
  1583. request({
  1584. url: '/savePrescriptionByj',
  1585. method: 'POST',
  1586. data: JSON.stringify(res.data)
  1587. }).then((res) => {
  1588. successMesage(res);
  1589. });
  1590. }
  1591. }
  1592. initButtonChange("#qld", 0);
  1593. } else {
  1594. errorMesage(res);
  1595. }
  1596. }
  1597. });
  1598. }
  1599. /**
  1600. * 撤销提交
  1601. * @param pageNo 药单号
  1602. */
  1603. function cancelSubmit(pageNo, wardName, pageClass) {
  1604. if (!confirm("确定要撤销【" + wardName + "】提交的(" + pageNo + ")药单吗?")) {
  1605. return;
  1606. }
  1607. if(groupNo === '81'){
  1608. cancelZySubmit(pageNo)
  1609. }else{
  1610. cancelXySubmit(pageNo, pageClass)
  1611. }
  1612. }
  1613. /**
  1614. * 中药单撤销
  1615. * @param pageNo
  1616. */
  1617. function cancelZySubmit(pageNo) {
  1618. request({
  1619. url: '/sendZyWard',
  1620. method: 'GET',
  1621. data: {pageNo: pageNo,isTy: 1}
  1622. }).then((res) => {
  1623. successMesage(res);
  1624. initTbTable();
  1625. });
  1626. }
  1627. /**
  1628. * 西药单撤销
  1629. * @param pageNo
  1630. * @param wardName
  1631. * @param pageClass
  1632. */
  1633. function cancelXySubmit(pageNo, pageClass) {
  1634. $.ajax({
  1635. type: "GET",
  1636. url: '/thmz/cancelWardPrescriptionSubmit',
  1637. data: {
  1638. pageNo: pageNo,
  1639. pageClass: pageClass
  1640. },
  1641. contentType: "application/json;charset=UTF-8",
  1642. dataType: "json",
  1643. headers: {'Accept': 'application/json', 'Authorization': 'Bearer ' + localStorage.getItem("token")},
  1644. success: function (res) {
  1645. if (res == '401' || res == 401) {
  1646. window.location.href = '/thmz/login/view';
  1647. return;
  1648. }
  1649. if (res.code == 0) {
  1650. successMesage(res);
  1651. initTbTable();
  1652. } else {
  1653. errorMesage(res);
  1654. }
  1655. }
  1656. });
  1657. }