2.9-测序文件

测序文件

This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greatest.deepsurf.us/scripts/470210/1216375/29-%E6%B5%8B%E5%BA%8F%E6%96%87%E4%BB%B6.js

  1. function 测序文件(){
  2. console.log('新的测序文件界面')
  3. var local_同一个版号中根据实验状态总结=localStorage.getItem('同一个版号中根据实验状态总结');
  4. if ($('#textarea_zongjie').length==0){
  5. $("body").find("[class='layout-body panel-body panel-body-noheader panel-body-noborder']").append('<textarea id="textarea_zongjie" style="position:absolute;left:400px;display:none" rows="3" cols="80"></textarea><button id="button_yincang_textarea" style="display:none" >隐藏</button>')
  6. }
  7. //点击按钮,隐藏textare和自身
  8. $('#button_yincang_textarea').click(function(){
  9. $(this).css('display','none');
  10. $('#textarea_zongjie').css('display','none');
  11. })
  12. var html=$('iframe[src="/seq/AutoFileUploadList.aspx"]')//测序样品页面
  13. html=html.contents().find('body').eq(0)
  14. var toolbar=html.find('.toolbar').eq(0) // 找到了toolbar工具栏
  15. //var table=html.find('.ui-jqgrid-btable').eq(0) // 找到了样品的table
  16. //添加toolbar工具栏按钮
  17. 添加toolbar按钮(html)
  18. //添加toolbar工具栏按钮
  19. function 添加toolbar按钮(html){
  20. if (toolbar.find('.weiyiyici').length==0){
  21. //添加标记
  22. toolbar.addClass('weiyiyici')
  23. //添加修改样品名称按钮
  24. if (local_同一个版号中根据实验状态总结=='true'){
  25. toolbar.append('<span><input type="text" id="text_banhao" placeholder="板号" size="5"/><button id="button_zongjie" onclick="return false">总结</font></button></span>')
  26. //点击添加样品前缀按钮执行如下函数
  27. toolbar.find('#button_zongjie').click(function(){
  28. 根据实验状态总结()
  29. })
  30. }
  31. }
  32. }
  33. //根据实验状态总结
  34. function 根据实验状态总结(){
  35. 板号=html.find('#text_banhao').eq(0).val()
  36. if(板号===""){console.log('空板号');return false}
  37. //报告生产界面查询BDT 数据
  38. $.ajaxSettings.async = false; //get请求默认是异步的,在这里改为同步
  39. 标记=0
  40. $.get("/seq/xmldata/xmlSeqDBT.aspx?banhao="+板号,
  41. function (data,status) {
  42. if (data.indexOf('<Table>')==-1){
  43. alert('没搜到数据')
  44. 标记=1
  45. return false
  46. }
  47. 客户名_arr=文本_取中间文本_批量(data,'<seqo_cust_name>','<\\/seqo_cust_name>')
  48. 生产编号_arr=文本_取中间文本_批量(data,'<seqs_prod_id>','<\\/seqs_prod_id>')
  49. 样品名称_arr=文本_取中间文本_批量(data,'<seqs_sam_num>','<\\/seqs_sam_num>')
  50. 引物_arr=文本_取中间文本_批量(data,'<seqs_primer>','<\\/seqs_primer>')
  51. 状态_arr=文本_取中间文本_批量(data,'<seqs_process>','<\\/seqs_process>')
  52. 产品信息_arr=文本_取中间文本_批量(data,'<prod_info>','<\\/prod_info>')
  53. 报告异常_arr=文本_取中间文本_批量(data,'<seqs_report_error','\\/')
  54. 订单号_arr=文本_取中间文本_批量(data,'<seqo_order_id>','<\\/seqo_order_id>')
  55. });
  56. if (标记==1){
  57. return false
  58. }
  59. if (客户名_arr.length==0){
  60. alert('没搜到数据')
  61. return false
  62. }
  63. //样品状态 不是 报告成功的,全部改成 非报告成功
  64. for (var i=0;i<状态_arr.length;i++){
  65. if (状态_arr[i].indexOf('报告成功')==-1){
  66. 状态_arr[i]='非报告成功'
  67. }else{
  68. 状态_arr[i]='报告成功'
  69. }
  70. }
  71. //根据产品信息数组获取孔号数组
  72. 孔号_arr=[]
  73. for (var i=0;i<产品信息_arr.length;i++){
  74. 分割_arr=产品信息_arr[i].split('.')
  75. 孔号_arr.push(分割_arr[分割_arr.length-2])
  76. }
  77. //把报告异常_arr 的> < 去掉
  78. for (var i=0;i<报告异常_arr.length;i++){
  79. if (报告异常_arr[i].indexOf('>')!==-1){
  80. //删除第一位
  81. 报告异常_arr[i]=报告异常_arr[i].substr(1)
  82. }
  83. if (报告异常_arr[i].indexOf('<')!==-1){
  84. //删除最后一位
  85. 报告异常_arr[i]=报告异常_arr[i].substring(0, 报告异常_arr[i].length - 1);
  86. }
  87. }
  88. //显示textarea
  89. $('#textarea_zongjie').css('display','')
  90. $('#button_yincang_textarea').css('display','')
  91. //1.同一个引物的完成情况全部非“报告成功”
  92. 引物_全部非报告成功()
  93. //2.同一个样品的完成情况全部非“报告成功”(目的:确定这个客户的个别样品是否有问题,需要跟踪)
  94. 样品_全部非报告成功()
  95. //3.同一个客户的完成情况全部非“报告成功”
  96. 客户_全部非报告成功()
  97. //4.孔号含A01-3,B01-3,C01-3或者f01-3,g01-3,h01-3或者A10-12\B10-12\C10-12或者f10-12、g10-12、h10-12都是没有报告成功的(目的:确定是否是PCR以的问题,PCR以是分4个区域,出问题,会不同区域坏)
  98. 孔号_四个区域()
  99. //5.同一个样品备注都是含有“双峰”(目的:确定一下是否是客户样品问题,还是我们回收不纯,需要重新回收)
  100. 样品_双峰()
  101. //6.同一个引物备注都是含有“双峰”(目的:确定一下是否是客户的引物有问题,持续跟踪分析)
  102. 引物_双峰()
  103. alert('完毕')
  104. }
  105. //1.同一个引物的完成情况全部非“报告成功”
  106. function 引物_全部非报告成功(){
  107. 临时_引物_arr=引物_arr.slice()
  108. //遍历数组,把状态是报告成功的,搜索所有该引物,和对应的状态全部删除
  109. 引物记录_arr=[]
  110. for (var i=0;i<临时_引物_arr.length;i++){
  111. if (状态_arr[i]=='报告成功'){
  112. 引物记录_arr.push(临时_引物_arr[i])
  113. }
  114. }
  115. for (var i=0;i<引物记录_arr.length;i++){
  116. for (var j=0;j<临时_引物_arr.length;j++){
  117. if (引物记录_arr[i]==临时_引物_arr[j]){
  118. 临时_引物_arr[j]=''
  119. }
  120. }
  121. }
  122. //去掉是空字符串的数组
  123. 临时_引物_arr=arr_quchu_kongbai(临时_引物_arr)
  124. res=数组_统计次数(临时_引物_arr)
  125. items=res[0]
  126. values=res[1]
  127. result=[]
  128. for (var i=0;i<items.length;i++){
  129. temp=items[i]+' ('+values[i]+'个)'
  130. result.push(temp)
  131. }
  132. //console.log(result)
  133. //$("#textarea_zongjie").val()+
  134. $("#textarea_zongjie").val('同一个引物的完成情况全部非“报告成功”: '+result+'\n')
  135. }
  136. //2.同一个样品的完成情况全部非“报告成功”(目的:确定这个客户的个别样品是否有问题,需要跟踪) 同一个订单号
  137. function 样品_全部非报告成功(){
  138. //连接订单号和样品名
  139. 订单号_样品名_arr=[]
  140. for (var i=0;i<样品名称_arr.length;i++){
  141. 订单号_样品名_arr.push(订单号_arr[i]+'-'+样品名称_arr[i])
  142. }
  143. //console.log(订单号_样品名_arr)
  144. //遍历数组,把状态是报告成功的,搜索所有订单号-样品,和对应的状态全部删除
  145. 订单号_样品名记录_arr=[]
  146. for (var i=0;i<样品名称_arr.length;i++){
  147. if (状态_arr[i]=='报告成功'){
  148. 订单号_样品名记录_arr.push(订单号_样品名_arr[i])
  149. }
  150. }
  151. for (var i=0;i<订单号_样品名记录_arr.length;i++){
  152. for (var j=0;j<订单号_样品名_arr.length;j++){
  153. if (订单号_样品名记录_arr[i]==订单号_样品名_arr[j]){
  154. 订单号_样品名_arr[j]=''
  155. }
  156. }
  157. }
  158. //去掉是空字符串的数组
  159. 订单号_样品名_arr=arr_quchu_kongbai(订单号_样品名_arr)
  160. res=数组_统计次数(订单号_样品名_arr)
  161. items=res[0]
  162. values=res[1]
  163. result=[]
  164. for (var i=0;i<items.length;i++){
  165. temp=items[i]+' ('+values[i]+'个)'
  166. result.push(temp)
  167. }
  168. //console.log(result)
  169. $("#textarea_zongjie").val($("#textarea_zongjie").val()+'同一个样品的完成情况全部非“报告成功”: '+result+'\n')
  170. }
  171. //3.同一个客户的完成情况全部非“报告成功”
  172. function 客户_全部非报告成功(){
  173. 临时_订单号_arr=订单号_arr.slice()
  174. //遍历数组,把状态是报告成功的,搜索所有该订单号,和对应的状态全部删除
  175. 订单号记录_arr=[]
  176. for (var i=0;i<临时_订单号_arr.length;i++){
  177. if (状态_arr[i]=='报告成功'){
  178. 订单号记录_arr.push(临时_订单号_arr[i])
  179. }
  180. }
  181. for (var i=0;i<订单号记录_arr.length;i++){
  182. for (var j=0;j<临时_订单号_arr.length;j++){
  183. if (订单号记录_arr[i]==临时_订单号_arr[j]){
  184. 临时_订单号_arr[j]=''
  185. }
  186. }
  187. }
  188. //去掉是空字符串的数组
  189. 临时_订单号_arr=arr_quchu_kongbai(临时_订单号_arr)
  190. res=数组_统计次数(临时_订单号_arr)
  191. items=res[0]
  192. values=res[1]
  193. result=[]
  194. 板号=html.find('#text_banhao').eq(0).val()
  195. for (var i=0;i<items.length;i++){
  196. temp=items[i]+' ('+values[i]+'个) 板号:'+板号
  197. result.push(temp)
  198. }
  199. //console.log(result)
  200. $("#textarea_zongjie").val($("#textarea_zongjie").val()+'同一个客户的完成情况全部非“报告成功”: '+result+'\n')
  201. }
  202. //4.孔号含A01-3,B01-3,C01-3或者f01-3,g01-3,h01-3或者A10-12\B10-12\C10-12或者f10-12、g10-12、h10-12都是没有报告成功的(目的:确定是否是PCR以的问题,PCR以是分4个区域,出问题,会不同区域坏)
  203. function 孔号_四个区域(){
  204. // test_arr=[]
  205. // for (var i=0;i<孔号_arr.length;i++){
  206. // test_arr.push(孔号_arr[i]+'-'+状态_arr[i])
  207. // }
  208. // console.log(test_arr)
  209. function 获取区域状态_公共函数(区域孔号){
  210. 区域状态=[]
  211. for (var i=0;i<区域孔号.length;i++){
  212. for (var j=0;j<孔号_arr.length;j++){
  213. if (区域孔号[i]==孔号_arr[j]){
  214. 区域状态.push(状态_arr[j])
  215. }
  216. }
  217. }
  218. return 区域状态
  219. }
  220. 第一区域孔号=['A01','A02','A03','B01','B02','B03','C01','C02','C03']
  221. 第一区域状态=获取区域状态_公共函数(第一区域孔号)
  222. 第二区域孔号=['F01','F02','F03','G01','G02','G03','H01','H02','H03']
  223. 第二区域状态=获取区域状态_公共函数(第二区域孔号)
  224. 第三区域孔号=['A10','A11','A12','B10','B11','B12','C10','C11','C12']
  225. 第三区域状态=获取区域状态_公共函数(第三区域孔号)
  226. 第四区域孔号=['F10','F11','F12','G10','G11','G12','H10','H11','H12']
  227. 第四区域状态=获取区域状态_公共函数(第四区域孔号)
  228. // console.log(第一区域状态)
  229. // console.log(第二区域状态)
  230. // console.log(第三区域状态)
  231. // console.log(第四区域状态)
  232. result=''
  233. //如果数组长度不为0 ,没有报告成功 则提示
  234. if (第一区域状态.length!=0){
  235. if (第一区域状态.indexOf('报告成功')==-1){
  236. result+='A01-3,B01-3,C01-3 这一个区域全部没有报告成功; '
  237. }
  238. }
  239. if (第二区域状态.length!=0){
  240. if (第二区域状态.indexOf('报告成功')==-1){
  241. result+='F01-3,G01-3,H01-3 这一个区域全部没有报告成功; '
  242. }
  243. }
  244. if (第三区域状态.length!=0){
  245. if (第三区域状态.indexOf('报告成功')==-1){
  246. result+='A10-12,B10-12,C10-12 这一个区域全部没有报告成功; '
  247. }
  248. }
  249. if (第四区域状态.length!=0){
  250. if (第四区域状态.indexOf('报告成功')==-1){
  251. result+='F10-12、G10-12、H10-12 这一个区域全部没有报告成功;'
  252. }
  253. }
  254. //console.log(result)
  255. $("#textarea_zongjie").val($("#textarea_zongjie").val()+'四个区域中某个没有报告成功: '+result+'\n')
  256. }
  257. //5.同一个样品备注都是含有“双峰”(目的:确定一下是否是客户样品问题,还是我们回收不纯,需要重新回收)
  258. function 样品_双峰(){
  259. //连接订单号和样品名
  260. 订单号_样品名_arr=[]
  261. for (var i=0;i<样品名称_arr.length;i++){
  262. 订单号_样品名_arr.push(订单号_arr[i]+'-'+样品名称_arr[i])
  263. }
  264. //遍历数组,把异常是双峰的,搜索所有订单号-样品,和对应的状态全部删除
  265. 订单号_样品名记录_arr=[]
  266. for (var i=0;i<样品名称_arr.length;i++){
  267. if (报告异常_arr[i].indexOf('双峰')==-1){
  268. 订单号_样品名记录_arr.push(订单号_样品名_arr[i])
  269. }
  270. }
  271. //console.log(订单号_样品名记录_arr)
  272. for (var i=0;i<订单号_样品名记录_arr.length;i++){
  273. for (var j=0;j<订单号_样品名_arr.length;j++){
  274. if (订单号_样品名记录_arr[i]==订单号_样品名_arr[j]){
  275. 订单号_样品名_arr[j]=''
  276. }
  277. }
  278. }
  279. //console.log(订单号_样品名_arr)
  280. //去掉是空字符串的数组
  281. 订单号_样品名_arr=arr_quchu_kongbai(订单号_样品名_arr)
  282. res=数组_统计次数(订单号_样品名_arr)
  283. items=res[0]
  284. values=res[1]
  285. result=[]
  286. for (var i=0;i<items.length;i++){
  287. temp=items[i]+' ('+values[i]+'个)'
  288. result.push(temp)
  289. }
  290. //console.log(result)
  291. $("#textarea_zongjie").val($("#textarea_zongjie").val()+'同一个样品备注都是含有“双峰”: '+result+'\n')
  292. }
  293. //6.同一个引物备注都是含有“双峰”(目的:确定一下是否是客户的引物有问题,持续跟踪分析)
  294. function 引物_双峰(){
  295. // console.log(客户名_arr)
  296. // console.log(生产编号_arr)
  297. // console.log(引物_arr)
  298. // console.log(报告异常_arr)
  299. // console.log(订单号_arr)
  300. // console.log(样品名称_arr)
  301. //console.log(孔号_arr)
  302. //console.log(状态_arr)
  303. //连接订单号和引物
  304. 订单号_引物_arr=[]
  305. for (var i=0;i<样品名称_arr.length;i++){
  306. 订单号_引物_arr.push(订单号_arr[i]+'-'+引物_arr[i])
  307. }
  308. //遍历数组,把异常是双峰的,搜索所有订单号-引物,和对应的状态全部删除
  309. 订单号_引物记录_arr=[]
  310. for (var i=0;i<样品名称_arr.length;i++){
  311. if (报告异常_arr[i].indexOf('双峰')==-1){
  312. 订单号_引物记录_arr.push(订单号_引物_arr[i])
  313. }
  314. }
  315. for (var i=0;i<订单号_引物记录_arr.length;i++){
  316. for (var j=0;j<订单号_引物_arr.length;j++){
  317. if (订单号_引物记录_arr[i]==订单号_引物_arr[j]){
  318. 订单号_引物_arr[j]=''
  319. }
  320. }
  321. }
  322. //去掉是空字符串的数组
  323. 订单号_引物_arr=arr_quchu_kongbai(订单号_引物_arr)
  324. res=数组_统计次数(订单号_引物_arr)
  325. items=res[0]
  326. values=res[1]
  327. result=[]
  328. for (var i=0;i<items.length;i++){
  329. temp=items[i]+' ('+values[i]+'个)'
  330. result.push(temp)
  331. }
  332. //console.log(result)
  333. $("#textarea_zongjie").val($("#textarea_zongjie").val()+'同一个引物备注都是含有“双峰”: '+result)
  334. }
  335. }
  336.