SMMMR01002.js 50 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500
  1. /**
  2. * SMMMR01002.js
  3. * SMMMR01002_BriefOpNoteJCI.xrw
  4. * -> SMMMR01001버젼에서 op Findins& Procedure를 OP Findings, OP Procedure로 분리
  5. */
  6. //부분서식의 부모아이템 배열
  7. var gItemCds = new Array(
  8. "0007983001"//수술전진단명
  9. , "0000521001"//수술후진단명
  10. , "0000509001"//수술명
  11. , "0000512001"//OP Findings
  12. , "0000507001"//OP Procedure
  13. );
  14. var gItemCdsTextArea = new Array(
  15. "0000512001"//OP Findings
  16. , "0000507001"//OP Procedure
  17. );
  18. var gItemCdsXRWArea = new Array(
  19. "0007983001"//수술전진단명
  20. , "0000521001"//수술후진단명
  21. , "0000509001"//수술명
  22. );
  23. //부분서식의 개수만큼 일단 '0'으로 채운다.
  24. var gPageIdx = new Array(0, 0);
  25. var iSurg = ipt_surg.attribute("degnitemlevlcd");
  26. var iMcdnm = ipt_mcdnm.attribute("degnitemlevlcd");
  27. var iScdnm = ipt_scdnm.attribute("degnitemlevlcd");
  28. //var cOdt1 = cmb_odt1.attribute("degnitemlevlcd");
  29. var operation = getGlobalVariable("operation").split("▩")[1];
  30. var instance = document.models(0).instances(0);
  31. var pageInfo = new PAGEINFO();
  32. var oprsrvno = ""; //수술예약번호
  33. var perfdeptcd = ""; //집도과
  34. if(operation != null && operation != ""){
  35. oprsrvno = operation.split("▦")[0];
  36. perfdeptcd = operation.split("▦")[10];
  37. }
  38. /**
  39. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  40. * @id :
  41. * @authur : 안치원
  42. * @history : 2009.09.09 신규 안치원 ACW_090909A
  43. */
  44. var gExtnBtnIds = new Array(
  45. "btn_imge_0000512001" //OP Findings 이미지버튼
  46. , "btn_etcrec_0000512001" //OP Findings 추가기록버튼
  47. , "btn_imge_0000507001" //OP Procedure 이미지버튼
  48. , "btn_etcrec_0000507001" //OP Procedure 추가기록버튼
  49. );
  50. /**
  51. * @desc : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  52. * @id :
  53. * @event : xforms-ready
  54. * @return : void
  55. * @authur : 박종훈
  56. */
  57. function fClearComnFormData()
  58. {
  59. if (gMaxSectionID != "")
  60. {
  61. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  62. MaxObj.dispatch("onclick");
  63. }
  64. ClearComnFormData(gItemCds);
  65. fInitialize();
  66. if (parent.window.javascript.fGetFormRec("status") == "C")
  67. {
  68. //dhkim
  69. // rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //수술예약번호로 진단명 조회
  70. // fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 보조의 조회
  71. // if(!rtn)
  72. // {
  73. // fBtnDisEnable(true);
  74. // return "oprfalse";
  75. // } else {
  76. // model.refresh();
  77. // }
  78. }
  79. //if (parent.window.javascript.fGetFormRec("status") == "C")
  80. //{
  81. // fSetOprInfo();
  82. //}
  83. //포커스 처리
  84. SetDefFocusIVW(gItemCdsTextArea);
  85. }
  86. /**
  87. * @desc : 기록데이터 조회
  88. * @id :
  89. * @event : xforms-ready
  90. * @return : void
  91. * @authur : 박종훈
  92. */
  93. function fLoadData()
  94. {
  95. fInitialize();
  96. //Program 서식 데이터 조회반영
  97. InitPgmFormData();
  98. this.recRef2 = "/root/hidden/recinfo"
  99. //부분서식 데이터 조회 반영
  100. InitUnitFormData(gItemCds);
  101. }
  102. /**
  103. * @desc : 화면 초기화
  104. * @
  105. * @param :
  106. * @return :
  107. * @authur : 박종훈
  108. */
  109. function fInitialize()
  110. {
  111. ivw_0007983001.attribute("border-style") = "none";
  112. ivw_0000521001.attribute("border-style") = "none";
  113. ivw_0000509001.attribute("border-style") = "none";
  114. gTermViewTopPos = 29;
  115. gTermViewHei = 152;
  116. gTermViewItems = gItemCdsXRWArea;
  117. model.refresh();
  118. }
  119. /**
  120. * @desc : 수술이력 팝업
  121. * @
  122. * @param :
  123. * @return :
  124. * @authur : 박종훈
  125. */
  126. function fPatientHist()
  127. {
  128. modal("SMMMO02500");
  129. }
  130. /**
  131. * @desc : 기록 인스턴스 연결
  132. * @
  133. * @param :
  134. * @return :
  135. * @authur : 박종훈
  136. */
  137. function fSetRecItemValue(reciteminfo)
  138. {
  139. return SetCommMediFormValue(gItemCds, reciteminfo);
  140. }
  141. /**
  142. * @desc : 수술전 진단명 사이즈 조절
  143. * @
  144. * @param :
  145. * @return :
  146. * @---------------------------------------------------
  147. */
  148. function fSetSizeFormDiag()
  149. {
  150. ivw_0007983001.window.javascript.fInitPage(false, parseInt(ivw_0007983001.attribute("height")), parseInt(ivw_0007983001.attribute("width")), "ivw_0007983001", "수술전 진단명(Free text)");
  151. //ivw_0000521001.window.javascript.fInitPage(false, parseInt(ivw_0000521001.attribute("height")), parseInt(ivw_0000521001.attribute("width")), "ivw_0000521001", "수술후 진단명");
  152. }
  153. /**
  154. * @desc : 수술후 진단명 사이즈 조절
  155. * @
  156. * @param :
  157. * @return :
  158. * @---------------------------------------------------
  159. */
  160. function fSetSizeFormDiag1()
  161. {
  162. //ivw_0007983001.window.javascript.fInitPage(false, parseInt(ivw_0007983001.attribute("height")), parseInt(ivw_0007983001.attribute("width")), "ivw_0007983001", "수술전 진단명");
  163. ivw_0000521001.window.javascript.fInitPage(false, parseInt(ivw_0000521001.attribute("height")), parseInt(ivw_0000521001.attribute("width")), "ivw_0000521001", "수술후 진단명(Free text)");
  164. }
  165. /**
  166. * @desc : 서식 수술명 사이즈 조절
  167. * @
  168. * @param :
  169. * @return :
  170. * @---------------------------------------------------
  171. */
  172. function fSetSizeFormOpr()
  173. {
  174. //fFormReady();
  175. ivw_0000509001.window.javascript.fInitPage(false, parseInt(ivw_0000509001.attribute("height")), parseInt(ivw_0000509001.attribute("width")), "ivw_0000509001");
  176. }
  177. /*****************************************************************************
  178. 튜닝
  179. ******************************************************************************/
  180. var gLoadFormCnts = 0;
  181. /**
  182. * @group :
  183. * @ver : 2008.06.13
  184. * @by : snoweye
  185. * @---------------------------------------------------
  186. * @type : function
  187. * @access : private
  188. * @desc : 화면 로딩후 초기화 작업 수행
  189. * @param :
  190. * @return :
  191. * @---------------------------------------------------
  192. */
  193. function fFormReady()
  194. {
  195. grup_base.attribute("border-style") = "none";
  196. //setSectionSize(gItemCds, 335, 350);
  197. setSectionSize(gItemCds, 336, 294);
  198. //20080702 박종훈 추가
  199. fInitialize();
  200. InitBtnImge(gItemCdsTextArea);
  201. InitBtnEtcRec(gItemCdsTextArea);
  202. InitBtnComn(gItemCdsTextArea);
  203. dispOnLoadComplete(COMN_FORM);
  204. if (parent.window.javascript.fGetFormRec("status") == "C")
  205. {
  206. //2010.06.09 dhkim 추가(수술과정 캡션 visible/hidden처리)
  207. fViewOPfindingsCaption_SMMMR01002("0000512001");
  208. fViewOPfindingsCaption_SMMMR01002("0000507001");
  209. }
  210. }
  211. /**
  212. * @group :
  213. * @ver : 2008.06.13
  214. * @by : snoweye
  215. * @---------------------------------------------------
  216. * @type : function
  217. * @access : private
  218. * @desc : 부분서식 로딩
  219. * @param :
  220. * @return :
  221. * @---------------------------------------------------
  222. */
  223. function fLoadUnitForm()
  224. {
  225. initSection(gItemCds);
  226. }
  227. var diagcnt = 0;
  228. /**
  229. * @group :
  230. * @ver : 2008.06.13
  231. * @by : snoweye
  232. * @---------------------------------------------------
  233. * @type : function
  234. * @access : private
  235. * @desc : 부분서식 로딩후 후처리
  236. * @param :
  237. * @return :
  238. * @---------------------------------------------------
  239. */
  240. function fOnLoadComplete()
  241. {
  242. var rtn = false;
  243. var curLoadFormCd = getParameter("loadformcd");
  244. setParameter("loadformcd", "");
  245. var fstLevlItemCd = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/orgsupdegnitemcd");
  246. var ivwObj = document.controls("ivw_" + fstLevlItemCd);
  247. var unitformload = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/loaded");
  248. if(ivwObj != null && unitformload != "true")
  249. {
  250. //ivwObj.window.javascript.setFstLevlItemCd(fstLevlItemCd);
  251. setFstLevlItemCd(ivwObj, curLoadFormCd);
  252. model.setValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "']/loaded", "true");
  253. }
  254. //수술전진단명 부분서식 로딩후 처리
  255. if(fstLevlItemCd == '0007983001')
  256. {
  257. fSetSizeFormDiag();
  258. }
  259. //수술후진단명 부분서식 로딩후 처리
  260. if(fstLevlItemCd == '0000521001')
  261. {
  262. fSetSizeFormDiag1();
  263. }
  264. //수술명 부분서식 로딩후 처리
  265. if(fstLevlItemCd == '0000509001')
  266. {
  267. fSetSizeFormOpr();
  268. if (parent.window.javascript.fGetFormRec("status") == "C")
  269. {
  270. //fSrchOprPerfDrlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  271. fClearComnFormData();
  272. // dispOnLoadComplete(UNIT_FORM);
  273. }
  274. /* 위내용 dhkim
  275. fSetSizeFormOpr();
  276. if (parent.window.javascript.fGetFormRec("status") == "C")
  277. {
  278. //fSrchOprPerfDrlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  279. //fClearComnFormData();
  280. }
  281. */
  282. }
  283. gLoadFormCnts++;
  284. if(gItemCds.length == gLoadFormCnts)
  285. {
  286. //fSetOprInfo();
  287. dispOnLoadComplete(UNIT_FORM);
  288. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  289. SetDefFocusIVW(gItemCdsTextArea);
  290. //2010.01.11 dhkim - 마지막로딩후 수술일자 disable처리
  291. ipt_surg.disabled = true;
  292. }
  293. }
  294. /**
  295. * @group :
  296. * @ver : 2009.01.05
  297. * @by : jonghun
  298. * @---------------------------------------------------
  299. * @type : function
  300. * @access : private
  301. * @desc : 서식 로딩 완료 후 수술 예약번호 유무에 따라 서식 내용 셋팅
  302. * @param :
  303. * @return :
  304. * @---------------------------------------------------
  305. * /
  306. function fSetOprInfo()
  307. {
  308. if (parent.window.javascript.fGetFormRec("status") == "C")
  309. {
  310. var dschdd = parent.window.javascript.fGetPamInfo("dschdd");
  311. if (dschdd == "" || dschdd == "-")
  312. {
  313. dschdd = "99991231";
  314. }
  315. model.makeValue("/root/send/oprinfo/pid", parent.window.javascript.fGetPamInfo("pid"));
  316. model.makeValue("/root/send/oprinfo/indd", parent.window.javascript.fGetPamInfo("indd"));
  317. model.makeValue("/root/send/oprinfo/dschdd", dschdd);
  318. if (submit("TRMMR01002")) //수술 이력 조회
  319. {
  320. var nodeList = model.instances(0).selectNodes("/root/init/oprlist/oplist");
  321. if (oprsrvno != "")
  322. {
  323. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  324. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  325. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  326. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  327. model.makeValue("/root/send/reqinfstrec/oprsrvno", oprsrvno);
  328. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  329. {
  330. var nodeList1 = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  331. //해당 수술건에 대한 수술기록 유무에 따른 분기
  332. if (nodeList1.length > 0)
  333. {
  334. // alert('수술기록있어');
  335. //fSetOprRecIf();
  336. }
  337. else
  338. {
  339. // alert('수술기록없어');
  340. //fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  341. }
  342. }
  343. }
  344. else if(nodeList.length == 1)
  345. {
  346. var opsrvno = model.getValue("/root/init/oprlist/oplist/oprsrvno");
  347. if (opsrvno != "" && opsrvno != "-")
  348. {
  349. parent.window.javascript.fSetFormRec("oprsrvno", opsrvno);
  350. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  351. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  352. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  353. model.makeValue("/root/send/reqinfstrec/oprsrvno", opsrvno);
  354. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  355. {
  356. var nodeList2 = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  357. //해당 수술건에 대한 수술기록 유무에 따른 분기
  358. if (nodeList2.length > 0)
  359. {
  360. fSetOprRecIf();
  361. }
  362. else
  363. {
  364. fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  365. }
  366. }
  367. }
  368. }
  369. else
  370. {
  371. var curdd = getCurrentDate();
  372. //var transopdd = curdd.substr(0, 4) + "-" + curdd.substr(4, 2) + "-" + curdd.substr(6, 2)
  373. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000515]/reccnts", curdd);
  374. }
  375. }
  376. }
  377. }
  378. */
  379. /**
  380. * @group :
  381. * @ver : 2009.01.05
  382. * @by : jonghun
  383. * @---------------------------------------------------
  384. * @type : function
  385. * @access : private
  386. * @desc : 수술기록 인터페이스 내용 셋팅(보조의 세팅)
  387. * @param :
  388. * @return :
  389. * @---------------------------------------------------
  390. * /
  391. function fSetOprRecIf()
  392. {
  393. //수술일
  394. var opdd = model.getValue("/root/main/infstrec/recitem[degnitemlevlcd='0000515']/reccnts");
  395. if (opdd == "")
  396. {
  397. opdd = model.getValue("/root/init/oprlist/oplist[oprsrvno='" + model.getValue("/root/send/reqinfstrec/oprsrvno") + "']/opcnfmdd");
  398. //opdd = getCurrentDate();
  399. }
  400. //var transopdd = opdd.substr(0, 4) + "-" + opdd.substr(4, 2) + "-" + opdd.substr(6, 2)
  401. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000515]/reccnts", opdd);
  402. parent.window.javascript.fSetFormRec("formrecdd" , opdd);
  403. parent.ipt_formrecdd.refresh();
  404. //수술전진단
  405. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0007983001' and formcd = '0000000899']");
  406. if (nodeList.length > 0)
  407. {
  408. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0007983001' and formcd = '0000000899']", ivw_0007983001);
  409. ivw_0007983001.window.javascript.fAddrow();
  410. }
  411. //수술후진단
  412. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000521001' and formcd = '0000000899']");
  413. if (nodeList.length > 0)
  414. {
  415. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000521001' and formcd = '0000000899']", ivw_0000521001);
  416. ivw_0000521001.window.javascript.fAddrow();
  417. }
  418. //수술명
  419. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000509001' and formcd = '0000000900']");
  420. if (nodeList.length > 0)
  421. {
  422. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000509001' and formcd = '0000000900']", ivw_0000509001);
  423. ivw_0000509001.window.javascript.fAddrow();
  424. }
  425. //집도의
  426. var mOpDrList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000980001']");
  427. var mOpdegnitemlevlcd = "";
  428. var mOprectermcd = "";
  429. var mOprectermnm = "";
  430. var mOpreccnts = "";
  431. var mOpdegnitemnm = "";
  432. var mOpdegnitemkind = "";
  433. var mOprecrslt = "";
  434. for(var i = 0; i < mOpDrList.length; i++)
  435. {
  436. mOpdegnitemlevlcd = mOpDrList.item(i).selectSingleNode("degnitemlevlcd").text;
  437. mOprectermcd = mOpDrList.item(i).selectSingleNode("rectermcd").text;
  438. mOprectermnm = mOpDrList.item(i).selectSingleNode("rectermnm").text;
  439. mOpreccnts = mOpDrList.item(i).selectSingleNode("reccnts").text;
  440. mOpdegnitemnm = mOpDrList.item(i).selectSingleNode("degnitemnm").text;
  441. mOpdegnitemkind = mOpDrList.item(i).selectSingleNode("degnitemkind").text;
  442. if (mOprectermnm != "" && mOprecrslt == "")
  443. {
  444. mOprecrslt += mOprectermnm;
  445. }
  446. else if(mOprectermnm != "")
  447. {
  448. mOprecrslt += ", " + mOprectermnm;
  449. }
  450. else if(mOpreccnts != "")
  451. {
  452. mOprecrslt += ", " + mOpreccnts;
  453. }
  454. }
  455. //집도의
  456. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000980]/reccnts", mOprecrslt);
  457. //보조의
  458. var sOpDrList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000341001']");
  459. var sOpdegnitemlevlcd = "";
  460. var sOprectermcd = "";
  461. var sOprectermnm = "";
  462. var sOpreccnts = "";
  463. var sOpdegnitemnm = "";
  464. var sOpdegnitemkind = "";
  465. var sOprecrslt = "";
  466. for(var i = 0; i < sOpDrList.length; i++)
  467. {
  468. sOpdegnitemlevlcd = sOpDrList.item(i).selectSingleNode("degnitemlevlcd").text;
  469. sOprectermcd = sOpDrList.item(i).selectSingleNode("rectermcd").text;
  470. sOprectermnm = sOpDrList.item(i).selectSingleNode("rectermnm").text;
  471. sOpreccnts = sOpDrList.item(i).selectSingleNode("reccnts").text;
  472. sOpdegnitemnm = sOpDrList.item(i).selectSingleNode("degnitemnm").text;
  473. sOpdegnitemkind = sOpDrList.item(i).selectSingleNode("degnitemkind").text;
  474. if (sOprectermnm != "" && sOprecrslt == "")
  475. {
  476. sOprecrslt += sOprectermnm;
  477. }
  478. else if(sOprectermnm != "")
  479. {
  480. sOprecrslt += ", " + sOprectermnm;
  481. }
  482. else if(sOpreccnts != "")
  483. {
  484. sOprecrslt += ", " + sOpreccnts;
  485. }
  486. }
  487. //보조의
  488. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000341]/reccnts", sOprecrslt);
  489. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  490. //수술소견
  491. var OpFindNodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000512001']");
  492. var opFinddegnitemlevlcd = "";
  493. var opFindrectermcd = "";
  494. var opFindrectermnm = "";
  495. var opFindreccnts = "";
  496. var opFinddegnitemnm = "";
  497. var opFinddegnitemkind = "";
  498. var opFindrecrslt = "";
  499. for(var i = 0; i < OpFindNodeList.length; i++)
  500. {
  501. opFinddegnitemlevlcd = OpFindNodeList.item(i).selectSingleNode("degnitemlevlcd").text;
  502. opFindrectermcd = OpFindNodeList.item(i).selectSingleNode("rectermcd").text;
  503. opFindrectermnm = OpFindNodeList.item(i).selectSingleNode("rectermnm").text;
  504. opFindreccnts = OpFindNodeList.item(i).selectSingleNode("reccnts").text;
  505. opFinddegnitemnm = OpFindNodeList.item(i).selectSingleNode("degnitemnm").text;
  506. opFinddegnitemkind = OpFindNodeList.item(i).selectSingleNode("degnitemkind").text;
  507. if(opFinddegnitemkind == "IMG" || opFinddegnitemkind == "FDG")
  508. continue;
  509. opFinddegnitemlevlcd = opFinddegnitemlevlcd.split(".");
  510. if (opFinddegnitemlevlcd.length > 1)
  511. {
  512. if (opFinddegnitemlevlcd.length == 2)
  513. {
  514. opFindrecrslt += opFinddegnitemnm + "\n";
  515. }
  516. if (opFindrectermnm != "" && opFindreccnts != "")
  517. {
  518. opFindrecrslt += opFinddegnitemnm + " : " + opFindrectermnm + " ※ " + opFindreccnts + "\n";
  519. }
  520. else if (opFindrectermnm != "")
  521. {
  522. opFindrecrslt += opFinddegnitemnm + " : " + opFindrectermnm + "\n";
  523. }
  524. else if (opFindreccnts != "")
  525. {
  526. if (opFinddegnitemnm != "")
  527. {
  528. opFindrecrslt += opFinddegnitemnm + " " + opFindreccnts + "\n";
  529. }
  530. else
  531. {
  532. opFindrecrslt += opFindreccnts + "\n";
  533. }
  534. }
  535. }
  536. else
  537. {
  538. opFindrecrslt = opFindreccnts + "\n";
  539. }
  540. }
  541. //수술소견
  542. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000512]/reccnts", opFindrecrslt);
  543. //수술과정
  544. var OpProcNodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000507001']");
  545. var opProcdegnitemlevlcd = "";
  546. var opProcrectermcd = "";
  547. var opProcrectermnm = "";
  548. var opProcreccnts = "";
  549. var opProcdegnitemnm = "";
  550. var opProcdegnitemkind = "";
  551. var opProcrecrslt = "";
  552. for(var i = 0; i < OpProcNodeList.length; i++)
  553. {
  554. opProcdegnitemlevlcd = OpProcNodeList.item(i).selectSingleNode("degnitemlevlcd").text;
  555. opProcrectermcd = OpProcNodeList.item(i).selectSingleNode("rectermcd").text;
  556. opProcrectermnm = OpProcNodeList.item(i).selectSingleNode("rectermnm").text;
  557. opProcreccnts = OpProcNodeList.item(i).selectSingleNode("reccnts").text;
  558. opProcdegnitemnm = OpProcNodeList.item(i).selectSingleNode("degnitemnm").text;
  559. opProcdegnitemkind = OpProcNodeList.item(i).selectSingleNode("degnitemkind").text;
  560. if(opProcdegnitemkind == "IMG" || opProcdegnitemkind == "FDG")
  561. continue;
  562. opProcdegnitemlevlcd = opProcdegnitemlevlcd.split(".");
  563. if (opProcdegnitemlevlcd.length > 1)
  564. {
  565. if (opProcdegnitemlevlcd.length == 2)
  566. {
  567. opProcrecrslt += opProcdegnitemnm + "\n";
  568. }
  569. if (opProcrectermnm != "" && opProcreccnts != "")
  570. {
  571. opProcrecrslt += opProcdegnitemnm + " : " + opProcrectermnm + " ※ " + opProcreccnts + "\n";
  572. }
  573. else if (opProcrectermnm != "")
  574. {
  575. opProcrecrslt += opProcdegnitemnm + " : " + opProcrectermnm + "\n";
  576. }
  577. else if (opProcreccnts != "")
  578. {
  579. if (opProcdegnitemnm != "")
  580. {
  581. opProcrecrslt += opProcdegnitemnm + " " + opProcreccnts + "\n";
  582. }
  583. else
  584. {
  585. opProcrecrslt += opProcreccnts + "\n";
  586. }
  587. }
  588. }
  589. else
  590. {
  591. opProcrecrslt = opProcreccnts + "\n";
  592. }
  593. }
  594. //수술과정
  595. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000507]/reccnts", opProcrecrslt);
  596. model.refresh();
  597. }
  598. */
  599. /**
  600. * @group :
  601. * @ver : 2008.11.28
  602. * @by : jonghun
  603. * @---------------------------------------------------
  604. * @type : function
  605. * @access : private
  606. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  607. * @param :
  608. * @return :
  609. * @---------------------------------------------------
  610. */
  611. function fGetDefData()
  612. {
  613. fSetSizeFormOpr();
  614. operation = getGlobalVariable("operation").split("▩")[1];
  615. if(operation != null && operation != ""){
  616. oprsrvno = operation.split("▦")[0];
  617. perfdeptcd = operation.split("▦")[10];
  618. }
  619. dispOnLoadComplete(UNIT_FORM);
  620. }
  621. /**
  622. * @group :
  623. * @ver : 2009.01.05
  624. * @by : jonghun
  625. * @---------------------------------------------------
  626. * @type : function
  627. * @access : private
  628. * @desc : 수술 이력 리스트 선택시
  629. * @param :
  630. * @return :
  631. * @---------------------------------------------------
  632. function fChngOpList()
  633. {
  634. if (model.getValue("/root/send/reqinfstrec/oprsrvno") != "")
  635. {
  636. if (gMaxSectionID != "")
  637. {
  638. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  639. MaxObj.dispatch("onclick");
  640. }
  641. ClearComnFormData(gItemCds);
  642. fInitialize();
  643. parent.window.javascript.fSetFormRec("oprsrvno", model.getValue("/root/send/reqinfstrec/oprsrvno"));
  644. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  645. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  646. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  647. if (submit("TRMMR01003")) //수술 예약번호에 따른 수술기록지 기록내용 조회
  648. {
  649. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem");
  650. //해당 수술건에 대한 수술기록 유무에 따른 분기
  651. if (nodeList.length > 0)
  652. {
  653. fSetOprRecIf();
  654. }
  655. else
  656. {
  657. fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  658. }
  659. }
  660. }
  661. }
  662. */
  663. /**
  664. * @group :
  665. * @ver : 2009.01.05
  666. * @by : jonghun
  667. * @---------------------------------------------------
  668. * @type : function
  669. * @access : private
  670. * @desc : 수술에 대한 기본 정보 조회
  671. * @param :
  672. * @return :
  673. * @---------------------------------------------------
  674. function fDefInfo()
  675. {
  676. var tmpoprsrvno = model.getValue("/root/send/reqinfstrec/oprsrvno");
  677. if(tmpoprsrvno != "")
  678. {
  679. //수술전 진단 조회 시작
  680. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  681. model.makeValue("/root/send/oprsrvno", tmpoprsrvno);
  682. submit("TRMRF04001", false);
  683. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  684. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  685. model.refresh();
  686. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  687. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  688. //수술전 진단 조회 끝
  689. //수술명, 집도의, 수술시간 조회 시작
  690. model.removeNodeset("/root/tmpop/selectoplist");
  691. model.removeNodeset("/root/main/paminfo/list");
  692. var node = getGlobalVariable("paminfo");
  693. if(node != "" && node != null)
  694. {
  695. setCSVToNode("/root/main/paminfo", node);
  696. model.makeValue("/root/send/pid", model.getValue("/root/main/paminfo/list/pid"));
  697. model.makeValue("/root/send/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  698. if (model.getValue("/root/main/paminfo/list/ioflag") == "O")
  699. {
  700. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  701. }
  702. else
  703. {
  704. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/indd"));
  705. }
  706. model.makeValue("/root/send/oprsrvno", oprsrvno);
  707. model.makeValue("/root/send/srchmode", "dr");
  708. if (submit("TRMRF04301"))
  709. {
  710. copyNodeset("/root/tmpop/selectoplist", "/root/tmpop/selectoplist", "replace", ivw_0000509001.model, model);
  711. ivw_0000509001.window.javascript.fAfterSrch();
  712. }
  713. if (submit("TRMRF04302"))
  714. {
  715. var perfdrnm = model.getValue("/root/tmp/perfdr/perfdrnm");
  716. var opfromdt = model.getValue("/root/tmp/perfdr/opfromdt");
  717. var opstdd = opfromdt.substring(0, 8);
  718. var opsttm = opfromdt.substring(8, 12);
  719. if (opstdd == "" || opstdd.length < 8)
  720. {
  721. opstdd = model.getValue("/root/init/oprlist/oplist[oprsrvno='" + model.getValue("/root/send/reqinfstrec/oprsrvno") + "']/opcnfmdd");
  722. }
  723. if (opsttm == "" || opsttm.length < 4)
  724. {
  725. opsttm = getCurrentTime().substr(0, 4);
  726. }
  727. var transopdd = opstdd.substr(0, 4) + "-" + opstdd.substr(4, 2) + "-" + opstdd.substr(6, 2)
  728. parent.window.javascript.fSetFormRec("formrecdd" , opstdd);
  729. parent.window.javascript.fSetFormRec("formrechm" , opsttm);
  730. parent.ipt_formrecdd.refresh();
  731. parent.ipt_formrectm.refresh();
  732. //model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iSurg + "']/reccnts", transopdd); //수술일
  733. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iSurg + "']/reccnts", opstdd); //수술일
  734. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000980]/reccnts", perfdrnm); //집도의
  735. model.refresh();
  736. }
  737. model.removeNodeset("/root/main/paminfo");
  738. }
  739. //수술명, 집도의, 수술시간 조회 끝
  740. }
  741. }
  742. */
  743. /**
  744. * @desc : 라디오버튼 선택에 따른 reccnts셋팅
  745. * @
  746. * @param :
  747. * @return :
  748. * @authur : 박종훈
  749. */
  750. function fRadioYN(degnitemlevlcd)
  751. {
  752. var sRdoCd = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd");
  753. var sRdoNm = model.getValue("/root/main/forminfo/vallist[valcd='" + sRdoCd + "']/valitemnm");
  754. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rectermnm", sRdoNm);
  755. }
  756. /**
  757. * @desc : 수술예약번호를 통한 진단명, 마취종류 조회
  758. * @
  759. * @param :
  760. * @return :
  761. * @---------------------------------------------------
  762. */
  763. function fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm)
  764. {
  765. if(oprsrvno != ""){
  766. model.removeNodeset("/root/main/diaginfo/diagcdlist");
  767. model.removenode("/root/send");
  768. model.makeValue("/root/send/oprsrvno", oprsrvno);
  769. //model.makeValue("/root/send/oprsrvno", "2007000009");
  770. submit("TRMRF04001", false);
  771. var anstmthdcd = model.getValue("/root/main/diaginfo/anstlist/anstmthdcd");
  772. var mcdnm = model.getValue("/root/main/diaginfo/anstlist/mcdnm");
  773. var anstmthdcdsub = model.getValue("/root/main/diaginfo/anstlist/anstmthdcdsub");
  774. var scdnm = model.getValue("/root/main/diaginfo/anstlist/scdnm");
  775. var pageInfo = new PAGEINFO();
  776. var iptMObj = document.controls("ipt_mcdnm");
  777. var iptSObj = document.controls("ipt_scdnm");
  778. if (anstmthdcd != "" && mcdnm != "")
  779. {
  780. //주마취
  781. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  782. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  783. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  784. }
  785. else
  786. {
  787. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  788. }
  789. if (anstmthdcdsub != "" && scdnm != "")
  790. {
  791. //부마취
  792. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  793. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  794. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  795. }
  796. else
  797. {
  798. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  799. }
  800. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  801. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  802. model.refresh();
  803. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  804. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  805. return true;
  806. }else{
  807. messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  808. grup_base.disabled = true;
  809. fBtnDisEnable(true);
  810. return false;
  811. }
  812. }
  813. /**
  814. * @desc : 저장버튼 Disable
  815. * @
  816. * @param :
  817. * @return :
  818. * @authur : 박종훈
  819. */
  820. function fBtnDisEnable(flag)
  821. {
  822. if(flag)
  823. {
  824. parent.window.javascript.fDisalbeSave(flag);
  825. }
  826. else
  827. {
  828. parent.window.javascript.fDisalbeSave(flag);
  829. }
  830. }
  831. /**
  832. * @desc : 수술명, 집도의 조회
  833. * @
  834. * @param :
  835. * @return :
  836. * @---------------------------------------------------
  837. */
  838. function fSrchOprPerfDrlist(oprsrvno, cOdt1)
  839. {
  840. model.removeNodeset("/root/tmpop/selectoplist");
  841. model.removeNodeset("/root/main/paminfo/list");
  842. var node = getGlobalVariable("paminfo");
  843. if(node != "" && node != null){
  844. setCSVToNode("/root/main/paminfo", node);
  845. model.removenode("/root/send");
  846. model.makeValue("/root/send/pid", model.getValue("/root/main/paminfo/list/pid"));
  847. model.makeValue("/root/send/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  848. if (model.getValue("/root/main/paminfo/list/ioflag") == "O")
  849. {
  850. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  851. }
  852. else
  853. {
  854. model.makeValue("/root/send/orddd", model.getValue("/root/main/paminfo/list/indd"));
  855. }
  856. model.makeValue("/root/send/oprsrvno", oprsrvno);
  857. model.makeValue("/root/send/srchmode", "dr");
  858. //model.removeNodeset("/root/main/recinfo/recitem[degnitemno = '1']");
  859. // alert("TRMRF04301서브밋전 oprsrvno:" + oprsrvno);
  860. if (submit("TRMRF04301"))
  861. {
  862. copyNodeset("/root/tmpop/selectoplist", "/root/tmpop/selectoplist", "replace", ivw_0000509001.model, model);
  863. ivw_0000509001.window.javascript.fAfterSrch();
  864. }
  865. //조회해온 수술일자, 수술시간으로 iviewer 상단 진료일자 변경
  866. if (submit("TRMRF04302"))
  867. {
  868. var perfdrnm = model.getValue("/root/tmp/perfdr/perfdrnm");
  869. var opfromdt = model.getValue("/root/tmp/perfdr/opfromdt");
  870. var sOpDrList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000341001']");
  871. var opstdd = opfromdt.substring(0, 8);
  872. var opsttm = opfromdt.substring(8, 12);
  873. //2010.02.03 dhkim - 수술기록 없을때 현재일자세팅하지 않음
  874. /*
  875. if (opstdd == "" || opstdd.length < 8)
  876. {
  877. opstdd = getCurrentDate();
  878. }
  879. */
  880. if (opsttm == "" || opsttm.length < 4)
  881. {
  882. opsttm = getCurrentTime().substr(0, 4);
  883. }
  884. //var transopdd = opstdd.substr(0, 4) + "-" + opstdd.substr(4, 2) + "-" + opstdd.substr(6, 2)
  885. //2010.02.03 dhkim - 수술기록 있을때만 일자세팅
  886. if(opstdd != "" && opstdd.length == 8){
  887. parent.window.javascript.fSetFormRec("formrecdd" , opstdd);
  888. parent.window.javascript.fSetFormRec("formrechm" , opsttm);
  889. parent.ipt_formrecdd.refresh();
  890. parent.ipt_formrectm.refresh();
  891. }
  892. opstdd = parent.window.javascript.fGetFormRec("formrecdd");
  893. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iSurg + "']/reccnts", opstdd); //수술일
  894. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000980]/reccnts", perfdrnm); //집도의
  895. }
  896. /*
  897. //dhkim
  898. //보조의 조회해 text에 이름세팅
  899. model.removenode("/root/send");
  900. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  901. model.makeValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetPamInfo("pid"));
  902. model.makeValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetPamInfo("indd"));
  903. model.makeValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetPamInfo("cretno"));
  904. model.makeValue("/root/send/reqinfstrec/oprsrvno", oprsrvno);
  905. if(submit('TRMMR01003')){
  906. //보조의
  907. var sOpDrList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000341001']");
  908. var sOpdegnitemlevlcd = "";
  909. var sOprectermcd = "";
  910. var sOprectermnm = "";
  911. var sOpreccnts = "";
  912. var sOpdegnitemnm = "";
  913. var sOpdegnitemkind = "";
  914. var sOprecrslt = "";
  915. for(var i = 0; i < sOpDrList.length; i++)
  916. {
  917. sOpdegnitemlevlcd = sOpDrList.item(i).selectSingleNode("degnitemlevlcd").text;
  918. sOprectermcd = sOpDrList.item(i).selectSingleNode("rectermcd").text;
  919. sOprectermnm = sOpDrList.item(i).selectSingleNode("rectermnm").text;
  920. sOpreccnts = sOpDrList.item(i).selectSingleNode("reccnts").text;
  921. sOpdegnitemnm = sOpDrList.item(i).selectSingleNode("degnitemnm").text;
  922. sOpdegnitemkind = sOpDrList.item(i).selectSingleNode("degnitemkind").text;
  923. if (sOprectermnm != "" && sOprecrslt == "")
  924. {
  925. sOprecrslt += sOprectermnm;
  926. }
  927. else if(sOprectermnm != "")
  928. {
  929. sOprecrslt += ", " + sOprectermnm;
  930. }
  931. else if(sOpreccnts != "")
  932. {
  933. sOprecrslt += ", " + sOpreccnts;
  934. }
  935. }
  936. //보조의
  937. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000980]/reccnts", perfdrnm);
  938. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd=0000341]/reccnts", sOprecrslt);//보조의
  939. }
  940. */
  941. model.refresh();
  942. }
  943. }
  944. /**
  945. * 20091211 dhkim
  946. * OP Findings & Procedure에 데이터가 없을때 캡션을 보여준다.
  947. * 2010.06.08 김달현
  948. * OP FInding, Procedure 항목 디자인 분리로 캡션도 분리함.
  949. */
  950. function fViewOPfindingsCaption_SMMMR01002(itemcd){
  951. if(itemcd == '0000512001'){//OP Findings
  952. var tarid = document.controls("tar_" + itemcd);
  953. var ivwid = document.controls("ivw_" + itemcd);
  954. var capid = document.controls("cap_" + itemcd);
  955. var tarVal = "";
  956. if(ivwid != null && ivwid.src != ""){
  957. tarVal = ivwid.model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + itemcd + "']/reccnts");
  958. }
  959. if(tarVal == null || tarVal == ""){
  960. capid.attribute("visibility") = "visible";
  961. tarid.attribute("visibility") = "hidden";
  962. ivwid.attribute("visibility") = "hidden";
  963. }else{
  964. capid.attribute("visibility") = "hidden";
  965. tarid.attribute("visibility") = "visible";
  966. ivwid.attribute("visibility") = "visible";
  967. }
  968. }
  969. if(itemcd =="0000507001"){// Procedure
  970. var tarid = document.controls("tar_" + itemcd);
  971. var ivwid = document.controls("ivw_" + itemcd);
  972. var capid = document.controls("cap_" + itemcd);
  973. var tarVal = "";
  974. if(ivwid != null && ivwid.src != ""){
  975. tarVal = ivwid.model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + itemcd + "']/reccnts");
  976. }
  977. if(tarVal == null || tarVal == ""){
  978. capid.attribute("visibility") = "visible";
  979. tarid.attribute("visibility") = "hidden";
  980. ivwid.attribute("visibility") = "hidden";
  981. }else{
  982. capid.attribute("visibility") = "hidden";
  983. tarid.attribute("visibility") = "visible";
  984. ivwid.attribute("visibility") = "visible";
  985. }
  986. }
  987. }
  988. /**
  989. * 20091231 dhkim 추가
  990. * MMR01100.js에서 서식load를 완료한 후에 호출한다.
  991. * @return
  992. */
  993. function initFormAtLast_MMR01100I() {
  994. var formcd = parent.window.javascript.fGetFormMast("formcd");
  995. fInitAnstTypeCtrl_MMR01001();//2010.01.18 dhkim - 콤보바인딩 후 연동데이터 세팅하도록 순서변경
  996. //신규서식로딩의 경우만 Brief Op Note 연동
  997. if (parent.window.javascript.fGetFormRec("status") == "C") {
  998. var operation = getGlobalVariable("operation").split("▩")[1];
  999. var oprsrvno = "";
  1000. if(operation != null && operation != ""){
  1001. oprsrvno = operation.split("▦")[0];
  1002. }
  1003. //수술예약번호 체크
  1004. if(oprsrvno == "")
  1005. {
  1006. messageBox("수술예약이 되지 않은", "I005");
  1007. grup_base.disabled = true;
  1008. parent.window.javascript.initButtonLayer_MMR01100("no_auth");
  1009. } else {
  1010. parent.window.javascript.fSetFormRec("oprsrvno", oprsrvno);
  1011. grup_base.disabled = false;
  1012. parent.window.javascript.initButtonLayer_MMR01100("staff_auth_n");
  1013. }
  1014. fGetRecIfData_MMR01001("opr;opdiag;opnm");
  1015. } else {
  1016. grup_base.disabled = false;
  1017. parent.window.javascript.initButtonLayer_MMR01100("staff_auth_n");
  1018. }
  1019. //2010.01.19 dhkim - 통합기록조회용 JCI구분자추가
  1020. //parent.window.javascript.fSetFormRec("xsltflag", "JCI");
  1021. model.refresh();
  1022. }
  1023. /**
  1024. * Brief OP Note의 Data를 설정한다.
  1025. * @return
  1026. */
  1027. function fGetRecIfData_MMR01001(infoflag) {
  1028. if (parent.window.javascript.fGetFormRec("oprsrvno") == "") {
  1029. return;
  1030. }
  1031. model.removenode("/root/send/extninfo");
  1032. model.makeValue("/root/send/extninfo/infoflag", infoflag);
  1033. model.makeValue("/root/send/extninfo/pid", parent.window.javascript.fGetFormRec("pid"));
  1034. model.makeValue("/root/send/extninfo/oprsrvno", parent.window.javascript.fGetFormRec("oprsrvno"));
  1035. if (submit("TRMMR01302")) {
  1036. var execInfoFlag = model.getValue("/root/main/extninfo/resultinfo/infoflag");
  1037. if (execInfoFlag.indexOf("opr;") != -1) {
  1038. //수술정보 설정
  1039. //수술일자,진료일자
  1040. var opcnfmdd = model.getValue("/root/main/extninfo/oprinfo/opcnfmdd");
  1041. var opcnfmhm = model.getValue("/root/main/extninfo/oprinfo/opcnfmhm");
  1042. //2010.02.03 dhkim - 수술기록 없을때 현재일자세팅하지 않음
  1043. /*
  1044. if(opcnfmdd == null || opcnfmdd == ""){
  1045. opcnfmdd = getCurrentDate();
  1046. }
  1047. */
  1048. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000515']/reccnts", opcnfmdd);
  1049. //2010.01.11 dhkim - 진료일자,진료시간 세팅
  1050. parent.window.javascript.fSetFormRec("formrecdd", opcnfmdd);
  1051. parent.window.javascript.fSetFormRec("formrechm", opcnfmhm);
  1052. //alert(opcnfmhm);
  1053. parent.ipt_formrecdd.refresh();
  1054. parent.ipt_formrectm.refresh();
  1055. //집도의 설정
  1056. var drNames = fMakeDrNames_MMR01001(new Array("perfdrnm", "perfdrnm2", "perfdrnm3"));
  1057. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000980']/reccnts", drNames);
  1058. //보조의 설정
  1059. drNames = fMakeDrNames_MMR01001(new Array("assdrnm", "assdrnm2", "assdrnm3", "assdrnm4"));
  1060. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000341']/reccnts", drNames);
  1061. //2010.01.18 dhkim - 주마취, 부마취를 무조건 rectermcd, rectermnm과 연동하도록 변경
  1062. //주마취 설정
  1063. var anstmthdcd = model.getValue("/root/main/extninfo/oprinfo/anstmthdcd");
  1064. if(anstmthdcd != null && anstmthdcd != ""){
  1065. anstmthdcd = "-";
  1066. }
  1067. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/rectermcd", anstmthdcd);
  1068. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/rectermnm", model.getValue("/root/main/extninfo/oprinfo/anstmthdnm"));
  1069. //부마취 설정
  1070. var anstmthdcdsub = model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsub");
  1071. if(anstmthdcdsub != null && anstmthdcdsub != ""){
  1072. anstmthdcdsub = "-";
  1073. }
  1074. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/rectermcd", anstmthdcdsub);
  1075. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/rectermnm", model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsubnm"));
  1076. //alert("anstmthdcd :" + anstmthdcd + " " + model.getValue("/root/main/extninfo/oprinfo/anstmthdnm"));
  1077. //alert("anstmthdcdsub :" + anstmthdcdsub + " " + model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsubnm"));
  1078. /*
  1079. //주마취 설정
  1080. var anstmthdcd = model.getValue("/root/main/extninfo/oprinfo/anstmthdcd");
  1081. if(anstmthdcd != null && anstmthdcd != ""){
  1082. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/rectermcd", anstmthdcd);
  1083. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/rectermnm", model.getValue("/root/main/extninfo/oprinfo/anstmthdnm"));
  1084. }else{
  1085. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0015528']/reccnts", model.getValue("/root/main/extninfo/oprinfo/anstmthdnm"));
  1086. }
  1087. //부마취 설정
  1088. var anstmthdcdsub = model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsub");
  1089. if(anstmthdcdsub != null && anstmthdcdsub != ""){
  1090. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/rectermcd", anstmthdcdsub);
  1091. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/rectermnm", model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsubnm"));
  1092. }else{
  1093. model.setValue(gPageInfo.recItemRef+"[degnitemlevlcd='0000248.0008458']/reccnts", model.getValue("/root/main/extninfo/oprinfo/anstmthdcdsubnm"));
  1094. }
  1095. */
  1096. }
  1097. if (execInfoFlag.indexOf("opdiag;") != -1) {
  1098. //수술진단 설정
  1099. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0007983001.model, model);
  1100. copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0000521001.model, model);
  1101. ivw_0007983001.window.javascript.fSetDiagNmInstance();
  1102. ivw_0000521001.window.javascript.fSetDiagNmInstance();
  1103. }
  1104. if (execInfoFlag.indexOf("opnm;") != -1) {
  1105. //수술명설정
  1106. copyNodeset("/root/tmpop/selectoplist", "/root/main/extninfo/selectoplist", "replace", ivw_0000509001.model, model);
  1107. ivw_0000509001.window.javascript.fAfterSrch();
  1108. }
  1109. //2010.06.09 김달현 - findings , procedure 캡션추가
  1110. fViewOPfindingsCaption_SMMMR01002('0000512001');
  1111. fViewOPfindingsCaption_SMMMR01002('0000507001');
  1112. }
  1113. }
  1114. function fMakeDrNames_MMR01001(arr) {
  1115. var buf = "";
  1116. for (var i=0; i<arr.length; i++) {
  1117. var nm = model.getValue("/root/main/extninfo/oprinfo/" + arr[i]);
  1118. if (nm == "") {
  1119. break;
  1120. } else {
  1121. buf += nm;
  1122. if (i<arr.length-1 && model.getValue("/root/main/extninfo/oprinfo/" + arr[i+1]) != "") {
  1123. buf += ", ";
  1124. }
  1125. }
  1126. }
  1127. return buf;
  1128. }
  1129. function fInitAnstTypeCtrl_MMR01001() {
  1130. // return;//2010.01.18 dhkim - 마취 바인딩
  1131. //2010.01.18 dhkim - 마취바인딩 무조건 rectermcd, rectermnm으로 변경
  1132. var anstmthdcd = "";
  1133. var mcdnm = "";
  1134. var anstmthdcdsub = "";
  1135. var scdnm = "";
  1136. //주마취
  1137. var node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0015528']");
  1138. if (node != null) {
  1139. anstmthdcd = node.getXPathString("rectermcd");
  1140. mcdnm = node.getXPathString("rectermnm");
  1141. }
  1142. //부마취
  1143. node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0008458']");
  1144. if (node != null) {
  1145. anstmthdcdsub = node.getXPathString("rectermcd");
  1146. scdnm = node.getXPathString("rectermnm");
  1147. }
  1148. var pageInfo = new PAGEINFO();
  1149. var iptMObj = document.controls("ipt_mcdnm");
  1150. var iptSObj = document.controls("ipt_scdnm");
  1151. if(anstmthdcd == null || anstmthdcd == ""){
  1152. anstmthdcd = "-";
  1153. }
  1154. if(anstmthdcdsub == null || anstmthdcdsub == ""){
  1155. anstmthdcdsub = "-";
  1156. }
  1157. //주마취
  1158. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1159. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  1160. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  1161. //부마취
  1162. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1163. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  1164. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  1165. /*
  1166. if (anstmthdcd != "" && mcdnm != "")
  1167. {
  1168. //주마취
  1169. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1170. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm", mcdnm);
  1171. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  1172. }
  1173. else
  1174. {
  1175. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  1176. }
  1177. if (anstmthdcdsub != "" && scdnm != "")
  1178. {
  1179. //부마취
  1180. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1181. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm", scdnm);
  1182. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  1183. }
  1184. else
  1185. {
  1186. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  1187. }
  1188. */
  1189. iptMObj.refresh();
  1190. iptSObj.refresh();
  1191. }
  1192. /**
  1193. * @desc : 2010.01.18 dhkim - 추가) 저장전 체크 로직
  1194. * @id :
  1195. * @event : xforms-ready
  1196. * @return : void
  1197. * @authur : dhkim
  1198. */
  1199. function fChkPreSave()
  1200. {
  1201. //2010.01.18 dhkim 마취종류 주, 부 필수체크
  1202. //(degnitemkind='STX'이나 데이터는 rectermcd, rectermnm에 들어가므로 EMRCommon.js에서 필수체크할수 없음)
  1203. //주마취
  1204. var anstmthdcd = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  1205. var anstmthdnm = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  1206. //default값세팅
  1207. if(anstmthdcd == null || anstmthdcd == ""){
  1208. anstmthdcd = "-";
  1209. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd", anstmthdcd);
  1210. model.refresh();
  1211. }
  1212. if(anstmthdnm == null || anstmthdnm == ""){
  1213. messageBox("마취종류(주)는 필수 입력입니다.", "E");
  1214. return false;
  1215. }
  1216. //부마취
  1217. var anstmthdcdsub = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  1218. var anstmthdcdsubnm = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  1219. //default값세팅
  1220. if(anstmthdcdsub == null || anstmthdcdsub == ""){
  1221. anstmthdcdsub = "-";
  1222. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd", anstmthdcdsub);
  1223. model.refresh();
  1224. }
  1225. if(anstmthdcdsubnm == null || anstmthdcdsubnm == ""){
  1226. messageBox("마취종류(부)는 필수 입력입니다.", "E");
  1227. return false;
  1228. }
  1229. var pageInfo = new PAGEINFO();
  1230. //수술전진단명
  1231. var itemNm = model.instances(0).selectSingleNode(pageInfo.formdegnRef + "[degnitemcd = '0007983001']").getXPathString("itemnm");
  1232. var rtnVal = ivw_0007983001.window.javascript.fChkGrdPreSave(true, itemNm);
  1233. if(rtnVal == false){
  1234. return rtnVal;
  1235. }else{
  1236. //수술후진단명
  1237. itemNm = model.instances(0).selectSingleNode(pageInfo.formdegnRef + "[degnitemcd = '0000521001']").getXPathString("itemnm");
  1238. return ivw_0000521001.window.javascript.fChkGrdPreSave(true, itemNm);
  1239. }
  1240. }
  1241. /**
  1242. * 20100223 dhkim
  1243. * MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  1244. * @return
  1245. */
  1246. function getSubmitID_MMR01300I() {
  1247. parent.window.javascript.fSetFormRec("xsltflag", "JCI");//통합기록조회용 JCI구분자추가
  1248. return TX_SUBMIT_EXTN_FORM;
  1249. }