appealExamine.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382
  1. const $ = require('jquery');
  2. require("../css/appealExamine.less");
  3. require('./modal.js');
  4. require('jquery-templates');
  5. const { api } = require('./api.js')
  6. const { post, getCookie, getUrlArgObjectNew, getLogoParam, listenScroll, exportTimeLimit } = require('./utils.js')
  7. require('./../resource/jquery-ui/jquery-ui.min.js');
  8. require('./../resource/jquery-ui/jquery-ui.min.css');
  9. listenScroll()
  10. let srcUrl = $("#contentIframe", parent.document).attr("src")
  11. const id = getUrlArgObjectNew("id", srcUrl) || "";
  12. const hospitalId = getUrlArgObjectNew("hospitalId", srcUrl) || "";
  13. const behospitalCode = getUrlArgObjectNew("behospitalCode", srcUrl) || "";
  14. const casesEntryId = getUrlArgObjectNew("casesEntryId", srcUrl) || "";
  15. const qcresultDetailId = getUrlArgObjectNew("qcresultDetailId", srcUrl) || "";
  16. const appealOperationType = getUrlArgObjectNew("appealOperationType", srcUrl) || "";
  17. const form = getUrlArgObjectNew("form", srcUrl) || "";
  18. const page = getUrlArgObjectNew("page", srcUrl) || "";
  19. let behosDateStart = getUrlArgObjectNew("behosDateStart", srcUrl) || ""
  20. let behosDateEnd = getUrlArgObjectNew("behosDateEnd", srcUrl) || ""
  21. let deptId = getUrlArgObjectNew("deptId", srcUrl) || ""
  22. let deptName = getUrlArgObjectNew("deptName", srcUrl) || ""
  23. let moduleName = getUrlArgObjectNew("moduleName", srcUrl) || ""
  24. let name = getUrlArgObjectNew("name", srcUrl) || ""
  25. let operationType = getUrlArgObjectNew("operationType", srcUrl) || ""
  26. let state = getUrlArgObjectNew("state", srcUrl) || ""
  27. let patientName = getUrlArgObjectNew("patientName", srcUrl) || ""
  28. let appealInfo, appealExamineRecordDTOList, auditNumber;
  29. (function () {
  30. getApprovedView()
  31. if (form == 2) {
  32. $(".bot").hide();
  33. $('.appealExamine h2').html('申诉信息 > 申诉审核 > 查看');
  34. } else if (form == 3) {
  35. $(".bot").hide();
  36. $('.appealExamine h2').html('申诉信息 > 申诉记录 > 查看');
  37. }
  38. })();
  39. //获取审核详情
  40. function getApprovedView() {
  41. const param = {
  42. id: id,
  43. behospitalCode: behospitalCode,
  44. casesEntryId: casesEntryId,
  45. hospitalId: hospitalId,
  46. qcresultDetailId: qcresultDetailId,
  47. }
  48. return post(api.getApprovedView, param).then(res => {
  49. if (res.data.code == '0') {
  50. data = res.data.data
  51. console.log();
  52. appealExamineRecordDTOList = {
  53. casesEntryName: data.appealExamineRecordDTOList[data.appealExamineRecordDTOList.length - 1].casesEntryName,
  54. value: data.appealExamineRecordDTOList[data.appealExamineRecordDTOList.length - 1].value,
  55. msg: data.qcresultDetailMsg,
  56. explainInfo: data.appealExamineRecordDTOList[data.appealExamineRecordDTOList.length - 1].appealRemark,
  57. };
  58. appealInfo = {
  59. exampleOperation: 2,
  60. casesEntryName: data.casesEntryName,
  61. casesEntryMsg: data.casesEntryMsg,
  62. remark: data.remark,
  63. behospitalCode: data.behospitalCode,
  64. modeId: data.modeId,
  65. qcResultAlgVO: {
  66. casesEntryId: casesEntryId,
  67. id: data.qcresultDetailId,
  68. casesScore: data.appealExamineRecordDTOList[data.appealExamineRecordDTOList.length - 1].casesScore,
  69. msg: data.qcresultDetailMsg,
  70. score: data.qcresultDetaiValue,
  71. isReject: data.appealExamineRecordDTOList[data.appealExamineRecordDTOList.length - 1].isReject,
  72. explainInfo: data.appealExamineRecordDTOList[data.appealExamineRecordDTOList.length - 1].appealRemark,
  73. }
  74. };
  75. $('.info').html('');
  76. $('.content').html('');
  77. $('.history').html('');
  78. getInfo(data);
  79. getCon(data);
  80. getHistory(data.appealExamineRecordDTOList)
  81. // getAppealInfo(id, behospitalCode, casesEntryId, hospitalId, qcresultDetailId);
  82. } else {
  83. const token = localStorage.getItem('accessToken');
  84. if (!token && window.location.href.indexOf('login') == -1) {
  85. //alert('无token判断,跳回登录')
  86. } else {
  87. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  88. }
  89. }
  90. }).catch((e) => {
  91. })
  92. }
  93. function getAppealInfo(id, behospitalCode, casesEntryId, hospitalId, qcresultDetailId) {
  94. const param = {
  95. id: id,
  96. behospitalCode: behospitalCode,
  97. casesEntryId: casesEntryId,
  98. hospitalId: hospitalId,
  99. qcresultDetailId: qcresultDetailId,
  100. }
  101. return post(api.getAppealInfo, param).then(res => {
  102. if (res.data.code == '0') {
  103. data = res.data.data.appealExamineRecordDTOList
  104. getHistory(data)
  105. } else {
  106. const token = localStorage.getItem('accessToken');
  107. if (!token && window.location.href.indexOf('login') == -1) {
  108. //alert('无token判断,跳回登录')
  109. } else {
  110. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  111. }
  112. }
  113. }).catch((e) => {
  114. })
  115. }
  116. function getInfo(data) {
  117. let str = ''
  118. str += `<span class="info-title">病案号:${data.behospitalCode || '-'}</span>
  119. <span class="info-title">姓名:${data.name || '-'}</span>
  120. <span class="info-title">性别:${data.sex || '-'}</span>
  121. <span class="info-title">年龄:${data.age || '-'}</span>
  122. <span class="info-title">科室:${data.behDeptName || '-'}</span>
  123. <span class="info-title">主管医生:${data.doctorName || '-'}</span>
  124. <span class="info-title">入院时间:${data.behospitalDate || '-'}</span>
  125. <span class="info-title">出院时间:${data.leaveHospitalDate || '-'}</span>`;
  126. $('.info').append(str);
  127. }
  128. function getCon(data) {
  129. let str = ''
  130. str += `<p class="con-title">申诉模块:${data.modeName || '-'}</p>
  131. <p class="con-title">病历内容:${data.defectContent || '-'}</p>
  132. <p class="con-title">缺陷详情:${data.qcresultDetailMsg || '-'}</p>
  133. <p class="con-title">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 评分:${data.qcresultDetaiValue == 0 ? '0' : data.qcresultDetaiValue ? -data.qcresultDetaiValue : '-'}</p>
  134. <p class="con-title">病案详情:<span class="goDetail">查看</span></p>`;
  135. $('.content').append(str);
  136. $('.goDetail').on('click', function (e) {
  137. scoreDetail(data.behospitalCode, data.age, 'YH-BLZK-ZKSSKS', data.name, data.modeName)
  138. })
  139. }
  140. function getHistory(data) {
  141. let str = ''
  142. for (let i = 0; i < data.length; i++) {
  143. const item = data[i]
  144. console.log(item);
  145. str += `<div class="box" style="border-top: 1px solid #333;margin-top: 10px;padding-top: 10px;">
  146. <p class="con-title"><span>申诉时间:${item.appealCreateDate || '-'}</span><span>申诉人:${item.claimantName || '-'}</span><span>审核人:${item.checkName || '-'}</span></p>
  147. <p class="con-title">操作类型:${item.appealOperationType == 0 ? '删改条目' : item.appealOperationType == 1 ? '新增已有条目' : item.appealOperationType == 2 ? '新增缺失条目' : '恢复条目'}</p>
  148. ${item.appealOperationType == 1 ?
  149. `<p class="con-title">质控条目:${item.casesEntryName || '-'}</p>
  150. <p class="con-title">提示信息:${item.casesEntryMsg || '-'}</p>
  151. <p class="con-title">分值:${item.value == 0 ? '0' : item.value ? item.value : '-'}</p>
  152. <p class="con-title">备注:${item.appealRemark || '-'}</p>
  153. `: ""}
  154. <p class="con-title">申诉说明:${item.appealExplain || '-'}</p>
  155. ${item.exampleStatus == 2 ?
  156. `<p class="con-title" ><span>审核时间:${item.appealExamineDate || '-'}</span><span>审核人:${item.checkName || '-'}</span></p>
  157. <p class="con-title">审核结果:审核通过</p>
  158. <p class="con-title">${item.appealOperationType == 2 ? '处理结果:' : '处理方式:'}${item.appealOperationType == 2 ? item.processResult : item.exampleOperation == 1 ? '修改' : item.exampleOperation == 2 ? '删除' : item.exampleOperation == 3 ? '新增已有' : item.exampleOperation == 4 ? '新增缺失' : '恢复'}</p>`
  159. : ""}
  160. ${item.exampleStatus == 2 && item.appealOperationType != 2 ?
  161. `<p class="con-title">质控条目:${item.casesEntryName || '-'}</p>
  162. <p class="con-title">提示信息:${item.msg || '-'}</p>
  163. <p class="con-title">分值:${item.score == 0 ? '0' : item.score ? item.score : '-'}</p>
  164. <p class="con-title">备注:${item.exampleRemark || '-'}</p>`
  165. : ""}
  166. ${item.exampleStatus == 1 ?
  167. `<p class="con-title" >审核时间:${item.appealExamineDate || '-'}<span>审核人:${item.checkName || '-'}</span></p>
  168. <p class="con-title">审核结果:驳回</p>
  169. <p class="con-title">驳回理由:${item.rejectReason || '-'}</p>`
  170. : ""}
  171. </div>`;
  172. }
  173. $('.history').append(str);
  174. }
  175. function scoreDetail(id, age, code, name, casesName) {
  176. const logoParam = getLogoParam();
  177. window.open(`./appealUserPage.html?id=${id}&age=${age}&code=${code}&hid=${getCookie('hospitalid')}&name=${name}&form=44&casesName=${casesName || '缺陷总览'}` + logoParam)
  178. }
  179. $(document).on("click", "input[type=radio][value=1]", (e) => {
  180. $(".endis").attr("disabled", false);
  181. });
  182. $(document).on("click", "input[type=radio][value=2]", (e) => {
  183. $(".endis").attr("disabled", true);
  184. });
  185. $(document).on("click", ".btn-sure", (e) => {
  186. $("#delModal .modal-body").html("");
  187. $("#delModal .modal-header .title").html('审核');
  188. $("#delModal").show();
  189. if (appealOperationType == 0) {
  190. $("#appealDel").tmpl(appealExamineRecordDTOList).appendTo("#delModal .modal-body");
  191. $("#delModal .confirm").text("确定").unbind("click").click(function () {
  192. approved(1)
  193. });
  194. } else if (appealOperationType == 1) {
  195. $("#appealAdd").tmpl(appealExamineRecordDTOList).appendTo("#delModal .modal-body");
  196. $("#delModal .confirm").text("确定").unbind("click").click(function () {
  197. approved(2)
  198. });
  199. } else if (appealOperationType == 2) {
  200. $("#appealDef").tmpl(appealExamineRecordDTOList).appendTo("#delModal .modal-body");
  201. $("#delModal .confirm").text("确定").unbind("click").click(function () {
  202. approved(3)
  203. });
  204. } else if (appealOperationType == 3) {
  205. $("#appealRec").tmpl(appealExamineRecordDTOList).appendTo("#delModal .modal-body");
  206. $("#delModal .confirm").text("确定").unbind("click").click(function () {
  207. approved(4)
  208. });
  209. }
  210. });
  211. $(document).on("click", ".goback", (e) => {
  212. console.log(form);
  213. if (form == 1 || form == 2) {
  214. $(parent.document).find("#contentIframe").attr("src", './appealCheck.html?page=' + page + "&name=" + name + "&operationType=" + operationType + "&state=" + state + "&behosDateStart=" + behosDateStart + "&behosDateEnd=" + behosDateEnd + "&deptId=" + deptId + "&deptName=" + deptName + "&moduleName=" + moduleName);
  215. } else {
  216. $(parent.document).find("#contentIframe").attr("src", './appealHistory.html?page=' + page + "&patientName=" + patientName + "&name=" + name + "&operationType=" + operationType + "&state=" + state + "&behosDateStart=" + behosDateStart + "&behosDateEnd=" + behosDateEnd + "&deptId=" + deptId + "&deptName=" + deptName + "&moduleName=" + moduleName);
  217. }
  218. });
  219. $(document).on("click", ".btn-cancel", (e) => {
  220. $("#delModal .modal-body").html("");
  221. $("#delModal").show();
  222. $("#delModal .modal-header .title").html('驳回');
  223. $("#appealReject").tmpl(appealExamineRecordDTOList[0]).appendTo("#delModal .modal-body");
  224. $("#delModal .confirm").text("确定").unbind("click").click(function () {
  225. rejected()
  226. });
  227. });
  228. //审核
  229. function approved(type) {
  230. console.log(type);
  231. if (type == 1) {
  232. appealInfo.exampleOperation = $('input:radio:checked').val()
  233. if ($('input:radio:checked').val() == 2) {
  234. appealInfo.delStatus == 0
  235. } else {
  236. appealInfo.casesEntryMsg == $(".case").val().trim()
  237. appealInfo.qcResultAlgVO.score = $('.score').val().trim()
  238. appealInfo.qcResultAlgVO.explainInfo = $('.explainInfo').val().trim()
  239. appealInfo.qcResultAlgVO.msg = $('.msg').val().trim()
  240. let val = $(".msg").val().trim()
  241. let score = $(".score").val().trim()
  242. if (!val) {
  243. $(".appealDel .warning .red").text("提示信息不能为空~");
  244. $(".appealDel .warning").show();
  245. return
  246. }
  247. if (!score) {
  248. $(".appealDel .warning .red").text("分值不能为空~");
  249. $(".appealDel .warning").show();
  250. return
  251. }
  252. }
  253. } else if (type == 2) {
  254. appealInfo.exampleOperation = 3
  255. appealInfo.qcResultAlgVO.score = $('.score').val().trim()
  256. appealInfo.qcResultAlgVO.explainInfo = $('.explainInfo').val().trim()
  257. appealInfo.qcResultAlgVO.msg = $('.msg').val().trim()
  258. let val = $(".msg").val().trim()
  259. let score = $(".score").val().trim()
  260. if (!val) {
  261. $(".appealAdd .warning .red").text("提示信息不能为空~");
  262. $(".appealAdd .warning").show();
  263. return
  264. }
  265. if (!score) {
  266. $(".appealDel .warning .red").text("分值不能为空~");
  267. $(".appealDel .warning").show();
  268. return
  269. }
  270. } else if (type == 3) {
  271. appealInfo.exampleOperation = 4
  272. appealInfo.processResult = $(".textarea").val().trim()
  273. let val = $(".textarea").val().trim()
  274. let num = 500
  275. if (!val) {
  276. $(".appealDef .warning .red").text("处理结果不能为空~");
  277. $(".appealDef .warning").show();
  278. return
  279. } else if (val.length > num) {
  280. $(".appealDef .warning .red").text("处理结果不能超过" + num + "个字~");
  281. $(".appealDef .warning").show();
  282. return
  283. }
  284. } else if (type == 4) {
  285. appealInfo.exampleOperation = 5
  286. appealInfo.qcResultAlgVO.score = $('.score').val().trim()
  287. }
  288. const param = {
  289. 'id': id,
  290. ...appealInfo,
  291. };
  292. post(api.approved, param).then(function (res) {
  293. if (res.data.code === '0') {
  294. $("#delModal").hide();
  295. $(".bot").hide();
  296. getApprovedView()
  297. getAuditNumber()
  298. $.alerModal({ "message": "审核成功", type: "tip", time: '1000', win: true });
  299. } else {
  300. $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'warn' });
  301. }
  302. }).catch(() => {
  303. $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });
  304. });
  305. }
  306. //驳回
  307. function rejected() {
  308. let val = $(".textarea2").val().trim()
  309. let num = 500
  310. if (!val) {
  311. $(".appealReject .warning .red").text("驳回理由不能为空~");
  312. $(".appealReject .warning").show();
  313. return
  314. } else if (val.length > num) {
  315. $(".appealReject .warning .red").text("驳回理由不能超过" + num + "个字~");
  316. $(".appealReject .warning").show();
  317. return
  318. }
  319. const param = {
  320. 'behospitalCode': behospitalCode,
  321. 'id': id,
  322. rejectedReason: $(".textarea2").val().trim()
  323. };
  324. post(api.rejected, param).then(function (res) {
  325. if (res.data.code === '0') {
  326. $("#delModal").hide();
  327. $(".bot").hide();
  328. getApprovedView()
  329. getAuditNumber()
  330. $.alerModal({ "message": "驳回成功", type: "tip", time: '1000', win: true });
  331. } else {
  332. $.alerModal({ "message": res.data.msg || '失败,请重试~', type: "tip", time: '1000', win: 'default' });
  333. }
  334. }).catch(() => {
  335. $.alerModal({ "message": '失败,请重试~', type: "tip", time: '1000', win: 'default' });
  336. });
  337. }
  338. //获取待审核数量
  339. function getAuditNumber() {
  340. let isPlacefile = getCookie('isPlacefile') || 1
  341. return post(api.getAuditNumber, { analyzeType: isPlacefile }).then(res => {
  342. if (res.data.code == '0') {
  343. auditNumber = res.data.data > 99 ? '99+' : res.data.data
  344. if (auditNumber == 0) {
  345. $(".menu .page", parent.document).children('.reds').hide()
  346. $(".menu .dian", parent.document).hide()
  347. } else {
  348. $(".menu .page", parent.document).children('.reds').html(auditNumber)
  349. }
  350. } else {
  351. const token = localStorage.getItem('accessToken');
  352. if (!token && window.location.href.indexOf('login') == -1) {
  353. //alert('无token判断,跳回登录')
  354. } else {
  355. $.alerModal({ "message": res.data.msg, type: "tip", time: '1000', isFather: true, fatherWrapper: $("#mainBox", parent.document) });
  356. }
  357. }
  358. }).catch((e) => {
  359. })
  360. }