SMMMR01000.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945
  1. //부분서식의 부모아이템 배열
  2. var gItemCds = new Array("0007983001", "0000521001", "0000509001", "0000512001", "0000507001");
  3. var gItemCdsTextArea = new Array("0000512001", "0000507001");
  4. var gItemCdsXRWArea = new Array("0007983001", "0000521001", "0000509001");
  5. //부분서식의 개수만큼 일단 '0'으로 채운다.
  6. var gPageIdx = new Array(0, 0);
  7. var iSurg = ipt_surg.attribute("degnitemlevlcd");
  8. var operation = getGlobalVariable("operation").split("▩")[1];
  9. var instance = document.models(0).instances(0);
  10. var pageInfo = new PAGEINFO();
  11. var oprsrvno = ""; //수술예약번호
  12. var perfdeptcd = ""; //집도과
  13. if(operation != null && operation != ""){
  14. oprsrvno = operation.split("▦")[0];
  15. perfdeptcd = operation.split("▦")[10];
  16. }
  17. /**
  18. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  19. * @id :
  20. * @authur : 안치원
  21. * @history : 2009.09.09 신규 안치원 ACW_090909A
  22. */
  23. var gExtnBtnIds = new Array("btn_imge_0000512001", "btn_etcrec_0000512001",
  24. "btn_imge_0000507001", "btn_etcrec_0000507001");
  25. /**
  26. * @desc : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  27. * @id :
  28. * @event : xforms-ready
  29. * @return : void
  30. * @authur : 박종훈
  31. */
  32. function fClearComnFormData()
  33. {
  34. if (gMaxSectionID != "")
  35. {
  36. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  37. MaxObj.dispatch("onclick");
  38. }
  39. ClearComnFormData(gItemCds);
  40. fInitialize();
  41. if (parent.window.javascript.fGetFormRec("status") == "C")
  42. {
  43. fSetOprInfo();
  44. }
  45. //포커스 처리
  46. SetDefFocusIVW(gItemCdsTextArea);
  47. //parent.window.javascript.fSetFormRec("extnflag", "opr");
  48. //parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  49. }
  50. /**
  51. * @desc : 기록데이터 조회
  52. * @id :
  53. * @event : xforms-ready
  54. * @return : void
  55. * @authur : 박종훈
  56. */
  57. function fLoadData()
  58. {
  59. fInitialize();
  60. //Program 서식 데이터 조회반영
  61. InitPgmFormData();
  62. this.recRef2 = "/root/hidden/recinfo"
  63. //부분서식 데이터 조회 반영
  64. InitUnitFormData(gItemCds);
  65. //parent.window.javascript.gSubmitID = TX_SUBMIT_EXTN_FORM;
  66. //parent.window.javascript.fSetFormRec("extnflag", "opr");
  67. //parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  68. }
  69. /**
  70. * @desc : 화면 초기화
  71. * @
  72. * @param :
  73. * @return :
  74. * @authur : 박종훈
  75. */
  76. function fInitialize()
  77. {
  78. ivw_0007983001.attribute("border-style") = "none";
  79. ivw_0000521001.attribute("border-style") = "none";
  80. ivw_0000509001.attribute("border-style") = "none";
  81. gTermViewTopPos = 29;
  82. gTermViewHei = 152;
  83. gTermViewItems = gItemCdsXRWArea;
  84. //fRadioYN();
  85. model.refresh();
  86. }
  87. /**
  88. * @desc : 수술이력 팝업
  89. * @
  90. * @param :
  91. * @return :
  92. * @authur : 박종훈
  93. */
  94. function fPatientHist()
  95. {
  96. modal("SMMMO02500");
  97. }
  98. /**
  99. * @desc : 기록 인스턴스 연결
  100. * @
  101. * @param :
  102. * @return :
  103. * @authur : 박종훈
  104. */
  105. function fSetRecItemValue(reciteminfo)
  106. {
  107. return SetCommMediFormValue(gItemCds, reciteminfo);
  108. }
  109. /**
  110. * @desc : 수술전 진단명 사이즈 조절
  111. * @
  112. * @param :
  113. * @return :
  114. * @---------------------------------------------------
  115. */
  116. function fSetSizeFormDiag()
  117. {
  118. ivw_0007983001.window.javascript.fInitPage(false, parseInt(ivw_0007983001.attribute("height")), parseInt(ivw_0007983001.attribute("width")), "ivw_0007983001", "수술전 진단명(Free text)");
  119. //ivw_0000521001.window.javascript.fInitPage(false, parseInt(ivw_0000521001.attribute("height")), parseInt(ivw_0000521001.attribute("width")), "ivw_0000521001", "수술후 진단명");
  120. }
  121. /**
  122. * @desc : 수술후 진단명 사이즈 조절
  123. * @
  124. * @param :
  125. * @return :
  126. * @---------------------------------------------------
  127. */
  128. function fSetSizeFormDiag1()
  129. {
  130. //ivw_0007983001.window.javascript.fInitPage(false, parseInt(ivw_0007983001.attribute("height")), parseInt(ivw_0007983001.attribute("width")), "ivw_0007983001", "수술전 진단명");
  131. ivw_0000521001.window.javascript.fInitPage(false, parseInt(ivw_0000521001.attribute("height")), parseInt(ivw_0000521001.attribute("width")), "ivw_0000521001", "수술후 진단명(Free text)");
  132. }
  133. /**
  134. * @desc : 서식 수술명 사이즈 조절
  135. * @
  136. * @param :
  137. * @return :
  138. * @---------------------------------------------------
  139. */
  140. function fSetSizeFormOpr()
  141. {
  142. //fFormReady();
  143. ivw_0000509001.window.javascript.fInitPage(false, parseInt(ivw_0000509001.attribute("height")), parseInt(ivw_0000509001.attribute("width")), "ivw_0000509001");
  144. }
  145. /*****************************************************************************
  146. 튜닝
  147. ******************************************************************************/
  148. var gLoadFormCnts = 0;
  149. /**
  150. * @group :
  151. * @ver : 2008.06.13
  152. * @by : snoweye
  153. * @---------------------------------------------------
  154. * @type : function
  155. * @access : private
  156. * @desc : 화면 로딩후 초기화 작업 수행
  157. * @param :
  158. * @return :
  159. * @---------------------------------------------------
  160. */
  161. function fFormReady()
  162. {
  163. grup_base.attribute("border-style") = "none";
  164. setSectionSize(gItemCds, 335, 350);
  165. //20080702 박종훈 추가
  166. fInitialize();
  167. InitBtnImge(gItemCdsTextArea);
  168. InitBtnEtcRec(gItemCdsTextArea);
  169. InitBtnComn(gItemCdsTextArea);
  170. dispOnLoadComplete(COMN_FORM);
  171. if (parent.window.javascript.fGetFormRec("status") == "C")
  172. {
  173. //parent.window.javascript.fSetFormRec("extnflag", "opr");
  174. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  175. }
  176. }
  177. /**
  178. * @group :
  179. * @ver : 2008.06.13
  180. * @by : snoweye
  181. * @---------------------------------------------------
  182. * @type : function
  183. * @access : private
  184. * @desc : 부분서식 로딩
  185. * @param :
  186. * @return :
  187. * @---------------------------------------------------
  188. */
  189. function fLoadUnitForm()
  190. {
  191. initSection(gItemCds);
  192. }
  193. var diagcnt = 0;
  194. /**
  195. * @group :
  196. * @ver : 2008.06.13
  197. * @by : snoweye
  198. * @---------------------------------------------------
  199. * @type : function
  200. * @access : private
  201. * @desc : 부분서식 로딩후 후처리
  202. * @param :
  203. * @return :
  204. * @---------------------------------------------------
  205. */
  206. function fOnLoadComplete()
  207. {
  208. var rtn = false;
  209. var curLoadFormCd = getParameter("loadformcd");
  210. setParameter("loadformcd", "");
  211. var fstLevlItemCd = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/orgsupdegnitemcd");
  212. var ivwObj = document.controls("ivw_" + fstLevlItemCd);
  213. var unitformload = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/loaded");
  214. if(ivwObj != null && unitformload != "true")
  215. {
  216. //ivwObj.window.javascript.setFstLevlItemCd(fstLevlItemCd);
  217. setFstLevlItemCd(ivwObj, curLoadFormCd);
  218. model.setValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "']/loaded", "true");
  219. }
  220. //수술전진단명 부분서식 로딩후 처리
  221. if(fstLevlItemCd == '0007983001')
  222. {
  223. fSetSizeFormDiag();
  224. }
  225. //수술후진단명 부분서식 로딩후 처리
  226. if(fstLevlItemCd == '0000521001')
  227. {
  228. fSetSizeFormDiag1();
  229. if (parent.window.javascript.fGetFormRec("status") == "C")
  230. {
  231. //rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //수술예약번호로 진단명 조회
  232. }
  233. }
  234. //수술명 부분서식 로딩후 처리
  235. if(fstLevlItemCd == '0000509001')
  236. {
  237. fSetSizeFormOpr();
  238. if (parent.window.javascript.fGetFormRec("status") == "C")
  239. {
  240. //fSrchOprPerfDrlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  241. //fClearComnFormData();
  242. }
  243. }
  244. gLoadFormCnts++;
  245. if(gItemCds.length == gLoadFormCnts)
  246. {
  247. fSetOprInfo();
  248. dispOnLoadComplete(UNIT_FORM);
  249. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  250. SetDefFocusIVW(gItemCdsTextArea);
  251. }
  252. }
  253. /**
  254. * @group :
  255. * @ver : 2009.01.05
  256. * @by : jonghun
  257. * @---------------------------------------------------
  258. * @type : function
  259. * @access : private
  260. * @desc : 서식 로딩 완료 후 수술 예약번호 유무에 따라 서식 내용 셋팅
  261. * @param :
  262. * @return :
  263. * @---------------------------------------------------
  264. */
  265. function fSetOprInfo()
  266. {
  267. if (parent.window.javascript.fGetFormRec("status") == "C")
  268. {
  269. var dschdd = parent.window.javascript.fGetPamInfo("dschdd");
  270. if (dschdd == "" || dschdd == "-")
  271. {
  272. dschdd = "99991231";
  273. }
  274. model.makeValue("/root/send/oprinfo/pid", parent.window.javascript.fGetPamInfo("pid"));
  275. model.makeValue("/root/send/oprinfo/indd", parent.window.javascript.fGetPamInfo("indd"));
  276. model.makeValue("/root/send/oprinfo/dschdd", dschdd);
  277. if (submit("TRMMR01002")) //수술 이력 조회
  278. {
  279. var nodeList = model.instances(0).selectNodes("/root/init/oprlist/oplist");
  280. ipt_surg.disabled = true;
  281. if (oprsrvno != "")
  282. {
  283. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  284. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  285. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  286. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  287. model.makeValue("/root/send/reqinfstrec/oprsrvno", oprsrvno);
  288. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  289. {
  290. var nodeList1 = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  291. //해당 수술건에 대한 수술기록 유무에 따른 분기
  292. if (nodeList1.length > 0)
  293. {
  294. fSetOprRecIf();
  295. }
  296. else
  297. {
  298. fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  299. }
  300. }
  301. }
  302. else if(nodeList.length == 1)
  303. {
  304. var opsrvno = model.getValue("/root/init/oprlist/oplist/oprsrvno");
  305. if (opsrvno != "" && opsrvno != "-")
  306. {
  307. parent.window.javascript.fSetFormRec("oprsrvno", opsrvno);
  308. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  309. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  310. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  311. model.makeValue("/root/send/reqinfstrec/oprsrvno", opsrvno);
  312. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  313. {
  314. var nodeList2 = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  315. //해당 수술건에 대한 수술기록 유무에 따른 분기
  316. if (nodeList2.length > 0)
  317. {
  318. fSetOprRecIf();
  319. }
  320. else
  321. {
  322. fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  323. }
  324. }
  325. }
  326. }
  327. //2010-01-04 오전 10:12:00 강지훈 수정 : 요청번호 4693
  328. else if(nodeList.length == 0 && oprsrvno == "") {
  329. ipt_surg.disabled = false;
  330. }
  331. else{
  332. combo1.select(combo1.length - 1);
  333. }
  334. addComboItem("combo1", " ", "", "ADD");
  335. combo1.refresh();
  336. }
  337. }
  338. }
  339. /**
  340. * @group :
  341. * @ver : 2009.01.05
  342. * @by : jonghun
  343. * @---------------------------------------------------
  344. * @type : function
  345. * @access : private
  346. * @desc : 수술기록 인터페이스 내용 셋팅
  347. * @param :
  348. * @return :
  349. * @---------------------------------------------------
  350. */
  351. function fSetOprRecIf()
  352. {
  353. //수술일
  354. var opdd = model.getValue("/root/main/infstrec/recitem[degnitemlevlcd='0000515']/reccnts");
  355. if (opdd == "")
  356. {
  357. opdd = model.getValue("/root/init/oprlist/oplist[oprsrvno='" + model.getValue("/root/send/reqinfstrec/oprsrvno") + "']/opcnfmdd");
  358. //opdd = getCurrentDate();
  359. }
  360. //var transopdd = opdd.substr(0, 4) + "-" + opdd.substr(4, 2) + "-" + opdd.substr(6, 2)
  361. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000515]/reccnts", opdd);
  362. parent.window.javascript.fSetFormRec("formrecdd" , opdd);
  363. parent.ipt_formrecdd.refresh();
  364. //수술전진단
  365. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0007983001' and formcd = '0000000899']");
  366. if (nodeList.length > 0)
  367. {
  368. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0007983001' and formcd = '0000000899']", ivw_0007983001);
  369. ivw_0007983001.window.javascript.fAddrow();
  370. }
  371. //수술후진단
  372. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000521001' and formcd = '0000000899']");
  373. if (nodeList.length > 0)
  374. {
  375. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000521001' and formcd = '0000000899']", ivw_0000521001);
  376. ivw_0000521001.window.javascript.fAddrow();
  377. }
  378. //수술명
  379. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000509001' and formcd = '0000000900']");
  380. if (nodeList.length > 0)
  381. {
  382. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000509001' and formcd = '0000000900']", ivw_0000509001);
  383. ivw_0000509001.window.javascript.fAddrow();
  384. }
  385. //집도의
  386. var mOpDrList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000980001']");
  387. var mOpdegnitemlevlcd = "";
  388. var mOprectermcd = "";
  389. var mOprectermnm = "";
  390. var mOpreccnts = "";
  391. var mOpdegnitemnm = "";
  392. var mOpdegnitemkind = "";
  393. var mOprecrslt = "";
  394. for(var i = 0; i < mOpDrList.length; i++)
  395. {
  396. mOpdegnitemlevlcd = mOpDrList.item(i).selectSingleNode("degnitemlevlcd").text;
  397. mOprectermcd = mOpDrList.item(i).selectSingleNode("rectermcd").text;
  398. mOprectermnm = mOpDrList.item(i).selectSingleNode("rectermnm").text;
  399. mOpreccnts = mOpDrList.item(i).selectSingleNode("reccnts").text;
  400. mOpdegnitemnm = mOpDrList.item(i).selectSingleNode("degnitemnm").text;
  401. mOpdegnitemkind = mOpDrList.item(i).selectSingleNode("degnitemkind").text;
  402. if (mOprectermnm != "" && mOprecrslt == "")
  403. {
  404. mOprecrslt += mOprectermnm;
  405. }
  406. else if(mOprectermnm != "")
  407. {
  408. mOprecrslt += ", " + mOprectermnm;
  409. }
  410. else if(mOpreccnts != "")
  411. {
  412. mOprecrslt += ", " + mOpreccnts;
  413. }
  414. }
  415. //집도의
  416. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000980]/reccnts", mOprecrslt);
  417. //보조의
  418. var sOpDrList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000341001']");
  419. var sOpdegnitemlevlcd = "";
  420. var sOprectermcd = "";
  421. var sOprectermnm = "";
  422. var sOpreccnts = "";
  423. var sOpdegnitemnm = "";
  424. var sOpdegnitemkind = "";
  425. var sOprecrslt = "";
  426. for(var i = 0; i < sOpDrList.length; i++)
  427. {
  428. sOpdegnitemlevlcd = sOpDrList.item(i).selectSingleNode("degnitemlevlcd").text;
  429. sOprectermcd = sOpDrList.item(i).selectSingleNode("rectermcd").text;
  430. sOprectermnm = sOpDrList.item(i).selectSingleNode("rectermnm").text;
  431. sOpreccnts = sOpDrList.item(i).selectSingleNode("reccnts").text;
  432. sOpdegnitemnm = sOpDrList.item(i).selectSingleNode("degnitemnm").text;
  433. sOpdegnitemkind = sOpDrList.item(i).selectSingleNode("degnitemkind").text;
  434. if (sOprectermnm != "" && sOprecrslt == "")
  435. {
  436. sOprecrslt += sOprectermnm;
  437. }
  438. else if(sOprectermnm != "")
  439. {
  440. sOprecrslt += ", " + sOprectermnm;
  441. }
  442. else if(sOpreccnts != "")
  443. {
  444. sOprecrslt += ", " + sOpreccnts;
  445. }
  446. }
  447. //보조의
  448. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000341]/reccnts", sOprecrslt);
  449. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  450. //수술소견
  451. var OpFindNodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000512001']");
  452. var opFinddegnitemlevlcd = "";
  453. var opFindrectermcd = "";
  454. var opFindrectermnm = "";
  455. var opFindreccnts = "";
  456. var opFinddegnitemnm = "";
  457. var opFinddegnitemkind = "";
  458. var opFindrecrslt = "";
  459. var opFinddegnitemlevlno = "";
  460. for(var i = 0; i < OpFindNodeList.length; i++)
  461. {
  462. opFinddegnitemlevlcd = OpFindNodeList.item(i).selectSingleNode("degnitemlevlcd").text;
  463. opFindrectermcd = OpFindNodeList.item(i).selectSingleNode("rectermcd").text;
  464. opFindrectermnm = OpFindNodeList.item(i).selectSingleNode("rectermnm").text;
  465. opFindreccnts = OpFindNodeList.item(i).selectSingleNode("reccnts").text;
  466. opFinddegnitemnm = OpFindNodeList.item(i).selectSingleNode("degnitemnm").text;
  467. opFinddegnitemkind = OpFindNodeList.item(i).selectSingleNode("degnitemkind").text;
  468. if(opFinddegnitemkind == "IMG" || opFinddegnitemkind == "FDG")
  469. continue;
  470. opFinddegnitemlevlcd = opFinddegnitemlevlcd.split(".");
  471. //2010.06.25 김달현 - 수술기록의 OP Finding, OP Procedure가 디자인된 부분서식일 때 Brief OP Note 연동시 데이터 오류수정
  472. //degnitemlevlcd가 2일때만 degnitemnm이 설정되어 레벨이 넘어가면 degnitemnm이 조회되지 않아 변경함.
  473. opFinddegnitemlevlno = OpFindNodeList.item(i).selectSingleNode("degnitemlevlno").text;
  474. if(opFinddegnitemlevlno > 1){
  475. var blk = "";
  476. for(var j = 0; j < opFinddegnitemlevlcd.length; j++){
  477. blk += " ";
  478. }
  479. if(opFindrectermnm == "" && opFindreccnts == ""){
  480. opFindrecrslt += blk + opFinddegnitemnm + "\n";
  481. }
  482. if (opFindrectermnm != "" && opFindreccnts != "")
  483. {
  484. opFindrecrslt += blk + opFinddegnitemnm + " : " + opFindrectermnm + " ※ " + opFindreccnts + "\n";
  485. }
  486. else if (opFindrectermnm != "")
  487. {
  488. opFindrecrslt += blk + opFinddegnitemnm + " : " + opFindrectermnm + "\n";
  489. }
  490. else if (opFindreccnts != "")
  491. {
  492. if (opFinddegnitemnm != "")
  493. {
  494. opFindrecrslt += blk + opFinddegnitemnm + " " + opFindreccnts + "\n";
  495. }
  496. else
  497. {
  498. opFindrecrslt += blk + opFindreccnts + "\n";
  499. }
  500. }
  501. }else{
  502. opFindrecrslt = opFindreccnts + "\n";
  503. }
  504. /*
  505. if (opFinddegnitemlevlcd.length > 1)
  506. {
  507. if (opFinddegnitemlevlcd.length == 2)
  508. {
  509. opFindrecrslt += opFinddegnitemnm + "\n";
  510. }
  511. if (opFindrectermnm != "" && opFindreccnts != "")
  512. {
  513. opFindrecrslt += opFinddegnitemnm + " : " + opFindrectermnm + " ※ " + opFindreccnts + "\n";
  514. }
  515. else if (opFindrectermnm != "")
  516. {
  517. opFindrecrslt += opFinddegnitemnm + " : " + opFindrectermnm + "\n";
  518. }
  519. else if (opFindreccnts != "")
  520. {
  521. if (opFinddegnitemnm != "")
  522. {
  523. opFindrecrslt += opFinddegnitemnm + " " + opFindreccnts + "\n";
  524. }
  525. else
  526. {
  527. opFindrecrslt += opFindreccnts + "\n";
  528. }
  529. }
  530. }
  531. else
  532. {
  533. opFindrecrslt = opFindreccnts + "\n";
  534. }
  535. */
  536. }
  537. //수술소견
  538. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000512]/reccnts", opFindrecrslt);
  539. //수술과정
  540. var OpProcNodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000507001']");
  541. var opProcdegnitemlevlcd = "";
  542. var opProcrectermcd = "";
  543. var opProcrectermnm = "";
  544. var opProcreccnts = "";
  545. var opProcdegnitemnm = "";
  546. var opProcdegnitemkind = "";
  547. var opProcrecrslt = "";
  548. var opProcdegnitemlevlno = "";
  549. for(var i = 0; i < OpProcNodeList.length; i++)
  550. {
  551. opProcdegnitemlevlcd = OpProcNodeList.item(i).selectSingleNode("degnitemlevlcd").text;
  552. opProcrectermcd = OpProcNodeList.item(i).selectSingleNode("rectermcd").text;
  553. opProcrectermnm = OpProcNodeList.item(i).selectSingleNode("rectermnm").text;
  554. opProcreccnts = OpProcNodeList.item(i).selectSingleNode("reccnts").text;
  555. opProcdegnitemnm = OpProcNodeList.item(i).selectSingleNode("degnitemnm").text;
  556. opProcdegnitemkind = OpProcNodeList.item(i).selectSingleNode("degnitemkind").text;
  557. if(opProcdegnitemkind == "IMG" || opProcdegnitemkind == "FDG")
  558. continue;
  559. opProcdegnitemlevlcd = opProcdegnitemlevlcd.split(".");
  560. //2010.06.25 김달현 - 수술기록의 OP Finding, OP Procedure가 디자인된 부분서식일 때 Brief OP Note 연동시 데이터 오류수정
  561. //degnitemlevlcd가 2일때만 degnitemnm이 설정되어 레벨이 넘어가면 degnitemnm이 조회되지 않아 변경함.
  562. opProcdegnitemlevlno = OpProcNodeList.item(i).selectSingleNode("degnitemlevlno").text;
  563. if(opProcdegnitemlevlno > 1){
  564. var blk = "";
  565. for(var j = 0; j < opProcdegnitemlevlcd.length; j++){
  566. blk += " ";
  567. }
  568. if(opProcrectermnm == "" && opProcreccnts == ""){
  569. opProcrecrslt += blk + opProcdegnitemnm + "\n";
  570. }
  571. if (opProcrectermnm != "" && opProcreccnts != "")
  572. {
  573. opProcrecrslt += blk + opProcdegnitemnm + " : " + opProcrectermnm + " ※ " + opProcreccnts + "\n";
  574. }
  575. else if (opProcrectermnm != "")
  576. {
  577. opProcrecrslt += blk + opProcdegnitemnm + " : " + opProcrectermnm + "\n";
  578. }
  579. else if (opProcreccnts != "")
  580. {
  581. if (opProcdegnitemnm != "")
  582. {
  583. opProcrecrslt += blk + opProcdegnitemnm + " " + opProcreccnts + "\n";
  584. }
  585. else
  586. {
  587. opProcrecrslt += blk + opProcreccnts + "\n";
  588. }
  589. }
  590. }else{
  591. opProcrecrslt = opProcreccnts + "\n";
  592. }
  593. /*
  594. if (opProcdegnitemlevlcd.length > 1)
  595. {
  596. if (opProcdegnitemlevlcd.length == 2)
  597. {
  598. opProcrecrslt += opProcdegnitemnm + "\n";
  599. }
  600. if (opProcrectermnm != "" && opProcreccnts != "")
  601. {
  602. opProcrecrslt += opProcdegnitemnm + " : " + opProcrectermnm + " ※ " + opProcreccnts + "\n";
  603. }
  604. else if (opProcrectermnm != "")
  605. {
  606. opProcrecrslt += opProcdegnitemnm + " : " + opProcrectermnm + "\n";
  607. }
  608. else if (opProcreccnts != "")
  609. {
  610. if (opProcdegnitemnm != "")
  611. {
  612. opProcrecrslt += opProcdegnitemnm + " " + opProcreccnts + "\n";
  613. }
  614. else
  615. {
  616. opProcrecrslt += opProcreccnts + "\n";
  617. }
  618. }
  619. }
  620. else
  621. {
  622. opProcrecrslt = opProcreccnts + "\n";
  623. }
  624. */
  625. }
  626. //수술과정
  627. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000507]/reccnts", opProcrecrslt);
  628. model.refresh();
  629. }
  630. /**
  631. * @group :
  632. * @ver : 2008.11.28
  633. * @by : jonghun
  634. * @---------------------------------------------------
  635. * @type : function
  636. * @access : private
  637. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  638. * @param :
  639. * @return :
  640. * @---------------------------------------------------
  641. */
  642. function fGetDefData()
  643. {
  644. fSetSizeFormOpr();
  645. operation = getGlobalVariable("operation").split("▩")[1];
  646. if(operation != null && operation != ""){
  647. oprsrvno = operation.split("▦")[0];
  648. perfdeptcd = operation.split("▦")[10];
  649. }
  650. if (parent.window.javascript.fGetFormRec("status") == "C")
  651. {
  652. /*
  653. fSrchOprPerfDrlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  654. parent.window.javascript.fSetFormRec("extnflag", "opr");
  655. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  656. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  657. SetDefFocusIVW(gItemCdsTextArea);
  658. //수술예약번호 체크
  659. if(oprsrvno == "")
  660. {
  661. messageBox("수술예약이 되지 않은", "I005");
  662. grup_base.disabled = true;
  663. fBtnDisEnable(true);
  664. return;
  665. } else {
  666. fBtnDisEnable(false);
  667. }
  668. //집도과 체크
  669. if (perfdeptcd != getUserInfo("dutplcecd"))
  670. {
  671. messageBox("작성 권한이", "I004");
  672. grup_base.disabled = true;
  673. fBtnDisEnable(true);
  674. return;
  675. } else {
  676. fBtnDisEnable(false);
  677. }
  678. */
  679. }
  680. dispOnLoadComplete(UNIT_FORM);
  681. }
  682. /**
  683. * @group :
  684. * @ver : 2009.01.05
  685. * @by : jonghun
  686. * @---------------------------------------------------
  687. * @type : function
  688. * @access : private
  689. * @desc : 수술 이력 리스트 선택시
  690. * @param :
  691. * @return :
  692. * @---------------------------------------------------
  693. */
  694. function fChngOpList()
  695. {
  696. if (model.getValue("/root/send/reqinfstrec/oprsrvno") != "" )
  697. {
  698. ipt_surg.disabled = true;
  699. if (gMaxSectionID != "")
  700. {
  701. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  702. MaxObj.dispatch("onclick");
  703. }
  704. ClearComnFormData(gItemCds);
  705. fInitialize();
  706. parent.window.javascript.fSetFormRec("oprsrvno", model.getValue("/root/send/reqinfstrec/oprsrvno"));
  707. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  708. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  709. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  710. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  711. {
  712. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  713. //해당 수술건에 대한 수술기록 유무에 따른 분기
  714. if (nodeList.length > 0)
  715. {
  716. fSetOprRecIf();
  717. }
  718. else
  719. {
  720. fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  721. }
  722. }
  723. }
  724. else if(model.getValue("/root/send/reqinfstrec/oprsrvno") == ""){ //2010-01-06 오전 9:39:29 강지훈 수정
  725. if (gMaxSectionID != "")
  726. {
  727. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  728. MaxObj.dispatch("onclick");
  729. }
  730. ClearComnFormData(gItemCds);
  731. fInitialize();
  732. ipt_surg.value = "";
  733. ipt_surg.disabled = false;
  734. fDefInfo();
  735. }
  736. }
  737. /**
  738. * @group :
  739. * @ver : 2009.01.05
  740. * @by : jonghun
  741. * @---------------------------------------------------
  742. * @type : function
  743. * @access : private
  744. * @desc : 수술에 대한 기본 정보 조회
  745. * @param :
  746. * @return :
  747. * @---------------------------------------------------
  748. */
  749. function fDefInfo()
  750. {
  751. var tmpoprsrvno = model.getValue("/root/send/reqinfstrec/oprsrvno");
  752. if(tmpoprsrvno != "")
  753. {
  754. //수술전 진단 조회 시작
  755. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  756. model.makeValue("/root/send/oprsrvno", tmpoprsrvno);
  757. submit("TRMRF04001", false);
  758. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  759. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  760. model.refresh();
  761. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  762. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  763. //수술전 진단 조회 끝
  764. //수술명, 집도의, 수술시간 조회 시작
  765. model.removeNodeset("/root/tmpop/selectoplist");
  766. model.removeNodeset("/root/main/paminfo/list");
  767. var node = getGlobalVariable("paminfo");
  768. if(node != "" && node != null)
  769. {
  770. setCSVToNode("/root/main/paminfo", node);
  771. model.makeValue("/root/send/pid", model.getValue("/root/main/paminfo/list/pid"));
  772. model.makeValue("/root/send/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  773. if (model.getValue("/root/main/paminfo/list/ioflag") == "O")
  774. {
  775. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  776. }
  777. else
  778. {
  779. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/indd"));
  780. }
  781. model.makeValue("/root/send/oprsrvno", oprsrvno);
  782. model.makeValue("/root/send/srchmode", "dr");
  783. if (submit("TRMRF04301"))
  784. {
  785. copyNodeset("/root/tmpop/selectoplist", "/root/tmpop/selectoplist", "replace", ivw_0000509001.model, model);
  786. ivw_0000509001.window.javascript.fAfterSrch();
  787. }
  788. if (submit("TRMRF04302"))
  789. {
  790. var perfdrnm = model.getValue("/root/tmp/perfdr/perfdrnm");
  791. var opfromdt = model.getValue("/root/tmp/perfdr/opfromdt");
  792. var opstdd = opfromdt.substring(0, 8);
  793. var opsttm = opfromdt.substring(8, 12);
  794. if (opstdd == "" || opstdd.length < 8)
  795. {
  796. opstdd = model.getValue("/root/init/oprlist/oplist[oprsrvno='" + model.getValue("/root/send/reqinfstrec/oprsrvno") + "']/opcnfmdd");
  797. }
  798. if (opsttm == "" || opsttm.length < 4)
  799. {
  800. opsttm = getCurrentTime().substr(0, 4);
  801. }
  802. var transopdd = opstdd.substr(0, 4) + "-" + opstdd.substr(4, 2) + "-" + opstdd.substr(6, 2)
  803. parent.window.javascript.fSetFormRec("formrecdd" , opstdd);
  804. parent.window.javascript.fSetFormRec("formrechm" , opsttm);
  805. parent.ipt_formrecdd.refresh();
  806. parent.ipt_formrectm.refresh();
  807. //model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iSurg + "']/reccnts", transopdd); //수술일
  808. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iSurg + "']/reccnts", opstdd); //수술일
  809. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000980]/reccnts", perfdrnm); //집도의
  810. model.refresh();
  811. }
  812. model.removeNodeset("/root/main/paminfo");
  813. }
  814. //수술명, 집도의, 수술시간 조회 끝
  815. }
  816. }