MMR01300.js 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361
  1. var gSubmitID = TX_SUBMIT_COMN_FORM;
  2. var g_formrec_oldimge = "";
  3. var g_recitem_oldimge = "";
  4. var g_formrec_newimge = "";
  5. var g_recitem_newimge = "";
  6. /**
  7. * @desc : 저장을 위한 기록정보 셋팅
  8. * @id :
  9. * @event : xforms-ready
  10. * @return : void
  11. * @authur : 박종훈
  12. */
  13. function fSetSaveComnFormRecInfo()
  14. {
  15. var msgYn = opener.window.javascript.getParameter("SaveMsgYn");
  16. //
  17. if (fGetFormRec("status") == "D" && msgYn != "N")
  18. {
  19. var rtnVal = messageBox("기록을 ", "Q001");
  20. if (rtnVal == "7")
  21. return "N";
  22. }
  23. else
  24. {
  25. var rtn = fCheckChangeData();
  26. if (rtn == "N")
  27. {
  28. return "N";
  29. }
  30. else if (rtn == "M")
  31. {
  32. //fSetFormRec("status", "M");
  33. }
  34. else
  35. {
  36. //gPageInfo.recItemRef --> /root/main/recinfo/recitem
  37. //gPageInfo.recItemRef2 --> /root/hidden/recinfo/recitem
  38. copyNodeset(gPageInfo.recItemRef, gPageInfo.recItemRef2, "replace", model, model);
  39. //////////////////
  40. //2010.02.10, 주희경,
  41. //가계도, 이미지, 추가입력 데이터 저장 시 필수 컬럼 누락 된 것 재셋팅, 노드 중복 방지를 위해 model.makeNode사용.
  42. var cnts = model.getXpathValue("count("+gPageInfo.recItemRef+")");
  43. for(var i = 1; i <= cnts; i++)
  44. {
  45. var degnitemkind = model.getValue(gPageInfo.recItemRef+"["+i+"]/degnitemkind");
  46. var degnitemnm = model.getValue(gPageInfo.recItemRef+"["+i+"]/degnitemnm");
  47. if ( degnitemkind == "IMG" || degnitemkind=="FDG" || degnitemnm =="§추가입력" )
  48. {
  49. model.makeNode(gPageInfo.recItemRef+"["+i+"]/recrefcd");
  50. model.makeNode(gPageInfo.recItemRef+"["+i+"]/recitemnm");
  51. model.makeNode(gPageInfo.recItemRef+"["+i+"]/supdegnitemno");
  52. model.makeNode(gPageInfo.recItemRef+"["+i+"]/extdegnitemlevlcd");
  53. model.makeNode(gPageInfo.recItemRef+"["+i+"]/rectermflag");
  54. model.makeNode(gPageInfo.recItemRef+"["+i+"]/degnunitcd");
  55. }
  56. }
  57. ///////////////
  58. grd_recitem.rebuild();
  59. var colref_degnitemkind = grd_recitem.colref("degnitemkind");
  60. var colref_colno = grd_recitem.colref("colno");
  61. var colref_recimge = grd_recitem.colref("recimge");
  62. for (var i = 0; i < grd_recitem.rows; i++)
  63. {
  64. grd_recitem.rowstatus(i) = 1;
  65. }
  66. var CSVdata = grd_recitem.getUpdateData();
  67. model.makeValue("/root/send/saverecinfo/recitem", CSVdata);
  68. //model.makeValue("/root/send/saverecinfo/recitem", getNodeListCSV(instance1.selectNodes(gPageInfo.recItemRef)));
  69. }
  70. }
  71. // gPageInfo.recMastRef-->/root/main/recinfo/formrec
  72. copyNodeset("/root/send/saverecinfo/formrec", gPageInfo.recMastRef, "replace", model, model);
  73. //20110916
  74. model.makeValue("/root/send/saverecinfo/formrec/rscdoctid", model.getValue(gPageInfo.recMastRef + "/rscdoctid")); //20121112 정창혁 수신의 추가
  75. model.setValue("/root/send/saverecinfo/formrec/orddrid", model.getValue(gPageInfo.recMastRef + "/recvuserid"));
  76. model.setValue("/root/send/saverecinfo/formrec/orddeptcd", model.getValue(gPageInfo.recMastRef + "/recvdeptcd"));
  77. //20110916
  78. // 2014/01/28 마취통증의학과로 컨설트 의뢰시 의뢰구분을 세팅
  79. model.makeValue("/root/send/saverecinfo/formrec/anstflag", ivw_base.model.getValue("/root/init/cond/anstflag"));
  80. //진찰료 산정여부 세팅(20170521 이윤주)
  81. model.makeValue("/root/send/saverecinfo/formrec/jinyn", ivw_base.model.getValue("/root/init/cond/jinyn"));
  82. }
  83. function fSetSaveComnFormRecInfo_old()
  84. {
  85. var msgYn = opener.window.javascript.getParameter("SaveMsgYn");
  86. if (fGetFormRec("status") == "D" && msgYn != "N")
  87. {
  88. var rtnVal = messageBox("기록을 ", "Q001");
  89. if (rtnVal == "7")
  90. return "N";
  91. }
  92. else
  93. {
  94. var rtn = fCheckChangeData();
  95. if (rtn == "N")
  96. {
  97. return "N";
  98. }
  99. else if (rtn == "M")
  100. {
  101. fSetFormRec("status", "M");
  102. }
  103. else
  104. {
  105. copyNodeset(gPageInfo.recItemRef, gPageInfo.recItemRef2, "replace", model, model);
  106. grd_recitem.rebuild();
  107. var colref_degnitemkind = grd_recitem.colref("degnitemkind");
  108. var colref_colno = grd_recitem.colref("colno");
  109. var colref_recimge = grd_recitem.colref("recimge");
  110. for (var i = 0; i < grd_recitem.rows; i++)
  111. {
  112. grd_recitem.rowstatus(i) = 1;
  113. if (grd_recitem.valueMatrix(i, colref_degnitemkind) == "IMG" &&
  114. grd_recitem.valueMatrix(i, colref_colno) != "FILE")
  115. {
  116. grd_recitem.valueMatrix(i, colref_recimge) = "";
  117. }
  118. }
  119. model.makeValue("/root/send/saverecinfo/recitem", grd_recitem.getUpdateData());
  120. }
  121. }
  122. copyNodeset("/root/send/saverecinfo/formrec", gPageInfo.recMastRef, "replace", model, model);
  123. }
  124. /**
  125. * @desc : 기록 서명정보 가져오기
  126. * @id :
  127. * @event : xforms-ready
  128. * @return : void
  129. * @authur : 박종훈
  130. */
  131. function fGetSignRecInfo()
  132. {
  133. var sign_path = "/root/temp/signinfo";
  134. var sign_path_mast = sign_path + "/환자기록정보";
  135. var sign_path_detl = sign_path + "/환자기록내용";
  136. model.makeNode(sign_path_mast + "/등록번호", model.getValue());
  137. }
  138. /**
  139. * @desc : 기록 저장 로직
  140. * @id :
  141. * @event : xforms-ready
  142. * @return : void
  143. * @authur : 박종훈
  144. */
  145. var gSubmitSaveFlag = true;
  146. function fSaveComnFormRecInfo(signedYn)
  147. {
  148. var savedInfo = new SAVED_INFO();
  149. if (signedYn != null && signedYn != "")
  150. {
  151. fSetFormRec("signedyn", signedYn);
  152. }
  153. //2009.12.17 안치원 submitID설정값을 child에서 할 수 있도록
  154. //저장직전에 child에서 설정된 submitID로 설정된다.
  155. var submitID = gSubmitID;
  156. try {
  157. var childSubmitID = ivw_base.window.javascript.getSubmitID_MMR01300I();
  158. if (! isNull(childSubmitID)) {
  159. submitID = childSubmitID;
  160. }
  161. } catch (e) {
  162. }
  163. if (fSetSaveComnFormRecInfo() == "N")
  164. {
  165. return savedInfo;
  166. }
  167. var stext_path = "/root/send/saverecinfo/formrec/certcnts";
  168. var bfstext_path = "/root/send/saverecinfo/formrec/bfcertcnts"; //인증전데이터
  169. var espiyn_path = "/root/send/saverecinfo/formrec/espiyn"; //인증저장여부
  170. var nonCert = opener.window.javascript.getParameter("SSMMR01100_nonCert");
  171. setParameter("SSMMR01100_nonCert", "");
  172. if (signedYn == "Y")
  173. {
  174. /*if (false && isDevMode())
  175. {
  176. var sUserID = "00000001";//getUserInfo("userid");
  177. }
  178. else
  179. {
  180. var sUserID = getUserInfo("userid");
  181. }*/
  182. var sUserID = getUserInfo("userid");
  183. //이미지 삭제관련
  184. model.makeNode("/root/remtmp");
  185. model.makeNode("/root/remitemtmp");
  186. model.makeNode("/root/remtmp/recinfo");
  187. model.copyNode("/root/remtmp/recinfo", gPageInfo.recRef);
  188. model.removeNodeset("/root/remtmp/recinfo/recitem");
  189. model.copyNode("/root/remitemtmp", gPageInfo.recRef);
  190. model.removeNodeset("/root/remitemtmp/formrec");
  191. var itemNode = model.instances(0).selectNodes("/root/remitemtmp/recitem");
  192. for(var i = 0; i < itemNode.length; i++)
  193. {
  194. var sDgnItmKind = itemNode.item(i).selectSingleNode("degnitemkind").text;
  195. if (sDgnItmKind == "IMG" || sDgnItmKind == "FDG")
  196. {
  197. model.setValue("/root/remitemtmp/recitem[" + (i + 1) + "]/srcimge", "");
  198. model.setValue("/root/remitemtmp/recitem[" + (i + 1) + "]/recimge", "");
  199. model.setValue("/root/remitemtmp/recitem[" + (i + 1) + "]/reccnts", "");
  200. }
  201. }
  202. //model.copyNodeset("/root/remtmp", "/root/remitemtmp");
  203. copyNodeset("/root/remtmp/recinfo/recitem", "/root/remitemtmp/recitem", "append", model, model);
  204. model.removeNodeset("/root/remitemtmp"); //삭제를 위한 기록항목 인스턴스 삭제
  205. //var signrecinfo = model.instances(0).selectSingleNode(gPageInfo.recRef).xml;
  206. //이미지 삭제관련
  207. var signrecinfo = model.instances(0).selectSingleNode("/root/remtmp/recinfo").xml; //이미지 삭제된 인스턴스
  208. model.removeNodeset("/root/remtmp"); //삭제를 위한 기록항목 인스턴스 삭제
  209. if (nonCert == "Y")
  210. {
  211. var signedrecinfo = "";
  212. }
  213. else
  214. {
  215. //2010.02.25 안치원 - 입퇴원요약기록 - 퇴원처방 입력방법 변경(팝업)
  216. if (model.getValue(PATH_LOADER_INI+"/autoSaveYn") == "Y") {
  217. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  218. var signedrecinfo = zesfSignData(signrecinfo, sUserID, false);
  219. //var signedrecinfo = "-";
  220. // KNUH_20100820_박성호_end
  221. }
  222. else {
  223. //서식검색창이 포커스는 잡는 문제로 진료기록메인에서 인증창 호출 할 경우 기록메인의 저장로직 타도록 수정
  224. //2008-08-01 박종훈
  225. var oprnerId = opener.window.javascript.getScreenID();
  226. //[요청번호:13338, Task No:52246, 우선순위:SY] 2010.04.09 박종훈수정(내원구분이 S(건진)인 경우 O로 넘겨줌)
  227. var sChosflag = fGetFormRec("chosflag");
  228. if (sChosflag == "S")
  229. {
  230. sChosflag = "O";
  231. }
  232. if(oprnerId == "SMMMR00100")
  233. {
  234. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  235. var signedrecinfo = opener.window.javascript.fMakeSignData(signrecinfo, sChosflag, sUserID);
  236. //var signedrecinfo = "-";
  237. // KNUH_20100820_박성호_end
  238. }
  239. else
  240. {
  241. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  242. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(1/6)
  243. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  244. // 하드코드 값 가져오기 로직
  245. var ls_emrinptsavetime = fGetHardCDList("Y", 401, 3);
  246. var ll_emrinptsavetime = ls_emrinptsavetime == "" ? 0 : parseInt(ls_emrinptsavetime) * -1;
  247. // SMAER00400_결과관리(서식).xrw 에서는 모두 외래기준으로 인증서를 띄우도록 적용 // 20111202 knuh 최원돈
  248. // gSubmitSaveFlag 는 SMAER00400_결과관리(서식)에서만 사용하여서 적용함
  249. //if (sChosflag == "O"
  250. if ( sChosflag == "O"
  251. || !gSubmitSaveFlag)
  252. {
  253. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  254. var signedrecinfo = zesfSignData(signrecinfo, sUserID, false); //외래환자일경우 한번만 인증서 띄움
  255. //var signedrecinfo = "-"; //외래환자일경우 한번만 인증서 띄움
  256. // KNUH_20100820_박성호_end
  257. }
  258. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  259. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(2/6)
  260. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  261. // 띄우지 않는 로직
  262. else if ( ( sChosflag == "I"
  263. || sChosflag == "E")
  264. && ll_emrinptsavetime < 0
  265. && getGlobalVariable("emrinptsavetime") >= getCurrentDateTime().toDate("YYYYMMDD hhmmss").getAddDate(ll_emrinptsavetime, "m").getDateFormat("YYYYMMDD hhmmss"))
  266. {
  267. var signedrecinfo = zesfSignData(signrecinfo, sUserID, false); //외래환자일경우 한번만 인증서 띄움
  268. }
  269. else
  270. {
  271. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  272. var signedrecinfo = zesfSignData(signrecinfo, sUserID, true);
  273. //var signedrecinfo = "-";
  274. // KNUH_20100820_박성호_end
  275. }
  276. }
  277. if (signedrecinfo == "")
  278. {
  279. setParameter("mediRecCnclYn", "Y");
  280. }
  281. }
  282. }
  283. if (signedrecinfo == "" && nonCert != "Y")
  284. {
  285. fSetFormRec("signedyn", "N");
  286. return savedInfo;
  287. }
  288. else
  289. {
  290. fSetFormRec("espiyn", signedYn);
  291. model.makeValue(espiyn_path, signedYn);
  292. }
  293. model.makeValue(bfstext_path, signrecinfo);
  294. model.makeValue(stext_path, signedrecinfo);
  295. }
  296. else
  297. {
  298. fSetFormRec("espiyn", "N");
  299. model.makeValue(espiyn_path, "N");
  300. model.makeValue(stext_path, "");
  301. }
  302. if (gSubmitSaveFlag)
  303. {
  304. /*lyj 막음
  305. var p = opener.model;
  306. //20130405 정창혁 CP/CPG관련 빈 서식 저장일때. 스텝정보에 formrecseq저장하고 생성된 formrecseq를 반환 받아.. 서식정보 생성시 설정
  307. if (fGetFormRec("calledflag").indexOf("cpg") != -1 && model.getValue("/root/main/recinfo/formrec/formrecseq") == "") { //p.getValue("/root/main/stepinfo/info/formrecseq") != "") {
  308. //CPG스텝정보에 FORMRECSEQ생성하는 서브및 호출
  309. model.makeValue("/root/send/cpg/cpgno", p.getValue("/root/main/masterinfo/info/cpgno"));
  310. model.makeValue("/root/send/cpg/cpghistseq", p.getValue("/root/main/masterinfo/info/cpghistseq"));
  311. model.makeValue("/root/send/cpg/stepno", p.getValue("/root/main/stepinfo/info/stepno"));
  312. var dtl = opener.ivw_outline.ivw_detail;
  313. //alert(dtl.grd_formlist.valueMatrix(dtl.grd_formlist.row, dtl.grd_formlist.colRef("formseq")));
  314. model.makeValue("/root/send/cpg/formseq", dtl.grd_formlist.valueMatrix(dtl.grd_formlist.row, dtl.grd_formlist.colRef("formseq")));
  315. if (submit("TXMMR01304")) {
  316. //반환된 formrecseq를 instance에 설정
  317. if (instance1.selectSingleNode("/root/send/saverecinfo/formrec") != null) {
  318. model.makeValue("/root/main/recinfo/formrec/formrecseq", model.getValue("/root/hidden/stepinfo/rsltmsg/formrecseq"));
  319. dtl.grd_formlist.valueMatrix(dtl.grd_formlist.row, dtl.grd_formlist.colRef("formrecseq")) = model.getValue("/root/hidden/stepinfo/rsltmsg/formrecseq");
  320. model.makeValue("/root/send/saverecinfo/formrec/formrecseq", model.getValue("/root/hidden/stepinfo/rsltmsg/formrecseq"));
  321. }
  322. }
  323. }
  324. */
  325. if (submit(submitID))
  326. {
  327. var mess = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/msg");
  328. //2010.07.22 안치원 - 진료의뢰 회신시 회신내용 저장되지 않는 오류 해결을 위해 경고창을 표시하며 인스턴스와 클라이언트로그를 메일로 발송한다.
  329. var errFlag = "[ERR_CNST_RECV_CNTS_EMPTY]";
  330. if (mess.indexOf(errFlag) == 0) {
  331. sendSystemMail_MMR071(errFlag, null);
  332. window.clipBoardData = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='0011529.0000146']/reccnts");
  333. messageBox(mess, "E", "");
  334. model.makeValue(gPageInfo.savedInfoRef + "/rsltmsg/msg", "1");
  335. mess = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/msg");
  336. }
  337. if (fGetFormRec("status") == "C" && mess == "1")
  338. {
  339. //messageBox("신규작성 되었습니다.", "I", "");
  340. }
  341. else if (fGetFormRec("status") == "U")
  342. {
  343. if(mess == "1")
  344. {
  345. if (fGetFormRec("cosignyn") == "Y")
  346. {
  347. //2010-03-31 오전 11:19:16 강지훈 추가 : 최종진단명 요약지 추가
  348. fSetFormRec("cosign", "Y");
  349. var lastDiagSaveFlag = getParameter("SSMMR01100_fChkLastDiag");
  350. if(lastDiagSaveFlag == "Y"){
  351. messageBox("저장되었습니다.", "I", "");
  352. }
  353. else{
  354. messageBox("STAFF SIGN 저장되었습니다.", "I", "");
  355. }
  356. }
  357. //messageBox("수정저장 되었습니다.", "I", "");
  358. }
  359. else
  360. {
  361. messageBox(mess, "I", "");
  362. }
  363. }
  364. else if (fGetFormRec("status") == "D")
  365. {
  366. if(mess == "1")
  367. {
  368. //messageBox("삭제 되었습니다.", "I", "");
  369. }
  370. else
  371. {
  372. messageBox(mess, "I", "");
  373. }
  374. setParameter("afterRecDelete", "Y");
  375. }
  376. else
  377. {
  378. messageBox("저장에 실패하였습니다.", "I", "");
  379. }
  380. fSetFormRec("espiyn", fGetFormRec("signedyn"));
  381. g_formrec_newimge_cosign = fGetCSV("formrec");
  382. g_recitem_newimge_cosign = fGetCSV(gPageInfo.recItemRef2);
  383. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  384. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(3/6)
  385. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  386. // 인증저장된 시간을 저장.
  387. if ((fGetFormRec("chosflag") == "I" || fGetFormRec("chosflag") == "E")&& signedYn == "Y" ) {
  388. setGlobalVariable("emrinptsavetime", getCurrentDateTime());
  389. }
  390. } else {
  391. var type = model.getValue(gvErrorMsgPath+"/type");
  392. var code = model.getValue(gvErrorMsgPath+"/code");
  393. var msg = model.getValue(gvErrorMsgPath+"/msg");
  394. var desc = model.getValue(gvErrorMsgPath+"/description");
  395. /*if (type == "error") {
  396. if (msg.indexOf(gMMR_INVALID_RECINFO_MMR071) == 1) {
  397. sendSystemMail_MMR071(gMMR_INVALID_RECINFO_MMR071, null);
  398. }
  399. }*/
  400. }
  401. if (model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/msg") == "1")
  402. {
  403. // savedInfo.formrecseq = parseInt(model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/formrecseq"));
  404. // savedInfo.rechistseq = parseInt(model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/rechistseq"));
  405. //2010.01.03 안치원 - formrecseq 지수로 표현되는 오류수정
  406. savedInfo.formrecseq = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/formrecseq");
  407. savedInfo.rechistseq = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/rechistseq");
  408. g_formrec_oldimge = g_formrec_newimge;
  409. g_recitem_oldimge = g_recitem_newimge;
  410. if (model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/cosign") == "Y")
  411. {
  412. btn_cosign.disabled = true;
  413. //2010-03-31 오전 10:01:01 강지훈 수정 : 최종진단명 요약지 추가
  414. //if (isProgForm() && !ivw_base.window.grup_base.disabled){
  415. // ivw_base.window.grup_base.disabled = true;
  416. //}
  417. if (isProgForm())
  418. {
  419. if(fGetFormRec("srcformcd") == "0000000680"){
  420. var childrenObj = ivw_base.window.grup_base.children;
  421. for(i=0; i< childrenObj.length; i++){
  422. childObj = childrenObj.item(i);
  423. if (childObj.attribute("id") == "btn_lastdiag_0001013001"){
  424. childObj.disabled = false;
  425. }
  426. else{
  427. childObj.disabled = true;
  428. }
  429. }
  430. }
  431. else if(!ivw_base.window.grup_base.disabled){
  432. ivw_base.window.grup_base.disabled = true;
  433. }
  434. }
  435. }
  436. else
  437. {
  438. btn_cosign.disabled = false;
  439. //2010-04-07 강지훈 수정 : TF버그로 인해 분기. TF버그 수정반영되면 수정해야함.
  440. if (isProgForm() && ivw_base.window.grup_base.disabled)
  441. {
  442. ivw_base.window.grup_base.disabled = false;
  443. }
  444. else if(isProgForm() && fGetFormRec("srcformcd") == "0000000680"){
  445. ivw_base.window.grup_base.disabled = false;
  446. }
  447. //2010-04-07 오전 11:34:57 강지훈 : TF버그 수정후 반영해야할 source
  448. //if (isProgForm()){
  449. // ivw_base.window.grup_base.disabled = false;
  450. //}
  451. }
  452. }
  453. if (fGetFormRec("status") != "D" && savedInfo.formrecseq != 0)
  454. {
  455. fSetFormRec("status", "U");
  456. fSetFormRec("formrecseq", savedInfo.formrecseq);
  457. fSetFormRec("lastrechistseq", savedInfo.rechistseq);
  458. fSetFormRec("espiseq", model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/espiseq"));
  459. }
  460. if(mess == "1" || savedInfo.formrecseq != null)
  461. {
  462. return savedInfo;
  463. }
  464. }
  465. else
  466. {
  467. savedInfo.rechistseq = -100
  468. return savedInfo;
  469. }
  470. }
  471. /**
  472. * @desc : 기록 저장 후 정보 셋팅
  473. * @id :
  474. * @event : xforms-ready
  475. * @return : void
  476. * @authur : 박종훈
  477. */
  478. function fSetSavedInfo(formrecseq, rechistseq, espiseq)
  479. {
  480. // debugger;
  481. g_formrec_oldimge = g_formrec_newimge;
  482. g_recitem_oldimge = g_recitem_newimge;
  483. if (fGetFormRec("status") != "D")
  484. {
  485. fSetFormRec("status", "U");
  486. fSetFormRec("formrecseq", formrecseq);
  487. fSetFormRec("lastrechistseq", rechistseq);
  488. fSetFormRec("espiseq", espiseq);
  489. }
  490. }
  491. /**
  492. * @desc : 기록 내용 조회
  493. * @id :
  494. * @event : xforms-ready
  495. * @return : void
  496. * @authur : 박종훈
  497. */
  498. function fGetComnFormRecInfo(formrecseq)
  499. {
  500. model.makeValue("/root/send/reqrec/formrecseq", formrecseq);
  501. submit("TRMMR01301");
  502. doReplaceLtGt("/root/temp2/getrecinfo/recinfo/recitem");
  503. if (gMediRecMain && isOpenModalForm(model.getValue("/root/temp2/getrecinfo/recinfo/formrec/formprogflag")))
  504. {
  505. return true;
  506. }
  507. else
  508. {
  509. //fInitDataSrc();
  510. //var pageInfo = new PAGEINFO();
  511. //copyNodeset(pageInfo.recRef, pageInfo.popRecinfoRef);
  512. // 20080519 main3-> temp2/getrecinfo 소스 튜닝
  513. //model.removenodeset("/root/temp2");
  514. return false;
  515. }
  516. }
  517. /**
  518. * @desc : 해당 값을 인스턴스에 추가
  519. * @id :
  520. * @event : xforms-ready
  521. * @return : void
  522. * @authur : 박종훈
  523. */
  524. function fSetFormRec(key, val)
  525. {
  526. model.makeValue(gPageInfo.recMastRef + "/" + key, val);
  527. }
  528. /**
  529. * @desc : 해당 값을 인스턴스에서 가져오기
  530. * @id :
  531. * @event : xforms-ready
  532. * @return : void
  533. * @authur : 박종훈
  534. */
  535. function fGetFormRec(key)
  536. {
  537. return model.getValue(gPageInfo.recMastRef + "/" + key);
  538. }
  539. /**
  540. * @desc : 해당 값을 인스턴스에 추가(확장서식)
  541. * @id :
  542. * @event : xforms-ready
  543. * @return : void
  544. * @authur : 박종훈
  545. */
  546. function fSetExtnInfo(key, val)
  547. {
  548. model.makeValue(gPageInfo.recMastRef + "/" + key, val);
  549. }
  550. /**
  551. * @desc : 해당 값을 인스턴스에서 가져오기(확장서식)
  552. * @id :
  553. * @event : xforms-ready
  554. * @return : void
  555. * @authur : 박종훈
  556. */
  557. function fGetExtnInfo(key)
  558. {
  559. return model.getValue(gPageInfo.recMastRef + "/" + key);
  560. }
  561. /**
  562. * @desc : path에 해당하는 노드의 값을 CSV형태로 가져오기
  563. * @id :
  564. * @event : xforms-ready
  565. * @return : void
  566. * @authur : 박종훈
  567. */
  568. function fGetCSVByRecInfo(path)
  569. {
  570. if (path == null)
  571. path = "/root/temp2/getrecinfo/recinfo";
  572. var nodes = model.instances(0).selectNodes(path + "/formrec");
  573. var sFormRec = getNodeListCSV(nodes);
  574. nodes = model.instances(0).selectNodes(path + "/recitem");
  575. var sRecItem = getNodeListCSV(nodes);
  576. var info = sFormRec +INFO_CSV_DEL+ sRecItem;
  577. return info;
  578. }
  579. /**
  580. * @desc : CSV형태의 값을 인스턴스에 추가
  581. * @id :
  582. * @event : xforms-ready
  583. * @return : void
  584. * @authur : 박종훈
  585. */
  586. function fSetRecInfoByCSV(csvStr)
  587. {
  588. var info = csvStr.split(INFO_CSV_DEL);
  589. setCSVToNode(gPageInfo.recRef, info[0], "formrec");
  590. setCSVToNode(gPageInfo.recRef, info[1], "recitem");
  591. }
  592. /**
  593. * @desc : 변경된 데이터 여부 검사
  594. * @id :
  595. * @event : xforms-ready
  596. * @return : void
  597. * @authur : 박종훈
  598. */
  599. function fCheckChangeData()
  600. {
  601. var rtn;
  602. var ischg_formrec = false;
  603. var ischg_recitem = false;
  604. // debugger;
  605. g_formrec_newimge = fGetCSV("formrec");
  606. g_recitem_newimge = fGetCSV(gPageInfo.recItemRef2);
  607. if (fGetFormRec("status") == "C")
  608. {
  609. var nodelist = model.instances(0).selectNodes(gPageInfo.recItemRef2);
  610. if (nodelist.length == 0)
  611. {
  612. messageBox("저장 할 데이터가 ", "I004");
  613. rtn = "N";
  614. }
  615. else
  616. {
  617. rtn = "Y";
  618. }
  619. }
  620. else if (fGetFormRec("status") == "U")
  621. {
  622. model.makeValue("/root/temp/saveimge/status", fGetFormRec("status"));
  623. model.makeValue("/root/temp/saveimge/oldimge", g_formrec_oldimge);
  624. model.makeValue("/root/temp/saveimge/newimge", g_formrec_newimge);
  625. if (g_formrec_oldimge != g_formrec_newimge)
  626. {
  627. ischg_formrec = true;
  628. }
  629. if (g_recitem_oldimge != g_recitem_newimge)
  630. {
  631. ischg_recitem = true;
  632. }
  633. if (fGetFormRec("espiyn") == "N" && fGetFormRec("signedyn") == "Y")
  634. {
  635. rtn = "Y";
  636. }
  637. else if (ischg_formrec == false && ischg_recitem == false)
  638. {
  639. rtn = "N";
  640. messageBox("수정된 데이터가 ", "I004");
  641. }
  642. else if (ischg_formrec == true && ischg_recitem == false)
  643. {
  644. //rtn = "M"; 20130509 이윤주 수정
  645. rtn = "Y";
  646. }
  647. else
  648. {
  649. rtn = "Y";
  650. }
  651. }
  652. return rtn;
  653. }
  654. /**
  655. * @desc : path의 노들르 CSV로 가져옴
  656. * @id :
  657. * @event : xforms-ready
  658. * @return : void
  659. * @authur : 박종훈
  660. */
  661. function fGetCSV( path )
  662. {
  663. if (path == "formrec")
  664. {
  665. return fGetFormRec("formrecdd") +"▦"+ fGetFormRec("formrechm") +"▦"+ fGetFormRec("formrecextnnm");
  666. }
  667. else// if (flag == "recitem")
  668. {
  669. var nodes = model.instances(0).selectNodes( path + "[rectermcd != '' or reccnts != '']" );
  670. var saveRgstInfo = "";
  671. for (var i=0; i<nodes.length; i++)
  672. {
  673. saveRgstInfo = saveRgstInfo.concat(nodes.item(i).getXPathString("rectermcd"));
  674. saveRgstInfo = saveRgstInfo.concat(nodes.item(i).getXPathString("rectermnm"));
  675. saveRgstInfo = saveRgstInfo.concat(nodes.item(i).getXPathString("reccnts"));
  676. saveRgstInfo = saveRgstInfo.concat(".");
  677. }
  678. return saveRgstInfo;
  679. }
  680. }
  681. function fSetOldFormRecInfo()
  682. {
  683. // debugger;
  684. g_formrec_oldimge = fGetCSV("formrec");
  685. g_recitem_oldimge = fGetCSV(gPageInfo.recItemRef);
  686. }
  687. /**
  688. * @desc : 기록초기화(노드 삭제)
  689. * @id :
  690. * @event : xforms-ready
  691. * @return : void
  692. * @authur : 박종훈
  693. */
  694. function fInitDataSrc()
  695. {
  696. model.removeNodeset(gPageInfo.recRef);
  697. model.removeNodeset(gPageInfo.extnrecRef);
  698. }
  699. /**
  700. * @desc : 기록관련 노드 초기화
  701. * @id :
  702. * @event : xforms-ready
  703. * @return : void
  704. * @authur : 박종훈
  705. */
  706. function fSetNewFormRec()
  707. {
  708. fInitDataSrc();
  709. fSetFormRec("status" , "C");
  710. fSetFormRec("pid" , fGetPamInfo("pid"));
  711. if (fGetPamInfo("ioflag") == "O" || fGetPamInfo("ioflag") == "S")
  712. {
  713. fSetFormRec("orddd" , fGetPamInfo("orddd"));
  714. fSetFormRec("orddrid" , fGetPamInfo("orddrid"));
  715. }
  716. else
  717. {
  718. fSetFormRec("orddd" , fGetPamInfo("indd"));
  719. fSetFormRec("orddrid" , fGetPamInfo("medispclid"));
  720. }
  721. fSetFormRec("cretno" , fGetPamInfo("cretno"));
  722. if (fGetPamInfo("orddeptcd") == "2280000000")
  723. fSetFormRec("chosflag" , "E");
  724. else
  725. fSetFormRec("chosflag" , fGetPamInfo("ioflag"));
  726. fSetFormRec("orddeptcd" , fGetPamInfo("orddeptcd"));
  727. fSetFormRec("formrecdeptcd" , getUserInfo("dutplcecd"));
  728. fSetFormRec("formrecdeptnm" , getUserInfo("dutplcenm"));
  729. fSetFormRec("formrecuserid" , getUserInfo("userid"));
  730. fSetFormRec("formrecusernm" , getUserInfo("usernm"));
  731. fSetFormRec("lastrechistseq" , 0);
  732. fSetFormRec("delyn" , "N");
  733. fSetFormRec("valiyn" , "Y");
  734. fSetFormRec("formcd" , fGetFormMast("formcd"));
  735. fSetFormRec("srcformcd" , fGetFormMast("srcformcd"));
  736. fSetFormRec("formfromdt" , fGetFormMast("formfromdt"));
  737. fSetFormRec("formdegnseq" , fGetFormMast("formdegnseq"));
  738. fSetFormRec("formrecextnnm" , "");
  739. fSetFormRec("fstktas" , "N"); //이윤주 추가
  740. //2008/01/24 박종훈 수정(미비서식 기록시 기록일자를 받아서 셋한다)
  741. var formrecdd = ""
  742. /*if (isPopup())
  743. {
  744. formrecdd = opener.window.javascript.getParameter("SSMMR01100_formrecdd");
  745. //opener.window.javascript.clearParameter("SSMMR01100_formrecdd");
  746. }
  747. else
  748. {
  749. formrecdd = getParameter("SSMMR01100_formrecdd");
  750. //clearParameter("SSMMR01100_formrecdd");
  751. }*/
  752. var formrecdd = getParameter("SSMMR01100_formrecdd");
  753. var formrechm = getParameter("SSMMR01100_formrechm");
  754. //var formrechm = "0000";
  755. var recddyn = false;
  756. if (formrechm == "")
  757. {
  758. formrechm = getCurrentTime().substring(0, 4);
  759. }
  760. if (formrecdd == "" && (fGetFormRec("chosflag") == "O" || fGetFormRec("chosflag") == "S"))
  761. {
  762. var rsrvflag = model.getValue("/root/main/paminfo/rsrvflag");
  763. formrecdd = model.getValue("/root/main/paminfo/orddd");
  764. formrechm = getCurrentTime().substring(0, 4);
  765. /*
  766. if (rsrvflag != "-" && rsrvflag !="")
  767. {
  768. formrechm = model.getValue("/root/main/paminfo/ordtm");
  769. }
  770. else
  771. {
  772. formrechm = getCurrentTime().substring(0, 4);
  773. }
  774. */
  775. }
  776. else
  777. {
  778. if (fGetFormRec("srcformcd") == '0000000003')
  779. {
  780. if (fGetPamInfo("ertransyn") != "" && fGetPamInfo("ertransyn") != "N")
  781. {
  782. //기록일시 셋팅(응급에서 입원 전환된 일시)
  783. if (fGetPamInfo("ercareinrmdd") != "")
  784. {
  785. formrecdd = fGetPamInfo("ercareinrmdd");
  786. }
  787. if (fGetPamInfo("ercareinrmtm") != "")
  788. {
  789. formrechm = fGetPamInfo("ercareinrmtm");
  790. }
  791. }
  792. else
  793. {
  794. //기록일시 셋팅(입원일시)
  795. if (fGetPamInfo("indd") != "")
  796. {
  797. formrecdd = fGetPamInfo("indd");
  798. }
  799. if (fGetPamInfo("intm") != "")
  800. {
  801. formrechm = fGetPamInfo("intm");
  802. }
  803. }
  804. }
  805. else if (fGetFormRec("srcformcd") == "0000000679")
  806. {
  807. //응급실 입실시간
  808. if (fGetPamInfo("calcdd") != "" && fGetPamInfo("calcdd") != "00000000")
  809. {
  810. formrecdd = fGetPamInfo("calcdd");
  811. }
  812. if (fGetPamInfo("calctm") != "" && fGetPamInfo("calctm") != "0000")
  813. {
  814. formrechm = fGetPamInfo("calctm");
  815. }
  816. }
  817. else if (fGetFormRec("srcformcd") == "0000000680")
  818. {
  819. //기록일시 셋팅(입원일시)
  820. if (fGetPamInfo("indd") != "")
  821. {
  822. formrecdd = fGetPamInfo("indd");
  823. }
  824. if (fGetPamInfo("intm") != "")
  825. {
  826. formrechm = fGetPamInfo("intm");
  827. }
  828. }
  829. }
  830. if (formrecdd != "")
  831. {
  832. recddyn = true;
  833. }
  834. if(recddyn)
  835. {
  836. fSetFormRec("formrecdd" , formrecdd);
  837. fSetFormRec("formrechm" , formrechm);
  838. }
  839. else
  840. {
  841. //2010.02.03 dhkim - 퇴원환자 상단정보 올린 경우 현재일자로 세팅되는 부분 문제
  842. //(퇴원환자는 퇴원일자, 외래환자는 외래진료일자로 세팅하도록 변경)
  843. if(fGetPamInfo("ioflag") == "O"){
  844. formrecdd = fGetPamInfo("orddd");
  845. }else{
  846. //2010.02.18 dhkim 가퇴원 추가 , 퇴원일없을경우 처리, 입원상태의 경우 현재일자로 세팅
  847. if(fGetPamInfo("indschacptstat") == "D" || fGetPamInfo("indschacptstat") == "T"){
  848. formrecdd = fGetPamInfo("dschdd");
  849. formrechm = fGetPamInfo("dschtm");
  850. }else{
  851. //2010.02.18 dhkim
  852. //입원상태일 경우는 현재일자로 세팅함
  853. formrecdd = getCurrentDate();
  854. formrechm = getCurrentTime().substring(0, 4);
  855. }
  856. }
  857. //2010.02.08 dhkim 널처리 현재일시추가
  858. if (formrechm == "")
  859. {
  860. formrechm = getCurrentTime().substring(0, 4);
  861. }
  862. fSetFormRec("formrecdd" , formrecdd);
  863. fSetFormRec("formrechm" , formrechm);
  864. //fSetFormRec("formrecdd" , getCurrentDate());
  865. //fSetFormRec("formrechm" , getCurrentTime().substr(0, 4));
  866. }
  867. fSetFormRec("signedyn" , "N");
  868. model.refresh();
  869. }
  870. /*******************************************************************************************************
  871. 튜닝 작업
  872. *******************************************************************************************************/
  873. /**
  874. * @desc : 기록 내용 조회
  875. * @id :
  876. * @event : xforms-ready
  877. * @return : void
  878. * @authur : 박종훈
  879. */
  880. function fGetRecFormInfo(formrecseq)
  881. {
  882. model.makeValue("/root/send/reqrec/formrecseq", formrecseq);
  883. if(submit("TRMMR01301"))
  884. {
  885. doReplaceLtGt("/root/main/recinfo/recitem");
  886. return true;
  887. }
  888. return false;
  889. }
  890. /**
  891. * @desc : 코사인시 변경된 데이터 여부 검사
  892. * @id :
  893. * @event : xforms-ready
  894. * @return : void
  895. * @authur : 박종훈
  896. */
  897. function fCheckChangeDataForCosign()
  898. {
  899. var rtn;
  900. var ischg_formrec = false;
  901. var ischg_recitem = false;
  902. if (isProgForm())
  903. {
  904. //ivw_base.window.javascript.InitSaveComnFormRecItemData(mode);
  905. ivw_base.window.javascript.getSaveComnFormData(null, "1");
  906. }
  907. else
  908. {
  909. ivw_base.window.javascript.getSaveData(gPageInfo.sortItemRef, "replace", model, null, null);
  910. SortRecItem();
  911. }
  912. g_formrec_newimge = fGetCSV("formrec");
  913. g_recitem_newimge = fGetCSV(gPageInfo.recItemRef2);
  914. model.removeNodeset(gPageInfo.recItemRef2);
  915. if (g_formrec_newimge_cosign != g_formrec_newimge && g_formrec_newimge_cosign != "" && g_recitem_newimge_cosign != "")
  916. {
  917. ischg_formrec = true;
  918. }
  919. if (g_recitem_newimge_cosign != g_recitem_newimge)
  920. {
  921. ischg_recitem = true;
  922. }
  923. if (ischg_formrec == false && ischg_recitem == false)
  924. {
  925. rtn = "N";
  926. }
  927. else if (ischg_formrec == true && ischg_recitem == false)
  928. {
  929. rtn = "Y";
  930. }
  931. else
  932. {
  933. rtn = "Y";
  934. }
  935. //이윤주 수정
  936. var srcformcd = fGetFormRec("srcformcd");
  937. if (srcformcd == "0800003416")
  938. {
  939. rtn = "N";
  940. }
  941. return rtn;
  942. }
  943. /**
  944. * @desc : 기록 저장 로직
  945. * @id :
  946. * @event : xforms-ready
  947. * @return : void
  948. * @authur : 박종훈
  949. */
  950. function fSaveComnFormRecInfoForCosign(signedYn)
  951. {
  952. try {
  953. //2010.03.12 안치원 - 수정없이 staff-sign할때 xsltflag가 들어가지 않는 오류수정
  954. ivw_base.window.javascript.getSubmitID_MMR01300I("staffsign");
  955. } catch (e) {
  956. }
  957. var savedInfo = new SAVED_INFO();
  958. var stext_path = "/root/send/saverecinfo/formrec/certcnts";
  959. var bfstext_path = "/root/send/saverecinfo/formrec/bfcertcnts"; //인증전데이터
  960. var espiyn_path = "/root/send/saverecinfo/formrec/espiyn"; //인증저장여부
  961. var saverecinfo_path = "/root/send/saverecinfo/formrec";
  962. var sUserID = getUserInfo("userid");
  963. //이미지 삭제관련
  964. model.makeNode("/root/remtmp");
  965. model.makeNode("/root/remitemtmp");
  966. model.makeNode("/root/remtmp/recinfo");
  967. model.copyNode("/root/remtmp/recinfo", gPageInfo.recRef);
  968. model.removeNodeset("/root/remtmp/recinfo/recitem");
  969. model.copyNode("/root/remitemtmp", gPageInfo.recRef);
  970. model.removeNodeset("/root/remitemtmp/formrec");
  971. var itemNode = model.instances(0).selectNodes("/root/remitemtmp/recitem");
  972. for(var i = 0; i < itemNode.length; i++)
  973. {
  974. var sDgnItmKind = itemNode.item(i).selectSingleNode("degnitemkind").text;
  975. if (sDgnItmKind == "IMG" || sDgnItmKind == "FDG")
  976. {
  977. model.setValue("/root/remitemtmp/recitem[" + (i + 1) + "]/srcimge", "");
  978. model.setValue("/root/remitemtmp/recitem[" + (i + 1) + "]/recimge", "");
  979. model.setValue("/root/remitemtmp/recitem[" + (i + 1) + "]/reccnts", "");
  980. }
  981. }
  982. //model.copyNodeset("/root/remtmp", "/root/remitemtmp");
  983. copyNodeset("/root/remtmp/recinfo/recitem", "/root/remitemtmp/recitem", "append", model, model);
  984. model.removeNodeset("/root/remitemtmp"); //삭제를 위한 기록항목 인스턴스 삭제
  985. //var signrecinfo = model.instances(0).selectSingleNode(gPageInfo.recRef).xml;
  986. //이미지 삭제관련
  987. var signrecinfo = model.instances(0).selectSingleNode("/root/remtmp/recinfo").xml; //이미지 삭제된 인스턴스
  988. model.removeNodeset("/root/remtmp"); //삭제를 위한 기록항목 인스턴스 삭제
  989. //서식검색창이 포커스는 잡는 문제로 진료기록메인에서 인증창 호출 할 경우 기록메인의 저장로직 타도록 수정
  990. //2008-08-01 박종훈
  991. var oprnerId = opener.window.javascript.getScreenID();
  992. if(oprnerId == "SMMMR00100")
  993. {
  994. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  995. var signedrecinfo = opener.window.javascript.fMakeSignData(signrecinfo, fGetFormRec("chosflag"), sUserID);
  996. //var signedrecinfo = "-";
  997. // KNUH_20100820_박성호_end
  998. }
  999. else
  1000. {
  1001. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  1002. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(4/6)
  1003. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  1004. // 하드코드 값 가져오기 로직
  1005. var ls_emrinptsavetime = fGetHardCDList("Y", 401, 3);
  1006. var ll_emrinptsavetime = ls_emrinptsavetime == "" ? 0 : parseInt(ls_emrinptsavetime) * -1;
  1007. // SMAER00400_결과관리(서식).xrw 에서는 모두 외래기준으로 인증서를 띄우도록 적용 // 20111202 knuh 최원돈
  1008. // gSubmitSaveFlag 는 SMAER00400_결과관리(서식)에서만 사용하여서 적용함
  1009. //if (fGetFormRec("chosflag") == "O")
  1010. if ( fGetFormRec("chosflag") == "O"
  1011. || !gSubmitSaveFlag)
  1012. {
  1013. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  1014. var signedrecinfo = zesfSignData(signrecinfo, sUserID, false); //외래환자일경우 한번만 인증서 띄움
  1015. //var signedrecinfo = "-"; //외래환자일경우 한번만 인증서 띄움
  1016. // KNUH_20100820_박성호_end
  1017. }
  1018. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  1019. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(5/6)
  1020. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  1021. // 띄우지 않는 로직
  1022. else if ( ( fGetFormRec("chosflag") == "I"
  1023. || fGetFormRec("chosflag") == "E")
  1024. && ll_emrinptsavetime < 0
  1025. && getGlobalVariable("emrinptsavetime") >= getCurrentDateTime().toDate("YYYYMMDD hhmmss").getAddDate(ll_emrinptsavetime, "m").getDateFormat("YYYYMMDD hhmmss"))
  1026. {
  1027. var signedrecinfo = zesfSignData(signrecinfo, sUserID, false); //외래환자일경우 한번만 인증서 띄움
  1028. }
  1029. else
  1030. {
  1031. // KNUH_20100820_박성호_start 인증서 안나오게 수정
  1032. var signedrecinfo = zesfSignData(signrecinfo, sUserID, true);
  1033. //var signedrecinfo = "-";
  1034. // KNUH_20100820_박성호_end
  1035. }
  1036. }
  1037. if (signedrecinfo == "")
  1038. {
  1039. fSetFormRec("signedyn", "N");
  1040. return savedInfo;
  1041. }
  1042. else
  1043. {
  1044. fSetFormRec("espiyn", signedYn);
  1045. model.makeValue(espiyn_path, signedYn);
  1046. }
  1047. model.copyNode(saverecinfo_path, gPageInfo.recMastRef);
  1048. model.makeValue(bfstext_path, signrecinfo);
  1049. model.makeValue(stext_path, signedrecinfo);
  1050. if (submit("TXMMR01302"))
  1051. {
  1052. var mess = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/msg");
  1053. if (fGetFormRec("status") == "U")
  1054. {
  1055. if(mess == "1")
  1056. {
  1057. messageBox("STAFF SIGN 저장되었습니다.", "I", "");
  1058. btn_cosign.disabled = true;
  1059. if (isProgForm())
  1060. {
  1061. //2010-03-31 오전 10:03:38 강지훈 수정 : 최종진단명 요약지 추가
  1062. //ivw_base.window.grup_base.disabled = true;
  1063. if(fGetFormRec("srcformcd") == "0000000680"){
  1064. var childrenObj = ivw_base.window.grup_base.children;
  1065. for(i=0; i< childrenObj.length; i++){
  1066. childObj = childrenObj.item(i);
  1067. if (childObj.attribute("id") == "btn_lastdiag_0001013001"){
  1068. childObj.disabled = false;
  1069. }
  1070. else{
  1071. childObj.disabled = true;
  1072. }
  1073. }
  1074. }
  1075. else{
  1076. ivw_base.window.grup_base.disabled = true;
  1077. }
  1078. }
  1079. }
  1080. else
  1081. {
  1082. messageBox(mess, "I", "");
  1083. btn_cosign.disabled = false;
  1084. if (isProgForm())
  1085. {
  1086. ivw_base.window.grup_base.disabled = false;
  1087. }
  1088. }
  1089. }
  1090. fSetFormRec("espiyn", fGetFormRec("signedyn"));
  1091. g_formrec_newimge_cosign = fGetCSV("formrec");
  1092. g_recitem_newimge_cosign = fGetCSV(gPageInfo.recItemRef2);
  1093. // 입원 또는 응급일 경우 // 20111201 knuh 최원돈
  1094. // 기록/처방 직전 인증저장이 정해진 시간(분 단위, 하드코드 401) 이내이면 인증서를 띄우지 않음(6/6)
  1095. // SMMMO00100.js, MMR01300.js, MMR00100.js, SPMRF05200.js
  1096. // 인증저장된 시간을 저장.
  1097. if ((fGetFormRec("chosflag") == "I" || fGetFormRec("chosflag") == "E") && signedYn == "Y" ) {
  1098. setGlobalVariable("emrinptsavetime", getCurrentDateTime());
  1099. }
  1100. }
  1101. if (model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/msg") == "1")
  1102. {
  1103. // savedInfo.formrecseq = parseInt(model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/formrecseq"));
  1104. // savedInfo.rechistseq = parseInt(model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/rechistseq"));
  1105. //2010.03.24 안치원 - formrecseq 지수로 표현되는 오류수정
  1106. savedInfo.formrecseq = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/formrecseq");
  1107. savedInfo.rechistseq = model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/rechistseq");
  1108. g_formrec_oldimge = g_formrec_newimge;
  1109. g_recitem_oldimge = g_recitem_newimge;
  1110. }
  1111. if (fGetFormRec("status") != "D" && savedInfo.formrecseq != 0)
  1112. {
  1113. fSetFormRec("status", "U");
  1114. fSetFormRec("formrecseq", savedInfo.formrecseq);
  1115. fSetFormRec("lastrechistseq", savedInfo.rechistseq);
  1116. fSetFormRec("cosign", model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/cosign")); //2010-03-31 오전 10:06:14 강지훈 추가 : 최종진단명 요약 추가
  1117. fSetFormRec("espiseq", model.getValue(gPageInfo.savedInfoRef + "/rsltmsg/espiseq"));
  1118. }
  1119. if(mess == "1" || savedInfo.formrecseq != null)
  1120. {
  1121. return savedInfo;
  1122. }
  1123. }
  1124. /**
  1125. * @desc : 입퇴원요약지 - 최종진단명을 입력시 staff sign 반려
  1126. * @id :
  1127. * @event : xforms-ready
  1128. * @return : void
  1129. * @authur : 2010-02-21 오후 3:09:03 강지훈
  1130. */
  1131. function fSaveLastDiagRec(signedYn)
  1132. {
  1133. var rsltMsg = "진단명 수정-최종진단명 요약지 작성";
  1134. var saverecinfo_path = "/root/send/saverecinfo/formrec";
  1135. model.copyNode(saverecinfo_path, gPageInfo.recMastRef);
  1136. model.removeNodeset("/root/send/saverecinfo/formrec/status");
  1137. model.removeNodeset("/root/send/saverecinfo/formrec/cosign");
  1138. model.removeNodeset("/root/send/saverecinfo/formrec/dralertcnts");
  1139. model.makeValue("/root/send/saverecinfo/formrec/status", "D");
  1140. model.makeValue("/root/send/saverecinfo/formrec/cosign", "Y");
  1141. model.makeValue("/root/send/saverecinfo/formrec/dralertcnts", rsltMsg);
  1142. if (submit("TXMMR01302"))
  1143. {
  1144. fSetFormRec("cosign", "N");
  1145. ivw_base.window.grup_base.disabled = false;
  1146. btn_cosign.disabled = false;
  1147. fAfterSaveExtnDoing();
  1148. }
  1149. }