SMMMR01000.xjs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. var arrItemCds = new Array( "0000515001",//수술일자
  4. "0000980001",//집도의
  5. "0000341001",//보조의
  6. "0007983001",//수술전
  7. "0000521001",//수술수
  8. "0000509001",//진단명
  9. "0000512001",//OP Findings
  10. "0000507001"//OP Procedures
  11. );
  12. //부분서식의 부모아이템 배열
  13. var gItemCds = new Array("0007983001", "0000521001", "0000509001", "0000512001", "0000507001");
  14. var gItemCdsTextArea = new Array("0000512001", "0000507001");
  15. var gItemCdsXRWArea = new Array("0007983001", "0000521001", "0000509001");
  16. //부분서식의 개수만큼 일단 '0'으로 채운다.
  17. var gPageIdx = new Array(0, 0);
  18. var iSurg = grup_base.ipt_surg.degnitemlevlcd;
  19. var operation = sysf_getGlobalVariable("operation").split("▩")[1];
  20. var pageInfo = new PAGEINFO();
  21. var oprsrvno = ""; //수술예약번호
  22. var perfdeptcd = ""; //집도과
  23. if(!utlf_isNull(operation)){
  24. oprsrvno = operation.split("▦")[0];
  25. perfdeptcd = operation.split("▦")[10];
  26. }
  27. /**
  28. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  29. * @id :
  30. * @authur : 안치원
  31. * @history : 2009.09.09 신규 안치원 ACW_090909A
  32. */
  33. var gExtnBtnIds = new Array("btn_imge_0000512001",
  34. "btn_etcrec_0000512001",
  35. "btn_imge_0000507001",
  36. "btn_etcrec_0000507001");
  37. /****************************************************************************************
  38. * Function : fClearComnFormData
  39. * Description : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  40. ****************************************************************************************/
  41. function fClearComnFormData()
  42. {
  43. if (!utlf_isNull(gMaxSectionID))
  44. {
  45. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  46. }
  47. sysf_trace("lodedYn : " + lodedYn );
  48. if( lodedYn == true )
  49. ClearComnFormData(gItemCds);
  50. fInitialize();
  51. if (parent.fGetFormRec("status") == "C")
  52. {
  53. fSetOprInfo();
  54. }
  55. //포커스 처리
  56. SetDefFocusIVW(gItemCdsTextArea);
  57. }
  58. /****************************************************************************************
  59. * Function : fLoadData
  60. * Description : 기록데이터 조회
  61. ****************************************************************************************/
  62. function fLoadData()
  63. {
  64. fInitialize();
  65. lf_setRecData(arrItemCds);
  66. var sStatus = fGetFormRec("status");
  67. lf_setBasicInfo(sStatus);
  68. // //Program 서식 데이터 조회반영
  69. // InitPgmFormData();
  70. // this.recRef2 = "/root/hidden/recinfo"
  71. // //부분서식 데이터 조회 반영
  72. // InitUnitFormData(gItemCds);
  73. }
  74. /****************************************************************************************
  75. * Function : fInitialize
  76. * Description : 화면 초기화
  77. ****************************************************************************************/
  78. function fInitialize()
  79. {
  80. gTermViewTopPos = 26;//29;
  81. gTermViewHei = 332;//152;
  82. gTermViewItems = gItemCdsXRWArea;
  83. }
  84. /****************************************************************************************
  85. * Function : fPatientHist
  86. * Description : 수술이력 팝업
  87. ****************************************************************************************/
  88. function fPatientHist()
  89. {
  90. frmf_modal("SMMMO02500", "SMMMO02500", null, null, null, null, null, null, null, null, null, null, "M");
  91. }
  92. /****************************************************************************************
  93. * Function : fSetRecItemValue
  94. * Description : 기록 인스턴스 연결
  95. ****************************************************************************************/
  96. function fSetRecItemValue(reciteminfo)
  97. {
  98. return SetCommMediFormValue(gItemCds, reciteminfo);
  99. }
  100. /****************************************************************************************
  101. * Function : fSetSizeFormDiag
  102. * Description : 수술전 진단명 사이즈 조절
  103. ****************************************************************************************/
  104. function fSetSizeFormDiag()
  105. {
  106. grup_base.ivw_0007983001.fInitPage(false, parseInt(grup_base.ivw_0007983001.height), parseInt(grup_base.ivw_0007983001.width), "ivw_0007983001", "수술전 진단명(Free text)");
  107. }
  108. /****************************************************************************************
  109. * Function : fSetSizeFormDiag1
  110. * Description : 수술후 진단명 사이즈 조절
  111. ****************************************************************************************/
  112. function fSetSizeFormDiag1()
  113. {
  114. grup_base.ivw_0000521001.fInitPage(false, parseInt(grup_base.ivw_0000521001.height), parseInt(grup_base.ivw_0000521001.width), "ivw_0000521001", "수술후 진단명(Free text)");
  115. }
  116. /****************************************************************************************
  117. * Function : fSetSizeFormOpr
  118. * Description : 서식 수술명 사이즈 조절
  119. ****************************************************************************************/
  120. function fSetSizeFormOpr()
  121. {
  122. grup_base.ivw_0000509001.fInitPage(false, parseInt(grup_base.ivw_0000509001.height), parseInt(grup_base.ivw_0000509001.width), "ivw_0000509001");
  123. }
  124. /*****************************************************************************
  125. 튜닝
  126. ******************************************************************************/
  127. var gLoadFormCnts = 0;
  128. /****************************************************************************************
  129. * Function : fFormReady
  130. * Description : 화면 로딩후 초기화 작업 수행
  131. ****************************************************************************************/
  132. function fFormReady()
  133. {
  134. this.ComnFormObj = this.grup_base;
  135. dsf_createDsRow("ds_temp_mainrecitem",
  136. [{col:"formxrw", val:""}]);
  137. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  138. ds_temp_mainrecitem.assign(ds_data_recitem);
  139. lf_setSectionSize(gItemCds, "grup_base.tar_0000512001", "grup_base.tar_0000507001", 350);
  140. //20080702 박종훈 추가
  141. fInitialize();
  142. InitBtnImge(gItemCdsTextArea);
  143. InitBtnEtcRec(gItemCdsTextArea);
  144. // InitBtnComn(gItemCdsTextArea);
  145. // dispOnLoadComplete(COMN_FORM);
  146. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  147. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로드
  148. if (parent.fGetFormRec("status") == "C")
  149. {
  150. parent.fSetFormRec("oprsrvno", oprsrvno);
  151. }
  152. //fonloadcomplete
  153. fSetOprInfo();
  154. lf_setRecData(gItemCds);
  155. }
  156. /****************************************************************************************
  157. * Function : fLoadUnitForm
  158. * Description : 부분서식 로딩
  159. ****************************************************************************************/
  160. function fLoadUnitForm()
  161. {
  162. initSection(gItemCds);
  163. }
  164. var diagcnt = 0;
  165. /****************************************************************************************
  166. * Function : fOnLoadComplete
  167. * Description : 부분서식 로딩후 후처리
  168. ****************************************************************************************/
  169. function fOnLoadComplete()
  170. {
  171. var rtn = false;
  172. var curLoadFormCd = frmf_getParameter("loadformcd");
  173. frmf_setParameter("loadformcd", "");
  174. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  175. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  176. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  177. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  178. if(!utlf_isNull(ivwObj) && unitformload != "true")
  179. {
  180. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  181. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  182. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  183. }
  184. //수술전진단명 부분서식 로딩후 처리
  185. if(fstLevlItemCd == '0007983001')
  186. {
  187. fSetSizeFormDiag();
  188. }
  189. //수술후진단명 부분서식 로딩후 처리
  190. if(fstLevlItemCd == '0000521001')
  191. {
  192. fSetSizeFormDiag1();
  193. }
  194. //수술명 부분서식 로딩후 처리
  195. if(fstLevlItemCd == '0000509001')
  196. {
  197. fSetSizeFormOpr();
  198. }
  199. gLoadFormCnts++;
  200. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  201. if(gItemCds.length == gLoadFormCnts)
  202. {
  203. fSetOprInfo();
  204. dispOnLoadComplete(UNIT_FORM);
  205. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  206. SetDefFocusIVW(gItemCdsTextArea);
  207. }
  208. }
  209. /****************************************************************************************
  210. * Function : fSetOprInfo
  211. * Description : 서식 로딩 완료 후 수술 예약번호 유무에 따라 서식 내용 셋팅
  212. ****************************************************************************************/
  213. function fSetOprInfo()
  214. {
  215. if (parent.fGetFormRec("status") == "C")
  216. {
  217. var dschdd = parent.fGetPamInfo("dschdd");
  218. if (!utlf_isNull(dschdd) || dschdd == "-")
  219. {
  220. dschdd = "99991231";
  221. }
  222. ds_send_oprinfo.clearData();
  223. var nRow = ds_send_oprinfo.addRow();
  224. ds_send_oprinfo.setColumn(nRow, "pid", parent.fGetPamInfo("pid"));
  225. ds_send_oprinfo.setColumn(nRow, "indd", parent.fGetPamInfo("indd"));
  226. ds_send_oprinfo.setColumn(nRow, "dschdd", dschdd);
  227. var oParam = {};
  228. oParam.id = "TRMMR01002";
  229. oParam.service = "formmngtapp.FormIfMngt";
  230. oParam.method = "reqGetOprsevnoByPamInfo";
  231. oParam.inds = "req=ds_send_oprinfo";
  232. oParam.outds = "ds_init_oprlist_oplist=oplist";
  233. oParam.async = true;
  234. oParam.progress = false;
  235. oParam.callback = "cf_TRMMR01002";
  236. tranf_submit(oParam);
  237. }
  238. }
  239. function cf_TRMMR01002(sSvcId, nErrorCode, sErrorMsg) {
  240. if(nErrorCode < 0) return;
  241. //수술 이력 조회
  242. grup_base.ipt_surg.enable = false;
  243. if (!utlf_isNull(oprsrvno))
  244. {
  245. parent.fSetFormRec("oprsrvno", oprsrvno);
  246. var nRow = ds_send_reqinfstrec.rowposition;
  247. ds_send_reqinfstrec.setColumn(nRow, "pid", parent.fGetPamInfo("pid"));
  248. ds_send_reqinfstrec.setColumn(nRow, "orddd", parent.fGetPamInfo("indd"));
  249. ds_send_reqinfstrec.setColumn(nRow, "cretno", parent.fGetPamInfo("cretno"));
  250. ds_send_reqinfstrec.setColumn(nRow, "oprsrvno", oprsrvno);
  251. var oParam = {};
  252. oParam.id = "TRMMR01003";
  253. oParam.service = "formmngtapp.FormIfMngt";
  254. oParam.method = "reqGetBriefOpIf";
  255. oParam.inds = "req=ds_send_reqinfstrec";
  256. oParam.outds = "ds_main_infstrec=recitem";
  257. oParam.async = true;
  258. oParam.progress = false;
  259. oParam.callback = "cf_TRMMR01003";
  260. tranf_submit(oParam);
  261. }
  262. else if(ds_init_oprlist_oplist.getRowCount() == 1)
  263. {
  264. var opsrvno = ds_init_oprlist_oplist.getColumn(0, "oprsrvno");
  265. if (!utlf_isNull(opsrvno) && opsrvno != "-")
  266. {
  267. parent.fSetFormRec("oprsrvno", opsrvno);
  268. var nRow = ds_send_reqinfstrec.rowposition;
  269. ds_send_reqinfstrec.setColumn(nRow, "pid", parent.fGetPamInfo("pid"));
  270. ds_send_reqinfstrec.setColumn(nRow, "orddd", parent.fGetPamInfo("indd"));
  271. ds_send_reqinfstrec.setColumn(nRow, "cretno", parent.fGetPamInfo("cretno"));
  272. ds_send_reqinfstrec.setColumn(nRow, "oprsrvno", oprsrvno);
  273. var oParam = {};
  274. oParam.id = "TRMMR01003";
  275. oParam.service = "formmngtapp.FormIfMngt";
  276. oParam.method = "reqGetBriefOpIf";
  277. oParam.inds = "req=ds_send_reqinfstrec";
  278. oParam.outds = "ds_main_infstrec=recitem";
  279. oParam.async = true;
  280. oParam.progress = false;
  281. oParam.callback = "cf_TRMMR01003";
  282. tranf_submit(oParam);
  283. }
  284. }
  285. //2010-01-04 오전 10:12:00 강지훈 수정 : 요청번호 4693
  286. else if(ds_init_oprlist_oplist.getRowCount() == 0 && utlf_isNull(oprsrvno)) {
  287. grup_base.ipt_surg.enable = true;;
  288. }
  289. else{
  290. //combo1.select(combo1.length - 1);
  291. grup_base.combo1.index = ds_init_oprlist_oplist.getRowCount() - 1;
  292. }
  293. frmf_addComboItem("grup_base.combo1", " ", "", "ADD");
  294. }
  295. function cf_TRMMR01003(sSvcId, nErrorCode, sErrorMsg) {
  296. if(nErrorCode < 0) return;
  297. //수술 예약번호에 따른 수술기록지 기록내용 조회
  298. //해당 수술건에 대한 수술기록 유무에 따른 분기
  299. if (ds_main_infstrec.getRowCount() > 0)
  300. {
  301. fSetOprRecIf();
  302. }
  303. else
  304. {
  305. fDefInfo(); //수술기록이 없을경우 디폴트 정보 조회
  306. }
  307. }
  308. /****************************************************************************************
  309. * Function : fSetOprRecIf
  310. * Description : 수술기록 인터페이스 내용 셋팅
  311. ****************************************************************************************/
  312. function fSetOprRecIf()
  313. {
  314. //수술일
  315. var nRecRow = ds_main_infstrec.findRow("degnitemlevlcd", "0000515");
  316. var opdd = ds_main_infstrec.getColumn(nRecRow, "reccnts");
  317. if (utlf_isNull(opdd))
  318. {
  319. var nRow = ds_init_oprlist_oplist.findRow("oprsrvno", ds_send_reqinfstrec.getColumn(0, "oprsrvno"));
  320. opdd = ds_init_oprlist_oplist.getColumn(nRow, "opcnfmdd");
  321. }
  322. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000515");
  323. ds_data_recitem.setColumn(nFindRow, "reccnts", opdd);
  324. grup_base.ipt_surg.value = opdd; // Data
  325. parent.fSetFormRec("formrecdd" , opdd);
  326. //수술전진단
  327. var nodeList = ds_main_infstrec.getCaseCount("fstlevlitemcd=='0007983001' && formcd == '0000000899'");
  328. if (nodeList > 0)
  329. {
  330. //setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0007983001' and formcd = '0000000899']", ivw_0007983001);
  331. grup_base.ivw_0007983001.fAddrow();
  332. }
  333. //수술후진단
  334. var nodeList = ds_main_infstrec.getCaseCount("fstlevlitemcd=='0000521001' && formcd == '0000000899'");
  335. if (nodeList > 0)
  336. {
  337. //setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000521001' and formcd = '0000000899']", ivw_0000521001);
  338. grup_base.ivw_0000521001.fAddrow();
  339. }
  340. //수술명
  341. var nodeList = ds_main_infstrec.getCaseCount("fstlevlitemcd=='0000509001' && formcd = '0000000900'");
  342. if (nodeList > 0)
  343. {
  344. //setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000509001' and formcd = '0000000900']", ivw_0000509001);
  345. grup_base.ivw_0000509001.fAddrow();
  346. }
  347. //집도의
  348. var mOpDrList = objExt.findRows(ds_main_infstrec, "fstlevlitemcd", "0000980001");
  349. var mOpdegnitemlevlcd = "";
  350. var mOprectermcd = "";
  351. var mOprectermnm = "";
  352. var mOpreccnts = "";
  353. var mOpdegnitemnm = "";
  354. var mOpdegnitemkind = "";
  355. var mOprecrslt = "";
  356. for(var i = 0; i < mOpDrList.length; i++)
  357. {
  358. mOpdegnitemlevlcd = ds_main_infstrec.getColumn(mOpDrList[i], "degnitemlevlcd");
  359. mOprectermcd = ds_main_infstrec.getColumn(mOpDrList[i], "rectermcd");
  360. mOprectermnm = ds_main_infstrec.getColumn(mOpDrList[i], "rectermnm");
  361. mOpreccnts = ds_main_infstrec.getColumn(mOpDrList[i], "reccnts");
  362. mOpdegnitemnm = ds_main_infstrec.getColumn(mOpDrList[i], "degnitemnm");
  363. mOpdegnitemkind = ds_main_infstrec.getColumn(mOpDrList[i], "degnitemkind");
  364. if (!utlf_isNull(mOprectermnm) && utlf_isNull(mOprecrslt))
  365. {
  366. mOprecrslt += mOprectermnm;
  367. }
  368. else if(!utlf_isNull(mOprectermnm))
  369. {
  370. mOprecrslt += ", " + mOprectermnm;
  371. }
  372. else if(!utlf_isNull(mOpreccnts))
  373. {
  374. mOprecrslt += ", " + mOpreccnts;
  375. }
  376. }
  377. //집도의
  378. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000980");
  379. ds_data_recitem.setColumn(nFindRow, "reccnts", mOprecrslt);
  380. grup_base.ipt_odt1.value = mOprecrslt;
  381. //보조의
  382. var sOpDrList = objExt.findRows(ds_main_infstrec, "fstlevlitemcd", "0000341001");
  383. var sOpdegnitemlevlcd = "";
  384. var sOprectermcd = "";
  385. var sOprectermnm = "";
  386. var sOpreccnts = "";
  387. var sOpdegnitemnm = "";
  388. var sOpdegnitemkind = "";
  389. var sOprecrslt = "";
  390. for(var i = 0; i < sOpDrList.length; i++)
  391. {
  392. sOpdegnitemlevlcd = ds_main_infstrec.getColumn(sOpDrList[i], "degnitemlevlcd");
  393. sOprectermcd = ds_main_infstrec.getColumn(sOpDrList[i], "rectermcd");
  394. sOprectermnm = ds_main_infstrec.getColumn(sOpDrList[i], "rectermnm");
  395. sOpreccnts = ds_main_infstrec.getColumn(sOpDrList[i], "reccnts");
  396. sOpdegnitemnm = ds_main_infstrec.getColumn(sOpDrList[i], "degnitemnm");
  397. sOpdegnitemkind = ds_main_infstrec.getColumn(sOpDrList[i], "degnitemkind");
  398. if (!utlf_isNull(sOprectermnm) && utlf_isNull(sOprecrslt))
  399. {
  400. sOprecrslt += sOprectermnm;
  401. }
  402. else if(!utlf_isNull(sOprectermnm))
  403. {
  404. sOprecrslt += ", " + sOprectermnm;
  405. }
  406. else if(!utlf_isNull(sOpreccnts))
  407. {
  408. sOprecrslt += ", " + sOpreccnts;
  409. }
  410. }
  411. //보조의
  412. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000341");
  413. ds_data_recitem.setColumn(nFindRow, "reccnts", sOprecrslt);
  414. grup_base.ipt_sdt1.value = sOprecrslt;
  415. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  416. //수술소견
  417. var OpFindNodeList = objExt.findRows(ds_main_infstrec, "fstlevlitemcd", "0000512001");
  418. var opFinddegnitemlevlcd = "";
  419. var opFindrectermcd = "";
  420. var opFindrectermnm = "";
  421. var opFindreccnts = "";
  422. var opFinddegnitemnm = "";
  423. var opFinddegnitemkind = "";
  424. var opFindrecrslt = "";
  425. var opFinddegnitemlevlno = "";
  426. for(var i = 0; i < OpFindNodeList.length; i++)
  427. {
  428. opFinddegnitemlevlcd = ds_main_infstrec.getColumn(OpFindNodeList[i], "degnitemlevlcd");
  429. opFindrectermcd = ds_main_infstrec.getColumn(OpFindNodeList[i], "rectermcd");
  430. opFindrectermnm = ds_main_infstrec.getColumn(OpFindNodeList[i], "rectermnm");
  431. opFindreccnts = ds_main_infstrec.getColumn(OpFindNodeList[i], "reccnts");
  432. opFinddegnitemnm = ds_main_infstrec.getColumn(OpFindNodeList[i], "degnitemnm");
  433. opFinddegnitemkind = ds_main_infstrec.getColumn(OpFindNodeList[i], "degnitemkind");
  434. if(opFinddegnitemkind == "IMG" || opFinddegnitemkind == "FDG")
  435. continue;
  436. opFinddegnitemlevlcd = opFinddegnitemlevlcd.split(".");
  437. //2010.06.25 김달현 - 수술기록의 OP Finding, OP Procedure가 디자인된 부분서식일 때 Brief OP Note 연동시 데이터 오류수정
  438. //degnitemlevlcd가 2일때만 degnitemnm이 설정되어 레벨이 넘어가면 degnitemnm이 조회되지 않아 변경함.
  439. opFinddegnitemlevlno = ds_main_infstrec.getColumn(OpFindNodeList[i], "degnitemlevlno");
  440. if(opFinddegnitemlevlno > 1){
  441. var blk = "";
  442. for(var j = 0; j < opFinddegnitemlevlcd.length; j++){
  443. blk += " ";
  444. }
  445. if(utlf_isNull(opFindrectermnm) && utlf_isNull(opFindreccnts)){
  446. opFindrecrslt += blk + opFinddegnitemnm + "\n";
  447. }
  448. if (!utlf_isNull(opFindrectermnm) && !utlf_isNull(opFindreccnts))
  449. {
  450. opFindrecrslt += blk + opFinddegnitemnm + " : " + opFindrectermnm + " ※ " + opFindreccnts + "\n";
  451. }
  452. else if (!utlf_isNull(opFindrectermnm))
  453. {
  454. opFindrecrslt += blk + opFinddegnitemnm + " : " + opFindrectermnm + "\n";
  455. }
  456. else if (!utlf_isNull(opFindreccnts))
  457. {
  458. if (!utlf_isNull(opFinddegnitemnm))
  459. {
  460. opFindrecrslt += blk + opFinddegnitemnm + " " + opFindreccnts + "\n";
  461. }
  462. else
  463. {
  464. opFindrecrslt += blk + opFindreccnts + "\n";
  465. }
  466. }
  467. }else{
  468. opFindrecrslt = opFindreccnts + "\n";
  469. }
  470. }
  471. //수술소견
  472. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000512");
  473. ds_data_recitem.setColumn(nFindRow, "reccnts", opFindrecrslt);
  474. grup_base.tar_0000512001.value = opFindrecrslt;
  475. //수술과정
  476. var OpProcNodeList = objExt.findRows(ds_main_infstrec, "fstlevlitemcd", "0000507001");
  477. var opProcdegnitemlevlcd = "";
  478. var opProcrectermcd = "";
  479. var opProcrectermnm = "";
  480. var opProcreccnts = "";
  481. var opProcdegnitemnm = "";
  482. var opProcdegnitemkind = "";
  483. var opProcrecrslt = "";
  484. var opProcdegnitemlevlno = "";
  485. for(var i = 0; i < OpProcNodeList.length; i++)
  486. {
  487. opProcdegnitemlevlcd = ds_main_infstrec.getColumn(OpProcNodeList[i], "degnitemlevlcd");
  488. opProcrectermcd = ds_main_infstrec.getColumn(OpProcNodeList[i], "rectermcd");
  489. opProcrectermnm = ds_main_infstrec.getColumn(OpProcNodeList[i], "rectermnm");
  490. opProcreccnts = ds_main_infstrec.getColumn(OpProcNodeList[i], "reccnts");
  491. opProcdegnitemnm = ds_main_infstrec.getColumn(OpProcNodeList[i], "degnitemnm");
  492. opProcdegnitemkind = ds_main_infstrec.getColumn(OpProcNodeList[i], "degnitemkind");
  493. if(opProcdegnitemkind == "IMG" || opProcdegnitemkind == "FDG")
  494. continue;
  495. opProcdegnitemlevlcd = opProcdegnitemlevlcd.split(".");
  496. //2010.06.25 김달현 - 수술기록의 OP Finding, OP Procedure가 디자인된 부분서식일 때 Brief OP Note 연동시 데이터 오류수정
  497. //degnitemlevlcd가 2일때만 degnitemnm이 설정되어 레벨이 넘어가면 degnitemnm이 조회되지 않아 변경함.
  498. opProcdegnitemlevlno = ds_main_infstrec.getColumn(OpProcNodeList[i], "degnitemlevlno");
  499. if(opProcdegnitemlevlno > 1){
  500. var blk = "";
  501. for(var j = 0; j < opProcdegnitemlevlcd.length; j++){
  502. blk += " ";
  503. }
  504. if(utlf_isNull(opProcrectermnm) && utlf_isNull(opProcreccnts)){
  505. opProcrecrslt += blk + opProcdegnitemnm + "\n";
  506. }
  507. if (!utlf_isNull(opProcrectermnm) && !utlf_isNull(opProcreccnts))
  508. {
  509. opProcrecrslt += blk + opProcdegnitemnm + " : " + opProcrectermnm + " ※ " + opProcreccnts + "\n";
  510. }
  511. else if (!utlf_isNull(opProcrectermnm))
  512. {
  513. opProcrecrslt += blk + opProcdegnitemnm + " : " + opProcrectermnm + "\n";
  514. }
  515. else if (!utlf_isNull(opProcreccnts))
  516. {
  517. if (!utlf_isNull(opProcdegnitemnm))
  518. {
  519. opProcrecrslt += blk + opProcdegnitemnm + " " + opProcreccnts + "\n";
  520. }
  521. else
  522. {
  523. opProcrecrslt += blk + opProcreccnts + "\n";
  524. }
  525. }
  526. }else{
  527. opProcrecrslt = opProcreccnts + "\n";
  528. }
  529. }
  530. //수술과정
  531. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000507");
  532. ds_data_recitem.setColumn(nFindRow, "reccnts", opProcrecrslt);
  533. grup_base.tar_0000507001.value = opProcrecrslt;
  534. }
  535. /****************************************************************************************
  536. * Function : fGetDefData
  537. * Description : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  538. ****************************************************************************************/
  539. function fGetDefData()
  540. {
  541. fSetSizeFormOpr();
  542. operation = sysf_getGlobalVariable("operation").split("▩")[1];
  543. if(!utlf_isNull(operation)){
  544. oprsrvno = operation.split("▦")[0];
  545. perfdeptcd = operation.split("▦")[10];
  546. }
  547. if (parent.fGetFormRec("status") == "C")
  548. {
  549. }
  550. dispOnLoadComplete(UNIT_FORM);
  551. }
  552. /****************************************************************************************
  553. * Function : fChngOpList
  554. * Description : 수술 이력 리스트 선택시
  555. ****************************************************************************************/
  556. function fChngOpList()
  557. {
  558. var nRow = ds_send_reqinfstrec.rowposition;
  559. var sOprsrvno = ds_send_reqinfstrec.getColumn(nRow, "oprsrvno");
  560. if (!utlf_isNull(sOprsrvno))
  561. {
  562. grup_base.ipt_surg.enable = false;
  563. if (!utlf_isNull(gMaxSectionID))
  564. {
  565. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  566. }
  567. ClearComnFormData(gItemCds);
  568. fInitialize();
  569. parent.fSetFormRec("oprsrvno", sOprsrvno);
  570. ds_send_reqinfstrec.setColumn(nRow, "pid", parent.fGetPamInfo("pid"));
  571. ds_send_reqinfstrec.setColumn(nRow, "orddd", parent.fGetPamInfo("indd"));
  572. ds_send_reqinfstrec.setColumn(nRow, "cretno", parent.fGetPamInfo("cretno"));
  573. var oParam = {};
  574. oParam.id = "TRMMR01003";
  575. oParam.service = "formmngtapp.FormIfMngt";
  576. oParam.method = "reqGetBriefOpIf";
  577. oParam.inds = "req=ds_send_reqinfstrec";
  578. oParam.outds = "ds_main_infstrec=recitem";
  579. oParam.async = true;
  580. oParam.progress = false;
  581. oParam.callback = "cf_TRMMR01003";
  582. tranf_submit(oParam);
  583. }
  584. else if(utlf_isNull(sOprsrvno)){ //2010-01-06 오전 9:39:29 강지훈 수정
  585. if (!utlf_isNull(gMaxSectionID))
  586. {
  587. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  588. }
  589. ClearComnFormData(gItemCds);
  590. fInitialize();
  591. grup_base.ipt_surg.value = "";
  592. grup_base.ipt_surg.enable = true;
  593. fDefInfo();
  594. }
  595. }
  596. /****************************************************************************************
  597. * Function : fDefInfo
  598. * Description : 수술에 대한 기본 정보 조회
  599. ****************************************************************************************/
  600. function fDefInfo()
  601. {
  602. var nRow = ds_send_reqinfstrec.rowposition;
  603. var tmpoprsrvno = ds_send_reqinfstrec.getColumn(nRow, "oprsrvno");
  604. if(!utlf_isNull(tmpoprsrvno))
  605. {
  606. //수술전 진단 조회 시작
  607. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"oprsrvno", type:"string", size:256, val:tmpoprsrvno}]);
  608. var objSendDS:Dataset = new Dataset;
  609. objSendDS = this.objects[sSendDsNm];
  610. var sRtnDsNm = dsf_createDs("ds_data_anstlist", [{col:"anstmthdcd", type:"string", size:256}
  611. , {col:"mcdnm", type:"string", size:256}
  612. , {col:"anstmthdcdsub", type:"string", size:256}
  613. , {col:"scdnm", type:"string", size:256}]);
  614. var objRtnDS:Dataset = new Dataset;
  615. objRtnDS = this.objects[sRtnDsNm];
  616. var oParam = {};
  617. oParam.id = "TRMRF04001";
  618. oParam.service = "formmngtapp.FormIfMngt";
  619. oParam.method = "reqGetDiagByOprsrvno";
  620. oParam.inds = "req="+sSendDsNm;
  621. oParam.outds = "ds_data_diagcdlist=diagcdlist "+sRtnfDsNm+"=anstlist";
  622. oParam.async = true;
  623. oParam.progress = false;
  624. oParam.callback = "cf_TRMRF04001";
  625. tranf_submit(oParam);
  626. //수술전 진단 조회 끝
  627. //수술명, 집도의, 수술시간 조회 시작
  628. var node = sysf_getGlobalVariable("paminfo");
  629. if(!utlf_isNull(node))
  630. {
  631. var sPamDsNm = dsf_createDs("ds_main_paminfo", [{col:"pid", type:"string", size:256}]);
  632. var objPamDs:Dataset = new Dataset;
  633. objPamDs = this.objects[sPamDsNm];
  634. dsf_setCSVToDs("ds_main_paminfo", node);
  635. var orddd = "";
  636. if( objPamDs.getColumn(0, "ioflag") == "O" ){
  637. orddd = objPamDs.getColumn(0, "orddd");
  638. }else{
  639. orddd = objPamDs.getColumn(0, "indd");
  640. }
  641. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"pid", type:"string", size:256, val:objPamDs.getColumn(0, "pid")}
  642. , {col:"cretno", type:"INT", size:256, val:objPamDs.getColumn(0, "cretno")}
  643. , {col:"orddd", type:"string", size:256, val:orddd}
  644. , {col:"oprsrvno", type:"string", size:256, val:oprsrvno}
  645. , {col:"srchmode", type:"string", size:256, val:"dr"}]);
  646. var objSendDS:Dataset = new Dataset;
  647. objSendDS = this.objects[sSendDsNm];
  648. var oParam = {};
  649. oParam.id = "TRMRF04301";
  650. oParam.service = "formmngtapp.FormIfMngt";
  651. oParam.method = "reqGetOprList";
  652. oParam.inds = "req="+sSendDsNm;
  653. oParam.outds = "ds_tmpop_selectoplist=selectoplist";
  654. oParam.async = true;
  655. oParam.progress = false;
  656. oParam.callback = "cf_TRMRF04301";
  657. tranf_submit(oParam);
  658. var oParam = {};
  659. oParam.id = "TRMRF04302";
  660. oParam.service = "formmngtapp.FormIfMngt";
  661. oParam.method = "reqGetPerfDrid";
  662. oParam.inds = "req="+sSendDsNm;
  663. oParam.outds = "ds_tmp_perfdr=perfdr";
  664. oParam.async = true;
  665. oParam.progress = false;
  666. oParam.callback = "cf_TRMRF04302";
  667. tranf_submit(oParam);
  668. dsf_deleteDs(sPamDsNm);
  669. }
  670. //수술명, 집도의, 수술시간 조회 끝
  671. }
  672. }
  673. function cf_TRMRF04001(sSvcId, nErrorCode, sErrorMsg) {
  674. if(nErrorCode < 0) return;
  675. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  676. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  677. grup_base.ivw_0007983001.fSetDiagNmInstance();
  678. grup_base.ivw_0000521001.fSetDiagNmInstance();
  679. //dsf_deleteDs("ds_send");
  680. dsf_deleteDs("ds_data_anstlist");
  681. }
  682. function cf_TRMRF04301(sSvcId, nErrorCode, sErrorMsg) {
  683. if(nErrorCode < 0) return;
  684. //수술명 설정
  685. if( !grup_base.ivw_0000509001.isValidObject("ds_tmpop_selectoplist") )
  686. grup_base.ivw_0000509001.dsf_createDs("ds_tmpop_selectoplist");
  687. grup_base.ivw_0000509001.ds_tmpop_selectoplist.copyData(ds_tmpop_selectoplist);
  688. grup_base.ivw_0000509001.fAfterSrch();
  689. }
  690. function cf_TRMRF04302(sSvcId, nErrorCode, sErrorMsg) {
  691. if(nErrorCode < 0) return;
  692. var nRow = ds_tmp_perfdr.rowposition;
  693. var perfdrnm = ds_tmp_perfdr.getColumn(nRow, "perfdrnm");
  694. var opfromdt = ds_tmp_perfdr.getColumn(nRow, "opfromdt");
  695. var opstdd = opfromdt.substring(0, 8);
  696. var opsttm = opfromdt.substring(8, 12);
  697. if (utlf_isNull(opstdd) || opstdd.length < 8)
  698. {
  699. var nFindRow = ds_init_oprlist_oplist.findRow("oprsrvno", ds_send_reqinfstrec.getColumn(0, "oprsrvno"));
  700. opstdd = ds_init_oprlist_oplist.getColumn(nFindRow, "opcnfmdd");
  701. }
  702. if (utlf_isNull(opsttm) || opsttm.length < 4)
  703. {
  704. opsttm = utlf_getCurrentTime().substr(0, 4);
  705. }
  706. var transopdd = opstdd.substr(0, 4) + "-" + opstdd.substr(4, 2) + "-" + opstdd.substr(6, 2)
  707. parent.fSetFormRec("formrecdd" , opstdd);
  708. parent.fSetFormRec("formrechm" , opsttm);
  709. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000515");
  710. ds_data_recitem.setColumn(nFindRow, "reccnts", opstdd); //수술일
  711. grup_base.ipt_surg.value = opstdd;
  712. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000980");
  713. ds_data_recitem.setColumn(nFindRow, "reccnts", perfdrnm); //집도의
  714. grup_base.ipt_odt1.value = perfdrnm;
  715. }]]></Script>