SMMMR01001.js 49 KB

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