SPMMO00200.xjs 112 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2015-02-12
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-02-12 Live Converter TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. // var sOPRSRVINFO_PATH = ds_main_oprsrvinfo;
  16. // var sOPRSRVLIST_PATH = ds_main_oprsrvlist;
  17. // var sOPSCHERECLIST_PATH = ds_main_opschereclist;
  18. //
  19. // var sDIAGCDLIST_PATH = ds_main_diaglist;
  20. // var sPATORDINFOLIST_PATH = ds_patordinfolist;
  21. var g_scrnflag = ""; //조회전용
  22. //2012/06/26 Start
  23. // 수술 예방적 항생제 관련
  24. var nodecnt = 0;
  25. //2012/06/26 End
  26. var arErrorCode = new HashArray();
  27. //=======================================================================================
  28. // Function
  29. //---------------------------------------------------------------------------------------
  30. /***************************************************************************************************
  31. * Function : fInitialize_SPMMO00200
  32. * Description : 수술예약 화면 초기화
  33. * Argument :
  34. * return type :
  35. * Creator :
  36. ***************************************************************************************************/
  37. function fInitialize_SPMMO00200(){
  38. ds_main_oprsrvlist.clearData();
  39. ds_main_diaglist.clearData();
  40. ds_main_opschereclist.clearData();
  41. ds_main_cond.setColumn(0,"fromdd" , utlf_getCurrentDate()); //시작일자
  42. var todd = (utlf_getCurrentDate().toDate()).getAddDate(7);
  43. todd = todd.getDateFormat();
  44. ds_main_cond.setColumn(0,"todd" , todd); //종료일자
  45. ds_main_cond.setColumn(0,"opschedd", utlf_getCurrentDate()); //수술예약일자
  46. appf_getDeptCodeList(sysf_getUserInfo("dutplceinstcd"),"orduseyn","D","depthngnm","","","","","ds_init_orddept",false,""); //조회용 진료과
  47. dsf_addDsItem( ds_init_orddept, "deptcd", "depthngnm", "전체", "-", "above"); //조회용 진료과 전체항목 추가
  48. appf_getDeptCodeList(sysf_getUserInfo("dutplceinstcd"),"orduseyn","D","depthngnm","","","","","ds_init_orddept2",false,""); //부서코드 콤보 조회
  49. appf_getDeptCodeList(sysf_getUserInfo("dutplceinstcd"),"orduseyn","D","depthngnm","","","","","ds_init_orddept3",false,""); //부서코드 콤보 조회
  50. lf_reqOpRoomList(utlf_getCurrentDate(), ds_init_oproomlist, ds_init_opallroomlist, "total"); //수술실 조회
  51. dsf_addDsItem( ds_init_oproomlist, "oproomcd", "oproomnm", "방없음", "0000", "above"); //의사콤보 전체항목 추가
  52. lf_reqOpRoomList(utlf_getCurrentDate(), ds_init_oproomlist2, ds_init_opallroomlist2, "total"); //수술실 조회(일별 가능한 수술실 조회가 아닌 수술실 전체 조회)
  53. dsf_addDsItem( ds_init_oproomlist2, "oproomcd", "oproomnm", "전체", "-", "above"); //부서콤보 전체항목 추가
  54. var arrParam = [ {dsNm: "ds_init_M0013", cdGrpId: "M0013"}
  55. ,{dsNm: "ds_init_M0014", cdGrpId: "M0014"}
  56. ,{dsNm: "ds_init_M0016", cdGrpId: "M0016"}
  57. ,{dsNm: "ds_init_M0017", cdGrpId: "M0017"}
  58. ,{dsNm: "ds_init_M0020", cdGrpId: "M0020"}
  59. ,{dsNm: "ds_init_M0022", cdGrpId: "M0022"}
  60. ,{dsNm: "ds_init_M0237", cdGrpId: "M0237"}
  61. ,{dsNm: "ds_init_M0238", cdGrpId: "M0238"}
  62. ,{dsNm: "ds_init_M0239", cdGrpId: "M0239"}
  63. ,{dsNm: "ds_init_M0240", cdGrpId: "M0240"}
  64. ,{dsNm: "ds_init_M0241", cdGrpId: "M0241"}
  65. ,{dsNm: "ds_init_M0242", cdGrpId: "M0242"}
  66. ,{dsNm: "ds_init_M0243", cdGrpId: "M0243"}
  67. ,{dsNm: "ds_init_M0244", cdGrpId: "M0244"}
  68. ,{dsNm: "ds_init_M0245", cdGrpId: "M0245"}
  69. ,{dsNm: "ds_init_M0258", cdGrpId: "M0258"}
  70. ,{dsNm: "ds_init_M0341", cdGrpId: "M0341"}
  71. ,{dsNm: "ds_init_M0377", cdGrpId: "M0377"}
  72. ,{dsNm: "ds_init_M0357", cdGrpId: "M0357"}
  73. ]
  74. appf_getCodeList(arrParam);
  75. //마취통증의학과
  76. var anstdeptcd = ds_init_hardcd.getColumn(0,"hardcd");
  77. if( sysf_getUserInfo("dutplcecd") == anstdeptcd) { //2008.08.25 LWS 마취통증의학과를 제외한 로그인 유저 진료과 setting
  78. ds_main_cond.setColumn(0,"perfdeptcd", "-");
  79. ds_main_cond1.setColumn(0,"orddeptcd", "-");
  80. }else{
  81. ds_main_cond.setColumn(0,"perfdeptcd",sysf_getUserInfo("dutplcecd"));
  82. // mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", combo1.value, "0330");
  83. // addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo");
  84. lf_mmbfGetUserComboList(ds_init_userlist2, grp_srch2.combo1.value, "0330", "", "", "", "", "", "", "");
  85. dsf_addDsItem( ds_init_userlist2, "userid", "usernm", "전체", "-", "above"); //조회용 집도의 전체항목 추가
  86. ds_main_cond1.setColumn(0,"orddeptcd", sysf_getUserInfo("dutplcecd"));
  87. lf_mmbfGetUserComboList(ds_init_userlist5, grp_srch2.combo1.value, "0330", "", "", "", "", "", "", "");
  88. dsf_addDsItem( ds_init_userlist5, "userid", "usernm", "전체", "-", "above"); //조회용 집도의 전체항목 추가
  89. if( !utlf_isNull(sysf_getUserId())) ds_main_cond.setColumn(0,"perfdrid", "-");
  90. if( !utlf_isNull(sysf_getUserId())) ds_main_cond1.setColumn(0,"perfdrid", "-");
  91. }
  92. ds_main_cond.setColumn(0,"oproomcd" , "-");
  93. ds_main_cond1.setColumn(0,"oproomcd" , "-");
  94. if(fInitPamInfo("Y")==false){ //화면 기본 정보 설정
  95. return;
  96. }
  97. ds_main_oprsrvinfo.setColumn(0,"reopflag" , "N"); //수술공개
  98. ds_main_oprsrvinfo.setColumn(0,"opflagcd" , "1"); //수술구분
  99. ds_main_oprsrvinfo.setColumn(0,"opopenflag" , "Y"); //금일재수술
  100. ds_main_oprsrvinfo.setColumn(0,"anstreqflag", "N"); //마취의뢰만
  101. ds_main_oprsrvinfo.setColumn(0,"cnstopflag" , "N"); //협진의뢰여부
  102. ds_main_oprsrvinfo.setColumn(0,"opcntmdg" , "0"); //수술창상
  103. ds_main_cond.setColumn(0,"rgstnm",sysf_getUserInfo("usernm"));
  104. fGetReqrcntctel(); //연락처정보 셋팅 추가 요청 (2010.03.19 JJE)
  105. ds_main_diaglist.addRow();
  106. fReqOpRsrvRecList(); //수술예약장부 조회
  107. ds_main_cond.setColumn(0,"qflag","1");
  108. fReqOpRsrvInfoList(); //수술예약정보 조회
  109. //2012/06/25 Start
  110. // 수술 예방적 항생제 관련
  111. // mmbfGetHardCodeInfo("/root/send/reqdata", "/root/temp/opcd", 5606);
  112. lf_getHardCDList("N", 5606, null, ds_temp_opcd);
  113. // nodecnt = instance1.selectNodes("/root/temp/opcd/hardcd");
  114. nodecnt = ds_temp_opcd.rowcount;
  115. //2012/06/25 End
  116. frmf_createPopupMenu("popupmenu1"
  117. ,"fDelOpPrevDiag"
  118. ,[{id: "D", level: "0", title: "삭제"}] //항목추가
  119. );
  120. frmf_createPopupMenu("popupmenu2"
  121. ,"fDelOpRsrvCncl"
  122. ,[{id: "C", level: "0", title: "취소"}] //항목추가
  123. );
  124. }
  125. /***************************************************************************************************
  126. * Function : fInitPamInfo
  127. * Description : 화면 기본 정보 설정 (parameter 값으로 설정 또는 상단정보를 기준으로 설정)
  128. * Argument : init : 최초 오픈 구분
  129. * return type :
  130. * Creator :
  131. ***************************************************************************************************/
  132. function fInitPamInfo(init){
  133. var param = opener.frmf_getParameter("SPMMO00200_param");
  134. if(!utlf_isNull(param)) { //parameter가 있는 경우
  135. param = param.split("▦");
  136. var ioflag = param[0];
  137. var pid = param[1];
  138. var hngnm = param[2];
  139. var sa = param[3] + "/" + param[4];
  140. var orddeptcd = param[5];
  141. var orddd = param[6];
  142. var orddrid = param[7];
  143. var roomcd = param[8];
  144. var insukind = param[9];
  145. var suppkind = param[10];
  146. var fromdd = param[11];
  147. var todd = param[12];
  148. g_scrnflag = param[13]; //조회구분
  149. if(g_scrnflag == "Y"){
  150. ds_main_cond.setColumn(0,"pid" , param[1]);
  151. ds_main_cond.setColumn(0,"qflag", "3");
  152. }
  153. fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag);
  154. } else { //parameter가 없는 경우
  155. var paminfocsv = sysf_getGlobalVariable("paminfo");
  156. var patflagcsv = sysf_getGlobalVariable("patflag");
  157. /*수술 예약정보 입력시 연동되는 상단과 진료기록, 처방 창 환자 정보가 상이한 오류가 발생하여 상단 연동 기능을 제외한다. 김민선 선생님 요청
  158. 최초 오픈일 경우에만 상단정보를 보고 그 이외의 경우 별도의 submit으로 가져온 결과로 셋팅한다. 20100614 by LYJ*/
  159. if(utlf_isNull(paminfocsv) || utlf_isNull(patflagcsv)){ //상단정보가 없는 경우
  160. if(init =="Y"){ //최초 열때
  161. } else {
  162. var ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  163. var pid = ds_paminfo.getColumn(0,"pid");
  164. var hngnm = ds_paminfo.getColumn(0,"hngnm");
  165. var sa = ds_paminfo.getColumn(0,"sex") + "/" + ds_paminfo.getColumn(0,"age");
  166. var orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  167. if(ioflag == "O"){
  168. var orddd = ds_paminfo.getColumn(0,"orddd");
  169. var orddrid = ds_paminfo.getColumn(0,"orddrid");
  170. var roomcd = "외래";
  171. } else {
  172. var orddd = ds_paminfo.getColumn(0,"indd");
  173. var orddrid = ds_paminfo.getColumn(0,"medispclid");
  174. var roomcd = ds_paminfo.getColumn(0,"roomcd");
  175. }
  176. var insukind = ds_paminfo.getColumn(0,"insukind");
  177. var suppkind = ds_paminfo.getColumn(0,"suppkind");
  178. fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag);
  179. }
  180. } else {
  181. if(init =="Y") { //최초 열때
  182. // ds_paminfo.clear();
  183. // ds_patflag.clear();
  184. dsf_setCSVToDs("ds_paminfo", paminfocsv);
  185. dsf_setCSVToDs("ds_patflag", patflagcsv);
  186. }
  187. var ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  188. var pid = ds_paminfo.getColumn(0,"pid");
  189. var hngnm = ds_paminfo.getColumn(0,"hngnm");
  190. var sa = ds_paminfo.getColumn(0,"sex") + "/" + ds_paminfo.getColumn(0,"age");
  191. var orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  192. if(ioflag == "O") {
  193. var orddd = ds_paminfo.getColumn(0,"orddd");
  194. var orddrid = ds_paminfo.getColumn(0,"orddrid");
  195. var roomcd = "외래";
  196. } else {
  197. var orddd = ds_paminfo.getColumn(0,"indd");
  198. var orddrid = ds_paminfo.getColumn(0,"medispclid");
  199. var roomcd = ds_paminfo.getColumn(0,"roomcd");
  200. }
  201. var insukind = ds_paminfo.getColumn(0,"insukind");
  202. var suppkind = ds_paminfo.getColumn(0,"suppkind");
  203. fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag);
  204. }
  205. }
  206. ds_main_oprsrvinfo.setColumn(0,"pid" , pid);
  207. ds_main_oprsrvinfo.setColumn(0,"hngnm" , hngnm);
  208. ds_main_oprsrvinfo.setColumn(0,"sa" , sa);
  209. ds_main_oprsrvinfo.setColumn(0,"orddeptcd" , orddeptcd);
  210. ds_main_oprsrvinfo.setColumn(0,"perfdeptcd" , orddeptcd);
  211. ds_main_oprsrvinfo.setColumn(0,"insukind" , insukind);
  212. ds_main_oprsrvinfo.setColumn(0,"suppkind" , suppkind);
  213. // mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", orddeptcd, "0330");
  214. lf_mmbfGetUserComboList(ds_init_userlist, orddeptcd, "0330", "", "", "", "", "", "", "");
  215. ds_main_oprsrvinfo.setColumn(0,"perfdrid" , orddrid);
  216. ds_main_oprsrvinfo.setColumn(0,"roomcd" , roomcd);
  217. ds_main_oprsrvinfo.setColumn(0,"status" , "i");
  218. ds_main_oprsrvinfo.setColumn(0,"opcd" , "");
  219. ds_main_oprsrvinfo.setColumn(0,"opnm" , "");
  220. ds_main_oprsrvinfo.setColumn(0,"subopcd" , "");
  221. ds_main_oprsrvinfo.setColumn(0,"subopnm" , "");
  222. ds_main_oprsrvinfo.setColumn(0,"opposturecd" , "");
  223. ds_main_oprsrvinfo.setColumn(0,"opdirecflag" , "");
  224. ds_main_oprsrvinfo.setColumn(0,"anstmthdcd" , "");
  225. ds_main_oprsrvinfo.setColumn(0,"opcntmdg" , "-");
  226. ds_main_oprsrvinfo.setColumn(0,"delivefact" , "");
  227. ds_main_oprsrvinfo.setColumn(0,"opschedd" , "");
  228. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , "");
  229. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd" , "");
  230. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , "");
  231. ds_main_oprsrvinfo.setColumn(0,"opusetm" , "");
  232. ds_main_oprsrvinfo.setColumn(0,"cnstopflag" , "N"); // 협진의뢰 여부 초기화._손성훈.
  233. ds_main_oprsrvinfo.setColumn(0,"mainoprsrvno" , ""); // 주수술 예약번호 초기화._손성훈.
  234. }
  235. /***************************************************************************************************
  236. * Function : fReqPatCurrentDiagList
  237. * Description : 환자 현재 진단 조회 (진단구분코드:M)
  238. * Argument :
  239. * return type :
  240. * Creator :
  241. ***************************************************************************************************/
  242. function fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag){
  243. ds_send_reqdata.clear();
  244. ds_main_diaglist.clearData();
  245. dsf_makeValue(ds_send_reqdata,"pid" ,"string",pid);
  246. dsf_makeValue(ds_send_reqdata,"orddd" ,"string",orddd);
  247. dsf_makeValue(ds_send_reqdata,"orddeptcd" ,"string",orddeptcd);
  248. dsf_makeValue(ds_send_reqdata,"ioflag" ,"string",ioflag);
  249. dsf_makeValue(ds_send_reqdata,"diagkindcdflag" ,"string","");
  250. var oParam = {};
  251. oParam.id = "TRMMO00114";
  252. oParam.service = "prcpmngtapp.PatDiagMngt";
  253. oParam.method = "reqGetPatCurrentDiag";
  254. oParam.inds = "req=ds_send_reqdata";
  255. oParam.outds = "ds_main_diagcdlist=diagcdlist ds_main_opcdlist=opcdlist";
  256. oParam.async = false;
  257. oParam.callback = "cf_TRMMO00114";
  258. tranf_submit(oParam);
  259. if(arErrorCode.pop("TRMMO00114") > -1){
  260. // var xmlNode = model.instance1.selectSingleNode("/root/main/diaginfo/diagcdlist");
  261. var xmlNodecnt = ds_main_diagcdlist.rowcount;
  262. if(xmlNodecnt > 0){
  263. var grdRow = ds_main_diaglist.rowposition;
  264. // var totcnt = getNodeSetCnt("/root/main/diaginfo/diagcdlist");
  265. for(var currow = 0 ; currow < xmlNodecnt ; currow++){
  266. var dispdiagcd = ds_main_diagcdlist.getColumn(currow,"icd10cd");
  267. var diagcd = ds_main_diagcdlist.getColumn(currow,"diagcd");
  268. var diagengnm = ds_main_diagcdlist.getColumn(currow,"diagengnm");
  269. var diaghngnm = ds_main_diagcdlist.getColumn(currow,"diaghngnm");
  270. if(grdRow < 0) ds_main_diaglist.addRow(); // 데이터셋이 비었다면 한줄 생성하여 입력
  271. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"status" ,"i");
  272. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"dispdiagcd",dispdiagcd);
  273. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"diagcd" ,diagcd);
  274. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"diagengnm" ,diagengnm);
  275. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"diaghngnm" ,diaghngnm);
  276. if(grdRow >= 0) ds_main_diaglist.addRow(); // 작업이 끝난 후 빈 한줄을 또 생성하여 준다.
  277. }
  278. }
  279. }
  280. }
  281. /***************************************************************************************************
  282. * Function : cf_TRMMO00114
  283. * Description : TRMMO00114 콜백함수
  284. * Argument :
  285. * return type :
  286. * Creator :
  287. ***************************************************************************************************/
  288. function cf_TRMMO00114(sSvcId, nErrorCode, sErrorMsg) {
  289. arErrorCode.push(sSvcId, nErrorCode);
  290. }
  291. /***************************************************************************************************
  292. * Function : fGetReqrcntctel
  293. * Description : 집도과 수술마취 의뢰자 연락처 정보 조회
  294. * Argument :
  295. * return type :
  296. * Creator :
  297. ***************************************************************************************************/
  298. function fGetReqrcntctel() {
  299. var rgstMpphonNo = sysf_getUserInfo("mpphonno");
  300. var cntctel = "";
  301. if( !utlf_isNull(rgstMpphonNo) ){
  302. if( utlf_getStringLength(rgstMpphonNo) == 10 ) cntctel = rgstMpphonNo.substr(0,3) + "-" + rgstMpphonNo.substr(3,6) + "-" + rgstMpphonNo.substr(6,10);
  303. else if( utlf_getStringLength(rgstMpphonNo) == 11 ) cntctel = rgstMpphonNo.substr(0,3) + "-" + rgstMpphonNo.substr(3,7) + "-" + rgstMpphonNo.substr(7,11);
  304. else cntctel = rgstMpphonNo;
  305. ds_main_oprsrvinfo.setColumn(0,"cntctel", cntctel);
  306. }
  307. }
  308. /***************************************************************************************************
  309. * Function : fReqOpRsrvRecList
  310. * Description : 수술예약장부 조회
  311. * Argument :
  312. * return type :
  313. * Creator :
  314. ***************************************************************************************************/
  315. function fReqOpRsrvRecList(){
  316. ds_send_reqdata.clear();
  317. dsf_makeValue(ds_send_reqdata,"year" , "string", "");
  318. dsf_makeValue(ds_send_reqdata,"fromdd" , "string", ds_main_cond.getColumn(0,"fromdd"));
  319. dsf_makeValue(ds_send_reqdata,"todd" , "string", ds_main_cond.getColumn(0,"todd"));
  320. dsf_makeValue(ds_send_reqdata,"orddeptcd", "string", ds_main_cond1.getColumn(0,"orddeptcd"));
  321. dsf_makeValue(ds_send_reqdata,"oproomcd" , "string", ds_main_cond1.getColumn(0,"oproomcd"));
  322. dsf_makeValue(ds_send_reqdata,"pid" , "string", ds_main_cond1.getColumn(0,"pid"));
  323. dsf_makeValue(ds_send_reqdata,"perfdrid" , "string", ds_main_cond1.getColumn(0,"perfdrid"));
  324. var oParam = {};
  325. oParam.id = "TRMMO05701";
  326. oParam.service = "prcpmngtapp.OpMngt";
  327. oParam.method = "reqGetOpScheRecList";
  328. oParam.inds = "req=ds_send_reqdata";
  329. oParam.outds = "ds_main_opschereclist=opschereclist";
  330. oParam.async = true;
  331. oParam.callback = "cf_TRMMO05701";
  332. tranf_submit(oParam);
  333. }
  334. /***************************************************************************************************
  335. * Function : cf_TRMMO05701
  336. * Description : TRMMO05701 콜백함수
  337. * Argument :
  338. * return type :
  339. * Creator :
  340. ***************************************************************************************************/
  341. function cf_TRMMO05701(sSvcId, nErrorCode, sErrorMsg) {
  342. if(nErrorCode < 0) return;
  343. fSetOpTimeToHourMin();
  344. }
  345. /***************************************************************************************************
  346. * Function : fSetOpTimeToHourMin
  347. * Description : 수술시간 시분초로 변경
  348. * Argument :
  349. * return type :
  350. * Creator :
  351. ***************************************************************************************************/
  352. function fSetOpTimeToHourMin(){
  353. for(var i = 0; i < ds_main_opschereclist.rowcount; i++){
  354. var opfromtmcd = ds_main_opschereclist.getColumn(i,"opfromtmcd");
  355. var opendtmcd = ds_main_opschereclist.getColumn(i,"opendtmcd");
  356. if(utlf_isNull(opfromtmcd) || utlf_isNull(opendtmcd)){
  357. var difftime = 0;
  358. }else{
  359. var difftime = utlf_getTimeInterval(opfromtmcd, opendtmcd);
  360. }
  361. // ds_main_opschereclist.setColumn(i,"opusetm", fTransSecToHourMin(difftime));
  362. dsf_makeValue(ds_main_opschereclist,"opusetm","string",fTransSecToHourMin(difftime),i);
  363. }
  364. }
  365. /***************************************************************************************************
  366. * Function : fTransSecToHourMin
  367. * Description : 초를 시분으로 전환
  368. * Argument : sec : 초
  369. * return type :
  370. * Creator :
  371. ***************************************************************************************************/
  372. function fTransSecToHourMin(sec){
  373. var hr = 3600;
  374. var min = 60;
  375. hour = parseInt(sec/hr);
  376. min = parseInt(sec%hr/min);
  377. hour = ("" + hour + "").getLeftPad(2, "0");
  378. min = ("" + min + "").getLeftPad(2, "0");
  379. var rtnstr = hour.concat(min);
  380. return rtnstr;
  381. }
  382. /***************************************************************************************************
  383. * Function : fReqOpRsrvInfoList
  384. * Description : 수술예약정보 리스트 조회
  385. * Argument :
  386. * return type :
  387. * Creator :
  388. ***************************************************************************************************/
  389. function fReqOpRsrvInfoList(){
  390. // 2008.01.30 외래메인 간호에서 띄우는 경우
  391. if(!utlf_isNull(opener.frmf_getParameter("SMMNO00100_opschedd"))) {
  392. ds_main_cond.setColumn(0,"opschedd" , opener.frmf_getParameter("SMMNO00100_opschedd"));
  393. ds_main_cond.setColumn(0,"pid" , opener.frmf_getParameter("SMMNO00100_pid"));
  394. ds_main_cond.setColumn(0,"qflag" , "3");
  395. }
  396. // (e)
  397. // model.removeNodeset("/root/send/reqdata");
  398. // model.makeNode ( "/root/send/reqdata" );
  399. // model.copyNode("/root/send/reqdata", "/root/main/cond");
  400. ds_send_reqdata.copyData(ds_main_cond);
  401. var oParam = {};
  402. oParam.id = "TRMMO00201";
  403. oParam.service = "prcpmngtapp.OpMngt";
  404. oParam.method = "reqGetOpRsrvList";
  405. oParam.inds = "req=ds_send_reqdata";
  406. oParam.outds = "ds_main_oprsrvlist=oprsrvlist";
  407. oParam.async = false;
  408. oParam.callback = "cf_TRMMO00201";
  409. tranf_submit(oParam);
  410. if(arErrorCode.pop("TRMMO00201") > -1){
  411. var qflag = ds_main_cond.getColumn(0,"qflag"); //파라미터를 받아서 조회하는 경우
  412. if(qflag == 3){
  413. if(ds_main_oprsrvlist.rowcount > 1){
  414. fClkGrdOpRsrvList(1);
  415. //파라미터를 받아서 조회하는 경우, 저장 버튼을 모두 disabled한다.
  416. rdo_oppatflag.enable = false;
  417. ipt_opcd.enable = false;
  418. ipt_opnm.enable = false;
  419. ipt_subopcd.enable = false;
  420. ipt_subopnm.enable = false;
  421. cmb_opposture.enable = false;
  422. cmb_opdirecflag.enable = false;
  423. cmb_anstmthd.enable = false;
  424. ipt_delivefact.enable = false;
  425. cmb_opcnfmdg.enable = false;
  426. btn_new.enable = false;
  427. btn_tempsave.enable = false;
  428. btn_certsave.enable = false;
  429. btn_rsrvcncl.enable = false;
  430. }
  431. }
  432. // fDispAprvCnclChng(); /* 취소/변경에 따른 색 변경 그리드 EXPR로 설정 */
  433. // 2008.01.30 외래메인 간호에서 띄우는 경우
  434. if(!utlf_isNull(opener.frmf_getParameter("SMMNO00100_pid"))) {
  435. // var nodeList = instance1.selectNodes(ds_main_oprsrvlist); //??? 사용하는곳을 아직 모름
  436. fClkGrdOpRsrvList(1);
  437. frmf_clearParameter("SMMNO00100_opschedd");
  438. frmf_clearParameter("SMMNO00100_pid");
  439. }
  440. // (e)
  441. }
  442. }
  443. /***************************************************************************************************
  444. * Function : cf_TRMMO00201
  445. * Description : TRMMO00201 콜백함수
  446. * Argument :
  447. * return type :
  448. * Creator :
  449. ***************************************************************************************************/
  450. function cf_TRMMO00201(sSvcId, nErrorCode, sErrorMsg) {
  451. arErrorCode.push(sSvcId, nErrorCode);
  452. }
  453. /***************************************************************************************************
  454. * Function : fClkGrdOpRsrvList
  455. * Description : 수술예약자리스트 선택시
  456. * Argument : currow : 선택한 row
  457. * return type :
  458. * Creator :
  459. ***************************************************************************************************/
  460. function fClkGrdOpRsrvList(currow){
  461. var oppatflagcd = ds_main_oprsrvlist.getColumn(currow,"oppatflagcd");
  462. var anstreqflag = ds_main_oprsrvlist.getColumn(currow,"anstreqflag");
  463. var painlessflag = ds_main_oprsrvlist.getColumn(currow,"painlessflag");
  464. var drgyn = ds_main_oprsrvlist.getColumn(currow,"drgyn");
  465. // 일일수술실일 경우에만 수술전 검사 여부가 보이도록 함 2012.05.22 KJS
  466. caption60.visible = false;
  467. rdo_dsclabflag.visible = false;
  468. rdo_dsclabflag.enable = false;
  469. if (oppatflagcd == "D") {
  470. caption60.visible = true;
  471. rdo_dsclabflag.visible = true;
  472. rdo_dsclabflag.enable = true;
  473. }
  474. //임시저장인 경우 수술예약을 조회하지 않아서 selectSingleNode error 발생
  475. if(ds_main_oprsrvinfo.getColumn(0,"opstatcd") != "00") {
  476. ds_main_oprsrvinfo.copyRow(0,ds_main_oprsrvlist,currow);
  477. }
  478. ds_temp_oprsrvinfo.copyData(ds_main_oprsrvinfo);
  479. ds_main_oprsrvinfo.setColumn(0,"status", "u");
  480. if(painlessflag == "Y"){ //무통마취의뢰인 경우, 수술전진단 및 수술실시간, 수술실배정, 수술코드 입력이 모두 불가함
  481. fClkUnpainFlag("Y");
  482. } else {
  483. fSetInptDisabled("-");
  484. var orddeptcd = ds_main_oprsrvinfo.getColumn(0,"perfdeptcd"); //의사명 집도과에 따라변경
  485. // mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", orddeptcd, "0330");
  486. lf_mmbfGetUserComboList(ds_init_userlist, orddeptcd, "0330", "", "", "", "", "", "", "");
  487. fReqDailyChrgAnstDr(ipt_opschedd.value);
  488. fReqOpPrevDiagList(currow); //수술예약정보 수술전 진단 조회
  489. }
  490. if (drgyn == "Y") {
  491. btn_drgmod.enable = true;
  492. } else {
  493. btn_drgmod.enable = false;
  494. }
  495. }
  496. /***************************************************************************************************
  497. * Function : fClkUnpainFlag
  498. * Description : 무통마취 의뢰
  499. * Argument : bFlag :
  500. * return type :
  501. * Creator :
  502. ***************************************************************************************************/
  503. function fClkUnpainFlag( bFlag ) {
  504. var painlessflag = ds_main_oprsrvinfo.getColumn(0,"painlessflag");
  505. if(painlessflag == "Y"){
  506. if(bFlag == "Y") {
  507. var bval = true;
  508. rdo_opflag.value = "";
  509. rdo_opopen.value = "";
  510. cmb_oproomcd.value = "";
  511. cmb_opfromtmcd.value = "";
  512. cmb_opendtmcd.value = "";
  513. ipt_opcd.value = "";
  514. ipt_opnm.value = "";
  515. ipt_subopcd.value = "";
  516. ipt_subopnm.value = "";
  517. cmb_opposture.value = "";
  518. cmb_opdirecflag.value = "";
  519. cmb_anstmthd.value = "";
  520. cmb_opcnfmdg.value = "";
  521. ipt_usetm.value = "";
  522. bool3.value = "N";
  523. bool1.value = "N";
  524. bool2.value = "N";
  525. } else if(bFlag == "N") {
  526. var bval = true;
  527. ds_main_diaglist.addRow();
  528. } else {
  529. var bval = true;
  530. }
  531. } else { // 무통마취가 풀렸을 경우, 신규일 경우
  532. var bval = true;
  533. //grd_diaglist.addRow(false, true);
  534. }
  535. rdo_opflag.enable = bval;
  536. rdo_opopen.enable = bval;
  537. bool1.enable = bval;
  538. bool2.enable = bval;
  539. bool3.enable = bval;
  540. ipt_opcd.enable = bval;
  541. ipt_opnm.enable = bval;
  542. ipt_subopcd.enable = bval;
  543. ipt_subopnm.enable = bval;
  544. cmb_opposture.enable = bval;
  545. cmb_opdirecflag.enable = bval;
  546. cmb_anstmthd.enable = bval;
  547. cmb_opcnfmdg.enable = bval;
  548. button61.enable = bval;
  549. button5.enable = bval;
  550. button6.enable = bval;
  551. btn_tmsetup.enable = bval;
  552. }
  553. /***************************************************************************************************
  554. * Function : fSetInptDisabled
  555. * Description : 수술예약정보 input box disabled 설정
  556. * Argument : bFlag
  557. * return type :
  558. * Creator :
  559. ***************************************************************************************************/
  560. function fSetInptDisabled(bFlag){
  561. if(bFlag == "Y"){
  562. var bval = true;
  563. cmb_oproomcd.value = "";
  564. rdo_oppatflag.value = "";
  565. cmb_opfromtmcd.value = "";
  566. cmb_opendtmcd.value = "";
  567. ipt_subopcd.value = "";
  568. ipt_subopnm.value = "";
  569. cmb_opposture.value = "";
  570. cmb_opdirecflag.value = "";
  571. cmb_anstmthd.value = "";
  572. ipt_delivefact.value = "";
  573. cmb_opcnfmdg.value = "";
  574. }else if(bFlag == "N"){
  575. var bval = true;
  576. ds_main_diaglist.addRow();
  577. }else{
  578. var bval = true;
  579. }
  580. ipt_opcd.enable = bval;
  581. ipt_opnm.enable = bval;
  582. ipt_subopcd.enable = bval;
  583. ipt_subopnm.enable = bval;
  584. cmb_opposture.enable = bval;
  585. cmb_opdirecflag.enable = bval;
  586. cmb_anstmthd.enable = bval;
  587. ipt_delivefact.enable = bval;
  588. cmb_opcnfmdg.enable = bval;
  589. }
  590. /***************************************************************************************************
  591. * Function : fReqDailyChrgAnstDr
  592. * Description : 담당요일 의사조회
  593. * Argument : opschedd : 수술예약일자
  594. * return type :
  595. * Creator :
  596. ***************************************************************************************************/
  597. function fReqDailyChrgAnstDr(opschedd){
  598. ds_send_reqdata.clear();
  599. dsf_makeValue(ds_send_reqdata,"opschedd","string",opschedd);
  600. var oParam = {};
  601. oParam.id = "TRMMO00203";
  602. oParam.service = "prcpmngtapp.OpMngt";
  603. oParam.method = "reqGetOpAnstDailyChrgDr";
  604. oParam.inds = "req=ds_send_reqdata";
  605. oParam.outds = "ds_main_dailychrgdrlist=dailychrgdrlist";
  606. oParam.async = false;
  607. oParam.callback = "cf_TRMMO00203";
  608. tranf_submit(oParam);
  609. if(arErrorCode.pop("TRMMO00203") > -1){
  610. // var existxml = instance1.selectNodes("/root/main/dailychrgdrlist/dailychrgdrlist");
  611. var totcnt = ds_main_dailychrgdrlist.rowcount;
  612. if(totcnt == 1){ //담당자가 있는 경우
  613. var daynm = ds_main_dailychrgdrlist.getColumn(0,"chrgdwnm") + "요일";
  614. var chrgdrnm = ds_main_dailychrgdrlist.getColumn(0,"usernm") + "\n"+"(" +
  615. ds_main_dailychrgdrlist.getColumn(0,"beepno") + ")";
  616. ds_main_cond.setColumn(0,"daynm" , daynm);
  617. ds_main_cond.setColumn(0,"chrgdrnm", chrgdrnm);
  618. } else { //담당자가 없는 경우
  619. ds_main_cond.setColumn(0,"daynm" , "");
  620. ds_main_cond.setColumn(0,"chrgdrnm", "");
  621. }
  622. }
  623. }
  624. /***************************************************************************************************
  625. * Function : cf_TRMMO00203
  626. * Description : TRMMO00203 콜백함수
  627. * Argument :
  628. * return type :
  629. * Creator :
  630. ***************************************************************************************************/
  631. function cf_TRMMO00203(sSvcId, nErrorCode, sErrorMsg) {
  632. arErrorCode.push(sSvcId, nErrorCode);
  633. }
  634. /***************************************************************************************************
  635. * Function : fReqOpPrevDiagList
  636. * Description : 수술예약정보 수술전 진단 조회
  637. * Argument : currow : 선택한 row
  638. * return type :
  639. * Creator :
  640. ***************************************************************************************************/
  641. function fReqOpPrevDiagList(currow){
  642. var oprsrvno = ds_main_oprsrvlist.getColumn(currow,"oprsrvno");
  643. var perfdeptcd = ds_main_oprsrvlist.getColumn(currow,"perfdeptcd");
  644. ds_send_reqdata.clear();
  645. dsf_makeValue(ds_send_reqdata,"oprsrvno" ,"string", oprsrvno);
  646. dsf_makeValue(ds_send_reqdata,"perfdeptcd","string", perfdeptcd);
  647. var oParam = {};
  648. oParam.id = "TRMMO00202";
  649. oParam.service = "prcpmngtapp.OpMngt";
  650. oParam.method = "reqGetOpPrevDiagList";
  651. oParam.inds = "req=ds_send_reqdata";
  652. oParam.outds = "ds_main_diaglist=diaglist";
  653. oParam.async = false;
  654. oParam.callback = "cf_TRMMO00202";
  655. tranf_submit(oParam);
  656. }
  657. /***************************************************************************************************
  658. * Function : cf_TRMMO00202
  659. * Description : TRMMO00202 콜백함수
  660. * Argument :
  661. * return type :
  662. * Creator :
  663. ***************************************************************************************************/
  664. function cf_TRMMO00202(sSvcId, nErrorCode, sErrorMsg) {
  665. if(nErrorCode < 0) return;
  666. ds_main_diaglist.addRow();
  667. }
  668. /***************************************************************************************************
  669. * Function : fDispAprvCnclChng
  670. * Description : 취소/변경 승인요청 표시, 빨간색 취소, 파란색 변경
  671. * Argument :
  672. * return type :
  673. * Creator :
  674. ***************************************************************************************************/
  675. function fDispAprvCnclChng() {
  676. // for(var i = 0; i < ds_main_oprsrvlist.rowcount; i++){
  677. // var aprvreqno = ds_main_oprsrvlist.getColumn(i,"aprvreqno");
  678. // var reqrsncd = ds_main_oprsrvlist.getColumn(i,"reqrsncd");
  679. // if(aprvreqno != 0){
  680. // if(reqrsncd < 300){ //취소
  681. // grd_oprsrvlist.rowStyle(i, "all", "color") = "#ff0000";
  682. // }else if(reqrsncd > 300){ //변경
  683. // grd_oprsrvlist.rowStyle(i, "all", "color") = "#0000ff";
  684. // }
  685. // }else{
  686. // grd_oprsrvlist.rowStyle(i, "all", "color") = "#000000";
  687. // }
  688. // }
  689. }
  690. /***************************************************************************************************
  691. * Function : fCalReqDate
  692. * Description : 날짜를 계산
  693. * Argument : daycnt : 계산할 날수
  694. * return type :
  695. * Creator :
  696. ***************************************************************************************************/
  697. function fCalReqDate(daycnt){
  698. var fromdd = ds_main_cond.getColumn(0,"fromdd");
  699. var fromdd = (fromdd.toDate()).getAddDate(daycnt);
  700. fromdd = fromdd.getDateFormat();
  701. var todd = ds_main_cond.getColumn(0,"todd");
  702. var todd = (todd.toDate()).getAddDate(daycnt);
  703. todd = todd.getDateFormat();
  704. ds_main_cond.setColumn(0,"fromdd",fromdd);
  705. ds_main_cond.setColumn(0,"todd" ,todd);
  706. }
  707. /***************************************************************************************************
  708. * Function : fClkGrdOpScheList
  709. * Description : 수술예약장부 클릭시 수술예약정보에 데이터 설정
  710. * Argument : currow : 선택한 row
  711. * return type :
  712. * Creator :
  713. ***************************************************************************************************/
  714. function fClkGrdOpScheList(currow){
  715. var pid = ds_main_opschereclist.getColumn(currow,"pid");
  716. var perfdeptcd = ds_main_opschereclist.getColumn(currow,"perfdeptcd");
  717. var perfdrid = ds_main_opschereclist.getColumn(currow,"perfdrid");
  718. var oproomcd = ds_main_opschereclist.getColumn(currow,"oproomcd");
  719. var opfromtmcd = ds_main_opschereclist.getColumn(currow,"opfromtmcd");
  720. var opendtmcd = ds_main_opschereclist.getColumn(currow,"opendtmcd");
  721. var anstmthdcd = ds_main_opschereclist.getColumn(currow,"anstmthdcd");
  722. var opusetm = ds_main_opschereclist.getColumn(currow,"opusetm");
  723. var oppatflagcd = ds_main_opschereclist.getColumn(currow,"oppatflagcd");
  724. var opschedd = ds_main_opschereclist.getColumn(currow,"opschedd");
  725. var hngnm = ds_main_opschereclist.getColumn(currow,"hngnm");
  726. var sex = ds_main_opschereclist.getColumn(currow,"sex");
  727. var age = ds_main_opschereclist.getColumn(currow,"age");
  728. var diagcd = ds_main_opschereclist.getColumn(currow,"diagcd");
  729. var diagnm = ds_main_opschereclist.getColumn(currow,"diagnm");
  730. var dispdiagcd = ds_main_opschereclist.getColumn(currow,"dispdiagcd");
  731. // var orddeptcd = ds_main_opschereclist.getColumn(currow,"orddeptcd");
  732. ds_main_oprsrvinfo.clearData();
  733. ds_main_oprsrvinfo.addRow();
  734. ds_main_oprsrvinfo.setColumn(0,"status" , "i");
  735. ds_main_oprsrvinfo.setColumn(0,"pid" , pid);
  736. ds_main_oprsrvinfo.setColumn(0,"orddeptcd" , perfdeptcd);
  737. ds_main_oprsrvinfo.setColumn(0,"perfdeptcd" , perfdeptcd);
  738. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , oproomcd);
  739. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd" , opfromtmcd);
  740. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , opendtmcd);
  741. ds_main_oprsrvinfo.setColumn(0,"anstmthdcd" , anstmthdcd);
  742. ds_main_oprsrvinfo.setColumn(0,"opusetm" , opusetm);
  743. ds_main_oprsrvinfo.setColumn(0,"oppatflagcd", oppatflagcd);
  744. ds_main_oprsrvinfo.setColumn(0,"opschedd" , opschedd);
  745. ds_main_oprsrvinfo.setColumn(0,"hngnm" , hngnm);
  746. ds_main_oprsrvinfo.setColumn(0,"sa" , sex + "/".concat(age));
  747. ds_main_oprsrvinfo.setColumn(0,"reopflag" , "N"); //수술공개
  748. if(opschedd != utlf_getCurrentDate()) {
  749. ds_main_oprsrvinfo.setColumn(0,"opflagcd" , "1"); //수술구분
  750. }
  751. ds_main_oprsrvinfo.setColumn(0,"opopenflag" , "Y"); //금일재수술
  752. ds_main_oprsrvinfo.setColumn(0,"anstreqflag", "N"); //마취의뢰만
  753. ds_main_oprsrvinfo.setColumn(0,"cnstopflag" , "N"); //협진의뢰여부
  754. ds_main_oprsrvinfo.setColumn(0,"opcntmdg" , "0"); //수술창상
  755. ds_main_cond.setColumn(0,"rgstnm", sysf_getUserInfo("usernm"));
  756. fGetReqrcntctel(); //연락처정보 셋팅 추가 요청 (2010.03.19 JJE)
  757. //zsufGetUserInfoCombo(cmb_perfdeptcd.value, "/root/init/userlist", "_D"); //의사 콤보조회
  758. // mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", cmb_perfdeptcd.value, "0330");
  759. lf_mmbfGetUserComboList(ds_init_userlist, cmb_perfdeptcd.value, "0330", "", "", "", "", "", "", "");
  760. ds_main_oprsrvinfo.setColumn(0,"perfdrid" , perfdrid);
  761. ds_main_diaglist.clearData();
  762. ds_main_diaglist.addRow(); // 데이터셋이 비었다면 한줄 생성하여 입력
  763. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"status" ,"i");
  764. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"dispdiagcd",dispdiagcd);
  765. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"diagcd" ,diagcd);
  766. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"diagengnm" ,diagnm);
  767. // ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"diaghngnm" ,diaghngnm);
  768. ds_main_diaglist.addRow(); // 작업이 끝난 후 빈 한줄을 또 생성하여 준다.
  769. }
  770. /***************************************************************************************************
  771. * Function : fDelOpRsrvCncl
  772. * Description : 수술예약자 리스트 취소 실행
  773. * Argument :
  774. * return type :
  775. * Creator :
  776. ***************************************************************************************************/
  777. function fDelOpRsrvCncl(obj:PopupMenu, e:MenuClickEventInfo) {
  778. if(e.id == "C") {
  779. var currow = ds_main_oprsrvlist.rowposition;
  780. var pid = ds_main_oprsrvlist.getColumn(currow,"pid");
  781. var opschedd = ds_main_oprsrvlist.getColumn(currow,"opschedd");
  782. var oprsrvno = ds_main_oprsrvlist.getColumn(currow,"oprsrvno");
  783. var aprvreqno = ds_main_oprsrvlist.getColumn(currow,"aprvreqno");
  784. var perfdeptcd = ds_main_cond.getColumn(0,"perfdeptcd");
  785. var oproomcd = ds_main_cond.getColumn(0,"oproomcd");
  786. ds_send_savedata_rsrvcnclinfo.clear();
  787. dsf_makeValue(ds_send_savedata_rsrvcnclinfo ,"pid" ,"string", pid);
  788. dsf_makeValue(ds_send_savedata_rsrvcnclinfo ,"opschedd" ,"string", opschedd);
  789. dsf_makeValue(ds_send_savedata_rsrvcnclinfo ,"oprsrvno" ,"string", oprsrvno);
  790. dsf_makeValue(ds_send_savedata_rsrvcnclinfo ,"aprvreqno" ,"string", aprvreqno);
  791. dsf_makeValue(ds_send_savedata_rsrvcnclinfo ,"perfdeptcd","string", perfdeptcd);
  792. dsf_makeValue(ds_send_savedata_rsrvcnclinfo ,"oproomcd" ,"string", oproomcd);
  793. var oParam = {};
  794. oParam.id = "TXMMO00202";
  795. oParam.service = "prcpmngtapp.OpMngt";
  796. oParam.method = "reqSetOpRsrvCncl";
  797. oParam.inds = "req=ds_send_savedata_rsrvcnclinfo";
  798. oParam.outds = "ds_main_oprsrvlist=oprsrvlist";
  799. oParam.async = false;
  800. oParam.callback = "";
  801. tranf_submit(oParam);
  802. ds_main_cond.setColumn(0,"qflag","1");
  803. fReqOpRsrvInfoList();
  804. }
  805. }
  806. /***************************************************************************************************
  807. * Function : fOpenPatInfo
  808. * Description : 환자진료정보 list 조회
  809. * Argument :
  810. * return type :
  811. * Creator :
  812. ***************************************************************************************************/
  813. function fOpenPatInfo(){
  814. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  815. if(utlf_isNull(pid)){
  816. sysf_messageBox("환자의 등록번호를 ", "C001");
  817. return;
  818. }
  819. ds_send_reqdata.clear();
  820. dsf_makeValue(ds_send_reqdata,"cond1","string", "1"); //1은 등록번호, 2는 환자명
  821. dsf_makeValue(ds_send_reqdata,"cond2","string", pid); //등록번호
  822. dsf_makeValue(ds_send_reqdata,"cond3","string", sysf_getUserInfo("dutplceinstcd"));
  823. dsf_makeValue(ds_send_reqdata,"cond4","string", "N"); //원무키 기준여부
  824. dsf_makeValue(ds_send_reqdata,"cond5","string", "N"); //당일기준 조회여부
  825. dsf_makeValue(ds_send_reqdata,"cond6","string", "-"); //외래,입원테이블 기준
  826. var oParam = {};
  827. oParam.id = "TRMMO00200";
  828. oParam.service = "prcpmngtapp.PrcpMngt";
  829. oParam.method = "reqGetComnPatOrdInfo";
  830. oParam.inds = "req=ds_send_reqdata";
  831. oParam.outds = "ds_patordinfolist=patordinfolist";
  832. oParam.async = false;
  833. oParam.callback = "cf_TRMMO00200";
  834. tranf_submit(oParam);
  835. if(arErrorCode.pop("TRMMO00200") > -1){
  836. var patnodecnt = ds_patordinfolist.rowcount;
  837. if(patnodecnt > 1){
  838. var xpt = this.position.left + 50;
  839. var ypt = this.position.top + 80;
  840. var mon = sysf_getCurrentMonitorNumber();
  841. // var coord = getRelativeCoordinate(xpt, ypt);
  842. // var mon = coord[0];
  843. // xpt = coord[1];
  844. // ypt = coord[2];
  845. // modal("SPMMO09100", mon, xpt, ypt, "patordinfo", "/root/patordinfo", "/root/patordinfo", "", false );
  846. var objArg = new Object();
  847. objArg.arg_ds_patordinfolist = ds_patordinfolist;
  848. frmf_modal("SPMMO09100","SPMMO09100",objArg,null,mon,xpt,ypt,null,null,null,null,null,"M");
  849. var param = getParameter("SPMMO09100_rtn_param");
  850. if(!utlf_isNull(param)){
  851. ds_patordinfolist.clear();
  852. dsf_setCSVToDs("ds_patordinfolist",param);
  853. }
  854. }
  855. var ioflag = ds_patordinfolist.getColumn(0,"ioflag");
  856. var pid = ds_patordinfolist.getColumn(0,"pid");
  857. var orddd = ds_patordinfolist.getColumn(0,"orddd");
  858. var cretno = ds_patordinfolist.getColumn(0,"cretno");
  859. var instcd = ds_patordinfolist.getColumn(0,"instcd");
  860. ds_send_reqdata.clear();
  861. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid); //등록번호
  862. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd); //입원일자
  863. dsf_makeValue(ds_send_reqdata,"cretno" ,"string", cretno); //생성번호
  864. dsf_makeValue(ds_send_reqdata,"instcd" ,"string", instcd); //기관코드
  865. // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
  866. var oParam = {};
  867. oParam.id = "TRMMO00210";
  868. oParam.service = "prcpmngtapp.OpMngt";
  869. oParam.method = "reqGetOpTopInfo";
  870. oParam.inds = "req=ds_send_reqdata";
  871. oParam.outds = "ds_main_topinfo=topinfo";
  872. oParam.async = false;
  873. oParam.callback = "cf_TRMMO00210";
  874. tranf_submit(oParam);
  875. if(arErrorCode.pop("TRMMO00210") > -1) {
  876. var srchdd = ds_main_topinfo.getColumn(0,"fromdd");
  877. }
  878. // (e)
  879. //수술 예약정보 입력시 연동되는 상단과 진료기록, 처방 창 환자 정보가 상이한 오류가 발생하여 상단 연동 기능을 제외한다. 김민선 선생님 요청 20100614 by LYJ
  880. if(ioflag == "I" || ioflag == "D"){
  881. dsf_makeValue(ds_send_reqdata,"srchdd" ,"string", srchdd); //조회일자
  882. dsf_makeValue(ds_send_reqdata,"ioflag" ,"string", "I");
  883. fReqInPatTopInfo();
  884. } else if(ioflag == "E") {
  885. dsf_makeValue(ds_send_reqdata,"srchdd" ,"string", srchdd); //조회일자
  886. dsf_makeValue(ds_send_reqdata,"ioflag" ,"string", "E");
  887. fReqERPatTopInfo();
  888. }else{
  889. dsf_makeValue(ds_send_reqdata,"ioflag" ,"string", "O");
  890. fReqOutPatTopInfo();
  891. }
  892. fInitPamInfo(); //화면 기본 정보 설정
  893. }
  894. }
  895. /***************************************************************************************************
  896. * Function : cf_TRMMO00200
  897. * Description : TRMMO00200 콜백함수
  898. * Argument :
  899. * return type :
  900. * Creator :
  901. ***************************************************************************************************/
  902. function cf_TRMMO00200(sSvcId, nErrorCode, sErrorMsg) {
  903. arErrorCode.push(sSvcId, nErrorCode);
  904. }
  905. /***************************************************************************************************
  906. * Function : cf_TRMMO00210
  907. * Description : TRMMO00210 콜백함수
  908. * Argument :
  909. * return type :
  910. * Creator :
  911. ***************************************************************************************************/
  912. function cf_TRMMO00210(sSvcId, nErrorCode, sErrorMsg) {
  913. arErrorCode.push(sSvcId, nErrorCode);
  914. }
  915. /***************************************************************************************************
  916. * Function : fReqInPatTopInfo
  917. * Description : 입원환자 원무, 환자구분, 상단정보 설정
  918. * Argument :
  919. * return type :
  920. * Creator :
  921. ***************************************************************************************************/
  922. function fReqInPatTopInfo(){
  923. var oParam = {};
  924. oParam.id = "TRMMO04302";
  925. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  926. oParam.method = "reqGetPatTopInfo";
  927. oParam.inds = "req=ds_send_reqdata";
  928. oParam.outds = "ds_hidden_inpatpaminfo=inpatpaminfo ds_hidden_patmaintopinfo=patmaintopinfo ds_hidden_inpatflaginfo=inpatflaginfo";
  929. oParam.async = false;
  930. oParam.callback = "cf_TRMMO04302";
  931. tranf_submit(oParam);
  932. if(arErrorCode.pop("TRMMO04302") > -1){
  933. ds_hidden_inpatpaminfo.updateColID("dschrgstacptchar","dschrgstacptcharid");
  934. ds_hidden_inpatpaminfo.updateColID("basetypecd" ,"sectioncd");
  935. ds_hidden_inpatpaminfo.updateColID("typenm" ,"sectionnm");
  936. var paminfocnt = ds_hidden_inpatpaminfo.rowcount;
  937. var patflagcnt = ds_hidden_inpatflaginfo.rowcount;
  938. var maintopcnt = ds_hidden_patmaintopinfo.rowcount;
  939. ds_paminfo.copyData(ds_hidden_inpatpaminfo);
  940. ds_patflag.copyData(ds_hidden_inpatflaginfo);
  941. if(paminfocnt < 1){
  942. sysf_messageBox("입원환자 원무 정보가", "I004");
  943. return false;
  944. }
  945. if(patflagcnt < 1){
  946. sysf_messageBox("입원환자 환자구분 정보가", "I004");
  947. return false;
  948. }
  949. if(maintopcnt < 1){
  950. sysf_messageBox("입원환자 기본 정보가", "I004");
  951. return false;
  952. }
  953. }
  954. return true;
  955. }
  956. /***************************************************************************************************
  957. * Function : fReqERPatTopInfo
  958. * Description : 응급환자 상단정보 조회조건 설정
  959. * Argument :
  960. * return type :
  961. * Creator :
  962. ***************************************************************************************************/
  963. function fReqERPatTopInfo(){
  964. var oParam = {};
  965. oParam.id = "TRMMO04302";
  966. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  967. oParam.method = "reqGetPatTopInfo";
  968. oParam.inds = "req=ds_send_reqdata";
  969. oParam.outds = "ds_hidden_inpatpaminfo=inpatpaminfo ds_hidden_patmaintopinfo=patmaintopinfo ds_hidden_inpatflaginfo=inpatflaginfo";
  970. oParam.async = false;
  971. oParam.callback = "cf_TRMMO04302";
  972. tranf_submit(oParam);
  973. if(arErrorCode.pop("TRMMO04302") > -1){
  974. ds_hidden_inpatpaminfo.updateColID("dschrgstacptchar","dschrgstacptcharid");
  975. ds_hidden_inpatpaminfo.updateColID("basetypecd" ,"sectioncd");
  976. ds_hidden_inpatpaminfo.updateColID("typenm" ,"sectionnm");
  977. var paminfocnt = ds_hidden_inpatpaminfo.rowcount;
  978. var patflagcnt = ds_hidden_inpatflaginfo.rowcount;
  979. var maintopcnt = ds_hidden_patmaintopinfo.rowcount;
  980. ds_paminfo.copyData(ds_hidden_inpatpaminfo);
  981. ds_patflag.copyData(ds_hidden_inpatflaginfo);
  982. if(paminfocnt < 1){
  983. sysf_messageBox("응급환자 원무 정보가", "I004");
  984. return false;
  985. }
  986. if(patflagcnt < 1){
  987. sysf_messageBox("응급환자 환자구분 정보가", "I004");
  988. return false;
  989. }
  990. if(maintopcnt < 1){
  991. sysf_messageBox("응급환자 기본 정보가", "I004");
  992. return false;
  993. }
  994. }
  995. return true;
  996. }
  997. /***************************************************************************************************
  998. * Function : cf_TRMMO04302
  999. * Description : TRMMO04302 콜백함수
  1000. * Argument :
  1001. * return type :
  1002. * Creator :
  1003. ***************************************************************************************************/
  1004. function cf_TRMMO04302(sSvcId, nErrorCode, sErrorMsg) {
  1005. arErrorCode.push(sSvcId, nErrorCode);
  1006. }
  1007. /***************************************************************************************************
  1008. * Function : fReqOutPatTopInfo
  1009. * Description : 외래환자 원무, 환자구분, 상단정보 설정
  1010. * Argument :
  1011. * return type :
  1012. * Creator :
  1013. ***************************************************************************************************/
  1014. function fReqOutPatTopInfo(){
  1015. var oParam = {};
  1016. oParam.id = "TRMMO04202";
  1017. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1018. oParam.method = "reqGetPatTopInfo";
  1019. oParam.inds = "req=ds_send_reqdata";
  1020. oParam.outds = "ds_hidden_outpatpaminfo=outpatpaminfo ds_=patmaintopinfo ds_hidden_outpatflaginfo=outpatflaginfo";
  1021. oParam.async = false;
  1022. oParam.callback = "cf_TRMMO04202";
  1023. tranf_submit(oParam);
  1024. if(arErrorCode.pop("TRMMO04202") > -1){
  1025. ds_hidden_outpatpaminfo.updateColID("centernm","centnm");
  1026. var paminfocnt = ds_hidden_outpatpaminfo.rowcount;
  1027. var patflagcnt = ds_hidden_outpatflaginfo.rowcount;
  1028. var maintopcnt = ds_hidden_patmaintopinfo.rowcount;
  1029. ds_paminfo.copyData(ds_hidden_outpatpaminfo);
  1030. ds_patflag.copyData(ds_hidden_outpatflaginfo);
  1031. if(paminfocnt < 1){
  1032. sysf_messageBox("외래환자 원무 정보가", "I004");
  1033. return false;
  1034. }
  1035. if(patflagcnt < 1){
  1036. sysf_messageBox("외래환자 환자구분 정보가", "I004");
  1037. return false;
  1038. }
  1039. if(maintopcnt < 1){
  1040. sysf_messageBox("외래환자 기본 정보가", "I004");
  1041. return false;
  1042. }
  1043. }
  1044. return true;
  1045. }
  1046. /***************************************************************************************************
  1047. * Function : cf_TRMMO04202
  1048. * Description : TRMMO04202 콜백함수
  1049. * Argument :
  1050. * return type :
  1051. * Creator :
  1052. ***************************************************************************************************/
  1053. function cf_TRMMO04202(sSvcId, nErrorCode, sErrorMsg) {
  1054. arErrorCode.push(sSvcId, nErrorCode);
  1055. }
  1056. /***************************************************************************************************
  1057. * Function : fReqPatOrdInfo
  1058. * Description : 환자 수진정보 조회
  1059. * Argument :
  1060. * return type :
  1061. * Creator :
  1062. ***************************************************************************************************/
  1063. function fReqPatOrdInfo(){
  1064. ds_main_oprsrvinfo.setColumn(0,"reopflag" , "");
  1065. ds_main_oprsrvinfo.setColumn(0,"anstreqflag" , "");
  1066. ds_main_oprsrvinfo.setColumn(0,"cnstopflag" , "");
  1067. ds_main_oprsrvinfo.setColumn(0,"painlessflag", "");
  1068. ds_main_oprsrvinfo.setColumn(0,"angioflag" , "");
  1069. ds_main_oprsrvinfo.setColumn(0,"robotopflag" , "");
  1070. ds_main_oprsrvinfo.setColumn(0,"cancerflag" , "");
  1071. ds_main_oprsrvinfo.setColumn(0,"laparoflag" , "");
  1072. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  1073. if(utlf_isNull(pid)){
  1074. sysf_messageBox("환자의 등록번호를 ", "C001");
  1075. return;
  1076. }
  1077. ds_send_reqdata.clear();
  1078. dsf_makeValue(ds_send_reqdata,"pid" ,"string",pid); //외래,입원테이블 기준
  1079. dsf_makeValue(ds_send_reqdata,"confdd","string",utlf_getCurrentDate()); //외래,입원테이블 기준
  1080. var oParam = {};
  1081. oParam.id = "TRMMO00215";
  1082. oParam.service = "prcpmngtapp.ConcPatMngt";
  1083. oParam.method = "reqGetPatOrdInfo";
  1084. oParam.inds = "req=ds_send_reqdata";
  1085. oParam.outds = "ds_patordinfolist=patordinfolist";
  1086. oParam.async = false;
  1087. oParam.callback = "cf_TRMMO00215";
  1088. tranf_submit(oParam);
  1089. if(arErrorCode.pop("TRMMO00215") > -1){
  1090. // 2008.11.18 로그인 의사 진료과의 최근 수진 이력을 선택한 상태
  1091. //sortNodeList("/root/patordinfo/patordinfolist", "orddd", "desc"); // 20090630 수진이력이 많은 경우 정렬하는데 시간이 너무 많이 걸려서 브라우저가 죽는 경우가 있음
  1092. // 쿼리에서 정렬한 결과를 가지고 오는 것으로 변경
  1093. // var patlist = model.instance1.selectNodes("/root/patordinfo/patordinfolist[orddeptcd = " + getUserInfo("dutplcecd") + "and orddd <="+ getCurrentDate() +"]");
  1094. var patlist = ds_patordinfolist.filter("orddeptcd=='"+sysf_getUserInfo("dutplcecd")+"' && orddd <= '"+utlf_getCurrentDate()+"'");
  1095. if(patlist.rowcount > 0) {
  1096. // var ioflag = patlist.item(0).selectSingleNode("ioflag").text;
  1097. // var pid = patlist.item(0).selectSingleNode("pid").text;
  1098. // var orddd = patlist.item(0).selectSingleNode("orddd").text;
  1099. // var cretno = patlist.item(0).selectSingleNode("cretno").text;
  1100. // var instcd = patlist.item(0).selectSingleNode("instcd").text;
  1101. // var dschdd = patlist.item(0).selectSingleNode("dschdd").text;
  1102. var ioflag = patlist.getColumn(0,"ioflag");
  1103. var pid = patlist.getColumn(0,"pid");
  1104. var orddd = patlist.getColumn(0,"orddd");
  1105. var cretno = patlist.getColumn(0,"cretno");
  1106. var instcd = patlist.getColumn(0,"instcd");
  1107. var dschdd = patlist.getColumn(0,"dschdd");
  1108. if (dschdd == "99991231") {
  1109. var srchdd = utlf_getCurrentDate();
  1110. } else {
  1111. var srchdd = dschdd;
  1112. }
  1113. } else { // 해당 진료과에 수진이력이 없을 경우 가장 최근 내원이력으로 조회하도록 로직 수정 : 2009.06.30 김영학
  1114. patlist = ds_patordinfolist.filter("orddd <= '"+utlf_getCurrentDate()+"'");
  1115. if(patlist.rowcount > 0) {
  1116. var ioflag = patlist.getColumn(0,"ioflag");
  1117. var pid = patlist.getColumn(0,"pid");
  1118. var orddd = patlist.getColumn(0,"orddd");
  1119. var cretno = patlist.getColumn(0,"cretno");
  1120. var instcd = patlist.getColumn(0,"instcd");
  1121. var dschdd = patlist.getColumn(0,"dschdd");
  1122. if (dschdd == "99991231") {
  1123. var srchdd = utlf_getCurrentDate();
  1124. } else {
  1125. var srchdd = dschdd;
  1126. }
  1127. } else {
  1128. sysf_messageBox("환자번호를 확인하세요", "I");
  1129. return;
  1130. }
  1131. }
  1132. // (e)
  1133. //수술 예약정보 입력시 연동되는 상단과 진료기록, 처방 창 환자 정보가 상이한 오류가 발생하여 상단 연동 기능을 제외한다.
  1134. //김민선 선생님 요청 20100614 by LYJ
  1135. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid); //등록번호
  1136. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd); //입원일자
  1137. dsf_makeValue(ds_send_reqdata,"cretno" ,"string", cretno); //생성번호
  1138. dsf_makeValue(ds_send_reqdata,"instcd" ,"string", instcd); //기관코드
  1139. if(ioflag == "I" || ioflag == "D"){
  1140. dsf_makeValue(ds_send_reqdata,"srchdd","string", srchdd); //조회일자
  1141. dsf_makeValue(ds_send_reqdata,"ioflag","string", "I");
  1142. fReqInPatTopInfo();
  1143. } else if(ioflag == "E") {
  1144. dsf_makeValue(ds_send_reqdata,"srchdd","string", srchdd); //조회일자
  1145. dsf_makeValue(ds_send_reqdata,"ioflag","string", "E");
  1146. fReqERPatTopInfo();
  1147. }else{
  1148. dsf_makeValue(ds_send_reqdata,"ioflag","string", "O");
  1149. fReqOutPatTopInfo();
  1150. }
  1151. fInitPamInfo(); //화면 기본 정보 설정
  1152. ds_main_diaglist.addRow();
  1153. //DRG 환자정보 조회 2013.05.21 KJS
  1154. var workdd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1155. if (utlf_isNull(workdd)) {
  1156. workdd = utlf_getCurrentDate();
  1157. }
  1158. dsf_makeValue(ds_send_reqdata,"pid" ,"string", ds_main_oprsrvinfo.getColumn(0,"pid"));
  1159. dsf_makeValue(ds_send_reqdata,"workdd" ,"string", workdd);
  1160. var oParam = {};
  1161. oParam.id = "TRMMO00218";
  1162. oParam.service = "prcpmngtapp.OpMngt";
  1163. oParam.method = "reqGetOPDrgInfo";
  1164. oParam.inds = "req=ds_send_reqdata";
  1165. oParam.outds = "ds_main_drginfo=drginfo";
  1166. oParam.async = false;
  1167. oParam.callback = "cf_TRMMO00218";
  1168. tranf_submit(oParam);
  1169. if (arErrorCode.pop("TRMMO00218") > -1) {
  1170. dsf_makeValue(ds_main_oprsrvinfo,"drgyn","string", ds_main_drginfo.getColumn(0,"drgyn"));
  1171. dsf_makeValue(ds_main_oprsrvinfo,"drgno","string", ds_main_drginfo.getColumn(0,"drgno"));
  1172. dsf_makeValue(ds_main_oprsrvinfo,"drgnm","string", ds_main_drginfo.getColumn(0,"drgnm"));
  1173. var drgyn = ds_main_oprsrvinfo.getColumn(0,"drgyn");
  1174. if (!utlf_isNull(drgyn) && drgyn == "A"){
  1175. btn_drgmod.enable = true;
  1176. } else {
  1177. btn_drgmod.enable = false;
  1178. }
  1179. }
  1180. }
  1181. }
  1182. /***************************************************************************************************
  1183. * Function : cf_TRMMO00215
  1184. * Description : TRMMO00215 콜백함수
  1185. * Argument :
  1186. * return type :
  1187. * Creator :
  1188. ***************************************************************************************************/
  1189. function cf_TRMMO00215(sSvcId, nErrorCode, sErrorMsg) {
  1190. arErrorCode.push(sSvcId, nErrorCode);
  1191. }
  1192. /***************************************************************************************************
  1193. * Function : cf_TRMMO00218
  1194. * Description : TRMMO00218 콜백함수
  1195. * Argument :
  1196. * return type :
  1197. * Creator :
  1198. ***************************************************************************************************/
  1199. function cf_TRMMO00218(sSvcId, nErrorCode, sErrorMsg) {
  1200. arErrorCode.push(sSvcId, nErrorCode);
  1201. }
  1202. /***************************************************************************************************
  1203. * Function : fGetCalendar
  1204. * Description : 병원 휴일 select
  1205. * Argument : basedd : 기준일자
  1206. * return type :
  1207. * Creator :
  1208. ***************************************************************************************************/
  1209. function fGetCalendar(basedd){
  1210. basedd = String(basedd);
  1211. var preyear = new Date(basedd.substr(0, 4) -1, basedd.substr(4, 6), basedd.substr(6, 8));
  1212. dsf_makeValue(ds_send_reqdata,"basedd","string",preyear.getDateFormat().substr(0, 4)+ "▦" +basedd.substr(0, 4));
  1213. var oParam = {};
  1214. oParam.id = "TRMMO00212";
  1215. oParam.service = "prcpmngtapp.OpMngt";
  1216. oParam.method = "reqGetPrcpCalendar";
  1217. oParam.inds = "req=ds_send_reqdata";
  1218. oParam.outds = "ds_main_calendar=calendar";
  1219. oParam.async = false;
  1220. oParam.callback = "";
  1221. tranf_submit(oParam);
  1222. }
  1223. /***************************************************************************************************
  1224. * Function : fValidOpFlagCD
  1225. * Description : 수술구분 유효성 체크, 당일인 경우 정규 설정은 불가함
  1226. * Argument :
  1227. * return type :
  1228. * Creator :
  1229. ***************************************************************************************************/
  1230. function fValidOpFlagCD(){
  1231. var chkopcnfmtm = ds_init_chkopcnfmtm.getColumn(0,"hardcd");
  1232. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1233. var MyTime = utlf_getCurrentTime();
  1234. var Mydate = utlf_getCurrentDate();
  1235. if(ipt_opschedd.value == Mydate){ //현재일자와 동일한 경우
  1236. if(opflagcd == 1 || opflagcd == 3){ //정규(1), 추가(3)인 경우
  1237. sysf_messageBox("당일 수술마취의뢰는 응급만", "I006");
  1238. ds_main_oprsrvinfo.setColumn(0,"opflagcd", "2"); // 응급 설정
  1239. // 2010.05.24 kskim
  1240. ds_main_oprsrvinfo.setColumn(0,"opusetm", "");
  1241. ds_main_oprsrvinfo.setColumn(0,"oproomcd", "");
  1242. }
  1243. }
  1244. if(opflagcd == 2 && ipt_opschedd.value != "") { //응급인 경우
  1245. if( ipt_opschedd.value != Mydate && MyTime <= chkopcnfmtm ) { // 2008.09.10 수술하루전 일괄확정시간 이전일 경우만 check 하도록 조건 추가
  1246. sysf_messageBox("응급은 당일 수술마취만", "I006");
  1247. ds_main_oprsrvinfo.setColumn(0,"opflagcd", "");
  1248. }
  1249. }
  1250. }
  1251. /***************************************************************************************************
  1252. * Function : fCheckCnstOpFlag
  1253. * Description : 협진의뢰 시 수술구분정보 체크(협진의 경우 당일에도 추가 가능)
  1254. * Argument :
  1255. * return type :
  1256. * Creator :
  1257. ***************************************************************************************************/
  1258. function fCheckCnstOpFlag(){
  1259. var cnstopflag = ds_main_oprsrvinfo.getColumn(0,"cnstopflag");
  1260. if( cnstopflag == "Y" ){
  1261. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1262. if( opflagcd == 2 || opflagcd == 3 ){
  1263. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , frmf_getParameter("SPMMO11100_rtn_param_oproomcd"));
  1264. ds_main_oprsrvinfo.setColumn(0,"opusetm" , frmf_getParameter("SPMMO11100_rtn_param_opusetm"));
  1265. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd" , frmf_getParameter("SPMMO11100_rtn_param_opfromtmcd"));
  1266. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , frmf_getParameter("SPMMO11100_rtn_param_opendtmcd"));
  1267. }
  1268. }
  1269. }
  1270. /***************************************************************************************************
  1271. * Function : fClkBoolCnstOpFlag
  1272. * Description : 협진의뢰 여부 bool 클릭시
  1273. * Argument :
  1274. * return type :
  1275. * Creator :
  1276. ***************************************************************************************************/
  1277. function fClkBoolCnstOpFlag(){
  1278. var cnstopflag = ds_main_oprsrvinfo.getColumn(0,"cnstopflag");
  1279. if(cnstopflag == "Y"){ //협진의뢰여부가 선택된 경우
  1280. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  1281. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1282. var oprsrvno = ds_main_oprsrvinfo.getColumn(0,"oprsrvno");
  1283. var ophistno = ds_main_oprsrvinfo.getColumn(0,"ophistno");
  1284. var perfdeptcd = ds_main_oprsrvinfo.getColumn(0,"perfdeptcd");
  1285. var perfdrid = ds_main_oprsrvinfo.getColumn(0,"perfdrid");
  1286. //초기화
  1287. frmf_clearParameter("SPMMO11100_rtn_param_opschedd");
  1288. frmf_clearParameter("SPMMO11100_rtn_param_oprsrvno");
  1289. frmf_clearParameter("SPMMO11100_rtn_param_opfromtmcd");
  1290. frmf_clearParameter("SPMMO11100_rtn_param_opendtmcd");
  1291. frmf_clearParameter("SPMMO11100_rtn_param_opusetm");
  1292. frmf_clearParameter("SPMMO11100_rtn_param_oproomcd");
  1293. frmf_clearParameter("SPMMO11100_rtn_param_cnstopflag");
  1294. var param = pid + "▦" + opschedd + "▦" + "cnst" + "▦" + oprsrvno + "▦" + ophistno + "▦" + perfdeptcd + "▦" + perfdrid + "▦" + cnstopflag ;
  1295. frmf_setParameter("SPMMO11100_param", param);
  1296. // modal("SPMMO11100");
  1297. frmf_modal("SPMMO11100", "SPMMO11100", "", "", "", "", "", "", "", "", "", "", "M");
  1298. var popschedd = frmf_getParameter("SPMMO11100_rtn_param_opschedd"); //수술예정일자
  1299. var poprsrvno = frmf_getParameter("SPMMO11100_rtn_param_oprsrvno"); //수술예약번호
  1300. var popfromtmcd = frmf_getParameter("SPMMO11100_rtn_param_opfromtmcd"); //수술예약번호
  1301. var popendtmcd = frmf_getParameter("SPMMO11100_rtn_param_opendtmcd"); //수술예약번호
  1302. var popusetm = frmf_getParameter("SPMMO11100_rtn_param_opusetm"); //수술예약번호
  1303. var poproomcd = frmf_getParameter("SPMMO11100_rtn_param_oproomcd"); //수술예약번호
  1304. var cnstopflag = frmf_getParameter("SPMMO11100_rtn_param_cnstopflag"); //협진여부
  1305. if(!utlf_isNull(poprsrvno) && poprsrvno.length > 1){
  1306. // model.resetInstanceNode("/root/main/diaglist");
  1307. ds_main_diaglist.clearData();
  1308. ds_main_oprsrvinfo.setColumn(0,"opschedd" , popschedd);
  1309. ds_main_oprsrvinfo.setColumn(0,"mainoprsrvno" , poprsrvno);
  1310. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd" , popfromtmcd);
  1311. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , popendtmcd);
  1312. ds_main_oprsrvinfo.setColumn(0,"opusetm" , popusetm);
  1313. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , poproomcd);
  1314. ds_main_oprsrvinfo.setColumn(0,"status" , "i");
  1315. ds_main_oprsrvinfo.setColumn(0,"oprsrvno" , "");
  1316. // var cnts = getNodesetCount("/root/main/diaglist/diaglist");
  1317. // if (cnts > 1 ) {
  1318. // model.removeNodeset("/root/main/diaglist");
  1319. // }
  1320. ds_main_diaglist.addRow();
  1321. }else{
  1322. //부수술을 먼저 입력할 수 있도록 주석처리. 09.02.04
  1323. ds_main_oprsrvinfo.setColumn(0,"cnstopflag" , cnstopflag);
  1324. }
  1325. }else if(cnstopflag == "N"){ //협진의뢰여부가 취소된 경우
  1326. var mainoprsrvno = ds_main_oprsrvinfo.getColumn(0,"oprsrvno");
  1327. ds_main_oprsrvinfo.setColumn(0,"mainoprsrvno", mainoprsrvno);
  1328. ds_main_oprsrvinfo.setColumn(0,"opschedd", "");
  1329. ds_main_oprsrvinfo.setColumn(0,"oproomcd", "");
  1330. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd", "");
  1331. ds_main_oprsrvinfo.setColumn(0,"opendtmcd", "");
  1332. ds_main_oprsrvinfo.setColumn(0,"opusetm", "");
  1333. }
  1334. }
  1335. /***************************************************************************************************
  1336. * Function : fClkBtnCnstPastHist
  1337. * Description : 과거의뢰내역 버튼 클릭
  1338. * Argument :
  1339. * return type :
  1340. * Creator :
  1341. ***************************************************************************************************/
  1342. function fClkBtnCnstPastHist(){
  1343. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  1344. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1345. var oprsrvno = ds_main_oprsrvinfo.getColumn(0,"oprsrvno");
  1346. var ophistno = ds_main_oprsrvinfo.getColumn(0,"ophistno");
  1347. var param = pid + "▦" + opschedd + "▦" + "past" + "▦" + oprsrvno + "▦" + ophistno;
  1348. frmf_setParameter("SPMMO11100_param", param);
  1349. // modal("SPMMO11100");
  1350. frmf_modal("SPMMO11100", "SPMMO11100", "", "", "", "", "", "", "", "", "", "", "M");
  1351. }
  1352. /***************************************************************************************************
  1353. * Function : foppatflaginfo
  1354. * Description : 퇴원예고가 된 환자에 한해 외래 수술/마취 의뢰 가능
  1355. * Argument :
  1356. * return type :
  1357. * Creator :
  1358. ***************************************************************************************************/
  1359. function foppatflaginfo() {
  1360. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  1361. var oppatflagcd = ds_main_oprsrvinfo.getColumn(0,"oppatflagcd");
  1362. var indd = ds_paminfo.getColumn(0,"indd");
  1363. // 일일수술실일 경우에만 수술전 검사 여부가 보이도록 함 2012.05.22 KJS
  1364. if (oppatflagcd == "D") {
  1365. caption60.visible = true;
  1366. rdo_dsclabflag.visible = true;
  1367. rdo_dsclabflag.enable = true;
  1368. } else {
  1369. caption60.visible = false;
  1370. rdo_dsclabflag.visible = false;
  1371. rdo_dsclabflag.enable = false;
  1372. ds_main_oprsrvinfo.setColumn(0,"dsclabflag", "");
  1373. }
  1374. if(!utlf_isNull(pid) && oppatflagcd == "O" && !utlf_isNull(indd)){
  1375. ds_send_reqdata.clear();
  1376. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid); //등록번호
  1377. dsf_makeValue(ds_send_reqdata,"indd","string", indd); //입원일
  1378. var oParam = {};
  1379. oParam.id = "TRMMO00211";
  1380. oParam.service = "prcpmngtapp.OpMngt";
  1381. oParam.method = "reqGetPatInRgst";
  1382. oParam.inds = "req=ds_send_reqdata";
  1383. oParam.outds = "ds_main_rgstinfo=rgstinfo";
  1384. oParam.async = false;
  1385. oParam.callback = "cf_TRMMO00211";
  1386. tranf_submit(oParam);
  1387. if(arErrorCode.pop("TRMMO00211") > -1) {
  1388. var rgstyn = ds_main_rgstinfo.getColumn(0,"ret");
  1389. if(rgstyn == "A") {
  1390. sysf_messageBox("재원중인 환자는 외래수술 의뢰가 불가합니다." + "\n"+"단, 퇴원예고 후에는 외래수술 의뢰가 가능합니다. 퇴원예고 여부를 확인하시기 바랍니다.", "I");
  1391. ds_main_oprsrvinfo.setColumn(0,"oppatflagcd", "");
  1392. return false;
  1393. }else{
  1394. return true;
  1395. }
  1396. }
  1397. }
  1398. }
  1399. /***************************************************************************************************
  1400. * Function : cf_TRMMO00211
  1401. * Description : TRMMO00211 콜백함수
  1402. * Argument :
  1403. * return type :
  1404. * Creator :
  1405. ***************************************************************************************************/
  1406. function cf_TRMMO00211(sSvcId, nErrorCode, sErrorMsg) {
  1407. arErrorCode.push(sSvcId, nErrorCode);
  1408. }
  1409. /***************************************************************************************************
  1410. * Function : foppatflaginfo
  1411. * Description : 시간설정 버튼 클릭, 수술구분 정규 -> 수술예약시간 설정 팝업 open
  1412. * : 응급, 추가 -> 희망시간 입력 팝업 open
  1413. * Argument :
  1414. * return type :
  1415. * Creator :
  1416. ***************************************************************************************************/
  1417. function fClkBtnSetTime(){
  1418. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1419. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1420. var hopetmflag = ds_main_oprsrvinfo.getColumn(0,"hopetmflag");
  1421. if(utlf_isNull(opschedd)){
  1422. sysf_messageBox("수술예정일자를", "C001");
  1423. return;
  1424. }
  1425. if(opflagcd == 1){ //정규
  1426. fOpenOpScheTime(); //수술예약시간 설정 팝업 open
  1427. }else if(opflagcd == 2 || opflagcd == 3){ //응급, 추가
  1428. group2.visible = true;
  1429. btn_new.enable = false;
  1430. btn_rsrvcncl.enable = false;
  1431. btn_rsrvcncl.enable = false;
  1432. btn_tempsave.enable = false;
  1433. if(utlf_isNull(hopetmflag)){ //희망일자 구분이 선택된 경우
  1434. group2.cmb_hopetmflag.index = 0;
  1435. group2.ipt_hopehour.enable = false;
  1436. group2.cmb_hopemin.enable = false;
  1437. group2.cmb_hopetmflag.setFocus();
  1438. ds_main_hopebox.setColumn(0,"hopehour", "00");
  1439. ds_main_hopebox.setColumn(0,"hopemin" , "00");
  1440. // 요청번호; 845
  1441. // 요청내용: 수술의뢰시 필요한 기준자료 추가 등록
  1442. // 세부내용: 수술체위, 수술창상, 수술위치, 마취방법
  1443. // 수정날자 2010.05.24
  1444. // 수정자 : kskim
  1445. var opusetm = ds_main_oprsrvinfo.getColumn(0,"opusetm");
  1446. var usehour = opusetm.substr(0, 2);
  1447. var usemin = opusetm.substr(2, 2);
  1448. ds_main_hopebox.setColumn(0,"usehour" , usehour);
  1449. ds_main_hopebox.setColumn(0,"usemin" , usemin);
  1450. } else {
  1451. if(hopetmflag == 1 || hopetmflag == 2 || hopetmflag == 3){ //1:오전, 2:오후, 3:상관없음, 시간설정 disabled
  1452. group2.ipt_hopehour.enable = false;
  1453. group2.cmb_hopemin.enable = false;
  1454. } else if(hopetmflag == 4){ //4:특정시간, 시간설정 enabled
  1455. group2.ipt_hopehour.enable = true;
  1456. group2.cmb_hopemin.enable = true;
  1457. var opfromtmcd = ds_main_oprsrvinfo.getColumn(0,"opfromtmcd");
  1458. var opusetm = ds_main_oprsrvinfo.getColumn(0,"opusetm");
  1459. var hopehour = opfromtmcd.substr(0, 2);
  1460. var hopemin = opfromtmcd.substr(4, 2);
  1461. var usehour = opusetm.substr(0, 2);
  1462. var usemin = opusetm.substr(2, 2);
  1463. ds_main_hopebox.setColumn(0,"hopehour", hopehour);
  1464. ds_main_hopebox.setColumn(0,"hopemin" , hopemin);
  1465. ds_main_hopebox.setColumn(0,"usehour" , usehour);
  1466. ds_main_hopebox.setColumn(0,"usemin" , usemin);
  1467. }
  1468. }
  1469. } else {
  1470. sysf_messageBox("수술구분이 먼저 선택되어야 합니다.", "I");
  1471. }
  1472. }
  1473. /***************************************************************************************************
  1474. * Function : fOpenOpScheTime
  1475. * Description : 수술예약시간 설정
  1476. * Argument :
  1477. * return type :
  1478. * Creator :
  1479. ***************************************************************************************************/
  1480. function fOpenOpScheTime(){
  1481. var param = ds_main_oprsrvinfo.getColumn(0,"status") + "▦" +
  1482. ds_main_oprsrvinfo.getColumn(0,"oproomcd") + "▦" +
  1483. ds_main_oprsrvinfo.getColumn(0,"oprsrvno") + "▦" +
  1484. ds_main_oprsrvinfo.getColumn(0,"ophistno") + "▦" +
  1485. ds_main_oprsrvinfo.getColumn(0,"pid") + "▦" +
  1486. ds_main_oprsrvinfo.getColumn(0,"opschedd") + "▦" +
  1487. ds_main_oprsrvinfo.getColumn(0,"perfdeptcd") + "▦" +
  1488. ds_main_oprsrvinfo.getColumn(0,"opfromtmcd") + "▦" +
  1489. ds_main_oprsrvinfo.getColumn(0,"opendtmcd") + "▦" +
  1490. "oprsrv" + "▦" +
  1491. ds_main_oprsrvinfo.getColumn(0,"perfdrid");
  1492. frmf_setParameter("SPMMO08800_param", param);
  1493. // modal("SPMMO08800");
  1494. frmf_modal("SPMMO08800", "SPMMO08800", "", "", "", "", "", "", "", "", "", "", "M");
  1495. var rtnuseyn = frmf_getParameter("SPMMO08800_rtn_useyn");
  1496. if(rtnuseyn == "Y"){
  1497. frmf_setParameter("SPMMO08800_rtn_useyn", "N");
  1498. var rtnparam = frmf_getParameter("SPMMO08800_rtn_param");
  1499. rtnparam = rtnparam.split("▦");
  1500. fReqRegOpTime(); // 정규 수술시간 조회
  1501. // 정규시간을 초과해서 입력하면 응급과 추가만 가능
  1502. if( (rtnparam[1] >= ds_main_scheregtimelist.getColumn(0,"regendtm") + "0000") ||
  1503. (rtnparam[2] > ds_main_scheregtimelist.getColumn(0,"regendtm") + "0000") ){
  1504. sysf_messageBox("정규시간을 초과하였습니다. 응급과 추가만", "I006");
  1505. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , "");
  1506. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd", "");
  1507. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , "");
  1508. ds_main_oprsrvinfo.setColumn(0,"opusetm" , "");
  1509. return;
  1510. }
  1511. var difftime = utlf_getTimeInterval(rtnparam[1], rtnparam[2]);
  1512. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , rtnparam[0]);
  1513. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd", rtnparam[1]);
  1514. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , rtnparam[2]);
  1515. ds_main_oprsrvinfo.setColumn(0,"opusetm" , fTransSecToHourMin(difftime));
  1516. }
  1517. }
  1518. /***************************************************************************************************
  1519. * Function : fOpenDiagInfo
  1520. * Description : 진단 팝업
  1521. * Argument :
  1522. * return type :
  1523. * Creator :
  1524. ***************************************************************************************************/
  1525. function fOpenDiagInfo() {
  1526. var xpt = this.position.left + 50;
  1527. var ypt = this.position.top + 80;
  1528. var mon = sysf_getCurrentMonitorNumber();
  1529. // var coord = getRelativeCoordinate(xpt, ypt);
  1530. // var mon = coord[0];
  1531. // xpt = coord[1];
  1532. // ypt = coord[2];
  1533. var paminfo = ds_paminfo.getColumn(0,"pid") +"▦"+ ds_paminfo.getColumn(0,"orddd");
  1534. frmf_setParameter("SPMMO03100_param", "Y");
  1535. frmf_setParameter("SPMMO03100_patinfo", paminfo); // 상단정보를 올리지 않음으로 파라메터로 값 넘기도록 수정 20100614 by LYJ
  1536. // modal("SPMMO03100", mon,xpt,ypt,"SPMMO03100", "", "", "", false);
  1537. frmf_modal("SPMMO03100","SPMMO03100",null,null,mon,xpt,ypt,null,null,null,null,null,"M"); // 진단 화면 미개발
  1538. var useyn = frmf_getParameter("SPMMO03100_rtn_useyn");
  1539. if(useyn == "Y") {
  1540. var diagparam = frmf_getParameter("SPMMO03100_rtn");
  1541. diagparam = diagparam.split("▩");
  1542. for(var i = 1; i <= diagparam.length-2; i++){
  1543. var tmpstr = diagparam[i];
  1544. tmpstr = tmpstr.split("▦");
  1545. var currow = ds_main_diaglist.rowcount - 1;
  1546. ds_main_diaglist.setColumn(currow,"status" , "i");
  1547. ds_main_diaglist.setColumn(currow,"oprsrvno" , ds_main_oprsrvinfo.getColumn(0,"oprsrvno"));
  1548. ds_main_diaglist.setColumn(currow,"dispdiagcd", tmpstr[1]);
  1549. ds_main_diaglist.setColumn(currow,"diagcd" , tmpstr[9]);
  1550. ds_main_diaglist.setColumn(currow,"diagengnm" , tmpstr[2]);
  1551. ds_main_diaglist.setColumn(currow,"diaghngnm" , tmpstr[3]);
  1552. ds_main_diaglist.addRow();
  1553. }
  1554. }
  1555. }
  1556. /***************************************************************************************************
  1557. * Function : fOpenSearchDiag
  1558. * Description : 진단검색
  1559. * Argument :
  1560. * return type :
  1561. * Creator :
  1562. ***************************************************************************************************/
  1563. function fOpenSearchDiag(){
  1564. var curcol = grd_diaglist.currentcol;
  1565. if(lf_getBindCellName(grd_diaglist,curcol) == "dispdiagcd"){ //진단코드로 검색
  1566. var dispdiagcd = ds_main_diaglist.getColumn(ds_main_diaglist.rowposition,"dispdiagcd");
  1567. frmf_setParameter("SPMMO00800_cond1", 1);
  1568. frmf_setParameter("SPMMO00800_cond2", 1);
  1569. frmf_setParameter("SPMMO00800_cond3", "E");
  1570. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  1571. frmf_setParameter("SPMMO00800_cond5", dispdiagcd);
  1572. }else if(lf_getBindCellName(grd_diaglist,curcol) == "diagengnm"){ //진단영문명 검색
  1573. var diagengnm = ds_main_diaglist.getColumn(ds_main_diaglist.rowposition,"diagengnm");
  1574. frmf_setParameter("SPMMO00800_cond1", 2);
  1575. frmf_setParameter("SPMMO00800_cond2", 4);
  1576. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diagengnm));
  1577. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  1578. frmf_setParameter("SPMMO00800_cond5", diagengnm);
  1579. }else if(lf_getBindCellName(grd_diaglist,curcol) == "diaghngnm"){ //진단한글명 검색
  1580. var diaghngnm = ds_main_diaglist.getColumn(ds_main_diaglist.rowposition,"diaghngnm");
  1581. frmf_setParameter("SPMMO00800_cond1", 2);
  1582. frmf_setParameter("SPMMO00800_cond2", 4);
  1583. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diaghngnm));
  1584. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  1585. frmf_setParameter("SPMMO00800_cond5", diaghngnm);
  1586. }
  1587. if(frmf_getParameter("SPMMO00800_cond5").length < 2){
  1588. return;
  1589. }
  1590. // modal("SPMMO00800");
  1591. frmf_modal("SPMMO00800", "SPMMO00800", "", "", "", "", "", "", "", "", "", "", "M");
  1592. var useyn = frmf_getParameter("SPMMO00800_rtn_useyn");
  1593. if(useyn == "Y"){
  1594. frmf_setParameter("SPMMO00800_rtn_useyn", "");
  1595. fSetDiagTermCD();
  1596. }else{
  1597. frmf_setParameter("SPMMO00800_rtn_useyn", "");
  1598. var currow = ds_main_diaglist.rowposition;
  1599. ds_main_diaglist.setColumn(currow,"dispdiagcd", "");
  1600. ds_main_diaglist.setColumn(currow,"diagengnm" , "");
  1601. ds_main_diaglist.setColumn(currow,"diaghngnm" , "");
  1602. }
  1603. }
  1604. /***************************************************************************************************
  1605. * Function : fOpenSearchDiag
  1606. * Description : 진단용어코드 설정
  1607. * Argument :
  1608. * return type :
  1609. * Creator :
  1610. ***************************************************************************************************/
  1611. function fSetDiagTermCD(){
  1612. var rtnparam = frmf_getParameter("SPMMO00800_rtn");
  1613. rtnparam = rtnparam.split("▩");
  1614. for(var i = 1; i <= rtnparam.length-2; i++){
  1615. var tmpstr = rtnparam[i];
  1616. tmpstr = tmpstr.split("▦");
  1617. var currow = ds_main_diaglist.rowcount - 1;
  1618. ds_main_diaglist.setColumn(currow,"status" , "i");
  1619. ds_main_diaglist.setColumn(currow,"oprsrvno" , ds_main_oprsrvinfo.getColumn(0,"oprsrvno"));
  1620. ds_main_diaglist.setColumn(currow,"dispdiagcd", tmpstr[1]);
  1621. ds_main_diaglist.setColumn(currow,"diagcd" , tmpstr[9]);
  1622. ds_main_diaglist.setColumn(currow,"diagengnm" , tmpstr[2]);
  1623. ds_main_diaglist.setColumn(currow,"diaghngnm" , tmpstr[3]);
  1624. ds_main_diaglist.addRow();
  1625. }
  1626. }
  1627. /***************************************************************************************************
  1628. * Function : fDelOpPrevDiag
  1629. * Description : 수술예약정보 수술전 진단 삭제
  1630. * Argument :
  1631. * return type :
  1632. * Creator :
  1633. ***************************************************************************************************/
  1634. function fDelOpPrevDiag(){
  1635. var status = ds_main_diaglist.getColumn(ds_main_diaglist.rowposition,"status");
  1636. if(status == "i"){ //신규일 경우
  1637. ds_main_diaglist.deleteRow(ds_main_diaglist.rowposition);
  1638. }else{
  1639. ds_main_diaglist.setColumn(ds_main_diaglist.rowposition,"status","d");
  1640. }
  1641. }
  1642. /***************************************************************************************************
  1643. * Function : fOpenCcrtSearch
  1644. * Description : CaseCart조회 및 value설정
  1645. * Argument :
  1646. * return type :
  1647. * Creator :
  1648. ***************************************************************************************************/
  1649. function fOpenCcrtSearch(){
  1650. var param = ds_main_oprsrvinfo.getColumn(0,"opschedd") + "▦" +
  1651. ds_main_oprsrvinfo.getColumn(0,"perfdeptcd") + "▦" +
  1652. ds_main_oprsrvinfo.getColumn(0,"perfdrid") + "▦" +
  1653. ds_main_oprsrvinfo.getColumn(0,"opcd") + "▦" +
  1654. ds_main_oprsrvinfo.getColumn(0,"opnm") + "▦" +
  1655. "perf"; //query구분
  1656. frmf_setParameter("SPMMO11000_param", param);
  1657. // modal("SPMMO11000");
  1658. frmf_modal("SPMMO11000", "SPMMO11000", "", "", "", "", "", "", "", "", "", "", "M");
  1659. var useyn = frmf_getParameter("SPMMO11000_rtn_useyn");
  1660. if(useyn == "Y"){
  1661. var rtnparam = frmf_getParameter("SPMMO11000_rtn_param");
  1662. rtnparam = rtnparam.split("▦");
  1663. ds_main_oprsrvinfo.setColumn(0,"ccrtno" , rtnparam[0]);
  1664. ds_main_oprsrvinfo.setColumn(0,"ccrtstat", 1);
  1665. ds_main_oprsrvinfo.setColumn(0,"opcd" , rtnparam[1]);
  1666. ds_main_oprsrvinfo.setColumn(0,"opnm" , rtnparam[2]);
  1667. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1668. var cnstopflag = ds_main_oprsrvinfo.getColumn(0,"cnstopflag"); // 협진수술여부 체크 //2010.06.17 kskim
  1669. // 응급:2, 추가:3 일 경우에만 수술카트에 등록된 소요시간 정보 사용
  1670. if(opflagcd == 2 || opflagcd == 3){
  1671. // 협진수술여부 조건 추가 체크(협진의뢰 시 opusetm, oproomcd 정보는 카드마스터와 연동 안됨) //2010.06.17 kskim
  1672. if( cnstopflag == "N" ){
  1673. ds_main_hopebox.setColumn(0,"usehour" , rtnparam[4]); // 소요시간(시)
  1674. ds_main_hopebox.setColumn(0,"usemin" , rtnparam[5]); // 소요시간(분)
  1675. var opusetime = rtnparam[4].concat(rtnparam[5]);
  1676. ds_main_oprsrvinfo.setColumn(0,"opusetm" , opusetime); //소요시간(시: 분)
  1677. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , "2222"); //수술방에 임시방 정보 셋팅 2014.10.20 엄영만
  1678. }
  1679. }
  1680. ds_main_oprsrvinfo.setColumn(0,"opposturecd" , rtnparam[6]); // 수술체위
  1681. ds_main_oprsrvinfo.setColumn(0,"opdirecflag" , rtnparam[7]); // 수술위치
  1682. ds_main_oprsrvinfo.setColumn(0,"anstmthdcd" , rtnparam[8]); // 마취방법
  1683. ds_main_oprsrvinfo.setColumn(0,"opcntmdg" , rtnparam[9]); // 수술창상
  1684. frmf_setParameter("SPMMO11000_rtn_useyn", "N");
  1685. }
  1686. }
  1687. /***************************************************************************************************
  1688. * Function : fOpenSubCcrtSearch
  1689. * Description : CaseCart조회 및 value설정
  1690. * Argument :
  1691. * return type :
  1692. * Creator :
  1693. ***************************************************************************************************/
  1694. function fOpenSubCcrtSearch(){
  1695. var param = ds_main_oprsrvinfo.getColumn(0,"opschedd") + "▦" +
  1696. ds_main_oprsrvinfo.getColumn(0,"perfdeptcd") + "▦" +
  1697. ds_main_oprsrvinfo.getColumn(0,"perfdrid") + "▦" +
  1698. lf_getDsValue(ds_main_oprsrvinfo,0,"subopcd")+ "▦" +
  1699. lf_getDsValue(ds_main_oprsrvinfo,0,"subopnm")+ "▦" +
  1700. "perf";
  1701. frmf_setParameter("SPMMO11000_param", param);
  1702. // modal("SPMMO11000");
  1703. frmf_modal("SPMMO11000", "SPMMO11000", "", "", "", "", "", "", "", "", "", "", "M");
  1704. var useyn = frmf_getParameter("SPMMO11000_rtn_useyn");
  1705. if(useyn == "Y"){
  1706. var rtnparam = frmf_getParameter("SPMMO11000_rtn_param");
  1707. rtnparam = rtnparam.split("▦");
  1708. ds_main_oprsrvinfo.setColumn(0,"subopcd" , rtnparam[1]);
  1709. ds_main_oprsrvinfo.setColumn(0,"subopnm" , rtnparam[2]);
  1710. frmf_setParameter("SPMMO11000_rtn_useyn", "N");
  1711. }
  1712. }
  1713. /***************************************************************************************************
  1714. * Function : fClkBtnInReqWnd
  1715. * Description : 입원의뢰화면 open
  1716. * Argument :
  1717. * return type :
  1718. * Creator :
  1719. ***************************************************************************************************/
  1720. function fClkBtnInReqWnd(){
  1721. var insukind = ds_main_oprsrvinfo.getColumn(0,"insukind");
  1722. var suppkind = ds_main_oprsrvinfo.getColumn(0,"suppkind");
  1723. if(utlf_isNull(insukind)){
  1724. sysf_messageBox("입원의뢰서를 등록하려면 현재 환자를 진료대상자 또는 스케줄현황 화면에서", "C002");
  1725. return;
  1726. }
  1727. if(utlf_isNull(suppkind)){
  1728. sysf_messageBox("입원의뢰서를 등록하려면 현재 환자를 진료대상자 또는 스케줄현황 화면에서", "C002");
  1729. return;
  1730. }
  1731. // modal("SPMMO00100");
  1732. frmf_modal("SPMMO00100", "SPMMO00100", "", "", "", "", "", "", "", "", "", "", "M");
  1733. }
  1734. /***************************************************************************************************
  1735. * Function : fClkBtnNew
  1736. * Description : 신규버튼 클릭
  1737. * Argument :
  1738. * return type :
  1739. * Creator :
  1740. ***************************************************************************************************/
  1741. function fClkBtnNew(){
  1742. ds_main_oprsrvinfo.clearData();
  1743. ds_main_diaglist.clearData();
  1744. fInitPamInfo("Y");
  1745. ds_main_oprsrvinfo.setColumn(0,"reopflag" , "N"); //수술공개
  1746. ds_main_oprsrvinfo.setColumn(0,"opopenflag" , "Y"); //금일재수술
  1747. ds_main_oprsrvinfo.setColumn(0,"anstreqflag", "N"); //마취의뢰만
  1748. ds_main_oprsrvinfo.setColumn(0,"cnstopflag" , "N"); //협진의뢰여부
  1749. ds_main_diaglist.addRow();
  1750. if(rdo_opflag.disabled) { // 무통
  1751. fClkUnpainFlag("N");
  1752. }
  1753. fGetReqrcntctel(); //연락처정보 셋팅 추가 요청 (2010.03.19 JJE)
  1754. }
  1755. /***************************************************************************************************
  1756. * Function : fSaveOpRsrvInfo
  1757. * Description : 수술예약정보 저장
  1758. * Argument : opstatcd : 저장 구분 (00 : 임시저장 , 10 : 인증저장)
  1759. * : tmpstat : 가확정처리를위한tmpflag
  1760. * return type :
  1761. * Creator :
  1762. ***************************************************************************************************/
  1763. function fSaveOpRsrvInfo(opstatcd,tmpstat){
  1764. var status = ds_main_oprsrvinfo.getColumn(0,"status");
  1765. var painlessflag = ds_main_oprsrvinfo.getColumn(0,"painlessflag");
  1766. var cmpopstatcd = ds_main_oprsrvinfo.getColumn(0,"opstatcd");
  1767. var chkopcnfmtm = ds_init_chkopcnfmtm.getColumn(0,"hardcd");
  1768. var chkoffday = ds_init_chkoffday.getColumn(0,"hardcd");
  1769. var MyTime = utlf_getCurrentTime();
  1770. var realtime = MyTime.substr(0,2);
  1771. var reqrsncd = ds_main_oprsrvinfo.getColumn(0,"reqrsncd");
  1772. if(painlessflag != "Y") { // 무통
  1773. if(status == "u" && cmpopstatcd >= 20){ // 2008.10.31 확정이후 단계의 수술은 모두 변경 불가 처리
  1774. sysf_messageBox("수술확정이 된 예약정보는 수술예약정보 변경", "E001");
  1775. return;
  1776. } else if(status == "u" && cmpopstatcd < 20 && (reqrsncd == "314" || reqrsncd == "315")) { // [요청번호: 847] 취소변경 사유(수술일자 변경)일 경우 블로킹 by 박영우 2010.07.09
  1777. sysf_messageBox("수술일 변경요청된 스케줄입니다. 마취과 승인 이전 의뢰취소 또는 취소변경은 불가합니다.", "E");
  1778. return;
  1779. } else {
  1780. if(fChkSaveOpRsrvValid() == true){ //데이터 무결성 검사시 이상이 없는 경우 저장 로직을 수행
  1781. if(status == "u"){ //수정인 경우
  1782. ds_main_oprsrvinfo.setColumn(0,"status", ""); //수정내용 검사시 status는 제외하기 위해 값을 삭제
  1783. if(ds_main_oprsrvinfo.getColumn(0,"opstatcd") == "10") { // 의뢰상태일 경우만
  1784. if(lf_compareNodeVal(ds_main_oprsrvinfo, ds_temp_oprsrvinfo) == false && fChkSaveOpPrevDiag() == false){ //변경된 내용이 있는 경우
  1785. sysf_messageBox("변경된 내용이", "I004");
  1786. return;
  1787. }else{
  1788. ds_main_oprsrvinfo.setColumn(0,"status", "u"); //수정 flag 원복
  1789. }
  1790. }else{ // 임시(00) -> 인증 (10)
  1791. ds_main_oprsrvinfo.setColumn(0,"status", "u"); //수정 flag 원복
  1792. }
  1793. }
  1794. if(status != "d"){
  1795. // 2008.09.10 수술 하루전 일괄확정(12:00) 이후에는 정규로는 의뢰불가
  1796. // 추가, 응급(당일)로만 의뢰가능함
  1797. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1798. if( opflagcd == "1") {
  1799. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1800. if (utlf_getDateInterval(utlf_getCurrentDate(), opschedd) == 1) {
  1801. if( utlf_getCurrentTime() > chkopcnfmtm ) {
  1802. sysf_messageBox("정규수술 일괄확정되었습니다. 이후에는 추가, 응급으로만 의뢰", "I006");
  1803. return;
  1804. }
  1805. }
  1806. }
  1807. if (chkoffday == "Y") {
  1808. // 2008.10.13 월요일 의뢰는 금요일 오전 12시까지만 가능
  1809. var opsdd = ds_main_oprsrvinfo.getColumn(0,"opschedd"); // 의뢰요일
  1810. var someday = new Date(opsdd.substr(0, 4), opsdd.substr(4, 6), opsdd.substr(6, 8));
  1811. someday = someday.getAddDate(-1, "M");
  1812. var dkind = someday.getDay();
  1813. if( utlf_getCurrentWeek() == "5") { // 금 5
  1814. if(dkind == "1") { // 의뢰요일이 월요일이면
  1815. if( opflagcd == "1" && utlf_getCurrentTime() > chkopcnfmtm ) {
  1816. sysf_messageBox("정규수술 일괄확정되었습니다. 이후에는 추가, 응급으로만 의뢰", "I006");
  1817. return;
  1818. }
  1819. }
  1820. }
  1821. if( utlf_getCurrentWeek() == "6") { // 토 6
  1822. if(opflagcd == "1" && dkind == "1") { // 의뢰요일이 월요일이면
  1823. sysf_messageBox("정규수술 일괄확정되었습니다. 이후에는 추가, 응급으로만 의뢰", "I006");
  1824. return;
  1825. }
  1826. }
  1827. // 2008.10.27 휴일인 경우 blocking 처리
  1828. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1829. if(opflagcd == "1") { // 정규일 경우만 check 하도록
  1830. var opexdd = new Date(opsdd.substr(0, 4), opsdd.substr(4, 6) -1, opsdd.substr(6, 8));
  1831. opexdd = opexdd.getAddDate(-1).getDateFormat();
  1832. var nodeList = ds_main_calendar.filter("basedd == '"+opexdd+"'");
  1833. if( nodeList.rowcount > 0) {
  1834. var dutflag = nodeList.getColumn(0,"dutflag"); // 휴일여부
  1835. if(dutflag == "8") {
  1836. var weekList = ds_main_calendar.filter("basedd < '"+opexdd+"' and dutflag == '0'");
  1837. var possdd = weekList.getColumn(weekList.rowcount-1,"basedd");
  1838. if( opflagcd == "1" && possdd == utlf_getCurrentDate() && utlf_getCurrentTime() > chkopcnfmtm) {
  1839. sysf_messageBox("정규수술 일괄확정되었습니다. 이후에는 추가, 응급으로만 의뢰", "I006");
  1840. return;
  1841. }
  1842. }
  1843. }
  1844. }
  1845. } else {
  1846. var opcnfmdd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1847. var dutflag = ds_main_calendar.getColumn(ds_main_calendar.findRow("basedd",opcnfmdd),"dutflag");
  1848. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  1849. if ((dutflag == "4" || dutflag =="8") && opflagcd == "1") {
  1850. sysf_messageBox("수술예정일자가 휴일 또는 토요일인 경우는 정규수술로 의뢰가 불가능합니다", "I");
  1851. return;
  1852. }
  1853. }
  1854. // 2008.09.23 협진의 경우 주과와 다른 방 입력시 alert
  1855. // 09.02.04 주수술번호를 물고 있는 협진의 경우만 체크하도록 조건 추가
  1856. var cnstopflag = ds_main_oprsrvinfo.getColumn(0,"cnstopflag");
  1857. var mainoprsrvno = ds_main_oprsrvinfo.getColumn(0,"mainoprsrvno");
  1858. var rtnRoomcd = frmf_getParameter("SPMMO11100_rtn_param_oproomcd");
  1859. if( cnstopflag == "Y" && !utlf_isNull(rtnRoomcd) && !utlf_isNull(mainoprsrvno)) {
  1860. var roomcd = ds_main_oprsrvinfo.getColumn(0,"oproomcd");
  1861. if(rtnRoomcd != roomcd) {
  1862. sysf_messageBox("수술협진시 다른방으로 의뢰", "E001");
  1863. return;
  1864. }
  1865. }
  1866. // 2008.11.19 재원여부 check
  1867. if(!fChkPatInRgst()) return;
  1868. }
  1869. ds_main_oprsrvinfo.setColumn(0,"opstatcd", opstatcd); //의뢰(인증저장)
  1870. dsf_makeValue(ds_main_oprsrvinfo,"tmpstat","string",tmpstat);
  1871. // 데이터셋 바로 넘기면 되므로 의미없음 `
  1872. // var rsrvinfo = ds_main_oprsrvinfo;
  1873. // var diaginfo = ds_main_diaglist;
  1874. // ds_send_savedata.clear();
  1875. // dsf_makeValue(ds_send_savedata,"rsrvinfo","string",dsf_getDsCSV(ds_main_oprsrvinfo));
  1876. // dsf_makeValue(ds_send_savedata,"diaginfo","string",dsf_getDsCSV(ds_main_diaglist));
  1877. //2012/06/26 Start
  1878. // 수술 예방적 항생제 관련
  1879. var dispopcd = ds_main_oprsrvinfo.getColumn(0,"opcd");
  1880. var t_pname = ds_main_oprsrvinfo.getColumn(0,"hngnm");
  1881. var t_opnm = ds_main_oprsrvinfo.getColumn(0,"opnm");
  1882. var irow = ds_main_opschereclist.rowposition;
  1883. if(ds_main_oprsrvinfo.getColumn(0,"sa").substr(2,4) > 17){
  1884. for(var i = 0; i < nodecnt; i++){
  1885. var trgtcd = ds_temp_opcd.getColumn(i,"hardcd");
  1886. if(dispopcd == trgtcd){
  1887. sysf_messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
  1888. "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
  1889. break;
  1890. }
  1891. }
  1892. }
  1893. //2012/06/26 End
  1894. var oParam = {};
  1895. oParam.id = "TXMMO00201";
  1896. oParam.service = "prcpmngtapp.OpMngt";
  1897. oParam.method = "reqExeSaveOpRsrvInfo";
  1898. oParam.inds = "rsrvinfo=ds_main_oprsrvinfo diaginfo=ds_main_diaglist";
  1899. oParam.outds = "ds_main_oprsrvlist=oprsrvlist";
  1900. oParam.async = false;
  1901. oParam.callback = "cf_TXMMO00201";
  1902. tranf_submit(oParam);
  1903. if(arErrorCode.pop("TXMMO00201") > -1){
  1904. if(status != "d"){ //삭제된 경우는 selectSingleNode error발생
  1905. //fDispAprvCnclChng(); //저장 후 조회결과 그리드의 color를 변경처리함-> 그리드 EXPR로 처리
  1906. fClkGrdOpRsrvList(1);
  1907. }
  1908. }
  1909. }
  1910. }
  1911. } else if(painlessflag == "Y") {
  1912. if(status == "u" && cmpopstatcd >= 20){ // 확정이후 단계의 수술은 모두 변경 불가 처리
  1913. sysf_messageBox("수술확정이 된 예약정보는 수술예약정보 변경", "E001");
  1914. return;
  1915. } else if(status == "u" && cmpopstatcd < 20 && (reqrsncd == "314" || reqrsncd == "315")) { // [요청번호: 847] 취소변경 사유(수술일자 변경)일 경우 블로킹 by 박영우 2010.07.09
  1916. sysf_messageBox("수술일 변경요청된 스케줄입니다. 마취과 승인 이전 의뢰취소 또는 취소변경은 불가합니다.", "E");
  1917. return;
  1918. }
  1919. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  1920. var oppatflagcd = ds_main_oprsrvinfo.getColumn(0,"oppatflagcd");
  1921. if(utlf_isNull(opschedd)){
  1922. sysf_messageBox("수술예정일자를 ", "C001");
  1923. ipt_opschedd.setFocus();
  1924. return;
  1925. }
  1926. if(utlf_isNull(oppatflagcd)){
  1927. sysf_messageBox("수술환자구분을", "C001");
  1928. rdo_oppatflag.setFocus();
  1929. return;
  1930. }
  1931. var totrow = ds_main_diaglist.rowcount;
  1932. if(totrow < 2){
  1933. sysf_messageBox("수술전 진단을", "C001");
  1934. grd_diaglist.setFocus();
  1935. return;
  1936. }
  1937. ds_main_oprsrvinfo.setColumn(0,"opstatcd", opstatcd); //의뢰(인증저장)
  1938. dsf_makeValue(ds_main_oprsrvinfo,"tmpstat","string",tmpstat);
  1939. // var rsrvinfo = model.instance1.selectNodes("/root/main/oprsrvinfo/oprsrvinfo");
  1940. // var diaginfo = model.instance1.selectNodes("/root/main/diaglist/diaglist");
  1941. // model.removeNodeset("/root/send/savedata");
  1942. // model.makeValue("/root/send/savedata/rsrvinfo", getNodeListCSV(rsrvinfo));
  1943. // model.makeValue("/root/send/savedata/diaginfo", getNodeListCSV(diaginfo));
  1944. //2012/06/26 Start
  1945. // 수술 예방적 항생제 관련
  1946. var dispopcd = ds_main_oprsrvinfo.getColumn(0,"opcd");
  1947. var t_pname = ds_main_oprsrvinfo.getColumn(0,"hngnm");
  1948. var t_opnm = ds_main_oprsrvinfo.getColumn(0,"opnm");
  1949. var irow = ds_main_opschereclist.rowcount;
  1950. if(ds_main_oprsrvinfo.getColumn(0,"sa").substr(2,4)>17){
  1951. for(var i = 0; i < nodecnt; i++){
  1952. var trgtcd = ds_temp_opcd.getColumn(i,"hardcd");
  1953. if(dispopcd == trgtcd){
  1954. sysf_messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
  1955. "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
  1956. break;
  1957. }
  1958. }
  1959. }
  1960. var oParam = {};
  1961. oParam.id = "TXMMO00201";
  1962. oParam.service = "prcpmngtapp.OpMngt";
  1963. oParam.method = "reqExeSaveOpRsrvInfo";
  1964. oParam.inds = "rsrvinfo=ds_main_oprsrvinfo diaginfo=ds_main_diaglist";
  1965. oParam.outds = "ds_main_oprsrvlist=oprsrvlist";
  1966. oParam.async = false;
  1967. oParam.callback = "cf_TXMMO00201";
  1968. tranf_submit(oParam);
  1969. if(arErrorCode.pop("TXMMO00201") > -1){
  1970. if(status != "d"){ //삭제된 경우는 selectSingleNode error발생
  1971. //fDispAprvCnclChng(); //저장 후 조회결과 그리드의 color를 변경처리함-> 그리드 EXPR로 처리
  1972. fClkGrdOpRsrvList(1);
  1973. }
  1974. }
  1975. }
  1976. }
  1977. /***************************************************************************************************
  1978. * Function : cf_TXMMO00201
  1979. * Description : TXMMO00201 콜백함수
  1980. * Argument :
  1981. * return type :
  1982. * Creator :
  1983. ***************************************************************************************************/
  1984. function cf_TXMMO00201(sSvcId, nErrorCode, sErrorMsg) {
  1985. arErrorCode.push(sSvcId, nErrorCode);
  1986. }
  1987. /***************************************************************************************************
  1988. * Function : fChkSaveOpRsrvValid
  1989. * Description : 수술예약정보 저장시 데이터 무결성 검사 및 진단코드 설정
  1990. * Argument :
  1991. * return type :
  1992. * Creator :
  1993. ***************************************************************************************************/
  1994. function fChkSaveOpRsrvValid(){
  1995. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  1996. var opcd = ds_main_oprsrvinfo.getColumn(0,"opcd");
  1997. var oproomcd = ds_main_oprsrvinfo.getColumn(0,"oproomcd");
  1998. var opfromtmcd = ds_main_oprsrvinfo.getColumn(0,"opfromtmcd");
  1999. var opendtmcd = ds_main_oprsrvinfo.getColumn(0,"opendtmcd");
  2000. var anstreqflag = ds_main_oprsrvinfo.getColumn(0,"anstreqflag");
  2001. var opposturecd = ds_main_oprsrvinfo.getColumn(0,"opposturecd");
  2002. var opdirecflag = ds_main_oprsrvinfo.getColumn(0,"opdirecflag");
  2003. var anstmthdcd = ds_main_oprsrvinfo.getColumn(0,"anstmthdcd");
  2004. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd");
  2005. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  2006. var oppatflagcd = ds_main_oprsrvinfo.getColumn(0,"oppatflagcd");
  2007. var opcntmdg = ds_main_oprsrvinfo.getColumn(0,"opcntmdg");
  2008. var cnstopflag = ds_main_oprsrvinfo.getColumn(0,"cnstopflag"); //2008.08.25 LWS 협진의뢰여부 체크위한 추가
  2009. var hopetmflag = ds_main_oprsrvinfo.getColumn(0,"hopetmflag");
  2010. var cntctel = ds_main_oprsrvinfo.getColumn(0,"cntctel"); //2010.03.19 JJE 작성자 연락처 필수 요청(요청번호:12222)
  2011. var totrow = ds_main_diaglist.rowcount;
  2012. if(utlf_isNull(opschedd)){
  2013. sysf_messageBox("수술예정일자를 ", "C001");
  2014. ipt_opschedd.setFocus();
  2015. return;
  2016. }
  2017. if(utlf_isNull(pid)){
  2018. sysf_messageBox("등록번호를 ", "C001");
  2019. ipt_pid.setFocus();
  2020. return false;
  2021. }
  2022. if(utlf_isNull(oppatflagcd)){
  2023. sysf_messageBox("수술환자구분을", "C001");
  2024. rdo_oppatflag.setFocus();
  2025. return false;
  2026. }
  2027. if(utlf_isNull(opflagcd)) {
  2028. sysf_messageBox("수술구분을", "C001");
  2029. rdo_opflag.setFocus();
  2030. return;
  2031. }
  2032. if(opflagcd == 1){ //정규인 경우, 수술방 입력은 필수(응급, 추가인 경우 수술방 입력 삭제)
  2033. if(cmb_oproomcd.text == "" ||cmb_oproomcd.value == "0000" ||cmb_oproomcd.value == "2222"){
  2034. sysf_messageBox("정규수술은 수술방", "I003");
  2035. return false;
  2036. }
  2037. if(utlf_isNull(opfromtmcd) || utlf_isNull(opendtmcd)){ //정규인 경우에만 수술시간 입력을 검사한다.
  2038. sysf_messageBox("수술시간을", "C001");
  2039. return false;
  2040. }
  2041. if(fCheckValidTime(ds_main_oprsrvinfo) == false) { //입력된 시간이 유효한지 check
  2042. return false;
  2043. }
  2044. }
  2045. if(cnstopflag == "N" && hopetmflag != "4") { //2008.08.25 LWS 협진의뢰시 응급, 추가인경우 수술방정보가 있어도 인증저장 가능하도록
  2046. // 2008.10.13 특정시간 입력의 경우도 제외처리
  2047. if(opflagcd == 2 || opflagcd == 3){ //응급, 추가인 경우
  2048. if(cmb_oproomcd.value != "") {
  2049. if(cmb_oproomcd.value != "0000" && cmb_oproomcd.value != "2222"){
  2050. sysf_messageBox("응급, 추가 수술은 수술방을 선택", "E001");
  2051. return false;
  2052. }
  2053. }
  2054. if(opfromtmcd != "000000" || opendtmcd != "000000") {
  2055. if(!utlf_isNull(opfromtmcd) || !utlf_isNull(opendtmcd)){
  2056. sysf_messageBox("응급, 추가 수술은 수술시간을 입력", "E001");
  2057. return false;
  2058. }
  2059. }
  2060. }
  2061. }
  2062. if(totrow < 2){
  2063. sysf_messageBox("수술전 진단을", "C001");
  2064. grd_diaglist.setFocus();
  2065. return false;
  2066. }
  2067. if(utlf_isNull(opcd)){
  2068. sysf_messageBox("수술코드 및 수술명을", "C001");
  2069. ipt_opcd.setFocus();
  2070. return false;
  2071. }
  2072. if(utlf_isNull(opposturecd)){
  2073. sysf_messageBox("수술체위를", "C001");
  2074. cmb_opposture.setFocus();
  2075. return false;
  2076. }
  2077. if(utlf_isNull(opdirecflag)){
  2078. sysf_messageBox("수술위치(left, right, both)를", "C001");
  2079. cmb_opdirecflag.setFocus();
  2080. return false;
  2081. }
  2082. if(utlf_isNull(anstmthdcd)){
  2083. sysf_messageBox("마취방법을", "C001");
  2084. cmb_anstmthd.setFocus();
  2085. return false;
  2086. }
  2087. if(opcntmdg == 0 || utlf_isNull(opcntmdg)) {
  2088. sysf_messageBox("수술창상을", "C001");
  2089. cmb_opcnfmdg.setFocus();
  2090. return false;
  2091. }
  2092. if( utlf_isNull(cntctel) || utlf_getStringLength(cntctel) < 3 ){
  2093. sysf_messageBox("작성자 연락처는 3자리 이상", "C001");
  2094. input3.setFocus();
  2095. return false;
  2096. }
  2097. return true;
  2098. }
  2099. /***************************************************************************************************
  2100. * Function : fCheckValidTime
  2101. * Description : 입력된 수술시간이 유효한지 check
  2102. * Argument : timePath : 시간정보 가지고 있는 Dataset
  2103. * return type :
  2104. * Creator :
  2105. ***************************************************************************************************/
  2106. function fCheckValidTime(timePath){
  2107. var fromtm = timePath.getColumn(0,"opfromtmcd");
  2108. var endtm = timePath.getColumn(0,"opendtmcd");
  2109. if(fromtm.length != 6) {
  2110. fromtm += "00";
  2111. timePath.setColumn(0,"opfromtmcd", fromtm);
  2112. }
  2113. if(endtm.length != 6) {
  2114. endtm += "00";
  2115. timePath.setColumn(0,"opendtmcd", endtm);
  2116. }
  2117. var node = ds_init_M0014;
  2118. var i, j;
  2119. for(i=0; i< node.rowcount; i++) {
  2120. if(fromtm == node.getColumn(i,"cdid")) {
  2121. break;
  2122. }
  2123. }
  2124. for(j=0; j< node.rowcount; j++) {
  2125. if(endtm == node.getColumn(j,"cdid")) {
  2126. break;
  2127. }
  2128. }
  2129. if(i == node.rowcount) {
  2130. sysf_messageBox("입력된 시간이", "E016");
  2131. ipt_fmtm.setFocus();
  2132. return false;
  2133. }
  2134. if(j == node.rowcount) {
  2135. sysf_messageBox("입력된 시간이", "E016");
  2136. ipt_endtm.setFocus();
  2137. return false;
  2138. }
  2139. return true;
  2140. }
  2141. /***************************************************************************************************
  2142. * Function : fChkSaveOpPrevDiag
  2143. * Description : 수술예약정보 수술전 진단 변경 사항 검사
  2144. * Argument :
  2145. * return type :
  2146. * Creator :
  2147. ***************************************************************************************************/
  2148. function fChkSaveOpPrevDiag(){
  2149. var totrow = ds_main_diaglist.rowcount;
  2150. for(var i = 0; i < totrow; i++){
  2151. var status = ds_main_diaglist.getColumn(i,"status");
  2152. if(status == "i" || status == "d"){
  2153. return true;
  2154. }
  2155. }
  2156. return false;
  2157. }
  2158. /***************************************************************************************************
  2159. * Function : fChkPatInRgst
  2160. * Description : 재원여부 check
  2161. * Argument :
  2162. * return type :
  2163. * Creator :
  2164. ***************************************************************************************************/
  2165. function fChkPatInRgst(){
  2166. var pid = ds_main_oprsrvinfo.getColumn(0,"pid");
  2167. var oppatflagcd = ds_main_oprsrvinfo.getColumn(0,"oppatflagcd");
  2168. if(!utlf_isNull(pid) && oppatflagcd == "D"){
  2169. ds_send_reqdata.clear();
  2170. dsf_makeValue(ds_send_reqdata,"pid","string",pid); //등록번호
  2171. var oParam = {};
  2172. oParam.id = "TRMMO00211";
  2173. oParam.service = "prcpmngtapp.OpMngt";
  2174. oParam.method = "reqGetPatInRgst";
  2175. oParam.inds = "req=ds_send_reqdata";
  2176. oParam.outds = "ds_main_rgstinfo=rgstinfo";
  2177. oParam.async = false;
  2178. oParam.callback = "cf_TRMMO00211";
  2179. tranf_submit(oParam);
  2180. if(arErrorCode.pop("TRMMO00211") > -1) {
  2181. var rgstyn = ds_main_rgstinfo.getColumn(0,"ret");
  2182. if(rgstyn == "Y") {
  2183. sysf_messageBox("재원 중인 환자입니다. DSC수술의뢰", "E001");
  2184. ds_main_oprsrvinfo.getColumn(0,"oppatflagcd", "");
  2185. return false;
  2186. }else{
  2187. return true;
  2188. }
  2189. }
  2190. }
  2191. return true;
  2192. }
  2193. /***************************************************************************************************
  2194. * Function : fClkBtnRsrvCncl
  2195. * Description : 예약취소 버튼 클릭
  2196. * Argument :
  2197. * return type :
  2198. * Creator :
  2199. ***************************************************************************************************/
  2200. function fClkBtnRsrvCncl(){
  2201. var opstatcd = ds_main_oprsrvinfo.getColumn(0,"opstatcd");
  2202. var reqrsncd = ds_main_oprsrvinfo.getColumn(0,"reqrsncd");
  2203. if(opstatcd < 20){
  2204. if(reqrsncd == "314" || reqrsncd == "315") { // [요청번호: 847] 취소변경 사유(수술일자 변경)일 경우 블로킹 by 박영우 2010.07.09
  2205. sysf_messageBox("수술일 변경요청된 스케줄입니다. 마취과 승인 이전 의뢰취소 또는 취소변경은 불가합니다.", "E");
  2206. return;
  2207. } else {
  2208. group1.visible = true;
  2209. btn_new.enable = false;
  2210. btn_rsrvcncl.enable = false;
  2211. btn_tempsave.enable = false;
  2212. group1.cmb_inrsrvcnclresn.setFocus();
  2213. }
  2214. }else{
  2215. sysf_messageBox("확정된 환자는 예약 취소", "E001");
  2216. return;
  2217. }
  2218. }
  2219. /***************************************************************************************************
  2220. * Function : fClkCnfmCncl
  2221. * Description : 취소변경 버튼 클릭
  2222. * Argument :
  2223. * return type :
  2224. * Creator :
  2225. ***************************************************************************************************/
  2226. function fClkCnfmCncl(){
  2227. var rtnval = 6; //승인요청 대기중이 아니더라도 취소변경 flow는 흘러가도록 rtnval값을 예로 설정
  2228. var currow = ds_main_oprsrvlist.rowposition;
  2229. if(currow < 1){
  2230. return;
  2231. }
  2232. var opstatcd = ds_main_oprsrvinfo.getColumn(0,"opstatcd");
  2233. var aprvreqno = ds_main_oprsrvlist.getColumn(currow,"aprvreqno");
  2234. var reqrsncd = ds_main_oprsrvinfo.getColumn(0,"reqrsncd");
  2235. if(opstatcd < 20){
  2236. if(reqrsncd == "314" || reqrsncd == "315") { // [요청번호: 847] 취소변경 사유(수술일자 변경)일 경우 블로킹 by 박영우 2010.07.09
  2237. sysf_messageBox("수술일 변경요청된 스케줄입니다. 마취과 승인 이전 의뢰취소 또는 취소변경은 불가합니다.", "E");
  2238. } else {
  2239. sysf_messageBox("의뢰 중인 수술예약은 취소 요청을", "E001");
  2240. }
  2241. return;
  2242. }
  2243. if(aprvreqno != 0){
  2244. rtnval = sysf_messageBox("승인 요청 대기 중인 수술예약 정보입니다. 확정취소 변경을", "Q003");
  2245. }
  2246. if(rtnval == 6){
  2247. frmf_setParameter("SPMMO05800_param_pid" , ds_main_oprsrvinfo.getColumn(0,"pid"));
  2248. frmf_setParameter("SPMMO05800_param_oprsrvno" , ds_main_oprsrvinfo.getColumn(0,"oprsrvno"));
  2249. frmf_setParameter("SPMMO05800_param_ophistno" , ds_main_oprsrvinfo.getColumn(0,"ophistno"));
  2250. frmf_setParameter("SPMMO05800_param_aprvreqno", ds_main_oprsrvinfo.getColumn(0,"aprvreqno"));
  2251. var opschedd = ds_main_oprsrvinfo.getColumn(0,"opschedd");
  2252. var opfromtmcd = ds_main_oprsrvinfo.getColumn(0,"opfromtmcd");
  2253. var opendtmcd = ds_main_oprsrvinfo.getColumn(0,"opendtmcd");
  2254. var oproomcd = ds_main_oprsrvinfo.getColumn(0,"oproomcd");
  2255. var opcd = ds_main_oprsrvinfo.getColumn(0,"opcd");
  2256. var opnm = ds_main_oprsrvinfo.getColumn(0,"opnm");
  2257. var diagcd = ds_main_oprsrvinfo.getColumn(0,"diagcd");
  2258. var diagnm = ds_main_oprsrvinfo.getColumn(0,"diagnm");
  2259. var perfdeptcd = ds_main_oprsrvinfo.getColumn(0,"perfdeptcd");
  2260. var perfdrid = ds_main_oprsrvinfo.getColumn(0,"perfdrid");
  2261. var opusetm = ds_main_oprsrvinfo.getColumn(0,"opusetm");
  2262. var anstmthd = ds_main_oprsrvinfo.getColumn(0,"anstmthdcd");
  2263. var anstdetlmthdcd = ds_main_oprsrvinfo.getColumn(0,"anstdetlmthdcd");
  2264. var opstatcd = ds_main_oprsrvinfo.getColumn(0,"opstatcd");
  2265. var opposturecd = ds_main_oprsrvinfo.getColumn(0,"opposturecd");
  2266. var opdirecflag = ds_main_oprsrvinfo.getColumn(0,"opdirecflag");
  2267. var oppatflagcd = ds_main_oprsrvinfo.getColumn(0,"oppatflagcd");
  2268. var opcntmdg = ds_main_oprsrvinfo.getColumn(0,"opcntmdg");
  2269. var opdelivefact = ds_main_oprsrvinfo.getColumn(0,"delivefact");
  2270. var opcnfmdd = ds_main_oprsrvinfo.getColumn(0,"opcnfmdd");
  2271. var opflagcd = ds_main_oprsrvinfo.getColumn(0,"opflagcd"); // [요청번호: 847] 수술일자변경 2010.06.25 kskim, opflagcd(수술구분)정보 추가
  2272. var cntctel = ds_main_oprsrvinfo.getColumn(0,"cntctel"); // [요청번호: 847] 수술일자변경 2010.06.25 kskim, cntctel(연락처)정보 추가
  2273. var cnstopflag = ds_main_oprsrvinfo.getColumn(0,"cnstopflag"); // [요청번호: 847] 수술일자변경 2010.06.25 kskim, cnstopflag(협진여부)정보 추가
  2274. var ccrtno = ds_main_oprsrvinfo.getColumn(0,"ccrtno"); // [요청번호: 847] 카트번호 2010.06.25 kskim, ccrtno정보 추가
  2275. //drg정보 추가 2013.06.20 KJS
  2276. var drgyn = ds_main_oprsrvinfo.getColumn(0,"drgyn");
  2277. var drgno = ds_main_oprsrvinfo.getColumn(0,"drgno");
  2278. var drgnm = ds_main_oprsrvinfo.getColumn(0,"drgnm");
  2279. var opdata = opschedd + "▦" +
  2280. opfromtmcd + "▦" +
  2281. opendtmcd + "▦" +
  2282. oproomcd + "▦" +
  2283. opcd + "▦" +
  2284. opnm + "▦" +
  2285. diagcd + "▦" +
  2286. diagnm + "▦" +
  2287. perfdeptcd + "▦" +
  2288. perfdrid + "▦" +
  2289. opusetm + "▦" +
  2290. anstmthd + "▦" +
  2291. anstdetlmthdcd + "▦" +
  2292. opstatcd + "▦" +
  2293. opposturecd + "▦" +
  2294. opdirecflag + "▦" +
  2295. oppatflagcd + "▦" +
  2296. opcntmdg + "▦" +
  2297. opdelivefact + "▦" +
  2298. opcnfmdd + "▦" +
  2299. opflagcd + "▦" +
  2300. cntctel + "▦" +
  2301. cnstopflag + "▦" +
  2302. ccrtno + "▦" +
  2303. drgyn + "▦" +
  2304. drgno + "▦" +
  2305. drgnm; // [요청번호: 847] 수술일자변경 2010.06.25 kskim, opflagcd(수술구분)정보 추가
  2306. frmf_setParameter("SPMMO05800_param_opdata", opdata);
  2307. // modal("SPMMO05800");
  2308. frmf_modal("SPMMO05800", "SPMMO05800", "", "", "", "", "", "", "", "", "", "", "M");
  2309. var rtnuseyn = frmf_getParameter("SPMMO05800_rtn_useyn");
  2310. if(rtnuseyn == "Y"){
  2311. frmf_setParameter("SPMMO05800_rtn_useyn", "N");
  2312. ds_main_cond.setColumn(0,"qflag", "1");
  2313. fReqOpRsrvInfoList();
  2314. }
  2315. }else{
  2316. return;
  2317. }
  2318. }
  2319. /***************************************************************************************************
  2320. * Function : fClkCnfmHopeTm
  2321. * Description : 희망시간 확정버튼 클릭
  2322. * Argument :
  2323. * return type :
  2324. * Creator :
  2325. ***************************************************************************************************/
  2326. function fClkCnfmHopeTm(){
  2327. group2.visible = false;
  2328. var hopehour = ds_main_hopebox.getColumn(0,"hopehour");
  2329. var hopemin = ds_main_hopebox.getColumn(0,"hopemin");
  2330. var usehour = ds_main_hopebox.getColumn(0,"usehour");
  2331. var usemin = ds_main_hopebox.getColumn(0,"usemin");
  2332. var hopetmflag = ds_main_oprsrvinfo.getColumn(0,"hopetmflag");
  2333. if(hopehour.length == 1) {
  2334. hopehour = "0" + hopehour;
  2335. }
  2336. if(usehour.length == 1) {
  2337. usehour = "0" + usehour;
  2338. }
  2339. var opusetm = usehour.concat(usemin);
  2340. if(hopetmflag == 4){
  2341. var opfromtmcd = hopehour.concat(hopemin) + "00";
  2342. var opendhour = eval(hopehour) + eval(usehour);
  2343. var opendmin = eval(hopemin) + eval(usemin);
  2344. if(opendmin == 60){
  2345. opendhour++;
  2346. opendmin = "00";
  2347. }else if(opendmin == 0){
  2348. opendmin = "00";
  2349. }
  2350. if(opendhour < 10){
  2351. opendhour = "0".concat(opendhour);
  2352. }
  2353. var opendtmcd = ("" + opendhour + "").concat(opendmin) + "00";
  2354. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd", opfromtmcd);
  2355. ds_main_oprsrvinfo.setColumn(0,"opendtmcd" , opendtmcd);
  2356. }
  2357. ds_main_oprsrvinfo.setColumn(0,"oproomcd" , "2222"); //응급, 추가의 경우, 임시방 설정
  2358. ds_main_oprsrvinfo.setColumn(0,"opusetm" , opusetm);
  2359. btn_new.enable = true;
  2360. btn_rsrvcncl.enable = true;
  2361. btn_rsrvcncl.enable = true;
  2362. btn_tempsave.enable = true;
  2363. if(hopetmflag != 4) { // 2008.10.13 특정시간 설정일 경우만 제외하고 처리
  2364. if(cmb_opfromtmcd.value != "" || cmb_opendtmcd.value != "") {
  2365. ds_main_oprsrvinfo.setColumn(0,"opfromtmcd", "");
  2366. ds_main_oprsrvinfo.setColumn(0,"opendtmcd", "");
  2367. }
  2368. }
  2369. }]]></Script>