SPMMO00100.xjs 94 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * File Name : SPMMO00100.xjsS
  6. * Creator :
  7. * Make Date : 2014-08-05
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-08-05 DBS Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. // var sINREQFRMINFO_PATH = "/root/main/inreqfrminfo/inreqfrminfo";
  18. // var sINREQHISTLIST_PATH = "/root/main/inreqhistinfo/inreqhistlist";
  19. // var sDIAGCDLIST_PATH = "/root/main/diaginfo/diagcdlist";
  20. // var sOPCDLIST_PATH = "/root/main/diaginfo/opcdlist";
  21. // 2013/01/21 Start
  22. // 입원의뢰서 작성 권한여부 체크
  23. var menuauthchkyn="N";
  24. // 알림 메시지 팝업 여부
  25. var msgpopupchkyn="N";
  26. // 블럭킹 사용 여부
  27. var blockingchk="N";
  28. // 환자 템프 등록번호
  29. var temp_pid="";
  30. //2013/01/21 End
  31. var cstatus="";
  32. /****************************************************************************************
  33. * Function : fInitialize_SPMMO00100
  34. * Description : 화면초기화.
  35. * Argument :
  36. * :
  37. * return type :
  38. * Creator :
  39. ****************************************************************************************/
  40. function fInitialize_SPMMO00100() {
  41. ds_diagcdlist.setColumn(0,"diagdd",utlf_getCurrentDate());
  42. var arrParam = [{dsNm: "ds_P0020", cdGrpId: "P0020"}
  43. ,{dsNm: "ds_M0525", cdGrpId: "M0525"}
  44. ,{dsNm: "ds_P0474", cdGrpId: "P0474"}
  45. ,{dsNm: "ds_P0025", cdGrpId: "P0025"}
  46. ,{dsNm: "ds_P0026", cdGrpId: "P0026"}
  47. ,{dsNm: "ds_M0700", cdGrpId: "M0700"} // 환자등급
  48. ,{dsNm: "ds_M0710", cdGrpId: "M0710"} // 병실정보
  49. ]
  50. appf_getCodeList(arrParam);
  51. var arrKindParam = [{bizId: "M0029", cdGrpId: "P0378", dsNm: "ds_M0029"}
  52. ]
  53. appf_getKindCodeList(arrKindParam);
  54. lf_mmbfGetDeptCodeComboList(ds_orddept, "D"); // 부서코드 콤보
  55. lf_mmbfGetDeptCodeComboList(ds_warddept, "W"); // 병동코드 콤보
  56. // 암센터 병동코드조회
  57. fReqCenterWardcdList();
  58. // 콤보 전체항목 추가
  59. // var ComboIds = "case2.cmb_specwardcd|combo6|combo7|combo8";
  60. // frmf_addComboItemAll(ComboIds, "", "all");
  61. // frmf_addComboItem("case2.cmb_specwardcd");
  62. ds_wardcdlist.insertRow(0);
  63. ds_M0700.insertRow(0); //환자등급
  64. ds_M0710.insertRow(0); //병실정보
  65. // 공통에 전체항목 추가하는 함수 뭐가 안된다.
  66. //grd_calendar.dataheight = 31; // grid data height default set
  67. // 파라미터를 받으면서 팝업으로 열렸을경우 버튼제어
  68. var param = opener.frmf_getParameter("SPMMO00100_param");
  69. if(!utlf_isNull(param)) {
  70. var paramarray = param.split("▦");
  71. if(paramarray.length > 9){
  72. btn_init.visible = false;
  73. btn_save.visible = false;
  74. btn_del.visible = false;
  75. }
  76. }
  77. lf_getHardCDList("N", 5569, null , ds_hardcditem);
  78. lf_getHardCDList("N", 5860, null , ds_hardcd_5860);
  79. fClkBtnInit();
  80. var pid = opener.frmf_getParameter("SPMMO00100_pid");
  81. if(!utlf_isNull(pid)){ // 환자번호만 넘기는경우
  82. //2012/07/20 Start
  83. dsf_makeValue(ds_temp,"pid","string",frmf_getParameter("SPMMO00100_pid"));
  84. //2012/07/20 End
  85. //opener.javascript.clearParameter("SPMMO00100_pid");
  86. opener.frmf_clearParameter("SPMMO00100_pid");
  87. ds_inreqfrminfo.setColumn(0, "pid", pid);
  88. //2012/07/20 Start
  89. fSetparam();
  90. //2012/07/20 End
  91. fPatSearch(); // 환자 정보 조회
  92. } else {
  93. ipt_year.value = utlf_getCurrentDate().substr(0, 4); //year
  94. ipt_month.value = utlf_getCurrentDate().substr(4, 2); //month
  95. fReqInReqHistList(); //입원의뢰 내역 조회
  96. fReqInReqCalendar(); //입원의뢰서 달력 조회
  97. if(!utlf_isNull(param)){ //parameter가 있는 경우
  98. fReqDiagOpList(); //입원의뢰 환자의 현재진단 조회
  99. } else { //param이 없는 경우, 상단정보에서 환자정보를 얻는다.
  100. var paminfocsv = sysf_getGlobalVariable("paminfo");
  101. var patflagcsv = sysf_getGlobalVariable("patflag");
  102. // if(!utlf_isNull(paminfocsv)){
  103. // dsf_setCSVToDs("ds_paminfo", paminfocsv);
  104. // }
  105. // if(!utlf_isNull(patflagcsv)){
  106. // dsf_setCSVToDs("ds_patflag", patflagcsv);
  107. // }
  108. if(!utlf_isNull(paminfocsv)){
  109. // try {
  110. // // model.copyNode("/root/main/diaginfo", opener.root.main.diaginfo);
  111. // dsf_copyDs(ds_diagcdlist,opener.ds_diagcdlist,"replace");
  112. // dsf_copyDs(ds_opcdlist,opener.ds_opcdlist,"replace");
  113. // } catch(E){
  114. // fReqDiagOpList();
  115. // }
  116. fReqDiagOpList();
  117. // for (i=1; i < grd_diaglist.rows-1; i++) {
  118. for(var i = 0 ; i < ds_diagcdlist.rowcount-1 ; i++) {
  119. // model.setValue(sDIAGCDLIST_PATH+ "[" + i + "]/status" , "i");
  120. // model.setValue(sDIAGCDLIST_PATH+ "[" + i + "]/diagtypecd" , "R");
  121. // model.setValue(sDIAGCDLIST_PATH+ "[" + i + "]/cretno" , "0");
  122. ds_diagcdlist.setColumn(i,"status","i");
  123. ds_diagcdlist.setColumn(i,"diagtypecd","R");
  124. ds_diagcdlist.setColumn(i,"cretno","0");
  125. }
  126. // dsf_copyDs(ds_opcdlist,ds_init_opcdlist,"after");
  127. // copyNodeType("/root/main/diaginfo/opcdlist", "/root/init/opcdlist", "after"); // /root/init/opcdlist <-갑자기 어디서 나온거??
  128. }
  129. }
  130. var status = ds_inreqfrminfo.getColumn(0,"status");
  131. if(status == "u") {
  132. ds_main.setColumn(0,"status","수정상태");
  133. //2012/08/13 Start
  134. btn_del.enable = true;
  135. //2012/08/13 End
  136. } else {
  137. ds_main.setColumn(0,"status","신규상태");
  138. //2012/08/13 Start
  139. btn_del.enable = false;
  140. //2012/08/13 End
  141. }
  142. if(sysf_getUserInfo("dutplceinstcd") == "032") {
  143. button6.visible = true; // 기간약정서 칠곡일경우만 보이게 처리
  144. case3.cap_bedinfo.visible = false;
  145. }
  146. }
  147. ds_diagcdlist.rowposition = 0;
  148. ds_opcdlist.rowposition = 0;
  149. }
  150. /****************************************************************************************
  151. * Function : fReqInReqCalendar
  152. * Description : 입원의뢰서 달력 조회
  153. * Argument :
  154. * :
  155. * return type :
  156. * Creator :
  157. ****************************************************************************************/
  158. function fReqInReqCalendar(){
  159. // sysf_trace("year : "+ipt_year.value+" / month : "+ipt_month.value);
  160. var year = ipt_year.value;
  161. var month = ipt_month.value;
  162. var orgyear = year;
  163. // var orgmonth = month.utlf_getLeftPad(2,"0");
  164. var orgmonth = "";
  165. if(month < 10) orgmonth = "0".concat(month);
  166. else orgmonth = month;
  167. if(month == 12){ //12월인 경우, 해를 넘겨서 계산한다.
  168. year++;
  169. year = year.toString();
  170. month = "01";
  171. }else{
  172. month = eval(month) + 1;
  173. if(month < 10){
  174. month = "0".concat(month);
  175. }
  176. year = year.toString();
  177. month = month.toString();
  178. }
  179. ds_req.clear();
  180. // ds_req.setColumn(0, "fromdd", year.concat(month).concat("01"));
  181. dsf_makeValue(ds_req,"todd" ,"string",year.concat(month).concat("01"));
  182. dsf_makeValue(ds_req,"basedd" ,"string",("" + orgyear + "").concat(orgmonth));
  183. dsf_makeValue(ds_req,"orddeptcd","string",ds_inreqfrminfo.getColumn(0, "orddeptcd"));
  184. var oParam = {};
  185. oParam.id = "TRMMO00110";
  186. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  187. oParam.method = "reqGetInReqCalendar";
  188. oParam.inds = "req=ds_req";
  189. oParam.outds = "ds_calendar=calendar";
  190. oParam.async = false;
  191. oParam.callback = "cf_TRMMO00110";
  192. tranf_submit(oParam);
  193. }
  194. /****************************************************************************************
  195. * Function : cf_TRMMO00110
  196. * Description : TRMMO00110 콜백 함수
  197. * Argument :
  198. * :
  199. * return type :
  200. * Creator :
  201. ****************************************************************************************/
  202. function cf_TRMMO00110(sSvcId, nErrorCode, sErrorMsg) {
  203. if(nErrorCode < 0) return;
  204. else fMakeCalendar(); //조회 후 달력 값을 설정
  205. }
  206. /****************************************************************************************
  207. * Function : fClkBtnInit
  208. * Description : 초기화버튼 클릭시 화면 초기화
  209. * Argument :
  210. * :
  211. * return type :
  212. * Creator :
  213. ****************************************************************************************/
  214. function fClkBtnInit(){
  215. var btnauth = false;
  216. var userauth = ds_userauth.getColumn(0,"hardcd");
  217. if(userauth == "P") { // 특정과 (하드코드 테이블 92번에 지정)만 타과 입원장 발급 가능
  218. lf_getHardCDList("N", 92, null, ds_deptcode); //입원의뢰서 작성 허용과
  219. var dutplcecd = ds_deptcode.getColumn(ds_deptcode.findRow("hardcd", sysf_getUserInfo("dutplcecd")) , "hardcd");
  220. if(!utlf_isNull(dutplcecd)) {
  221. btnauth = true;
  222. } else {
  223. btnauth = false;
  224. }
  225. } else if(userauth == "I") {
  226. lf_getHardCDList("N", 93, null, ds_spuserauth); //입원의뢰서 작성 허용 ID
  227. var authuserid = ds_spuserauth.getColumn(ds_spuserauth.findRow("hardcd", sysf_getUserInfo("userid")) , "hardcd");
  228. if(!utlf_isNull(authuserid)) {
  229. btnauth = true;
  230. }else{
  231. btnauth = false;
  232. }
  233. } else {
  234. btnauth = false;
  235. }
  236. var bmtdeptcd = ds_bmtdeptcd.getColumn(ds_bmtdeptcd.findRow("hardcd", sysf_getUserInfo("dutplcecd")) , "hardcd");
  237. var bmtopen = opener.frmf_getParameter("SPMMO00100_BMTDEPTCD");
  238. var jobkindcd = ds_drkindcd.getColumn(ds_drkindcd.findRow("hardcd", sysf_getUserInfo("jobkindcd")) , "hardcd");
  239. if (btnauth == true || !utlf_isNull(jobkindcd) || !utlf_isNull(bmtdeptcd) || !utlf_isNull(bmtopen)) { // 직종이 의사이거나 개발자, BMT 코디네이터 실일 경우 저장 버튼 활성화
  240. btn_init.enable = true;
  241. btn_save.enable = true;
  242. btn_del.enable = true;
  243. btn_close.enable = true;
  244. }
  245. //2013/10/14 Start 5800에 등록된 메뉴에서 접근시 입원의뢰서 작성 할 수 있도록 수정 처리
  246. lf_getHardCDList("N", 5800, null, ds_hardcd_5800);
  247. // var menuauthchk = model.getValue("/root/properties/menu/menugroupcd").split("|");
  248. // var menugroup = menuauthchk[0];
  249. // var menuauth = menuauthchk[1];
  250. var menugroupcheck = 0;
  251. var menuauthcheck = 0;
  252. // var menugroupcheck = getNodeSetCnt("/root/init/hardcd_5800/hardcd[hardcd='" + menugroup + "']");
  253. // var menuauthcheck = getNodeSetCnt("/root/init/hardcd_5800/hardcd[hardcd='" + menuauth + "']");
  254. for(var i = 0 ; i < gds_menuGroup.rowcount ; i++){
  255. if(ds_hardcd_5800.findRow("hardcd",gds_menuGroup.getColumn(i,"menugrupcd"))>-1){
  256. menugroupcheck++;
  257. }
  258. if(ds_hardcd_5800.findRow("hardcd",gds_menuGroup.getColumn(i,"menuauthcd"))>-1){
  259. menuauthcheck++;
  260. }
  261. }
  262. if(menugroupcheck > 0 && menuauthcheck > 0){
  263. menuauthchkyn = "Y";
  264. btn_init.enable = true;
  265. btn_save.enable = true;
  266. btn_close.enable = true;
  267. }
  268. /* 2013/01/21 전문간호new(전문간호)의 메뉴에서 접근시 입원의뢰서 작성할 수 있도록 수정 --주석처리
  269. fGetHardCDList("N", 5800, 0 , "/root/init/hardcd_5800");
  270. var menugroup=model.getValue("/root/init/hardcd_5800/hardcd[cdseqno='1']/hardcd");
  271. var menuauth=model.getValue("/root/init/hardcd_5800/hardcd[cdseqno='2']/hardcd");
  272. var menuauthchk = model.getValue("/root/properties/menu/menugroupcd").split("|");
  273. if(menugroup==menuauthchk[0] && menuauth==menuauthchk[1]){
  274. menuauthchkyn = "Y";
  275. btn_init.disabled = false;
  276. btn_save.disabled = false;
  277. btn_close.disabled = false;
  278. }*/
  279. //2013/01/21 End
  280. // model.resetInstanceNode(sINREQFRMINFO_PATH);
  281. // //2012/07/31 Start
  282. // model.resetInstanceNode(sINREQHISTLIST_PATH);
  283. // //2012/07/31 End
  284. ds_inreqfrminfo.clearData();
  285. ds_inreqfrminfo.addRow();
  286. ds_inreqhistlist.clearData();
  287. var cpyn = ""; //cp여부추가
  288. if(frmf_checkOpener()){
  289. var param = opener.frmf_getParameter("SPMMO00100_param");
  290. var pid = ds_inreqfrminfo.getColumn(0,"pid");
  291. var hngnm = "";
  292. var orddeptcd = "";
  293. var orddrid = "";
  294. var insukind = "";
  295. var suppkind = "";
  296. var orddd = "";
  297. var cretno = 0;
  298. var ioflag = "";
  299. var mpphontel = "";
  300. var hometel = "";
  301. var phoneno = "";
  302. var sa = "";
  303. if(!utlf_isNull(pid)) {
  304. var ev = new ClickEventInfo;
  305. frmf_inputEnterKey("btn_patserch", "onclick", ev );
  306. } else if(!utlf_isNull(param)) {
  307. pid = param[0];
  308. hngnm = param[1];
  309. orddeptcd = param[2];
  310. orddrid = param[3];
  311. insukind = param[4];
  312. suppkind = param[5];
  313. orddd = param[6];
  314. cretno = 0;
  315. ioflag = param[8];
  316. } else { //param이 없는 경우, 상단정보에서 환자정보를 얻는다.
  317. var paminfocsv = sysf_getGlobalVariable("paminfo");
  318. var patflagcsv = sysf_getGlobalVariable("patflag");
  319. if(!utlf_isNull(paminfocsv)){
  320. ds_paminfo.clearData();
  321. dsf_setCSVToDs("ds_paminfo", paminfocsv);
  322. }
  323. if(!utlf_isNull(patflagcsv)){
  324. ds_patflag.clearData();
  325. dsf_setCSVToDs("ds_patflag", patflagcsv);
  326. }
  327. pid = ds_paminfo.getColumn(0,"pid");
  328. hngnm = ds_paminfo.getColumn(0,"hngnm");
  329. ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  330. mpphontel = ds_paminfo.getColumn(0,"mpphontel");
  331. hometel = ds_paminfo.getColumn(0,"hometel");
  332. phoneno = "";
  333. if(utlf_isNull(ds_paminfo.getColumn(0,"sex"))) sa = "";
  334. else sa = ds_paminfo.getColumn(0,"sex")+"/"+ds_paminfo.getColumn(0,"age");
  335. if(utlf_isNull(mpphontel)) phoneno = hometel;
  336. else phoneno = mpphontel;
  337. //입원의뢰서 open시 로그인 사용자 정보가 화면에 default로 설정, 서소영
  338. //2008. 07. 10. 오지훈
  339. var orddrid = sysf_getUserInfo("userid");
  340. var orddeptcd = sysf_getUserInfo("dutplcecd");
  341. if(orddeptcd == "2040400000") {
  342. orddeptcd = "2040000000";
  343. }
  344. var insukind = ds_paminfo.getColumn(0,"insukind");
  345. var suppkind = ds_paminfo.getColumn(0,"suppkind");
  346. var inhopedd = ds_inreqfrminfo.getColumn(0,"inhopedd"); //입원희망일시
  347. cpyn = appf_getPatientInfo("cp");
  348. }
  349. }
  350. //zsufGetUserInfoCombo(orddeptcd , "/root/init/userlist", "_D"); //해당 의사콤보 조회
  351. lf_mmbfGetUserComboList(ds_userlist, orddeptcd, "0330", "", "M", "", "", "P");
  352. //2012/07/18 Start
  353. lf_mmbfGetUserComboList(ds_atdoctlist, orddeptcd, "0330", "", "A", "", "", "P");
  354. //2012/07/18 End
  355. lf_mmbfGetSubDeptComboList(ds_subdeptlist, orddeptcd);
  356. if(ds_subdeptlist.rowcount>0) frmf_addComboItem("cmb_subdept");
  357. if(cpyn == "") cpyn = "N"; //cp여부가 없는 경우는 'N'으로 설정
  358. ds_inreqfrminfo.setColumn(0, "pid" , pid);
  359. ds_inreqfrminfo.setColumn(0, "hngnm" , hngnm);
  360. ds_inreqfrminfo.setColumn(0, "sa" , sa);
  361. ds_inreqfrminfo.setColumn(0, "orddeptcd" , orddeptcd);
  362. ds_inreqfrminfo.setColumn(0, "orddrid" , orddrid);
  363. ds_inreqfrminfo.setColumn(0, "insukind" , insukind);
  364. ds_inreqfrminfo.setColumn(0, "suppkind" , suppkind);
  365. ds_inreqfrminfo.setColumn(0, "inhopedd" , utlf_getCurrentDate());
  366. ds_inreqfrminfo.setColumn(0, "inrsrvacptdd" , utlf_getCurrentDate());
  367. ds_inreqfrminfo.setColumn(0, "cpyn" , cpyn);
  368. ds_inreqfrminfo.setColumn(0, "orddd" , utlf_getCurrentDate());
  369. ds_inreqfrminfo.setColumn(0, "cretno" , 0);
  370. ds_inreqfrminfo.setColumn(0, "bmtyn" , "1");
  371. ds_inreqfrminfo.setColumn(0, "phoneno" , phoneno);
  372. ds_inreqfrminfo.setColumn(0, "drgyn" , "N");
  373. //trace(ds_inreqfrminfo.saveXML());
  374. var ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  375. if(ioflag == "O"){ //외래환자는 기본적으로 입원 설정
  376. ioflag = "I";
  377. }
  378. ds_inreqfrminfo.setColumn(0, "erreglyn" , ioflag);
  379. fReqCnstteamList(); //협진팀 정보 조회
  380. ds_diagcdlist.clearData();
  381. ds_diagcdlist.addRow();
  382. ds_opcdlist.clearData();
  383. ds_opcdlist.addRow();
  384. // model.recalculate();
  385. var status = ds_inreqfrminfo.getColumn(0,"status");
  386. if(status == "u") {
  387. ds_main.setColumn(0,"status","수정상태");
  388. //2012/08/13 Start
  389. btn_del.enable = true;
  390. //2012/08/13 End
  391. } else {
  392. ds_main.setColumn(0,"status","신규상태");
  393. //2012/08/13 Start
  394. btn_del.enable = false;
  395. //2012/08/13 End
  396. }
  397. //DRG 오픈시까지 버튼 숨김여부
  398. fdrgbtnchk();
  399. }
  400. /****************************************************************************************
  401. * Function : fReqCenterWardcdList
  402. * Description : 암센터 병동코드조회
  403. * Argument :
  404. * :
  405. * return type :
  406. * Creator :
  407. ****************************************************************************************/
  408. function fReqCenterWardcdList(){
  409. var oParam = {};
  410. oParam.id = "TRMMO00128";
  411. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  412. oParam.method = "reqGetCenterWardCdList";
  413. oParam.inds = "req=ds_req";
  414. oParam.outds = "ds_wardcdlist=wardcdlist";
  415. oParam.async = false;
  416. oParam.callback = "";
  417. tranf_submit(oParam);
  418. }
  419. /****************************************************************************************
  420. * Function : fReqCnstteamList
  421. * Description : 협진팀명 조회.
  422. * Argument :
  423. * :
  424. * return type :
  425. * Creator :
  426. ****************************************************************************************/
  427. function fReqCnstteamList(){
  428. ds_cnstteaminfo.clearData();
  429. ds_req.clear();
  430. dsf_makeValue(ds_req,"pid","string",ds_inreqfrminfo.getColumn(0, "pid"));
  431. var oParam = {};
  432. oParam.id = "TRMMO00126";
  433. oParam.service = "prcpmngtapp.ConcPatMngt";
  434. oParam.method = "reqGetCnstTeamList";
  435. oParam.inds = "req=ds_req";
  436. oParam.outds = "ds_cnstteaminfo=cnstteaminfo";
  437. oParam.async = false;
  438. oParam.callback = "";
  439. tranf_submit(oParam);
  440. ds_inreqfrminfo.setColumn(0, "cnstteam", ds_cnstteaminfo.getColumn(0, "cnstteam"));
  441. }
  442. /****************************************************************************************
  443. * Function : fdrgbtnchk
  444. * Description : DRG관련 버튼 숨김.
  445. * Argument :
  446. * :
  447. * return type :
  448. * Creator :
  449. ****************************************************************************************/
  450. function fdrgbtnchk(){
  451. //var trgtcd=model.getValue("/root/init/hardcd_5860/hardcd/hardcd");
  452. var trgtcd = ds_hardcd_5860.getColumn(0,"hardcd");
  453. if(trgtcd == "Y") {
  454. Static12.visible = false;
  455. radio5.visible = false;
  456. button7.visible = false;
  457. Static17.visible = false;
  458. input3.visible = false;
  459. input2.visible = false;
  460. } else if(trgtcd == "N"){
  461. Static12.visible = true;
  462. radio5.visible = true;
  463. button7.visible = true;
  464. Static17.visible = true;
  465. input3.visible = true;
  466. input2.visible = true;
  467. }
  468. }
  469. /****************************************************************************************
  470. * Function : fMakeCalendar
  471. * Description : 달력값 설정
  472. * Argument :
  473. * :
  474. * return type :
  475. * Creator :
  476. ****************************************************************************************/
  477. function fMakeCalendar(){
  478. var totcnt = ds_calendar.rowcount;
  479. //var wcnt = ds_calendar.getColumn(totcnt-1,"week");
  480. ds_calendar_show.clear();
  481. for(var i = 0 ; i < totcnt ; i++) {
  482. if(ds_calendar.getColumn(i,"day") == "1") {
  483. dsf_makeValue(ds_calendar_show,"sun","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  484. }
  485. if(ds_calendar.getColumn(i,"day") == "2") {
  486. dsf_makeValue(ds_calendar_show,"mon","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  487. }
  488. if(ds_calendar.getColumn(i,"day") == "3") {
  489. dsf_makeValue(ds_calendar_show,"tue","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  490. }
  491. if(ds_calendar.getColumn(i,"day") == "4") {
  492. dsf_makeValue(ds_calendar_show,"wed","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  493. }
  494. if(ds_calendar.getColumn(i,"day") == "5") {
  495. dsf_makeValue(ds_calendar_show,"thr","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  496. }
  497. if(ds_calendar.getColumn(i,"day") == "6") {
  498. dsf_makeValue(ds_calendar_show,"fri","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  499. }
  500. if(ds_calendar.getColumn(i,"day") == "7") {
  501. dsf_makeValue(ds_calendar_show,"sat","string",parseInt(ds_calendar.getColumn(i,"basedd").substr(6,7))+"\n("+ds_calendar.getColumn(i,"patsum")+")\n\n"+ds_calendar.getColumn(i,"dutflag"),ds_calendar.getColumn(i,"week")-1);
  502. }
  503. }
  504. ds_calendar_show.rowposition = -1;
  505. }
  506. /****************************************************************************************
  507. * Function : fSetparam
  508. * Description : 의사결정에서 파라미터 값 설정
  509. * Argument :
  510. * :
  511. * return type :
  512. * Creator :
  513. ****************************************************************************************/
  514. function fSetparam(){
  515. if(opener.frmf_getParameter("opener_id")=="SPMMO26000"){ //의사결정 시스템에서 들어왔을시
  516. ds_inreqfrminfo.setColumn(0, "erreglyn" , opener.frmf_getParameter("SPMMO00100_erreglyn"));
  517. ds_inreqfrminfo.setColumn(0, "indd" , opener.frmf_getParameter("SPMMO00100_indd"));
  518. ds_inreqfrminfo.setColumn(0, "incretno" , opener.frmf_getParameter("SPMMO00100_incretno"));
  519. ds_inreqfrminfo.setColumn(0, "inskind" , "D");
  520. }
  521. }
  522. /****************************************************************************************
  523. * Function : fPatSearch
  524. * Description : 환자 조회
  525. * Argument :
  526. * :
  527. * return type :
  528. * Creator :
  529. ****************************************************************************************/
  530. function fPatSearch(){
  531. //2013/01/22 Start 환자번호 입력시 팝업 체크여부 초기화 및 화면 초기화
  532. msgpopupchkyn="N";
  533. temp_pid = ipt_pid.value;
  534. fClkBtnInit();
  535. var pid = temp_pid;
  536. //2013/01/22 End
  537. // fPidTrim("/root/main/inreqfrminfo/inreqfrminfo/pid");
  538. // pid = model.getValue("/root/main/inreqfrminfo/inreqfrminfo/pid");
  539. ds_inreqfrminfo.setColumn(0, "pid", pid);
  540. pid = utlf_trim(ds_inreqfrminfo.getColumn(0, "pid"));
  541. var hngnm = ds_inreqfrminfo.getColumn(0, "hngnm");
  542. if(!utlf_isNull(pid)) {
  543. if(lf_reqPatInfo(ds_patnm, "pid", "ptbs", pid)==true){
  544. var hngnm = ds_patnm.getColumn(0, "hngnm");
  545. ds_inreqfrminfo.setColumn(0, "hngnm" , hngnm);
  546. ds_inreqfrminfo.setColumn(0, "sa" , ds_patnm.getColumn(0, "sex")+"/"+ds_patnm.getColumn(0, "age"));
  547. ds_inreqfrminfo.setColumn(0, "inrsrvacptdd" , utlf_getCurrentDate());
  548. ds_inreqfrminfo.setColumn(0, "phoneno" , ds_patnm.getColumn(0, "phoneno"));
  549. }
  550. } else if(utlf_isNull(pid) && !utlf_isNull(hngnm)){
  551. fPatSrch(hngnm, "2");
  552. if(lf_reqPatInfo(ds_patnm, "hngnm", "ptbs", pid)==true){
  553. ds_inreqfrminfo.setColumn(0, "pid" , ds_patinfolist.getColumn(0, "pid"));
  554. ds_inreqfrminfo.setColumn(0, "sa" , ds_patinfolist.getColumn(0, "sex")+"/"+ds_patinfolist.getColumn(0, "age"));
  555. ds_inreqfrminfo.setColumn(0, "phoneno" , ds_patinfolist.getColumn(0, "mpphontel"));
  556. }
  557. } else {
  558. //modal("SPPMC02500");
  559. frmf_modal("SPPMC02500","SPPMC02500",null,null,null,null,null,null,null,null,null,null,"M");
  560. ds_inreqfrminfo.setColumn(0, "pid" , ds_patinfolist.getColumn(0, "pid"));
  561. ds_inreqfrminfo.setColumn(0, "hngnm" , ds_patinfolist.getColumn(0, "hngnm"));
  562. ds_inreqfrminfo.setColumn(0, "sa" , ds_patinfolist.getColumn(0, "sex")+"/"+ds_patinfolist.getColumn(0, "age"));
  563. ds_inreqfrminfo.setColumn(0, "phoneno" , ds_patinfolist.getColumn(0, "mpphontel"));
  564. }
  565. ipt_year.value = utlf_getCurrentDate().substr(0, 4); //year
  566. ipt_month.value = utlf_getCurrentDate().substr(4, 2); //month
  567. fReqInReqHistList(); //입원의뢰 내역 조회
  568. fReqInReqCalendar(); //입원의뢰서 달력 조회
  569. ds_diagcdlist.clearData();
  570. ds_opcdlist.clearData();
  571. ds_diagcdlist.addRow();
  572. ds_opcdlist.addRow();
  573. // model.recalculate();
  574. ds_inreqfrminfo.setColumn(0,"orddeptcd",sysf_getUserInfo("dutplcecd"));
  575. // mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", cmb_orddeptcd.value, "0330", "","M");
  576. lf_mmbfGetUserComboList(ds_userlist, cmb_orddeptcd.value, "0330", "", "M", "", "", "P");
  577. //2012/07/18 Start
  578. // mmbfGetUserComboList("/root/send/reqdata", "/root/init/atdoctlist", cmb_orddeptcd.value, "0330", "","A");
  579. lf_mmbfGetUserComboList(ds_atdoctlist, cmb_orddeptcd.value, "0330", "", "A", "", "", "P");
  580. //2012/07/18 End
  581. ds_inreqfrminfo.setColumn(0,"orddrid",sysf_getUserId());
  582. var status = ds_inreqfrminfo.getColumn(0,"status");
  583. if(status == "u") {
  584. ds_main.setColumn(0,"status","수정상태");
  585. //2012/08/13 Start
  586. btn_del.enable = true;
  587. //2012/08/13 End
  588. } else {
  589. ds_main.setColumn(0,"status","신규상태");
  590. //2012/08/13 Start
  591. btn_del.enable = false;
  592. //2012/08/13 End
  593. }
  594. }
  595. /****************************************************************************************
  596. * Function : fPatSrch
  597. * Description : 환자 등록번호를 통한 환자 이름 가져오기
  598. * Argument :
  599. * :
  600. * return type :
  601. * Creator :
  602. ****************************************************************************************/
  603. function fPatSrch(s_val, flag){
  604. ds_tmp.clear();
  605. if(flag == "1"){
  606. dsf_makeValue(ds_tmp,"pid","string",s_val);
  607. } else if(flag == "2"){
  608. dsf_makeValue(ds_tmp,"hngnm","string",s_val);
  609. }
  610. dsf_makeValue(ds_tmp,"srchcond","string",flag);
  611. dsf_makeValue(ds_tmp,"autoflag","string","Y");
  612. ds_patinfolist.clearData();
  613. // 환자조회 화면 팝업
  614. //modal("SPPMC02500", 1,10, 10, "SPPMC02500", "/root/tmp", "/root/send");
  615. var objArg = new Object();
  616. objArg.arg_ds_send = ds_tmp;
  617. frmf_modal("SPPMC02500", "SPPMC02500", objArg, "", 1, 10, 10, "", "", "", "", "", "M");
  618. }
  619. /****************************************************************************************
  620. * Function : fReqInReqHistList
  621. * Description : 입원의뢰서 내역 조회
  622. * Argument :
  623. * :
  624. * return type :
  625. * Creator :
  626. ****************************************************************************************/
  627. function fReqInReqHistList(){
  628. ds_req.clear();
  629. dsf_makeValue(ds_req,"pid","string",ds_inreqfrminfo.getColumn(0, "pid"));
  630. var oParam = {};
  631. oParam.id = "TRMMO00109";
  632. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  633. oParam.method = "reqGetInReqHistList";
  634. oParam.inds = "req=ds_req";
  635. oParam.outds = "ds_inreqhistlist=inreqhistlist ds_diagcdlist=diagcdlist ds_opcdlist=opcdlist ds_dschchkyn=dschchkyn";
  636. oParam.async = false;
  637. oParam.callback = "cf_TRMMO00109";
  638. tranf_submit(oParam);
  639. //2013/01/21 Start
  640. /*
  641. * 당일 퇴원의 플래그가 I : 입원결정서 블럭킹
  642. * 당일 퇴원의 플래그가 D 또는 E : 예상입원기간 옆의 입원경로를 선택
  643. */
  644. //fGetHardCDList("N", 5810, 0 , "/root/init/hardcd_5810");
  645. lf_gethardcdArrayList(new Array("hardcd_5810|5810")
  646. ,new Array("ds_hardcd_5810"));
  647. blockingchk = ds_hardcd_5810.getColumn(ds_hardcd_5810.findRow("cdseqno",1),"hardcd");
  648. if(blockingchk=="Y"){
  649. var dschordtype = ds_dschchkyn.getColumn(0, "ordtype");
  650. if(dschordtype=="I" && msgpopupchkyn=="N"){
  651. sysf_messageBox("당일 퇴원한 환자로 입원의뢰서 결정은 불가능합니다.\n결정을 해야하는 경우 원무팀으로 연락", "I008");
  652. msgpopupchkyn="Y";
  653. }else if(dschordtype=="D" && msgpopupchkyn=="N"){
  654. sysf_messageBox("당일 DSC 또는 CHEMO로 퇴원한", "I005");
  655. ds_inreqfrminfo.setColumn(0, "erreglyn", dschordtype);
  656. msgpopupchkyn="Y";
  657. }else if(dschordtype=="E" && msgpopupchkyn=="N"){
  658. sysf_messageBox("당일 응급실에서 퇴원한", "I005");
  659. ds_inreqfrminfo.setColumn(0, "erreglyn", dschordtype);
  660. msgpopupchkyn="Y";
  661. }
  662. }
  663. //2013/01/21 End
  664. }
  665. /****************************************************************************************
  666. * Function : cf_TRMMO00109
  667. * Description : TRMMO00109 콜백 함수
  668. * Argument :
  669. * :
  670. * return type :
  671. * Creator :
  672. ****************************************************************************************/
  673. function cf_TRMMO00109(sSvcId, nErrorCode, sErrorMsg) {
  674. if(nErrorCode < 0) {return;}
  675. else {
  676. ds_inreqhistlist.updatecontrol = false;
  677. for(var i = 0 ; i < ds_inreqhistlist.rowcount ; i++) {
  678. dsf_makeValue(ds_inreqhistlist,"orgorddeptcd","string",ds_inreqhistlist.getColumn(i,"orddeptcd"),i);
  679. }
  680. ds_inreqhistlist.updatecontrol = true;
  681. // ds_opcdlist.updateColID("diagcd","orgopcd");
  682. }
  683. }
  684. /****************************************************************************************
  685. * Function : fOpenOpPopUp
  686. * Description : 수술팝업 open
  687. * Argument :
  688. * :
  689. * return type :
  690. * Creator :
  691. ****************************************************************************************/
  692. function fOpenOpPopUp(){
  693. ds_tmp.clear();
  694. var param = "" + "▦" +
  695. ds_inreqfrminfo.getColumn(0,"orddeptcd") + "▦" +
  696. ds_inreqfrminfo.getColumn(0,"orddrid") + "▦" +
  697. "" + "▦" +
  698. "" + "▦" +
  699. "perf"; //query구분
  700. frmf_setParameter("SPMMO11000_param", param);
  701. frmf_modal("SPMMO11000","SPMMO11000",null,null,null,null,null,null,null,null,null,null,"M");
  702. //dsf_copyDs(ds_opcdlist, ds_tmp, "replace");
  703. var useyn = frmf_getParameter("SPMMO11000_rtn_useyn");
  704. if(useyn == "Y") {
  705. // var currow = ds_opcdlist.addRow();
  706. ds_opcdlist.setColumn(0, "status" , "i");
  707. ds_opcdlist.setColumn(0, "diagdd" , utlf_getCurrentDate());
  708. ds_opcdlist.setColumn(0, "diagtypecd" , "O");
  709. ds_opcdlist.setColumn(0, "icd9cd" , ds_tmp.getColumn(ds_tmp.rowposition, "opcd"));
  710. ds_opcdlist.setColumn(0, "diagcd" , ds_tmp.getColumn(ds_tmp.rowposition, "opcd"));
  711. ds_opcdlist.setColumn(0, "opengnm" , ds_tmp.getColumn(ds_tmp.rowposition, "openm"));
  712. ds_opcdlist.setColumn(0, "ophngnm" , ds_tmp.getColumn(ds_tmp.rowposition, "opnm"));
  713. ds_opcdlist.setColumn(0, "orddd" , ds_inreqfrminfo.getColumn(0, "inhopedd"));
  714. ds_opcdlist.setColumn(0, "pid" , ds_inreqfrminfo.getColumn(0, "pid"));
  715. ds_opcdlist.setColumn(0, "cretno" , 0);
  716. ds_opcdlist.setColumn(0, "orddeptcd" , ds_inreqfrminfo.getColumn(0, "orddeptcd"));
  717. ds_opcdlist.setColumn(0, "orddrid" , ds_inreqfrminfo.getColumn(0, "orddrid"));
  718. }
  719. var currow = ds_inreqhistlist.rowposition;
  720. if(currow < 1){
  721. return;
  722. }
  723. fDispInReqHistInfo(currow);
  724. var status = ds_inreqfrminfo.getColumn(0,"status");
  725. if (status == "u") {
  726. ds_main.setColumn(0,"status","수정상태");
  727. } else {
  728. ds_main.setColumn(0,"status","신규상태");
  729. }
  730. }
  731. /****************************************************************************************
  732. * Function : fDispInReqHistInfo
  733. * Description : 입원내역 리스트 클릭시 -> 입원내역 정보 display
  734. * Argument : currow : 선택된 입원예약내역
  735. * :
  736. * return type :
  737. * Creator :
  738. ****************************************************************************************/
  739. function fDispInReqHistInfo(currow){
  740. var orddeptcd = ds_inreqhistlist.getColumn(currow,"orddeptcd");
  741. lf_mmbfGetUserComboList(ds_userlist, orddeptcd, "0330", "", "M", "", "", "P");
  742. //2012/07/18 Start
  743. lf_mmbfGetUserComboList(ds_atdoctlist, orddeptcd, "0330", "", "A", "", "", "P");
  744. dsf_makeValue(ds_temp,"inrsrvstat","string",ds_inreqhistlist.getColumn(currow,"inrsrvstat"));
  745. dsf_makeValue(ds_temp,"inflag","string",ds_inreqhistlist.getColumn(currow,"inflag"));
  746. //2012/07/18 End
  747. lf_mmbfGetSubDeptComboList(ds_subdeptlist, orddeptcd);
  748. if(ds_subdeptlist.rowcount>0) ds_subdeptlist.insertRow(0);
  749. // if(ds_subdeptlist.rowcount>0) frmf_addComboItem("cmb_subdept");
  750. ds_inreqfrminfo.copyRow(0,ds_inreqhistlist,currow);
  751. ds_inreqfrminfo.setColumn(0,"status","u");
  752. dsf_createDs("ds_temp_inreqfrminfo");
  753. ds_temp_inreqfrminfo.copyData(ds_inreqfrminfo); //신규 저장인지, 기존의 내역 수정인지를 판단하기 temp instance에 복사
  754. // DRG여부에서 Y일 경우 DRG수정버튼을 활성하
  755. var drgyn = ds_inreqfrminfo.getColumn(0,"drgyn");
  756. if(drgyn=="Y"){
  757. button7.enable = true;
  758. }
  759. }
  760. /****************************************************************************************
  761. * Function : fSearchDiagTermCD
  762. * Description : 진단용어코드 검색
  763. * Argument :
  764. * :
  765. * return type :
  766. * Creator :
  767. ****************************************************************************************/
  768. function fSearchDiagTermCD(){
  769. // var diagcd = grd_diaglist.valueMatrix(grd_diaglist.row, grd_diaglist.colRef("diagcd"));
  770. // var diagengnm = grd_diaglist.valueMatrix(grd_diaglist.row, grd_diaglist.colRef("diagengnm"));
  771. // var diaghngnm = grd_diaglist.valueMatrix(grd_diaglist.row, grd_diaglist.colRef("diaghngnm"));
  772. var diagcd = ds_diagcdlist.getColumn(ds_diagcdlist.rowposition, "diagcd");
  773. var diagengnm = ds_diagcdlist.getColumn(ds_diagcdlist.rowposition, "diagengnm");
  774. var diaghngnm = ds_diagcdlist.getColumn(ds_diagcdlist.rowposition, "diaghngnm");
  775. if(diagcd == "" && diagengnm == "" && diaghngnm == ""){ //아무 값도 입력하지 않는 경우 return
  776. return;
  777. }
  778. if(grd_diaglist.getCellPos()==grd_diaglist.getBindCellIndex("body","diagcd")){
  779. frmf_setParameter("SPMMO00800_cond1", 1);
  780. frmf_setParameter("SPMMO00800_cond2", 4);
  781. frmf_setParameter("SPMMO00800_cond3", "E");
  782. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  783. frmf_setParameter("SPMMO00800_cond5", diagcd);
  784. } else if(grd_diaglist.getCellPos()==grd_diaglist.getBindCellIndex("body","diagengnm")){
  785. frmf_setParameter("SPMMO00800_cond1", 2);
  786. frmf_setParameter("SPMMO00800_cond2", 4);
  787. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diagengnm));
  788. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  789. frmf_setParameter("SPMMO00800_cond5", diagengnm);
  790. } else if(grd_diaglist.getCellPos()==grd_diaglist.getBindCellIndex("body","diaghngnm")){
  791. frmf_setParameter("SPMMO00800_cond1", 2);
  792. frmf_setParameter("SPMMO00800_cond2", 4);
  793. frmf_setParameter("SPMMO00800_cond3", utlf_isHangul(diaghngnm));
  794. frmf_setParameter("SPMMO00800_cond4", utlf_getCurrentDate());
  795. frmf_setParameter("SPMMO00800_cond5", diaghngnm);
  796. }
  797. //modal("SPMMO00800");
  798. frmf_modal("SPMMO00800","SPMMO00800","","","","","","","","","","","M");
  799. var useyn = frmf_getParameter("SPMMO00800_rtn_useyn");
  800. if(useyn == "Y"){
  801. frmf_setParameter("SPMMO00800_rtn_useyn", "");
  802. fSetDiagTermCD();
  803. } else {
  804. frmf_setParameter("SPMMO00800_rtn_useyn", "");
  805. var currow = ds_diagcdlist.rowposition;
  806. // model.setValue(sDIAGCDLIST_PATH + "[" + currow + "]/icd10cd" , "");
  807. // model.setValue(sDIAGCDLIST_PATH + "[" + currow + "]/diagengnm", "");
  808. // model.setValue(sDIAGCDLIST_PATH + "[" + currow + "]/diaghngnm", "");
  809. ds_diagcdlist.setColumn(currow,"icd10cd" ,"");
  810. ds_diagcdlist.setColumn(currow,"diagengnm","");
  811. ds_diagcdlist.setColumn(currow,"diaghngnm","");
  812. }
  813. }
  814. /****************************************************************************************
  815. * Function : fSetDiagTermCD
  816. * Description : 진단용어코드 설정
  817. * Argument :
  818. * :
  819. * return type :
  820. * Creator :
  821. ****************************************************************************************/
  822. function fSetDiagTermCD(){
  823. var rtnparam = frmf_getParameter("SPMMO00800_rtn");
  824. var rtnparamArray = rtnparam.split("▩");
  825. for(var i = 0; i < rtnparamArray.length-1; i++){
  826. var tmpstr = String(rtnparamArray[i]).split("▦");
  827. var currow = ds_diagcdlist.rowcount-1;
  828. ds_diagcdlist.setColumn(currow,"status" ,"i");
  829. ds_diagcdlist.setColumn(currow,"diagdd" ,utlf_getCurrentDate());
  830. ds_diagcdlist.setColumn(currow,"diagtypecd" ,"R");
  831. ds_diagcdlist.setColumn(currow,"icd10cd" ,tmpstr[8]);
  832. ds_diagcdlist.setColumn(currow,"diagcd" ,tmpstr[9]);
  833. ds_diagcdlist.setColumn(currow,"diagengnm" ,tmpstr[2]);
  834. ds_diagcdlist.setColumn(currow,"diaghngnm" ,tmpstr[3]);
  835. ds_diagcdlist.setColumn(currow,"orddd" ,ds_inreqfrminfo.getColumn(0,"inhopedd"));
  836. ds_diagcdlist.setColumn(currow,"pid" ,ds_inreqfrminfo.getColumn(0,"pid"));
  837. ds_diagcdlist.setColumn(currow,"cretno" ,0);
  838. ds_diagcdlist.setColumn(currow,"orddeptcd" ,ds_inreqfrminfo.getColumn(0,"orddeptcd"));
  839. ds_diagcdlist.setColumn(currow,"orddrid" ,ds_inreqfrminfo.getColumn(0,"orddrid"));
  840. ds_diagcdlist.addRow();
  841. }
  842. // model.recalculate();
  843. // model.refresh();
  844. }
  845. /****************************************************************************************
  846. * Function : fReqDiagOpList
  847. * Description : 환자의 현재 내려진 진단조회
  848. * Argument :
  849. * :
  850. * return type :
  851. * Creator :
  852. ****************************************************************************************/
  853. function fReqDiagOpList(){
  854. var param = opener.frmf_getParameter("SPMMO00100_param");
  855. if(!utlf_isNull(param)){ //parameter가 있는 경우
  856. param = param.split("▦");
  857. var pid = param[0];
  858. var orddeptcd = param[2];
  859. var orddd = param[6];
  860. var ioflag = param[8];
  861. } else { //parameter가 없는 경우, 환자 상단정보를 이용
  862. // var paminfo = model.instance1.selectNodes("/root/paminfo/list");
  863. // var patflag = model.instance1.selectNodes("/root/paminfo/list");
  864. if(ds_paminfo.rowcount > 0 && ds_patflag.rowcount > 0){
  865. var pid = ds_paminfo.getColumn(0,"pid");
  866. var orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  867. var ioflag = ds_patflag.getColumn(0,"prcpgenrflag");
  868. if(ioflag == "O"){
  869. var orddd = ds_paminfo.getColumn(0,"orddd");
  870. }else{
  871. var orddd = ds_paminfo.getColumn(0,"indd");
  872. }
  873. }else{
  874. sysf_messageBox("환자 정보를 찾을 수", "I004");
  875. this.close();
  876. }
  877. }
  878. ds_req.clear();
  879. dsf_makeValue(ds_req,"pid","string",pid);
  880. dsf_makeValue(ds_req,"orddeptcd","string",orddeptcd);
  881. dsf_makeValue(ds_req,"orddd","string",orddd);
  882. dsf_makeValue(ds_req,"ioflag","string",ioflag);
  883. var oParam = {};
  884. oParam.id = "TRMMO00114";
  885. oParam.service = "prcpmngtapp.PatDiagMngt";
  886. oParam.method = "reqGetPatCurrentDiag";
  887. oParam.inds = "req=ds_req";
  888. oParam.outds = "ds_diagcdlist=diagcdlist ds_opcdlist=opcdlist";
  889. oParam.async = false;
  890. oParam.callback = "cf_TRMMO00114";
  891. tranf_submit(oParam);
  892. if(arErrorCode.pop("TRMMO00114") >= 0){ // if(submit("TRMMO00114")==true){
  893. // ds_opcdlist.updateColID("diagcd","orgopcd");
  894. ds_diagcdlist.updatecontrol = false;
  895. for(var i = 0 ; i < ds_diagcdlist.rowcount ; i++) {
  896. ds_diagcdlist.setColumn(i,"orddd",ds_inreqfrminfo.getColumn(0,"inhopedd")); //진료일자는 입원희망일자
  897. }
  898. ds_diagcdlist.updatecontrol = true;
  899. }
  900. ds_diagcdlist.addRow();
  901. // ds_opcdlist.addRow();
  902. // model.recalculate();
  903. }
  904. /****************************************************************************************
  905. * Function : cf_TRMMO00114
  906. * Description : TRMMO00114 콜백 함수
  907. * Argument :
  908. * :
  909. * return type :
  910. * Creator :
  911. ****************************************************************************************/
  912. function cf_TRMMO00114(sSvcId, nErrorCode, sErrorMsg) {
  913. arErrorCode.push(sSvcId, nErrorCode);
  914. }
  915. /****************************************************************************************
  916. * Function : fChngOrdDrID
  917. * Description : 진료의 변경
  918. * Argument :
  919. * :
  920. * return type :
  921. * Creator :
  922. ****************************************************************************************/
  923. function fChngOrdDrID(){
  924. var orddrid = ds_inreqfrminfo.getColumn(0,"orddrid");
  925. //진단정보 수정
  926. for(var i = 0 ; i < ds_diagcdlist.rowcount-1 ; i++) {
  927. var status = ds_diagcdlist.getColumn(i,"status"); model.getValue(sDIAGCDLIST_PATH + "[" + i + "]/status");
  928. if(status == "-"){
  929. model.setValue(sDIAGCDLIST_PATH + "[" + i + "]/status", "u");
  930. }
  931. model.setValue(sDIAGCDLIST_PATH + "[" + i + "]/orddrid" , orddrid);
  932. }
  933. //수술진단정보 수정
  934. for(var i=1; i < grd_oplist.rows;i++){
  935. var status = model.getValue(sOPCDLIST_PATH + "[" + i + "]/status");
  936. if(status == "-"){
  937. model.setValue(sOPCDLIST_PATH + "[" + i + "]/status", "u");
  938. }
  939. model.setValue(sOPCDLIST_PATH + "[" + i + "]/orddrid" , orddrid);
  940. }
  941. model.refresh();
  942. }
  943. /****************************************************************************************
  944. * Function : fOpenDiagPopUp
  945. * Description : 진단팝업 open
  946. * Argument :
  947. * :
  948. * return type :
  949. * Creator :
  950. ****************************************************************************************/
  951. function fOpenDiagPopUp(){
  952. //pyj 파라메터를 넘겨준다.(/root/temp->/root/tempdiag)
  953. frmf_setParameter("SPMMO3200_param_nodepath","ds_tempdiag_selectdiaglist");
  954. // modal("SPMMO03200");
  955. frmf_modal("SPMMO03200","SPMMO03200",null,null,null,null,null,null,null,null,null,null,"M");
  956. var useyn = frmf_getParameter("SPMMO03200_rtn_useyn");
  957. if(useyn == "Y"){
  958. frmf_setParameter("SPMMO03200_rtn_useyn", "");
  959. var totcnt = ds_tempdiag_selectdiaglist.rowcount;
  960. for(var i = 0 ; i < totcnt ; i++) {
  961. var diagcd = ds_tempdiag_selectdiaglist.getColumn(i,"diagcd");
  962. var icd10cd = ds_tempdiag_selectdiaglist.getColumn(i,"icd10cd");
  963. var diagengnm = ds_tempdiag_selectdiaglist.getColumn(i,"diagengnm");
  964. var diaghngnm = ds_tempdiag_selectdiaglist.getColumn(i,"diaghngnm");
  965. var currow = ds_diagcdlist.rowcount -1;
  966. ds_diagcdlist.setColumn(currow,"status" ,"i");
  967. ds_diagcdlist.setColumn(currow,"diagdd" ,utlf_getCurrentDate());
  968. ds_diagcdlist.setColumn(currow,"diagtypecd","R");
  969. ds_diagcdlist.setColumn(currow,"icd10cd" ,icd10cd);
  970. ds_diagcdlist.setColumn(currow,"diagcd" ,diagcd);
  971. ds_diagcdlist.setColumn(currow,"diagengnm" ,diagengnm);
  972. ds_diagcdlist.setColumn(currow,"diaghngnm" ,diaghngnm);
  973. ds_diagcdlist.setColumn(currow,"orddd" ,ds_inreqfrminfo.getColumn(0,"inhopedd")); //진단일자는 입원예정일
  974. ds_diagcdlist.setColumn(currow,"pid" ,ds_inreqfrminfo.getColumn(0,"pid"));
  975. ds_diagcdlist.setColumn(currow,"cretno" ,0);
  976. ds_diagcdlist.setColumn(currow,"orddeptcd" ,ds_inreqfrminfo.getColumn(0,"orddeptcd"));
  977. ds_diagcdlist.setColumn(currow,"orddrid" ,ds_inreqfrminfo.getColumn(0,"orddrid"));
  978. ds_diagcdlist.addRow();
  979. }
  980. }
  981. // model.recalculate();
  982. dsf_deleteDs("ds_tempdiag_selectdiaglist");
  983. var status = ds_inreqfrminfo.getColumn(0,"status");
  984. if (status == "u") {
  985. ds_main.setColumn(0,"status","수정상태");
  986. } else {
  987. ds_main.setColumn(0,"status","신규상태");
  988. }
  989. }
  990. /****************************************************************************************
  991. * Function : fDeleteRow
  992. * Description : 입원의뢰서 진단, 수술 삭제
  993. * Argument : grdObj : 삭제대상 그리드
  994. * :
  995. * return type :
  996. * Creator :
  997. ****************************************************************************************/
  998. function fDeleteRow(grdObj) {
  999. var selectedRows = grdf_getSelectedRows(grdObj);
  1000. var selectArray = String(selectedRows).split(",");
  1001. var dsObj = this.objects[grdObj.binddataset];
  1002. var totcnt = dsObj.rowcount;
  1003. for(var i = totcnt-1 ; i >= 0 ; i--) {
  1004. for(var j = 0 ; j < selectArray.length ; j++) {
  1005. if(i == parseInt(selectArray[j])) {
  1006. var status = dsObj.getColumn(i,"status");
  1007. if(status == "i") {
  1008. dsObj.deleteRow(i);
  1009. } else if(status == "u" || status == "d" || status == "-") {
  1010. dsObj.setColumn(i,"status","d");
  1011. }
  1012. }
  1013. }
  1014. }
  1015. }
  1016. /****************************************************************************************
  1017. * Function : fSearchOpTermCD
  1018. * Description : 수술용어코드 검색
  1019. * Argument :
  1020. * :
  1021. * return type :
  1022. * Creator :
  1023. ****************************************************************************************/
  1024. function fSearchOpTermCD() {
  1025. var icd9cd = ds_opcdlist.getColumn(ds_opcdlist.rowposition,"icd9cd");
  1026. var opengnm = ds_opcdlist.getColumn(ds_opcdlist.rowposition,"opengnm");
  1027. var ophngnm = ds_opcdlist.getColumn(ds_opcdlist.rowposition,"ophngnm");
  1028. var perfdeptcd = ds_inreqfrminfo.getColumn(0,"orddeptcd");
  1029. var perfdrid = ds_inreqfrminfo.getColumn(0,"orddrid");
  1030. if(icd9cd == "" && opengnm == "" && ophngnm == ""){ //아무 값도 입력하지 않는 경우 return
  1031. return;
  1032. }
  1033. if(grd_oplist.currentcol == grd_oplist.getBindCellIndex("body","icd9cd")) {
  1034. var param = utlf_getCurrentDate() + "▦" + perfdeptcd + "▦" + perfdrid + "▦" + icd9cd;
  1035. frmf_setParameter("SPMMO11000_param", param);
  1036. } else if(grd_oplist.currentcol == grd_oplist.getBindCellIndex("body","ophngnm")) {
  1037. var param = utlf_getCurrentDate() + "▦" + perfdeptcd + "▦" + perfdrid + "▦" + "" + "▦" + ophngnm + "▦" + "" + "▦" + "H";
  1038. frmf_setParameter("SPMMO11000_param", param);
  1039. } else if(grd_oplist.currentcol == grd_oplist.getBindCellIndex("body","opengnm")) {
  1040. var param = utlf_getCurrentDate() + "▦" + perfdeptcd + "▦" + perfdrid + "▦" + "" + "▦" + opengnm + "▦" + "" + "▦" + "E";
  1041. frmf_setParameter("SPMMO11000_param", param);
  1042. }
  1043. frmf_modal("SPMMO11000","SPMMO11000",null,null,null,null,null,null,null,null,null,null,"M");
  1044. var useyn = frmf_getParameter("SPMMO11000_rtn_useyn");
  1045. if(useyn == "Y") {
  1046. frmf_setParameter("SPMMO11000_rtn_useyn", "");
  1047. fSetOpTermCD();
  1048. } else {
  1049. frmf_setParameter("SPMMO11000_rtn_useyn", "");
  1050. var currow = ds_opcdlist.rowposition;
  1051. ds_opcdlist.setColumn(currow,"icd9cd","");
  1052. ds_opcdlist.setColumn(currow,"opengnm","");
  1053. ds_opcdlist.setColumn(currow,"ophngnm","");
  1054. }
  1055. }
  1056. /****************************************************************************************
  1057. * Function : fSetOpTermCD
  1058. * Description : 수술용어코드 설정
  1059. * Argument :
  1060. * :
  1061. * return type :
  1062. * Creator :
  1063. ****************************************************************************************/
  1064. function fSetOpTermCD(){
  1065. ds_opcdlist.setColumn(0, "status" , "i");
  1066. ds_opcdlist.setColumn(0, "diagdd" , utlf_getCurrentDate());
  1067. ds_opcdlist.setColumn(0, "diagtypecd" , "O");
  1068. ds_opcdlist.setColumn(0, "icd9cd" , ds_tmp.getColumn(ds_tmp.rowposition, "opcd"));
  1069. ds_opcdlist.setColumn(0, "diagcd" , ds_tmp.getColumn(ds_tmp.rowposition, "opcd"));
  1070. ds_opcdlist.setColumn(0, "opengnm" , ds_tmp.getColumn(ds_tmp.rowposition, "openm"));
  1071. ds_opcdlist.setColumn(0, "ophngnm" , ds_tmp.getColumn(ds_tmp.rowposition, "opnm"));
  1072. ds_opcdlist.setColumn(0, "orddd" , ds_inreqfrminfo.getColumn(0, "inhopedd"));
  1073. ds_opcdlist.setColumn(0, "pid" , ds_inreqfrminfo.getColumn(0, "pid"));
  1074. ds_opcdlist.setColumn(0, "cretno" , 0);
  1075. ds_opcdlist.setColumn(0, "orddeptcd" , ds_inreqfrminfo.getColumn(0, "orddeptcd"));
  1076. ds_opcdlist.setColumn(0, "orddrid" , ds_inreqfrminfo.getColumn(0, "orddrid"));
  1077. }
  1078. /****************************************************************************************
  1079. * Function : fReqInReqDiagOpList
  1080. * Description : 입원의뢰서 진단,수술 리스트 조회
  1081. * Argument :
  1082. * :
  1083. * return type :
  1084. * Creator :
  1085. ****************************************************************************************/
  1086. function fReqInReqDiagOpList() {
  1087. ds_req.clear();
  1088. dsf_makeValue(ds_req,"pid" ,"string",ds_inreqfrminfo.getColumn(0,"pid"));
  1089. dsf_makeValue(ds_req,"orddd" ,"string",ds_inreqfrminfo.getColumn(0,"inhopedd")); //입원희망일자
  1090. dsf_makeValue(ds_req,"cretno" ,"string",0);
  1091. dsf_makeValue(ds_req,"orddeptcd","string",ds_inreqfrminfo.getColumn(0,"orddeptcd"));
  1092. dsf_makeValue(ds_req,"orddrid" ,"string",ds_inreqfrminfo.getColumn(0,"orddrid"));
  1093. // submit("TRMMO00112");
  1094. var oParam = {};
  1095. oParam.id = "TRMMO00112";
  1096. oParam.service = "prcpmngtapp.PatDiagMngt";
  1097. oParam.method = "reqGetInReqDiagInfo";
  1098. oParam.inds = "req=ds_req";
  1099. oParam.outds = "ds_diagcdlist=diagcdlist ds_opcdlist=opcdlist";
  1100. oParam.async = false;
  1101. oParam.callback = "";
  1102. tranf_submit(oParam);
  1103. // model.recalculate();
  1104. ds_diagcdlist.addRow();
  1105. }
  1106. /****************************************************************************************
  1107. * Function : fCentValChng
  1108. * Description : 암센터 병동코드조회
  1109. * Argument :
  1110. * :
  1111. * return type :
  1112. * Creator :
  1113. ****************************************************************************************/
  1114. function fCentValChng(){
  1115. var wardtypecd = ds_inreqfrminfo.getColumn(0,"wardtypecd");
  1116. if(wardtypecd == "01") {
  1117. case2.cmb_specwardcd.enable = true;
  1118. ds_inreqfrminfo.setColumn(0,"specwardcd","-");
  1119. } else {
  1120. case2.cmb_specwardcd.enable = false;
  1121. ds_inreqfrminfo.setColumn(0,"specwardcd","-");
  1122. }
  1123. ds_inreqfrminfo.setColumn(0,"specroomyn","");
  1124. }
  1125. /****************************************************************************************
  1126. * Function : fChngRoomInfo
  1127. * Description : 병실정보 변경
  1128. * Argument :
  1129. * :
  1130. * return type :
  1131. * Creator :
  1132. ****************************************************************************************/
  1133. function fChngRoomInfo(){
  1134. case2.cmb_specwardcd.enable = true;
  1135. ds_inreqfrminfo.setColumn(0,"wardtypecd","");
  1136. ds_inreqfrminfo.setColumn(0,"specwardcd","-");
  1137. }
  1138. /****************************************************************************************
  1139. * Function : fInDeciPrint
  1140. * Description : 입원약정서 출력
  1141. * Argument :
  1142. * :
  1143. * return type :
  1144. * Creator :
  1145. ****************************************************************************************/
  1146. function fInDeciPrint(vPid, vInrsrvAcptdd, vOrdDeptcd, vOrdDrid, vInsukind, vPrintflag) {
  1147. // 입원약정서 제어 시작 by 조중래 20120322
  1148. // var bExist = false;
  1149. // var ivrObjt = document.all("ivr_agmt");
  1150. //
  1151. // if (ivrObjt == null) {
  1152. // body.createChild("xforms:iviewer", "id:ivr_agmt; src:../../../pam/ipatmngtweb/xrw/SPPMI03200_입원약정서관리.xrw");
  1153. // ivrObjt = document.all("ivr_agmt");
  1154. // }
  1155. //
  1156. // bExist = ivrObjt.window.javascript.fReqGetInAgmtCount(vPid, vInrsrvAcptdd, vPrintflag); // 입원약정서 존재여부 판단
  1157. //
  1158. // if (bExist != true) { // 1. 해당 입원에 대한 약정서가 존재하지 않는 경우 약정서 자동출력
  1159. // ivrObjt.window.javascript.fPrintAgmt(vPid, vInrsrvAcptdd, vOrdDeptcd, vOrdDrid, vPrintflag, "Y", "", "", vInsukind);
  1160. // } else if(vPrintflag == "2"){ // 2. 환자가 입원약정서를 지참하지 않은 경우 입원약정서 관리화면에서 재출력
  1161. // sysf_messageBox("유효한 기간약정서가 존재하므로 약정서를 출력 하지않습니다.\n\n자세한 내용의 문의는 원무팀으로 안내해주시기 바랍니다", "I999");
  1162. // } else {
  1163. // sysf_messageBox("유효한 입원약정서가 존재하므로 약정서를 출력 하지않습니다.\n\n자세한 내용의 문의는 원무팀으로 안내해주시기 바랍니다", "I999");
  1164. // }
  1165. /* tf화면은 DIV로 불러 올수 없으므로 팝업으로 띄워 실행. tf쪽에 데이터를 받아 처리하고 값을 리턴하도록 수정 필요. */
  1166. xxf_tfSetParameter("SPPMI03200_PARM_PID" , vPid);
  1167. xxf_tfSetParameter("SPPMI03200_PARM_ORDDD" , vInrsrvAcptdd);
  1168. // xxf_tfSetParameter("SPPMI03200_PARM_AGMTTYPE" , "");
  1169. xxf_tfSetParameter("SPPMI03200_PARM_ORDDEPTCD" , vOrdDeptcd);
  1170. xxf_tfSetParameter("SPPMI03200_PARM_ORDDRID" , vOrdDrid);
  1171. // xxf_tfSetParameter("SPPMI03200_PARM_CRETNO" , ds_paminfo.getColumn(0,"cretno"));
  1172. // xxf_tfSetParameter("SPPMI03200_PARM_ORDTYPE" , ds_paminfo.getColumn(0,"orgordtype"));
  1173. xxf_tfModal("SPPMI03200",1,50,50,null,null,null,null,null,null,null,"none");
  1174. }
  1175. /****************************************************************************************
  1176. * Function : fChkUserAuth
  1177. * Description : 사용자 권한 검사, 입원결정서는 해당 진료과의 의사만 저장, 수정, 삭제가 가능함
  1178. * Argument :
  1179. * :
  1180. * return type :
  1181. * Creator :
  1182. ****************************************************************************************/
  1183. function fChkUserAuth() {
  1184. var status = ds_inreqfrminfo.getColumn(0,"status");
  1185. var sOrdDeptCd = ds_inreqfrminfo.getColumn(0,"orddeptcd");
  1186. var sUserDeptCd = sysf_getUserInfo("dutplcecd");
  1187. if(sOrdDeptCd == sUserDeptCd){
  1188. return true;
  1189. }
  1190. if(sOrdDeptCd =="2210000000" || sOrdDeptCd == "2361100000" || sOrdDeptCd =="2200000000") { // 병리과, 국제진료센터, 진단검사의학과
  1191. return false;
  1192. }
  1193. var sErOrdDeptCd = ds_hardcdno.getColumn(0,"hardcd") //응급의학과인 경우, 신규등록은 타과도 가능하게 처리
  1194. if(sUserDeptCd == sErOrdDeptCd){
  1195. return true;
  1196. }
  1197. var bmtopen = opener.frmf_getParameter("SPMMO00100_BMTDEPTCD"); // BMT 코디네이터실인경우 입원의뢰서 작성 가능
  1198. if (!utlf_isNull(bmtopen)) {
  1199. return true;
  1200. }
  1201. if(menuauthchkyn=="Y"){ // 2013/01/21 Start 전문간호로 로그인시 저장 할 수 있도록 기능 추가
  1202. return true;
  1203. } // 2013/01/21 End
  1204. if(sOrdDeptCd == "2040000000" || sOrdDeptCd == "2041100000" || sOrdDeptCd =="2040400000") { //외과, 유방센터는 같은과이다
  1205. if(sUserDeptCd == "2040000000" || sUserDeptCd == "2041100000" || sUserDeptCd == "2040400000" ) {
  1206. return true;
  1207. }
  1208. }
  1209. if(lf_ContainsHardCD("445", sOrdDeptCd) && lf_ContainsHardCD("445", sUserDeptCd)) { // 2014.05.16 엄영만 소아과 분과끼리는 의뢰서 작성 가능
  1210. return true;
  1211. }
  1212. var userauth = ds_userauth.getColumn(0,"hardcd"); // 하드코드 91 입원의뢰서 권한체크여부(타과 입원장 발행 가능여부)
  1213. if(userauth == "A") { // 모든과에서 입원의뢰서 등록가능
  1214. return true;
  1215. } else if(userauth == "P") { // 특정과 (하드코드 테이블 92번에 지정)만 타과 입원장 발급 가능
  1216. if(lf_ContainsHardCD("92", sUserDeptCd)) { // 특정과 (하드코드 테이블 92번에 지정)만 타과 입원장 발급 가능
  1217. return true;
  1218. } else {
  1219. return false;
  1220. }
  1221. } else if(userauth == "I") { // 특정인 (하드코드 테이블 93번에 지정)만 타과 입원장 발급 가능
  1222. if(lf_ContainsHardCD("93",sysf_getUserInfo("userid"))) { // 특정과 (하드코드 테이블 92번에 지정)만 타과 입원장 발급 가능
  1223. return true;
  1224. } else {
  1225. return false;
  1226. }
  1227. } else {
  1228. return false;
  1229. }
  1230. }
  1231. /****************************************************************************************
  1232. * Function : fChkValidSave
  1233. * Description : 입원의뢰서 저장 전, 데이터 무결성 확인.
  1234. * Argument :
  1235. * :
  1236. * return type :
  1237. * Creator :
  1238. ****************************************************************************************/
  1239. function fChkValidSave() {
  1240. var inhopedd = ds_inreqfrminfo.getColumn(0,"inhopedd"); //입원예정일
  1241. var status = ds_inreqfrminfo.getColumn(0,"status"); //처리구분
  1242. if(inhopedd < utlf_getCurrentDate() && status == "i"){ //입원예정일이 현재일자보다 작은 경우
  1243. sysf_messageBox("입원예정일이 이전 날짜", "E008");
  1244. return false;
  1245. }
  1246. var status = ds_inreqfrminfo.getColumn(0,"status");
  1247. var scheopdd = ds_inreqfrminfo.getColumn(0,"scheopdd"); //수술예정일
  1248. if(!utlf_isNull(scheopdd)){
  1249. if(scheopdd < utlf_getCurrentDate() && status == "i"){ //수술예정일이 현재일자보다 작은 경우
  1250. sysf_messageBox("수술예정일이 이전 날짜", "E008");
  1251. return false;
  1252. }
  1253. }
  1254. var orddrnm = cmb_orddrid.text;
  1255. var orddeptnm = cmb_orddeptcd.text;
  1256. if(orddeptnm.length < 1){
  1257. sysf_messageBox("담당진료과를", "C002");
  1258. return false;
  1259. }
  1260. if(orddrnm.length < 1){
  1261. sysf_messageBox("전문의(담당교수)를", "C002");
  1262. return false;
  1263. }
  1264. var erreglyn = ds_inreqfrminfo.getColumn(0,"erreglyn"); //입원구분
  1265. if(cmb_erreglyn.length < 1 || utlf_isNull(erreglyn)) {
  1266. sysf_messageBox("예상입원기간의 입원구분을", "C002");
  1267. return false;
  1268. }
  1269. return true;
  1270. }
  1271. /****************************************************************************************
  1272. * Function : fSaveChkValidDiagOp
  1273. * Description : 진단,수술 그리드에 저장할 내역이 있는 count한다.
  1274. * Argument : dsObj : Dataset 명
  1275. * :
  1276. * return type :
  1277. * Creator :
  1278. ****************************************************************************************/
  1279. function fSaveChkValidDiagOp(dsObj){
  1280. var cnt = 0;
  1281. for(var i = 0 ; i < dsObj.rowcount ; i++){
  1282. var status = dsObj.getColumn(i,"status");
  1283. if(status == "i" || status == "d"){
  1284. cnt++;
  1285. }
  1286. }
  1287. if(cnt > 0){
  1288. return true; //변경된 사항이 있는 경우 true return
  1289. }else{
  1290. return false;
  1291. }
  1292. }
  1293. /****************************************************************************************
  1294. * Function : fSetDiagOpInhopeDD
  1295. * Description : 진단, 수술 저장시 진료일자는 입원희망일자로 설정해야 함
  1296. * 진단에 대한 환자 진료과, 진료의도 부서에 설정
  1297. * Argument :
  1298. * :
  1299. * return type :
  1300. * Creator :
  1301. ****************************************************************************************/
  1302. function fSetDiagOpInhopeDD(){
  1303. var inhopedd = ds_inreqfrminfo.getColumn(0,"inhopedd");
  1304. var orddeptcd = ds_inreqfrminfo.getColumn(0,"orddeptcd");
  1305. var orddrid = ds_inreqfrminfo.getColumn(0,"orddrid");
  1306. for(var i = 0 ; i < ds_diagcdlist.rowcount ; i++){
  1307. ds_diagcdlist.setColumn(i,"orddd" , inhopedd);
  1308. ds_diagcdlist.setColumn(i,"orddeptcd", orddeptcd);
  1309. ds_diagcdlist.setColumn(i,"orddrid" , orddrid);
  1310. }
  1311. for(var i = 0 ; i < ds_opcdlist.rowcount ; i++){
  1312. ds_opcdlist.setColumn(i,"orddd" , inhopedd);
  1313. ds_opcdlist.setColumn(i,"orddeptcd", orddeptcd);
  1314. ds_opcdlist.setColumn(i,"orddrid" , orddrid);
  1315. }
  1316. }
  1317. /****************************************************************************************
  1318. * Function : fInsPatEduc
  1319. * Description : JCI _ 환자교육 입력화면 팝업
  1320. * Argument :
  1321. * :
  1322. * return type :
  1323. * Creator :
  1324. ****************************************************************************************/
  1325. function fInsPatEduc(){
  1326. //kimsj 100114 JCI _ 환자교육 입력화면 팝업
  1327. // mmbfGetHardCodeInfoNm("/root/send/reqdata", "/root/init/pateducyn", 177); //환자교육 등록여부
  1328. lf_getHardCDList("N", 177, null, ds_pateducyn);
  1329. var pateducyn = ds_pateducyn.getColumn(0,"hardcd");
  1330. if(pateducyn == "Y") {
  1331. sysf_messageBox ( "입원 전 환자 및 보호자 교육을 작성하셔야 합니다.", "I" );
  1332. //kimsj 100128 JCI_마지막 수진이력 조회(신규 교육팝업 위해서 필요)
  1333. ds_req.clear();
  1334. dsf_makeValue(ds_req,"pid" ,"string",ds_inreqfrminfo.getColumn(0,"pid"));
  1335. dsf_makeValue(ds_req,"orddeptcd","string",ds_inreqfrminfo.getColumn(0,"orddeptcd"));
  1336. // submit("TRMMO00131");
  1337. var oParam = {};
  1338. oParam.id = "TRMMO00131";
  1339. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1340. oParam.method = "reqGetPrcpInfoRsntly";
  1341. oParam.inds = "req=ds_req";
  1342. oParam.outds = "ds_prcpinforsntly=prcpinforsntly";
  1343. oParam.async = false;
  1344. oParam.callback = "";
  1345. tranf_submit(oParam);
  1346. var vPid = ds_prcpinforsntly.getColumn(0,"pid");
  1347. var vOrddd = ds_prcpinforsntly.getColumn(0,"orddd");
  1348. var vCretno = ds_prcpinforsntly.getColumn(0,"cretno");
  1349. var vEducd = "010";
  1350. var vEducnts = "입원 목적, 질병상태, 치료계획, 예상되는 치료결과, 담당 주치의 소개, 해당하는 경우 검사결과 등에 대해 설명함";
  1351. frmf_setParameter("SPMRJ00200_pid" , vPid);
  1352. frmf_setParameter("SPMRJ00200_orddd" , vOrddd);
  1353. frmf_setParameter("SPMRJ00200_cretno" , vCretno);
  1354. frmf_setParameter("SPMRJ00200_educd" , vEducd);
  1355. frmf_setParameter("SPMRJ00200_educnts" , vEducnts);
  1356. frmf_setParameter("SPMRJ00200_workpart" , "inreq");
  1357. //modal("SPMRJ00200");
  1358. // modal("SPMRJ00200", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; min:hidden, max:hidden;");
  1359. frmf_modal("SPMRJ00200","SPMRJ00200",null,null,1,null,null,null,null,null,null,null,"M");
  1360. }
  1361. }
  1362. /****************************************************************************************
  1363. * Function : fSaveInReq
  1364. * Description : 입원의뢰서 저장, 기존의 내역을 수정한 경우, 변경여부 검사
  1365. * Argument :
  1366. * :
  1367. * return type :
  1368. * Creator :
  1369. ****************************************************************************************/
  1370. function fSaveInReq() {
  1371. var sInrsrvstat = ds_inreqfrminfo.getColumn(0,"inrsrvstat");
  1372. if(utlf_isNull(sInrsrvstat)) {
  1373. sysf_messageBox("입원의뢰서 종류(예약/결정)을 지정하십시오", "I");
  1374. return;
  1375. }
  1376. var status = ds_inreqfrminfo.getColumn(0,"status");
  1377. var displayrow = ds_inreqhistlist.rowposition;
  1378. //암센터 병동일 경우 병동이 지정되지 않으면 메시지를 띄워줌
  1379. var wardtypecd = ds_inreqfrminfo.getColumn(0,"wardtypecd");
  1380. if(wardtypecd == "01") {
  1381. var specwardcd = ds_inreqfrminfo.getColumn(0,"specwardcd");
  1382. if(specwardcd == "-" || utlf_isNull(specwardcd)) {
  1383. sysf_messageBox("암센터병동을 지정하십시오", "I");
  1384. return;
  1385. }
  1386. }
  1387. if(!utlf_isNull(status)) {
  1388. // 원무에서 입원등록을 한 경우는 수정을 할 수 없도록 조건 추가 (2008.09.26 김영학)
  1389. var inflag = ds_inreqfrminfo.getColumn(0,"inflag");
  1390. var indd = ds_inreqfrminfo.getColumn(0,"indd");
  1391. if(inflag == "Y" || indd != "00000000") {
  1392. sysf_messageBox("원무에서 입원등록을 한 경우는 입원의뢰서를 수정", "E001");
  1393. return;
  1394. }
  1395. } else {
  1396. for(var i = 0 ; i < ds_inreqhistlist.rowcount ; i++) {
  1397. var inflag = ds_inreqhistlist.getColumn(i,"inflag");
  1398. if (inflag == 'G'){
  1399. var inrsrvstat = ds_inreqhistlist.getColumn(i,"inrsrvstat");
  1400. var orddeptcd = ds_inreqhistlist.getColumn(i,"orddeptcd");
  1401. var publicbedyn = ds_inreqhistlist.getColumn(i,"publicbedyn");
  1402. var reqordeptcd = ds_inreqfrminfo.getColumn(0,"orddeptcd");
  1403. if(inrsrvstat == "S" && publicbedyn != "Y") {
  1404. var depthngnm = ds_orddept.getColumn(ds_orddept.findRow("deptcd",orddeptcd),"depthngnm");
  1405. sysf_messageBox("["+depthngnm+"]에서 이미 결정상태의 입원의뢰서가 있습니다.\n내역을 수정 또는 삭제 후 진행하십시오.", "");
  1406. return;
  1407. } else if((inrsrvstat == "T") && (orddeptcd == reqordeptcd)) {
  1408. sysf_messageBox("동일 과에 이미 예약상태의 입원의뢰서가 있습니다. 내역을 선택해서 수정하세요.", "");
  1409. return;
  1410. }
  1411. }
  1412. }
  1413. }
  1414. var erreglyn = ds_inreqfrminfo.getColumn(0,"erreglyn");
  1415. if(erreglyn == "F") {
  1416. var ampmflag = ds_inreqfrminfo.getColumn(0,"ampmflag"); //입원구분
  1417. if (ampmflag == "-" || utlf_isNull(ampmflag)) {
  1418. sysf_messageBox("DCC입원은 오전오후를", "C002");
  1419. return;
  1420. }
  1421. }
  1422. // 결정상태에서 병상정보가 누락일 경우에는 return
  1423. var sPublicbedyn = ds_inreqfrminfo.getColumn(0,"publicbedyn");
  1424. var sAssgbed = ds_inreqfrminfo.getColumn(0,"assgbed");
  1425. if(sInrsrvstat != "T" && sPublicbedyn != "Y" && (sAssgbed == "-" || utlf_isNull(sAssgbed))) {
  1426. sysf_messageBox("병상 정보가 누락되었습니다.", "I");
  1427. return;
  1428. }
  1429. if(fChkUserAuth()==false){
  1430. var hngnm = ds_inreqfrminfo.getColumn(0,"hngnm");
  1431. sysf_messageBox("[" + hngnm + "]환자의 입원결정서 작성 권한이", "I004");
  1432. return;
  1433. }
  1434. //20130610 Start
  1435. //응급환자에 대해서 입원의뢰를 할경우 응급의학관리료 처방여부 체크
  1436. if(ds_inreqfrminfo.getColumn(0,"inrsrvstat") == "S" && ds_paminfo.getColumn(0,"ioflag") == "E") {
  1437. ds_req.clear();
  1438. dsf_makeValue(ds_req,"pid", "string",ds_paminfo.getColumn(0,"pid"));
  1439. dsf_makeValue(ds_req,"orddd", "string",ds_paminfo.getColumn(0,"indd"));
  1440. dsf_makeValue(ds_req,"cretno","string",ds_paminfo.getColumn(0,"cretno"));
  1441. var oParam = {};
  1442. oParam.id = "TRMMO00149";
  1443. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1444. oParam.method = "reqGetErprcpyn";
  1445. oParam.inds = "req=ds_req";
  1446. oParam.outds = "ds_hidden2_erprcpyn=result";
  1447. oParam.async = false;
  1448. oParam.callback = "cf_TRMMO00149";
  1449. tranf_submit(oParam);
  1450. }
  1451. //20130610 End
  1452. if(fChkValidSave() == true){
  1453. //grd_diaglist.gridToInstance(); //검색 후 인스턴스 상이로 인해 임시 처리 (2009.1.7)
  1454. var erreglyn = ds_inreqfrminfo.getColumn(0,"erreglyn");
  1455. if(erreglyn == "E") {
  1456. ds_req.clear();
  1457. var savediag = dsf_getDsCSV(ds_diagcdlist); // getNodeListCSV(model.instance1.selectNodes(sDIAGCDLIST_PATH));
  1458. dsf_makeValue(ds_req,"diag","string",savediag);
  1459. var oParam = {};
  1460. oParam.id = "TRMMO00125";
  1461. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1462. oParam.method = "reqGetPatSerDiagChk";
  1463. oParam.inds = "req=ds_req";
  1464. oParam.outds = "ds_serdiagermsg=serdiagermsg";
  1465. oParam.async = false;
  1466. oParam.callback = "cf_TRMMO00125";
  1467. tranf_submit(oParam);
  1468. }
  1469. //2012.05.31 입원의뢰서 작성시 CP 적용 가능한 진단 입력시에 CP적용여부 확인
  1470. var cpyn = ds_inreqfrminfo.getColumn(0,"cpyn");
  1471. if(cpyn == "N") {
  1472. ds_req.clear();
  1473. var savediag = dsf_getDsCSV(ds_diagcdlist); // getNodeListCSV(model.instance1.selectNodes(sDIAGCDLIST_PATH));
  1474. dsf_makeValue(ds_req,"diag","string",savediag);
  1475. var oParam = {};
  1476. oParam.id = "TRMMO00145";
  1477. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1478. oParam.method = "reqGetAbleCpDiagChk";
  1479. oParam.inds = "req=ds_req";
  1480. oParam.outds = "ds_ablecp=ablecp";
  1481. oParam.async = false;
  1482. oParam.callback = "cf_TRMMO00145";
  1483. tranf_submit(oParam);
  1484. }
  1485. //2012/07/18 Start
  1486. var flagchk = ds_inreqfrminfo.getColumn(0,"inrsrvstat");
  1487. var atdoct = ds_inreqfrminfo.getColumn(0,"atdoctid");
  1488. var chkinstcd = ds_hardcditem.rowcount; // instance1.selectNodes("/root/init/hardcditem/hardcd");
  1489. for(var i = 0 ; i < chkinstcd ; i++) {
  1490. if(sysf_getUserInfo("dutplceinstcd") == ds_hardcditem.getColumn(i,"hardcd")) {
  1491. if(flagchk == "S" && utlf_isNull(atdoct)){ // 결정인 상태에서 담당의가 비어있다면 블럭킹
  1492. sysf_messageBox("담당의 선택은 필수","E008");
  1493. return;
  1494. }
  1495. }
  1496. }
  1497. //2012/07/18 End
  1498. //2013/10/29 Start 입원예정일 +1일에 전문의의 출장여부를 체크
  1499. if(flagchk == "S"){
  1500. ds_req.clear();
  1501. dsf_makeValue(ds_req,"orddeptcd" ,"string",ds_inreqfrminfo.getColumn(0,"orddeptcd"));
  1502. dsf_makeValue(ds_req,"orddrid" ,"string",ds_inreqfrminfo.getColumn(0,"orddrid"));
  1503. dsf_makeValue(ds_req,"execfromdd","string",ds_inreqfrminfo.getColumn(0,"inhopedd"));
  1504. dsf_makeValue(ds_req,"exectodd" ,"string",ds_inreqfrminfo.getColumn(0,"inhopedd"));
  1505. //2013/12/05 시작(원무쪽 업무 변경에 따른 소스 수정)
  1506. //model.makeValue("/root/send/reqdata/includeyn", "N");
  1507. dsf_makeValue(ds_req,"ioflag","string","I");
  1508. //2013/12/05 종료
  1509. var oParam = {};
  1510. oParam.id = "TRMMO00153";
  1511. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1512. oParam.method = "reqGetDrHoliday";
  1513. oParam.inds = "req=ds_req";
  1514. oParam.outds = "null";
  1515. oParam.async = false;
  1516. oParam.callback = "cf_TRMMO00153";
  1517. tranf_submit(oParam);
  1518. }
  1519. //2013/10/29 End
  1520. var status = ds_inreqfrminfo.getColumn(0,"status");
  1521. if(status == "u"){ //수정인 경우
  1522. var messageflag = sysf_messageBox("수정", "S001");
  1523. if(messageflag == 6) {
  1524. var updateflag = lf_compareNodeVal(ds_inreqfrminfo,ds_temp_inreqfrminfo);
  1525. var diagflag = fSaveChkValidDiagOp(ds_diagcdlist);
  1526. var opflag = fSaveChkValidDiagOp(ds_opcdlist);
  1527. if(updateflag == false){ //입원의뢰서 내용이 변경된 사항이 없는 경우, status '-'로 처리
  1528. ds_inreqfrminfo.setColumn(0,"status","-");
  1529. }
  1530. if(updateflag != true && diagflag != true && opflag != true){
  1531. sysf_messageBox("변경된 내용이", "I004");
  1532. return;
  1533. }
  1534. //입원의뢰서 진단 저장 전에 잔료일자(orddd)를 입원예정일(inhopedd)로 설정
  1535. fSetDiagOpInhopeDD();
  1536. //진단, 수술그리드의 입력을 위해 추가된 마지막 한줄을 제거한다.
  1537. ds_diagcdlist.deleteRow(ds_diagcdlist.rowcount-1);
  1538. ds_opcdlist.deleteRow(ds_opcdlist.rowcount-1);
  1539. // var saveinreq = dsf_getDsCSV(ds_inreqfrminfo); // getNodeListCSV(model.instance1.selectNodes(sINREQFRMINFO_PATH));
  1540. // var savediag = dsf_getDsCSV(ds_diagcdlist); // getNodeListCSV(model.instance1.selectNodes(sDIAGCDLIST_PATH));
  1541. // var saveop = dsf_getDsCSV(ds_opcdlist); // getNodeListCSV(model.instance1.selectNodes(sOPCDLIST_PATH));
  1542. // dsf_makeValue(ds_send_savedata,"inreq" ,"string",saveinreq);
  1543. // dsf_makeValue(ds_send_savedata,"diag" ,"string",savediag);
  1544. // dsf_makeValue(ds_send_savedata,"op" ,"string",saveop);
  1545. var rtnval = "";
  1546. var oParam = {};
  1547. oParam.id = "TXMMO00102";
  1548. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1549. oParam.method = "reqExeSaveInReq";
  1550. oParam.inds = "inreq=ds_inreqfrminfo diag=ds_diagcdlist op=ds_opcdlist";
  1551. oParam.outds = "ds_inreqhistlist=inreqhistlist ds_diagcdlist=diagcdlist ds_opcdlist=opcdlist";
  1552. oParam.async = false;
  1553. oParam.callback = "cf_TXMMO00102";
  1554. tranf_submit(oParam);
  1555. if(arErrorCode.pop("TXMMO00102") >= 0){
  1556. rtnval = true;
  1557. } else {
  1558. rtnval = false;
  1559. }
  1560. //ds_opcdlist.updateColID("diagcd","orgopcd");
  1561. //2012/07/19 Start
  1562. if(rtnval == true && opener.frmf_getParameter("opener_id")=="SPMMO26000"){ // 입원결정을 통해서 들어왔을 경우
  1563. ds_req.clear();
  1564. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1565. dsf_makeValue(ds_req,"pid" ,"string",ds_temp.getColumn(0,"pid"));
  1566. dsf_makeValue(ds_req,"orddd" ,"string",opener.frmf_getParameter("SPMMO00100_indd"));
  1567. dsf_makeValue(ds_req,"cretno" ,"string",opener.frmf_getParameter("SPMMO00100_incretno"));
  1568. dsf_makeValue(ds_req,"adflag" ,"string",opener.frmf_getParameter("SPMMO00100_decisionkind"));
  1569. dsf_makeValue(ds_req,"answer" ,"string","7");
  1570. var oParam = {};
  1571. oParam.id = "TXMMO26001";
  1572. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1573. oParam.method = "reqInsDecisioninfo";
  1574. oParam.inds = "req=ds_req";
  1575. oParam.outds = "ds_main=item";
  1576. oParam.async = false;
  1577. oParam.callback = "cf_TXMMO26001";
  1578. tranf_submit(oParam);
  1579. } else if(rtnval == true){
  1580. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  1581. if(!utlf_isNull(pamInfoCvs)){
  1582. dsf_setCSVToDs("ds_result_paminfo", pamInfoCvs);
  1583. if(ds_result_paminfo.getColumn(0,"pid") == ds_inreqfrminfo.getColumn(0,"pid")) { //상단 정보와 입원의뢰서 환자의 번호가 같을시
  1584. ds_req.clear();
  1585. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1586. dsf_makeValue(ds_req,"pid" ,"string",ds_result_paminfo.getColumn(0,"pid"));
  1587. dsf_makeValue(ds_req,"orddd" ,"string",ds_result_paminfo.getColumn(0,"indd"));
  1588. dsf_makeValue(ds_req,"cretno" ,"string",ds_result_paminfo.getColumn(0,"cretno"));
  1589. dsf_makeValue(ds_req,"adflag" ,"string","A");
  1590. dsf_makeValue(ds_req,"answer" ,"string","7");
  1591. var oParam = {};
  1592. oParam.id = "TXMMO26001";
  1593. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1594. oParam.method = "reqInsDecisioninfo";
  1595. oParam.inds = "req=ds_req";
  1596. oParam.outds = "ds_main=item";
  1597. oParam.async = false;
  1598. oParam.callback = "";
  1599. tranf_submit(oParam);
  1600. } else if(ds_result_paminfo.getColumn(0,"pid") != ds_inreqfrminfo.getColumn(0,"pid")) { //상단 정보와 입원의뢰서 환자의 번호가 틀릴시
  1601. ds_req.clear();
  1602. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1603. dsf_makeValue(ds_req,"pid" ,"string",ds_inreqfrminfo.getColumn(0,"pid"));
  1604. dsf_makeValue(ds_req,"orddd" ,"string","");
  1605. dsf_makeValue(ds_req,"cretno" ,"string","");
  1606. dsf_makeValue(ds_req,"adflag" ,"string","A");
  1607. dsf_makeValue(ds_req,"answer" ,"string","7");
  1608. var oParam = {};
  1609. oParam.id = "TXMMO26001";
  1610. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1611. oParam.method = "reqInsDecisioninfo";
  1612. oParam.inds = "req=ds_req";
  1613. oParam.outds = "ds_main=item";
  1614. oParam.async = false;
  1615. oParam.callback = "";
  1616. tranf_submit(oParam);
  1617. }
  1618. } else { // 상단 정보가 없고 메뉴를 통해서 바로 들어왔을시
  1619. ds_req.clear();
  1620. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1621. dsf_makeValue(ds_req,"pid" ,"string",ds_inreqfrminfo.getColumn(0,"pid"));
  1622. dsf_makeValue(ds_req,"orddd" ,"string","");
  1623. dsf_makeValue(ds_req,"cretno" ,"string","");
  1624. dsf_makeValue(ds_req,"adflag" ,"string","A");
  1625. dsf_makeValue(ds_req,"answer" ,"string","7");
  1626. var oParam = {};
  1627. oParam.id = "TXMMO26001";
  1628. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1629. oParam.method = "reqInsDecisioninfo";
  1630. oParam.inds = "req=ds_req";
  1631. oParam.outds = "ds_main=item";
  1632. oParam.async = false;
  1633. oParam.callback = "";
  1634. tranf_submit(oParam);
  1635. }
  1636. }
  1637. //2012/07/19 End
  1638. } else {
  1639. return;
  1640. }
  1641. } else { //신규인 경우
  1642. ds_inreqfrminfo.setColumn(0,"status","i");
  1643. //입원의뢰서 진단 저장 전에 잔료일자(orddd)를 입원예정일(inhopedd)로 설정
  1644. fSetDiagOpInhopeDD();
  1645. //진단, 수술그리드의 입력을 위해 추가된 마지막 한줄을 제거한다.
  1646. //model.removeNode(sDIAGCDLIST_PATH + "[" + (grd_diaglist.rows-1) + "]");
  1647. //model.removeNode(sOPCDLIST_PATH + "[" + (grd_oplist.rows-1) + "]");
  1648. ds_diagcdlist.deleteRow(ds_diagcdlist.rowcount-1);
  1649. // var saveinreq = dsf_getDsCSV(ds_inreqfrminfo); // getNodeListCSV(model.instance1.selectNodes(sINREQFRMINFO_PATH));
  1650. // var savediag = dsf_getDsCSV(ds_diagcdlist); // getNodeListCSV(model.instance1.selectNodes(sDIAGCDLIST_PATH));
  1651. // var saveop = dsf_getDsCSV(ds_opcdlist); // getNodeListCSV(model.instance1.selectNodes(sOPCDLIST_PATH));
  1652. // dsf_makeValue(ds_send_savedata,"inreq" ,"string",saveinreq);
  1653. // dsf_makeValue(ds_send_savedata,"diag" ,"string",savediag);
  1654. // dsf_makeValue(ds_send_savedata,"op" ,"string",saveop);
  1655. var rtnval = "";
  1656. var oParam = {};
  1657. oParam.id = "TXMMO00102";
  1658. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1659. oParam.method = "reqExeSaveInReq";
  1660. oParam.inds = "inreq=ds_inreqfrminfo diag=ds_diagcdlist op=ds_opcdlist";
  1661. oParam.outds = "ds_inreqhistlist=inreqhistlist ds_diagcdlist=diagcdlist ds_opcdlist=opcdlist";
  1662. oParam.async = false;
  1663. oParam.callback = "cf_TXMMO00102";
  1664. tranf_submit(oParam);
  1665. if(arErrorCode.pop("TXMMO00102") >= 0){
  1666. rtnval = true;
  1667. } else {
  1668. rtnval = false;
  1669. }
  1670. //ds_opcdlist.updateColID("diagcd","orgopcd");
  1671. //2012/07/19 Start
  1672. if(rtnval == true && opener.frmf_getParameter("opener_id")=="SPMMO26000"){ // 입원결정을 통해서 들어왔을 경우
  1673. ds_req.clear();
  1674. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1675. dsf_makeValue(ds_req,"pid" ,"string",ds_temp.getColumn(0,"pid"));
  1676. dsf_makeValue(ds_req,"orddd" ,"string",opener.frmf_getParameter("SPMMO00100_indd"));
  1677. dsf_makeValue(ds_req,"cretno" ,"string",opener.frmf_getParameter("SPMMO00100_incretno"));
  1678. dsf_makeValue(ds_req,"adflag" ,"string",opener.frmf_getParameter("SPMMO00100_decisionkind"));
  1679. dsf_makeValue(ds_req,"answer" ,"string","7");
  1680. var oParam = {};
  1681. oParam.id = "TXMMO26001";
  1682. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1683. oParam.method = "reqInsDecisioninfo";
  1684. oParam.inds = "req=ds_req";
  1685. oParam.outds = "ds_main=item";
  1686. oParam.async = false;
  1687. oParam.callback = "cf_TXMMO26001";
  1688. tranf_submit(oParam);
  1689. } else if(rtnval == true){
  1690. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  1691. if(!utlf_isNull(pamInfoCvs)){
  1692. dsf_setCSVToDs("ds_result_paminfo", pamInfoCvs);
  1693. if(ds_result_paminfo.getColumn(0,"pid") == ds_inreqfrminfo.getColumn(0,"pid")) { //상단 정보와 입원의뢰서 환자의 번호가 같을시
  1694. ds_req.clear();
  1695. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1696. dsf_makeValue(ds_req,"pid" ,"string",ds_result_paminfo.getColumn(0,"pid"));
  1697. dsf_makeValue(ds_req,"orddd" ,"string",ds_result_paminfo.getColumn(0,"indd"));
  1698. dsf_makeValue(ds_req,"cretno" ,"string",ds_result_paminfo.getColumn(0,"cretno"));
  1699. dsf_makeValue(ds_req,"adflag" ,"string","A");
  1700. dsf_makeValue(ds_req,"answer" ,"string","7");
  1701. var oParam = {};
  1702. oParam.id = "TXMMO26001";
  1703. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1704. oParam.method = "reqInsDecisioninfo";
  1705. oParam.inds = "req=ds_req";
  1706. oParam.outds = "ds_main=item";
  1707. oParam.async = false;
  1708. oParam.callback = "cf_TXMMO26001";
  1709. tranf_submit(oParam);
  1710. } else if(ds_result_paminfo.getColumn(0,"pid") != ds_inreqfrminfo.getColumn(0,"pid")) { //상단 정보와 입원의뢰서 환자의 번호가 틀릴시
  1711. ds_req.clear();
  1712. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1713. dsf_makeValue(ds_req,"pid" ,"string",ds_inreqfrminfo.getColumn(0,"pid"));
  1714. dsf_makeValue(ds_req,"orddd" ,"string","");
  1715. dsf_makeValue(ds_req,"cretno" ,"string","");
  1716. dsf_makeValue(ds_req,"adflag" ,"string","A");
  1717. dsf_makeValue(ds_req,"answer" ,"string","7");
  1718. var oParam = {};
  1719. oParam.id = "TXMMO26001";
  1720. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1721. oParam.method = "reqInsDecisioninfo";
  1722. oParam.inds = "req=ds_req";
  1723. oParam.outds = "ds_main=item";
  1724. oParam.async = false;
  1725. oParam.callback = "cf_TXMMO26001";
  1726. tranf_submit(oParam);
  1727. }
  1728. } else { // 상단 정보가 없고 메뉴를 통해서 바로 들어왔을시
  1729. ds_req.clear();
  1730. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  1731. dsf_makeValue(ds_req,"pid" ,"string",ds_inreqfrminfo.getColumn(0,"pid"));
  1732. dsf_makeValue(ds_req,"orddd" ,"string","");
  1733. dsf_makeValue(ds_req,"cretno" ,"string","");
  1734. dsf_makeValue(ds_req,"adflag" ,"string","A");
  1735. dsf_makeValue(ds_req,"answer" ,"string","7");
  1736. var oParam = {};
  1737. oParam.id = "TXMMO26001";
  1738. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  1739. oParam.method = "reqInsDecisioninfo";
  1740. oParam.inds = "req=ds_req";
  1741. oParam.outds = "ds_main=item";
  1742. oParam.async = false;
  1743. oParam.callback = "";
  1744. tranf_submit(oParam);
  1745. }
  1746. }
  1747. //2012/07/19 End
  1748. }
  1749. }
  1750. if(rtnval == true){ //저장이 성공한 경우
  1751. //kimsj 100114 JCI _ 환자교육 입력화면 팝업
  1752. if(ds_inreqfrminfo.getColumn(0,"status") == "i") fInsPatEduc();
  1753. var chkrow = null;
  1754. if(ds_inreqhistlist.rowcount > 0){
  1755. if(ds_inreqfrminfo.getColumn(0,"status") == "-") { //2010-01-25 pyj 수정한 내역을 그대로 display해줄것
  1756. fDispInReqHistInfo(displayrow);
  1757. chkrow = displayrow;
  1758. }else{ //내역이 있는 경우, 그리드의 첫번째(가장 최근의 입원의뢰 내역) display
  1759. fDispInReqHistInfo(0);
  1760. chkrow = 0;
  1761. }
  1762. }
  1763. var sReqFlag = "1"; // 약정서 종류 1:입원약정서, 2:기간약정서
  1764. if(sysf_getUserInfo("dutplceinstcd") == "032") {
  1765. var msgData = sysf_messageBox("입원약정서를 출력", "S003", "기간약정서를 출력");
  1766. if(msgData == "7") {
  1767. sReqFlag = "2"; // 기간약정서.
  1768. } else {
  1769. sReqFlag = "1"; // 일반약정서.
  1770. }
  1771. }
  1772. if(ds_inreqfrminfo.getColumn(0,"inrsrvstat") == "S") {
  1773. fInDeciPrint(ds_inreqfrminfo.getColumn(0,"pid")
  1774. ,ds_inreqfrminfo.getColumn(0,"inrsrvacptdd")
  1775. ,ds_inreqfrminfo.getColumn(0,"orddeptcd")
  1776. ,ds_inreqfrminfo.getColumn(0,"orddrid")
  1777. ,ds_inreqfrminfo.getColumn(0,"insukind")
  1778. ,sReqFlag); // 약정서종류 1:입원약정서, 2:기간약정서
  1779. }
  1780. fReqInReqHistList(); //입원의뢰서 이력 조회
  1781. fReqInReqDiagOpList();//입원의뢰서 진단 조회
  1782. fReqInReqCalendar(); //입원의뢰서 달력 조회
  1783. //원무 선택진료의 팝업 호출 추가 (2009.11.03 JJE)
  1784. var specOrd_Pid = ds_inreqfrminfo.getColumn(0,"pid");
  1785. var specOrd_cretno = "0"; //입원장 작성 시점에는 입원등록 정보 없으므로 값 없음
  1786. var specOrd_stnddd = ds_inreqfrminfo.getColumn(0,"inrsrvacptdd"); //입원일 확실치 않으므로 발행일을 대신 넘김
  1787. var specOrd_orddeptcd = ds_inreqfrminfo.getColumn(0,"orddeptcd");
  1788. var specOrd_orddrid = ds_inreqfrminfo.getColumn(0,"orddrid");
  1789. lf_specOrdPopUpYN(specOrd_Pid, specOrd_cretno, specOrd_stnddd, specOrd_orddeptcd, specOrd_orddrid, "I");
  1790. //2013/10/22 Strt 응급대상자 탭에서 바로 들어왔을시 플래그 값 세팅
  1791. // var id = opener.window.javascript.getScreenID();
  1792. var id = opener.frmf_getScreenID();
  1793. sysf_trace(id);
  1794. if(id == "SMMMO04400") {
  1795. // parent.javascript.model.makeValue("/root/temp/SPMMO00100_rtn", "true");
  1796. opener.dsf_createDs("ds_temp");
  1797. opener.dsf_makeValue(ds_temp,"SPMMO00100_rtn","string","true");
  1798. }
  1799. //2013/10/22 End
  1800. } else { //저장이 실패한 경우
  1801. ds_inreqfrminfo.setColumn(0,"status",status); //원래 status값으로 복구
  1802. ds_diagcdlist.addRow();
  1803. //grd_oplist.addRow(true, true);
  1804. // model.recalculate();
  1805. }
  1806. if(ds_inreqhistlist.rowcount > 0){
  1807. ds_inreqhistlist.rowposition = chkrow;
  1808. }
  1809. var status = ds_inreqfrminfo.getColumn(0,"status");
  1810. if(status == "u") {
  1811. ds_main.setColumn(0,"status","수정상태");
  1812. } else {
  1813. ds_main.setColumn(0,"status","신규상태");
  1814. }
  1815. }
  1816. /****************************************************************************************
  1817. * Function : cf_TRMMO00149
  1818. * Description : TRMMO00149 콜백 함수
  1819. * Argument :
  1820. * :
  1821. * return type :
  1822. * Creator :
  1823. ****************************************************************************************/
  1824. function cf_TRMMO00149(sSvcId, nErrorCode, sErrorMsg) {
  1825. if(nErrorCode < 0) return;
  1826. else {
  1827. var flag = ds_hidden2_erprcpyn.getColumn(0,"erprcpyn"); // 응급의학관리료 처방 및 사유 입력 유무
  1828. if(flag == "N"){
  1829. var msgflag = sysf_messageBox(" 응급의료관리료 미발생 환자 입니다.\n 응급실에서 병동으로 입원하는 경우 응급의료관리료를\n 입력하시기 바랍니다.\n","Q003");
  1830. if(msgflag == "7"){
  1831. return;
  1832. }
  1833. }
  1834. }
  1835. }
  1836. /****************************************************************************************
  1837. * Function : cf_TRMMO00125
  1838. * Description : TRMMO00125 콜백 함수
  1839. * Argument :
  1840. * :
  1841. * return type :
  1842. * Creator :
  1843. ****************************************************************************************/
  1844. function cf_TRMMO00125(sSvcId, nErrorCode, sErrorMsg) {
  1845. if(nErrorCode < 0) return;
  1846. else {
  1847. if(ds_serdiagermsg.getColumn(0,"serdiageryn") == "Y") {
  1848. //20080102 김영학 수정: 중증응급 등록한자의 진단명 alert 변경요청번호 533
  1849. sysf_messageBox(ds_serdiagermsg.getColumn(0,"serdiagermsg"), "I" ) ;
  1850. //20080102 서소영 선생님 blocking처리 요청
  1851. return;
  1852. }
  1853. }
  1854. }
  1855. /****************************************************************************************
  1856. * Function : cf_TRMMO00145
  1857. * Description : TRMMO00145 콜백 함수
  1858. * Argument :
  1859. * :
  1860. * return type :
  1861. * Creator :
  1862. ****************************************************************************************/
  1863. function cf_TRMMO00145(sSvcId, nErrorCode, sErrorMsg) {
  1864. if(nErrorCode < 0) return;
  1865. else {
  1866. if(ds_ablecp.getColumn(0,"ablecpyn") == "Y") {
  1867. var ablecpdiagcd = ds_ablecp.getColumn(0,"ablecpdiagcd");
  1868. if("6" == sysf_messageBox(ablecpdiagcd + " 진단은 CP 적용 가능한 진단입니다.\n\nCP적용 하시겠습니까?", "Q999" )) {
  1869. ds_inreqfrminfo.setColumn(0,"cpyn", "Y");
  1870. //rdo_cpyn.refresh(); // CP 적용여부 새로고침.
  1871. }
  1872. }
  1873. }
  1874. }
  1875. /****************************************************************************************
  1876. * Function : cf_TRMMO00153
  1877. * Description : TRMMO00153 콜백 함수
  1878. * Argument :
  1879. * :
  1880. * return type :
  1881. * Creator :
  1882. ****************************************************************************************/
  1883. function cf_TRMMO00153(sSvcId, nErrorCode, sErrorMsg) {
  1884. if(nErrorCode < 0) return;
  1885. }
  1886. /****************************************************************************************
  1887. * Function : cf_TXMMO00102
  1888. * Description : TXMMO00102 콜백 함수
  1889. * Argument :
  1890. * :
  1891. * return type :
  1892. * Creator :
  1893. ****************************************************************************************/
  1894. function cf_TXMMO00102(sSvcId, nErrorCode, sErrorMsg) {
  1895. arErrorCode.push(sSvcId, nErrorCode);
  1896. }
  1897. /****************************************************************************************
  1898. * Function : cf_TXMMO26001
  1899. * Description : TXMMO26001 콜백 함수
  1900. * Argument :
  1901. * :
  1902. * return type :
  1903. * Creator :
  1904. ****************************************************************************************/
  1905. function cf_TXMMO26001(sSvcId, nErrorCode, sErrorMsg) {
  1906. if(nErrorCode < 0) return;
  1907. else opener.opener.frmf_setParameter("adflag", "A");
  1908. }
  1909. /****************************************************************************************
  1910. * Function : fClkBtnInReqDel
  1911. * Description : 삭제버튼 클릭, 취소사유 선택 box를 화면에 띄운다.
  1912. * Argument :
  1913. * :
  1914. * return type :
  1915. * Creator :
  1916. ****************************************************************************************/
  1917. function fClkBtnInReqDel(){
  1918. // 원무에서 입원등록을 한 경우는 수정을 할 수 없도록 조건 추가 (2008.09.26 김영학)
  1919. var inrsrvstat = ds_inreqfrminfo.getColumn(0,"inrsrvstat");
  1920. var indd = ds_inreqfrminfo.getColumn(0,"indd");
  1921. if((inrsrvstat != "S" && inrsrvstat != "T" && inrsrvstat != "D" ) || indd != "00000000" ) {
  1922. sysf_messageBox("원무에서 입원등록을 한 경우는 입원의뢰서를 삭제", "E001");
  1923. return;
  1924. }
  1925. if(fChkUserAuth()==false){
  1926. var hngnm = ds_inreqfrminfo.getColumn(0,"hngnm");
  1927. sysf_messageBox("[" + hngnm + "]환자의 입원결정서 삭제 권한이", "I004");
  1928. return;
  1929. }
  1930. var status = ds_inreqfrminfo.getColumn(0,"status");
  1931. var orddeptcd = ds_temp_inreqfrminfo.getColumn(0,"orddeptcd");
  1932. if(status != "u"){
  1933. sysf_messageBox("삭제할 입원의뢰를", "C002");
  1934. return;
  1935. }
  1936. fCtrlObjDisable(false);
  1937. group1.position.left = 250;
  1938. group1.position.top = 385;
  1939. group1.position.width = 260;
  1940. group1.position.height = 157;
  1941. group1.visible = true;
  1942. }
  1943. /****************************************************************************************
  1944. * Function : fCtrlObjDisable
  1945. * Description : 화면 Object의 enable / disable mode control
  1946. * Argument : bflag : true/false
  1947. * :
  1948. * return type :
  1949. * Creator :
  1950. ****************************************************************************************/
  1951. function fCtrlObjDisable(bflag){
  1952. ipt_pid.enable = bflag; //등록번호
  1953. ipt_patnm.enable = bflag; //성명
  1954. cmb_orddeptcd.enable = bflag; //진료과
  1955. cmb_orddrid.enable = bflag; //담당교수
  1956. ipt_inhopedd.enable = bflag; //입원예정일
  1957. ipt_scheopdd.enable = bflag; //수술예정일
  1958. rdo_cpyn.enable = bflag; //CP적용
  1959. ipt_fcstinterm.enable= bflag; //예상입원기간
  1960. ipt_inrsrvrem.enable = bflag; //원무과 전달사항
  1961. ipt_drrem.enable = bflag; //의료진 참고사항
  1962. //bool_erreqlyn.disabled = bflag; //응급
  1963. case1.rdo_specroomyn.enable= bflag; //병실
  1964. btn_deldiag.enable = bflag; //진단삭제
  1965. btn_opnote.enable = bflag; //수술예약장부
  1966. btn_delop.enable = bflag; //수술삭제
  1967. btn_init.enable = bflag; //초기화
  1968. btn_save.enable = bflag; //저장
  1969. btn_del.enable = bflag; //삭제
  1970. btn_close.enable = bflag; //닫기
  1971. }
  1972. /****************************************************************************************
  1973. * Function : fDelInReqHistList
  1974. * Description : 입원의뢰서 내역 삭제
  1975. * Argument :
  1976. * :
  1977. * return type :
  1978. * Creator :
  1979. ****************************************************************************************/
  1980. function fDelInReqHistList(){
  1981. var inrsrvcnclresn = ds_inreqfrminfo.getColumn(0,"inrsrvcnclresn");
  1982. if(utlf_isNull(inrsrvcnclresn)){
  1983. sysf_messageBox("입원의뢰 취소 사유를", "C002");
  1984. return;
  1985. }
  1986. ds_inreqfrminfo.setColumn(0,"status" , "d");
  1987. ds_inreqfrminfo.setColumn(0,"inrsrvstat", "X");
  1988. for(var i = 0 ; i < ds_diagcdlist.rowcount - 1 ; i++) {
  1989. ds_diagcdlist.setColumn(i,"status","d");
  1990. }
  1991. for(var i = 0 ; i < ds_opcdlist.rowcount - 1 ; i++) {
  1992. ds_opcdlist.setColumn(i,"status","d");
  1993. }
  1994. // var saveinreq = dsf_getDsCSV(ds_inreqfrminfo); // getNodeListCSV(model.instance1.selectNodes(sINREQFRMINFO_PATH));
  1995. // var savediag = dsf_getDsCSV(ds_diagcdlist); // getNodeListCSV(model.instance1.selectNodes(sDIAGCDLIST_PATH));
  1996. // var saveop = dsf_getDsCSV(ds_opcdlist); // getNodeListCSV(model.instance1.selectNodes(sOPCDLIST_PATH));
  1997. // dsf_makeValue(ds_send_savedata,"inreq" ,"string",saveinreq);
  1998. // dsf_makeValue(ds_send_savedata,"diag" ,"string",savediag);
  1999. // dsf_makeValue(ds_send_savedata,"op" ,"string",saveop);
  2000. group1.visible = false;
  2001. // if(submit("TXMMO00102") == true){
  2002. var oParam = {};
  2003. oParam.id = "TXMMO00102";
  2004. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  2005. oParam.method = "reqExeSaveInReq";
  2006. oParam.inds = "inreq=ds_inreqfrminfo diag=ds_diagcdlist op=ds_opcdlist";
  2007. oParam.outds = "ds_inreqhistlist=inreqhistlist ds_diagcdlist=diagcdlist ds_opcdlist=opcdlist";
  2008. oParam.async = false;
  2009. oParam.callback = "cf_TXMMO00102";
  2010. tranf_submit(oParam);
  2011. if(arErrorCode.pop("TXMMO00102") >= 0){
  2012. //2012/07/19 Start
  2013. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  2014. if(!utlf_isNull(pamInfoCvs)) {
  2015. dsf_setCSVToDs("ds_result_paminfo", pamInfoCvs);
  2016. if(ds_result_paminfo.getColumn(0,"pid") == ds_inreqfrminfo.getColumn(0,"pid")) { //상단 정보와 입원의뢰서 환자의 번호가 같을시
  2017. ds_req.clear();
  2018. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  2019. dsf_makeValue(ds_req,"pid" ,"string",ds_result_paminfo.getColumn(0,"pid"));
  2020. dsf_makeValue(ds_req,"orddd" ,"string",ds_result_paminfo.getColumn(0,"indd"));
  2021. dsf_makeValue(ds_req,"cretno" ,"string",ds_result_paminfo.getColumn(0,"cretno"));
  2022. dsf_makeValue(ds_req,"adflag" ,"string","X");
  2023. dsf_makeValue(ds_req,"answer" ,"string","7");
  2024. var oParam = {};
  2025. oParam.id = "TXMMO26002";
  2026. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  2027. oParam.method = "reqDelDecisioninfo";
  2028. oParam.inds = "req=ds_req";
  2029. oParam.outds = "ds_main=item";
  2030. oParam.async = false;
  2031. oParam.callback = "";
  2032. tranf_submit(oParam);
  2033. } else if(ds_result_paminfo.getColumn(0,"pid") != ds_inreqfrminfo.getColumn(0,"pid")) { //상단 정보와 입원의뢰서 환자의 번호가 틀릴시
  2034. ds_req.clear();
  2035. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  2036. dsf_makeValue(ds_req,"pid" ,"string",ipt_pid.value);
  2037. dsf_makeValue(ds_req,"orddd" ,"string","");
  2038. dsf_makeValue(ds_req,"cretno" ,"string","");
  2039. dsf_makeValue(ds_req,"adflag" ,"string","X");
  2040. dsf_makeValue(ds_req,"answer" ,"string","7");
  2041. var oParam = {};
  2042. oParam.id = "TXMMO26002";
  2043. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  2044. oParam.method = "reqDelDecisioninfo";
  2045. oParam.inds = "req=ds_req";
  2046. oParam.outds = "ds_main=item";
  2047. oParam.async = false;
  2048. oParam.callback = "";
  2049. tranf_submit(oParam);
  2050. }
  2051. } else {
  2052. ds_req.clear();
  2053. dsf_makeValue(ds_req,"instcd" ,"string",sysf_getUserInfo("dutplceinstcd"));
  2054. dsf_makeValue(ds_req,"pid" ,"string",ipt_pid.value);
  2055. dsf_makeValue(ds_req,"orddd" ,"string","");
  2056. dsf_makeValue(ds_req,"cretno" ,"string","");
  2057. dsf_makeValue(ds_req,"adflag" ,"string","X");
  2058. dsf_makeValue(ds_req,"answer" ,"string","7");
  2059. var oParam = {};
  2060. oParam.id = "TXMMO26002";
  2061. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  2062. oParam.method = "reqDelDecisioninfo";
  2063. oParam.inds = "req=ds_req";
  2064. oParam.outds = "ds_main=item";
  2065. oParam.async = false;
  2066. oParam.callback = "";
  2067. tranf_submit(oParam);
  2068. }
  2069. //2012/07/19 End
  2070. fReqInReqHistList();
  2071. fReqInReqCalendar(); //입원의뢰서 달력 조회
  2072. fCtrlObjDisable(true); //disabled 해제
  2073. fClkBtnInit(); //화면초기화
  2074. //2012/06/19 Start
  2075. fSetparam(); //파라미터 값 설정
  2076. //2012/06/19 End
  2077. } else {
  2078. fCtrlObjDisable(true); //disabled 해제
  2079. }
  2080. var status = ds_inreqfrminfo.getColumn(0,"status");
  2081. if(status == "u") {
  2082. ds_main.setColumn(0,"status","수정상태");
  2083. } else {
  2084. ds_main.setColumn(0,"status","신규상태");
  2085. }
  2086. //2013/01/23 Start 입원의뢰내역 삭제후에 예상입원기간의 입원경로의 락을 풀어줌
  2087. cmb_erreglyn.enable = true;
  2088. //2013/01/23 End
  2089. }]]></Script>