SMMNE00200.xjs 142 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 응급실 퇴실정리(SMMNE00200.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. var lgv_bTrSucFlag; // 트랜잭션 성공 여부
  8. var sSignRow;
  9. var sAcptuniqno = ""; // 접수유일번호 추가
  10. var lgv_bUnActPrcpFlag = false; // 미수행처방 flag (전환)
  11. var lgv_bBroadcastflag = false; //this화면상단,팝업화면상단 변경시 이벤트 구분
  12. function fInit(){
  13. var node = sysf_getGlobalVariable("paminfo");
  14. dsf_setCSVToDs("ds_data_paminfo", node);
  15. appf_getCodeList([{dsNm: "ds_M0011", cdGrpId: "M0011"}
  16. , {dsNm: "ds_M0535", cdGrpId: "M0535"}
  17. , {dsNm: "ds_outarea", cdGrpId: "M0782"}], true);
  18. // lf_getAllBizCodeList([{bizFlag: "Z", cdGrpId: "M0011", dsNm: "ds_init_Z_M0011", sortField: "cdid", sortMethod: "asc"} // 공통 업무코드
  19. // ,{bizFlag: "Z", cdGrpId: "M0535", dsNm: "ds_init_Z_M0535", sortField: "cdid", sortMethod: "asc"}
  20. // ,{bizFlag: "N", cdGrpId: "002", dsNm: "ds_init_N_002", sortField: "cdid", sortMethod: "asc"}] // 간호 업무코드
  21. // , false // 최소 컬럼 조회여부
  22. // , true // 비동기 여부
  23. // ); // callBack 함수명
  24. // 팝업 메뉴 세팅
  25. frmf_createPopupMenu("pmn_grid00", "pmn_grid_onmenuclick", [ {id: "DefTestDC", level: "1", title: "D/C"}
  26. ,{id: "DefTestAct", level: "1", title: "Acting"}
  27. ], "ds_pmn_grid00");
  28. frmf_createPopupMenu("pmn_grid01", "pmn_grid_onmenuclick", [ {id: "ChosTestInit", level: "1", title: "상태초기화"}
  29. ,{id: "ChosTestWard", level: "1", title: "병동이관"}
  30. ,{id: "ChosTestDC", level: "1", title: "D/C"}
  31. ,{id: "ChosTestAct", level: "1", title: "Acting"}
  32. ], "ds_pmn_grid01");
  33. frmf_createPopupMenu("pmn_grid02", "pmn_grid_onmenuclick", [ {id: "ChosTestInit", level: "1", title: "상태초기화"}
  34. ,{id: "ChosTestDC", level: "1", title: "D/C"}
  35. ,{id: "ChosTestAct", level: "1", title: "Acting"}
  36. ], "ds_pmn_grid02");
  37. frmf_createPopupMenu("pmn_grid10", "pmn_grid_onmenuclick", [ {id: "DefIngDC", level: "1", title: "D/C"}
  38. ], "ds_pmn_grid10");
  39. frmf_createPopupMenu("pmn_grid11", "pmn_grid_onmenuclick", [ {id: "ChosIngInit", level: "1", title: "상태초기화"}
  40. ,{id: "ChosIngDC", level: "1", title: "D/C"}
  41. ], "ds_pmn_grid11");
  42. frmf_createPopupMenu("pmn_grid12", "pmn_grid_onmenuclick", [ {id: "ChosIngInit", level: "1", title: "상태초기화"}
  43. ,{id: "DefIngDC", level: "1", title: "D/C"}
  44. ,{id: "ChosIngWard", level: "1", title: "병동이관"}
  45. ], "ds_pmn_grid12");
  46. // 검사, 약/주사, 마약 탭 보이기 설정
  47. lf_setTabPageVisble(group3.swt_outrmmenu, 'case3', false);
  48. //16.01.04_간호하드코드 추가
  49. fGetNursHardCdInfo("'E27'", utlf_getCurrentDate());
  50. //속도개선
  51. this.setTimer(0, 100);
  52. //fInitialize();
  53. }
  54. /****************************************************************************************
  55. * Components : PopupMenu
  56. * Components ID : pmn_grid00
  57. * Event : onmenuclick
  58. * Argument : 01.obj : PopupMenu
  59. * : 02.e : MenuClickEventInfo
  60. * Description :
  61. ****************************************************************************************/
  62. function pmn_grid_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo){
  63. fChagnePrcpStat(e.id);
  64. }
  65. /**의료
  66. * @group :
  67. * @ver : 2007.06.07
  68. * @by : 양천덕
  69. * @---------------------------------------------------
  70. * @type : function
  71. * @access : public
  72. * @desc : 초기 화면 설정(기초 정보 설정)
  73. * @param :
  74. * @return :
  75. * @---------------------------------------------------
  76. */
  77. function fInitialize(){
  78. if(sysf_getUserInfo("userid") == "ENR") { // 입퇴원 확인서
  79. group3.button6.visible = true;
  80. } else {
  81. group3.button6.visible = false;
  82. }
  83. //15.12.28_AYS 최종진료구역 본원만 활성화
  84. // if(sysf_getUserInfo("dutplceinstcd") == "031") {
  85. // group3.caption23.visible = true;
  86. // group3.cmb_outarea.visible = true;
  87. // } else {
  88. // group3.caption23.visible = false;
  89. // group3.cmb_outarea.visible = false;
  90. // }
  91. fInitSetNode();
  92. dsf_createDsRow("ds_temp_req",
  93. [{col:"searchitem", val:"outrm"}]);
  94. ds_cond.setColumn(0, "outrmdd", utlf_getCurrentDate() );
  95. ds_cond.setColumn(0, "outrmtm", utlf_getCurrentTime().substr(0,4) );
  96. ds_cond.setColumn(0, "researchflag", "N");
  97. var objParam = new Object();
  98. objParam.id = "TRMNE00203";
  99. objParam.service = "ercareapp.ERPatMngt";
  100. objParam.method = "reqGetERBasetList";
  101. objParam.inds = "req=ds_temp_req";
  102. objParam.outds ="ds_init_outrminfo=outrminfo ds_init_bedinfo=bedinfo ds_init_bedlist=bedlist ds_init_outrmcdsupcd=outrmcdsupcd";
  103. lgv_bBroadcastflag > 0 ? objParam.progress = false : objParam.progress = true;
  104. objParam.callback = "cbf_TRMNE00203";
  105. //objParam.progress = false;
  106. objParam.async = true; // 비동기
  107. tranf_submit(objParam);
  108. var objDs = this.removeChild("ds_temp_req");
  109. delete objDs;
  110. objDs = null;
  111. fGetPatList("Init");
  112. }
  113. function cbf_TRMNE00203(strSvcID, nErrorCode, strErrorMsg){
  114. //에러 처리
  115. if(nErrorCode == 0){
  116. }else{
  117. }
  118. }
  119. /**
  120. * @group :
  121. * @ver : 2007.06.07
  122. * @by : 양천덕
  123. * @---------------------------------------------------
  124. * @type : function
  125. * @access : public
  126. * @desc : 재원 환자 조회 부분
  127. * @param :
  128. * @return :
  129. * @---------------------------------------------------
  130. */
  131. function fGetPatList(pInitFlag){
  132. dsf_createDsRow("ds_temp_searchinfo",
  133. [{col:"section", val:ds_cond.getColumn(0, "section")}]);
  134. dsf_createDs("ds_temp_outrmtret");
  135. var objParam = new Object();
  136. objParam.id = "TXMNE00201";
  137. objParam.service = "ercareapp.ERInRmOutRmMngt";
  138. objParam.method = "reqExeErOutRmTret";
  139. objParam.inds = "outrmtret=ds_temp_outrmtret searchinfo=ds_temp_searchinfo";
  140. objParam.outds ="ds_grid_grd_patlist=inddpatinfo";
  141. lgv_bBroadcastflag > 0 ? objParam.progress = false : objParam.progress = true;
  142. objParam.callback = "cbf_TXMNE00201";
  143. objParam.progress = false;
  144. tranf_submit(objParam);
  145. ds_grid_grd_patlist.rowposition = -1;
  146. if( utlf_isNull(ds_grid_grd_patlist.getColumnInfo("prewardcd")) ){
  147. ds_grid_grd_patlist.addColumn("prewardcd", "string");
  148. }
  149. if( utlf_isNull(ds_grid_grd_patlist.getColumnInfo("fstexamorddd")) ){
  150. ds_grid_grd_patlist.addColumn("fstexamorddd", "string");
  151. }
  152. var objDs = this.removeChild("ds_temp_outrmtret");
  153. delete objDs;
  154. objDs = null;
  155. var objDs = this.removeChild("ds_temp_searchinfo");
  156. delete objDs;
  157. objDs = null;
  158. if(pInitFlag == "Init")
  159. fGetParamSetting();
  160. }
  161. function cbf_TXMNE00201(strSvcID, nErrorCode, strErrorMsg){
  162. //에러 처리
  163. if(nErrorCode == 0){
  164. }else{
  165. }
  166. }
  167. /**
  168. * @group :
  169. * @ver : 2007.07.07
  170. * @by : 양천덕
  171. * @---------------------------------------------------
  172. * @type : function
  173. * @access : public
  174. * @desc : 노드 초기화
  175. * @param :
  176. * @return :
  177. * @---------------------------------------------------
  178. */
  179. function fInitSetNode(){
  180. ds_grid_grd_testlist.clearData();
  181. ds_grid_grd_inglist.clearData();
  182. ds_grid_grd_narcoticlist.clearData();
  183. }
  184. /**
  185. * @group :
  186. * @ver : 2007.07.07
  187. * @by : 양천덕
  188. * @---------------------------------------------------
  189. * @type : function
  190. * @access : public
  191. * @desc : 상단 퇴실 조건 초기화
  192. * @param :
  193. * @return :
  194. * @---------------------------------------------------
  195. */
  196. function fInitSettingTop(flag){
  197. if(flag =="A"){
  198. ds_cond.setColumn(0, "section", "-");
  199. }
  200. //top 환자정보 초기화
  201. ds_cond.setColumn(0, "t_patinfo" , "");
  202. ds_cond.setColumn(0, "t_chosdt" , "");
  203. ds_cond.setColumn(0, "t_outrmdt" , "");
  204. ds_cond.setColumn(0, "t_calctm" , "");
  205. ds_cond.setColumn(0, "t_assgroom" , "");
  206. ds_cond.setColumn(0, "t_fstexamorddd" , "");
  207. //퇴원조건 부분 초기화
  208. ds_cond.setColumn(0, "outrmtp" , ""); // 퇴실구분 라디오 버튼
  209. ds_cond.setColumn(0, "chnghospnm" , ""); // 전원병원명
  210. ds_cond.setColumn(0, "chnghospcd" , ""); // 전원병원 코드
  211. ds_cond.setColumn(0, "outrmcd" , ""); // 퇴실구분 상세내역
  212. ds_cond.setColumn(0, "dethdd" , ""); // 사망일자
  213. ds_cond.setColumn(0, "dethtm" , ""); // 사망일시
  214. ds_cond.setColumn(0, "pid" , ""); // 환자차트번호
  215. ds_cond.setColumn(0, "healcaretgdyn" , ""); // 동승인력 여부
  216. ds_cond.setColumn(0, "proceraprvyn" , ""); // 보호자 동의 여부
  217. ds_cond.setColumn(0, "outarea" , ""); // 최종진료구역
  218. ds_cond.setColumn(0, "outhsrt" , ""); // 입원경로
  219. ds_cond.setColumn(0, "chnghospchoi" , ""); // 기타사유로 전원 선택사항
  220. ds_cond.setColumn(0, "dschhosptype" , ""); // 전원병원 종류
  221. ds_cond.setColumn(0, "chnghospcd" , ""); // 전원병원 코드
  222. ds_cond.setColumn(0, "typedetl" , ""); // 세부설명 항목
  223. ds_cond.setColumn(0, "outrmetc" , ""); // 귀가_기타항목 선택
  224. ds_cond.setColumn(0, "outrmtm", utlf_getCurrentTime().substr(0,4) ); // 퇴실일시 현재 시간으로 세팅
  225. //group3.swt_outrmmenu.case3.caption1.visible = false;
  226. group3.caption2.visible = false;
  227. //caption2.attribute("text") = "세부사항";
  228. group3.caption4.visible = false;
  229. //caption6.visible = false;
  230. group3.ipt_chnghosnm.visible = false;
  231. group3.ipt_chnghoscd.visible = false;
  232. group3.btn_chnghosp.visible = false;
  233. group3.ipt_dethtm.visible = false;
  234. group3.ipt_dethdd.visible = false;
  235. group3.cmb_outrmcd.visible = false;
  236. group3.cmb_etc.visible = false;
  237. group3.chk_proceraprvyn.visible = false;
  238. group3.chk_healcaretgdyn.visible = false;
  239. group3.ipt_outrmetc.visible = false;
  240. group3.ipt_chnghospchoi.visible = false;
  241. group3.caption20.visible = false;
  242. group3.cmb_dschhosptype.visible = false;
  243. group3.caption24.visible = false; // 입원경로 캡션
  244. group3.cmb_outhsrt.visible = false; // 입원경로 콤보
  245. }
  246. /**
  247. * @group :
  248. * @ver : 2007.07.07
  249. * @by : 양천덕
  250. * @---------------------------------------------------
  251. * @type : function
  252. * @access : public
  253. * @desc : 응급실 처방 조회 key설정
  254. * @param :
  255. * @return :
  256. * @---------------------------------------------------
  257. */
  258. function fSetPatInfo(){
  259. var iRow = ds_grid_grd_patlist.rowposition;
  260. var sSrchData = ""; // 2014-02-10 중복된 선언으로 인한 재선언
  261. var sSrchHeader = "pid▦indd▦cretno▦instcd▦dschdclrdt▩";
  262. sSrchData = model.getValue(xPathInddPationList+"["+iRow+"]/pid" )+"▦"
  263. + model.getValue(xPathInddPationList+"["+iRow+"]/indd" )+"▦"
  264. + model.getValue(xPathInddPationList+"["+iRow+"]/cretno")+"▦"
  265. + model.getValue(xPathInddPationList+"["+iRow+"]/instcd")+"▦"
  266. + model.getValue(xPathInddPationList+"["+iRow+"]/dschdclrdt")+"▩";
  267. model.removeNodeset("/root/send");
  268. return sSrchHeader + sSrchData;
  269. }
  270. /**
  271. * @group :
  272. * @ver : 2007.07.07
  273. * @by : 양천덕
  274. * @---------------------------------------------------
  275. * @type : function
  276. * @access : public
  277. * @desc : 응급실 재원환자 선택 검사/약,주사 처방 조회&
  278. * 투약저장 정보 조회
  279. * @param :
  280. * @return :
  281. * @---------------------------------------------------
  282. */
  283. function fSelectInddPatList(pFlag){
  284. // 검사, 약/주사 처방 조회
  285. if(pFlag == "S"){
  286. dsf_createDsRow("ds_temp_searchpat",
  287. [{col:"pid" , val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid")}
  288. ,{col:"indd" , val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd")}
  289. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno")}
  290. ,{col:"instcd", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd")}
  291. ,{col:"dschdclrdt", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "dschdclrdt")}]);
  292. ds_cond.setColumn(0, "researchflag", "N");
  293. }
  294. else{
  295. dsf_createDs("ds_temp_searchpat");
  296. }
  297. dsf_createDs("ds_send_drugsaveinfo");
  298. dsf_createDs("ds_temp_researchpat");
  299. // 사용 하지 않음.
  300. // 투약저장 정보 조회
  301. if(pFlag == "R"){
  302. if(ds_cond.getColumn(0, "researchflag") == "N"){
  303. ds_temp_researchpat.copyData(ds_temp_searchpat);
  304. ds_cond.setColumn(0, "researchflag", "I");
  305. //model.makeValue("/root/send/researchpat",sSrchHeader+sSrchData );
  306. //model.setValue("/root/main/condition/researchflag", "I");
  307. } else {
  308. ds_temp_searchpat.copyData(ds_temp_searchpat);
  309. ds_cond.setColumn(0, "researchflag", "N");
  310. //model.makeValue("/root/send/searchpat", sSrchHeader+sSrchData );
  311. //model.setValue("/root/main/condition/researchflag", "N");
  312. }
  313. }
  314. ds_grid_grd_testlist.clearData();
  315. ds_grid_grd_inglist.clearData();
  316. ds_grid_grd_narcoticlist.clearData();
  317. ds_data_narcoticinfo.clearData();
  318. var objParam = new Object();
  319. objParam.id = "TXMNE00202";
  320. objParam.service = "ercareapp.ERInRmOutRmMngt";
  321. objParam.method = "reqExeERIncpList";
  322. objParam.inds = "searchpat=ds_temp_searchpat drugsaveinfo=ds_send_drugsaveinfo:A researchpat=ds_temp_researchpat";
  323. objParam.outds ="ds_grid_grd_testlist=testinfo ds_grid_grd_inglist=inginfo ds_grid_grd_narcoticlist=narcoticlist ds_data_narcoticinfo=narcoticinfo";
  324. lgv_bBroadcastflag > 0 ? objParam.progress = false : objParam.progress = true;
  325. objParam.callback = "cbf_TXMNE00202";
  326. tranf_submit(objParam);
  327. var objDs = this.removeChild("ds_temp_searchpat");
  328. delete objDs;
  329. objDs = null;
  330. var objDs = this.removeChild("ds_send_drugsaveinfo");
  331. delete objDs;
  332. objDs = null;
  333. var objDs = this.removeChild("ds_temp_researchpat");
  334. delete objDs;
  335. objDs = null;
  336. }
  337. function cbf_TXMNE00202(strSvcID, nErrorCode, strErrorMsg){
  338. //에러 처리
  339. if(nErrorCode == 0){
  340. }else{
  341. }
  342. }
  343. /**
  344. * @group :
  345. * @ver : 2007.07.07
  346. * @by : 양천덕
  347. * @---------------------------------------------------
  348. * @type : function
  349. * @access : public
  350. * @desc : 응급실퇴실정리 화면 콤포 설정
  351. * @param :
  352. * @return :
  353. * @---------------------------------------------------
  354. */
  355. function fSelctionOutRmCombo(pFlag){
  356. //model.removeNodeset("/root/hidden/item");
  357. ds_init_outrminfo.filter("supbasetypecd == '" + pFlag + "'");
  358. ds_init_outrmcd.copyData(ds_init_outrminfo, true);
  359. ds_init_outrminfo.filter("");
  360. }
  361. /**
  362. * @group :
  363. * @ver : 2007.07.07
  364. * @by : 양천덕
  365. * @---------------------------------------------------
  366. * @type : function
  367. * @access : public
  368. * @desc : 화면상단정보설정
  369. * @param :
  370. * @return :
  371. * @---------------------------------------------------
  372. */
  373. function fSetParam(){
  374. // 응급환자 화면상단정보 설정
  375. if(ds_grid_grd_patlist.rowposition < 0){
  376. return;
  377. } else {
  378. var sPid = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid" );
  379. var sIndd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd" );
  380. var sCretno = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno" );
  381. var sInstcd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd" );
  382. var param = "E▦"
  383. + sPid + "▦"
  384. + sIndd + "▦"
  385. + sCretno + "▦"
  386. + sInstcd + "▦"
  387. + utlf_getCurrentDate() + "▦"
  388. + true;
  389. frmf_setParameter("condparam", param);
  390. if(lgv_bBroadcastflag == 0){
  391. appf_initPatientInfo(param); //환자상단호출
  392. }
  393. dsf_setCSVToDs("ds_data_paminfo", sysf_getGlobalVariable("paminfo"));
  394. }
  395. }
  396. /**
  397. * @group :
  398. * @ver : 2007.06.21
  399. * @by : 양천덕
  400. * @---------------------------------------------------
  401. * @type : function
  402. * @access : public
  403. * @desc : 응급실 퇴실처리
  404. * @param :
  405. * @return :
  406. * @---------------------------------------------------
  407. */
  408. function fOutRmTret(){
  409. var flag = ds_cond.getColumn(0, "outrmtp");
  410. var iRow = ds_grid_grd_patlist.findRow("pid", ds_cond.getColumn(0, "pid"));
  411. // 환자 선택 여부 체크
  412. if(utlf_isNull(ds_cond.getColumn(0, "pid"))) {
  413. sysf_messageBox("환자가 선택되지", "E007");
  414. group3.grd_patlist.setFocus();
  415. return;
  416. }
  417. // 입원으로 인한 퇴원 배정 병실 체크
  418. if(ds_cond.getColumn(0, "outrmtp") == "2" && utlf_isNull(ds_grid_grd_patlist.getColumn( iRow, "assgroom"))){
  419. sysf_messageBox("입원 병실 배정이 되지 않았습니다.","E");
  420. return;
  421. }
  422. // 환자 퇴원예고 상태 체크
  423. if(( ds_grid_grd_patlist.getColumn( iRow, "dschdclrtyn") == "N" ||
  424. utlf_isNull(ds_grid_grd_patlist.getColumn( iRow, "dschdclrtyn")) ) &&
  425. ds_cond.getColumn(0, "outrmtp") != "2" )
  426. {
  427. sysf_messageBox("퇴원예고 환자가 아닙니다.", "E");
  428. group3.grd_patlist.setFocus();
  429. return;
  430. }
  431. // P-Pneumonia 환자의 간호정보조사지 산소포화도 입력 여부 확인
  432. if( ds_grid_grd_patlist.getColumn( iRow, "oxyconcen") == "-" &&
  433. ds_grid_grd_patlist.getColumn( iRow, "recovwardcd") == "05" )
  434. {
  435. sysf_messageBox("폐렴 대상자 입니다. 응급간호정보조사의 산소포화도를 기록하십시오.","E");
  436. // 응급간호정보조사지 화면 위치 변경으로 인한 주석처리
  437. fSetParam("nm");
  438. frmf_modal("SMMNE04300","SMMNE04300","","",1,15,128,"","","","","","M");
  439. fGetPatList();
  440. fSelectPatList();
  441. return;
  442. }
  443. // 퇴실일시 입력 체크
  444. if(utlf_isNull(ds_cond.getColumn(0, "outrmdd")) ||
  445. utlf_isNull(ds_cond.getColumn(0, "outrmtm")))
  446. {
  447. sysf_messageBox("퇴실일시를 입력하십시요.", "E");
  448. group3.ipt_outrddd.setFocus();
  449. return;
  450. }
  451. // 퇴실일시 내원일시 비교 체크
  452. var eroutdt = ds_cond.getColumn(0, "outrmdd") + ds_cond.getColumn(0, "outrmtm");
  453. if(ds_cond.getColumn(0, "t_chosdt") > eroutdt ) {
  454. sysf_messageBox("퇴실일시는 내원일시 이후로 지정해야합니다.", "E");
  455. group3.ipt_outrdtm.setFocus();
  456. }
  457. // 퇴실일시 초진진료일시 비교 체크 ('15.10.26 추가)
  458. if(ds_cond.getColumn(0, "t_fstexamorddd") > eroutdt ) {
  459. sysf_messageBox("퇴실일시는 초진진료일시 이후로 지정해야합니다.", "E");
  460. return;
  461. }
  462. // 퇴실일시 관련 제어
  463. var nowDate = fTimeSetting();
  464. var dd = utlf_getCurrentDate();
  465. var currentdt = dd + nowDate;
  466. if (eroutdt > currentdt) {
  467. sysf_messageBox("퇴실일시가 미래일시 입니다.", "E");
  468. group3.ipt_outrdtm.setFocus();
  469. return;
  470. }
  471. // 퇴실구분 입력 체크
  472. if(utlf_isNull(ds_cond.getColumn(0, "outrmtp"))){
  473. sysf_messageBox("퇴실구분을 선택하십시요.", "E");
  474. group3.rdo_outrmflag.setFocus();
  475. return;
  476. }
  477. // 세부사항 입력 체크
  478. if(utlf_isNull(ds_cond.getColumn(0, "outrmcd"))){
  479. sysf_messageBox("세부사항을 입력하십시요.", "E");
  480. group3.cmb_outrmcd.setFocus();
  481. return;
  482. }
  483. // 사망일시 입력 체크
  484. if(ds_cond.getColumn(0, "outrmtp") == 6){
  485. if(utlf_isNull(ds_cond.getColumn(0, "dethdd")) ||
  486. utlf_isNull(ds_cond.getColumn(0, "dethtm")) ){
  487. sysf_messageBox("사망일시를 입력하십시요.", "E");
  488. group3.ipt_dethdd.setFocus();
  489. return;
  490. }
  491. }
  492. if(utlf_isNull(ds_cond.getColumn(0, "outarea"))){
  493. //if(model.getValue("/root/main/condition/outarea") == "" && model.getValue("/root/main/inddpatlist/inddpatinfo["+iRow+"]/instcd") == "031"){
  494. sysf_messageBox("최종진료구역을 입력하십시요.", "E");
  495. group3.cmb_outarea.setFocus();
  496. return;
  497. }
  498. // 161019_칠곡 센터승격으로 인한 수정_AYS
  499. // 입원세부 사항 체크('15.12.22 - AYS 추가)
  500. if(ds_cond.getColumn(0, "outrmtp") == 2){
  501. //if(model.getValue("/root/main/condition/outrmtp") == 2 && model.getValue("/root/main/inddpatlist/inddpatinfo["+iRow+"]/instcd") == "031"){
  502. if(utlf_isNull(ds_cond.getColumn(0, "outhsrt"))){
  503. sysf_messageBox("입원세부 사항을 입력하십시요.", "E");
  504. group3.cmb_outhsrt.setFocus();
  505. return;
  506. }
  507. }
  508. // // 사망일시 입력 체크
  509. // if(ds_cond.getColumn(0, "outrmtp") == '6'){
  510. //
  511. // // 기타 다른 사유로 사망 - 사유 입력 체크
  512. // if(ds_cond.getColumn(0, "outrmcd") == '48') {
  513. // if(utlf_isNull(group3.ipt_outrmetc.value)) {
  514. // sysf_messageBox("기타사유를 입력하십시요.", "E");
  515. // group3.ipt_outrmetc.setFocus();
  516. // return;
  517. // }
  518. // }
  519. //
  520. // if(utlf_isNull(ds_cond.getColumn(0, "dethdd")) || utlf_isNull(ds_cond.getColumn(0, "dethtm")) )
  521. // {
  522. // sysf_messageBox("사망일시를 입력하십시요.", "E");
  523. // group3.ipt_dethdd.setFocus();
  524. // return;
  525. // }
  526. // }
  527. //퇴실구분(전원), 세부사항(기타다른사유로전원)일때 기타사유값 유무체크
  528. if(ds_cond.getColumn(0, "outrmtp") == '3'){
  529. //20181226 이돈희 : 요청번호 20181221006 에 의하여 HIDE 처리(우현경 선생님)
  530. /*
  531. if(ds_cond.getColumn(0, "outrmcd") == '28') {
  532. if(utlf_isNull(ds_cond.getColumn(0, "chnghospchoi"))) {
  533. sysf_messageBox("기타사유를 입력하십시요.", "E");
  534. group3.ipt_chnghospchoi.setFocus();
  535. return;
  536. }
  537. }
  538. */
  539. //전원병원구분 입력값 체크 추가
  540. if(utlf_isNull(ds_cond.getColumn(0, "dschhosptype"))) {
  541. sysf_messageBox("전원병원 구분을 입력하십시요.", "E");
  542. group3.cmb_dschhosptype.setFocus();
  543. return;
  544. }
  545. //응급당직의 SMS 발송
  546. fTransferSMS();
  547. }
  548. // 퇴실구분:귀가 and 세부사항: 기타다른상태로 귀가시 ==> 기타사유 입력 체크
  549. if( (ds_cond.getColumn(0, "outrmtp") == '1') && ((ds_cond.getColumn(0, "outrmcd") == '18') || (ds_cond.getColumn(0, "outrmcd") == '88')) ){
  550. if(utlf_isNull(group3.ipt_outrmetc.value)){
  551. sysf_messageBox("기타사유를 입력하십시요.", "E");
  552. group3.ipt_outrmetc.setFocus();
  553. return;
  554. }
  555. }
  556. //퇴원후 외래 처방 체크 & 미시행 검사처방 체크
  557. var sOutPrcp = "";
  558. var sDefineCnt = 0;
  559. for(i=0 ; i < ds_grid_grd_testlist.rowcount ; i++){
  560. if(ds_grid_grd_testlist.getColumn(i, "execyn") == "OUT" ){
  561. if(utlf_isNull(sOutPrcp)){
  562. sOutPrcp = "퇴원 후 외래 처방이 존재합니다.";
  563. }
  564. sOutPrcp += "\n" + ds_grid_grd_testlist.getColumn(i, "prcpnm") ;
  565. }else{
  566. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == "-"){
  567. sDefineCnt++;
  568. }
  569. }
  570. }
  571. if(sDefineCnt > 0){
  572. if(ds_cond.getColumn(0, "outrmtp") == "2"){
  573. sysf_messageBox("[검사] " + sDefineCnt+" 건의 상태 미설정 데이터가 존재합니다.\n미설정 데이터는 병동이관 됩니다.", "I");
  574. }else{
  575. sysf_messageBox("미시행 검사처방이 존재합니다.", "E");
  576. group3.swt_outrmmenu.case1.grd_testlist.setFocus();
  577. return;
  578. }
  579. }
  580. //미시행 약,주사 처방 존재 여부 체크
  581. var chking = "";
  582. var sDefineCnt_drug = 0; // 미설정 상태 건수
  583. var sSumCnt_drug = 0; // 집계,마감 건수
  584. for(i=0; i < ds_grid_grd_inglist.rowcount; i++ ) {
  585. if(ds_grid_grd_inglist.getColumn(i, "execyn") == "N" ){
  586. if(ds_grid_grd_inglist.getColumn(i, "prcpkindcdyn") == "Y"){
  587. chking = "OUT";
  588. }else{
  589. chking = "N";
  590. // 미설정 상태 체크 컬럼 추가 (2013.11.05 ahn)
  591. if(ds_grid_grd_inglist.getColumn(i, "viewstat") == "-"){
  592. sDefineCnt_drug++;
  593. }
  594. // 집계, 마감, 불출 체크 추가 (2013.11.05 ahn)
  595. if(ds_grid_grd_inglist.getColumn(i, "sumdt") != '00000000000000' ||
  596. ds_grid_grd_inglist.getColumn(i, "drugsumdt") != '00000000000000'){
  597. sSumCnt_drug++;
  598. }
  599. }
  600. }else if(ds_grid_grd_inglist.getColumn(i, "execyn") == "DC"){
  601. chking = "DC";
  602. }
  603. }
  604. // 퇴원약확인 관련 로직 해제 (2012.09.03 ahn)
  605. if(chking == "OUT"){
  606. sysf_messageBox("퇴원약확인을 하지 않은 퇴원처방이 존재하여 퇴실처리를 할 수 없습니다.", "E");
  607. group3.swt_outrmmenu.case2.btn_drugsave.setFocus();
  608. return;
  609. }
  610. // 주석처리 (2013.11.05 ahn)
  611. if(chking == "N"){
  612. sysf_messageBox("미시행 약/주사 처방이 존재하여 퇴실처리를 할 수 없습니다.", "E");
  613. group3.swt_outrmmenu.case2.grd_inglist.setFocus();
  614. return;
  615. }
  616. if(chking == "DC"){
  617. sysf_messageBox("반환요청 약/주사 처방이 존재하여 퇴실처리를 할 수 없습니다.", "E");
  618. group3.swt_outrmmenu.case2.grd_inglist.setFocus();
  619. return;
  620. }
  621. //퇴원후 외래 처방 체크 & 미시행 검사처방 체크
  622. var sOutPrcp = "";
  623. var sDefineCnt = 0;
  624. for(var i=0 ; i < group3.swt_outrmmenu.case1.grd_testlist.rowcount ; i++){
  625. if(ds_grid_grd_testlist.getColumn(i, "execyn") == "OUT" ){
  626. if(utlf_isNull(sOutPrcp)){
  627. sOutPrcp = "퇴원 후 외래 처방이 존재합니다.";
  628. }
  629. sOutPrcp += "\n" + ds_grid_grd_testlist.getColumn(i, "prcpnm") ;
  630. }else{
  631. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == "-"){
  632. sDefineCnt++;
  633. }
  634. }
  635. }
  636. if(sDefineCnt > 0){
  637. if(ds_cond.getColumn(0, "outrmtp") == "2"){
  638. sysf_messageBox(sDefineCnt+" 건의 상태 미설정 데이터가 존재합니다.\n미정설 데이터는 병동이관 됩니다.", "I");
  639. }else{
  640. sysf_messageBox("미시행 검사처방이 존재합니다.", "E");
  641. group3.swt_outrmmenu.case1.grd_testlist.setFocus();
  642. return;
  643. }
  644. }
  645. // // 약주사 병동이관 추가 (2013.11.05 ahn)
  646. // if(chking == "N"){
  647. //
  648. // if(ds_cond.getColumn(0, "outrmtp") == "2"){ // 입원 시
  649. // if(sSumCnt_drug > 0){
  650. // sysf_messageBox("[약/주사] " + sSumCnt_drug+" 건의 집계(마감)된 약/주사 처방이 존재합니다. 확인하십시오.", "E");
  651. // group3.swt_outrmmenu.case2.grd_inglist.setFocus();
  652. // return;
  653. // }
  654. // if(sDefineCnt_drug > 0){
  655. // sysf_messageBox("[약/주사] " + sDefineCnt_drug+" 건의 상태 미설정 데이터가 존재합니다.\n미설정 데이터는 병동이관 됩니다.", "I");
  656. // }
  657. // }else{
  658. // sysf_messageBox("미시행 약/주사 처방이 존재하여 퇴실처리를 할 수 없습니다.", "E");
  659. // group3.swt_outrmmenu.case2.grd_inglist.setFocus();
  660. // return;
  661. // }
  662. //
  663. // }
  664. //
  665. // if(chking == "DC"){
  666. // sysf_messageBox("반환요청 약/주사 처방이 존재하여 퇴실처리를 할 수 없습니다.", "E");
  667. // group3.swt_outrmmenu.case2.grd_inglist.setFocus();
  668. // return;
  669. // }
  670. // 퇴원약 존재시 처리 여부 -> drugno = 0 : 마감되지 않은 것, drugdd 가 없으면 execdd가 없는 것(실시 안된 것)
  671. var drugCnt = 0;
  672. //if( (flag == "1" || flag == "3") && chking == "OUT"){ // 귀가나 전원일 경우 - 퇴원약 처방 확인
  673. if(chking == "OUT"){ // 퇴원약 처방 확인
  674. // 마감로직 태우지 않은 퇴원 약처방이 하나라도 있을 경우
  675. drugCnt = ds_grid_grd_inglist.getCaseCount("!(drugno != '0' && !utlf_isNull(drugdd))");
  676. }
  677. //-----------(20110228) 경북대
  678. // 수술료체크
  679. // * @desc : 체크기능(병동퇴실/응급실퇴실/dsc퇴실)
  680. //var node = sysf_getGlobalVariable("paminfo");
  681. //ds_data_paminfo.loadCSV(node);
  682. //체크
  683. var sschk = ds_data_paminfo.getColumn(0, "opfeechkyn"); //수술료체크여부
  684. var sspid = ds_data_paminfo.getColumn(0, "pid");
  685. var ssindd = ds_data_paminfo.getColumn(0, "indd");
  686. var ssdschdd = ds_cond.getColumn(0, "outrmdd"); //퇴원예정일
  687. // if (sschk != "Y") {
  688. // sysf_messageBox("수술료 입력을 의료진에 요청하십시오.", "E");
  689. // //frmf_setParameter("SPMMO21600_param", sspid + "|" + ssindd + "|" + ssdschdd );
  690. // //frmf_modal("SPMMO21600", "SPMMO21600");
  691. // //frmf_clearParameter("SPMMO21600_param");
  692. // return ;
  693. // }
  694. //-----------(20110228) 경북대
  695. var vbYes = sysf_messageBox("퇴실처리를 ", "Q004");
  696. if(vbYes == 6){
  697. // 응급관리료 체크 로직 block (2012.09.04 ahn)
  698. //응급관리료 체크
  699. if(ds_grid_grd_patlist.getColumn(iRow, "g3existyn") == "N"){
  700. var vbNo = sysf_messageBox("응급의학료 관리료 처방이 없습니다. 계속 퇴원진행을 ", "Q004");
  701. if(vbNo == 7){
  702. return;
  703. }
  704. }
  705. //퇴원후 외래 처방 확인 메시지
  706. if(!utlf_isNull(sOutPrcp)){
  707. sysf_messageBox(sOutPrcp, "I");
  708. }
  709. //퇴원결정일시 셋팅(입원 : 입원결정일시 , 기타 : 퇴원예고일시)
  710. var dschdclrdt = "";
  711. if(ds_cond.getColumn(0, "outrmtp") == "2"){
  712. dschdclrdt = ds_grid_grd_patlist.getColumn( iRow ,"inrsrvacptdt");
  713. }else{
  714. dschdclrdt = ds_grid_grd_patlist.getColumn( iRow ,"dschdclrdt");
  715. }
  716. // 2009-05-21 YCD TRIAGE 입력 데이터 검증 부분 추가
  717. var chktrnValue = fChkTriageData(iRow);
  718. if( chktrnValue == "false" || chktrnValue == false || utlf_isNull(chktrnValue)){
  719. return;
  720. }
  721. fChkOcrPrntList(iRow);
  722. /*
  723. // 퇴원약 확인
  724. var bOutPrcpFlag = false;
  725. if( drugCnt > 0 ){ // 마감안된 퇴원약 처방이 있을 경우
  726. // var dschdrug = messageBox("퇴원약확인을 하지 않은 처방이 존재하여 퇴실처리를 할 수 없습니다. \n퇴원약을 ", "Q011");
  727. // if ( dschdrug == 6 ){ // 퇴원약이 리스트에 있을 경우
  728. // fSaveDrugTret(); // 퇴원약 확인 함수
  729. // }
  730. // else {
  731. // //alert(chking + " : 퇴원약 처리안함")
  732. // return;
  733. // }
  734. bOutPrcpFlag = fSaveDrugTret(); // 퇴원약 확인 함수 ( 퇴실처리 트랜잭션 [TXMNE00201]과 통합 )
  735. }
  736. */
  737. //정상 퇴실시 type2 기록 parameter 설정
  738. var sTar_pid = ds_grid_grd_patlist.getColumn( iRow ,"pid" );
  739. var sTar_indd = ds_grid_grd_patlist.getColumn( iRow ,"indd" );
  740. var sTar_cretno = ds_grid_grd_patlist.getColumn( iRow ,"cretno" );
  741. var sTar_instcd = ds_grid_grd_patlist.getColumn( iRow ,"instcd" );
  742. dsf_createDsRow("ds_temp_outrmtret",
  743. [{col:"pid", val:ds_grid_grd_patlist.getColumn( iRow ,"pid" )}
  744. ,{col:"indd", val:ds_grid_grd_patlist.getColumn( iRow ,"indd" )}
  745. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn( iRow ,"cretno" )}
  746. ,{col:"visitno", val:ds_grid_grd_patlist.getColumn( iRow ,"visitno" )}
  747. ,{col:"outrmdd", val:ds_cond.getColumn(0, "outrmdd")}
  748. ,{col:"outrmtm", val:ds_cond.getColumn(0, "outrmtm")}
  749. ,{col:"outrmcd", val:ds_cond.getColumn(0, "outrmcd")}
  750. ,{col:"chnghospnm", val:ds_cond.getColumn(0, "chnghospnm" )}
  751. ,{col:"chnghospcd", val:ds_cond.getColumn(0, "chnghospcd" )}
  752. ,{col:"dethdd", val:ds_cond.getColumn(0, "dethdd" )}
  753. ,{col:"dethtm", val:ds_cond.getColumn(0, "dethtm" )}
  754. ,{col:"dethyn", val:ds_grid_grd_patlist.getColumn( iRow ,"dethyn" )}
  755. ,{col:"healcaretgdyn", val:ds_cond.getColumn(0, "healcaretgdyn" )}
  756. ,{col:"proceraprvyn", val:ds_cond.getColumn(0, "proceraprvyn" )}
  757. ,{col:"chnghospchoi", val:ds_cond.getColumn(0, "chnghospchoi" )}
  758. ,{col:"eroutdt", val:eroutdt}
  759. ,{col:"instcd", val:ds_grid_grd_patlist.getColumn( iRow ,"instcd" )}
  760. ,{col:"dschdclrdt", val:dschdclrdt}
  761. ,{col:"outrmtp", val:ds_cond.getColumn(0, "outrmtp" )}
  762. ,{col:"outrmetc", val:ds_cond.getColumn(0, "outrmetc" )}
  763. ,{col:"dschhosptype", val:ds_cond.getColumn(0, "dschhosptype" )}
  764. ,{col:"outarea", val:ds_cond.getColumn(0, "outarea" )}
  765. ,{col:"outhsrt", val:ds_cond.getColumn(0, "outhsrt" )}
  766. ,{col:"roomcd" , val:ds_grid_grd_patlist.getColumn( iRow ,"roomcd" )}
  767. ]);
  768. // ,{col:"brateflagmodyn", val:ds_grid_grd_patlist.getColumn( iRow ,"brateflagmodyn" )}
  769. // ,{col:"prestwardcd", val:ds_init_N_002.getColumn(0, "cdid")} // 이전병동-응급실 (2013.11.05 ahn)
  770. // ,{col:"chngwardcd", val:ds_grid_grd_patlist.getColumn( iRow ,"wardcd")} // 예정병동
  771. // ,{col:"chngroomcd", val:ds_grid_grd_patlist.getColumn( iRow ,"assgroom")} // 예정병실
  772. // ,{col:"outprcpflag", val:bOutPrcpFlag}]); // 퇴원약 확인 flag
  773. dsf_createDsRow("ds_temp_searchinfo",
  774. [{col:"section", val:ds_cond.getColumn(0, "section")}]);
  775. ds_temp_printinfo.clearData();
  776. dsf_makeValue(ds_temp_printinfo, "erordeptnm" , "string", ds_grid_grd_patlist.getColumn(iRow , "erordeptnm" ));
  777. dsf_makeValue(ds_temp_printinfo, "patnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "patnm" ));
  778. dsf_makeValue(ds_temp_printinfo, "pid" , "string", ds_grid_grd_patlist.getColumn(iRow, "pid" ));
  779. dsf_makeValue(ds_temp_printinfo, "chosdt" , "string", ds_grid_grd_patlist.getColumn(iRow, "chosdt" ));
  780. dsf_makeValue(ds_temp_printinfo, "dschdclrdt" , "string", ds_grid_grd_patlist.getColumn(iRow, "dschdclrdt" ));
  781. dsf_makeValue(ds_temp_printinfo, "outdt" , "string", group3.ipt_outrddd.value + group3.ipt_outrmtm.value);
  782. dsf_makeValue(ds_temp_printinfo, "ermedispclnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "ermedispclnm"));
  783. dsf_makeValue(ds_temp_printinfo, "nursnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "nursnm" ));
  784. dsf_makeValue(ds_temp_printinfo, "curdd" , "string", utlf_getCurrentDate());
  785. var objParam = new Object();
  786. objParam.id = "TXMNE00201";
  787. objParam.service = "ercareapp.ERInRmOutRmMngt";
  788. objParam.method = "reqExeErOutRmTret";
  789. objParam.inds = "outrmtret=ds_temp_outrmtret searchinfo=ds_temp_searchinfo drugsaveinfo=ds_grid_grd_inglist";
  790. objParam.outds ="ds_grid_grd_patlist=inddpatinfo";
  791. objParam.callback = "cbf_TXMNE00201_2";
  792. if( utlf_isNull(ds_grid_grd_patlist.getColumnInfo("fstexamorddd")) ){
  793. ds_grid_grd_patlist.addColumn("fstexamorddd", "string");
  794. }
  795. lgv_bTrSucFlag = false;
  796. lgv_bUnActPrcpFlag = false;
  797. tranf_submit(objParam); // 퇴실처리(TXMNE00201) + 퇴원약확인(TXMNE00202) 트랜잭션 통합
  798. ds_grid_grd_patlist.rowposition = -1;
  799. if( utlf_isNull(ds_grid_grd_patlist.getColumnInfo("prewardcd")) ){
  800. ds_grid_grd_patlist.addColumn("prewardcd", "string");
  801. }
  802. var objDs = this.removeChild("ds_temp_outrmtret");
  803. delete objDs;
  804. objDs = null;
  805. var objDs = this.removeChild("ds_temp_searchinfo");
  806. delete objDs;
  807. objDs = null;
  808. if(lgv_bTrSucFlag){
  809. // 퇴원확인서 출력 기능 제거 - 부천 응급실 팀장 요청 (2013.05.24 ahn)
  810. if(flag != "2") {
  811. //exeReportPreview("RPMNE00120","XMLSTR","/root/temp/printinfo", "", "true", "", "", "", "", "true", "", "", "", "");
  812. if(ds_temp_printinfo.rowcount == 0){
  813. sysf_trace("startSMMNE00200 print patnm : " + ds_grid_grd_patlist.getColumn(iRow, "patnm" ));
  814. sysf_trace("startSMMNE00200 print pid : " + ds_grid_grd_patlist.getColumn(iRow, "pid" ));
  815. sysf_trace("ds_temp_printinfo : " + ds_temp_printinfo.saveXML());
  816. dsf_makeValue(ds_temp_printinfo, "erordeptnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "erordeptnm" ));
  817. dsf_makeValue(ds_temp_printinfo, "patnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "patnm" ));
  818. dsf_makeValue(ds_temp_printinfo, "pid" , "string", ds_grid_grd_patlist.getColumn(iRow, "pid" ));
  819. dsf_makeValue(ds_temp_printinfo, "chosdt" , "string", ds_grid_grd_patlist.getColumn(iRow, "chosdt" ));
  820. dsf_makeValue(ds_temp_printinfo, "dschdclrdt" , "string", ds_grid_grd_patlist.getColumn(iRow, "dschdclrdt" ));
  821. dsf_makeValue(ds_temp_printinfo, "outdt" , "string", group3.ipt_outrddd.value + group3.ipt_outrmtm.value);
  822. dsf_makeValue(ds_temp_printinfo, "ermedispclnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "ermedispclnm"));
  823. dsf_makeValue(ds_temp_printinfo, "nursnm" , "string", ds_grid_grd_patlist.getColumn(iRow, "nursnm" ));
  824. dsf_makeValue(ds_temp_printinfo, "curdd" , "string", utlf_getCurrentDate());
  825. }
  826. var objDOM = rptf_createDOM(); // DOM 객체 설정
  827. rptf_setNodeListToDOM(objDOM, "/root/temp/printinfo", ds_temp_printinfo); // 데이터셋 1
  828. var objDOM2 = rptf_createDOM(); // DOM 객체 설정
  829. rptf_setNodeListToDOM(objDOM2, "/root/temp/printinfo/rsrvinfo/ordrsrvinfo", ds_data_ordrsrvinfo); // 데이터셋 1
  830. rptf_setNodeListToDOM(objDOM2, "/root/temp/printinfo/rsrvinfo/testrsrvinfo", ds_data_testrsrvinfo); // 데이터셋 1
  831. var objDOM3 = rptf_createDOM(); // DOM 객체 설정
  832. rptf_setNodeListToDOM(objDOM3, "/root/temp/printinfo/rsrvinfo/dschdrugfactinfo", ds_data_dschdrugfactinfo); // 데이터셋 1
  833. var objParam = new Object();
  834. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  835. objParam.xml_data_XML2 = objDOM2.documentElement.source; // 최상의노드 XML 스트링 추출
  836. objParam.xml_data_XML3 = objDOM3.documentElement.source; // 최상의노드 XML 스트링 추출
  837. var option = "open=1;save=1;directprint=1;printdialog=0;print=1;zoom=0";
  838. //var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  839. rptf_exeReportPreview30(["RPMNE00120"],[objParam], option);
  840. }
  841. var TextStmtInfo = "";
  842. //Type2 저장 부분
  843. if(ds_cond.getColumn(0, "outrmtp") == "1"){
  844. //20190117 이돈희 : 본원 응급의료센터 코디 요청사항으로 탈원을 2가지로 분류로 간호기록 부분 수정, 공통코드('E27')
  845. // 탈원 연행의 경우 cmb_outrmcd 값을 안 보여줌
  846. if(group3.cmb_outrmcd.value == "88"){
  847. TextStmtInfo = ds_cond.getColumn(0, "outrmetc");
  848. }
  849. else {
  850. TextStmtInfo = group3.cmb_outrmcd.text;
  851. if(group3.cmb_outrmcd.value == "18"){
  852. TextStmtInfo += "(" + ds_cond.getColumn(0, "outrmetc") + ")" ;
  853. }
  854. }
  855. TextStmtInfo += ". 응급실 퇴실함.";
  856. }else if(ds_cond.getColumn(0, "outrmtp") == "3"){
  857. TextStmtInfo = group3.cmb_outrmcd.text;
  858. //20181226 이돈희 : 요청번호 20181221006 에 의하여 HIDE 처리(우현경 선생님)
  859. /*
  860. if(group3.cmb_outrmcd.value == "28"){
  861. TextStmtInfo += "(" + group3.ipt_chnghospchoi.value + ")" ;
  862. }
  863. */
  864. TextStmtInfo += ". 응급실 퇴실함.";
  865. if(!utlf_isNull(group3.cmb_dschhosptype.text)){
  866. TextStmtInfo += "\n병원구분 : " + group3.cmb_dschhosptype.text;
  867. }
  868. if(!utlf_isNull(group3.ipt_chnghosnm.value)){
  869. TextStmtInfo += " 병원명 : " + group3.ipt_chnghosnm.value;
  870. }
  871. }else if(ds_cond.getColumn(0, "outrmtp") == "9"){
  872. TextStmtInfo = group3.rdo_outrmflag.text + ". 응급실 퇴실함.";
  873. }else if (ds_cond.getColumn(0, "outrmtp") == "8"){
  874. TextStmtInfo = group3.ipt_chnghospchoi2.value + ". 응급실 퇴실함.";
  875. }else{
  876. TextStmtInfo = group3.cmb_outrmcd.text + ". 응급실 퇴실함.";
  877. }
  878. frmf_setParameter("SMMNR03400_ParamBase", "recflag▦dutplaccd▦reclnkkey▩E▦010▦"+ sTar_pid + "," + sTar_indd + "," + sTar_cretno + "," + sTar_instcd+"▩");
  879. frmf_setParameter("SMMNR03400_ParamSaveText", "S▦A▦" + group3.ipt_outrddd.value + group3.ipt_outrmtm.value + "▦" + TextStmtInfo + "▩");
  880. //frmf_open("SMMNR03400", "SMMNR03400");
  881. frmf_modal("SMMNR03400","SMMNR03400","","","","","","","","","","","M");
  882. //sysf_messageBox("간호일지 Type Ⅱ 자동 기록 및 퇴실처리가","I002");
  883. fInitSettingTop();
  884. fInitSetNode();
  885. // 퇴실처리 시 ER-Census 자동 팝업 재조회 및 인증저장
  886. //lf_reOpenERCensus(sTar_pid);
  887. }else {
  888. // 미수행처방 (전환처방 포함) 잔여 시 전환자료액팅 화면 자동 팝업 _ 2015.03.31
  889. if(lgv_bUnActPrcpFlag){
  890. frmf_open("SPMNC01000","SPMNC01000","","","","","","","","","","","M");
  891. lgv_bUnActPrcpFlag = false;
  892. }
  893. fInitSetNode();
  894. }
  895. fGetPatList();
  896. fSelectPatList();
  897. if(!utlf_isNull(sTar_pid)){
  898. ds_grid_grd_patlist.rowposition = ds_grid_grd_patlist.findRow("pid", sTar_pid);
  899. group3.grd_patlist.vscrollbar.pos = ds_grid_grd_patlist.rowposition;
  900. //grd_patlist.topRow = grd_patlist.row;
  901. }
  902. }else{
  903. return;
  904. }
  905. }
  906. function cbf_TXMNE00201_2(strSvcID, nErrorCode, strErrorMsg){
  907. //에러 처리
  908. if(nErrorCode == 0){
  909. lgv_bTrSucFlag = true;
  910. }else{
  911. lgv_bTrSucFlag = false;
  912. if(!utlf_isNull(strErrorMsg) && String(strErrorMsg).substr(0, 8) == "[#전환처방#]"){
  913. lgv_bUnActPrcpFlag = true; // 미수행처방 flag
  914. }else{
  915. lgv_bUnActPrcpFlag = false;
  916. }
  917. //sysf_messageBox(strErrorMsg, "E");
  918. }
  919. }
  920. // ER-Census 자동 재조회 (+인증저장)
  921. function lf_reOpenERCensus(sPid){
  922. var mainObj = frmf_getMainViewer(); // EMC 메인
  923. mainObj.frmf_setParameter("SMMNE00200_Param_pid", sPid); // 해당 환자번호
  924. var winObj = application.popupframes["SMMNE00109"]; // ER-Census
  925. if(winObj != null){ // ER-Census 화면이 열려 있으면
  926. // 조회조건 초기화
  927. winObj.form.ds_cond_reqcond.setColumn(0, "section", "-"); // 구역
  928. winObj.form.ds_cond_reqcond.setColumn(0, "orddeptcd", ""); // 진료과
  929. winObj.form.ds_cond_reqcond.setColumn(0, "srchpid", ""); // 등록번호
  930. winObj.form.ds_cond_reqcond.setColumn(0, "pid", ""); // 등록번호
  931. winObj.form.group3.grp_search2.cp_radioList.setData("2"); // 재원구분 - 퇴원진행으로 ER-Census 재조회 (상단 연동)
  932. }
  933. else{
  934. mainObj.fOpenERCensus(); // ER-Census Open
  935. }
  936. }
  937. /**
  938. * @group :
  939. * @ver : 2009.07.02
  940. * @by : 양천덕
  941. * @---------------------------------------------------
  942. * @type : function
  943. * @access : public
  944. * @desc : 응급실 퇴실환자 재증명 조회
  945. * @param :
  946. * @return :
  947. * @---------------------------------------------------
  948. */
  949. function fChkOcrPrntList(iRow){
  950. //var ErOcrChkRtnValue = "true"; // (20140206) 사용하지 않는 변수 주석처리함
  951. dsf_createDsRow("ds_temp_reqdata",
  952. [{col:"pid", val:ds_grid_grd_patlist.getColumn(iRow, "pid")}
  953. ,{col:"orddd", val:ds_grid_grd_patlist.getColumn(iRow, "indd")}
  954. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(iRow, "cretno")}
  955. ,{col:"eroutdt", val:""}
  956. ,{col:"chosdt", val:""}]);
  957. var objParam = new Object();
  958. objParam.id = "TRMNE00205";
  959. objParam.service = "ercareapp.ERInRmOutRmMngt";
  960. objParam.method = "reqGetChkOcrPrntInfo";
  961. objParam.inds = "reqdata=ds_temp_reqdata";
  962. objParam.outds ="ds_data_ocrchklist=ocrchklist";
  963. objParam.callback = "cbf_TRMNE00205";
  964. objParam.async = true;
  965. tranf_submit(objParam);
  966. var objDs = this.removeChild("ds_temp_reqdata");
  967. delete objDs;
  968. objDs = null;
  969. }
  970. function cbf_TRMNE00205(strSvcID, nErrorCode, strErrorMsg){
  971. //에러 처리
  972. if(nErrorCode == 0){
  973. var mesgcnt = 0 ;
  974. var sMsgCmmt = "";
  975. if(ds_data_ocrchklist.rowcount > 0 ){
  976. for(var i = 0 ; i < ds_data_ocrchklist.rowcount ; i++){
  977. if(ds_data_ocrchklist.getColumn(i, "eroutchkocr") == "Y"){
  978. mesgcnt++;
  979. }
  980. sMsgCmmt = ds_data_ocrchklist.getColumn(i, "ocrfromrecdeptnm") + "에서 작성한 "
  981. + ds_data_ocrchklist.getColumn(i, "ocrformnm") + "가(이) 있습니다. 확인하십시오.";
  982. }
  983. }
  984. /* // 전원 동의서 (출력/스캔/반납)로 프로세스 변경 _ 2015.02.10
  985. if(ds_cond.getColumn(0, "outrmtp") == "3" && mesgcnt == 0){
  986. sysf_messageBox("전원소견서 작성 내역이 존재하지 않습니다. 확인하십시오." , "C000");
  987. }
  988. */
  989. if(group3.rdo_outrmflag.value == "3" && mesgcnt == 0){
  990. sysf_messageBox("전원소견서 작성 내역이 존재하지 않습니다. 확인하십시요!" , "C000");
  991. }
  992. if(!utlf_isNull(sMsgCmmt) ){
  993. sysf_messageBox(sMsgCmmt , "I000");
  994. }
  995. }else{
  996. }
  997. }
  998. /**
  999. * @group :
  1000. * @ver : 2009.05.21
  1001. * @by : 양천덕
  1002. * @---------------------------------------------------
  1003. * @type : function
  1004. * @access : public
  1005. * @desc : TRIAGE 입력 데이터 검증 부분 추가
  1006. * @param :
  1007. * @return :
  1008. * @---------------------------------------------------
  1009. */
  1010. function fChkTriageData(iRow){
  1011. var ErOutChkRtnValue = "true";
  1012. dsf_createDsRow("ds_temp_req",
  1013. [{col:"pid", val:ds_grid_grd_patlist.getColumn(iRow, "pid")}
  1014. ,{col:"orddd", val:ds_grid_grd_patlist.getColumn(iRow, "indd")}
  1015. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(iRow, "cretno")}
  1016. ,{col:"chosdt", val:ds_grid_grd_patlist.getColumn(iRow, "chosdt")}
  1017. ,{col:"eroutdt", val:group3.ipt_outrddd.value + group3.ipt_outrmtm.value + "00"}
  1018. ,{col:"queryflag", val:"K"}]);
  1019. var objParam = new Object();
  1020. objParam.id = "TRMNE04403";
  1021. objParam.service = "ercareapp.ERInRmOutRmMngt";
  1022. objParam.method = "reqGetERTriagePatInfo";
  1023. objParam.inds = "req=ds_temp_req";
  1024. objParam.outds ="ds_data_ertriage=ertriage";
  1025. objParam.callback = "cbf_TRMNE04403";
  1026. tranf_submit(objParam);
  1027. var objDs = this.removeChild("ds_temp_req");
  1028. delete objDs;
  1029. objDs = null;
  1030. if(ds_data_ertriage.rowcount < 1 ){
  1031. sysf_messageBox("TRIAGE 기록이 존재하지 않습니다.", "E");
  1032. return "false";
  1033. }
  1034. var ce_chosdt = ds_grid_grd_patlist.getColumn(iRow, "chosdt" ); //내원일시
  1035. var ce_outrmcd = ds_cond.getColumn(0, "outrmtp" ); //퇴실구분
  1036. var ce_outrmdt = ds_cond.getColumn(0, "outrmdd") + ds_cond.getColumn(0, "outrmtm"); //퇴실일자
  1037. var tr_chkflag = ds_data_ertriage.getColumn(0, "chkflag" ); //D : DOA 체크로직, E : 진료외 방문 체크로직, X : 기본 체크로직
  1038. var tr_age = ds_data_ertriage.getColumn(0, "age" ); //나이
  1039. var tr_mainsympcd = ds_data_ertriage.getColumn(0, "mainsympcd" ); //주증상코드
  1040. var tr_attackdd = ds_data_ertriage.getColumn(0, "attackdd" ); //발병일자
  1041. var tr_attacktm = ds_data_ertriage.getColumn(0, "attacktm" ); //발병시간
  1042. var tr_cscsflag = ds_data_ertriage.getColumn(0, "cscsflag" ); //의식구분
  1043. var tr_chospathflag = ds_data_ertriage.getColumn(0, "chospathflag" ); //내원경로구분
  1044. var tr_choswayflag = ds_data_ertriage.getColumn(0, "choswayflag" ); //내원수단구분
  1045. var tr_chosresnflag = ds_data_ertriage.getColumn(0, "chosresnflag" ); //내원사유구분
  1046. var tr_intenflag = ds_data_ertriage.getColumn(0, "intenflag" ); //의도성구분
  1047. var tr_injmechflag = ds_data_ertriage.getColumn(0, "injmechflag" ); //손상기전구분
  1048. var tr_highbp = ds_data_ertriage.getColumn(0, "highbp" ); //수축기혈압
  1049. var tr_lowbp = ds_data_ertriage.getColumn(0, "lowbp" ); //이완기혈압
  1050. var tr_mntpulsecnt = ds_data_ertriage.getColumn(0, "mntpulsecnt" ); //분당맥박수
  1051. var tr_mntbrethcnt = ds_data_ertriage.getColumn(0, "mntbrethcnt" ); //분당호흡수
  1052. var tr_chosbdtp = ds_data_ertriage.getColumn(0, "chosbdtp" ); //내원시체온
  1053. var tr_proceqmtflag = ds_data_ertriage.getColumn(0, "proceqmtflag" ); //보호장구구분
  1054. var tr_acdowndetailflag = ds_data_ertriage.getColumn(0, "acdowndetailflag" ); //교통사고 당사자상세구분
  1055. var tr_inhosptype = ds_data_ertriage.getColumn(0, "inhosptype" ); //전원보낸의료기관의유형
  1056. var tr_dsid = ds_data_ertriage.getColumn(0, "dsid" ); //재난번호
  1057. var tr_reid = ds_data_ertriage.getColumn(0, "reid" ); //구급활동일지일련번호
  1058. if( (utlf_isNull(tr_highbp) || utlf_isNull(tr_lowbp) || utlf_isNull(tr_mntpulsecnt)
  1059. || utlf_isNull(tr_mntbrethcnt) || utlf_isNull(tr_chosbdtp)) && (tr_mainsympcd !="D0000001") ){
  1060. sysf_messageBox("TRIAGE 기록 오류 : V/S 누락정보가 존재 합니다.","E");
  1061. return "false";
  1062. }
  1063. if (tr_mainsympcd !="D0000001" ) // 신종플루 환자는 트리아제를 체크 하지 않는다...
  1064. {
  1065. switch(tr_chkflag){
  1066. case "X" : //기본 체크 로직
  1067. // V/S 간호사
  1068. if( tr_age >= 15 && ce_outrmcd != "4" ){
  1069. if( tr_highbp == "" || (( tr_highbp > 300 || tr_highbp < 0 ) && tr_highbp != -1 && tr_highbp != 999 )) {
  1070. sysf_messageBox("TRIAGE 기록 오류 : 수축기혈압은 0~300이어야 합니다.","E");
  1071. return "false";
  1072. }
  1073. if( tr_lowbp == "" || (( tr_lowbp > 300 || tr_lowbp < 0 ) && tr_lowbp != -1 && tr_lowbp != 999 )) {
  1074. sysf_messageBox("TRIAGE 기록 오류 : 이완기혈압은 0~300이어야 합니다.","E");
  1075. return "false";
  1076. }
  1077. if( tr_mntpulsecnt == "" || (( tr_mntpulsecnt > 300 || tr_mntpulsecnt < 0 ) && tr_mntpulsecnt != -1 && tr_mntpulsecnt != 999 )) {
  1078. sysf_messageBox("TRIAGE 기록 오류 : 분당맥박수는 0~300이어야 합니다.","E");
  1079. return "false";
  1080. }
  1081. if( tr_mntbrethcnt == "" || (( tr_mntbrethcnt > 99 || tr_mntbrethcnt < 0 ) && tr_mntbrethcnt != -1 && tr_mntbrethcnt != 999 )) {
  1082. sysf_messageBox("TRIAGE 기록 오류 : 분당호흡수는 0~99이어야 합니다.","E");
  1083. return "false";
  1084. }
  1085. if( tr_chosbdtp == "" || (( tr_chosbdtp > 45 || tr_chosbdtp < 20 ) && tr_chosbdtp != -1 && tr_chosbdtp != 99.9 )) {
  1086. sysf_messageBox("TRIAGE 기록 오류 : 내원시체온은 20.0~45.0이어야 합니다.","E");
  1087. return "false";
  1088. }
  1089. //의사
  1090. if( tr_cscsflag == "A" && tr_lowbp != -1 && tr_lowbp != 999 && tr_mntbrethcnt != -1 && tr_mntbrethcnt != 999 && ( tr_highbp <= 30 || tr_mntbrethcnt <= 6 ) ){
  1091. sysf_messageBox("TRIAGE 기록 오류 : 의식구분이 Alert일 경우 수축기 혈압은 > 30 이여야 하며 호흡수는 > 6 이여야 합니다.","E");
  1092. return "false";
  1093. }
  1094. }
  1095. if( eval(tr_highbp) < eval(tr_lowbp) ){
  1096. sysf_messageBox("TRIAGE 기록 오류 : 수축기 혈압이 이완기 혈압보다 낮게 기록되었습니다.","E");
  1097. return "false";
  1098. }
  1099. if( ce_chosdt > utlf_getCurrentDate() + utlf_getCurrentTime() ){
  1100. sysf_messageBox("내원 일시가 현재 일시보다 늦게 입력되었습니다.","E");
  1101. return "false";
  1102. }
  1103. if ( tr_attackdd == "11111111" && tr_attacktm != "1111" ){
  1104. sysf_messageBox("TRIAGE 기록 오류 : 발병 일자가 '11111111' 경우 발병 시간은 '1111'로 입력 되어야 합니다.","E");
  1105. return "false";
  1106. }
  1107. if( tr_attackdd + tr_attacktm > utlf_getCurrentDate() + utlf_getCurrentTime() ){
  1108. sysf_messageBox("TRIAGE 기록 오류 : 발병 일시가 현재 일시보다 늦게 입력되었습니다.","E");
  1109. return "false";
  1110. }
  1111. if ( tr_attackdd + tr_attacktm > ce_chosdt ){
  1112. sysf_messageBox("TRIAGE 기록 오류 : 발병 일시가 내원 일시보다 늦게 입력되었습니다.","E");
  1113. return "false";
  1114. }
  1115. if( ce_chosdt > ce_outrmdt ){
  1116. sysf_messageBox("내원 일시가 퇴원 일시보다 늦게 입력되었습니다.","E");
  1117. return "false";
  1118. }
  1119. if( utlf_isNull(tr_mainsympcd)){
  1120. sysf_messageBox("TRIAGE 기록 오류 : 주증상 정보가 미입력되었습니다.", "E");
  1121. return "false";
  1122. }
  1123. //발병일시 체크
  1124. if( (tr_attackdd + tr_attacktm).length < 12 || tr_attackdd + tr_attacktm > ce_chosdt ) {
  1125. sysf_messageBox("TRIAGE 기록 오류 : 발병일시를 확인하십시요.", "E");
  1126. return "false";
  1127. }
  1128. if( tr_age <= 5 && tr_intenflag == "2" ){
  1129. messageBox("TRIAGE 기록 오류 : 연령이 5세 이하인 경우 의도성 여부는 자살, 자해로 입력할 수 없습니다.", "E");
  1130. return "false";
  1131. }
  1132. if( tr_cscsflag == "-" || utlf_isNull(tr_cscsflag)){
  1133. sysf_messageBox("TRIAGE 기록 오류 : 의식구분이 입력되지 않았습니다.", "E");
  1134. return "false";
  1135. }
  1136. if( tr_choswayflag == "-" || utlf_isNull(tr_choswayflag) ){
  1137. sysf_messageBox("TRIAGE 기록 오류 : 내원수단이 입력되지 않았습니다.", "E");
  1138. return "false";
  1139. }
  1140. if( tr_chosresnflag == "-" || utlf_isNull(tr_chosresnflag) ){
  1141. sysf_messageBox("TRIAGE 기록 오류 : 내원사유가 입력되지 않았습니다.", "E");
  1142. return "false";
  1143. }
  1144. if( tr_chospathflag == "-" || utlf_isNull(tr_chospathflag) ){
  1145. sysf_messageBox("TRIAGE 기록 오류 : 내원경로가 입력되지 않았습니다.", "E");
  1146. return "false";
  1147. }
  1148. if( (tr_injmechflag == "01" || tr_injmechflag == "02" || tr_injmechflag == "03" || tr_injmechflag == "04" ||
  1149. tr_injmechflag == "05" || tr_injmechflag == "06" || tr_injmechflag == "07" || tr_injmechflag == "08" ||
  1150. tr_injmechflag == "09" ) && ( utlf_isNull(tr_acdowndetailflag) || utlf_isNull(tr_proceqmtflag) )){
  1151. sysf_messageBox("TRIAGE 기록 오류 : 교통사고인 경우 교통사고 손상당사자 항목이 입력되어야 하고 \n또한 보호장구항목도 하나이상 입력되어야 합니다.","E");
  1152. return "false";
  1153. }
  1154. if( tr_chosresnflag == "2" && ( utlf_isNull(tr_intenflag) || tr_intenflag == "-" || utlf_isNull(tr_injmechflag) || tr_injmechflag == "-" )){
  1155. sysf_messageBox("TRIAGE 기록 오류 : 내원사유가 질병외인 경우 의도성, 손상기전 값은 모두 입력되어야 합니다.", "E");
  1156. return "false";
  1157. }
  1158. if( tr_chospathflag == "2" && ( utlf_isNull(tr_inhosptype) || tr_inhosptype == "-" ) ){
  1159. sysf_messageBox("TRIAGE 기록 오류 : 내원경로가 외부에서 전원일 경우 전원 보낸 의료기관 종류를 입력해야 합니다.","E");
  1160. return "false";
  1161. }
  1162. if ( tr_choswayflag == "1" && ( utlf_isNull(tr_dsid) || utlf_isNull(tr_reid) ) ){
  1163. sysf_messageBox("TRIAGE 기록 오류 : 내원수단이 119구급차일 경우 재난번호와 구급활동일지일련번호를 입력해야 합니다.","E");
  1164. return "false";
  1165. }
  1166. break;
  1167. case "E" : //진료외 방문 체크 로직
  1168. if(tr_chosresnflag != "3"){
  1169. sysf_messageBox("TRIAGE 기록 오류 : 내원사유를 진료외 방문으로 입력하십시오.", "E");
  1170. return "false";
  1171. }
  1172. break;
  1173. case "D" : // DOA 환자 체크로직
  1174. // V/S 간호사
  1175. if( utlf_isNull(tr_chosbdtp) || (( tr_chosbdtp > 45 || tr_chosbdtp < 0 ) && tr_chosbdtp != -1 && tr_chosbdtp != 99.9 )) {
  1176. sysf_messageBox("TRIAGE 기록 오류 : 내원시 체온 정보 확인 하십시오.","E");
  1177. return "false";
  1178. }
  1179. if( eval(tr_highbp) < eval(tr_lowbp) ){
  1180. sysf_messageBox("TRIAGE 기록 오류 : 수축기 혈압이 이완기 혈압보다 낮게 기록되었습니다.","E");
  1181. return "false";
  1182. }
  1183. // 의사
  1184. if( tr_cscsflag != "U" ){
  1185. sysf_messageBox("TRIAGE 기록 오류 : DOA환자일 경우 내원시 반응은 Unresponsive 이여야 합니다.","E");
  1186. return "false";
  1187. }
  1188. if( ce_chosdt > utlf_getCurrentDate() + utlf_getCurrentTime() ){
  1189. sysf_messageBox("내원 일시가 현재 일시보다 늦게 입력되었습니다.","E");
  1190. return "false";
  1191. }
  1192. if ( tr_attackdd == "11111111" && tr_attacktm != "1111" ){
  1193. sysf_messageBox("TRIAGE 기록 오류 : 발병 일자가 '11111111' 경우 발병 시간은 '1111'로 입력 되어야 합니다.","E");
  1194. return "false";
  1195. }
  1196. if( tr_attackdd + tr_attacktm > utlf_getCurrentDate() + utlf_getCurrentTime() ){
  1197. sysf_messageBox("TRIAGE 기록 오류 : 발병 일시가 현재 일시보다 늦게 입력되었습니다.","E");
  1198. return "false";
  1199. }
  1200. if ( tr_attackdd + tr_attacktm > ce_chosdt ){
  1201. sysf_messageBox("TRIAGE 기록 오류 : 발병 일시가 내원 일시보다 늦게 입력되었습니다.","E");
  1202. return "false";
  1203. }
  1204. if( ce_chosdt > ce_outrmdt ){
  1205. sysf_messageBox("내원 일시가 퇴원 일시보다 늦게 입력되었습니다.","E");
  1206. return "false";
  1207. }
  1208. if( utlf_isNull(tr_mainsympcd) ){
  1209. sysf_messageBox("TRIAGE 기록 오류 : 주증상 정보가 미입력되었습니다.", "E");
  1210. return "false";
  1211. }
  1212. //발병일시 체크
  1213. if( (tr_attackdd + tr_attacktm).length < 12 || tr_attackdd + tr_attacktm > ce_chosdt ) {
  1214. sysf_messageBox("TRIAGE 기록 오류 : 발병일시를 확인하십시요.", "E");
  1215. return "false";
  1216. }
  1217. if( tr_age <= 5 && tr_intenflag == "2"){
  1218. sysf_messageBox("TRIAGE 기록 오류 : 연령이 5세 이하인 경우 의도성 여부는 자살, 자해로 입력할 수 없습니다.", "E");
  1219. return "false";
  1220. }
  1221. if( tr_cscsflag == "-" || utlf_isNull(tr_cscsflag) ){
  1222. sysf_messageBox("TRIAGE 기록 오류 : 의식구분이 입력되지 않았습니다.", "E");
  1223. return "false";
  1224. }
  1225. if( tr_choswayflag == "-" || utlf_isNull(tr_choswayflag) ){
  1226. sysf_messageBox("TRIAGE 기록 오류 : 내원수단이 입력되지 않았습니다.", "E");
  1227. return "false";
  1228. }
  1229. if( tr_chosresnflag == "-" || utlf_isNull(tr_chosresnflag) ){
  1230. sysf_messageBox("TRIAGE 기록 오류 : 내원사유가 입력되지 않았습니다.", "E");
  1231. return "false";
  1232. }
  1233. if( tr_chospathflag == "-" || utlf_isNull(tr_chospathflag) ){
  1234. sysf_messageBox("TRIAGE 기록 오류 : 내원경로가 입력되지 않았습니다.", "E");
  1235. return "false";
  1236. }
  1237. if( (tr_injmechflag == "01" || tr_injmechflag == "02" || tr_injmechflag == "03" || tr_injmechflag == "04" ||
  1238. tr_injmechflag == "05" || tr_injmechflag == "06" || tr_injmechflag == "07" || tr_injmechflag == "08" ||
  1239. tr_injmechflag == "09" ) && ( tr_acdowndetailflag == "" || tr_proceqmtflag == "" ) ){
  1240. sysf_messageBox("TRIAGE 기록 오류 : 교통사고인 경우 교통사고 손상당사자 항목이 입력되어야 하고 \n또한 보호장구항목도 하나이상 입력되어야 합니다.","E");
  1241. return "false";
  1242. }
  1243. if(tr_chosresnflag == "2" && ( utlf_isNull(tr_intenflag) || tr_intenflag == "-" || utlf_isNull(tr_injmechflag) || tr_injmechflag == "-" )){
  1244. sysf_messageBox("TRIAGE 기록 오류 : 내원사유가 질병외인 경우 의도성, 손상기전 값은 모두 입력되어야 합니다.", "E");
  1245. return "false";
  1246. }
  1247. if( tr_chospathflag == "2" && ( utlf_isNull(tr_inhosptype) || tr_inhosptype == "-" ) ){
  1248. sysf_messageBox("TRIAGE 기록 오류 : 내원경로가 외부에서 전원일 경우 전원 보낸 의료기관 종류를 입력해야 합니다.","E");
  1249. return "false";
  1250. }
  1251. if ( tr_choswayflag == "1" && ( utlf_isNull(tr_dsid) || utlf_isNull(tr_reid) ) ){
  1252. sysf_messageBox("TRIAGE 기록 오류 : 내원수단이 119구급차일 경우 재난번호와 구급활동일지일련번호를 입력해야 합니다.","E");
  1253. return "false";
  1254. }
  1255. break;
  1256. }
  1257. }
  1258. return ErOutChkRtnValue;
  1259. }
  1260. function cbf_TRMNE04403(strSvcID, nErrorCode, strErrorMsg){
  1261. //에러 처리
  1262. if(nErrorCode == 0){
  1263. }else{
  1264. }
  1265. }
  1266. // 검사, 약/주사 그리드 선택된 행의 selectyn 컬럼 값 동기화
  1267. function lf_setSelectFlag(objDs, bInitFlag)
  1268. {
  1269. for(var i=0; i< objDs.rowcount; i++){
  1270. if(bInitFlag){
  1271. objDs.setColumn(i, "selectyn", "");
  1272. objDs.selectRow(i, false);
  1273. }else{
  1274. if(objDs.getSelect(i)){
  1275. objDs.setColumn(i, "selectyn", "Y");
  1276. }
  1277. else{
  1278. objDs.setColumn(i, "selectyn", "");
  1279. }
  1280. }
  1281. }
  1282. }
  1283. /**
  1284. * @group :
  1285. * @ver : 2007.06.21
  1286. * @by : 양천덕
  1287. * @---------------------------------------------------
  1288. * @type : function
  1289. * @access : public
  1290. * @desc : 투약저장 이밴트 처리
  1291. * @param :
  1292. * @return :
  1293. * @---------------------------------------------------
  1294. */
  1295. function fSaveDrugTret(){
  1296. /* // (20140206) 사용하지 않는 변수 주석처리함
  1297. var pid = model.getValue("/root/hidden1/incplist/pid");
  1298. var patnm = model.getValue("/root/hidden1/incplist/patnm");
  1299. var sexage = model.getValue("/root/hidden1/incplist/sexage");
  1300. var drugno = model.getValue("/root/main/incplist/inginfo["+1+"]/drugno");
  1301. */
  1302. var narcyn; // 2014-02-10 중복된 선언으로 인한 재선언
  1303. //** 응급실에서 퇴원약확인시 투약번호라벨 출력 추가_20090218(ByCY) **//
  1304. /* 사용하지 않음.
  1305. for(var i=1; i<grd_inglist.rows;i++) {
  1306. if(model.getValue("/root/main/incplist/inginfo["+i+"]/spcldrug") =="M") { //마약여부 확인 -> drugkind2 == "26" : 마약
  1307. narcyn = "(마)"; // (20140206) 사용하지 않는 변수 주석처리함
  1308. break;
  1309. }
  1310. else{
  1311. narcyn ="NONO";
  1312. }
  1313. }
  1314. */
  1315. //alert("pid:"+pid+", patnm:"+patnm+", sexage:"+sexage+", drugno"+drugno+", narcyn"+narcyn);
  1316. //** 응급실에서 퇴원약확인시 투약번호라벨 출력 추가_20090218(ByCY) **//
  1317. //미정의(사용하지 않음)
  1318. if(ds_cond.getColumn(0, "researchflag") == "I"){
  1319. fSelectInddPatList("S");
  1320. }
  1321. var datacheck2 = "N";
  1322. var datacheck3 = "N";
  1323. //퇴원약이면서 약국으로 전송하여 집계하지 않는 처방 검증
  1324. if(0 < ds_grid_grd_inglist.getCaseCount("execyn == 'N' && prcpkindcdyn == 'Y'"))
  1325. datacheck2 = "Y";
  1326. if(0 < ds_grid_grd_inglist.getCaseCount("prcpstatcd == '000'"))
  1327. datacheck2 = "C";
  1328. if(0 < ds_grid_grd_inglist.getCaseCount("prcpkindcdyn == 'Y'"))
  1329. datacheck3 = "Y";
  1330. //if(datacheck3 == "Y"){
  1331. // var chkpid = "";
  1332. // if(model.getValue("/root/main/inddpatlist/inddpatinfo["+grd_patlist.row+"]/dschdclrtyn") != "Y"){
  1333. // fGetPatList();
  1334. // }
  1335. //}
  1336. if(datacheck2 == "N" || ds_grid_grd_inglist.rowcount < 1 ){
  1337. sysf_messageBox("미시행 퇴실처방이 존재하지", "E007");
  1338. group3.btn_outsave.setFocus();
  1339. return false;
  1340. }else if(datacheck2 == "C"){
  1341. sysf_messageBox("간호확인을 하지 않은 퇴원약이 존재합니다.", "E");
  1342. return false;
  1343. }else{
  1344. // 퇴실처리 트랜잭션과 통합
  1345. //return true;
  1346. // 이하 사용 안함.
  1347. // --------------------------------------------------------------------------------
  1348. dsf_createDsRow("ds_temp_searchpat",
  1349. [{col:"pid", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid")}
  1350. ,{col:"indd", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd")}
  1351. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno")}
  1352. ,{col:"instcd", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd")}
  1353. ,{col:"dschdclrdt", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "dschdclrdt")}]);
  1354. dsf_createDs("ds_send_drugsaveinfo");
  1355. ds_send_drugsaveinfo.copyData(ds_grid_grd_inglist);
  1356. dsf_createDs("ds_temp_researchpat");
  1357. ds_grid_grd_testlist.clearData();
  1358. ds_grid_grd_narcoticlist.clearData();
  1359. ds_data_narcoticinfo.clearData();
  1360. ds_grid_grd_inglist.clearData();
  1361. var objParam = new Object();
  1362. objParam.id = "TXMNE00202";
  1363. objParam.service = "ercareapp.ERInRmOutRmMngt";
  1364. objParam.method = "reqExeERIncpList";
  1365. objParam.inds = "searchpat=ds_temp_searchpat drugsaveinfo=ds_send_drugsaveinfo:A researchpat=ds_temp_researchpat";
  1366. objParam.outds ="ds_grid_grd_testlist=testinfo ds_grid_grd_inglist=inginfo ds_grid_grd_narcoticlist=narcoticlist ds_data_narcoticinfo=narcoticinfo";
  1367. objParam.callback = "cbf_TXMNE00202";
  1368. tranf_submit(objParam);
  1369. var objDs = this.removeChild("ds_temp_searchpat");
  1370. delete objDs;
  1371. objDs = null;
  1372. var objDs = this.removeChild("ds_temp_researchpat");
  1373. delete objDs;
  1374. objDs = null;
  1375. //messageBox("약국으로 퇴원약 전송 완료했습니다.","I");
  1376. //** 응급실에서 퇴원약확인시 투약번호라벨 출력 추가_20090218(ByCY) **//
  1377. if(!utlf_isNull(ds_grid_grd_inglist.getColumn(0, "drugno"))) {
  1378. //var pid = model.getValue("/root/hidden1/incplist/pid"); // (20140206) 사용하지 않는 변수 주석처리함
  1379. //var patnm = model.getValue("/root/hidden1/incplist/patnm"); // (20140206) 사용하지 않는 변수 주석처리함
  1380. //var sexage = model.getValue("/root/hidden1/incplist/sexage"); // (20140206) 사용하지 않는 변수 주석처리함
  1381. //var drugno = model.getValue("/root/main/incplist/inginfo["+1+"]/drugno"); // (20140206) 사용하지 않는 변수 주석처리함
  1382. // for(var i=1; i<grd_inglist.rows;i++) {
  1383. // if(model.getValue("/root/main/incplist/inginfo["+i+"]/spcldrug") =="M") { //마약여부 확인
  1384. // narcyn = "(마)";
  1385. // break;
  1386. // }
  1387. // else{
  1388. // narcyn ="";
  1389. // }
  1390. // }
  1391. //-----(20110422) 막음
  1392. //fERCareDrugNoLabel2(pid, patnm, sexage, drugno, narcyn, "(약국)", "(간호)");//투약번호표출력
  1393. //-----(20110422) 막음
  1394. fGetPatList();
  1395. //model.refresh();
  1396. }
  1397. //** 응급실에서 퇴원약확인시 투약번호라벨 출력 추가_20090218(ByCY) **//
  1398. }
  1399. }
  1400. /**
  1401. * @group :
  1402. * @ver : 2007.06.21
  1403. * @by : 양천덕
  1404. * @---------------------------------------------------
  1405. * @type : function
  1406. * @access : public
  1407. * @desc : 퇴실구분 선택 및 콤보 옵션 설정
  1408. * @param :
  1409. * @return :
  1410. * @---------------------------------------------------
  1411. */
  1412. function fSelectOutRmCnts(){
  1413. //퇴실구분 초기화
  1414. ds_cond.setColumn(0, "outrmcd", "");
  1415. var iRow = ds_grid_grd_patlist.findRow("pid", ds_cond.getColumn(0, "pid"));
  1416. group3.ipt_outrmetc.position.left = "490"; // 기타사유 창 위치변경]
  1417. group3.ipt_outrmetc.position.top = "56"; // 기타사유 창 위치변경]
  1418. group3.ipt_outrmetc.visible = false;
  1419. //20111202_KNUH_Start
  1420. group3.cmb_etc.position.left = "460"; // 기타사유 창 위치변경]
  1421. group3.cmb_etc.position.top = "56"; // 기타사유 창 위치변경]
  1422. group3.cmb_etc.position.height = "20";
  1423. group3.cmb_etc.visible = false;
  1424. //20111202_KNUH_End
  1425. // 귀가
  1426. if(group3.rdo_outrmflag.value == 1) {
  1427. fSelctionOutRmCombo("BT1");
  1428. }
  1429. // 입원
  1430. if(group3.rdo_outrmflag.value == 2) {
  1431. fSelctionOutRmCombo("BT3");
  1432. //if(sysf_getUserInfo("dutplceinstcd") == "031"){
  1433. group3.caption24.visible = true; // 입원경로 캡션
  1434. group3.cmb_outhsrt.visible = true; // 입원경로 콤보박스
  1435. //}
  1436. }else {
  1437. //16.10.19_칠곡 센터승격으로 인한 수정
  1438. group3.caption24.visible = false; // 입원경로 캡션
  1439. group3.cmb_outhsrt.visible = false; // 입원경로 콤보박스
  1440. //2017.07.20 오류 수정
  1441. //ds_cond.setColumn(0, "dschhosptype", ""); // 입원경로 콤보박스 초기화
  1442. ds_cond.setColumn(0, "outhsrt", ""); // 입원경로 콤보박스 초기화
  1443. //if(getUserInfo("dutplceinstcd") == "031"){
  1444. // caption24.visible = false; // 입원경로 캡션
  1445. // cmb_outhsrt.visible = false; // 입원경로 콤보박스
  1446. // model.setValue("/root/main/condition/outhsrt", ""); // 입원경로 콤보박스 초기화
  1447. //}
  1448. //16.10.19_칠곡 센터승격으로 인한 수정
  1449. }
  1450. // 전원
  1451. if(group3.rdo_outrmflag.value == 3){
  1452. group3.caption2.visible = true;
  1453. //group3.caption1.visible = true;
  1454. group3.caption20.visible = true;
  1455. group3.ipt_chnghosnm.visible = true;
  1456. group3.chk_proceraprvyn.visible = true;
  1457. group3.chk_healcaretgdyn.visible= true;
  1458. group3.cmb_dschhosptype.visible = true;
  1459. group3.btn_chnghosp.visible = true;
  1460. group3.chk_proceraprvyn.value = "Y";
  1461. group3.chk_healcaretgdyn.value = "Y";
  1462. fSelctionOutRmCombo("BT2");
  1463. } else {
  1464. // group3.caption2.visible = false;
  1465. // //group3.caption1.visible = false;
  1466. // group3.ipt_chnghosnm.visible = false;
  1467. // group3.ipt_chnghoscd.visible = false;
  1468. // group3.btn_chnghosp.visible = false;
  1469. // group3.chk_proceraprvyn.visible = false;
  1470. // group3.chk_healcaretgdyn.visible = false;
  1471. // group3.ipt_chnghospchoi.visible = false;
  1472. group3.caption2.visible = false;
  1473. //group3.caption1.visible = true;
  1474. group3.caption20.visible = false;
  1475. group3.ipt_chnghosnm.visible = false;
  1476. group3.chk_proceraprvyn.visible = false;
  1477. group3.chk_healcaretgdyn.visible= false;
  1478. group3.cmb_dschhosptype.visible = false;
  1479. group3.btn_chnghosp.visible = false;
  1480. group3.caption20.visible = false;
  1481. group3.cmb_dschhosptype.visible = false;
  1482. ds_cond.setColumn(0, "chnghospchoi", "");
  1483. ds_cond.setColumn(0, "chnghospnm", "");
  1484. //20180601 이돈희 : 병원코드 초기화 추가
  1485. ds_cond.setColumn(0, "chnghospcd", "");
  1486. ds_cond.setColumn(0, "dschhosptype", "");
  1487. }
  1488. // 사망
  1489. if(group3.rdo_outrmflag.value == 6) {
  1490. fSelctionOutRmCombo("BT4");
  1491. group3.ipt_dethtm.visible = true;
  1492. group3.ipt_dethdd.visible = true;
  1493. group3.caption4.visible = true;
  1494. if(ds_grid_grd_patlist.getColumn(iRow, "dethyn") == "Y"){
  1495. ds_cond.setColumn(0, "dethdd", ds_grid_grd_patlist.getColumn(iRow, "dethdd") );
  1496. ds_cond.setColumn(0, "dethtm", ds_grid_grd_patlist.getColumn(iRow, "dethtm") );
  1497. sysf_messageBox("사망 기록 내역이 존재합니다.", "I");
  1498. }
  1499. } else {
  1500. ds_cond.setColumn(0, "dethdd", "");
  1501. ds_cond.setColumn(0, "dethtm", "");
  1502. group3.ipt_dethtm.visible = false;
  1503. group3.caption4.visible = false;
  1504. group3.ipt_dethdd.visible = false;
  1505. }
  1506. // 기타, 미상
  1507. if(group3.rdo_outrmflag.value == 8 || group3.rdo_outrmflag.value == 9 ){
  1508. group3.caption2.visible = false;
  1509. group3.cmb_outrmcd.visible = false;
  1510. group3.ipt_outrmetc.visible = false; // 기타사유
  1511. group3.cmb_etc.visible = false;
  1512. group3.caption20.visible = false;
  1513. group3.cmb_dschhosptype.visible = false;
  1514. ds_cond.setColumn(0, "dschhosptype", "");
  1515. if(group3.rdo_outrmflag.value == 8){ // 기타
  1516. ds_cond.setColumn(0, "outrmcd", "88");
  1517. // ipt_chnghospchoi.visible = false;
  1518. group3.ipt_chnghospchoi2.visible = true;
  1519. group3.ipt_chnghospchoi2.enable = false;
  1520. group3.caption3.visible = true;
  1521. group3.ipt_chnghospchoi.enable = false;
  1522. group3.caption3.visible = true;
  1523. ds_cond.setColumn(0, "chnghospchoi", "탈원");
  1524. //ipt_outrmetc.visible = "visible"; // 기타사유
  1525. //caption2.visible= true;
  1526. //caption2.attribute("text") = "기타사유";
  1527. } else if (group3.rdo_outrmflag.value == 9 ){
  1528. ds_cond.setColumn(0, "outrmcd", "99");
  1529. // ipt_chnghospchoi.visible = false;
  1530. group3.ipt_chnghospchoi2.visible = false;
  1531. group3.caption3.visible = false;
  1532. ds_cond.setColumn(0, "chnghospchoi", "");
  1533. //20181226 이돈희 : 요청번호 20181221006 에 의하여 HIDE 처리(우현경 선생님)
  1534. /*
  1535. group3.ipt_chnghospchoi.enable = true;
  1536. */
  1537. group3.ipt_chnghospchoi2.enable = false;
  1538. //ipt_outrmetc.visible = false; // 기타사유
  1539. //caption2.visible= false;
  1540. //caption2.attribute("text") = "세부사항";
  1541. }
  1542. } else {
  1543. group3.caption3.visible = true;
  1544. //caption2.attribute("text") = "세부사항";
  1545. group3.cmb_outrmcd.visible = true;
  1546. group3.ipt_chnghospchoi2.visible = false;
  1547. group3.ipt_chnghospchoi2.enable = true;
  1548. group3.ipt_chnghospchoi.visible = false;
  1549. group3.ipt_chnghospchoi.enable = true; // 기타사유
  1550. ds_cond.setColumn(0, "chnghospchoi", "");
  1551. }
  1552. }
  1553. function fChangeOutRm(sFlag){
  1554. if(sFlag != 2){
  1555. for(var i= 0 ; i < ds_grid_grd_testlist.rowcount ; i++){
  1556. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == "3"){
  1557. ds_grid_grd_testlist.setColumn(i, "viewstat", "-");
  1558. }
  1559. }
  1560. }
  1561. }
  1562. /**
  1563. * @group :
  1564. * @ver : 2007.07.07
  1565. * @by : 양천덕
  1566. * @---------------------------------------------------
  1567. * @type : function
  1568. * @access : public
  1569. * @desc : 왼쪽 마우스 클릭 메뉴
  1570. * @param :
  1571. * @return :
  1572. * @---------------------------------------------------
  1573. */
  1574. function fPopupMenuInfo(pFlag, objGrd, e){
  1575. if(e.row < 0)
  1576. return;
  1577. //마우스 오른쪽 버튼 클릭시 이밴트 발생
  1578. //if(event.button == 3){
  1579. //검사탭에서 마우스 클릭시 발생
  1580. if(pFlag == "T"){
  1581. //선택없이 마우스 오른쪽 클릭으로 선택 이밴트
  1582. if(ds_grid_grd_testlist.getColumn(e.row, "selectyn") != "Y"){
  1583. lf_setSelectFlag(ds_grid_grd_testlist, true); // 초기화
  1584. //ds_grid_grd_testlist.rowposition = e.row;
  1585. ds_grid_grd_testlist.selectRow(e.row);
  1586. }
  1587. //선택행 선택 플래그 변경 후 DC팝업창 활성화
  1588. if(ds_grid_grd_testlist.rowcount > 0){
  1589. ds_grid_grd_testlist.setColumn(e.row, "selectyn", "Y");
  1590. //퇴실구분에 따른 팝업목록 선택
  1591. if( utlf_isNull(ds_cond.getColumn(0, "outrmtp"))){
  1592. //window.setPopupMenu( true, "/root/codedata/popupmenu/grid00/item", "name", "func", true); //퇴원구분 미선택
  1593. }else if(ds_cond.getColumn(0, "outrmtp") == "2"){
  1594. pmn_grid01.trackPopup(e.screenX,e.screenY,"",true); //퇴원구분 입원 선택
  1595. }else{
  1596. pmn_grid02.trackPopup(e.screenX,e.screenY,"",true); //퇴원구분 선택(입원제외)
  1597. }
  1598. }
  1599. //else{
  1600. // window.setPopupMenu(false);
  1601. //}
  1602. //약,주사탭에서 마우스 클릭시 발생
  1603. }else{
  1604. //선택없이 마우스 오른쪽 클릭으로 선택 이밴트
  1605. if(ds_grid_grd_inglist.getColumn(e.row, "selectyn") != "Y"){
  1606. lf_setSelectFlag(ds_grid_grd_inglist, true); // 초기화
  1607. ds_grid_grd_inglist.selectRow(e.row);
  1608. }
  1609. //선택행 선택 플래그 변경 후 DC팝업창 활성화
  1610. if(ds_grid_grd_inglist.rowcount > 0){
  1611. ds_grid_grd_inglist.setColumn(e.row, "selectyn", "Y");
  1612. pmn_grid10.trackPopup(e.screenX,e.screenY,"",true); //퇴원구분 선택(입원제외)
  1613. //퇴실구분에 따른 팝업목록 선택
  1614. // if(ds_cond.getColumn(0, "outrmtp") == "2"){
  1615. // pmn_grid12.trackPopup(e.screenX,e.screenY,"",true); //퇴원구분 미선택
  1616. // }else{
  1617. //
  1618. // }
  1619. }
  1620. //else{
  1621. // window.setPopupMenu(false);
  1622. //}
  1623. }
  1624. //}
  1625. }
  1626. /**
  1627. * @group :
  1628. * @ver : 2007.06.21
  1629. * @by : 양천덕
  1630. * @---------------------------------------------------
  1631. * @type : function
  1632. * @access : public
  1633. * @desc : 검사, 약주사 오른쪽 팝업 메뉴 선택에 따른 처리
  1634. * @param :
  1635. * @return :
  1636. * @---------------------------------------------------
  1637. */
  1638. function fChagnePrcpStat(pFlag){
  1639. if(pFlag == ""){
  1640. pFlag == "StatInit";
  1641. }
  1642. var sStatFlag = ""; // 1: DC, 2: Action, 3: 병동이관, -: 초기화
  1643. var sTargetGrid = ""; // All : 검사, 약 전체 초기화, Test: 검사 초기화, Ing: 약주사 초기화
  1644. var sExecFlag = "";
  1645. //Param에 따른 상태값 설정
  1646. if(pFlag == "StatInit"){
  1647. sStatFlag = "-";
  1648. sTargetGrid = "ALL";
  1649. sExecFlag = "N";
  1650. }else if(pFlag == "DefTestDC"){
  1651. sStatFlag = "1";
  1652. sTargetGrid = "Test";
  1653. sExecFlag = "Y";
  1654. }else if(pFlag == "DefTestAct"){
  1655. sStatFlag = "2";
  1656. sTargetGrid = "Test";
  1657. sExecFlag = "Y";
  1658. }else if(pFlag == "ChosTestInit"){
  1659. sStatFlag = "-";
  1660. sTargetGrid = "Test";
  1661. sExecFlag = "N";
  1662. }else if(pFlag == "ChosTestWard"){
  1663. sStatFlag = "3";
  1664. sTargetGrid = "Test";
  1665. sExecFlag = "N";
  1666. }else if(pFlag == "ChosTestDC"){
  1667. sStatFlag = "1";
  1668. sTargetGrid = "Test";
  1669. sExecFlag = "N";
  1670. }else if(pFlag == "ChosTestAct"){ // 검사 Acting
  1671. sStatFlag = "2";
  1672. sTargetGrid = "Test";
  1673. sExecFlag = "N";
  1674. }else if(pFlag == "DefIngDC"){
  1675. sStatFlag = "1";
  1676. sTargetGrid = "Ing";
  1677. sExecFlag = "Y";
  1678. }else if(pFlag == "ChosIngInit"){
  1679. sStatFlag = "-";
  1680. sTargetGrid = "Ing";
  1681. sExecFlag = "N";
  1682. }else if(pFlag == "ChosIngDC"){
  1683. sStatFlag = "1";
  1684. sTargetGrid = "Ing";
  1685. sExecFlag = "N";
  1686. }else if(pFlag == "ChosIngWard"){ // 약주사 병동이관 추가 (2013.11.05 ahn)
  1687. sStatFlag = "3";
  1688. sTargetGrid = "Ing";
  1689. sExecFlag = "N";
  1690. }
  1691. // alert(sExecFlag +" : "+ sTargetGrid +" : "+ sStatFlag );
  1692. // 상태 변경및 실행 function 호출 부분
  1693. if(!utlf_isNull(sExecFlag) && !utlf_isNull(sTargetGrid) && !utlf_isNull(sStatFlag)){
  1694. // 선택 바로 실시( Acting, D/C )
  1695. if(sExecFlag == "Y"){
  1696. if(sStatFlag == "1"){ // D/C
  1697. fPrcpDC(sTargetGrid);
  1698. }else if(sStatFlag == "2"){ // Action
  1699. fSaveTestPrcp();
  1700. }else if(sStatFlag == "3" || sStatFlag == "-" ){
  1701. return;
  1702. }
  1703. // 상태 변경
  1704. }else{
  1705. fChangeStatCode(sStatFlag, sTargetGrid);
  1706. }
  1707. }
  1708. }
  1709. function fChangeStatCode(pStat, pTarget){
  1710. if(pTarget == "Test" ){
  1711. for(var i= 0 ; i < ds_grid_grd_testlist.rowcount ; i++){
  1712. var chkprcp = ds_grid_grd_testlist.getColumn(i , "prcpnm");
  1713. //var selectchk = model.getValue("/root/main/incplist/testinfo["+i+"]/selectyn");
  1714. if(ds_grid_grd_testlist.getColumn(i , "selectyn")=="Y"){ // 선택된 처방
  1715. if(ds_grid_grd_testlist.getColumn(i , "testtp") == "Y" ||
  1716. (ds_grid_grd_testlist.getColumn(i , "testtp") == "N" && (pStat == "3" || pStat == "-"))){ // 혈액처방이 아닌것 || 혈액처방이면서 병동이관
  1717. if(ds_grid_grd_testlist.getColumn(i , "execyn") == "N"){ // 미수행 처방 선택
  1718. if((ds_grid_grd_testlist.getColumn(i , "grupsnglflag") == "M" && (pStat == "3" || pStat == "-") ) ||
  1719. ds_grid_grd_testlist.getColumn(i , "grupsnglflag") != "M" ){ // MSet처방
  1720. if(ds_grid_grd_testlist.getColumn(i , "c2check") == "N" ||
  1721. ds_grid_grd_testlist.getColumn(i , "c2check") == "Y" && (pStat == "1" ||pStat == "3" || pStat == "-")){ //단순영상 처방
  1722. ds_grid_grd_testlist.setColumn(i , "viewstat", pStat);
  1723. }else{
  1724. sysf_messageBox(chkprcp+" 처방은 강제 Acting 할 수 없는 단순 영상 처방입니다.","E");
  1725. }
  1726. }else{
  1727. sysf_messageBox(chkprcp+" 처방은 MSet 처방입니다.\nD/C, 강제 Acting 할 수 없습니다.","E");
  1728. }
  1729. }else if(ds_grid_grd_testlist.getColumn(i , "execyn") == "OUT"){
  1730. sysf_messageBox(chkprcp+" 처방은 퇴원 후 외래 검사 처방입니다.\n병동이관, D/C, 강제 Acting 할 수 없습니다.","E");
  1731. }else{
  1732. sysf_messageBox(chkprcp+" 처방은 시행된 검사 처방입니다.\n병동이관, D/C, 강제 Acting 할 수 없습니다.","E");
  1733. }
  1734. }else{
  1735. if ((pStat == "1") && (ds_grid_grd_testlist.getColumn(i , "dcyn")=="N")) {
  1736. sysf_messageBox(chkprcp+" 처방은 혈액처방입니다.\n 처방상태가 처방/간호확인이 아니면 D/C할 수 없습니다..", "E");
  1737. }
  1738. else if ((pStat == "1") && (ds_grid_grd_testlist.getColumn(i , "dcyn")=="Y")) {
  1739. ds_grid_grd_testlist.setColumn(i , "viewstat", pStat);
  1740. }
  1741. else if (pStat == "2") {
  1742. sysf_messageBox(chkprcp+" 처방은 혈액처방입니다.\n강제 Acting 할 수 없습니다.", "E");
  1743. }
  1744. else {
  1745. //messageBox(chkprcp+" 처방은 혈액처방입니다.\n강제 Acting 할 수 없습니다.", "E");
  1746. }
  1747. }
  1748. // 진검 B2 처방인 경우 바코드출력상태(400)이후만 강제Acting되도록
  1749. if(ds_grid_grd_testlist.getColumn(i , "prcpclscd") == "B2" ){
  1750. if((ds_grid_grd_testlist.getColumn(i , "prcpstatcd") < 400 )&& (pStat == "2")){
  1751. sysf_messageBox(chkprcp+"처방은 진검 처방입니다.\n바코드 발행 후 강제 Acting 하십시오.","E");
  1752. ds_grid_grd_testlist.setColumn(i , "viewstat", "-");
  1753. }else {
  1754. //messageBox(chkprcp+"ddddddd처방은 진검 처방입니다.\n바코드 발행 후 강제 Acting 하십시오.","E");
  1755. ds_grid_grd_testlist.setColumn(i , "viewstat", pStat);
  1756. }
  1757. }
  1758. } // selectyn = 'Y' end
  1759. } // for end
  1760. } else if(pTarget == "Ing"){
  1761. for(var i= 0 ; i < ds_grid_grd_inglist.rowcount ; i++){
  1762. if(ds_grid_grd_inglist.getColumn(i ,"selectyn")=="Y"){
  1763. ds_grid_grd_inglist.setColumn(i ,"viewstat", pStat);
  1764. }
  1765. }
  1766. } else if(pTarget == "All"){
  1767. for(var i= 0 ; i < ds_grid_grd_testlist.rowcount ; i++){
  1768. ds_grid_grd_testlist.setColumn(i , "viewstat", pStat);
  1769. }
  1770. for(var i= 0 ; i < ds_grid_grd_inglist.rowcount ; i++){
  1771. ds_grid_grd_inglist.setColumn(i ,"viewstat", pStat);
  1772. }
  1773. }
  1774. } // function end
  1775. /**
  1776. * @group :
  1777. * @ver : 2007.06.21
  1778. * @by : 양천덕
  1779. * @---------------------------------------------------
  1780. * @type : function
  1781. * @access : public
  1782. * @desc : 검사, 약주사 DC 구현 부분
  1783. * @param :
  1784. * @return :
  1785. * @---------------------------------------------------
  1786. */
  1787. function fPrcpDC(pFlag){
  1788. //------------------------------------------------------------------------------------------------------
  1789. // 간호 확인 약처방을 의사가 D/C(반납)를 하였을 경우에 투약기록지로 가서 해결하라는 메세지를 보여준다
  1790. // sdm
  1791. //------------------------------------------------------------------------------------------------------
  1792. var prcpddprcpno = ""; //------------(20080917)김보성
  1793. var chkprcp; // 2014-02-10 중복된 선언으로 인한 재선언
  1794. var tRow; // 2014-02-10 중복된 선언으로 인한 재선언
  1795. var sRowIdx;
  1796. if(sysf_messageBox ( "DC 처리를 ", "Q003" ) == "6"){
  1797. var iRow = ds_grid_grd_patlist.findRow("pid", ds_cond.getColumn(0, "pid"));
  1798. //var sHeaderData = "status▦prcpdd▦prcpno▦prcphistno▦instcd▩";
  1799. //var dcPrcpInfo = "";
  1800. //var dcMediPrcpInfo = "";
  1801. var dcPrcpCnt = 0;
  1802. ds_temp_savePrcpInfo.clearData();
  1803. ds_temp_saveMediPrcpInfo.clearData();
  1804. if(pFlag == "Test"){
  1805. //DC할 검사처방 확인
  1806. tRow = ds_grid_grd_testlist.rowcount;
  1807. for(var i=0 ; i < tRow ; i++){
  1808. chkprcp = "";
  1809. chkprcp = ds_grid_grd_testlist.getColumn(i, "prcpnm");
  1810. // 그리드에서 선택된 처방 선택
  1811. if(ds_grid_grd_testlist.getColumn(i, "selectyn") == "Y" ){
  1812. //선택된 처방 중 혈액 처방 제외
  1813. if( ds_grid_grd_testlist.getColumn(i, "testtp") == "Y"){
  1814. //미수행 처방 선택
  1815. if( ds_grid_grd_testlist.getColumn(i, "execyn") == "N"){
  1816. if(ds_grid_grd_testlist.getColumn(i, "grupsnglflag") != "M"){
  1817. sRowIdx = ds_temp_savePrcpInfo.addRow();
  1818. ds_temp_savePrcpInfo.setColumn(sRowIdx, "status", "C");
  1819. ds_temp_savePrcpInfo.setColumn(sRowIdx, "prcpdd", ds_grid_grd_testlist.getColumn(i, "prcpdd"));
  1820. ds_temp_savePrcpInfo.setColumn(sRowIdx, "prcpno", ds_grid_grd_testlist.getColumn(i, "prcpno"));
  1821. ds_temp_savePrcpInfo.setColumn(sRowIdx, "prcphistno", ds_grid_grd_testlist.getColumn(i, "prcphistno"));
  1822. ds_temp_savePrcpInfo.setColumn(sRowIdx, "instcd", ds_grid_grd_testlist.getColumn(i, "instcd"));
  1823. dcPrcpCnt++;
  1824. }else{
  1825. sysf_messageBox(chkprcp+"는 Mset 처방입니다.","E");
  1826. }
  1827. }else if(ds_grid_grd_testlist.getColumn(i, "execyn") == "OUT"){
  1828. sysf_messageBox(chkprcp+"는 퇴원 후 외래 검사 처방입니다.","E");
  1829. }else{
  1830. sysf_messageBox(chkprcp+"는 이미 시행된 검사 처방입니다.","E");
  1831. }
  1832. }else{
  1833. sysf_messageBox(chkprcp+"는 혈액 처방입니다.","E");
  1834. }
  1835. }
  1836. }
  1837. }else{
  1838. //DC할 약/주사 처방 확인
  1839. //------------------------------------------------------
  1840. // var tRowChk = grd_inglist.rows ;
  1841. // var chkDC="" ;
  1842. // var chkYn="";
  1843. // for (i=1 ; i< tRowChk ; i ++) {
  1844. // if(model.getValue("/root/main/incplist/inginfo["+i+"]/selectyn") == "Y" ){
  1845. // var chk_execprcphistcd = model.getValue("/root/main/incplist/inginfo["+i+"]/execprcphistcd");
  1846. // if (chk_execprcphistcd=="E") {
  1847. // chkDC=chkDC + " "+chk_execprcphistcd;
  1848. // chkYn="A";
  1849. // }
  1850. // }
  1851. // }
  1852. // if (chkYn=="A") {
  1853. //
  1854. // if (messageBox("간호 확인 후 의사 반환 처방이 있습니다-투약기록지 작성을 ","Q003")=="6") {
  1855. // modal("SMMNR00600","1","15","128");
  1856. // fGetPatList();
  1857. // fSelectPatList();
  1858. // return;
  1859. // }
  1860. // }else{
  1861. //-------------------------------------------------------
  1862. tRow = ds_grid_grd_inglist.rowcount;
  1863. var prcpno = "";
  1864. var dcstatus = "";
  1865. for(var i=0 ; i < tRow ; i ++){
  1866. chkprcp = ds_grid_grd_inglist.getColumn(i, "prcpnm");
  1867. // 그리드에서 선택된 처방 선택
  1868. if(ds_grid_grd_inglist.getColumn(i, "selectyn") == "Y" ){
  1869. //미수행 처방 선택 ( Actiong 완료, 퇴원약 약국전송 건 제외)
  1870. if(ds_grid_grd_inglist.getColumn(i, "prcpkindcdyn") == "Y" ){
  1871. sysf_messageBox(chkprcp + "는 퇴원약 처방입니다.\n퇴원 처방은 간호사가 D/C할 수 없습니다.","E");
  1872. }else{
  1873. if( ds_grid_grd_inglist.getColumn(i, "execyn") == "N"
  1874. || ds_grid_grd_inglist.getColumn(i, "execyn") == "E" ){
  1875. //약,주사 경우는 3개로 풀릴 수 있으므로 한개의 처방 번호만 넘기도록 함
  1876. //if(prcpno != model.getValue("/root/main/incplist/inginfo["+i+"]/prcpno"))
  1877. //dcstatus E 이면 의사 후인증을 안타도록 "MEDI", N이면 후인증타도록 "CERT"
  1878. dcstatus = ( ds_grid_grd_inglist.getColumn(i, "execyn") == "N" ? "CERT" : "MEDI");
  1879. switch( ds_grid_grd_inglist.getColumn(i, "execyn") ){
  1880. case "N" : //정상처방인것이고 처방 인터페이스를 타면 의사 처방반환요청 상태인 "E"로 변경됨.
  1881. // prcpno = model.getValue("/root/main/incplist/inginfo["+i+"]/prcpno");
  1882. sRowIdx = ds_temp_savePrcpInfo.addRow();
  1883. ds_temp_savePrcpInfo.setColumn(sRowIdx, "status", "C");
  1884. ds_temp_savePrcpInfo.setColumn(sRowIdx, "prcpdd", ds_grid_grd_inglist.getColumn(i, "prcpdd"));
  1885. ds_temp_savePrcpInfo.setColumn(sRowIdx, "prcpno", ds_grid_grd_inglist.getColumn(i, "prcpno"));
  1886. ds_temp_savePrcpInfo.setColumn(sRowIdx, "prcphistno", ds_grid_grd_inglist.getColumn(i, "prcphistno"));
  1887. ds_temp_savePrcpInfo.setColumn(sRowIdx, "instcd", ds_grid_grd_inglist.getColumn(i, "instcd"));
  1888. // dcPrcpCnt++;
  1889. // //-----------------(20080926) 김보성
  1890. // if (model.getValue("/root/main/incplist/inginfo["+i+"]/prcpstatcd") >= "000" ) {
  1891. // prcpddprcpno += "'" +
  1892. // model.getValue("/root/main/incplist/inginfo["+i+"]/prcpdd") +
  1893. // model.getValue("/root/main/incplist/inginfo["+i+"]/prcpno") + "',";
  1894. // }
  1895. case "E" :
  1896. /*의사반환요청들어온 처방이고 투약기록에서 DC최종 정리를 하고 후인증처리대상이 안됨.dcstatus "CERT"인것은 후인증관리에도 조회가 되어야한다.
  1897. 투약기록을 태우기위한 파라미터 정의이므로 case "N" 에는 break가 없는게 정상임. 20100108 김홍점
  1898. */
  1899. //prcpno = ds_grid_grd_inglist.getColumn(i, "prcpno");
  1900. sRowIdx = ds_temp_saveMediPrcpInfo.addRow();
  1901. ds_temp_saveMediPrcpInfo.setColumn(sRowIdx, "status", dcstatus);
  1902. ds_temp_saveMediPrcpInfo.setColumn(sRowIdx, "prcpdd", ds_grid_grd_inglist.getColumn(i, "prcpdd"));
  1903. ds_temp_saveMediPrcpInfo.setColumn(sRowIdx, "prcpno", ds_grid_grd_inglist.getColumn(i, "prcpno"));
  1904. ds_temp_saveMediPrcpInfo.setColumn(sRowIdx, "prcphistno", ds_grid_grd_inglist.getColumn(i, "prcphistno"));
  1905. ds_temp_saveMediPrcpInfo.setColumn(sRowIdx, "instcd", ds_grid_grd_inglist.getColumn(i, "instcd"));
  1906. dcPrcpCnt++;
  1907. //-----------------(20080926) 김보성
  1908. if (ds_grid_grd_inglist.getColumn(i, "prcpstatcd") >= 000 ) {
  1909. prcpddprcpno += "'" +
  1910. ds_grid_grd_inglist.getColumn(i, "prcpdd") +
  1911. ds_grid_grd_inglist.getColumn(i, "prcpno") + "',";
  1912. }
  1913. break;
  1914. }
  1915. }else if(ds_grid_grd_inglist.getColumn(i, "execyn") == "DC"){
  1916. sysf_messageBox(chkprcp+"는 반환요청된 처방입니다.","E");
  1917. // }else if(model.getValue("/root/main/incplist/inginfo["+i+"]/execyn") == "PRE"){
  1918. //
  1919. // messageBox(chkprcp+"는 \n\n 간호에서 '선'지정한 처방으로 투약기록이 안된 처방입니다","E");
  1920. }else{
  1921. sysf_messageBox(chkprcp+"는 이미 시행된 처방입니다.","E");
  1922. }
  1923. }
  1924. }
  1925. }
  1926. }
  1927. ds_temp_saveFlagInfo.clearData();
  1928. sRowIdx = ds_temp_saveFlagInfo.addRow();
  1929. //저장구분정보(saveFlagInfo)
  1930. ds_temp_saveFlagInfo.setColumn(sRowIdx, "savedataflag" , "2" ); //저장자료구분 0:진단 및 처방, 1:진단, 2:처방, 4:임시저장
  1931. ds_temp_saveFlagInfo.setColumn(sRowIdx, "saveflag" , "E" ); //저장구분 O:외래, I:입원, E:응급, S:건진
  1932. ds_temp_saveFlagInfo.setColumn(sRowIdx, "prcpflag" , "0" ); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  1933. ds_temp_saveFlagInfo.setColumn(sRowIdx, "inptflag" , "3" ); //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  1934. ds_temp_saveFlagInfo.setColumn(sRowIdx, "pamflag" , "Y" ); //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  1935. ds_temp_saveFlagInfo.setColumn(sRowIdx, "diagflag" , "Y" ); //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  1936. ds_temp_saveFlagInfo.setColumn(sRowIdx, "prcperrflag" , "Y" ); //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  1937. ds_temp_saveFlagInfo.setColumn(sRowIdx, "deptcd" , sysf_getUserInfo("dutplcecd") ); //부서코드
  1938. ds_temp_saveFlagInfo.setColumn(sRowIdx, "deptnm" , sysf_getUserInfo("dutplcenm") ); //부서명
  1939. ds_temp_saveFlagInfo.setColumn(sRowIdx, "userid" , sysf_getUserInfo("userid") ); //사용자ID
  1940. ds_temp_saveFlagInfo.setColumn(sRowIdx, "usernm" , sysf_getUserInfo("usernm") ); //사용자명
  1941. ds_temp_saveFlagInfo.setColumn(sRowIdx, "signyn" , "N" ); //전자서명여부
  1942. ds_temp_saveRgstInfo.clearData();
  1943. sRowIdx = ds_temp_saveRgstInfo.addRow();
  1944. //저장등록정보(saveRgstInfo)
  1945. ds_temp_saveRgstInfo.setColumn(sRowIdx, "pid" , ds_grid_grd_patlist.getColumn(iRow ,"pid") ); // 등록번호(원무Key)
  1946. ds_temp_saveRgstInfo.setColumn(sRowIdx, "orddd" , "-" ); // 진료일자(원무Key) - 입원일경우는 '-'
  1947. ds_temp_saveRgstInfo.setColumn(sRowIdx, "indd" , ds_grid_grd_patlist.getColumn(iRow ,"indd") ); // 입원일자(원무Key)
  1948. ds_temp_saveRgstInfo.setColumn(sRowIdx, "cretno" , ds_grid_grd_patlist.getColumn(iRow ,"cretno") ); // 생성번호(원무Key)
  1949. ds_temp_saveRgstInfo.setColumn(sRowIdx, "orddeptcd" , ds_grid_grd_patlist.getColumn(iRow ,"orddeptcd") ); // 진료과(원무)
  1950. ds_temp_saveRgstInfo.setColumn(sRowIdx, "orddrid" , ds_grid_grd_patlist.getColumn(iRow ,"orddrid") ); // 진료의ID(원무)
  1951. ds_temp_saveRgstInfo.setColumn(sRowIdx, "instcd" , ds_grid_grd_patlist.getColumn(iRow ,"instcd") ); // 기관코드
  1952. // D/C할 처방이 없을 경우 return처리
  1953. if( dcPrcpCnt > 0 ){
  1954. //-----------------------(20080917)김보성
  1955. //약 D/C인 경우만
  1956. if(pFlag != "Test") {
  1957. //1. 인증을 위한 자료 추출
  1958. prcpddprcpno = prcpddprcpno.substr(0,prcpddprcpno.length-1);
  1959. fnSignSaveCall("30",prcpddprcpno);
  1960. //----------------(20090923)
  1961. if (ds_data_sign_signdata.rowcount > 0 ) {
  1962. //2. 자료에 대해서 인증하기
  1963. if ( fnSignSaveWork() == true) {
  1964. //3. 인증자료를 묶음submit("TXMNP06013")
  1965. ds_temp_signsave.copyData(ds_data_sign_signdata);
  1966. } else {
  1967. return ; //---(20080922)
  1968. }
  1969. }
  1970. //----------------(20090923)
  1971. }
  1972. var objParam = new Object();
  1973. objParam.id = "TXMNE00203";
  1974. objParam.service = "ercareapp.ERInRmOutRmMngt";
  1975. objParam.method = "reqExeSavePrcpIF";
  1976. objParam.inds = "saveFlagInfo=ds_temp_saveFlagInfo saveRgstInfo=ds_temp_saveRgstInfo savePrcpInfo=ds_temp_savePrcpInfo saveMediPrcpInfo=ds_temp_saveMediPrcpInfo signsave=ds_temp_signsave";
  1977. objParam.outds ="ds_data_errlist=errlist";
  1978. objParam.callback = "cbf_TXMNE00203";
  1979. lgv_bTrSucFlag = false;
  1980. tranf_submit(objParam);
  1981. //-----------------------(20080917)
  1982. if(lgv_bTrSucFlag){
  1983. if(ds_data_errlist.rowcount > 0){
  1984. //var iNode = "/root/srcdata/list/patlist"; // (20140206) 사용하지 않는 변수 주석처리함
  1985. fShowModal("SPMNE00200");
  1986. }
  1987. fSelectInddPatList("S");
  1988. //-----------------------(20080917):김보성
  1989. //약 D/C인 경우만
  1990. if(pFlag != "Test") {
  1991. //1. 일자별 인증을 위한 일자 추출
  1992. var signDates = new Array;
  1993. var signDateCnt = 0;
  1994. var signdispdd = "";
  1995. //var sPathsignsave = "/root/signinfo/signsave/signdata";
  1996. var rows = ds_temp_signsave.rowcount;
  1997. if (rows <= 0 ) return;
  1998. for (var i=0;i< rows ;i++) { //---(0922)
  1999. signdispdd = ds_temp_signsave.getColumn(i, "execdd");
  2000. if ( signDates.length == 0) {
  2001. signDateCnt = 0;
  2002. signDates[signDateCnt] = "";
  2003. }
  2004. if (signdayFind(signDates,signdispdd) == true ) { //------(투약일자)
  2005. signDateCnt ++;
  2006. signDates[signDateCnt] = signdispdd;
  2007. }
  2008. }
  2009. //2. 투약기록을 일자별로 XLST를 만들기 위해서
  2010. fnWorkddSign(signDates);
  2011. }
  2012. //-----------------------(20080917)
  2013. }
  2014. }
  2015. }
  2016. }
  2017. function fShowModal(pProgID) {
  2018. //var xpos = event.screenX-300;
  2019. //var ypos = event.screenY-400;
  2020. var objParam = new Object();
  2021. objParam.arg_ds_data_errlist = ds_data_errlist;
  2022. frmf_modal(pProgID, pProgID, objParam , false,"","","","","","","","","M");
  2023. var iProperties = frmf_getParameter("SendData");
  2024. return iProperties;
  2025. }
  2026. /**
  2027. * @group :
  2028. * @ver : 2007.06.21
  2029. * @by : 양천덕
  2030. * @---------------------------------------------------
  2031. * @type : function
  2032. * @access : public
  2033. * @desc : 퇴실일시 확인 부분
  2034. * @param :
  2035. * @return :
  2036. * @---------------------------------------------------
  2037. */
  2038. function fChkOutrmdd(){
  2039. var iRow = ds_grid_grd_patlist.findRow("pid", ds_cond.getColumn(0, "pid"));
  2040. var nowDate = utlf_getCurrentTime().substr(0,4); //현재 시간 셋팅
  2041. var checktime = ds_cond.getColumn(0, "outrmdd") + ds_cond.getColumn(0, "outrmtm") ; //체크할 시간 셋팅(퇴원일시)
  2042. //내원시간, 퇴원시간 체크
  2043. if(ds_grid_grd_patlist.getColumn(iRow, "chosdt") > checktime ){
  2044. ds_cond.setColumn(0, "outrmdd", utlf_getCurrentDate() );
  2045. ds_cond.setColumn(0, "outrmtm", nowDate );
  2046. sysf_messageBox("선택일이 내원일시보다 이전입니다.", "E");
  2047. } else {
  2048. ds_cond.setColumn(0, "t_outrmdt", ds_cond.getColumn(0, "outrmdd") + ds_cond.getColumn(0, "outrmtm") );
  2049. }
  2050. }
  2051. /**
  2052. * @group :
  2053. * @ver : 2007.06.21
  2054. * @by : 양천덕
  2055. * @---------------------------------------------------
  2056. * @type : function
  2057. * @access : public
  2058. * @desc : 환자 기본 정보 설정 부분
  2059. * @param :
  2060. * @return :
  2061. * @---------------------------------------------------
  2062. */
  2063. function fCalcChosOut(){
  2064. var iRow = ds_grid_grd_patlist.rowposition;
  2065. if(utlf_isNull(ds_grid_grd_patlist.getColumn(iRow, "chosdt")) || utlf_isNull(ds_cond.getColumn(0, "outrmdd"))){
  2066. return;
  2067. }
  2068. //퇴실일시 확인 부분
  2069. fChkOutrmdd();
  2070. var CalcDate = "";
  2071. //내원시간 세팅
  2072. var chosyy = ds_grid_grd_patlist.getColumn(iRow, "chosdt").substr(0,4);
  2073. var chosmm = ds_grid_grd_patlist.getColumn(iRow, "chosdt").substr(4,2);
  2074. var chosdd = ds_grid_grd_patlist.getColumn(iRow, "chosdt").substr(6,2);
  2075. var choshh = ds_grid_grd_patlist.getColumn(iRow, "chosdt").substr(8,2);
  2076. var chosnn = ds_grid_grd_patlist.getColumn(iRow, "chosdt").substr(10,2);
  2077. //퇴실시간 세팅
  2078. var outrmyy = ds_cond.getColumn(0, "outrmdd").substr(0,4);
  2079. var outrmmm = ds_cond.getColumn(0, "outrmdd").substr(4,2);
  2080. var outrmdd = ds_cond.getColumn(0, "outrmdd").substr(6,2);
  2081. var outrmhh = ds_cond.getColumn(0, "outrmtm").substr(0,2);
  2082. var outrmnn = ds_cond.getColumn(0, "outrmtm").substr(2,2);
  2083. //재실 시간 계산을 위하여 시간, 분 단위로 차이를 계산
  2084. var rstFromTime = new Date(chosyy,chosmm-1,chosdd,choshh,chosnn,0);
  2085. var rstEndTime = new Date(outrmyy, outrmmm-1,outrmdd,outrmhh,outrmnn,0);
  2086. var diffnn = ((rstEndTime - rstFromTime) / (60*1000)) ;
  2087. var diffhh = Math.ceil( (rstEndTime - rstFromTime) / ( 60*60*1000) ) ;
  2088. //시간 : 분 구하기
  2089. if(chosnn != outrmnn){
  2090. calcdiffhh = diffhh -1;
  2091. calcdiffnn = (diffnn - ((diffhh-1) * 60 ));
  2092. //분이 정각일 경우
  2093. }else{
  2094. calcdiffhh = diffhh;
  2095. calcdiffnn = "00";
  2096. }
  2097. /*2013.03.26 재실시간이 6시간 미만이면 요율버튼 Disabled by A.bm*/
  2098. // if(parseInt(calcdiffhh) < 6) group3.button52.enable = false;
  2099. // else group3.button52.enable = true;
  2100. //환자 기본정보 문장 생성
  2101. CalcDate = calcdiffhh + "시간 "+ calcdiffnn + "분" ;
  2102. return CalcDate;
  2103. }
  2104. /**
  2105. * @group :
  2106. * @ver : 2007.06.21
  2107. * @by : 양천덕
  2108. * @---------------------------------------------------
  2109. * @type : function
  2110. * @access : public
  2111. * @desc : 검사 처방 강제 Action 처리 부분
  2112. * @param :
  2113. * @return :
  2114. * @---------------------------------------------------
  2115. */
  2116. function fSaveTestPrcp(){
  2117. //acting저장
  2118. var datacheck2 = "N"; // 2014-02-10 중복된 선언으로 인한 재선언
  2119. var tRow = ds_grid_grd_testlist.rowcount;
  2120. var vbYes = sysf_messageBox("선택된 처방 Acting","Q004");
  2121. if( vbYes == 6 ){
  2122. //마우스 드래그시 실시 검사 처방 여부 확인
  2123. //for(i= 1 ; i <tRow; i++ ) {
  2124. if( 0 < ds_grid_grd_testlist.getCaseCount("execyn == 'N'") ){
  2125. datacheck2 = "Y";
  2126. }
  2127. //}
  2128. if(datacheck2 == "N" || tRow < 1){
  2129. sysf_messageBox("미시행 검사 처방이 존재하지", "E007");
  2130. group3.swt_outrmmenu.case1.button3.setFocus();
  2131. return;
  2132. }else{
  2133. for(i=0 ; i < tRow ; i ++){
  2134. var chkprcp = ds_grid_grd_testlist.getColumn(i, "prcpnm");
  2135. if(ds_grid_grd_testlist.getColumn(i, "selectyn") == "Y" ){ // 드래그 선택여부 체크
  2136. if( ds_grid_grd_testlist.getColumn(i, "testtp") == "Y"){ //
  2137. if( ds_grid_grd_testlist.getColumn(i, "execyn") == "N"){ // Acting여부 체크
  2138. if(ds_grid_grd_testlist.getColumn(i, "grupsnglflag") != "M" ){ // MSet처방
  2139. ds_grid_grd_testlist.setColumn(i, "viewstat" , "2");
  2140. }else{
  2141. sysf_messageBox(chkprcp+"처방은 MSet 처방입니다.\n강제 Acting할 수 없습니다.","E");
  2142. }
  2143. }else if(ds_grid_grd_testlist.getColumn(i, "execyn") == "OUT"){
  2144. sysf_messageBox(chkprcp+"는 퇴원 후 외래 처방입니다.\n강제 Acting 할 수 없습니다.","E");
  2145. }else{
  2146. sysf_messageBox(chkprcp+"는 이미 시행된 처방입니다.\n강제 Acting 할 수 없습니다.","E");
  2147. }
  2148. }else{
  2149. sysf_messageBox(chkprcp+" 은 혈액처방 입니다.\n강제 Acting 할 수 없습니다.","E");
  2150. }
  2151. }
  2152. } // for end
  2153. dsf_createDsRow("ds_temp_searchpat",
  2154. [{col:"pid" , val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid")}
  2155. ,{col:"indd" , val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd")}
  2156. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno")}
  2157. ,{col:"instcd", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd")}
  2158. ,{col:"dschdclrdt", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "dschdclrdt")}]);
  2159. var objParam = new Object();
  2160. objParam.id = "TXMNE00204";
  2161. objParam.service = "ercareapp.ERInRmOutRmMngt";
  2162. objParam.method = "reqExeERPrcpActing";
  2163. objParam.inds = "searchpat=ds_temp_searchpat reqcond=ds_grid_grd_testlist:U";
  2164. objParam.outds ="ds_grid_grd_testlist=testinfo ds_grid_grd_inglist=inginfo";
  2165. objParam.callback = "cbf_TXMNE00204";
  2166. tranf_submit(objParam);
  2167. var objDs = this.removeChild("ds_temp_searchpat");
  2168. delete objDs;
  2169. objDs = null;
  2170. }
  2171. }
  2172. }
  2173. /**
  2174. * @group :
  2175. * @ver : 2007.06.07
  2176. * @by : 양천덕
  2177. * @---------------------------------------------------
  2178. * @type : function
  2179. * @access : public
  2180. * @desc : 상단 정보 이용 환자 선택
  2181. * @param :
  2182. * @return :
  2183. * @---------------------------------------------------
  2184. */
  2185. function fGetParamSetting(){
  2186. var chkPid = appf_getPatientInfo("pid");
  2187. var iTgPatRow = -1;
  2188. if(!utlf_isNull(chkPid)){
  2189. var tRow = ds_grid_grd_patlist.rowcount;
  2190. if(tRow < 1){
  2191. return;
  2192. }else{
  2193. iTgPatRow = ds_grid_grd_patlist.findRow("pid", chkPid);
  2194. }
  2195. }
  2196. if(iTgPatRow >= 0){
  2197. sysf_trace("iTgPatRow : " + iTgPatRow)
  2198. ds_grid_grd_patlist.rowposition = iTgPatRow;
  2199. group3.grd_patlist.vscrollbar.pos = iTgPatRow;
  2200. //grd_patlist.topRow = iTgPatRow;
  2201. fSelectPatList();
  2202. }
  2203. else{
  2204. // 초기화
  2205. fInitSettingTop("A");
  2206. fInitSetNode();
  2207. }
  2208. }
  2209. /**
  2210. * @group :
  2211. * @ver : 2007.06.07
  2212. * @by : 양천덕
  2213. * @---------------------------------------------------
  2214. * @type : function
  2215. * @access : public
  2216. * @desc : 환자 선택 검사/약,주사 처방조회
  2217. * @param :
  2218. * @return :
  2219. * @---------------------------------------------------
  2220. */
  2221. function fSelectPatList(flag){
  2222. var sRow = ds_grid_grd_patlist.rowposition;
  2223. if(sRow < 0){
  2224. return;
  2225. }
  2226. fResrchPatList(); //환자 재조회
  2227. fSetParam(); //상단정보설정
  2228. fSelectInddPatList("S"); //검사, 약주사, 마약 조회
  2229. // 검사탭으로 초기화
  2230. //group3.swt_outrmmenu.tabindex = 0;
  2231. lf_setTabPage(group3.swt_outrmmenu, group3.swt_outrmmenu.tabindex);
  2232. //** 마약Tab 활성화 기준설정_20090213(ByCY) **//
  2233. // if(group3.swt_outrmmenu.tabindex == 0 || group3.swt_outrmmenu.tabindex == 1) {
  2234. // lf_setTabPage(group3.swt_outrmmenu, group3.swt_outrmmenu.tabindex);
  2235. // }
  2236. fInitSettingTop(); //퇴실처리 환자기본정보 초기화
  2237. ds_cond.setColumn(0, "pid", ds_grid_grd_patlist.getColumn(sRow, "pid"));
  2238. var tRow = ds_grid_grd_testlist.rowcount;
  2239. var iRow = ds_grid_grd_inglist.rowcount;
  2240. var maxDate = "";
  2241. var minDate = "";
  2242. for(i = 0 ; i < tRow ; i++){
  2243. if(!utlf_isNull(maxDate)){
  2244. if(maxDate < ds_grid_grd_testlist.getColumn(i, "prcpdd") ){
  2245. maxDate = ds_grid_grd_testlist.getColumn(i, "prcpdd");
  2246. }
  2247. }else{
  2248. maxDate = ds_grid_grd_testlist.getColumn(i, "prcpdd");
  2249. }
  2250. if(!utlf_isNull(minDate)){
  2251. if(minDate >= ds_grid_grd_testlist.getColumn(i, "prcpdd") ){
  2252. minDate = ds_grid_grd_testlist.getColumn(i, "prcpdd");
  2253. }
  2254. }else {
  2255. minDate = ds_grid_grd_testlist.getColumn(i, "prcpdd");
  2256. }
  2257. }
  2258. ds_cond.setColumn(0, "outrmdd", utlf_getCurrentDate() );
  2259. ds_cond.setColumn(0, "outrmtm", utlf_getCurrentTime().substr(0,4) );
  2260. var t_patinfo = utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "pid"))+" "
  2261. + utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "patnm"))+" "
  2262. + utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "gndrage"));
  2263. var t_chosdt = utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "chosdt"));
  2264. var t_outrmdt = utlf_transNullToEmpty(ds_cond.getColumn(0, "outrmdd")) + utlf_transNullToEmpty(ds_cond.getColumn(0, "outrmtm"));
  2265. var t_calctm = utlf_transNullToEmpty(fCalcChosOut());
  2266. var t_assgroom = utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "assgroom"));
  2267. //var t_assgward = utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "assgward")); // 예정병동 추가
  2268. var t_fstexamorddd = utlf_transNullToEmpty(ds_grid_grd_patlist.getColumn(sRow, "fstexamorddd"));
  2269. ds_cond.setColumn(0, "t_patinfo" , t_patinfo );
  2270. ds_cond.setColumn(0, "t_chosdt" , t_chosdt );
  2271. ds_cond.setColumn(0, "t_outrmdt" , t_outrmdt );
  2272. ds_cond.setColumn(0, "t_calctm" , t_calctm );
  2273. ds_cond.setColumn(0, "t_assgroom" , t_assgroom);
  2274. ds_cond.setColumn(0, "t_fstexamorddd" , t_fstexamorddd );
  2275. group3.ipt_chnghospchoi.visible = false;
  2276. group3.ipt_chnghospchoi2.visible = false;
  2277. group3.caption2.visible = false;
  2278. group3.caption3.visible = false;
  2279. group3.caption20.visible = false;
  2280. group3.cmb_dschhosptype.visible = false;
  2281. ds_cond.setColumn(0, "chnghospchoi", "");
  2282. ds_cond.setColumn(0, "dschhosptype", "");
  2283. if(!utlf_isNull(ds_data_bloodinfo.getColumn(0,"bloodcomment"))) { //임시저장한 수혈기록 존재여부
  2284. group3.button5.visible = true;
  2285. group3.output12.visible = true;
  2286. } else {
  2287. group3.button5.visible = false;
  2288. group3.output12.visible = false;
  2289. }
  2290. var pid = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid");
  2291. var indd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd");
  2292. var cretno = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno");
  2293. var instcd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd");
  2294. var orddeptcd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "orddeptcd");
  2295. ds_send_req.clearData();
  2296. dsf_makeValue(ds_send_req, "pid", "string", pid);
  2297. dsf_makeValue(ds_send_req, "indd", "string", indd);
  2298. dsf_makeValue(ds_send_req, "cretno", "string", cretno);
  2299. dsf_makeValue(ds_send_req, "orddeptcd", "string", orddeptcd);
  2300. dsf_makeValue(ds_send_req, "instcd", "string", instcd);
  2301. dsf_makeValue(ds_send_req, "dschdclrdt", "string", ds_cond.getColumn(0, "outrmdd")); //예약정보 조회시 사용
  2302. dsf_makeValue(ds_send_req, "recflag", "string", "01");
  2303. //submit("TRMNW03601");
  2304. //submit("TRMNW10001");
  2305. var oParam = {};
  2306. oParam.id = "TRMNW10001";
  2307. oParam.service = "wardcareapp.WardDschCareRec";
  2308. oParam.method = "reqGetPamRsrvInfo";
  2309. oParam.inds = "req=ds_send_req";
  2310. oParam.outds = "ds_data_ordrsrvinfo=ordrsrvinfo ds_data_testrsrvinfo=testrsrvinfo ds_data_dschdrugfactinfo=dschdrugfactinfo ds_data_dschtransferinfo=dschtransferinfo ds_data_inrsrvinfo=inrsrvinfo";
  2311. oParam.async = false;
  2312. //oParam.callback = "cf_TRMNW10001";
  2313. tranf_submit(oParam);
  2314. }
  2315. /**
  2316. * @group :
  2317. * @ver : 2007.06.21
  2318. * @by : 양천덕
  2319. * @---------------------------------------------------
  2320. * @type : function
  2321. * @access : public
  2322. * @desc : 검사 일괄 DC 구현 부분(상태값으로 D/C 결정 된 처방 일괄 D/C)
  2323. * @param :
  2324. * @return :
  2325. * @---------------------------------------------------
  2326. */
  2327. function fPrcpDCSave(pFlag, pCnt){
  2328. var dcPrcpCnt = 0;
  2329. var sRow;
  2330. // cond3
  2331. // savePrcpInfo
  2332. ds_temp_savePrcpInfo.clearData();
  2333. for(i=0 ; i < ds_grid_grd_testlist.rowcount ; i ++){
  2334. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == '1'){ //DC할 검사처방 확인
  2335. sRow = ds_temp_savePrcpInfo.addRow();
  2336. ds_temp_savePrcpInfo.setColumn(sRow, "status", "C");
  2337. ds_temp_savePrcpInfo.setColumn(sRow, "prcpdd", ds_grid_grd_testlist.getColumn(i, "prcpdd"));
  2338. ds_temp_savePrcpInfo.setColumn(sRow, "prcpno", ds_grid_grd_testlist.getColumn(i, "prcpno"));
  2339. ds_temp_savePrcpInfo.setColumn(sRow, "prcphistno", ds_grid_grd_testlist.getColumn(i, "prcphistno"));
  2340. ds_temp_savePrcpInfo.setColumn(sRow, "instcd", ds_grid_grd_testlist.getColumn(i, "instcd"));
  2341. dcPrcpCnt++;
  2342. }
  2343. }
  2344. ds_temp_saveFlagInfo.clearData();
  2345. sRow = ds_temp_saveFlagInfo.addRow();
  2346. // cond1
  2347. //저장구분정보(saveFlagInfo)
  2348. ds_temp_saveFlagInfo.setColumn(sRow, "savedataflag" , "2" ); //저장자료구분 0:진단 및 처방, 1:진단, 2:처방, 4:임시저장
  2349. ds_temp_saveFlagInfo.setColumn(sRow, "saveflag" , "E" ); //저장구분 O:외래, I:입원, E:응급, S:건진
  2350. ds_temp_saveFlagInfo.setColumn(sRow, "prcpflag" , "0" ); //처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  2351. ds_temp_saveFlagInfo.setColumn(sRow, "inptflag" , "3" ); //입력구분 (11:건진처방, 12:LIS장비IF, 13:기타LIS, 14:병리, 15:EMR기록, 16:원무)
  2352. ds_temp_saveFlagInfo.setColumn(sRow, "pamflag" , "Y" ); //원무정보 처리구분 (Y/N) -> N일 경우 check하지 않음.
  2353. ds_temp_saveFlagInfo.setColumn(sRow, "diagflag" , "Y" ); //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  2354. ds_temp_saveFlagInfo.setColumn(sRow, "prcperrflag" , "Y" ); //처방오류구분(Y/N) -> Y일 경우 의사처방과 동일하게 오류리스트를 반환, N이면 오류를 확인하지 않음
  2355. ds_temp_saveFlagInfo.setColumn(sRow, "deptcd" , sysf_getUserInfo("dutplcecd") ); //부서코드
  2356. ds_temp_saveFlagInfo.setColumn(sRow, "deptnm" , sysf_getUserInfo("dutplcenm") ); //부서명
  2357. ds_temp_saveFlagInfo.setColumn(sRow, "userid" , sysf_getUserInfo("userid") ); //사용자ID
  2358. ds_temp_saveFlagInfo.setColumn(sRow, "usernm" , sysf_getUserInfo("usernm") ); //사용자명
  2359. ds_temp_saveFlagInfo.setColumn(sRow, "signyn" , "N" ); //전자서명여부
  2360. ds_temp_saveRgstInfo.clearData();
  2361. sRow = ds_temp_saveRgstInfo.addRow();
  2362. // cond2
  2363. //저장등록정보(saveRgstInfo)
  2364. ds_temp_saveRgstInfo.setColumn(sRow, "pid" , ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid") ); // 등록번호(원무Key)
  2365. ds_temp_saveRgstInfo.setColumn(sRow, "orddd" , "-" ); // 진료일자(원무Key) - 입원일경우는 '-'
  2366. ds_temp_saveRgstInfo.setColumn(sRow, "indd" , ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd") ); // 입원일자(원무Key)
  2367. ds_temp_saveRgstInfo.setColumn(sRow, "cretno" , ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno") ); // 생성번호(원무Key)
  2368. ds_temp_saveRgstInfo.setColumn(sRow, "orddeptcd" , ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "orddeptcd") ); // 진료과(원무)
  2369. ds_temp_saveRgstInfo.setColumn(sRow, "orddrid" , ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "orddrid") ); // 진료의ID(원무)
  2370. ds_temp_saveRgstInfo.setColumn(sRow, "instcd" , ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd") ); // 기관코드
  2371. ds_temp_saveMediPrcpInfo.clearData();
  2372. ds_temp_signsave.clearData();
  2373. // D/C할 처방이 없을 경우 return처리
  2374. if( dcPrcpCnt > 0 ){
  2375. var objParam = new Object();
  2376. objParam.id = "TXMNE00203";
  2377. objParam.service = "ercareapp.ERInRmOutRmMngt";
  2378. objParam.method = "reqExeSavePrcpIF";
  2379. objParam.inds = "saveFlagInfo=ds_temp_saveFlagInfo saveRgstInfo=ds_temp_saveRgstInfo savePrcpInfo=ds_temp_savePrcpInfo saveMediPrcpInfo=ds_temp_saveMediPrcpInfo signsave=ds_temp_signsave";
  2380. objParam.outds ="ds_data_errlist=errlist";
  2381. objParam.callback = "cbf_TXMNE00203";
  2382. lgv_bTrSucFlag = false;
  2383. tranf_submit(objParam);
  2384. if(lgv_bTrSucFlag){
  2385. if(ds_data_errlist.rowcount > 0){
  2386. //var iNode = "/root/srcdata/list/patlist"; // (20140206) 사용하지 않는 변수 주석처리함
  2387. fShowModal("SPMNE00200");
  2388. }
  2389. if(pCnt < 1){
  2390. fSelectInddPatList("S");
  2391. }
  2392. }
  2393. }
  2394. }
  2395. function cbf_TXMNE00203(strSvcID, nErrorCode, strErrorMsg){
  2396. //에러 처리
  2397. if(nErrorCode == 0){
  2398. lgv_bTrSucFlag = true;
  2399. }else{
  2400. lgv_bTrSucFlag = false;
  2401. }
  2402. }
  2403. /**
  2404. * @group :
  2405. * @ver : 2007.06.21
  2406. * @by : 양천덕
  2407. * @---------------------------------------------------
  2408. * @type : function
  2409. * @access : public
  2410. * @desc : 검사 처방 강제 Action 처리 부분(Acting상태값 처방 일괄 Acting)
  2411. * @param :
  2412. * @return :
  2413. * @---------------------------------------------------
  2414. */
  2415. function fSaveTestPrcpSave(){
  2416. // 상태값 설저으로 인하여 Acting 조건 체크 로직 삭제 : 2008-01-21
  2417. // var datacheck2 = "N";
  2418. // var tRow = grd_testlist.rows;
  2419. //
  2420. // //마우스 드래그시 실시 검사 처방 여부 확인
  2421. // for(i= 1 ; i <tRow; i++ ) {
  2422. // if( model.getValue("/root/main/incplist/testinfo["+i+"]/execyn") == "N" ){
  2423. // var datacheck2 = "Y";
  2424. // }
  2425. // }
  2426. //
  2427. // if(datacheck2 == "N" || grd_testlist.rows == "1"){
  2428. // messageBox("미시행 검사 처방이 존재하지", "E007");
  2429. // model.setFocus("button3");
  2430. // return;
  2431. // }else{
  2432. // for(i=1 ; i < tRow ; i ++){
  2433. // var chkprcp = model.getValue("/root/main/incplist/testinfo["+i+"]/prcpnm");
  2434. // if(model.getValue("/root/main/incplist/testinfo["+i+"]/viewstat") == "2" ){
  2435. // if( model.getValue("/root/main/incplist/testinfo["+i+"]/testtp") == "Y"){
  2436. // if( model.getValue("/root/main/incplist/testinfo["+i+"]/execyn") == "Y"){
  2437. // messageBox(chkprcp+"는 이미 시행된 검사입니다.\n강제 Acting 할 수 없습니다.","I");
  2438. // return;
  2439. // }else if(model.getValue("/root/main/incplist/testinfo["+i+"]/execyn") == "OUT"){
  2440. // messageBox(chkprcp+"는 퇴원 후 외래 처방입니다.\n강제 Acting 할 수 없습니다.","I");
  2441. // return;
  2442. // }
  2443. // }else{
  2444. // messageBox(chkprcp +" 은 혈액처방 입니다.\n강제 Acting 할 수 없습니다.","E");
  2445. // return;
  2446. // }
  2447. // }
  2448. // }
  2449. dsf_createDsRow("ds_temp_searchpat",
  2450. [{col:"pid" , val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid")}
  2451. ,{col:"indd" , val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd")}
  2452. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno")}
  2453. ,{col:"instcd", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "instcd")}
  2454. ,{col:"dschdclrdt", val:ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "dschdclrdt")}]);
  2455. var objParam = new Object();
  2456. objParam.id = "TXMNE00204";
  2457. objParam.service = "ercareapp.ERInRmOutRmMngt";
  2458. objParam.method = "reqExeERPrcpActing";
  2459. objParam.inds = "searchpat=ds_temp_searchpat reqcond=ds_grid_grd_testlist:U";
  2460. objParam.outds ="ds_grid_grd_testlist=testinfo ds_grid_grd_inglist=inginfo";
  2461. objParam.callback = "cbf_TXMNE00204";
  2462. tranf_submit(objParam);
  2463. var objDs = this.removeChild("ds_temp_searchpat");
  2464. delete objDs;
  2465. objDs = null;
  2466. }
  2467. function cbf_TXMNE00204(strSvcID, nErrorCode, strErrorMsg){
  2468. //에러 처리
  2469. if(nErrorCode == 0){
  2470. }else{
  2471. }
  2472. }
  2473. /**
  2474. * @group :
  2475. * @ver : 2008.01.17
  2476. * @by : 양천덕
  2477. * @---------------------------------------------------
  2478. * @type : function
  2479. * @access : public
  2480. * @desc : 검사처방 일괄 처리
  2481. * @param :
  2482. * @return :
  2483. * @---------------------------------------------------
  2484. */
  2485. function fSaveTestPrcpAll(){
  2486. ds_temp_testprcp.clearData();
  2487. var tRow = ds_grid_grd_testlist.rowcount;
  2488. var cntDC = 0;
  2489. var cntACT = 0;
  2490. var cntWard = 0 ;
  2491. var sRow = 0;
  2492. //상태 설정값 저장(병동이관)
  2493. for(var i = 0 ; i<tRow ; i++){
  2494. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == "1"){
  2495. cntDC++;
  2496. }
  2497. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == "2"){
  2498. cntACT++;
  2499. }
  2500. if(ds_grid_grd_testlist.getColumn(i, "viewstat") == "3"){
  2501. cntWard++;
  2502. sRow = ds_temp_testprcp.addRow();
  2503. ds_temp_testprcp.setColumn(sRow , "prcpno" , ds_grid_grd_testlist.getColumn(i, "prcpno"));
  2504. ds_temp_testprcp.setColumn(sRow , "prcphistno" , ds_grid_grd_testlist.getColumn(i, "prcphistno"));
  2505. ds_temp_testprcp.setColumn(sRow , "prcpdd" , ds_grid_grd_testlist.getColumn(i, "prcpdd"));
  2506. }
  2507. }
  2508. if(cntDC < 1 && cntACT < 1){
  2509. sysf_messageBox("DC & Acting 할 처방이 존재하지 않습니다.", "I");
  2510. return;
  2511. }
  2512. var vbYes = sysf_messageBox("DC : "+cntDC+" 건 Acting : "+cntACT+" 건 입니다.","Q004");
  2513. if( vbYes == 6 ){
  2514. if(cntDC > 0){ //DC 설정 스크립트 호출
  2515. fPrcpDCSave("Test", cntACT);
  2516. }
  2517. if(cntACT > 0){ //Acting 설정 스크립트 호출
  2518. fSaveTestPrcpSave();
  2519. }
  2520. //임시 저장된 상태 설정값 세팅(병동이관)
  2521. var sRowIdx;
  2522. for(var j = 0 ; j < ds_temp_testprcp.rowcount ; j++ ){
  2523. sRowIdx = ds_grid_grd_testlist.findRow("prcpno", ds_temp_testprcp.getColumn(j, "prcpno"));
  2524. if(sRowIdx >= 0){
  2525. ds_grid_grd_testlist.setColumn(sRowIdx, "viewstat", "3");
  2526. }
  2527. }
  2528. }
  2529. }
  2530. /**
  2531. * @group :
  2532. * @ver : 2008.01.17
  2533. * @by : 양천덕
  2534. * @---------------------------------------------------
  2535. * @type : function
  2536. * @access : public
  2537. * @desc : 퇴원예고 환자 Cellstyle 변경 및 포커스 컬러 변경
  2538. * @param :
  2539. * @return :
  2540. * @---------------------------------------------------
  2541. */
  2542. function fChangeFocusColor(){
  2543. // row Style 변경 - 전체 cell 적용
  2544. for(var i=0; i<group3.grd_patlist.getCellCount("body");i++){
  2545. //퇴원예고 환자에 대해 셀 색상 지정
  2546. group3.grd_patlist.setCellProperty("body", i, "background", "expr:dschdclrtyn=='Y' ? '#ffd3ff' : 'default'");
  2547. group3.grd_patlist.setCellProperty("body", i, "background2", "expr:dschdclrtyn=='Y' ? '#ffd3ff' : 'default'");
  2548. group3.grd_patlist.setCellProperty("body", i, "selectbackground", "expr:dschdclrtyn=='Y' ? '#00cc66' : 'default'");
  2549. }
  2550. }
  2551. function lf_setExprGrdColor(){
  2552. // row Style 변경 - 전체 cell 적용
  2553. //퇴원예고 환자에 대해 셀 색상 지정
  2554. for(var i=0; i<group3.grd_patlist.getCellCount("body");i++){
  2555. group3.grd_patlist.setCellProperty("body", i, "background", "expr:dschdclrtyn=='Y' ? '#ffd3ff' : ''");
  2556. group3.grd_patlist.setCellProperty("body", i, "background2", "expr:dschdclrtyn=='Y' ? '#ffd3ff' : ''");
  2557. group3.grd_patlist.setCellProperty("body", i, "selectbackground", "expr:dschdclrtyn=='Y' ? '#00cc66' : ''");
  2558. }
  2559. //퇴원약 약 확인
  2560. for(var i=0; i<group3.swt_outrmmenu.case2.grd_inglist.getCellCount("body");i++){
  2561. group3.swt_outrmmenu.case2.grd_inglist.setCellProperty("body", i, "background", "expr:prcpkindcdyn=='Y' ? '#ccffff' :''");
  2562. group3.swt_outrmmenu.case2.grd_inglist.setCellProperty("body", i, "background2", "expr:prcpkindcdyn=='Y' ? '#ccffff' :''");
  2563. }
  2564. // ( 2013-06-25 ) 마약처방에서 퇴원약처방 색표시 추가
  2565. for(var i=0; i<=group3.swt_outrmmenu.case3.grd_narcoticlist.getBindCellIndex("body", "prcpnm");i++){
  2566. group3.swt_outrmmenu.case3.grd_narcoticlist.setCellProperty("body", i, "background", "expr:prcpdschyn=='Y' ? '#ccffff' :''");
  2567. group3.swt_outrmmenu.case3.grd_narcoticlist.setCellProperty("body", i, "background2", "expr:prcpdschyn=='Y' ? '#ccffff' :''");
  2568. }
  2569. }
  2570. /**
  2571. * @group :
  2572. * @ver : 2008.01.17
  2573. * @by : 양천덕
  2574. * @---------------------------------------------------
  2575. * @type : function
  2576. * @access : public
  2577. * @desc : 환자 클릭시 상대값 재조회(퇴원예고, 예정병실)
  2578. * @param :
  2579. * @return :
  2580. * @---------------------------------------------------
  2581. */
  2582. function fResrchPatList(){
  2583. var sRow = group3.grd_patlist.currentrow;
  2584. dsf_createDsRow("ds_temp_reqcond",
  2585. [{col:"pid" , val:ds_grid_grd_patlist.getColumn(sRow, "pid")}
  2586. ,{col:"indd" , val:ds_grid_grd_patlist.getColumn(sRow, "indd")}
  2587. ,{col:"orddd" , val:ds_grid_grd_patlist.getColumn(sRow, "indd")}
  2588. ,{col:"cretno", val:ds_grid_grd_patlist.getColumn(sRow, "cretno")}]);
  2589. dsf_createDs("ds_temp_patinfo");
  2590. var objParam = new Object();
  2591. objParam.id = "TRMNE00201";
  2592. objParam.service = "ercareapp.ERInRmOutRmMngt";
  2593. objParam.method = "reqGetERInddPatListResrch";
  2594. objParam.inds = "reqcond=ds_temp_reqcond";
  2595. objParam.outds ="ds_temp_patinfo=patinfo ds_data_bloodinfo=bloodinfo";
  2596. lgv_bBroadcastflag > 0 ? objParam.progress = false : objParam.progress = true;
  2597. objParam.callback = "cbf_TRMNE00201";
  2598. objParam.progress = false;
  2599. tranf_submit(objParam);
  2600. var objDs = this.removeChild("ds_temp_reqcond");
  2601. delete objDs;
  2602. objDs = null;
  2603. return;
  2604. var objDs = this.removeChild("ds_temp_patinfo");
  2605. delete objDs;
  2606. objDs = null;
  2607. // if( model.getValue("/root/main/inddpatlist/inddpatinfo["+ sRow +"]/dschdclrtyn") == "Y" ){
  2608. // fChangeFocusColor();
  2609. // }
  2610. }
  2611. function cbf_TRMNE00201(strSvcID, nErrorCode, strErrorMsg){
  2612. if( utlf_isNull(ds_temp_patinfo.getColumnInfo("assgward")) ){
  2613. ds_temp_patinfo.addColumn("assgward", "string");
  2614. }
  2615. //에러 처리
  2616. if(nErrorCode == 0){
  2617. var sRow = ds_grid_grd_patlist.rowposition;
  2618. ds_grid_grd_patlist.setColumn(sRow, "bedposcnts" , ds_temp_patinfo.getColumn(0, "bedposcnts") );
  2619. ds_grid_grd_patlist.setColumn(sRow, "dschdclrtyn" , ds_temp_patinfo.getColumn(0, "dschdclrtyn") );
  2620. ds_grid_grd_patlist.setColumn(sRow, "chosdt" , ds_temp_patinfo.getColumn(0, "chosdt") );
  2621. ds_grid_grd_patlist.setColumn(sRow, "dschdclrdt" , ds_temp_patinfo.getColumn(0, "dschdclrdt") );
  2622. ds_grid_grd_patlist.setColumn(sRow, "orddrid" , ds_temp_patinfo.getColumn(0, "orddrid") );
  2623. ds_grid_grd_patlist.setColumn(sRow, "roomcd" , ds_temp_patinfo.getColumn(0, "roomcd") );
  2624. ds_grid_grd_patlist.setColumn(sRow, "medispclid" , ds_temp_patinfo.getColumn(0, "medispclid") );
  2625. ds_grid_grd_patlist.setColumn(sRow, "assgward" , ds_temp_patinfo.getColumn(0, "assgward") ); // assgward 추가 (2012.11.19)
  2626. ds_grid_grd_patlist.setColumn(sRow, "assgroom" , ds_temp_patinfo.getColumn(0, "assgroom") );
  2627. ds_grid_grd_patlist.setColumn(sRow, "wardcd" , ds_temp_patinfo.getColumn(0, "wardcd") );
  2628. ds_grid_grd_patlist.setColumn(sRow, "ordtype" , ds_temp_patinfo.getColumn(0, "ordtype") );
  2629. ds_grid_grd_patlist.setColumn(sRow, "dethdd" , ds_temp_patinfo.getColumn(0, "dethdd") );
  2630. ds_grid_grd_patlist.setColumn(sRow, "dethtm" , ds_temp_patinfo.getColumn(0, "dethtm") );
  2631. ds_grid_grd_patlist.setColumn(sRow, "dethyn" , ds_temp_patinfo.getColumn(0, "dethyn") );
  2632. ds_grid_grd_patlist.setColumn(sRow, "g3existyn" , ds_temp_patinfo.getColumn(0, "g3existyn") );
  2633. ds_grid_grd_patlist.setColumn(sRow, "inrsrvacptdt" , ds_temp_patinfo.getColumn(0, "inrsrvacptdt") );
  2634. //ds_grid_grd_patlist.setColumn(sRow, "oxyconcen" , ds_temp_patinfo.getColumn(0, "oxyconcen") );
  2635. }else{
  2636. }
  2637. }
  2638. //=====================================================================================
  2639. // 아래는 약 D/C 시 투약기록에 반영및 투약기록 일자별 XSLT 생성하기(20080917) 김보성
  2640. //=====================================================================================
  2641. // 투약기록 통합기록을 위한 자료 추출질의문
  2642. // prcpddprcpno으로 n개의 iprc에 대한 exip단위의 정보를 추출한다.
  2643. function fnSignSaveCall(workflag, prcpddprcpno) {
  2644. var spid = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid"); //등록번호(필수)
  2645. var sinstcd = sysf_getUserInfo("dutplceinstcd"); //기관코드(사용X)
  2646. var sindd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd"); //입원일자(필수)
  2647. var scretno = ""; //생성번호(사용X)
  2648. var sprcpdd = ""; //처방일자(PRN시 필수)
  2649. var sprcpno = ""; //처방번호(확인사항)
  2650. var sworkdd = ""; //투약일(일자그룹일때만 (필수))
  2651. var slistflag = workflag; //작업구분(필수)
  2652. var snursnm = sysf_getUserName(); //간호사명추가(필수)
  2653. var shngnm = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "patnm"); //환자명추가 (필수)
  2654. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  2655. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  2656. var sprcpddprcpno = prcpddprcpno; //n개의 iprc
  2657. dsf_createDsRow("ds_temp_reqsigncond",
  2658. [{col:"pid", val:spid}
  2659. ,{col:"instcd", val:sinstcd}
  2660. ,{col:"indd", val:sindd}
  2661. ,{col:"cretno", val:scretno}
  2662. ,{col:"prcpdd", val:sprcpdd}
  2663. ,{col:"prcpno", val:sprcpno}
  2664. ,{col:"workdd", val:sworkdd}
  2665. ,{col:"listflag", val:slistflag}
  2666. ,{col:"nursnm", val:snursnm}
  2667. ,{col:"hngnm", val:shngnm}
  2668. ,{col:"medrexecdd", val:smedrexecdd}
  2669. ,{col:"medrexectm", val:smedrexectm}
  2670. ,{col:"prcpddprcpno", val:sprcpddprcpno}]);
  2671. ds_data_sign_signdata.clearData();
  2672. var objParam = new Object();
  2673. objParam.id = "TRMNR00608";
  2674. objParam.service = "caremedirecapp.CareMediRec";
  2675. objParam.method = "reqGetSignSaveDrugList";
  2676. objParam.inds = "reqsigncond=ds_temp_reqsigncond";
  2677. objParam.outds ="ds_data_sign_signdata=signdata";
  2678. objParam.callback = "cbf_TRMNR00608";
  2679. tranf_submit(objParam);
  2680. var objDs = this.removeChild("ds_temp_reqsigncond");
  2681. delete objDs;
  2682. objDs = null;
  2683. }
  2684. function cbf_TRMNR00608(strSvcID, nErrorCode, strErrorMsg){
  2685. //에러 처리
  2686. if(nErrorCode == 0){
  2687. }else{
  2688. }
  2689. }
  2690. /**
  2691. * @group :
  2692. * @ver : 2008.08.31
  2693. * @by : 김보성
  2694. * @---------------------------------------------------
  2695. * @type : function
  2696. * @access : public
  2697. * @desc : 투약기록 관련 인증저장(interface제공한 web에서 사용)(iprc단위 1개 처리용)
  2698. * : 따라서 여러개의 iprc이면 n번 호출해야한다.
  2699. * @param :
  2700. * @return :
  2701. * @---------------------------------------------------
  2702. */
  2703. function fnSignSaveWork() {
  2704. //var sSignPath = "/root/signinfo/signsave/signdata";
  2705. var sSignPathCount = ds_data_sign_signdata.rowcount;
  2706. //var sPathSignSave = "/root/signinfo/signsave/signdata";
  2707. if ( sSignPathCount <= 0 ) {
  2708. sysf_messageBox("자료가 존재하지 않습니다. ","E999");
  2709. return false;
  2710. }
  2711. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리(20080922)
  2712. for(var j = 0; j < sSignPathCount; j++){
  2713. sSignRow= j; //전역변수(프로그램내)
  2714. if(Sign.signprocess() == false){//인증저장 데이터 생성fMake_SignData 호출
  2715. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 안뜨도록 처리(20080922)
  2716. return false;
  2717. }
  2718. Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 안뜨도록 처리(20080922)
  2719. sAcptuniqno = utlf_transNullToEmpty(ds_data_paminfo.getColumn(0,"acptuniqno"));
  2720. ds_data_sign_signdata.setColumn(j, "recdd", utlf_getCurrentDate()); //실제기록이 이루어진 기록일자
  2721. ds_data_sign_signdata.setColumn(j, "rectm", utlf_getCurrentTime()); //실제기록이 이루어진 기록시간
  2722. ds_data_sign_signdata.setColumn(j, "recsaveflag", "Y"); //전자서명인적정보변경여부
  2723. ds_data_sign_signdata.setColumn(j, "signflag", "02"); //서명자료구분(02:간호)
  2724. ds_data_sign_signdata.setColumn(j, "signgenrflag", "E"); //외래/입원구분
  2725. ds_data_sign_signdata.setColumn(j, "formcd", "0000002476"); //투약기록 서식번호
  2726. ds_data_sign_signdata.setColumn(j, "acptuniqno", sAcptuniqno); //접수유일번호
  2727. ds_data_sign_signdata.setColumn(j, "signbfcnts", Sign.signedInfos[1]); //인증할 데이터 정보(미기록 노드 제거된 정보)
  2728. ds_data_sign_signdata.setColumn(j, "signaftcnts", Sign.signedInfos[2]); //공인인증 처리후 데이터
  2729. ds_data_sign_signdata.setColumn(j, "signflagyn", "Y"); //비공식적으로 인증되지않도록 제어할수 있는기능
  2730. //--------------------------(20080921)
  2731. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  2732. //건별인증은 dispyn ='N'
  2733. //하단의 일자별인 경우만 보임
  2734. ds_data_sign_signdata.setColumn(j, "dispyn", "N");
  2735. //--------------------------(20080921)
  2736. }
  2737. return true;
  2738. }
  2739. //인증정보 말기
  2740. function fMake_SignData(){
  2741. /*
  2742. <signinfo>
  2743. <signdata>
  2744. <pid>29953</pid>
  2745. <hngnm>T입0820</hngnm>
  2746. <prcpdd>20080821</prcpdd>
  2747. <execdd>20080821</execdd>
  2748. <prcpkindnm/>
  2749. <prcpmixno/>
  2750. <prcpcd>DSSL500</prcpcd>
  2751. <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  2752. <prcpvolnm>1500mg</prcpvolnm>
  2753. <prcpqtynm>3T</prcpqtynm>
  2754. <abbrnm>PO</abbrnm>
  2755. <exectm>130000</exectm>
  2756. <nursnm>김보성</nursnm>
  2757. <execcarestatnm>정상투약</execcarestatnm>
  2758. <carecfactnm> </carecfactnm>
  2759. <orddrnm>김만수</orddrnm>
  2760. </signdata>
  2761. </signinfo>
  2762. */
  2763. //var ssigndruglist = "/root/signinfo/signsave/signdata";
  2764. // var spid = ds_data_sign_signdata.getColumn(sSignRow, "pid");
  2765. // var shngnm = ds_data_sign_signdata.getColumn(sSignRow, "hngnm");
  2766. // var sprcpdd = ds_data_sign_signdata.getColumn(sSignRow, "prcpdd");
  2767. // var sexecdd = ds_data_sign_signdata.getColumn(sSignRow, "execdd");
  2768. /*
  2769. ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  2770. CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  2771. CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  2772. WHEN a.dccountyn = 'Y' then 'D/C'
  2773. WHEN a.selfdrugflag = 'Y' then 'self'
  2774. END prcpkindnm
  2775. //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  2776. */
  2777. // var sprcpkindnm = ds_data_sign_signdata.getColumn(sSignRow, "prcpkindnm");
  2778. // var sprcpmixno = ds_data_sign_signdata.getColumn(sSignRow, "prcpmixno");
  2779. // var sprcpcd = ds_data_sign_signdata.getColumn(sSignRow, "prcpcd");
  2780. // var sprcpnm = ds_data_sign_signdata.getColumn(sSignRow, "prcpnm");
  2781. // var sprcpvolnm = ds_data_sign_signdata.getColumn(sSignRow, "prcpvolnm");
  2782. // var sprcpqtynm = ds_data_sign_signdata.getColumn(sSignRow, "prcpqtynm");
  2783. // var sabbrnm = ds_data_sign_signdata.getColumn(sSignRow, "abbrnm");
  2784. // var sexectm = ds_data_sign_signdata.getColumn(sSignRow, "exectm");
  2785. // var snursnm = ds_data_sign_signdata.getColumn(sSignRow, "nursnm");
  2786. // var sexeccarestatnm = ds_data_sign_signdata.getColumn(sSignRow, "execcarestatnm");
  2787. // var scarecfactnm = ds_data_sign_signdata.getColumn(sSignRow, "carecfactnm");
  2788. // var sorddrnm = ds_data_sign_signdata.getColumn(sSignRow, "orddrnm");
  2789. ds_data_sign_signdata.filter("currow=='" + sSignRow + "'");
  2790. ds_temp_signdata.copyData(ds_data_sign_signdata, true);
  2791. ds_data_sign_signdata.filter("");
  2792. // model.resetInstanceNode("/root/send/signinfo/signdata");
  2793. // model.makeValue("/root/send/signinfo/signdata/pid", spid );
  2794. // model.makeValue("/root/send/signinfo/signdata/hngnm", shngnm );
  2795. // model.makeValue("/root/send/signinfo/signdata/prcpdd", sprcpdd ); //처방일자
  2796. if(ds_temp_signdata.getColumn(0, "execdd") == "00000000"){ //투약일자
  2797. ds_temp_signdata.setColumn(0, "execdd", "");
  2798. }
  2799. if(ds_temp_signdata.getColumn(0, "exectm") == "000000"){ //투약시간
  2800. ds_temp_signdata.setColumn(0, "exectm", "");
  2801. }
  2802. // model.makeValue("/root/send/signinfo/signdata/nursnm", snursnm); //간호사명칭
  2803. if(utlf_isNull(ds_temp_signdata.getColumn(0, "execcarestatnm")) ){
  2804. ds_temp_signdata.setColumn(0, "execcarestatnm", "N");
  2805. }
  2806. //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  2807. //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  2808. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", sexeccarestatnm);
  2809. //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  2810. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", scarecfactnm);
  2811. //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  2812. // model.makeValue("/root/send/signinfo/signdata/orddrnm", sorddrnm);
  2813. Sign.addnode("/signdata", ds_temp_signdata.saveXML());
  2814. }
  2815. //일자별 XSLT 생성작업
  2816. function fnWorkddSign(signDates) {
  2817. //-----------------------------------------------)
  2818. // 투약기록을 일자별로 XLST를 만들기 위해서
  2819. //-----------------------------------------------
  2820. //var sPathSign = "/root/signinfo";
  2821. //var pGrd = grd_patlist;
  2822. var signDate = "";
  2823. for (var i=0;i<signDates.length;i++) {
  2824. signDate = "" + signDates[i];
  2825. if ( !utlf_isNull(signDate)) {
  2826. ds_data_sign_reqsigncond.clearData();
  2827. signDate = signDate.replace("-","");
  2828. var spid = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "pid"); //등록번호 (필수)
  2829. var sinstcd = "";//model.getValue("/root/main/inddpatlist/inddpatinfo/instcd"); //기관코드 (사용X)
  2830. var sindd = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "indd"); //입원일자 (필수)
  2831. var scretno = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "cretno"); //생성번호 (사용X)
  2832. var sprcpdd = ""; //처방일자 (PRN시 필수)
  2833. var sprcpno = ""; //처방번호 (확인사항)
  2834. var sworkdd = signDate; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  2835. var slistflag = "90"; //작업구분 (필수)
  2836. var snursnm = sysf_getUserName(); //간호사명추가 (필수)
  2837. var shngnm = ds_grid_grd_patlist.getColumn(ds_grid_grd_patlist.rowposition, "patnm"); //환자명추가 (필수)
  2838. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  2839. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  2840. ds_data_sign_reqsigncond.addRow();
  2841. ds_data_sign_reqsigncond.setColumn(0, "pid" ,spid ); //desc="등록번호"
  2842. ds_data_sign_reqsigncond.setColumn(0, "instcd" ,sinstcd ); //desc="기관코드"
  2843. ds_data_sign_reqsigncond.setColumn(0, "indd" ,sindd ); //desc="입원일자"
  2844. ds_data_sign_reqsigncond.setColumn(0, "cretno" ,scretno ); //desc="생성번호"
  2845. ds_data_sign_reqsigncond.setColumn(0, "prcpdd" ,sprcpdd ); //desc="처방일자"
  2846. ds_data_sign_reqsigncond.setColumn(0, "prcpno" ,sprcpno ); //desc="처방번호"
  2847. ds_data_sign_reqsigncond.setColumn(0, "workdd" ,sworkdd ); //desc="투약일"
  2848. ds_data_sign_reqsigncond.setColumn(0, "listflag" ,slistflag ); //desc="작업구분"
  2849. ds_data_sign_reqsigncond.setColumn(0, "nursnm" ,snursnm ); //desc="간호사명추가"
  2850. ds_data_sign_reqsigncond.setColumn(0, "hngnm" ,shngnm ); //desc="환자명추가"
  2851. ds_data_sign_reqsigncond.setColumn(0, "medrexecdd" ,smedrexecdd); //desc="화면에서저장할투약일자"
  2852. ds_data_sign_reqsigncond.setColumn(0, "medrexectm" ,smedrexectm); //desc="화면에서저장할투약시간"
  2853. var pFlag = "Drug";
  2854. var pNode1 = "ds_data_sign_reqsigncond"; //조회할 조건 PATH(의미없음)
  2855. var pNode2 = "ds_main_om_signinfo_signdruginfo_signdruglist"; //Return 리스트 PATH
  2856. //임시로 막음(test)
  2857. fCare_SignNode(pFlag, pNode1, pNode2, spid, sindd, scretno,"E"); //-----(20080917)수정
  2858. }
  2859. }
  2860. }
  2861. //일자별 인증정보를 묶을 일자를 찾는다
  2862. //넣어야 할지는 판단한다.
  2863. function signdayFind(signDates,findDate) {
  2864. var sreturn = false;
  2865. if (findDate == "00000000" || utlf_isNull(findDate)) {
  2866. } else {
  2867. for (var i=0;i<signDates.length;i++) {
  2868. sreturn = true;
  2869. if ( signDates[i] == findDate) {
  2870. sreturn = false;
  2871. break;
  2872. }
  2873. }
  2874. }
  2875. return sreturn;
  2876. }
  2877. //=====================================================================================
  2878. //** 응급실에서 투약신청, 즉시불출신청시 투약번호라벨 출력 수정_20090522(ByJA) **//
  2879. function fERCareDrugNoLabel2(pid, patnm, sexage, drugno, narcyn, fstcmd, scndcmd){
  2880. //1. 바코드 라벨 설정값 조회
  2881. var scrnid = "SMMNR00600";
  2882. model.removeNodeset("/root/main/barcdprntsetup");
  2883. fGetBarCodeInfo(scrnid); // CareCom.js
  2884. lzzfMakeBrcdPrntObjHanDo("CommAX");
  2885. //2. 바코드 라벨 환경설정
  2886. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  2887. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js 바코드프린터별 환경설정(Zebra,SATO)
  2888. //3. 투약번호라벨 출력
  2889. fPrtERCareDrugNoLabel("erdsch", barcdRef, pid, patnm, sexage, drugno, getCurrentDateTime(), fstcmd, scndcmd, narcyn, portOpenTF);
  2890. }
  2891. //** 응급실에서 투약신청, 즉시불출신청시 투약번호라벨 출력 추가_20081230(ByJA) **//
  2892. //-------------(20121231)
  2893. function fnjudgreqyn(row) {
  2894. var srow = row;
  2895. if (srow < 0 ) {//재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  2896. sysf_messageBox("환자가 선택되지 않았습니다.", "E");
  2897. return;
  2898. }
  2899. var judgreqyn = ds_grid_grd_patlist.getColumn(srow, "judgreqyn");
  2900. if(judgreqyn == "Y"){ //심사신청상태이면
  2901. group3.btnjudgreqyn.text = "심사해제"; //해지로
  2902. }else{
  2903. group3.btnjudgreqyn.text = "심사신청"; //신청로
  2904. }
  2905. }
  2906. //-------------(20121231)
  2907. //전원 갈 병원정보 마스터 조회 팝업 오픈
  2908. function fOpenTrToHosp(){
  2909. // 마스터 팝업
  2910. frmf_modal("SPMNE07800", "SPMNE07800", null, false,"","","","","","","","","M");
  2911. var chUseYN = frmf_getParameter("SPMNE07800_rtn_useyn");
  2912. if(chUseYN == "Y"){
  2913. var sRtnList = frmf_getParameter("SPMNE07800_rtn_transhosplist");
  2914. var sRtnVal = sRtnList.split("▦");
  2915. ds_cond.setColumn(0, "chnghospcd" , sRtnVal[0]); // 병원코드
  2916. ds_cond.setColumn(0, "chnghospnm" , sRtnVal[1]); // 병원명
  2917. }
  2918. frmf_setParameter("SPMNE07800_rtn_useyn", "");
  2919. }
  2920. function fTransferSMS(){
  2921. var userid = sysf_getUserInfo("userid");
  2922. var usernm = sysf_getUserInfo("usernm");
  2923. var currow = ds_grid_grd_patlist.rowposition;
  2924. var patnm = ds_grid_grd_patlist.getColumn(currow, "patnm"); //model.getValue("/root/main/inddpatlist/inddpatinfo["+grd_patlist.row+"]/patnm");
  2925. var bedposcnts = ds_grid_grd_patlist.getColumn(currow, "bedposcnts");
  2926. var pid = ds_grid_grd_patlist.getColumn(currow, "pid");
  2927. var indd = ds_grid_grd_patlist.getColumn(currow, "indd");
  2928. var cretno = ds_grid_grd_patlist.getColumn(currow, "cretno");
  2929. var orddept = appf_getPatientInfo("orddept");
  2930. var instcd = ds_grid_grd_patlist.getColumn(currow, "instcd");
  2931. var msg = orddept + " " + pid + " " + patnm + "(" + bedposcnts + ")님 전원퇴실입니다."
  2932. var rtn = sysf_messageBox(msg + "\n\n응급당직교수에게 SMS를 전송하시겠습니까?", "Q999");
  2933. if (rtn == 6) {
  2934. //model.removeNodeset("/root/main/callno");
  2935. var oParam = {};
  2936. oParam.id = "TRMNE00206";
  2937. oParam.service = "ercareapp.ERInRmOutRmMngt";
  2938. oParam.method = "reqGetCallno";
  2939. oParam.inds = "";
  2940. oParam.outds = "ds_callno=callno";
  2941. oParam.async = false;
  2942. //oParam.callback = "cf_TRMNE00206";
  2943. tranf_submit(oParam);
  2944. //submit("TRMNE00206");
  2945. var callno = ds_callno.getColumn(0, "callno"); //model.getValue("/root/main/callno/callno");
  2946. ds_smsyn.clearData(); //model.removeNodeset("/root/main/smsyn");
  2947. if(ds_smsmsg_log.rowcount < 1) ds_smsmsg_log.addRow();
  2948. ds_smsmsg_log.setColumn(0, "pid", pid);
  2949. ds_smsmsg_log.setColumn(0, "indd", indd);
  2950. ds_smsmsg_log.setColumn(0, "cretno", cretno);
  2951. // model.makeValue("/root/send/smsmsg/log/pid", pid);
  2952. // model.makeValue("/root/send/smsmsg/log/indd", indd);
  2953. // model.makeValue("/root/send/smsmsg/log/cretno", cretno);
  2954. var oParam = {};
  2955. oParam.id = "TRMNE00207";
  2956. oParam.service = "ercareapp.ERInRmOutRmMngt";
  2957. oParam.method = "reqGetSMSLog";
  2958. oParam.inds = "req=ds_smsmsg_log";
  2959. oParam.outds = "ds_smsyn=smsyn";
  2960. oParam.async = false;
  2961. //oParam.callback = "cf_TRMNE00207";
  2962. tranf_submit(oParam);
  2963. //submit("TRMNE00207");
  2964. var smsyn = ds_smsyn.getColumn(0, "smsyn"); //model.getValue("/root/main/smsyn/smsyn");
  2965. if (smsyn == 'Y') {
  2966. var rtn1 = sysf_messageBox("이미 응급당직교수에게 전원 퇴실에 대한 SMS가 발송된 환자입니다.\n\n다시한번 SMS를 전송하시겠습니까?", "Q999");
  2967. }
  2968. if (smsyn == 'N' || rtn1 == '6') {
  2969. // 응급실 코디네이터 문자 추가 송부 관련 수정_AYS_16.06.16
  2970. for( var i=0 ; i<ds_callno.rowcount ; i++ ){
  2971. //alert("for callno : " + i + );
  2972. ds_smsmsg_recvr.setColumn(i, "usernm", usernm);
  2973. ds_smsmsg_recvr.setColumn(i, "userid", userid);
  2974. ds_smsmsg_recvr.setColumn(i, "mpphonno", ds_callno.getColumn(i, "callno"));
  2975. ds_smsmsg_recvr.setColumn(i, "usernm", "응급의료센터");
  2976. }
  2977. // ds_smsmsg_recvr.setColumn(0, "usernm", usernm); //model.makeValue("/root/send/smsmsg/recvr/usernm", usernm);
  2978. // ds_smsmsg_recvr.setColumn(0, "userid", userid);
  2979. // ds_smsmsg_recvr.setColumn(0, "mpphonno", callno);
  2980. // ds_smsmsg_recvr.setColumn(0, "usernm", "응급의료센터");
  2981. ds_smsmsg_recvr.setColumn(0, "calltype", "call"); //model.makeValue("/root/send/smsmsg/req/calltype", "call");
  2982. ds_smsmsg_recvr.setColumn(0, "msgcnts", msg); //model.makeValue("/root/send/smsmsg/req/msgcnts", msg);
  2983. if (instcd == "031") {
  2984. ds_smsmsg_req.setColumn(0, "calltelno", "0532005100"); //model.makeValue("/root/send/smsmsg/req/calltelno", "0532005100");
  2985. }
  2986. else {
  2987. ds_smsmsg_req.setColumn(0, "calltelno", "0532002100"); //model.makeValue("/root/send/smsmsg/req/calltelno", "0532002100");
  2988. }
  2989. ds_smsmsg_info.setColumn(0, "pid", pid);
  2990. ds_smsmsg_info.setColumn(0, "indd", indd);
  2991. ds_smsmsg_info.setColumn(0, "userid", userid);
  2992. ds_smsmsg_info.setColumn(0, "cretno", cretno);
  2993. // model.makeValue("/root/send/smsmsg/info/pid", pid);
  2994. // model.makeValue("/root/send/smsmsg/info/indd", indd);
  2995. // model.makeValue("/root/send/smsmsg/info/userid", userid);
  2996. // model.makeValue("/root/send/smsmsg/info/cretno", cretno);
  2997. var oParam = {};
  2998. oParam.id = "TXMNE00205";
  2999. oParam.service = "ercareapp.ERInRmOutRmMngt";
  3000. oParam.method = "reqExeSendUserMessage";
  3001. oParam.inds = "recvr=ds_smsmsg_recvr req=ds_smsmsg_req info=ds_smsmsg_info";
  3002. //oParam.outds = "ds_=succnt";
  3003. oParam.async = false;
  3004. //oParam.callback = "cf_TXMNE00205";
  3005. tranf_submit(oParam);
  3006. sysf_messageBox("메시지 전송이 ", "I002");
  3007. }
  3008. }
  3009. }
  3010. function fSelctionInRmCombo(pFlag){
  3011. ds_hidden2_item.clearData();
  3012. for( var i=0 ; i<ds_codelist.rowcount ; i++ ){
  3013. if( ds_codelist.getColumn(i, "supcdid") == pFlag ){
  3014. var nRow = ds_hidden2_item.addRow();
  3015. ds_hidden2_item.setColumn(nRow, "cdid", ds_codelist.getColumn(i, "cdid"));
  3016. ds_hidden2_item.setColumn(nRow, "cdnm", ds_codelist.getColumn(i, "cdnm"));
  3017. }
  3018. }
  3019. }
  3020. /**
  3021. * @group :
  3022. * @ver : 2007.06.07
  3023. * @by : 양천덕
  3024. * @---------------------------------------------------
  3025. * @type : function
  3026. * @access : public
  3027. * @desc : 현재 시간 설정
  3028. * @param :
  3029. * @return :
  3030. * @---------------------------------------------------
  3031. */
  3032. function fTimeSetting(){
  3033. var d, s= "" ,t;
  3034. d = new Date();
  3035. if( d.getMinutes() >= 10 ) {
  3036. if(d.getHours() >= 10 ) {
  3037. t = d.getHours() + "" + d.getMinutes();
  3038. } else {
  3039. t = "0" + d.getHours() + "" + d.getMinutes();
  3040. }
  3041. } else {
  3042. if(d.getHours() >= 10 ) {
  3043. t = d.getHours() + "0" + d.getMinutes();
  3044. } else {
  3045. t = "0" + d.getHours() + "0" + d.getMinutes();
  3046. }
  3047. }
  3048. return t;
  3049. //model.setValue("/root/main/condition/outrmtm", t );
  3050. }]]></Script>