SMMRI01800.xjs 51 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : HIT
  4. * Job Name :
  5. * File Name : SMMRI01800.xjs
  6. * Creator :
  7. * Make Date : 2014-10-15
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-10-15 HIT Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. /****************************************************************************************
  18. * Function : dsf_createDs
  19. * Description : 공통코드를 가져온다.
  20. * Argument : 01.sKey : 코드아이디
  21. * : 02.sValue : 코드명
  22. * return type : String - dataset name
  23. * Creator : 임준호
  24. ****************************************************************************************/
  25. var sORDERBY = "desc";
  26. var gTimerID;
  27. var gIntervalTime = 500;
  28. var gTimeCnt;
  29. /**
  30. * @desc 서식명 조회
  31. */
  32. function fReqGetFormList(){
  33. var oParam = {};
  34. oParam.id = "TRMRI01804";
  35. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  36. oParam.method = "reqGetUnPrepFormCD";
  37. //oParam.inds = "req=ds_";
  38. oParam.outds = "ds_init_cmb_formcd=unprepformcd";
  39. oParam.async = false;
  40. oParam.callback = "cf_TRMRI01804";
  41. tranf_submit(oParam);
  42. // if(submit("TRMRI01804")){ //서식명콤보 조회
  43. // addComboItem("cmb_formcd","전체","-");
  44. // }
  45. }
  46. /**
  47. * @desc 미비항목코드 조회
  48. */
  49. function fReqGetFormItemList(formcd){
  50. ds_send_reqdata.clearData();
  51. ds_send_reqdata.addColumn("formcd", "string");
  52. var nRow = ds_send_reqdata.addRow();
  53. ds_send_reqdata.setColumn(nRow, "formcd", formcd);
  54. var oParam = {};
  55. oParam.id = "TRMRI01805";
  56. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  57. oParam.method = "reqGetUnPrepItemCD";
  58. oParam.inds = "req=ds_send_reqdata";
  59. oParam.outds = "ds_init_cmb_itemcd=itemcd";
  60. oParam.async = false;
  61. oParam.callback = "cf_TRMRI01805";
  62. tranf_submit(oParam);
  63. }
  64. /**
  65. * @desc 미비의사 조회
  66. * @param srchflag 검색구분(id:아이디, nm:명)
  67. * unprepdeptcd 미비진료과
  68. * unprepdr 미비의사(srch?id:아이디, nm:명)
  69. * stnddd 기준일자
  70. * deptengabbr 부서약어명
  71. */
  72. function fReqGetUnPrepDrList(srchflag, unprepdeptcd, unprepdr, stnddd, deptengabbr, grupflag){
  73. ds_send_reqdata.clearData();
  74. ds_send_reqdata.addColumn("srchflag", "string");
  75. ds_send_reqdata.addColumn("unprepdeptcd", "string");
  76. ds_send_reqdata.addColumn("unprepdr", "string");
  77. ds_send_reqdata.addColumn("deptengabbr", "string");
  78. ds_send_reqdata.addColumn("stnddd", "string");
  79. ds_send_reqdata.addColumn("grupflag", "string");
  80. var nRow = ds_send_reqdata.addRow();
  81. ds_send_reqdata.setColumn(nRow, "srchflag" , srchflag);
  82. ds_send_reqdata.setColumn(nRow, "unprepdeptcd", unprepdeptcd);
  83. ds_send_reqdata.setColumn(nRow, "unprepdr" , unprepdr);
  84. ds_send_reqdata.setColumn(nRow, "deptengabbr" , deptengabbr);
  85. ds_send_reqdata.setColumn(nRow, "stnddd" , stnddd);
  86. ds_send_reqdata.setColumn(nRow, "grupflag" , grupflag);
  87. var oParam = {};
  88. oParam.id = "TRMRI02604";
  89. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  90. oParam.method = "reqGetUnPrepDrList";
  91. oParam.inds = "req=ds_send_reqdata";
  92. oParam.outds = "ds_temp_unprepdrinfo=unprepdrlist";
  93. oParam.async = false;
  94. oParam.callback = "cf_TRMRI02604";
  95. tranf_submit(oParam);
  96. }
  97. /**
  98. * @desc 조회기준 정보 CSV 형태로 생성
  99. */
  100. function doSrchCondCSV(nodeList, sColSep, sRowSep){
  101. if( nodeList.length == 0 ){
  102. return;
  103. }
  104. var rCSV = "";
  105. var childNodeList = nodeList.item(0).childNodes;
  106. var childNodeCnt = childNodeList.length;
  107. if( childNodeCnt == 0 ){
  108. return;
  109. }
  110. var i, j;
  111. for( i = 0; i < childNodeCnt - 1; i++) {
  112. rCSV += childNodeList.item(i).nodeName + sColSep;
  113. }
  114. rCSV += childNodeList.item(i).nodeName + sRowSep;
  115. var node;
  116. while( node = nodeList.nextNode() ) {
  117. childNodeList = node.childNodes;
  118. for( i = 0; i < childNodeCnt - 1; i++) {
  119. rCSV += childNodeList.item(i).text + sColSep;
  120. }
  121. rCSV += childNodeList.item(i).text + sRowSep;
  122. }
  123. return rCSV;
  124. }
  125. /**
  126. * @desc 미비의사확인 표시
  127. * SMMRI01800_medirecinfo 구성 상태^등록번호^진료일자^생성번호^서식코드^서식일련번호
  128. * status + "^" + pid + "^" + orddd + "^" + cretno + "^" + formcd + "^" + formrecdd + "^" + formrecseq + "^" + workflag;
  129. */
  130. function fDispUnPrepDrCnfm(medirecinfo){
  131. utlf_addLog("***** fDispUnPrepDrCnfm() 서식로더 MMR01100.xjs 에서 호출 ******");
  132. var cmplcnt = ds_main_cnfmcmplcnt.getColumn(0, "cnfmcmplcnt");
  133. var posinstcd = sysf_getUserInfo("posinstcd");
  134. var dutplcecd = sysf_getUserInfo("dutplcecd");
  135. var posuserid = sysf_getUserId();
  136. cmplcnt++;
  137. ds_main_cnfmcmplcnt.setColumn(0, "cnfmcmplcnt", cmplcnt);
  138. //var mainobj = frmf_getMainViewer();
  139. //var medirecinfo = mainobj.frmf_getParameter("SMMRI01800_medirecinfo");
  140. if(!utlf_isNull(medirecinfo)){
  141. var unprepinfo = medirecinfo.split("^");
  142. var status = unprepinfo[0];
  143. var pid = unprepinfo[1];
  144. var orddd = unprepinfo[2];
  145. var cretno = unprepinfo[3];
  146. var formcd = unprepinfo[4];
  147. var formrecdd = unprepinfo[5];
  148. var formrecseq = unprepinfo[6];
  149. var workflag = unprepinfo[7]; // usg : 인증저장, uss : Staff-Sign
  150. var formrecdeptcd = unprepinfo[8]; //진료기록 작성부서코드
  151. if(utlf_isNull(formrecdeptcd)){
  152. formrecdeptcd = dutplcecd;
  153. }
  154. var sIdx = grd_unpreplist.getBindCellIndex("body", "unprepdrnm");
  155. var eIdx = grd_unpreplist.getBindCellIndex("body", "drcnfmdt");
  156. // sytle Column Add
  157. ds_grd_unpreplist.addColumn("rowstyle", "string");
  158. for( var k = sIdx; k <= eIdx; k++){
  159. // grd_unpreplist.setCellProperty("body", k, "color" ,"EXPR(fSetRowStyle(0,pid,indd,cretno,srcformcd,formrecdd,formrecseq,unprepdrid,unprepitemcd,orddeptcd,'"+pid+"','"+orddd+"','"+cretno+"','"+formcd+"','"+formrecdd+"','"+formrecseq+"','"+workflag+"','"+formrecdeptcd+"'))");//&quot;
  160. // grd_unpreplist.setCellProperty("body", k, "color2" ,"EXPR(fSetRowStyle(0,pid,indd,cretno,srcformcd,formrecdd,formrecseq,unprepdrid,unprepitemcd,orddeptcd,'"+pid+"','"+orddd+"','"+cretno+"','"+formcd+"','"+formrecdd+"','"+formrecseq+"','"+workflag+"','"+formrecdeptcd+"'))");//&quot;
  161. // grd_unpreplist.setCellProperty("body", k, "font" ,"EXPR(fSetRowStyle(1,pid,indd,cretno,srcformcd,formrecdd,formrecseq,unprepdrid,unprepitemcd,orddeptcd,'"+pid+"','"+orddd+"','"+cretno+"','"+formcd+"','"+formrecdd+"','"+formrecseq+"','"+workflag+"','"+formrecdeptcd+"'))");//&quot;
  162. grd_unpreplist.setCellProperty("body", k, "color" ,"EXPR(rowstyle == 'Y' ? '#0000ff' : '')");
  163. grd_unpreplist.setCellProperty("body", k, "color2" ,"EXPR(rowstyle == 'Y' ? '#0000ff' : '')");
  164. grd_unpreplist.setCellProperty("body", k, "font" ,"EXPR(rowstyle == 'Y' ? 'dotum,9,bold' : '')");
  165. }
  166. for(var i = 0; i < ds_grd_unpreplist.rowcount; i++){
  167. var trgtpid = ds_grd_unpreplist.getColumn(i, "pid");
  168. var trgtorddd = ds_grd_unpreplist.getColumn(i, "indd");
  169. var trgtcretno = ds_grd_unpreplist.getColumn(i, "cretno");
  170. var trgtformcd = ds_grd_unpreplist.getColumn(i, "srcformcd");
  171. var trgtformrecdd = ds_grd_unpreplist.getColumn(i, "formrecdd");
  172. var trgtformrecseq = ds_grd_unpreplist.getColumn(i, "formrecseq");
  173. var trgtunprepdrid = ds_grd_unpreplist.getColumn(i, "unprepdrid");
  174. var trgtunprepitemcd = ds_grd_unpreplist.getColumn(i, "unprepitemcd");
  175. var trgtorddeptcd = ds_grd_unpreplist.getColumn(i, "orddeptcd");
  176. //Staff Sign처리되는 건은 미비상태를 의사확인으로 변경
  177. //2008. 12. 26 오지훈
  178. if((workflag=="usg") && !(trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  179. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote인 경우에는 일자가 조회조건에서 빠짐
  180. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  181. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  182. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  183. }
  184. }else{
  185. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq && formrecdeptcd == trgtorddeptcd){
  186. //서울성모병원 수술기록지의 경우 인증저장시 미비상태를 '완료'로 처리한다.(2010.02.10 이남익)
  187. if(trgtformcd == "0000000676"){
  188. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "완료");
  189. } else {
  190. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  191. }
  192. ds_grd_unpreplist.setColumn(i, "formrecdd", formrecdd);
  193. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  194. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd && formrecdd == trgtformrecdd ){
  195. if(trgtformcd == "0000000676"){
  196. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "완료");
  197. } else {
  198. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  199. }
  200. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  201. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  202. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  203. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  204. if(trgtformcd == "0000001592"){
  205. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "완료");
  206. } else {
  207. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  208. }
  209. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  210. }
  211. }
  212. }
  213. } else if((workflag=="usg") && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  214. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  215. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  216. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  217. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  218. }
  219. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  220. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  221. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  222. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  223. }
  224. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  225. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  226. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  227. if(posuserid == trgtunprepdrid){
  228. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  229. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  230. }
  231. }
  232. }
  233. }else if(workflag=="uss" && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  234. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote 인 경우에는 일자가 조회조건에서 빠짐
  235. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  236. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  237. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  238. }
  239. }else{
  240. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  241. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  242. ds_grd_unpreplist.setColumn(i, "formrecdd", formrecdd);
  243. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  244. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  245. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  246. ds_grd_unpreplist.setColumn(i, "rowstyle", "Y");
  247. }
  248. }
  249. }
  250. }
  251. ds_grd_unpreplist.rowposition = -1;
  252. //grd_unpreplist.select(i, grd_unpreplist.col) = false;
  253. }
  254. }
  255. function fSetRowStyle(Flag, trgtpid, trgtorddd, trgtcretno, trgtformcd, trgtformrecdd, trgtformrecseq, trgtunprepdrid, trgtunprepitemcd, trgtorddeptcd, pid, orddd, cretno, formcd, formrecdd, formrecseq, workflag, formrecdeptcd)
  256. {
  257. var color = "default";
  258. var font;
  259. //trace(" ****** 1: " + Flag + " ****** 2: " + trgtpid + " ****** 3: " + trgtorddd + " ****** 4: " + trgtcretno + " ****** 5: " + trgtformcd + " ****** 6: " + trgtformrecdd + " ****** 7: " + trgtformrecseq + " ****** 8: " + trgtunprepdrid + " ****** 9: " + trgtunprepitemcd + " ****** 10: " + trgtorddeptcd);
  260. //trace(" ****** 11: " + pid + " ****** 12: " + orddd + " ****** 13: " + cretno + " ****** 14: " + formcd + " ****** 15: " + formrecdd + " ****** 16: " + formrecseq + " ****** 17: " + workflag + " ****** 18: " + formrecdeptcd);
  261. if((workflag=="usg") && !(trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  262. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote인 경우에는 일자가 조회조건에서 빠짐
  263. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  264. color = "#0000ff";
  265. font = ",bold";
  266. }
  267. }else{
  268. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq && formrecdeptcd == trgtorddeptcd){
  269. //서울성모병원 수술기록지의 경우 인증저장시 미비상태를 '완료'로 처리한다.(2010.02.10 이남익)
  270. color = "#0000ff";
  271. font = ",bold";
  272. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd && formrecdd == trgtformrecdd ){
  273. color = "#0000ff";
  274. font = ",bold";
  275. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  276. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  277. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  278. color = "#0000ff";
  279. font = ",bold";
  280. }
  281. }
  282. }
  283. } else if((workflag=="usg") && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  284. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  285. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  286. color = "#0000ff";
  287. font = ",bold";
  288. }
  289. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  290. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  291. color = "#0000ff";
  292. font = ",bold";
  293. }
  294. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  295. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  296. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  297. if(posuserid == trgtunprepdrid){
  298. color = "#0000ff";
  299. font = ",bold";
  300. }
  301. }
  302. }
  303. }else if(workflag=="uss" && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  304. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote 인 경우에는 일자가 조회조건에서 빠짐
  305. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  306. color = "#0000ff";
  307. font = ",bold";
  308. }
  309. }else{
  310. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  311. color = "#0000ff";
  312. font = ",bold";
  313. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  314. color = "#0000ff";
  315. font = ",bold";
  316. }
  317. }
  318. }
  319. if( Flag == 0 )
  320. {
  321. return color;
  322. }
  323. else if ( Flag == 1 )
  324. {
  325. return "dotum,9" + font;
  326. }
  327. }
  328. /**
  329. * @desc 미비기록 load
  330. */
  331. function fLoadUnPrepRec(){
  332. var currow = ds_grd_unpreplist.rowposition;
  333. var pid = ds_grd_unpreplist.getColumn(currow, "pid");
  334. var indd = ds_grd_unpreplist.getColumn(currow, "indd");
  335. var cretno = ds_grd_unpreplist.getColumn(currow, "cretno");
  336. var ioflag = ds_grd_unpreplist.getColumn(currow, "indschflag");
  337. var formcd = ds_grd_unpreplist.getColumn(currow, "formcd");
  338. var srcformcd = ds_grd_unpreplist.getColumn(currow, "srcformcd");
  339. var orddeptcd = ds_grd_unpreplist.getColumn(currow, "indschdeptcd");
  340. var formrecdd = ds_grd_unpreplist.getColumn(currow, "formrecdd");
  341. var dschdd = ds_grd_unpreplist.getColumn(currow, "dschdd");
  342. var formrecseq = ds_grd_unpreplist.getColumn(currow, "formrecseq");
  343. var oprsrvno = ds_grd_unpreplist.getColumn(currow, "oprsrvno");
  344. var instcd = sysf_getUserInfo("dutplceinstcd");
  345. var unprepitemcd = ds_grd_unpreplist.getColumn(currow, "unprepitemcd");
  346. var unprepno = ds_grd_unpreplist.getColumn(currow, "unprepno");
  347. var opendd = ds_init_openday.getColumn("cdid"); // 병원별 오픈일
  348. opendd = utlf_isNull(opendd) ? "" : opendd;
  349. //2009-07-08 오후 8:03:43 강지훈 수정 : 20091002로 하드코딩된 내역을 공통코드 "M0546" 유형코드 "M0037" 로 관리
  350. var preopendd = opendd.toDate().getAddDate(-1, "D").getDateFormat();
  351. var preOpenMonth = preopendd.substring(4,6);
  352. var preOpenDay = preopendd.substring(6,8);
  353. //2010-01-04 이남익 수정 : 응급실미비 조회를 위한 ordertype 구분
  354. var ordtype = ds_grd_unpreplist.getColumn(currow, "ordtype");
  355. var dutplcecd = sysf_getUserInfo("dutplcecd"); //사용자부서
  356. if(formrecdd <= preopendd){
  357. sysf_messageBox(preOpenMonth+"월 "+preOpenDay+"일까지 발생된 미비기록은 구OCS프로그램과 종이에 작성", "I008");
  358. return;
  359. }
  360. //작성미비된 기록인 경우, formrecseq값을 삭제함
  361. if(formrecseq == -1){
  362. formrecseq = "";
  363. }
  364. if((srcformcd != "0000002022")){
  365. //기록지 번호가 없고, 미비항목코드가 인증미비인 경우 기록지 로딩을 하지 않는다.
  366. if(utlf_isNull(formrecseq)){
  367. if(unprepitemcd == "0000000057" || unprepitemcd == "000000002"){
  368. sysf_messageBox("기록지와 연동되지 않아 인증", "E001");
  369. return;
  370. }
  371. }
  372. }
  373. // 2009.07.01 이경희
  374. // 환자의 퇴원일이 해당 일자 이후인 경우. 즉 재원중인 환자는 dschdd를 현재일자로 넘긴다.
  375. var today = utlf_getCurrentDate();
  376. if(dschdd > today) {
  377. dschdd = today;
  378. }
  379. // 수술기록연동
  380. // 수술환자 parameter 구조 ioflag▦pid ▦opcnfmdd▦cretno ▦instcd ▦perfdeptcd▦perfdrid▦patflag ▦procflag▦oprsrvno▦ophistno▦srchdd
  381. // 외래/입원구분▦등록번호▦수술일자▦생성번호▦기관코드▦집도과 ▦집도의 ▦환자구분▦처리구분
  382. // 수술기록 || Brief OP Note || Post Op Note(New)-20130619 || 마취기록지-20131015 || 마취전 평가 및 협진서-20131025
  383. if(srcformcd == "0000000676" || srcformcd == "0000003169" || srcformcd == "1300014169" || srcformcd == "0000002022" || srcformcd == "0000000737"){
  384. /*
  385. if(oprsrvno == ""){
  386. messageBox("수술정보를 연결할 수", "I004");
  387. return;
  388. }
  389. */
  390. var param = "T" + "▦" + // ioflag
  391. pid + "▦" + // pid
  392. formrecdd + "▦" + // opcnfmdd
  393. cretno + "▦" + // cretno
  394. instcd + "▦" + // instcd
  395. "" + "▦" + // perfdeptcd
  396. "" + "▦" + // perfdrid
  397. "I" + "▦" + // patflag
  398. "F" + "▦" + // procflag
  399. oprsrvno + "▦" + // oprsrvno
  400. "" + "▦" + // ophistno
  401. dschdd; // srchdd
  402. /*
  403. // 수술기록인 경우 환자원무키 조회를 한다.
  404. // 조회 결과가 1건인 경우에는 기존 로직대로 진행
  405. // 2건인 경우에는 조회된 결과를 팝업으로 띄워 사용자가 어떤 수진을 열것인지 선택
  406. // 선택된 수진으로 열도록 설정.
  407. param = fGetEtcPatPamPrimaryKey(param);
  408. */
  409. //수술기록 이외의 기록연동
  410. }else{
  411. /*추가 2010.01.05 이남익 응급실 관련 추가 이전
  412. var param = "I" + "▦" +
  413. pid + "▦" +
  414. indd + "▦" +
  415. cretno + "▦" +
  416. instcd + "▦" +
  417. dschdd;
  418. */
  419. if(ordtype!="E"){
  420. ordtype = "I";
  421. }
  422. var param = ordtype + "▦" +
  423. pid + "▦" +
  424. indd + "▦" +
  425. cretno + "▦" +
  426. instcd + "▦" +
  427. dschdd;
  428. }
  429. // frmf_setParameter("condparam", param);
  430. //기록번호가 없는 경우, 작성미비가 아니면 연동불가
  431. sysf_setGlobalVariable("linked_formcd" , formcd , "emr");
  432. sysf_setGlobalVariable("linked_formrecseq", formrecseq , "emr");
  433. sysf_setGlobalVariable("linked_formrecdd" , formrecdd , "emr");
  434. // jw.choe 상단정보 셋팅 부분 차후 로직 변경 필요!
  435. // var moniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
  436. // var objScreenInfo = system.getScreenRect(moniterIndex);
  437. // var left = (objScreenInfo.right - objScreenInfo.left) / 2 - 176;
  438. // var top = (objScreenInfo.bottom - objScreenInfo.top) / 2 - 65;
  439. // frmf_modal("SPMMO08900", "SPMMO08900", null, false, moniterIndex, left, top, 0, 0, null, null, null, "P");
  440. // //modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  441. // 상단화면 설정 시간동안 커서 제어
  442. this.setWaitCursor(true, true);
  443. appf_initPatientInfo(param);
  444. var gmainwnd = frmf_getMainViewer();
  445. frmf_setParameter("SMMMO04100_ANSWCNT", "");
  446. /*
  447. gmainwnd.javascript.navigate("SMMMR00100");
  448. */
  449. // 2013.10.15 김영기 마취기록지 및 마취전 평가 및 협진서 추가를 위한 로직 수정
  450. //if((dutplcecd == "2090000000" || dutplcecd == "2090300000")){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
  451. if(srcformcd == "0000002022" || srcformcd == "0000000737"){ //서식코드가 마취기록지 및 마취전 평가 일경우
  452. gmainwnd.frmf_openForm("SMMMR03700", null, null);//gmainwnd.javascript.navigate("SMMMR03700");
  453. //model.setValue("/root/temp2/unprepno", unprepno);
  454. frmf_setParameter("SMMMR03700_unprepno", unprepno);
  455. }else{
  456. gmainwnd.frmf_openForm("SMMMR00100", null, null);//gmainwnd.javascript.navigate("SMMMR00100");
  457. }
  458. // 커서 해제
  459. this.setWaitCursor(false, true);
  460. }
  461. /**
  462. * @desc 부서콤보 조회
  463. */
  464. function fGetDeptCodeComboList(orddeptflag, stnddd){
  465. //fGetDeptCodeComboList("ds_send_reqdata", "/root/init/orddept", "A", utlf_getCurrentDate());
  466. dsf_deleteDs("ds_hidden_mmb_orddept");
  467. dsf_createDs("ds_hidden_mmb_orddept");
  468. ds_send_reqdata.clearData();
  469. ds_send_reqdata.addColumn("orddeptflag", "string");
  470. ds_send_reqdata.addColumn("drflag", "string");
  471. ds_send_reqdata.addColumn("stnddd", "string");
  472. var nRow = ds_send_reqdata.addRow();
  473. ds_send_reqdata.setColumn(nRow, "orddeptflag", orddeptflag);
  474. if(!utlf_isNull(stnddd)){
  475. ds_send_reqdata.setColumn(nRow, "stnddd", stnddd);
  476. }
  477. var oParam = {};
  478. oParam.id = "TRMMB04101";
  479. oParam.service = "prcpbaseapp.EnvInfoMngt";
  480. oParam.method = "reqGetDeptComboList";
  481. oParam.inds = "req=ds_send_reqdata";
  482. oParam.outds = "ds_hidden_mmb_orddept=dept";
  483. oParam.async = false;
  484. oParam.callback = "cf_TRMMB04101";
  485. tranf_submit(oParam);
  486. // if( arErrorCode.pop("TRMMB04101") > -1 ){
  487. // dsf_copyDs(ds_init_cmb_deptcd, ds_hidden_mmb_orddept);
  488. // dsf_deleteDs("ds_hidden_mmb_orddept");
  489. // }
  490. // var mmb_rsltref = "/root/hidden/mmb/orddept";
  491. // model.removeNode(mmb_rsltref);
  492. // model.makeNode(mmb_rsltref);
  493. //
  494. // model.removeNode(ref);
  495. // model.makeValue(ref + "/orddeptflag", orddeptflag);
  496. // if(stnddd != ""){
  497. // model.makeValue(ref + "/stnddd", stnddd);
  498. // }
  499. //
  500. // if(submit("TRMMB04101", "false", ref, mmb_rsltref)==true){
  501. // model.copyNode(rsltref, mmb_rsltref);
  502. // model.removeNode(mmb_rsltref);
  503. // }
  504. // model.refresh();
  505. }
  506. /**
  507. * @desc 미비항목코드 Count예외코드 조회
  508. */
  509. function reqGetUnPrepBaseExptCnt(){
  510. var oParam = {};
  511. oParam.id = "TRMRI01703";
  512. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  513. oParam.method = "reqGetUnPrepBaseExptCnt";
  514. //oParam.inds = "req=ds_";
  515. oParam.outds = "ds_main_unprepiteminfo=unprepiteminfo";
  516. oParam.async = false;
  517. oParam.callback = "cf_TRMRI01703";
  518. tranf_submit(oParam);
  519. }
  520. /**
  521. * @desc 다음달을 구하는 함수
  522. * @param yyyy : 년도
  523. * @param mm : 월
  524. * @return yyyymm : 년월
  525. */
  526. function addMonth(yyyymm){
  527. var yyyy = yyyymm.substring(0, 4);
  528. var mm = yyyymm.substring(4, 6);
  529. var bfmm;
  530. if(mm.substr(0,1) == "0"){ //10월 이전인 경우, 앞자리 0을 제거
  531. bfmm = mm.substr(1,1);
  532. bfmm++;
  533. }else{ //10월 이후인 경우
  534. bfmm = mm;
  535. bfmm++;
  536. }
  537. if(bfmm > 12){ // 1월 이전을 선택한 경우, 년도를 바꿈
  538. bfmm = "01";
  539. yyyy++;
  540. }else if(bfmm < 10){ //10월 이후인 경우에는 앞자리에 0을 붙임.
  541. bfmm = "0".concat(bfmm);
  542. }
  543. return "" + yyyy + "".concat(bfmm);
  544. }
  545. /**
  546. * @desc 달간격을 구하는 함수
  547. * @param startdd : 시작년월(YYYY-MM)
  548. * @param enddd : 종료년월(YYYY-MM)
  549. * @return monthcnt : 달간격
  550. */
  551. function getMonthInterval(startdd, enddd){
  552. var monthcnt = 0;
  553. while(startdd != enddd){
  554. startdd = addMonth(startdd);
  555. monthcnt++;
  556. }
  557. return monthcnt;
  558. }
  559. /**
  560. * @desc 숫자여부 판단
  561. */
  562. function isNumber(str) {
  563. str += ''; // 문자열로 변환
  564. str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
  565. if (utlf_isNull(str) || isNaN(str)){
  566. return "N";
  567. }
  568. return "Y";
  569. }
  570. /**
  571. * @desc 미비의사 조회
  572. */
  573. function fReqGetUnPrepDrSmplList(srchflag, srchdata){
  574. ds_send_reqdata.clearData();
  575. ds_send_reqdata.addColumn("srchflag", "string");
  576. ds_send_reqdata.addColumn("srchdata", "string");
  577. var nRow = ds_send_reqdata.addRow();
  578. ds_send_reqdata.setColumn(nRow, "srchflag", srchflag);
  579. ds_send_reqdata.setColumn(nRow, "srchdata", srchdata);
  580. var oParam = {};
  581. oParam.id = "TRMRI02901";
  582. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  583. oParam.method = "reqGetUnPrepDrSmplList";
  584. oParam.inds = "req=ds_send_reqdata";
  585. oParam.outds = "ds_temp_userinfo=usercombo";
  586. oParam.async = false;
  587. oParam.callback = "cf_TRMRI02901";
  588. tranf_submit(oParam);
  589. }
  590. /**
  591. * @desc 의사별미비리스트 조회
  592. * @param unprepsign staffsign구분(Y/N)
  593. */
  594. function fReqGetUnPrepDrClsList(unprepsign){
  595. utlf_addLog("***** fReqGetUnPrepDrClsList(" + unprepsign + ") *****");
  596. // grd_unpreplist.allstyle("all", "color") = "";
  597. // grd_unpreplist.allstyle("all", "font-weight")= "";
  598. for(var i=0; i<grd_unpreplist.getCellCount("body");i++){
  599. if( i == grd_unpreplist.getBindCellIndex("body", "overchk") )
  600. continue;
  601. grd_unpreplist.setCellProperty("body", i, "color" ,"");
  602. grd_unpreplist.setCellProperty("body", i, "color2" ,"");
  603. grd_unpreplist.setCellProperty("body", i, "font" ,"");
  604. }
  605. ds_main_cond.setColumn(0, "unprepsign", unprepsign);
  606. ds_main_unpreplistcnt.clearData();
  607. ds_grd_unpreplist.clearData();
  608. dsf_copyDs(ds_send_reqdata, ds_main_cond);
  609. ds_send_reqdata.addColumn("ioflag", "string");
  610. ds_send_reqdata.addColumn("unprepstat", "string");
  611. ds_send_reqdata.addColumn("jobposflag", "string");
  612. ds_send_reqdata.addColumn("pathist", "string");
  613. ds_send_reqdata.addColumn("pid", "string");
  614. ds_send_reqdata.addColumn("indd", "string");
  615. ds_send_reqdata.addColumn("cretno", "string");
  616. ds_send_reqdata.addColumn("detldeptcd", "string");
  617. ds_send_reqdata.addColumn("offset", "int");
  618. ds_send_reqdata.addColumn("pagesize", "int");
  619. ds_send_reqdata.setColumn(0, "offset", "0");
  620. ds_send_reqdata.setColumn(0, "pagesize", "1000");
  621. if( !utlf_isNull(ds_grd_unpreplist.getColumnInfo("unprepdeptnm")))
  622. ds_grd_unpreplist.updateColID("unprepdeptnm", "deptengabbr");
  623. ds_grd_unpreplist.enableevent = false;
  624. var oParam = {};
  625. oParam.id = "TRMRI01801";
  626. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  627. oParam.method = "reqGetUnPrepDrClsList";
  628. oParam.inds = "req=ds_send_reqdata";
  629. oParam.outds = "ds_grd_unpreplist=unpreplist ds_main_unpreplistcnt=unpreplistcnt";
  630. oParam.async = false;
  631. oParam.callback = "cf_TRMRI01801";
  632. tranf_submit(oParam);
  633. if(arErrorCode.pop("TRMRI01801") > -1){
  634. //sysf_trace(ds_grd_unpreplist.saveXML());
  635. //xp code add : col id change!!!execprcpuniqno
  636. // if( !utlf_isNull(ds_grd_unpreplist.getColumnInfo("deptengabbr")))
  637. // ds_grd_unpreplist.updateColID("deptengabbr", "unprepdeptnm");
  638. fFormCountofSrcForminfo();
  639. //fFormCountofFominfo();
  640. fDoMergeUnPrepDrClsList();
  641. }
  642. ds_grd_unpreplist.enableevent = true;
  643. //grd_unpreplist.rowstyle(1, "overchk", "background-color") = "#ff0000";
  644. // for (var i=1 ; i < grd_unpreplist.rows ; i++ )
  645. // {
  646. // var overchk = model.getValue("/root/main/unpreplist/unpreplist["+ i +"]/overchk");
  647. // grd_unpreplist.cellstyle("color", i,1) = "#000000";
  648. // if (overchk > 24 ) {
  649. // grd_unpreplist.cellstyle("color", i,1) = "#FF0000";
  650. // }
  651. //
  652. // }
  653. }
  654. /**
  655. * @desc 의사별미비리스트 조회 스크롤이벤트
  656. * @param unprepsign staffsign구분(Y/N)
  657. */
  658. function fSubmitOnScroll()
  659. {
  660. if( ds_grd_unpreplist.rowcount < 1000)
  661. return;
  662. if(grd_unpreplist.vscrollbar.max == grd_unpreplist.vscrollbar.pos)
  663. {
  664. fDoUnMergeUnPrepDrClsList();
  665. // end of scroll
  666. dsf_copyDs(ds_send_reqdata, ds_main_cond);
  667. dsf_createDs("ds_grd_unpreplist_temp");
  668. ds_send_reqdata.addColumn("ioflag", "string");
  669. ds_send_reqdata.addColumn("unprepstat", "string");
  670. ds_send_reqdata.addColumn("jobposflag", "string");
  671. ds_send_reqdata.addColumn("pathist", "string");
  672. ds_send_reqdata.addColumn("pid", "string");
  673. ds_send_reqdata.addColumn("indd", "string");
  674. ds_send_reqdata.addColumn("cretno", "string");
  675. ds_send_reqdata.addColumn("detldeptcd", "string");
  676. ds_send_reqdata.addColumn("offset", "int");
  677. ds_send_reqdata.addColumn("pagesize", "int");
  678. var nextpage = ds_grd_unpreplist.rowcount;//grd_unpreplist.rows-grd_unpreplist.fixedRows;
  679. utlf_addLog("***** fSubmitOnScroll nextpage : " + nextpage + " *****");
  680. ds_send_reqdata.setColumn(0, "offset", nextpage);
  681. ds_send_reqdata.setColumn(0, "pagesize", "1000");
  682. var oParam = {};
  683. oParam.id = "TRMRI01801";
  684. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  685. oParam.method = "reqGetUnPrepDrClsList";
  686. oParam.inds = "req=ds_send_reqdata";
  687. oParam.outds = "ds_grd_unpreplist_temp=unpreplist ds_main_unpreplistcnt=unpreplistcnt";
  688. oParam.async = false;
  689. oParam.callback = "cf_TRMRI01801_append";
  690. tranf_submit(oParam);
  691. if(arErrorCode.pop("TRMRI01801") > -1){
  692. //sysf_trace(ds_grd_unpreplist.saveXML());
  693. //grd_unpreplist.dispatch("onmouseup"); // 스크롤바 처리를 위한 이벤트 발생
  694. fDoMergeUnPrepDrClsListScroll();
  695. fFormCountofSrcForminfo();
  696. }
  697. }
  698. }
  699. /**
  700. * @desc 의사별미비리스트 unmerge
  701. */
  702. function fDoUnMergeUnPrepDrClsList()
  703. {
  704. utlf_addLog("***** fDoUnMergeUnPrepDrClsList() *****");
  705. grdf_clearSort(grd_unpreplist);//grd_unpreplist.sortClear();
  706. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "pid"), "suppress", 0);
  707. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "hngnm"), "suppress", 0);
  708. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdd"), "suppress", 0);
  709. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdeptnm"), "suppress", 0);
  710. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "medispclnm"), "suppress", 0);
  711. // for(var i = 1; i < grd_unpreplist.rows; i++)
  712. // {
  713. // if(grd_unpreplist.isMerge(i, grd_unpreplist.colRef("pid")))
  714. // {
  715. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("pid"));
  716. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("hngnm"));
  717. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("dschdd"));
  718. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("dschdeptnm"));
  719. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("medispclnm"));
  720. // }
  721. // }
  722. // grd_unpreplist.refresh();
  723. // model.refresh();
  724. }
  725. /**
  726. * @desc 의사별미비리스트 Scroll merge
  727. */
  728. function fDoMergeUnPrepDrClsListScroll(){
  729. utlf_addLog("***** fDoMergeUnPrepDrClsListScroll() *****");
  730. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "pid"), "suppress", 1);
  731. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "hngnm"), "suppress", 2);
  732. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdd"), "suppress", 3);
  733. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdeptnm"), "suppress", 5);
  734. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "medispclnm"), "suppress", 4);
  735. var reccnt = 0;
  736. var patcnt = 0;
  737. var icnt = 0;
  738. for(var i = 0; i < ds_grd_unpreplist.rowcount; i++){
  739. var unprepitemcd = ds_grd_unpreplist.getColumn(i, "unprepitemcd");
  740. var result = ds_main_unprepiteminfo.lookup("unprepitemcd", unprepitemcd, "unprepitemcd");
  741. if(utlf_isNull(result)){
  742. reccnt++;
  743. }
  744. if(i == 0){
  745. var orgpid = ds_grd_unpreplist.getColumn(i, "pid"); //pid
  746. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd"); //dschdd
  747. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm"); //medispclnm
  748. patcnt++;
  749. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  750. continue;
  751. }
  752. var pid = ds_grd_unpreplist.getColumn(i, "pid"); //pid
  753. var dschdd = ds_grd_unpreplist.getColumn(i, "dschdd"); //dschdd
  754. var medispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm"); //medispclnm
  755. if(orgpid == pid && orgdschdd == dschdd && orgmedispclnm == medispclnm){
  756. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  757. }else{
  758. patcnt++;
  759. var orgpid = ds_grd_unpreplist.getColumn(i, "pid"); //pid
  760. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd"); //dschdd
  761. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm"); //medispclnm
  762. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  763. }
  764. }
  765. ds_main_cond.setColumn(0, "patcnt", patcnt);
  766. ds_main_cond.setColumn(0, "reccnt", reccnt);
  767. }
  768. /**
  769. * @desc 의사별미비리스트 merge
  770. */
  771. function fDoMergeUnPrepDrClsList()
  772. {
  773. utlf_addLog("***** fDoMergeUnPrepDrClsList() *****");
  774. if( grd_unpreplist.getBindCellIndex("body", "pid") == -1 ) return;
  775. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "pid") , "suppress", 1);
  776. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "hngnm") , "suppress", 2);
  777. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdd") , "suppress", 3);
  778. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdeptnm"), "suppress", 5);
  779. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "medispclnm"), "suppress", 4);
  780. var reccnt = 0;
  781. var patcnt = 0;
  782. var icnt = 0;
  783. for(var i = 0; i < ds_grd_unpreplist.rowcount; i++){
  784. var unprepitemcd = ds_grd_unpreplist.getColumn(i, "unprepitemcd");
  785. var result = ds_main_unprepiteminfo.lookup("unprepitemcd", unprepitemcd, "unprepitemcd");
  786. if(utlf_isNull(result)){
  787. reccnt++;
  788. }
  789. if(i == 0){
  790. var orgpid = ds_grd_unpreplist.getColumn(i, "pid");
  791. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd");
  792. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm");
  793. patcnt++;
  794. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  795. continue;
  796. }
  797. var pid = ds_grd_unpreplist.getColumn(i, "pid");
  798. var dschdd = ds_grd_unpreplist.getColumn(i, "dschdd");
  799. var medispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm");
  800. if(orgpid == pid && orgdschdd == dschdd && orgmedispclnm == medispclnm){
  801. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("pid"), i, grd_unpreplist.colRef("pid"));
  802. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("hngnm"), i, grd_unpreplist.colRef("hngnm"));
  803. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("dschdd"), i, grd_unpreplist.colRef("dschdd"));
  804. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("dschdeptnm"), i, grd_unpreplist.colRef("dschdeptnm"));
  805. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("medispclnm"), i, grd_unpreplist.colRef("medispclnm"));
  806. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  807. }else{
  808. patcnt++;
  809. var orgpid = ds_grd_unpreplist.getColumn(i, "pid");
  810. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd");
  811. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm");
  812. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  813. }
  814. //grd_unpreplist.rowStyle(i, "data", "background-color")= color;
  815. }
  816. ds_main_cond.setColumn(0, "patcnt", patcnt);
  817. ds_main_cond.setColumn(0, "reccnt", reccnt);
  818. }
  819. /**
  820. * @desc : 엑셀 저장
  821. */
  822. function fSaveExcel(){
  823. grdf_exportExcel(grd_unpreplist, "excel", "SheetName");
  824. // var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  825. // if (fileName != ""){
  826. // grd_unpreplist.saveExcel(fileName, "SheetName", true, true, "", "", "false");
  827. // }
  828. }
  829. /**
  830. * @desc : 의사별미비리스트 출력
  831. */
  832. function fPrntUnPrepInfo(){
  833. // model.setValue("/root/main/cond/unprepdeptnm", cmb_deptcd.label);
  834. // model.setValue("/root/main/cond/indschflagnm", rdo_inoutflag.label);
  835. // model.setValue("/root/main/cond/dateflagnm" , cmb_inoutddflag.label);
  836. // model.setValue("/root/main/cond/formnm" , cmb_formcd.label);
  837. // model.setValue("/root/main/cond/unprepitemnm", cmb_itemcd.label);
  838. var objDOM = rptf_createDOM(); // DOM 객체 설정
  839. rptf_setNodeListToDOM(objDOM, "/root/main/unpreplist/unpreplist", ds_grd_unpreplist); // 데이터셋 1
  840. //sysf_trace(objDOM.documentElement.source); // XML 내용출력
  841. var objParam = new Object();
  842. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  843. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  844. rptf_exeReportPreview30(["RPMRI01800"],[objParam], option);
  845. //exeReportPreview("RPMRI01800", "XMLSTR");
  846. }
  847. function fFormCountofSrcForminfo()
  848. {
  849. /* 0000000680 : 입퇴원요약기록지
  850. 0000000003 : 입원초진기록
  851. 0000000004 : 경과기록
  852. 0000003169 : Brief OP Note
  853. 0000001594 : Expired Note
  854. 0000000676 : 수술기록
  855. 0000001592 : Discharge Note
  856. 0800003416 : Post Op Note*/
  857. var arrItem = new Array("0000000680", "0000000003", "0000000004", "0000003169", "0000001594", "0000000676", "0000001592", "0800003416");
  858. for( i=0; i<arrItem.length;i++ )
  859. {
  860. // formcd 별 count 집계에서 환자당 formcd 별 count 집계로 수정 2010.02.25 성규훈
  861. var pidArray = Array(ds_grd_unpreplist.rowcount); //해당 form을 갖고있는 pid를 모아둘 배열
  862. var cnt = 0;
  863. for( j=0; j < ds_grd_unpreplist.rowcount; j++)
  864. {
  865. //var itemNode = nodelist.item(j);
  866. var pid = ds_grd_unpreplist.getColumn(j, "pid");
  867. var srcformcd = ds_grd_unpreplist.getColumn(j, "srcformcd");
  868. if(srcformcd == arrItem[i])
  869. {
  870. pidArray[j] = pid;
  871. }
  872. }
  873. pidArray.sort(); //pidArray 정렬
  874. for(j=0; j<pidArray.length; j++)
  875. {
  876. if(pidArray[j] != pidArray[j-1] && pidArray[j] != null)
  877. {
  878. cnt++
  879. }
  880. }
  881. ds_main_formcnt.setColumn(0, "cnt_"+arrItem[i], cnt);
  882. }
  883. }
  884. // jw.choe
  885. function fFormCountofFominfo()
  886. {
  887. var cnt = ds_grd_unpreplist.rowcount;
  888. var isFormcd="";
  889. var totFormInfo ="";
  890. var rowcnt = 0;
  891. var colcnt = 1;
  892. for (i=0; i<cnt; i++)
  893. {
  894. var formcd = ds_grd_unpreplist.getColumn(i, "formcd");
  895. var idx = isFormcd.indexOf(formcd);
  896. if ( idx == -1 )
  897. {
  898. var formnm = ds_grd_unpreplist.getColumn(i, "formnm");
  899. var subcnt = ds_grd_unpreplist.getCaseCount("formcd=='"+formcd+"'");
  900. var formcnt = "* " + formnm + " : " + subcnt;
  901. ds_main_formcnt_formcnt.setColumn(rowcnt, "col"+colcnt, formcnt);
  902. if ( colcnt == 5 )
  903. {
  904. rowcnt++;
  905. colcnt = 0;
  906. ds_main_formcnt_formcnt.addRow();
  907. }
  908. colcnt++;
  909. }
  910. isFormcd = isFormcd + formcd + "||";
  911. }
  912. //datagrid1.rebuild();
  913. }
  914. /*
  915. function fGetEtcPatPamPrimaryKey(condparam)
  916. {
  917. var condarray = condparam.split("▦");
  918. model.makeValue("/root/send/reqdata/pid" , condarray[1]); //등록번호
  919. model.makeValue("/root/send/reqdata/orddd" , condarray[2]); //수술일자
  920. model.makeValue("/root/send/reqdata/cretno" , condarray[3]); //생성번호
  921. model.makeValue("/root/send/reqdata/instcd" , condarray[4]); //기관코드
  922. model.makeValue("/root/send/reqdata/ioflag" , condarray[0]); //외래입원구분
  923. model.makeValue("/root/send/reqdata/orddeptcd", condarray[5]); //집도과
  924. model.makeValue("/root/send/reqdata/orddrid" , condarray[6]); //집도의
  925. model.makeValue("/root/send/reqdata/patflag" , condarray[7]); //환자구분 - dao sql에서 query구분자 설정
  926. model.makeValue("/root/send/reqdata/procflag" , condarray[8]); //처리구분(F:최초 조회, R:재조회)
  927. model.makeValue("/root/send/reqdata/oprsrvno" , condarray[9]); //수술예약번호
  928. model.makeValue("/root/send/reqdata/ophistno" , condarray[10]);//수술이력번호
  929. model.makeValue("/root/send/reqdata/srchdd" , condarray[11]);//조회일자
  930. if(submit("TRMRI01808") == true)
  931. {
  932. var param = "";
  933. var PamKeyList = findNodeset(model, "/root/main/pamkeyinfo/pamprimekey");
  934. if(PamKeyList.length < 1){
  935. model.makeValue("/root/send/reqdata/pid" , condarray[1]); //등록번호
  936. model.makeValue("/root/send/reqdata/orddd" , condarray[2]); //수술일자
  937. model.makeValue("/root/send/reqdata/cretno" , condarray[3]); //생성번호
  938. model.makeValue("/root/send/reqdata/instcd" , condarray[4]); //기관코드
  939. model.makeValue("/root/send/reqdata/ioflag" , condarray[0]); //외래입원구분
  940. model.makeValue("/root/send/reqdata/orddeptcd", condarray[5]); //집도과
  941. model.makeValue("/root/send/reqdata/orddrid" , condarray[6]); //집도의
  942. model.makeValue("/root/send/reqdata/patflag" , "O"); //환자구분 - dao sql에서 query구분자 설정
  943. model.makeValue("/root/send/reqdata/procflag" , condarray[8]); //처리구분(F:최초 조회, R:재조회)
  944. model.makeValue("/root/send/reqdata/oprsrvno" , condarray[9]); //수술예약번호
  945. model.makeValue("/root/send/reqdata/ophistno" , condarray[10]);//수술이력번호
  946. model.makeValue("/root/send/reqdata/srchdd" , condarray[11]);//조회일자
  947. submit("TRMRI01808");
  948. }
  949. if(PamKeyList.length > 1){
  950. modal("SPMRI03200", "1","150", "150", "SPMRI03200", "/root/main/pamkeyinfo", "/root/main/result");
  951. if(getParameter("SPMRI03200_useyn") == "Y")
  952. {
  953. var SelectedPamKey = findNodeset(model, "/root/main/result/pamkeyinfo");
  954. for(int i = 0; i < SelectedPamKey.length; i++)
  955. {
  956. var pid = model.getValue("/root/main/result/pamkeyinfo/pid"); //등록번호
  957. var orddd = model.getValue("/root/main/result/pamkeyinfo/orddd"); //수술일자
  958. var cretno = model.getValue("/root/main/result/pamkeyinfo/cretno"); //생성번호
  959. var instcd = model.getValue("/root/main/result/pamkeyinfo/instcd"); //기관코드
  960. var ioflag = model.getValue("/root/main/result/pamkeyinfo/ioflag"); //외래입원구분
  961. if(ioflag == "I")
  962. {
  963. param = "T" + "▦" + // ioflag
  964. pid + "▦" + // pid
  965. orddd + "▦" + // opcnfmdd
  966. cretno + "▦" + // cretno
  967. instcd + "▦" + // instcd
  968. "" + "▦" + // perfdeptcd
  969. "" + "▦" + // perfdrid
  970. "I" + "▦" + // patflag
  971. "F" + "▦" + // procflag
  972. oprsrvno + "▦" + // oprsrvno
  973. "" + "▦" + // ophistno
  974. dschdd; // srchdd
  975. }
  976. }
  977. }
  978. return param;
  979. }
  980. }
  981. }
  982. */
  983. /**
  984. * @---------------------------------------------------
  985. * @creat : 20110503 => 20140311 수정
  986. * @author : 최원돈 => 이윤주
  987. * @desc : 선택환자의 관련 미비상세내역을 조회한다.
  988. * @---------------------------------------------------
  989. */
  990. function callUnprepDtPopMenu()
  991. {
  992. var iRow = ds_grd_unpreplist.rowposition;
  993. var curObj = opener.frmf_findPopup("SPMRI03800"); //활성화된 미비상세 화면 object loading
  994. frmf_setParameter("SPMRI03800_pid", ds_grd_unpreplist.getColumn(iRow, "pid"));
  995. frmf_setParameter("SPMRI03800_indd", ds_grd_unpreplist.getColumn(iRow, "indd"));
  996. if(curObj != null) { //미비상세 화면 refresh;
  997. curObj.fInit();
  998. frmf_setFocusPop("SPMRI03800");
  999. }
  1000. else {
  1001. frmf_open("SPMRI03800", "SPMRI03800", null, null, 1, 400, 0, null, null, null, null, null, "M");
  1002. //frmf_open("SPMRI03800", 1, 400, 0);
  1003. }
  1004. //initPopupMenu(); // Reset Right Popupmenu
  1005. }
  1006. /**
  1007. * @---------------------------------------------------
  1008. * @creat : 20120518
  1009. * @author : 이윤주
  1010. * @desc : 미비내역을 조회.
  1011. * @---------------------------------------------------
  1012. */
  1013. function fSearchMibi()
  1014. {
  1015. var indschflag = ds_main_cond.getColumn(0, "indschflag");
  1016. grd_unpreplist.setCellProperty("head", grd_unpreplist.getBindCellIndex("body", "dschdeptnm") ,"text", "퇴원과");
  1017. //grd_unpreplist.caption = "시간경과(h)^미비과^미비분과^등록번호^환자명^퇴원일자^퇴원과^unprepno^전문의^미비의사^의사구분^입원일^서식코드^서식명^unprepitemcd^항목명^진료일자^재미비^전달사항 From 의료정보^전달사항 From 의사^발생번호^서식기록순번^최종수정자^최종수정일시^의사확인일시";
  1018. if(indschflag == "I"){ //재원미비인 경우
  1019. grd_unpreplist.setCellProperty("head", grd_unpreplist.getBindCellIndex("body", "dschdeptnm") ,"text", "재원과");
  1020. //grd_unpreplist.caption = "시간경과(h)^미비과^미비분과^등록번호^환자명^퇴원일자^재원과^unprepno^전문의^미비의사^의사구분^입원일^서식코드^서식명^unprepitemcd^항목명^진료일자^재미비^전달사항 From 의료정보^전달사항 From 의사^발생번호^서식기록순번^최종수정자^최종수정일시^의사확인일시";
  1021. }else if(indschflag == "A"){ //전체미비인 경우
  1022. grd_unpreplist.setCellProperty("head", grd_unpreplist.getBindCellIndex("body", "dschdeptnm") ,"text", "재(퇴)원과");
  1023. //grd_unpreplist.caption = "시간경과(h)^미비과^미비분과^등록번호^환자명^퇴원일자^재(퇴)원과^unprepno^전문의^미비의사^의사구분^입원일^서식코드^서식명^unprepitemcd^항목명^진료일자^재미비^전달사항 From 의료정보^전달사항 From 의사^발생번호^서식기록순번^최종수정자^최종수정일시^의사확인일시";
  1024. }
  1025. if(indschflag == "O"){
  1026. ds_grd_unpreplist.clearData();
  1027. roundrect1.rdo_inoutflag.setFocus();
  1028. return;
  1029. }
  1030. /* 응급실 미비 기능 추가로 Remark(2009.12.21 이남익)
  1031. if(indschflag == "E"){
  1032. model.removeNodeset("/root/main/unpreplist/unpreplist");
  1033. model.setFocus("rdo_inoutflag");
  1034. model.refresh();
  1035. return;
  1036. }
  1037. */
  1038. if(indschflag =="A"){
  1039. var unprepdrid = ds_main_cond.getColumn(0, "unprepdrid");
  1040. var deptcd = roundrect1.cmb_deptcd.value;
  1041. utlf_addLog(" indschflag == A **** unprepdrid : " + unprepdrid + " | deptcd : " + deptcd + " *****");
  1042. if(utlf_isNull(unprepdrid) && deptcd == "-"){
  1043. sysf_messageBox("미비과 또는 미비의사중 하나는 반드시 선택 또는 입력해야 합니다.","I003");
  1044. if(deptcd == "-"){
  1045. roundrect1.cmb_deptcd.setFocus();
  1046. } else {
  1047. roundrect1.ipt_unprepdrnm.setFocus();
  1048. }
  1049. return;
  1050. }
  1051. }
  1052. ds_main_cond.setColumn(0, "orderby", "");
  1053. fReqGetUnPrepDrClsList("N");
  1054. }
  1055. /**
  1056. * @---------------------------------------------------
  1057. * @creat : 20120518
  1058. * @author : 이윤주
  1059. * @desc : 스텝미비내역을 조회.
  1060. * @---------------------------------------------------
  1061. */
  1062. function fStaffMibi()
  1063. {
  1064. utlf_addLog("***** fStaffMibi() *****");
  1065. var indschflag = ds_main_cond.getColumn(0, "indschflag");
  1066. utlf_addLog("***** indschflag : " + indschflag + " *****");
  1067. if(indschflag == "O"){
  1068. ds_grd_unpreplist.clearData();
  1069. roundrect1.rdo_inoutflag.setFocus();
  1070. return;
  1071. }
  1072. if(indschflag == "E"){
  1073. ds_grd_unpreplist.clearData();
  1074. roundrect1.rdo_inoutflag.setFocus();
  1075. return;
  1076. }
  1077. if(indschflag =="A"){
  1078. var unprepdrid = ds_main_cond.getColumn(0, "unprepdrid");
  1079. var deptcd = roundrect1.cmb_deptcd.value;
  1080. if(utlf_isNull(unprepdrid) && deptcd == "-"){
  1081. sysf_messageBox("미비과 또는 미비의사중 하나는 반드시 선택 또는 입력해야 합니다.","I003");
  1082. if(deptcd == "-"){
  1083. roundrect1.cmb_deptcd.setFocus();
  1084. } else {
  1085. roundrect1.ipt_unprepdrnm.setFocus();
  1086. }
  1087. return;
  1088. }
  1089. }
  1090. ds_main_cond.setColumn(0, "orderby", "");
  1091. fReqGetUnPrepDrClsList("Y");
  1092. }
  1093. /**===================================================================================
  1094. @desc : 깜빡이 기능
  1095. =====================================================================================*/
  1096. function fviewinfomsg(){
  1097. // window.clearInterval(gTimerID);
  1098. // gTimerID = window.setInterval("fviewinfomsg()", gIntervalTime);
  1099. if(gTimeCnt%2 == 0){
  1100. cap_infomsg.visible = true;
  1101. }else{
  1102. cap_infomsg.visible = false;
  1103. }
  1104. // cap_infomsg.refresh();
  1105. gTimeCnt++;
  1106. }
  1107. ]]></Script>