SMMNW10900.xjs 162 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. 간호처방 ( SMMNW10900_간호처방.xrw - JScript )
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. var sPATINFO_PATH = "/root/main/patinfocond/patinfo"; //환자정보
  9. var sLRGSETLIST_PATH = "/root/main/prcplistinfo/anolrgsetinfo/lrgsetlist"; //대분류 그리드
  10. var sSMLSETLIST_PATH = "/root/main/prcplistinfo/anosmlsetinfo/smlsetlist"; //소분류 그리드
  11. var sPRCPSETLIST_PATH = "/root/main/prcpset/prcplist"; //간호약속 처방
  12. var sTEMPPRCPLIST_PATH = "/root/main/tempprcp/prcplist"; //임시처방
  13. var sBFPRCPLIST_PATH = "/root/main/bfprcp/prcplist"; //전처방
  14. var sPRCPLIST_PATH = "/root/main/prcp/prcplist"; //간호처방
  15. var sSIGNDATA_PATH = "/root/main/signdata/signprcplist"; //인증데이터
  16. var sSIGNTEMPDATA_PATH = "/root/main/signdata/signtempprcplist"; //인증데이터(임시처방)
  17. var homecarecenterdeptcd, homecareteamdeptcd;
  18. var signtime = "";
  19. var vsettime = "";
  20. var vsetdate = "";
  21. var spcldept = "";
  22. /**
  23. * @desc : 화면 초기화
  24. * @
  25. * @param :
  26. * @return :
  27. * @author : 성미연
  28. * @---------------------------------------------------
  29. */
  30. function fInit(){
  31. //간호처방 도움말 기능 칠곡만 보이도록 2013.07.15 KJS
  32. var sInstcd = sysf_getUserInfo("dutplceinstcd");
  33. var sDutplcecd = sysf_getUserInfo("dutplcecd");
  34. if (sInstcd == "032" || sDutplcecd == "3050135000") {
  35. group5.btn_help.visible = true;
  36. } else {
  37. group5.btn_help.visible = false;
  38. }
  39. if (sInstcd == "031" && sDutplcecd == "3050135000") {
  40. group5.btn_crrt.visible = true;
  41. } else {
  42. group5.btn_crrt.visible = false;
  43. }
  44. var settingnurid=""; //내환자 setting변수
  45. zesf_InitSign(); //인증 모듈 초기화
  46. // 간호하드코딩 테이블 조회_20090416(ByJA)
  47. //----------(20110118) 경북대
  48. var pCode = "'003', '047', '048','002','195','207','016','T84','202','I09'"; //마취회복실추가 '046':영상의학과 추가. 'T84':인증저장팝업.
  49. var machideptcd = "";
  50. //----------(20110118) 경북대
  51. var pDate = utlf_getCurrentDate(); // 조회기준일자
  52. fGetNursHardCdInfo(pCode, pDate);
  53. for(var i = 0; i < ds_codelist.rowcount; i++){
  54. switch (ds_codelist.getColumn(i, "cdgrupid")){
  55. case "202": //대차여부
  56. cartcd = ds_codelist.getColumn(i, "cdid");
  57. break;
  58. case "047": // 가정간호센터
  59. homecarecenterdeptcd = ds_codelist.getColumn(i, "cdid");
  60. break;
  61. case "048": // 가정간호팀
  62. homecareteamdeptcd = ds_codelist.getColumn(i, "cdid");
  63. break;
  64. case "016": // 마취회복실
  65. machideptcd = ds_codelist.getColumn(i, "cdid");
  66. break;
  67. case "T84":
  68. signtime = ds_codelist.getColumn(i, "cdid");
  69. break;
  70. }
  71. }
  72. spcldept = ds_codelist.lookup("cdgrupid", '003', "cdid");
  73. if(cartcd != 'Y'){
  74. /*
  75. var nLeftCol = -1;
  76. for( var i=0 ; i<group5.grd_prcpposlist.getCellCount("Body"); i++ ){
  77. if( group5.grd_prcpposlist.getFormatColProperty(i, "band") == "left" ){
  78. nLeftCol++;
  79. }
  80. }
  81. for( var i=nLeftCol ; i>=0 ; i-- ){
  82. group5.grd_prcpposlist.setFormatColProperty(i, "band", "body");
  83. }
  84. */
  85. group5.grd_prcpposlist.setFormatColProperty(group5.grd_prcpposlist.getBindCellIndex("body","drprcpetc10"), "size", 0);
  86. /*
  87. for( var i=0 ; i<=nLeftCol ; i++ ){
  88. group5.grd_prcpposlist.setFormatColProperty(i, "band", "left");
  89. }
  90. */
  91. group5.switch1.case_bf.grd_bfprcplist.setFormatColProperty(group5.switch1.case_bf.grd_bfprcplist.getBindCellIndex("body","drprcpetc10"), "size", 0);
  92. //group5.switch1.case_bf.grd_bfprcplist.setRealColSize(group5.switch1.case_bf.grd_bfprcplist.getBindCellIndex("body","drprcpetc10"), 0, false);
  93. }
  94. // 181210_AYS_기왕증 항목 숨김 처리
  95. if(sInstcd == '031'){
  96. trace("기왕증 Hidden");
  97. group5.grd_prcpposlist.setFormatColProperty(group5.grd_prcpposlist.getBindCellIndex("body","anamneflag"), "size", 0);
  98. group5.switch1.case_bf.grd_bfprcplist.setFormatColProperty(group5.switch1.case_bf.grd_bfprcplist.getBindCellIndex("body","anamneflag"), "size", 0);
  99. }
  100. ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.clearData();
  101. ds_main_prcplistinfo_anosmlsetinfo_smlsetlist.clearData();
  102. ds_main_prcpset_prcplist.clearData();
  103. ds_main_tempprcp_prcplist.clearData();
  104. ds_main_bfprcp_prcplist.clearData();
  105. ds_main_prcp_prcplist.clearData();
  106. //콤보리스트 셋팅(급비, 처방분류)
  107. var arrParam = [{dsNm: "ds_init_comcodelist_payflag_cmblist_M0029", cdGrpId: "M0029"},
  108. {dsNm: "ds_init_comcodelist_clscd_cmblist_M0005", cdGrpId: "M0005"},
  109. {dsNm: "ds_init_comcodelist_opflag_cmblist_M0007", cdGrpId: "M0007"},
  110. {dsNm: "ds_init_drgacptflag_P0506", cdGrpId: "P0506"}]
  111. appf_getCodeList(arrParam);
  112. frmf_addComboItem("group5.switch1.case_prcp.cmb_listclscd", "전체", "ALL", "above");
  113. ds_main_srchcond.setColumn(0, "srchclscd", "ALL");
  114. ds_main_bfprcpinfo_bfcond.setColumn(0, "srchclscd", "ALL");
  115. ds_main_tempprcpinfo_tempcond.setColumn(0, "srchclscd", "ALL");
  116. //초기 셋팅값
  117. ds_main_cond.setColumn(0, "prcpdd", utlf_getCurrentDate()); //처방일
  118. ds_main_bfprcpinfo_bfcond.setColumn(0, "prcpfromdd", ds_main_cond.getColumn(0, "prcpdd").toDate().getAddDate(-7, "D").getDateFormat()); //전처방
  119. ds_main_bfprcpinfo_bfcond.setColumn(0, "prcptodd", ds_main_cond.getColumn(0, "prcpdd"));
  120. //설정된 상단정보를 불러옴
  121. ds_main_paminfo.clearData();
  122. var node = sysf_getGlobalVariable("paminfo");
  123. dsf_setCSVToDs("ds_main_paminfo", node);
  124. if( utlf_isNull(ds_main_paminfo.getColumnInfo("sectioncd")) ){
  125. ds_main_paminfo.addColumn("sectioncd", "string");
  126. ds_main_paminfo.setColumn(0, "sectioncd", ds_main_paminfo.getColumn(0, "basetypecd"));
  127. }
  128. if(!utlf_isNull(ds_main_paminfo.getColumn(0,"pid"))){ //상단정보에 환자가 셋팅되어 있을 경우
  129. dsf_makeValue(ds_main_cond,"upinfoyn" , "string", "Y");
  130. //patinfo 정보 셋팅
  131. if (ds_main_paminfo.getColumn(0,"ioflag") == 'O') {
  132. var centcd = ds_main_paminfo.getColumn(0,"centcd");
  133. if( centcd == "-" || utlf_isNull(centcd) ) {
  134. ds_main_cond.setColumn(0, "wardcd", ds_main_paminfo.getColumn(0,"orddeptcd") );
  135. } else {
  136. ds_main_cond.setColumn(0, "wardcd", centcd );
  137. }
  138. ds_main_patinfocond_patinfo.setColumn(0, "wardcd", ds_main_paminfo.getColumn(0, "orddeptcd"));
  139. ds_main_patinfocond_patinfo.setColumn(0, "orddd", ds_main_paminfo.getColumn(0, "orddd"));
  140. ds_main_patinfocond_patinfo.setColumn(0, "acptseqno", ds_main_paminfo.getColumn(0, "acptseqno"));
  141. ds_main_patinfocond_patinfo.setColumn(0, "orddrid", ds_main_paminfo.getColumn(0, "orddrid"));
  142. ds_main_patinfocond_patinfo.setColumn(0, "clincstdyflag", ds_main_paminfo.getColumn(0, "clincstdyacptflag"));
  143. ds_main_patinfocond_patinfo.setColumn(0, "clincstdycd", ds_main_paminfo.getColumn(0, "clincstdyno"));
  144. ds_main_patinfocond_patinfo.setColumn(0, "dschnotiyn", "N"); // 간호사퇴원확정여부_20080807추가(ByJA)
  145. ds_main_patinfocond_patinfo.setColumn(0, "careinrmyn", "Y"); // 입실확인여부 체크 외래는 비교대상이 아니므로 무조건 Y 20090908 khj
  146. } else {
  147. ds_main_cond.setColumn(0, "wardcd", ds_main_paminfo.getColumn(0, "wardcd"));
  148. ds_main_patinfocond_patinfo.setColumn(0, "wardcd", ds_main_paminfo.getColumn(0, "wardcd"));
  149. ds_main_patinfocond_patinfo.setColumn(0, "roomcd", ds_main_paminfo.getColumn(0, "roomcd"));
  150. ds_main_patinfocond_patinfo.setColumn(0, "indd", ds_main_paminfo.getColumn(0, "indd"));
  151. ds_main_patinfocond_patinfo.setColumn(0, "orddrid", ds_main_paminfo.getColumn(0, "medispclid"));
  152. ds_main_patinfocond_patinfo.setColumn(0, "clincstdyflag", ds_main_paminfo.getColumn(0, "clincstdyyn"));
  153. ds_main_patinfocond_patinfo.setColumn(0, "clincstdycd", ds_main_paminfo.getColumn(0, "clincstdycd"));
  154. ds_main_patinfocond_patinfo.setColumn(0, "dschnotiyn", ds_main_paminfo.getColumn(0, "dschnotiyn")); // 간호사퇴원확정여부_20080807추가(ByJA)
  155. if ( ds_main_paminfo.getColumn(0, "ioflag") == 'E' && ds_main_paminfo.getColumn(0, "calcdd") != '-' ){
  156. dsf_makeValue(ds_main_patinfocond_patinfo,"careinrmyn" , "string", 'Y');// 입실확인여부 체크 20090908 khj
  157. } else if ( ds_main_paminfo.getColumn(0, "ioflag") != 'E' && ds_main_paminfo.getColumn(0, "careinrmdd") != '-' ){
  158. dsf_makeValue(ds_main_patinfocond_patinfo,"careinrmyn" , "string", 'Y');// 입실확인여부 체크 20090908 khj
  159. } else {
  160. dsf_makeValue(ds_main_patinfocond_patinfo,"careinrmyn" , "string", 'N');// 입실확인여부 체크 20090908 khj
  161. }
  162. }
  163. ds_main_patinfocond_patinfo.setColumn(0, "pid" , ds_main_paminfo.getColumn(0, "pid") );
  164. ds_main_patinfocond_patinfo.setColumn(0, "patnm" , ds_main_paminfo.getColumn(0, "hngnm") );
  165. ds_main_patinfocond_patinfo.setColumn(0, "cretno" , ds_main_paminfo.getColumn(0, "cretno") );
  166. ds_main_patinfocond_patinfo.setColumn(0, "orddeptcd", ds_main_paminfo.getColumn(0, "orddeptcd") );
  167. ds_main_patinfocond_patinfo.setColumn(0, "ordtype" , ds_main_paminfo.getColumn(0, "ioflag") );
  168. ds_main_patinfocond_patinfo.setColumn(0, "sexage" , ds_main_paminfo.getColumn(0, "sex") + "/" + ds_main_paminfo.getColumn(0, "age") );
  169. ds_main_patinfocond_patinfo.setColumn(0, "insukind" , ds_main_paminfo.getColumn(0, "insukind") );
  170. ds_main_patinfocond_patinfo.setColumn(0, "specordyn", ds_main_paminfo.getColumn(0, "specordyn") );
  171. ds_main_patinfocond_patinfo.setColumn(0, "instcd" , ds_main_paminfo.getColumn(0, "instcd") );
  172. ////20110828_KNUH_Start 내환자setting정보 조회.
  173. fGetSettringInfoRef();
  174. //내환자셋팅정보가 있으면 set,없으면 그냥 null
  175. settingnurid = ds_init_settinginfo_settingrn.lookup("settingrnid", sysf_getUserInfo("userid"), "settingrnid");
  176. if( utlf_isNull(settingnurid) ) {
  177. } else {
  178. ds_main_cond.setColumn(0, "settingrnid", sysf_getUserInfo("userid"));
  179. }
  180. //20110828_KNUH_End
  181. } else {
  182. ds_main_cond.setColumn(0, "wardcd", sysf_getUserInfo("dutplcecd")); //상단정보가 없을 경우 간호사 소속부서
  183. //20110828_KNUH_Start 환자setting정보 조회
  184. fGetSettringInfoRef();
  185. settingnurid = ds_init_settinginfo_settingrn.lookup("settingrnid", sysf_getUserInfo("userid"), "settingrnid");
  186. //내환자셋팅정보가 있으면 set,없으면 그냥 null
  187. if( utlf_isNull(settingnurid) ) {
  188. } else {
  189. ds_main_cond.setColumn(0, "settingrnid", sysf_getUserInfo("userid"));
  190. }
  191. //20110828_KNUH_End
  192. }
  193. //부서콤보 조회
  194. dsf_createDs("ds_DeptListInfo");
  195. var oParam = {};
  196. oParam.id = "TRMNW11001";
  197. oParam.service = "wardorderapp.NursPrcpMngt";
  198. oParam.method = "reqGetDeptListInfo";
  199. oParam.inds = "req=ds_DeptListInfo";
  200. oParam.outds = "ds_init_deptinfo_deptlist=deptlist";
  201. oParam.async = false;
  202. tranf_submit(oParam);
  203. if( group5.rdo_poscd.value == "1" ){
  204. group5.cmb_userpos.index = -1;
  205. }
  206. if(frmf_getMenuParam() == "SMMNH" || opener.frmf_getParameter("screenParam") == "SMMNH"){
  207. ds_main_cond.setColumn(0, "homecareyn", "Y");
  208. }
  209. //20110215 이선경 : 경북대 - 응급실일 경우 구역정보를 조회
  210. fGetZoneList();
  211. fnZoneDisp();
  212. fRoomInfoRef("init"); //해당병동의 해당병실조회
  213. if( utlf_isNull(settingnurid) ) {
  214. group5.grp_sea.cmb_room.enable = true;
  215. } else {
  216. group5.grp_sea.cmb_room.enable = false;
  217. fPatInfoRef("I");
  218. }
  219. group5.cmb_userpos.enable = false;
  220. fChkClincstdy(); //임상연구 체크 20100727 환자정보 최종 카피되고 나서 세팅해야하므로 위치 옮기면 안됌.
  221. //가정간호처방일 경우 방문일자 셋팅
  222. if(frmf_getMenuParam() == "SMMNH" || opener.frmf_getParameter("screenParam") == "SMMNH"){
  223. ds_main_prcpposinfo_cond.setColumn(0, "poscd", "2"); // 처방위치_2:User위치
  224. ds_main_prcpposinfo_cond.setColumn(0, "deptcd", homecarecenterdeptcd); // User위치코드_2361000000:가정간호센터_강남성모,서울성모병원
  225. if( utlf_isNull(group5.cmb_userpos.text) ){
  226. ds_main_prcpposinfo_cond.setColumn(0, "deptcd", homecareteamdeptcd); // User위치코드_3090100000:가정간호팀_강남성모,서울성모병원
  227. }
  228. group5.cmb_userpos.enable = true;
  229. fSearchHomePatInfo(); // 방문일자 조회_추가(20090331_ByJA)
  230. } else if(frmf_getMenuParam() == "SMMND"){ //인공신장일 경우 처방위치 user위치로_20081015(byJA_소경화ITC요청)
  231. ds_main_prcpposinfo_cond.setColumn(0, "poscd", "2"); // 처방위지_2:User위치
  232. ds_main_prcpposinfo_cond.setColumn(0, "deptcd", sysf_getUserInfo("dutplcecd")); //소속부서
  233. group5.cmb_userpos.enable = true;
  234. } else if(frmf_getMenuParam() == "SMAEA" || opener.frmf_getParameter("screenParam") == "SMAEA"){ //간호기능파트(내시경실, 부정맥검사실, 간크리닉, 기관지경실, 심장초음파실) 경우 처방위치 user위치로_20081208(ByJA)
  235. ds_main_prcpposinfo_cond.setColumn(0, "poscd", "2"); // 처방위지_2:User위치
  236. ds_main_prcpposinfo_cond.setColumn(0, "deptcd", sysf_getUserInfo("dutplcecd")); //소속부서
  237. group5.cmb_userpos.enable = true;
  238. } else if(machideptcd == sysf_getUserInfo("dutplcecd") ){ //-------------(20110118) 경북대 간호기능파트(마취회복실) 경우 처방위치 user위치
  239. ds_main_prcpposinfo_cond.setColumn(0, "poscd", "2"); // 처방위지_2:User위치
  240. ds_main_prcpposinfo_cond.setColumn(0, "deptcd", sysf_getUserInfo("dutplcecd")); //소속부서
  241. group5.cmb_userpos.enable = true;
  242. } //-------------(20110118) 경북대
  243. if (ds_main_cond.getColumn(0, "homecareyn") == "Y"){
  244. group5.cap_visitdd.visible = true;
  245. group5.cmb_visitdd.visible = true;
  246. group5.grd_prcpposlist.setCellProperty("Head", group5.grd_prcpposlist.getBindCellIndex("body","prcpdelivefact")-2, "text", "방문일자");
  247. group5.switch1.case_bf.grd_bfprcplist.setCellProperty("Head", group5.grd_prcpposlist.getBindCellIndex("body","prcpdelivefact")-2, "text", "방문일자");
  248. group5.switch1.case_bf.group4.cmb_bfcond.innerdataset = "ds_init_homebfcondinfo_homebfcond";
  249. }else{
  250. group5.cap_visitdd.visible = false;
  251. group5.cmb_visitdd.visible = false;
  252. group5.grd_prcpposlist.setCellProperty("Head", group5.grd_prcpposlist.getBindCellIndex("body","prcpdelivefact")-2, "text", "적용일자");
  253. group5.switch1.case_bf.grd_bfprcplist.setCellProperty("Head", group5.grd_prcpposlist.getBindCellIndex("body","prcpdelivefact")-4, "text", "적용일자");
  254. group5.switch1.case_bf.group4.cmb_bfcond.innerdataset = "ds_init_bfcondinfo_bfcond";
  255. }
  256. //*** 처방목록
  257. dsf_makeValue(ds_send_reqdata,"comnrefflag", "string", 'Y');
  258. //set부서콤보 조회(공통 포함)
  259. var oParam = {};
  260. oParam.id = "TRMNW10901";
  261. oParam.service = "wardorderapp.NursPrcpMngt";
  262. oParam.method = "reqGetDeptListInfo";
  263. oParam.inds = "req=ds_send_reqdata";
  264. oParam.outds = "ds_init_setdeptinfo_deptlist=deptlist";
  265. oParam.async = false;
  266. tranf_submit(oParam);
  267. if(frmf_getMenuParam() == "SMMNH" || opener.frmf_getParameter("screenParam") == "SMMNH"){
  268. ds_main_prcplistinfo_setcond.setColumn(0, "settrgtcd", homecarecenterdeptcd); // User위치코드_2361000000:가정간호센터_강남성모,서울성모병원
  269. if( utlf_isNull(group5.switch1.case_prcp.cmb_dept.text) ){
  270. ds_main_prcplistinfo_setcond.setColumn(0, "settrgtcd", homecareteamdeptcd); // User위치코드_3090100000:가정간호팀_강남성모,서울성모병원
  271. }
  272. }else{
  273. ds_main_prcplistinfo_setcond.setColumn(0, "settrgtcd", sysf_getUserInfo("dutplcecd")); //소속부서
  274. }
  275. if ( utlf_isNull(ds_init_deptinfo_deptlist.lookup("deptcd", ds_main_prcplistinfo_setcond.getColumn(0, "settrgtcd"), "deptcd")) ) {
  276. ds_main_prcplistinfo_setcond.setColumn(0, "settrgtcd", 'ALL'); //소속부서 없을 경우 공통으로 셋팅
  277. }
  278. ds_main_prcplistinfo_setcond.setColumn(0, "setclscd", 'W');
  279. ds_main_prcplistinfo_setcond.setColumn(0, "settypecd", 'P');
  280. ds_main_prcplistinfo_setcond.setColumn(0, "setkindcd", 'D');
  281. fLrgSetRef(); //대분류 set조회
  282. //this.setTimer(0, 1);
  283. var pid = ds_main_cond.getColumn(0, "pid");
  284. if( !utlf_isNull(pid) ){
  285. fprtlnm(pid);
  286. }
  287. }
  288. /**
  289. * @desc : 부서조건에 따른 병실 조회
  290. * @
  291. * @param :initflag ="init" 초기화
  292. * @return :
  293. * @author : 성미연
  294. * @---------------------------------------------------
  295. */
  296. function fRoomInfoRef(initflag) {
  297. if( !utlf_isNull(ds_init_roominfo_room.getColumnInfo("roomcd")) ){
  298. ds_init_roominfo_room.updatecontrol = false;
  299. ds_init_roominfo_room.deleteColumn("roomcd");
  300. ds_init_roominfo_room.updatecontrol = true;
  301. }
  302. ds_main_cond.setColumn(0, "patnm", "");
  303. ds_main_cond.setColumn(0, "pid", "");
  304. ds_main_prcp_prcplist.clearData();
  305. ds_main_tempprcp_prcplist.clearData();
  306. ds_main_bfprcp_prcplist.clearData();
  307. var settingrnid = ds_main_cond.getColumn(0, "settingrnid");
  308. var deptflag = ds_init_deptinfo_deptlist.lookup("deptcd", ds_main_cond.getColumn(0, "wardcd") , "deptflag");
  309. if (deptflag == 'I') { //해당병동의 해당병실조회
  310. group5.grp_sea.cmb_room.enable = true;
  311. ds_send_reqdata.clearData();
  312. dsf_makeValue(ds_send_reqdata,"wardcd","string", ds_main_cond.getColumn(0, "wardcd") );
  313. dsf_makeValue(ds_send_reqdata,"settingrnid","string", ds_main_cond.getColumn(0, "settingrnid") );
  314. var oParam = {};
  315. oParam.id = "TRMNW10902";
  316. oParam.service = "wardorderapp.NursPrcpMngt";
  317. oParam.method = "reqGetWardRoomInfo";
  318. oParam.inds = "reqCond=ds_send_reqdata";
  319. oParam.outds = "ds_init_roominfo_room=room";
  320. oParam.async = false;
  321. oParam.callback = "cf_TRMNW10902";
  322. tranf_submit(oParam);
  323. if(arErrorCode.pop("TRMNW10902") > -1){
  324. if (ds_main_cond.getColumn(0, "upinfoyn") == "Y") { //상단정보에 환자가 셋팅되어 있을 경우
  325. //20110828_KNUH_Start
  326. if( utlf_isNull(settingrnid) ) {
  327. ds_main_cond.setColumn(0, "roomcd", ds_main_paminfo.getColumn(0, "roomcd"));
  328. } else {
  329. ds_main_cond.setColumn(0, "roomcd", "-");
  330. }
  331. //20110828_KNUH_End
  332. fPatInfoRef("I",initflag);
  333. } else {
  334. ds_main_cond.setColumn(0, "roomcd", "-");
  335. ds_init_patinfo_patlist.clearData();
  336. }
  337. }
  338. } else { //외래과 환자 조회
  339. group5.grp_sea.cmb_room.enable = false;
  340. fPatInfoRef("O", initflag);//병동은 상관없고 외래인경우 내시경실의 경우 상단정보대로 처방발생20100409 변경협의체결과 나오기전까지 임시 khj ->16040 요청번호에 의해 당일수진에만 처방발생하도록 함. 20100715 김홍점
  341. }
  342. }
  343. //20110828_KNUH_Start 환자setting정보 조회
  344. function fGetSettringInfoRef() {
  345. dsf_makeValue(ds_send_reqdata,"wardcd" , "string", ds_main_cond.getColumn(0, "wardcd"));
  346. var oParam = {};
  347. oParam.id = "TRMNW10910";
  348. oParam.service = "wardcareapp.WardCareMngt";
  349. oParam.method = "reqGetSettingRnList";
  350. oParam.inds = "req=ds_send_reqdata";
  351. oParam.outds = "ds_init_settinginfo_settingrn=settingrn";
  352. oParam.async = false;
  353. tranf_submit(oParam);
  354. ds_main_cond.setColumn(0, "settingrnid", ds_init_settinginfo_settingrn.getColumn(0, "settingrnid"));
  355. }
  356. /**
  357. * @desc : 병실별 환자리스트 조회, 부서별 환자리스트 조회
  358. * @
  359. * @param :
  360. * @return :
  361. * @author : 성미연
  362. * @---------------------------------------------------
  363. */
  364. function fPatInfoRef(deptflag, initflag) {
  365. var settingnurid="";
  366. settingnurid = ds_main_cond.getColumn(0, "settingrnid");
  367. ds_main_cond.setColumn(0, "pid", "");
  368. ds_main_cond.setColumn(0, "patnm", "");
  369. ds_main_prcp_prcplist.clearData();
  370. ds_main_tempprcp_prcplist.clearData();
  371. ds_main_bfprcp_prcplist.clearData();
  372. ds_send_reqdata.clearData();
  373. dsf_makeValue(ds_send_reqdata,"orddd","string", ds_main_cond.getColumn(0, "prcpdd"));
  374. dsf_makeValue(ds_send_reqdata,"wardcd","string", ds_main_cond.getColumn(0, "wardcd"));
  375. var centcd = ds_main_paminfo.getColumn(0, "centcd");
  376. if(centcd != "-" && !utlf_isNull(centcd) ) {
  377. dsf_makeValue(ds_send_reqdata,"centflag","string", "Y");
  378. }
  379. dsf_makeValue(ds_send_reqdata,"settingrnid","string", ds_main_cond.getColumn(0, "settingrnid"));
  380. if (deptflag == "I") { //병실별 환자조회
  381. //20110828_KNUH_Start
  382. if( utlf_isNull(settingnurid) ) {
  383. dsf_makeValue(ds_send_reqdata,"roomcd","string", ds_main_cond.getColumn(0, "roomcd"));
  384. } else {
  385. dsf_makeValue(ds_send_reqdata,"roomcd","string", "-");
  386. }
  387. //20110828_KNUH_End
  388. dsf_makeValue(ds_send_reqdata,"refflag","string", "room");
  389. dsf_makeValue(ds_send_reqdata,"ordtype","string", "I");
  390. dsf_makeValue(ds_send_reqdata,"zonecd","string", ds_main_cond.getColumn(0, "zonecd"));
  391. dsf_makeValue(ds_send_reqdata,"settingrnid","string", ds_main_cond.getColumn(0, "settingrnid"));
  392. } else { //외래부서 환자조회
  393. dsf_makeValue(ds_send_reqdata,"refflag","string", "dept");
  394. dsf_makeValue(ds_send_reqdata,"ordtype","string", "O");
  395. dsf_makeValue(ds_send_reqdata,"homecareyn","string", ds_main_cond.getColumn(0, "homecareyn"));
  396. }
  397. if(spcldept == ds_main_cond.getColumn(0, "wardcd") ) {
  398. dsf_makeValue(ds_send_reqdata,"spcldeptyn","string", "Y");
  399. } else {
  400. dsf_makeValue(ds_send_reqdata,"spcldeptyn","string", "");
  401. }
  402. var oParam = {};
  403. oParam.id = "TRMNW10903";
  404. oParam.service = "wardorderapp.NursPrcpMngt";
  405. oParam.method = "reqGetRoomPatList";
  406. oParam.inds = "reqCond=ds_send_reqdata";
  407. oParam.outds = "ds_init_patinfo_patlist=patlist";
  408. oParam.async = false;
  409. oParam.callback = "cf_TRMNW10903";
  410. tranf_submit(oParam);
  411. if( utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("userkindcd", "string")) ){
  412. ds_init_patinfo_patlist.addColumn("userkindcd", "string");
  413. }
  414. if( !utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("acptseqno")) && !utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("cretno")) ){
  415. dsf_setTypeFormat(ds_init_patinfo_patlist, "acptseqno:INT^cretno:INT");
  416. }
  417. if(arErrorCode.pop("TRMNW10903") > -1){
  418. if (ds_main_cond.getColumn(0, "upinfoyn") == "Y") { //상단정보에 환자가 셋팅되어 있을 경우
  419. ds_main_cond.setColumn(0, "patnm", ds_main_paminfo.getColumn(0, "pid"));
  420. ds_main_cond.setColumn(0, "pid", ds_main_paminfo.getColumn(0, "pid"));
  421. //가정간호 환자인 경우 방문일자 조회
  422. if(ds_main_cond.getColumn(0, "homecareyn") == "Y") {
  423. fSearchHomePatInfo();
  424. }
  425. } else {
  426. ds_main_cond.setColumn(0, "patnm", "");
  427. ds_main_cond.setColumn(0, "pid", "");
  428. }
  429. }
  430. var pid= ds_main_cond.getColumn(0, "pid");
  431. //병동은 상관없고 외래인경우 내시경실의 경우 상단정보대로 처방발생20100409 변경협의체결과 나오기전까지 임시 khj
  432. //->16040 요청번호에 의해 당일수진에만 처방발생하도록 함. 20100715 김홍점
  433. if ( initflag == "init" && deptflag == "I"){////병동은 퇴원환자도 전처방은 조회되어야 함.
  434. if ( !utlf_isNull(ds_init_patinfo_patlist.lookup("pid", pid, "pid"))) {
  435. //환자정보조건 셋팅
  436. ds_main_patinfocond_patinfo.clearData();
  437. var cnt = ds_main_patinfocond_patinfo.rowcount;
  438. if(cnt==0){
  439. dsf_copyColInfo(ds_main_patinfocond_patinfo, ds_init_patinfo_patlist);
  440. }
  441. ds_main_patinfocond_patinfo.addRow();
  442. var irow1 = ds_init_patinfo_patlist.findRow("pid", pid);
  443. ds_main_patinfocond_patinfo.copyRow(cnt,ds_init_patinfo_patlist,irow1);
  444. }
  445. fReqBfNursPrcpInfo(); //전처방 조회
  446. fReqTempNursPrcpInfo(); //임시처방 조회
  447. }else{
  448. fChgPatnm(deptflag, ds_main_cond.getColumn(0, "prcpdd"),initflag);
  449. }
  450. }
  451. /**
  452. * @desc : 환자아이디로 해당부서, 병실, 환자명 조회
  453. * @
  454. * @param :
  455. * @return :
  456. * @author : 성미연
  457. * @---------------------------------------------------
  458. */
  459. function fSearchPatInfo(keycode) {
  460. if( keycode == "13"){
  461. //model.setFocus("btn_ref");
  462. //그리드 초기화
  463. ds_main_prcp_prcplist.clearData();
  464. ds_main_tempprcp_prcplist.clearData();
  465. ds_main_bfprcp_prcplist.clearData();
  466. //환자아이디로 현재 상태 조회
  467. var pid = ds_main_cond.getColumn(0, "pid");
  468. ds_send_reqdata.clearData();
  469. dsf_makeValue(ds_send_reqdata, "orddd", "string", ds_main_cond.getColumn(0, "prcpdd"));
  470. dsf_makeValue(ds_send_reqdata, "pid", "string", ds_main_cond.getColumn(0, "pid"));
  471. dsf_makeValue(ds_send_reqdata, "refflag", "string", "pat");
  472. dsf_makeValue(ds_send_reqdata, "homecareyn", "string", ds_main_cond.getColumn(0, "homecareyn"));
  473. var oParam = {};
  474. oParam.id = "TRMNW10904";
  475. oParam.service = "wardorderapp.NursPrcpMngt";
  476. oParam.method = "reqGetIndPatInfo";
  477. oParam.inds = "reqCond=ds_send_reqdata";
  478. oParam.outds = "ds_main_patinfocond_patinfo=patinfo";
  479. oParam.async = false;
  480. oParam.callback = "cf_TRMNW10904";
  481. tranf_submit(oParam);
  482. if( utlf_isNull(ds_main_patinfocond_patinfo.getColumnInfo("userkindcd")) ){
  483. ds_main_patinfocond_patinfo.addColumn("userkindcd", "string");
  484. }
  485. if( !utlf_isNull(ds_main_patinfocond_patinfo.getColumnInfo("acptseqno")) && !utlf_isNull(ds_main_patinfocond_patinfo.getColumnInfo("cretno")) ){
  486. dsf_setTypeFormat(ds_main_patinfocond_patinfo, "acptseqno:INT^cretno:INT");
  487. }
  488. if(arErrorCode.pop("TRMNW10904") > -1){
  489. if (ds_main_patinfocond_patinfo.getColumn(0, "wardcd") == 'err') {
  490. sysf_messageBox("해당 환자 정보가 존재하지 않습니다.", "I");
  491. ds_main_cond.setColumn(0, "patnm", ds_init_patinfo_patlist.getColumn(0, "pid"));
  492. group5.grp_sea.ipt_pid.setFocus();
  493. return;
  494. } else {
  495. group5.btn_signsave.enable = true;
  496. //해당 부서 셋팅
  497. if (ds_main_patinfocond_patinfo.rowcount > 1 ) {
  498. var objArg = new Object();
  499. objArg.arg_ds_main_patinfocond_patinfo = ds_main_patinfocond_patinfo;
  500. frmf_modal("SPMNW11800", "SPMNW11800", objArg ,"",1, 100, 100, "","","","","","M");
  501. }
  502. ds_main_cond.setColumn(0, "wardcd", ds_main_patinfocond_patinfo.getColumn(0, "wardcd"));
  503. if (ds_main_patinfocond_patinfo.getColumn(0, "ordtype") == 'I' || ds_main_patinfocond_patinfo.getColumn(0, "ordtype") == 'D' || ds_main_patinfocond_patinfo.getColumn(0, "ordtype") == 'E') {
  504. group5.grp_sea.cmb_room.enable = true;
  505. //해당 병동의 병실 조회
  506. ds_send_reqdata.clearData();
  507. dsf_makeValue(ds_send_reqdata, "wardcd", "string", ds_main_cond.getColumn(0, "wardcd"));
  508. var oParam = {};
  509. oParam.id = "TRMNW10902";
  510. oParam.service = "wardorderapp.NursPrcpMngt";
  511. oParam.method = "reqGetWardRoomInfo";
  512. oParam.inds = "reqCond=ds_send_reqdata";
  513. oParam.outds = "ds_init_roominfo_room=room";
  514. oParam.async = false;
  515. tranf_submit(oParam);
  516. ds_main_cond.setColumn(0, "roomcd", ds_main_patinfocond_patinfo.getColumn(0, "roomcd")); //해당 병실 셋팅
  517. //해당 병실의 환자 조회
  518. ds_send_reqdata.clearData();
  519. dsf_makeValue(ds_send_reqdata, "orddd", "string", ds_main_cond.getColumn(0, "prcpdd"));
  520. dsf_makeValue(ds_send_reqdata, "wardcd", "string", ds_main_cond.getColumn(0, "wardcd"));
  521. dsf_makeValue(ds_send_reqdata, "roomcd", "string", ds_main_cond.getColumn(0, "roomcd"));
  522. dsf_makeValue(ds_send_reqdata, "refflag", "string", "room");
  523. dsf_makeValue(ds_send_reqdata, "ordtype", "string", "I");
  524. dsf_makeValue(ds_send_reqdata, "settingrnid", "string", ds_main_cond.getColumn(0, "settingrnid"));
  525. if(spcldept == ds_main_cond.getColumn(0, "wardcd")) {
  526. dsf_makeValue(ds_send_reqdata, "spcldeptyn", "string", "Y");
  527. } else {
  528. dsf_makeValue(ds_send_reqdata, "spcldeptyn", "string", "");
  529. }
  530. var oParam = {};
  531. oParam.id = "TRMNW10903";
  532. oParam.service = "wardorderapp.NursPrcpMngt";
  533. oParam.method = "reqGetRoomPatList";
  534. oParam.inds = "reqCond=ds_send_reqdata";
  535. oParam.outds = "ds_init_patinfo_patlist=patlist";
  536. oParam.async = false;
  537. tranf_submit(oParam);
  538. if( utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("userkindcd", "string")) ){
  539. ds_init_patinfo_patlist.addColumn("userkindcd", "string");
  540. }
  541. //20110216 경북대 : 응급실 구역 매핑
  542. dsf_makeValue(ds_main_cond, "zonecd", "string", ds_main_patinfocond_patinfo.getColumn(0, "zonecd"));
  543. } else {
  544. ds_init_roominfo_room.updatecontrol = false;
  545. ds_init_roominfo_room.deleteColumn("roomcd");
  546. ds_init_roominfo_room.updatecontrol = true;
  547. group5.grp_sea.cmb_room.enable = false;
  548. //해당 부서(진료과)의 환자 조회
  549. ds_send_reqdata.clearData();
  550. dsf_makeValue(ds_send_reqdata, "orddd", "string", ds_main_cond.getColumn(0, "prcpdd"));
  551. dsf_makeValue(ds_send_reqdata, "wardcd", "string", ds_main_cond.getColumn(0, "wardcd"));
  552. dsf_makeValue(ds_send_reqdata, "refflag", "string", "dept");
  553. dsf_makeValue(ds_send_reqdata, "ordtype", "string", "O");
  554. dsf_makeValue(ds_send_reqdata, "homecareyn", "string", ds_main_cond.getColumn(0, "homecareyn"));
  555. if(spcldept == ds_main_cond.getColumn(0, "wardcd") ) {
  556. dsf_makeValue(ds_send_reqdata, "spcldeptyn", "string", "Y");
  557. } else {
  558. dsf_makeValue(ds_send_reqdata, "spcldeptyn", "string", "");
  559. }
  560. var oParam = {};
  561. oParam.id = "TRMNW10903";
  562. oParam.service = "wardorderapp.NursPrcpMngt";
  563. oParam.method = "reqGetRoomPatList";
  564. oParam.inds = "reqCond=ds_send_reqdata";
  565. oParam.outds = "ds_init_patinfo_patlist=patlist";
  566. oParam.async = false;
  567. tranf_submit(oParam);
  568. if( utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("userkindcd", "string")) ){
  569. ds_init_patinfo_patlist.addColumn("userkindcd", "string");
  570. }
  571. //가정간호 환자인 경우 방문일자 조회
  572. if(ds_main_cond.getColumn(0, "homecareyn") == "Y") {
  573. fSearchHomePatInfo();
  574. }
  575. }
  576. //환자정보조건 셋팅
  577. ds_main_patinfocond_patinfo.clearData();
  578. var cnt = ds_main_patinfocond_patinfo.rowcount;
  579. if(cnt==0){
  580. dsf_copyColInfo(ds_main_patinfocond_patinfo, ds_init_patinfo_patlist);
  581. }
  582. ds_main_patinfocond_patinfo.addRow();
  583. var irow3 = ds_init_patinfo_patlist.findRow("pid", pid);
  584. ds_main_patinfocond_patinfo.copyRow(cnt,ds_init_patinfo_patlist,irow3);
  585. ds_main_cond.setColumn(0, "patnm", ds_main_patinfocond_patinfo.getColumn(0, "pid")); //해당 환자명 셋
  586. fChkClincstdy(); //임상연구 체크
  587. fReqBfNursPrcpInfo(); //전처방 조회
  588. fReqTempNursPrcpInfo(); //임시처방 조회
  589. }
  590. }
  591. }
  592. }
  593. /**
  594. * @desc : 조회조건 환자명 변경시
  595. * @
  596. * @param :
  597. * @return :
  598. * @author : 성미연
  599. * @---------------------------------------------------
  600. */
  601. function fChgPatnm(deptflag, prcpdd, initflag) {
  602. group5.btn_signsave.enable = true;
  603. ds_main_prcpset_prcplist.clearData(); //SET처방 조회하는 시점에 spynpy1를 조회하기 위한 insukind를 넘겨줘야 함(환자별로 다름)
  604. ds_main_prcp_prcplist.clearData();
  605. var pid = ds_main_cond.getColumn(0, "patnm");
  606. ds_main_cond.setColumn(0, "pid", pid);
  607. if ( utlf_isNull(ds_init_patinfo_patlist.lookup("pid", pid, "pid"))) {
  608. if (initflag =="init"
  609. && deptflag == "O"
  610. && ds_main_patinfocond_patinfo.getColumn(0, "orddd") != prcpdd
  611. && ds_main_cond.getColumn(0, "upinfoyn") =="Y" ) { //화면오픈시 외래수진일자와 처방일자가 다를경우 블러킹메시지.20100727 김홍점 김숙인itc요청
  612. sysf_messageBox("진료일["+ds_main_patinfocond_patinfo.getColumn(0, "orddd")+"]과 처방일자가 달라 처방발행이 불가능합니다", "I");
  613. group5.btn_signsave.enable = false;
  614. if ( !utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  615. fReqBfNursPrcpInfo(); //전처방 조회
  616. fReqTempNursPrcpInfo(); //임시처방 조회
  617. }
  618. return;
  619. }else {
  620. ds_main_cond.setColumn(0, "pid", "");
  621. }
  622. }
  623. if (ds_init_patinfo_patlist.lookup("pid", pid, "elbulbodstat") == '0') { //M0062 전광판상태
  624. sysf_messageBox("해당 과에 간호접수되지 않은 환자입니다.", "I");
  625. }
  626. //환자정보조건 셋팅//ds_main_patinfocond_patinfo
  627. ds_main_patinfocond_patinfo.clearData();
  628. var cnt = ds_main_patinfocond_patinfo.rowcount;
  629. if(cnt==0){
  630. dsf_copyColInfo(ds_main_patinfocond_patinfo, ds_init_patinfo_patlist);
  631. }
  632. ds_main_patinfocond_patinfo.addRow();
  633. var irow2 = ds_init_patinfo_patlist.findRow("pid", pid);
  634. ds_main_patinfocond_patinfo.copyRow(cnt,ds_init_patinfo_patlist,irow2);
  635. //가정간호 환자인 경우 방문일자 조회
  636. if(ds_main_cond.getColumn(0, "homecareyn") == "Y") {
  637. fSearchHomePatInfo();
  638. }
  639. fChkClincstdy(); //임상연구 체크
  640. if ( !utlf_isNull(ds_main_cond.getColumn(0, "patnm")) && !utlf_isNull(ds_main_cond.getColumn(0, "pid")) ) {
  641. fReqBfNursPrcpInfo(); //전처방 조회
  642. fReqTempNursPrcpInfo(); //임시처방 조회
  643. }
  644. // 항암프로토콜명 조회
  645. if( !utlf_isNull(pid) ){
  646. fprtlnm(pid);
  647. }
  648. }
  649. /**
  650. * @desc : 가정간호 환자의 소속 정보 조회(방문일자 포함)
  651. * @
  652. * @param :
  653. * @return :
  654. * @author : 성미연
  655. * @---------------------------------------------------
  656. */
  657. function fSearchHomePatInfo() {
  658. //해당 환자의 방문일자 조회 : 방문일자에 따라 원무정보가 달라짐
  659. ds_send_reqdata.clearData();
  660. dsf_makeValue(ds_send_reqdata,"pid","string", ds_main_cond.getColumn(0, "pid"));
  661. var oParam = {};
  662. oParam.id = "TRMNW10909";
  663. oParam.service = "wardorderapp.NursPrcpMngt";
  664. oParam.method = "reqGetHomeCarePatInfo";
  665. oParam.inds = "reqCond=ds_send_reqdata";
  666. oParam.outds = "ds_init_homepatinfo_patlist=patlist";
  667. oParam.async = false;
  668. tranf_submit(oParam);
  669. if( !utlf_isNull(ds_init_homepatinfo_patlist.getColumnInfo("acptseqno")) && !utlf_isNull(ds_init_homepatinfo_patlist.getColumnInfo("cretno")) ){
  670. dsf_setTypeFormat(ds_init_homepatinfo_patlist, "acptseqno:INT^cretno:INT");
  671. }
  672. }
  673. /**
  674. * @desc : 방문일자 변경시 환자정보 셋팅
  675. * @
  676. * @param :
  677. * @return :
  678. * @author : 성미연
  679. * @---------------------------------------------------
  680. */
  681. function fChgVisitDD() {
  682. var visitdd =ds_main_cond.getColumn(0, "visitdd");
  683. var prcpvisitdd = ds_main_prcp_prcplist.getColumn(0, "prcpdelivefact");
  684. if( !utlf_isNull(prcpvisitdd) ){
  685. if(visitdd != prcpvisitdd){
  686. sysf_messageBox("방문일이 동일한 처방에 대해서만 일괄 저장이 가능합니다.", "C");
  687. ds_main_cond.setColumn(0 ,"visitdd", prcpvisitdd);
  688. return;
  689. }
  690. }
  691. }
  692. /**
  693. * @desc : 환자에 따른 임상연구 체크
  694. * @
  695. * @param :
  696. * @return :
  697. * @author : 성미연
  698. * @---------------------------------------------------
  699. */
  700. function fChkClincstdy() {
  701. //clincstdyacptflag : otpt(N:임상시험접수아님, P:사람임상 A:동물임상), inpt(임상연구여부)
  702. if( !utlf_isNull(ds_main_patinfocond_patinfo.getColumn(0, "clincstdyflag"))
  703. && ds_main_patinfocond_patinfo.getColumn(0, "clincstdyflag") != "N"){
  704. group5.grp_sea.chk_clincstdy.enable = true;
  705. ds_main_cond.setColumn(0, "clincstdyflag", "N");
  706. }else{
  707. group5.grp_sea.chk_clincstdy.enable = false;
  708. ds_main_cond.setColumn(0, "clincstdyflag", "N");
  709. }
  710. }
  711. /**
  712. * @desc : 대분류 SET 조회
  713. * @
  714. * @param :
  715. * @return :
  716. * @author : 성미연
  717. * @---------------------------------------------------
  718. */
  719. function fLrgSetRef() {
  720. if ( !utlf_isNull(ds_main_prcplistinfo_setcond.getColumn(0, "settrgtcd")) ) {
  721. if (ds_main_prcplistinfo_setcond.getColumn(0, "settrgtcd") == 'ALL') { //공통일 경우
  722. ds_main_prcplistinfo_setcond.setColumn(0, "setclscd", 'N');
  723. } else { //부서일 경우
  724. ds_main_prcplistinfo_setcond.setColumn(0, "setclscd", 'W');
  725. }
  726. ds_send_reqdata.clearData();
  727. ds_send_reqdata.copyData(ds_main_prcplistinfo_setcond);
  728. dsf_makeValue(ds_send_reqdata,"clsflag", "string", 'lrg');
  729. //대분류명 조회
  730. var oParam = {};
  731. oParam.id = "TRMNW11601";
  732. oParam.service = "wardorderapp.NursPrcpMngt";
  733. oParam.method = "reqGetLrgSetInfo";
  734. oParam.inds = "req=ds_send_reqdata";
  735. oParam.outds = "ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist=lrgsetlist";
  736. oParam.async = false;
  737. tranf_submit(oParam);
  738. ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.rowposition = -1;
  739. if( !utlf_isNull(ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.getColumnInfo("setno")) &&
  740. !utlf_isNull(ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.getColumnInfo("supsetno")) &&
  741. !utlf_isNull(ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.getColumnInfo("setrefseq")) ){
  742. dsf_setTypeFormat(ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist, "setno:INT^supsetno:INT^setrefseq:INT");
  743. }
  744. dsf_setFixVal(ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist, "flag:false");
  745. ds_main_prcplistinfo_anosmlsetinfo_smlsetlist.clearData();
  746. ds_main_prcpset_prcplist.clearData();
  747. }
  748. }
  749. /**
  750. * @desc : 소분류 SET 조회
  751. * @
  752. * @param :
  753. * @return :
  754. * @author : 성미연
  755. * @---------------------------------------------------
  756. */
  757. function fSmlSetRef() {
  758. ds_send_reqdata.clearData();
  759. ds_send_reqdata.copyData(ds_main_prcplistinfo_setcond);
  760. dsf_makeValue(ds_send_reqdata,"clsflag", "string" , 'sml');
  761. dsf_makeValue(ds_send_reqdata,"setno", "string" , ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.getColumn(ds_main_prcplistinfo_anolrgsetinfo_lrgsetlist.rowposition,"setno"));
  762. //소분류명 조회
  763. if( !utlf_isNull(ds_send_reqdata.getColumnInfo("setno")) ){
  764. dsf_setTypeFormat(ds_send_reqdata, "setno:INT");
  765. }
  766. var oParam = {};
  767. oParam.id = "TRMNW11602";
  768. oParam.service = "wardorderapp.NursPrcpMngt";
  769. oParam.method = "reqGetSmlSetInfo";
  770. oParam.inds = "req=ds_send_reqdata";
  771. oParam.outds = "ds_main_prcplistinfo_anosmlsetinfo_smlsetlist=smlsetlist";
  772. oParam.async = false;
  773. tranf_submit(oParam);
  774. ds_main_prcplistinfo_anosmlsetinfo_smlsetlist.rowposition = -1;
  775. if( !utlf_isNull(ds_main_prcplistinfo_anosmlsetinfo_smlsetlist.getColumnInfo("setno")) &&
  776. !utlf_isNull(ds_main_prcplistinfo_anosmlsetinfo_smlsetlist.getColumnInfo("supsetno")) &&
  777. !utlf_isNull(ds_main_prcplistinfo_anosmlsetinfo_smlsetlist.getColumnInfo("setrefseq"))){
  778. dsf_setTypeFormat(ds_main_prcplistinfo_anosmlsetinfo_smlsetlist, "setno:INT^supsetno:INT^setrefseq:INT");
  779. }
  780. dsf_setFixVal(ds_main_prcplistinfo_anosmlsetinfo_smlsetlist, "flag:false");
  781. ds_main_prcpset_prcplist.clearData();
  782. }
  783. /**
  784. * @desc : 간호약속처방SET 조회 (처방상세)
  785. * @
  786. * @param :
  787. * @return :
  788. * @author : 성미연
  789. : - 오지훈 2007.12.27 수정
  790. * @---------------------------------------------------
  791. */
  792. function fReqNursPrmsSet(){
  793. }
  794. /**
  795. * @desc : 보험정보 조회
  796. * @
  797. * @param : calcscorcd 수가코드
  798. * @return :
  799. * @author : 성미연
  800. : - 오지훈 2007.12.27 수정
  801. * @---------------------------------------------------
  802. */
  803. function fInsuMsgInfoRef(calcscorcd) {
  804. ds_send_reqdata.clearData();
  805. dsf_makeValue(ds_send_reqdata,"calcscorcd", "string", calcscorcd);
  806. var oParam = {};
  807. oParam.id = "TRMNW10907";
  808. oParam.service = "wardorderapp.NursPrcpMngt";
  809. oParam.method = "reqGetInsuMsgInfo";
  810. oParam.inds = "reqCond=ds_send_reqdata";
  811. oParam.outds = "ds_main_insumsginfo_insuinfo=insuinfo";
  812. oParam.async = false;
  813. tranf_submit(oParam);
  814. }
  815. /**
  816. * @desc : 약품편람 조회
  817. * @
  818. * @param :
  819. * @return :
  820. * @author : 성미연
  821. * @---------------------------------------------------
  822. */
  823. function fDrugHbook() {
  824. var prcpclscd = ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "prcpclscd");
  825. if("A2" == prcpclscd || "A4" == prcpclscd || "A6" == prcpclscd) {
  826. dsf_makeValue(ds_temp_setparma,"srchdrugcd", "string", ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "prcpcd"));
  827. var objArg = new Object();
  828. objArg.arg_ds_hidden_receivedata = ds_temp_setparma;
  829. frmf_modal("SMADB01900", "SMADB01900", objArg ,"",1, 0, 0, "","","","","","M");
  830. ds_temp_setparma.setColumn(0, "prcpcd", "");
  831. } else {
  832. sysf_messageBox("약/주사 처방이 아닙니다.", "I");
  833. }
  834. }
  835. /**
  836. * @desc : 수가편람 조회
  837. * @
  838. * @param :
  839. * @return :
  840. * @author : 성미연
  841. * @---------------------------------------------------
  842. */
  843. function fCalcScorHbook(flag) {
  844. var prcpcd;
  845. ds_main_prcp_prcplist.updatecontrol = false;
  846. ds_main_prcp_prcplist.enableevent = false;
  847. if(flag == 'prcp'){
  848. prcpcd = ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "prcpcd");
  849. dsf_makeValue(ds_temp_setparma,"srchdrugcd","string", prcpcd);
  850. var objArg = new Object();
  851. objArg.arg_ds_temp = ds_temp_setparma;
  852. frmf_modal("SMPIC00200", "SMPIC00200", objArg ,"","1", "400", "400", "","","","","","M");
  853. //sysf_trace("111111111111111111111111111111111111");
  854. //group5.grd_prcpposlist.setCellProperty("Head", group5.grd_prcpposlist.getBindCellIndex("Body","nigtprcpflag")-2, "text", "여기");
  855. if(prcpcd == ds_temp_picmmech.getColumn(0, "picmmech_calcscorcd") ) {
  856. if (ds_main_prcpset_prcplist.rowposition > -1 ){
  857. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  858. sysf_messageBox("해당 환자를", "C002");
  859. return;
  860. }
  861. //처방 main grid로 약속처방 copy //mnwAddNursPrcp(sPRCPSETLIST_PATH, "/root/main/prcp", grd_prcplist.row, "");
  862. mnwAddNursPrcp(ds_main_prcpset_prcplist, "ds_main_prcp_prcplist", ds_main_prcpset_prcplist.rowposition, "");
  863. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  864. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  865. }
  866. var prcplist = ds_main_prcp_prcplist.rowcount;
  867. fSetNursPrcpDefault(prcplist - 1);
  868. fSetPrcpInfo();
  869. //신규처방은 반환컬럼 disable
  870. /*
  871. ds_main_prcp_prcplist.addColumn("tempcbg","string");
  872. var sExprEdittype3 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype").replace("'checkbox'", "")
  873. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  874. + "'checkbox'";
  875. var controlbg = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground").replace("'')", "");
  876. controlbg += "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'silver' : ";
  877. controlbg += "'')";
  878. */
  879. ds_main_prcp_prcplist.addColumn("tempet","string");
  880. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempet", 'none');
  881. //group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype", sExprEdittype3);
  882. //group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground" , controlbg);
  883. ds_main_prcp_prcplist.addColumn("tempcbg","string");
  884. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempcbg", 'silver');
  885. if(ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowcount-1, "estmcls")!= "Y"){
  886. /*
  887. var sExprEdittype5 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype").replace("'combo'", "")
  888. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  889. + "'combo'";
  890. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", sExprEdittype5);
  891. */
  892. ds_main_prcp_prcplist.addColumn("tempnpf","string");
  893. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempnpf", 'none');
  894. }
  895. //수가 보험정보 조회
  896. var calcscormastspec = utlf_transNullToEmpty(ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "calcscormastspec"));
  897. var calcscorcd = calcscormastspec.split("|");
  898. fInsuMsgInfoRef(calcscorcd[3]);
  899. }
  900. }
  901. ds_temp_picmmech.clearData();
  902. ds_temp_picmmech.addRow();
  903. ds_temp_setparma.clearData();
  904. ds_temp_setparma.addRow();
  905. }else if(flag == 'prcppos'){
  906. prcpcd = ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowposition, "prcpcd");
  907. dsf_makeValue(ds_temp_setparma,"srchdrugcd","string", prcpcd);
  908. var objArg = new Object();
  909. objArg.arg_ds_temp = ds_temp_setparma;
  910. frmf_modal("SMPIC00200", "SMPIC00200", objArg ,"","1", "400", "400", "","","","","","M");
  911. }else if(flag == 'bf'){
  912. prcpcd = ds_main_bfprcp_prcplist.getColumn(ds_main_bfprcp_prcplist.rowposition, "prcpcd");
  913. dsf_makeValue(ds_temp_setparma,"srchdrugcd","string", prcpcd);
  914. var objArg = new Object();
  915. objArg.arg_ds_temp = ds_temp_setparma;
  916. frmf_modal("SMPIC00200", "SMPIC00200", objArg ,"","1", "400", "400", "","","","","","M");
  917. }
  918. ds_main_prcp_prcplist.updatecontrol = true;
  919. ds_main_prcp_prcplist.enableevent = true;
  920. }
  921. /**
  922. * @desc : 물류편람 조회
  923. * @
  924. * @param :
  925. * @return :
  926. * @author : 성미연
  927. * @---------------------------------------------------
  928. */
  929. function fGoodHbook() {
  930. frmf_modal("SMRSC00600","SMRSC00600","","","","","","","","","","","M");
  931. }
  932. /**
  933. * @desc : 간호처방 추가
  934. * @
  935. * @param : srcnode 원본노드
  936. * : trgtnode 목적지노드
  937. * : currow row값
  938. * : pflag 처리구분 popup에서 opener로 처리되는 경우, opener으로 설정
  939. * : status 상태구분(I:신규, U:수정, D:D/C)
  940. *
  941. * @return :
  942. * @author : 오지훈 2007.12.27
  943. * @---------------------------------------------------
  944. */
  945. function mnwAddNursPrcp(srcnode, trgtnode, currow, pflag){
  946. //목적지 노드에 처방instance를 copy한다.
  947. if(pflag == "popup"){
  948. var desnode = opener.objects[trgtnode];
  949. }else{
  950. var desnode = this.objects[trgtnode];
  951. }
  952. var cnt1 = desnode.rowcount;
  953. if(cnt1==0){
  954. dsf_copyColInfo(desnode, srcnode);
  955. }
  956. desnode.addRow();
  957. desnode.copyRow(cnt1,srcnode,currow);
  958. }
  959. /**
  960. * @desc : 한/영 여부 검사
  961. * @
  962. * @param : param 한영구분할 문자열
  963. * @return : "H" 한글
  964. * : "E" 영문
  965. * @author : 오지훈 2007.12.28
  966. * @---------------------------------------------------
  967. */
  968. function fIsHng(param){
  969. //parameter의 첫번째 글자의 문자코드 값이 255보다 크면 한글, 작으면 영문
  970. if(param.charCodeAt(0) > 255){
  971. return "H";
  972. } else{
  973. return "E";
  974. }
  975. }
  976. /**
  977. * @desc : 처방data(명, 코드)검색
  978. * @
  979. * @param :
  980. * @return :
  981. * @author : 성미연
  982. * : - 오지훈 2007.12.27 수정
  983. * @---------------------------------------------------
  984. */
  985. function fReqSrchPrcpData(){
  986. ds_main_srchcond.setColumn(0, "srchdata", group5.switch1.case_prcp.ipt_listsrchdata.value);
  987. if( utlf_isNull(ds_main_srchcond.getColumn(0, "srchdata")) ){
  988. sysf_messageBox("검색어는 2자 이상","C001");
  989. group5.switch1.case_prcp.ipt_listsrchdata.setFocus();
  990. return;
  991. }
  992. if (ds_main_srchcond.getColumn(0, "srchdata").length < 2 ){
  993. sysf_messageBox("검색어는 2자 이상","C001");
  994. group5.switch1.case_prcp.ipt_listsrchdata.setFocus();
  995. return;
  996. }
  997. var prcpclscd = ds_main_srchcond.getColumn(0, "srchclscd");
  998. ds_send_reqdata.clearData();
  999. dsf_makeValue(ds_send_reqdata,"prcpdd","string", ds_main_cond.getColumn(0, "prcpdd"));
  1000. dsf_makeValue(ds_send_reqdata,"srchflag","string",ds_main_srchcond.getColumn(0, "srchflag"));
  1001. dsf_makeValue(ds_send_reqdata,"srchclscd","string",ds_main_srchcond.getColumn(0, "srchclscd"));
  1002. dsf_makeValue(ds_send_reqdata,"srchdata","string",ds_main_srchcond.getColumn(0, "srchdata"));
  1003. dsf_makeValue(ds_send_reqdata,"langflag","string", "E");//fIsHng(model.getValue("/root/main/prcpsetcond/srchdata"))
  1004. dsf_makeValue(ds_send_reqdata,"insukind","string",ds_main_patinfocond_patinfo.getColumn(0, "insukind"));
  1005. dsf_makeValue(ds_send_reqdata,"srchcond","string","srchSET"); //공통SET내 검색
  1006. dsf_makeValue(ds_send_reqdata,"deptcd","string",ds_main_cond.getColumn(0, "wardcd"));
  1007. var oParam = {};
  1008. oParam.id = "TRMNW11101";
  1009. oParam.service = "wardorderapp.NursPrcpMngt";
  1010. oParam.method = "reqGetSrchNursPrcpInfo";
  1011. oParam.inds = "req=ds_send_reqdata";
  1012. oParam.outds = "ds_main_prcpsrch_prcplist=prcplist";
  1013. oParam.async = false;
  1014. oParam.callback = "cf_TRMNW11101";
  1015. tranf_submit(oParam);
  1016. dsf_setDefaultVal(ds_main_prcpsrch_prcplist, "prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,drugmthdspccd:-,tootfact:-,clinccmtcnts:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-");
  1017. dsf_setFixVal(ds_main_prcpsrch_prcplist, "flag:Y");
  1018. if(arErrorCode.pop("TRMNW11101") > -1){
  1019. //-------------경북대 (20101213)
  1020. var prcplist = ds_main_prcpsrch_prcplist.rowcount;
  1021. //-------------경북대 (20101213)
  1022. if(prcplist > 0){
  1023. dsf_createDs("ds_temp_prcpsrch_prcplist");
  1024. ds_temp_prcpsrch_prcplist.copyData(ds_main_prcpsrch_prcplist);
  1025. var objArg = new Object();
  1026. objArg.arg_ds_main_prcpsrch_prcplist = ds_temp_prcpsrch_prcplist;
  1027. frmf_open("SPMNW10600", "SPMNW10600",objArg, "", "", "","","","","","","","M" );
  1028. ds_main_prcpsrch_prcplist.clearData() //처방검색 결과 후, 조회결과 node를 삭제
  1029. }else{
  1030. sysf_messageBox("검색 결과가", "I004");
  1031. group5.switch1.case_prcp.ipt_listsrchdata.setFocus();
  1032. return;
  1033. }
  1034. }
  1035. }
  1036. /**
  1037. * @desc : SET처방 리스트 용법 클릭시 팝업
  1038. * @
  1039. * @param :
  1040. * @return :
  1041. * @author : 성미연
  1042. * @---------------------------------------------------
  1043. */
  1044. function fClickSavePrcpDrugMthd(){
  1045. }
  1046. /**
  1047. * @desc : 간호처방 SignData 조회
  1048. * @
  1049. * @param :
  1050. * @return :
  1051. * @author : 오지훈 2008. 1. 2
  1052. * @---------------------------------------------------
  1053. */
  1054. function fReqNursPrcpSignData(){
  1055. if ( utlf_isNull(ds_main_cond.getColumn(0, "pid")) || utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  1056. sysf_messageBox("환자가 지정되지", "E007");
  1057. return;
  1058. }
  1059. //20110422_KNUH_Start 잠시 주석처리.
  1060. //20110420_KNUH_Start
  1061. var cnt = 0;
  1062. var str = "";
  1063. var drprcpetc7;
  1064. var drprcpetc8;
  1065. var prcpclscd;
  1066. var prcpcd;
  1067. //20110626_KNUH_Start 보조유형이 미용성형일 경우, 처방을 보조유형으로 발행하도록 하는 로직 추가
  1068. var anamneflag; //기왕력 유무(Y/N9
  1069. var anamnecnt = 0;
  1070. var subcretno = ""; //보조유형생성번호(subcretno)
  1071. var flag;
  1072. var tempcol8;
  1073. var str1 = "";
  1074. var str2 = "";
  1075. var stoccnt = 0;
  1076. var stoccnt2 = 0;
  1077. var safestocqty;
  1078. var idxinfo = "";
  1079. var idxinfo2= "";
  1080. var actregyn = "";
  1081. var sExprColor7 = "EXPR(";
  1082. for (var i=0; i < ds_main_prcp_prcplist.rowcount; i++) {
  1083. drprcpetc7 = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","drprcpetc7"));
  1084. drprcpetc8 = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","drprcpetc8"));
  1085. prcpclscd = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","prcpclscd"));
  1086. prcpcd = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","prcpcd"));
  1087. prcpnm = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","orgprcpnm"));
  1088. flag = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","flag"));
  1089. tempcol8 = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"));
  1090. safestocqty = parseInt(group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","safestocqty")));
  1091. qty = parseInt(group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","drprcpetc8")));
  1092. actregyn = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","actregyn"));
  1093. stocyn = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","stocyn"));
  1094. if(prcpclscd == "M2") {
  1095. if(tempcol8 == "Y") {
  1096. } else {
  1097. if(stocyn == "Y") {
  1098. if(safestocqty == 0) {
  1099. if(actregyn == "Y") {
  1100. } else {
  1101. if(stoccnt == 0) {
  1102. str1 += " " + prcpnm;
  1103. idxinfo += i;
  1104. } else {
  1105. str1 += "\n, " + prcpnm;
  1106. idxinfo+= "," + i;
  1107. }
  1108. stoccnt++;
  1109. }
  1110. } else {
  1111. if(qty > safestocqty) {
  1112. if(stoccnt2 == 0) {
  1113. str2 += " " + prcpnm;
  1114. idxinfo2 += i;
  1115. } else {
  1116. str2 += "\n, " + prcpnm;
  1117. idxinfo2 += "," + i;
  1118. }
  1119. stoccnt2++;
  1120. }
  1121. }
  1122. }
  1123. }
  1124. }
  1125. if(flag == "N" && (tempcol8 == "N" || utlf_isNull(tempcol8)) ) {
  1126. sysf_messageBox("[" + prcpcd + "]처방은 수가가 종료되어 반환만 가능합니다.", "E");
  1127. ds_main_prcp_prcplist.rowposition = i;
  1128. return;
  1129. }
  1130. //영상처방인 경우 1회만 처방가능하도록 blocking
  1131. if (prcpclscd == 'C2') {
  1132. if (drprcpetc7 != 1 || drprcpetc8 != 1) {
  1133. sysf_messageBox("영상처방은 1회만 처방 가능합니다.", "E");
  1134. return;
  1135. }
  1136. }
  1137. if (prcpcd == 'E40300003-3' || prcpcd == 'E40300003-6') {
  1138. if ((drprcpetc8 % 3) != 0 ) {
  1139. sysf_messageBox("Gauze Vaseline 처방은 수량을 3배수로만 처방 가능합니다.", "E");
  1140. return;
  1141. }
  1142. }
  1143. //20110626_KNUH_Start 보조유형이 미용성형일 경우, 처방을 보조유형으로 발행하도록 하는 로직 추가
  1144. anamneflag = group5.grd_prcpposlist.getCellValue(i, group5.grd_prcpposlist.getBindCellIndex("body","anamneflag"));
  1145. if(anamneflag == "Y") {
  1146. if(anamnecnt == 0) {
  1147. var flag = fCheckSubKindCd();
  1148. if(flag == "false") {
  1149. return;
  1150. }
  1151. subcretno = ds_temp_prcpinfo.getColumn(0, "subcretno");
  1152. if(subcretno == "0" || utlf_isNull(subcretno) ) {
  1153. sysf_messageBox ( "환자의 부유형이 없거나 또는 선택되지 않았습니다.\n\n기왕증 체크를 해제 합니다.", "I999" );
  1154. subcretno = "0";
  1155. }
  1156. }
  1157. anamnecnt++;
  1158. if(subcretno != "0") {
  1159. ds_main_prcp_prcplist.setColumn(i, "subcretno", subcretno);
  1160. } else {
  1161. ds_main_prcp_prcplist.setColumn(i, "anamneflag", "N");
  1162. ds_main_prcp_prcplist.setColumn(i, "subcretno", "0");
  1163. }
  1164. } else {
  1165. ds_main_prcp_prcplist.setColumn(i, "anamneflag", "N");
  1166. ds_main_prcp_prcplist.setColumn(i, "subcretno", "0");
  1167. }
  1168. //20110626_KNUH_End
  1169. if( drprcpetc7 != drprcpetc8 || drprcpetc7 == "Y" || drprcpetc8 == "Y" || drprcpetc7 == "N" || drprcpetc8 == "N") {
  1170. if(prcpclscd == "A6" || prcpclscd == "A4" || prcpclscd == "A2") {
  1171. continue;
  1172. } else {
  1173. sExprColor7 += "currow == "+i+" ? '#FFF000' : ";
  1174. if(cnt != 0) {
  1175. str += ",";
  1176. }
  1177. str += i;
  1178. cnt++;
  1179. }
  1180. } else {
  1181. sExprColor7 += "currow == "+i+" ? '#FFFFFF' : ";
  1182. }
  1183. }
  1184. sExprColor7 += "'')";
  1185. for(var datanum5 = 0; datanum5 <group5.grd_prcpposlist.getCellCount("Body"); datanum5++){
  1186. group5.grd_prcpposlist.setCellProperty("Body", datanum5, "background", sExprColor7);
  1187. group5.grd_prcpposlist.setCellProperty("Body", datanum5, "background2", sExprColor7);
  1188. }
  1189. if(cnt > 0) {
  1190. sysf_messageBox(str + "번째 처방이 잘못 발생되었습니다. 우측마우스를 눌러 삭제후 다시 입력하십시오.", "E");
  1191. return;
  1192. }
  1193. var msg = "";
  1194. //칠곡만 적용
  1195. if(sysf_getUserInfo("dutplceinstcd") == "032") {
  1196. if(stoccnt > 0 || stoccnt2 > 0) {
  1197. if(stoccnt > 0 && stoccnt2 > 0) {
  1198. msg = "* 안전재고보다 초과된 물품\n" + str2 + "\n\n" + "* 미등록된 물품\n" + str1 + "\n";
  1199. } else if(stoccnt > 0 && stoccnt2 == 0) {
  1200. msg = "* 미등록된 물품\n" + str1 + "\n";
  1201. } else if(stoccnt == 0 & stoccnt2 > 0) {
  1202. msg = "* 안전재고보다 초과된 물품\n" + str2 + "\n";
  1203. }
  1204. var rtn = sysf_messageBox(msg, "I");
  1205. }
  1206. }
  1207. //20090908 khj
  1208. if (( ds_main_patinfocond_patinfo.getColumn(0, "ordtype") == "I" || ds_main_patinfocond_patinfo.getColumn(0, "ordtype") == "D" )) {
  1209. ds_send_reqdata.clearData();
  1210. dsf_makeValue(ds_send_reqdata,"orddd", "string", ds_main_cond.getColumn(0, "prcpdd"));
  1211. dsf_makeValue(ds_send_reqdata,"wardcd", "string", ds_main_cond.getColumn(0, "wardcd"));
  1212. dsf_makeValue(ds_send_reqdata,"roomcd", "string", ds_main_cond.getColumn(0, "roomcd"));
  1213. dsf_makeValue(ds_send_reqdata,"refflag", "string", "room");
  1214. dsf_makeValue(ds_send_reqdata,"ordtype", "string", "I");
  1215. dsf_makeValue(ds_send_reqdata,"settingrnid", "string", ds_main_cond.getColumn(0, "settingrnid"));
  1216. if(spcldept == ds_main_cond.getColumn(0, "wardcd")) {
  1217. dsf_makeValue(ds_send_reqdata,"spcldeptyn", "string", "Y");
  1218. } else {
  1219. dsf_makeValue(ds_send_reqdata,"spcldeptyn", "string", "");
  1220. }
  1221. var oParam = {};
  1222. oParam.id = "TRMNW10903";
  1223. oParam.service = "wardorderapp.NursPrcpMngt";
  1224. oParam.method = "reqGetRoomPatList";
  1225. oParam.inds = "reqCond=ds_send_reqdata";
  1226. oParam.outds = "ds_init_patinfo_patlist=patlist";
  1227. oParam.async = false;
  1228. tranf_submit(oParam);
  1229. if( utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("userkindcd", "string")) ){
  1230. ds_init_patinfo_patlist.addColumn("userkindcd", "string");
  1231. }
  1232. if( !utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("acptseqno")) && !utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("cretno")) ){
  1233. dsf_setTypeFormat(ds_init_patinfo_patlist, "acptseqno:INT^cretno:INT");
  1234. }
  1235. var pid = ds_main_cond.getColumn(0, "pid");
  1236. ds_main_patinfocond_patinfo.clearData();
  1237. var cnt = ds_main_patinfocond_patinfo.rowcount;
  1238. if(cnt==0){
  1239. dsf_copyColInfo(ds_main_patinfocond_patinfo, ds_init_patinfo_patlist);
  1240. }
  1241. ds_main_patinfocond_patinfo.addRow();
  1242. var irow4 = ds_init_patinfo_patlist.findRow("pid", pid);
  1243. ds_main_patinfocond_patinfo.copyRow(cnt,ds_init_patinfo_patlist,irow4);
  1244. if ( ds_main_patinfocond_patinfo.getColumn(0, "careinrmyn") != "Y" ){
  1245. sysf_messageBox("입실체크를 하기 전 또는 퇴원환자는 처방 저장을 하실 수 ", "I004");
  1246. return;
  1247. }
  1248. }
  1249. if ( utlf_isNull(ds_main_prcp_prcplist.getColumn(0, "prcpcd")) ) {
  1250. sysf_messageBox("저장할 처방내역이", "I004");
  1251. return;
  1252. }
  1253. var posdept = ds_main_prcpposinfo_cond.getColumn(0, "deptcd");
  1254. if (ds_main_prcpposinfo_cond.getColumn(0, "poscd") == '2' && utlf_isNull(ds_init_deptinfo_deptlist.lookup("deptcd", posdept, "deptcd")) ) {
  1255. sysf_messageBox("User위치가 지정되지", "E007");
  1256. return;
  1257. }
  1258. ds_send_reqdata.clearData();
  1259. dsf_createDs("ds_err_result");
  1260. dsf_createDs("ds_endinfo_result");
  1261. //상단정보가 아닌, 환자검색정보 설정인 경우
  1262. var ioflag = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  1263. var orddeptcd = ds_main_patinfocond_patinfo.getColumn(0, "orddeptcd");
  1264. var orddeptnm = ds_main_patinfocond_patinfo.getColumn(0, "orddeptnm");
  1265. var orddrid = ds_main_patinfocond_patinfo.getColumn(0, "orddrid");
  1266. var orddrnm = ds_main_patinfocond_patinfo.getColumn(0, "orddrnm");
  1267. var pid = ds_main_patinfocond_patinfo.getColumn(0, "pid");
  1268. var hngnm = ds_main_patinfocond_patinfo.getColumn(0, "patnm");
  1269. var cretno = ds_main_patinfocond_patinfo.getColumn(0, "cretno");
  1270. var instcd = ds_main_patinfocond_patinfo.getColumn(0, "instcd");
  1271. var sa = ds_main_patinfocond_patinfo.getColumn(0, "sexage");
  1272. var userkindcd = ds_main_patinfocond_patinfo.getColumn(0, "userkindcd");
  1273. var aftcertdrid = "";
  1274. var orddd = "";
  1275. var pamflag = "";
  1276. var chkprcpclscd ="";
  1277. var chkaftcertyn ="";
  1278. if(ioflag == "O" || ioflag == "S"){
  1279. orddd = ds_main_patinfocond_patinfo.getColumn(0, "orddd");
  1280. if ( userkindcd == "97" ){
  1281. for (var i=0; i < ds_main_prcp_prcplist.rowcount; i++) {
  1282. chkprcpclscd = ds_main_prcp_prcplist.getColumn(i, "prcpclscd");
  1283. if (!utlf_isNull( ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid == '207' && cdid == '"+chkprcpclscd+"'"), "cdid") )) {
  1284. chkaftcertyn = "Y";
  1285. break;
  1286. }
  1287. }
  1288. if ( chkaftcertyn == "Y" ){
  1289. frmf_setParameter("SPMMB04100_orddrid", orddrid);
  1290. frmf_setParameter("SPMMB04100_defdeptcd", orddeptcd);
  1291. frmf_modal("SPMMB04100", "SPMMB04100", "", "", "" ,"", "","","","","","","M");
  1292. var useyn = frmf_getParameter("SPMMB04100_useyn");
  1293. if (useyn != "Y") {
  1294. return false;
  1295. }else if(useyn == "Y"){ //후인증 선택의사로 설정
  1296. aftcertdrid = frmf_getParameter("SPMMB04100_orddrid");
  1297. }
  1298. }
  1299. }
  1300. }else{
  1301. orddd = ds_main_patinfocond_patinfo.getColumn(0, "indd");
  1302. }
  1303. var bedcd = ds_main_cond.getColumn(0, "zonecd");
  1304. var er ="";
  1305. var grupcd = "";
  1306. if(ioflag == "O"){ //외래인 경우, 원무정보 처리
  1307. pamflag = "Y";
  1308. }
  1309. var deptcd="";
  1310. var deptnm="";
  1311. if (ds_main_prcpposinfo_cond.getColumn(0, "poscd") == '1') { //환자위치
  1312. if ( !utlf_isNull( ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid == '002' && cdid == '"+group5.grp_sea.combo1.value+"'"), "cdid")) ) {
  1313. deptcd = ds_init_patinfo_patlist.lookup("pid", pid, "grupcd");
  1314. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", ds_init_patinfo_patlist.lookup("pid", pid, "grupcd"), "depthngnm");
  1315. } else {
  1316. deptcd = ds_main_cond.getColumn(0, "wardcd");
  1317. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", ds_main_cond.getColumn(0, "wardcd"), "depthngnm");
  1318. }
  1319. } else { //User위치
  1320. deptcd = ds_main_prcpposinfo_cond.getColumn(0, "deptcd");
  1321. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", ds_main_prcpposinfo_cond.getColumn(0, "deptcd"), "depthngnm");
  1322. }
  1323. var roomcd = ds_main_patinfocond_patinfo.getColumn(0, "roomcd");
  1324. if(sysf_getUserInfo("dutplceinstcd") == "031" && (deptcd == "3063200000" || deptcd == "3063300000" || deptcd == "3050135000")) { // 본원 내과·신경외과집중치료실(3063200000), 외과·심혈관외과집중치료실(3063300000)은 집계부서를 기존 ICU 기준으로 변경 처리 2019.01.10 엄영만
  1325. // 20190131 이돈희 : 본원 심뇌혈관질환응급치료실(3050135000)을 CCU와 SU로 집계부서 분리 처리
  1326. if(roomcd == "MICU" || roomcd == "EMICU" || roomcd == 'MICU-i') { // MICU 내과중환자실
  1327. deptcd = "3060100000";
  1328. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  1329. } else if(roomcd == "SICU" || roomcd == "ESICU") { // SICU 외과중환자실
  1330. deptcd = "3060200000";
  1331. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  1332. } else if(roomcd == "NSICU" || roomcd == "ENSICU") { // NSICU 신경외과중환자실
  1333. deptcd = "3060300000";
  1334. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  1335. } else if(roomcd == "CICU") { // CICU 심혈관중환자실
  1336. deptcd = "3060400000";
  1337. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  1338. } else if(roomcd == "CCU") { // CCU
  1339. deptcd = "3041501000";
  1340. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  1341. } else if(roomcd == "SU") { // SU
  1342. deptcd = "3041502000";
  1343. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  1344. }
  1345. }
  1346. ds_temp_saveflaginfo.clearData();
  1347. ds_send_reqdata_saveflaginfo.clearData();
  1348. dsf_makeValue(ds_temp_saveflaginfo,"savedataflag", "string", "2"); //저장자료구분(2:처방)
  1349. dsf_makeValue(ds_temp_saveflaginfo,"saveflag", "string", ioflag); //저장구분 O:외래, I:입원, E:응급, S:건진, D:DSC
  1350. dsf_makeValue(ds_temp_saveflaginfo,"prcpflag", "string", "2"); //처방구분 (M0035 처방권한에 대한 구분종류 : 간호 추가처방)
  1351. dsf_makeValue(ds_temp_saveflaginfo,"inptflag", "string", "09"); //처방입력구분 (M0034 처방입력에 대한 구분종류 : 간호처방)
  1352. dsf_makeValue(ds_temp_saveflaginfo,"pamflag", "string", pamflag); //원무정보 처리구분(외래만 Y)
  1353. dsf_makeValue(ds_temp_saveflaginfo,"prcperrflag", "string", "Y"); //처방오류구분
  1354. dsf_makeValue(ds_temp_saveflaginfo,"deptcd", "string", deptcd); //부서코드
  1355. dsf_makeValue(ds_temp_saveflaginfo,"deptnm", "string", deptnm); //부서명
  1356. dsf_makeValue(ds_temp_saveflaginfo,"userid", "string", sysf_getUserInfo("userid")); //사용자ID
  1357. dsf_makeValue(ds_temp_saveflaginfo,"usernm", "string", sysf_getUserInfo("usernm")); //사용자명
  1358. dsf_makeValue(ds_temp_saveflaginfo,"signyn", "string", "Y"); //전자서명여부
  1359. dsf_makeValue(ds_temp_saveflaginfo,"prcpdd", "string", ds_main_cond.getColumn(0, "prcpdd")); //처방일
  1360. ds_send_reqdata_saveflaginfo.copyData(ds_temp_saveflaginfo);
  1361. ds_temp_savergstinfo.clearData();
  1362. ds_send_reqdata_savergstinfo.clearData();
  1363. dsf_makeValue(ds_temp_savergstinfo,"pid" , "string", pid); //등록번호
  1364. dsf_makeValue(ds_temp_savergstinfo,"indd" , "string", orddd); //진료일자
  1365. dsf_makeValue(ds_temp_savergstinfo,"orddd" , "string", orddd); //진료일자
  1366. dsf_makeValue(ds_temp_savergstinfo,"cretno" , "string", cretno); //생성번호
  1367. dsf_makeValue(ds_temp_savergstinfo,"instcd" , "string", instcd); //기관코드
  1368. dsf_makeValue(ds_temp_savergstinfo,"orddeptcd" , "string", orddeptcd); //진료과
  1369. dsf_makeValue(ds_temp_savergstinfo,"orddeptnm" , "string", orddeptnm); //진료과명
  1370. dsf_makeValue(ds_temp_savergstinfo,"orddrid" , "string", orddrid); //진료의
  1371. dsf_makeValue(ds_temp_savergstinfo,"orddrnm" , "string", orddrnm); //진료의명
  1372. dsf_makeValue(ds_temp_savergstinfo,"hngnm" , "string", hngnm); //환자명
  1373. dsf_makeValue(ds_temp_savergstinfo,"sa" , "string", sa); //성별나이
  1374. dsf_makeValue(ds_temp_savergstinfo,"ordtype" , "string", ioflag); //외래입원구분
  1375. dsf_makeValue(ds_temp_savergstinfo,"aftcertdrid", "string", aftcertdrid); //외래 일반의사의 경우 후인증 대상의사는 지정한다.
  1376. ds_send_reqdata_savergstinfo.copyData(ds_temp_savergstinfo);;
  1377. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  1378. ds_main_prcp_prcplist.addColumn("prcppkspec", "string");
  1379. for(var i = 0; i < ds_main_prcp_prcplist.rowcount; i++){
  1380. var prcpclscd = ds_main_prcp_prcplist.getColumn(i, "prcpclscd");
  1381. var drugmthdspccd = ds_main_prcp_prcplist.getColumn(i, "drugmthdspccd");
  1382. var drugmthdspccdnm = ds_main_prcp_prcplist.getColumn(i, "drugmthdspccdnm");
  1383. var prcpno = ds_main_prcp_prcplist.getColumn(i, "prcprefseq");
  1384. var prcpcd = ds_main_prcp_prcplist.getColumn(i, "prcpcd");
  1385. var prcpnm = ds_main_prcp_prcplist.getColumn(i, "prcpnm");
  1386. var rtnflag = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(i, "tempcol8")); //반환체크
  1387. var enddd = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(i, "tempcol10"));
  1388. var prcppkspec = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(i, "prcppkspec")).split("|");
  1389. //20091021 khj 간호처방에서 야간(18:00~익일08:00)에 발생하는 처방 중 수가에서 야간 가산을 받을 수 있는 처방의 경우 간호처방 시 가산여부 “Y”로 자동세팅
  1390. if ( ( ( ds_codelist.lookup("cdgrupid", '002', "cdid") == ds_main_cond.getColumn(0, "wardcd") )
  1391. || ( ds_codelist.lookup("cdgrupid", '002', "cdid") != ds_main_cond.getColumn(0, "wardcd")
  1392. && ds_main_prcp_prcplist.getColumn(i, "nigtprcpflag") == "Y") )
  1393. && ds_main_cond.getColumn(0, "prcpdd")== utlf_getCurrentDate()
  1394. && ( utlf_getCurrentTime().substring(0,2)< "08" || utlf_getCurrentTime().substring(0,2)>= "18")
  1395. && ds_main_prcp_prcplist.getColumn(i, "estmcls")== "Y"
  1396. ){
  1397. ds_main_prcp_prcplist.setColumn(i, "nigtprcpflag", "Y"); //야간처방구분
  1398. }else {
  1399. ds_main_prcp_prcplist.setColumn(i, "nigtprcpflag", "N"); //야간처방구분
  1400. }
  1401. //약,주사 처방 중에 용법이 없을 경우 에러리스트
  1402. if("A2" == prcpclscd || "A4" == prcpclscd || "A6" == prcpclscd){
  1403. if(drugmthdspccd == "-" || drugmthdspccdnm == "-" || drugmthdspccdnm == " " || utlf_isNull(drugmthdspccdnm) ) {
  1404. dsf_makeValue(ds_err_errresult_prcperrlist, "prcpno" , "string" , prcpno);
  1405. dsf_makeValue(ds_err_errresult_prcperrlist, "prcpcd" , "string" , prcpcd);
  1406. dsf_makeValue(ds_err_errresult_prcperrlist, "prcpnm" , "string" , prcpnm);
  1407. dsf_makeValue(ds_err_errresult_prcperrlist, "prcperr" , "string" , "용법이 존재하지 않습니다.");
  1408. dsf_makeValue(ds_err_errresult_prcperrlist, "prcplineno", "string" , i);
  1409. dsf_copyDs(ds_err_result,ds_err_errresult_prcperrlist, "after");
  1410. //model.duplicate("/root/err/result","/root/err/errresult/prcperrlist");
  1411. }
  1412. }
  1413. var prcpvol = ds_main_prcp_prcplist.getColumn(i, "prcpvol");
  1414. var prcpqty = ds_main_prcp_prcplist.getColumn(i, "prcpqty");
  1415. //수량이 0보다 적을 경우 에러리스트
  1416. if(prcpvol <= 0 || prcpqty <= 0 ) {
  1417. dsf_makeValue(ds_err_errresult_prcperrlist, "prcpno" , "string" , prcpno);
  1418. dsf_makeValue(ds_err_errresult_prcperrlist, "prcpcd" , "string" , prcpcd);
  1419. dsf_makeValue(ds_err_errresult_prcperrlist, "prcpnm" , "string" , prcpnm);
  1420. dsf_makeValue(ds_err_errresult_prcperrlist, "prcperr" , "string" , "처방 수량을 확인하세요");
  1421. dsf_makeValue(ds_err_errresult_prcperrlist, "prcplineno", "string" , i);
  1422. dsf_copyDs(ds_err_result,ds_err_errresult_prcperrlist, "after");
  1423. //model.duplicate("/root/err/result","/root/err/errresult/prcperrlist");
  1424. }
  1425. //********************************************
  1426. //임상연구 환자체크
  1427. if(ds_main_cond.getColumn(0, "clincstdyflag") == "Y"){
  1428. ds_main_prcp_prcplist.setColumn(i, "clincstdyflag", "Y");
  1429. ds_main_prcp_prcplist.setColumn(i, "clincstdycd", ds_main_patinfocond_patinfo.getColumn(0, "clincstdycd"));
  1430. }
  1431. //*********************************************/
  1432. //마감 이후에 반환일 경우 반환사유 입력 팝업
  1433. //enddd default값 변경으로 수정_20080715
  1434. if(rtnflag == "Y" && enddd.substr(0,8) != '99991231' && !utlf_isNull(enddd) ){
  1435. dsf_makeValue(ds_endinfo_endinforesult_list, "prcpdd" , "string" , prcppkspec[0]);
  1436. dsf_makeValue(ds_endinfo_endinforesult_list, "prcpno" , "string" , prcppkspec[1]);
  1437. dsf_makeValue(ds_endinfo_endinforesult_list, "prcphistno" , "string" , prcppkspec[2]);
  1438. dsf_makeValue(ds_endinfo_endinforesult_list, "execprcpno" , "string" , "");
  1439. dsf_makeValue(ds_endinfo_endinforesult_list, "instcd" , "string" , prcppkspec[3]);
  1440. dsf_makeValue(ds_endinfo_endinforesult_list, "ioflag" , "string" , ioflag);
  1441. dsf_copyDs(ds_endinfo_result,ds_endinfo_endinforesult_list, "after");
  1442. //model.duplicate("/root/endinfo/result","/root/endinfo/endinforesult/list");
  1443. }
  1444. }
  1445. ds_send_reqdata_saveprcpinfo.clearData();
  1446. ds_send_reqdata_saveprcpinfo.copyData(ds_main_prcp_prcplist);;
  1447. if (ds_err_result.rowcount > 0 ) {
  1448. var xpt = system.clientToScreenX(this, this.position.left) + 100;
  1449. var ypt = system.clientToScreenY(this, this.position.top) + 50;
  1450. //var coord = getRelativeCoordinate ( xpt, ypt );
  1451. var mon = sysf_getCurrentMonitorNumber();
  1452. //xpt = coord[1];
  1453. //ypt = coord[2];
  1454. dsf_createDs("ds_temp_err_result");
  1455. ds_temp_err_result.copyData(ds_err_result);
  1456. var objArg = new Object();
  1457. objArg.arg_ds_result_prcperrlist = ds_temp_err_result;
  1458. frmf_open("SPMNW11000", "SPMNW11000", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M");
  1459. //오류목록 생성후 오류난 처방을 붉은 색으로 표시
  1460. //fDestDisplayErrlist("/root/err/result/prcperrlist", "grd_prcpposlist");
  1461. //------------
  1462. //grdf_initGridStyle(group5.grd_prcpposlist);
  1463. //전처방 리스트에서 반납일 경우 텍스트 빨간색
  1464. var sExprColor5 = "EXPR(";
  1465. for (var i = 0; i< ds_err_result.rowcount; i++) {
  1466. var prcplineno = ds_err_result.getColumn(i, "prcplineno");
  1467. for (var j = 0; j< ds_main_prcp_prcplist.rowcount; j++) {
  1468. if (prcplineno == j ) {
  1469. sExprColor5 += "currow == "+j+" ? '#FF0000' : ";
  1470. }
  1471. }
  1472. }
  1473. sExprColor5 += "'')";
  1474. for(var datanum6 = 0; datanum6 <group5.grd_prcpposlist.getCellCount("Body"); datanum6++){
  1475. group5.grd_prcpposlist.setCellProperty("Body", datanum6, "color", sExprColor5);
  1476. }
  1477. //------------
  1478. ds_err_errresult_prcperrlist.clearData();
  1479. ds_err_result.clearData();
  1480. } else {
  1481. //인증데이터 처리
  1482. dsf_setDefaultVal(ds_send_reqdata_saveprcpinfo, "tootfact:-,clinccmtcnts:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-");
  1483. var oParam = {};
  1484. oParam.id = "TRMNW10906";
  1485. oParam.service = "wardorderapp.NursPrcpMngt";
  1486. oParam.method = "reqGetSaveNursPrcpSignData";
  1487. oParam.inds = "saveFlagInfo=ds_send_reqdata_saveflaginfo saveRgstInfo=ds_send_reqdata_savergstinfo savePrcpInfo=ds_send_reqdata_saveprcpinfo";
  1488. oParam.outds = "ds_main_signdata_signprcplist=signprcplist";
  1489. oParam.async = false;
  1490. oParam.callback = "cf_TRMNW10906";
  1491. tranf_submit(oParam);
  1492. if( utlf_isNull(ds_main_signdata_signprcplist.getColumnInfo("dschnotiyn", "string")) ){
  1493. ds_main_signdata_signprcplist.addColumn("dschnotiyn", "string");
  1494. }
  1495. if(arErrorCode.pop("TRMNW10906") > -1){
  1496. //** 간호사퇴원통보가 되어있는 경우 **//
  1497. var dschnotiyn = ds_main_signdata_signprcplist.getColumn(0, "dschnotiyn"); // 간호사퇴원확정여부_20080923(ByJA)
  1498. if(dschnotiyn == "Y"){
  1499. sysf_messageBox( "[" + ds_main_patinfocond_patinfo.getColumn(0, "pid")
  1500. +" " + ds_main_patinfocond_patinfo.getColumn(0, "patnm")
  1501. +"]\n 이미 퇴원통보가 되어 처방을 저장", "E001");
  1502. return;
  1503. }
  1504. //** 간호사퇴원통보가 되어있는 경우 **//
  1505. var signbfcnts = ds_main_signdata_signprcplist.getColumn(0, "signbfcnts");
  1506. var userid = sysf_getUserInfo("userid");
  1507. //운영서버는 인증모듈 타고 그외서버는 인증모듈제외
  1508. var signinfo = "";
  1509. if( utlf_isNull(vsettime) ) { //인증저장한시간.
  1510. signinfo = fMakeSignData(signbfcnts, userid, true); // 항상 인증서 비밀번호 확인 설정(true)_20080909(ByJA)
  1511. } else {
  1512. var res2 = utlf_getTimeInterval(vsettime, utlf_getCurrentTime(), 'hhmmss');
  1513. if(res2 > signtime* 60 || res2 < 0) {
  1514. signinfo = fMakeSignData(signbfcnts, userid, true); // 항상 인증서 비밀번호 확인 설정(true)_20080909(ByJA)
  1515. } else {
  1516. signinfo = fMakeSignData(signbfcnts, userid, false); // 항상 인증서 비밀번호 확인 설정안함(false)_20080909(ByJA)
  1517. }
  1518. }
  1519. // -----------------------(2010.08.18 센터)start--------------------
  1520. if( utlf_isNull(signinfo) || signinfo == "-"){ //인증저장 취소
  1521. return;
  1522. }else{
  1523. //처방반환사유 팝업
  1524. vsetdate = utlf_getCurrentDate();
  1525. vsettime = utlf_getCurrentTime();
  1526. if (ds_endinfo_result.rowcount > 0 ) {
  1527. var objArg = new Object();
  1528. dsf_createDs("ds_temp_endinfo_result");
  1529. ds_temp_endinfo_result.copyData(ds_endinfo_result);
  1530. objArg.arg_ds_endinfo_result_list = ds_temp_endinfo_result;
  1531. var rtObj = frmf_modal("SPPAS03000", "SPPAS03000", objArg ,"","", 100, 100, "","","","","","M");
  1532. ds_endinfo_endinforesult_list.clearData();
  1533. ds_endinfo_result.clearData();
  1534. }
  1535. //** 귀가유치물품 관련 데이터(여부,수량) 입력값 체크_20090206(ByJA) **//
  1536. for(var i=0;i<ds_main_prcp_prcplist.rowcount;i++){
  1537. fChkHomeMatr(i);
  1538. }
  1539. ds_main_signdata_signprcplist.setColumn(0, "signaftcnts", signinfo); //true : 처방저장할 때마다 인증저장 태움
  1540. ds_send_savedata_saveflaginfo.copyData(ds_temp_saveflaginfo);
  1541. ds_send_savedata_savergstinfo.copyData(ds_temp_savergstinfo);
  1542. ds_send_savedata_saveprcpinfo.copyData(ds_main_prcp_prcplist);
  1543. ds_send_savedata_savesigninfo.copyData(ds_main_signdata_signprcplist);
  1544. fSavePrcp(); //처방저장
  1545. }
  1546. }
  1547. }
  1548. }
  1549. /**
  1550. * @desc : 간호처방 SignData 생성
  1551. * @
  1552. * @param : signbfcnts - 인증 전 데이터
  1553. * : signuserid - 인증자ID
  1554. * : signcnfmflag - 인증확인여부
  1555. * @return :
  1556. * @author : 오지훈 2008. 1. 3
  1557. * @---------------------------------------------------
  1558. */
  1559. function fMakeSignData(signbfcnts, userid, signcnfmflag){
  1560. return zesf_SignData(signbfcnts, userid, signcnfmflag); //comm_inf.xjs
  1561. }
  1562. /**
  1563. * @desc : 간호 전처방 조회
  1564. * @
  1565. * @param :
  1566. * @return :
  1567. * @author : 오지훈 2008. 1. 3
  1568. * @---------------------------------------------------
  1569. */
  1570. function fReqBfNursPrcpInfo(){
  1571. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) && !utlf_isNull(ds_main_paminfo.getColumn(0, "pid"))) {
  1572. ds_main_cond.setColumn(0, "pid", "");
  1573. sysf_messageBox("환자를 먼저 지정하십시오!", "C");
  1574. return;
  1575. }
  1576. ds_main_bfprcpinfo_bfcond.setColumn(0, "srchdata",group5.switch1.case_bf.group4.ipt_bfsrchdata.value);
  1577. var ordtype = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  1578. var pid = ds_main_patinfocond_patinfo.getColumn(0, "pid");
  1579. var cretno = ds_main_patinfocond_patinfo.getColumn(0, "cretno");
  1580. var insukind = ds_main_patinfocond_patinfo.getColumn(0, "insukind");
  1581. var prcpfromdd = ds_main_bfprcpinfo_bfcond.getColumn(0, "prcpfromdd");
  1582. var prcptodd = ds_main_bfprcpinfo_bfcond.getColumn(0, "prcptodd");
  1583. var srchflag = ds_main_bfprcpinfo_bfcond.getColumn(0, "srchflag");
  1584. var srchclscd = ds_main_bfprcpinfo_bfcond.getColumn(0, "srchclscd");
  1585. var srchdata = ds_main_bfprcpinfo_bfcond.getColumn(0, "srchdata");
  1586. var srchdayflag = ds_main_bfprcpinfo_bfcond.getColumn(0, "srchdayflag");
  1587. var ordercond = ds_main_bfprcpinfo_bfcond.getColumn(0, "ordercond");
  1588. var ordercond2 = ds_main_bfprcpinfo_bfcond.getColumn(0, "ordercond2");
  1589. //가정간호 여부(가정간호 환자인 경우는 전처방 조회시 원무정보 조건을 걸지 않음)
  1590. var homecareyn = ds_main_cond.getColumn(0, "homecareyn");
  1591. var deptcd = ds_main_cond.getColumn(0, "wardcd");
  1592. if(ordtype == "O" || ordtype == "S"){
  1593. var orddd = ds_main_patinfocond_patinfo.getColumn(0, "orddd");
  1594. }else{
  1595. var orddd = ds_main_patinfocond_patinfo.getColumn(0, "indd");
  1596. }
  1597. ds_send_reqdata.clearData();
  1598. dsf_makeValue(ds_send_reqdata,"pid" , "string" , pid);
  1599. dsf_makeValue(ds_send_reqdata,"orddd" , "string" , orddd);
  1600. dsf_makeValue(ds_send_reqdata,"cretno" , "string" , cretno);
  1601. dsf_makeValue(ds_send_reqdata,"insukind" , "string" , insukind);
  1602. dsf_makeValue(ds_send_reqdata,"prcpfromdd" , "string" , prcpfromdd);
  1603. dsf_makeValue(ds_send_reqdata,"prcptodd" , "string" , prcptodd);
  1604. dsf_makeValue(ds_send_reqdata,"ordtype" , "string" , ordtype);
  1605. dsf_makeValue(ds_send_reqdata,"srchflag" , "string" , srchflag);
  1606. dsf_makeValue(ds_send_reqdata,"srchclscd" , "string" , srchclscd);
  1607. dsf_makeValue(ds_send_reqdata,"srchdata" , "string" , srchdata);
  1608. dsf_makeValue(ds_send_reqdata,"srchdayflag" , "string" , srchdayflag);
  1609. dsf_makeValue(ds_send_reqdata,"homecareyn" , "string" , homecareyn);
  1610. dsf_makeValue(ds_send_reqdata,"ordercond" , "string" , ordercond);
  1611. dsf_makeValue(ds_send_reqdata,"ordercond2" , "string" , ordercond2);
  1612. dsf_makeValue(ds_send_reqdata,"deptcd" , "string" , ds_main_cond.getColumn(0, "wardcd"));
  1613. dsf_makeValue(ds_send_reqdata,"prcpinptflag", "string" , "09"); // 처방입력에 대한 구분종류 ('09':간호처방, '38':간호 미확인 구두처방, , '39':간호 확인 구두처방)
  1614. //grdf_initGridStyle(group5.switch1.case_bf.grd_bfprcplist);
  1615. if( !utlf_isNull(ds_send_reqdata.getColumnInfo("cretno")) ){
  1616. dsf_setTypeFormat(ds_send_reqdata, "cretno:INT");
  1617. }
  1618. var oParam = {};
  1619. oParam.id = "TRMNW10905";
  1620. oParam.service = "wardorderapp.NursPrcpMngt";
  1621. oParam.method = "reqGetPatBfPrcpInfo";
  1622. oParam.inds = "req=ds_send_reqdata";
  1623. oParam.outds = "ds_main_bfprcp_prcplist=prcplist";
  1624. oParam.async = false;
  1625. oParam.callback = "cf_TRMNW10905";
  1626. tranf_submit(oParam);
  1627. dsf_setDefaultVal(ds_main_bfprcp_prcplist, "prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,drugmthdspccd:-,tootfact:-,clinccmtcnts:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-");
  1628. if( utlf_isNull(ds_main_bfprcp_prcplist.getColumnInfo("tempcol8")) ){
  1629. ds_main_bfprcp_prcplist.addColumn("tempcol8", "string");
  1630. }
  1631. if(arErrorCode.pop("TRMNW10905") > -1){
  1632. // 처방일자로 구분선 표시(기준자료에 등록된 부서만)
  1633. if( deptcd == ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid == 'I09' && cdid == '"+deptcd+"'"), "cdid") ){
  1634. var pGrdCnt = ds_main_bfprcp_prcplist.rowcount;
  1635. if (pGrdCnt != 0 ) {
  1636. var rgstdt1 = "";
  1637. var rgstdt2 = "";
  1638. var sExprColor3 = "EXPR(";
  1639. for (var i = 0; i < pGrdCnt -1; i++) {
  1640. rgstdt1 = ds_main_bfprcp_prcplist.getColumn(i, "rgstdt");
  1641. rgstdt2 = ds_main_bfprcp_prcplist.getColumn(i+1, "rgstdt");
  1642. if (utlf_transNullToEmpty(rgstdt1).substring(0,8) == utlf_transNullToEmpty(rgstdt2).substring(0,8)){
  1643. }else{
  1644. if(i != -1){
  1645. sExprColor3 += "currow == "+i+" ? '1 solid #33bbbbff,1 solid #bac5ccff,1 solid #ff0000,1 solid #bac5ccff' : ";
  1646. }
  1647. }
  1648. }
  1649. sExprColor3 += "'1 solid #33bbbbff,1 solid #bac5ccff,1 solid #bac5ccff,1 solid #bac5ccff')";
  1650. for(var datanum3 = 0; datanum3 <group5.switch1.case_bf.grd_bfprcplist.getCellCount("Body"); datanum3++){
  1651. group5.switch1.case_bf.grd_bfprcplist.setCellProperty("Body", datanum3, "line", sExprColor3);
  1652. }
  1653. }
  1654. }
  1655. }
  1656. //전처방 검색 후 검색창 초기화
  1657. ds_main_bfprcpinfo_bfcond.setColumn(0, "srchdata", "");
  1658. group5.switch1.case_bf.group4.ipt_bfsrchdata.setFocus();
  1659. /*
  1660. //전처방 리스트에서 반납일 경우 텍스트 빨간색
  1661. var sExprColor4 = "EXPR(";
  1662. for ( i = 0; i < ds_main_bfprcp_prcplist.rowcount; i++) {
  1663. var prcphistcd = ds_main_bfprcp_prcplist.getColumn(i, "prcphistcd");
  1664. if (prcphistcd == "L" || prcphistcd == "D" ) {
  1665. sExprColor4 += "currow == "+i+" ? '#FF0000' : ";
  1666. }
  1667. }
  1668. sExprColor4 += "'')";
  1669. for(var datanum4 = 0; datanum4 <group5.switch1.case_bf.grd_bfprcplist.getCellCount("Body"); datanum4++){
  1670. group5.switch1.case_bf.grd_bfprcplist.setCellProperty("Body", datanum4, "color", sExprColor4);
  1671. }
  1672. */
  1673. }
  1674. /**
  1675. * @desc : 간호 임시처방 조회
  1676. * @
  1677. * @param :
  1678. * @return :
  1679. * @author : 성미연 2008. 5. 15
  1680. * @---------------------------------------------------
  1681. */
  1682. function fReqTempNursPrcpInfo(){
  1683. ds_main_tempprcpinfo_tempcond.setColumn(0, "srchdata", group5.switch1.case_temp.ipt_tempsrchdata.value);
  1684. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) && !utlf_isNull(ds_main_paminfo.getColumn(0, "pid")) ) {
  1685. ds_main_cond.setColumn(0, "pid", "");
  1686. sysf_messageBox("환자를 먼저 지정하십시오!", "C");
  1687. return;
  1688. }
  1689. if (ds_main_tempprcpinfo_tempcond.getColumn(0, "srchdata").length == 1 ){
  1690. sysf_messageBox("검색어는 2자 이상","C001");
  1691. group5.switch1.case_temp.ipt_tempsrchdata.setFocus();
  1692. return;
  1693. }
  1694. var ordtype = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  1695. var pid = ds_main_patinfocond_patinfo.getColumn(0, "pid");
  1696. var cretno = ds_main_patinfocond_patinfo.getColumn(0, "cretno");
  1697. var insukind = ds_main_patinfocond_patinfo.getColumn(0, "insukind");
  1698. var srchflag = ds_main_tempprcpinfo_tempcond.getColumn(0, "srchflag");
  1699. var srchclscd = ds_main_tempprcpinfo_tempcond.getColumn(0, "srchclscd");
  1700. var srchdata = ds_main_tempprcpinfo_tempcond.getColumn(0, "srchdata");
  1701. if(ordtype == "O" || ordtype == "S"){ //외래환자는 임시처방 발생하지 않음
  1702. return;
  1703. }else{
  1704. var orddd = ds_main_patinfocond_patinfo.getColumn(0, "indd");
  1705. }
  1706. ds_send_reqdata.clearData();
  1707. dsf_makeValue(ds_send_reqdata,"pid" ,"string", pid);
  1708. dsf_makeValue(ds_send_reqdata,"orddd" ,"string", orddd);
  1709. dsf_makeValue(ds_send_reqdata,"cretno" ,"string", cretno);
  1710. dsf_makeValue(ds_send_reqdata,"insukind" ,"string", insukind);
  1711. dsf_makeValue(ds_send_reqdata,"ordtype" ,"string", ordtype);
  1712. dsf_makeValue(ds_send_reqdata,"srchflag" ,"string", srchflag);
  1713. dsf_makeValue(ds_send_reqdata,"srchclscd" ,"string", srchclscd);
  1714. dsf_makeValue(ds_send_reqdata,"srchdata" ,"string", srchdata);
  1715. //grdf_initGridStyle(group5.switch1.case_temp.grd_tempprcplist);
  1716. if( !utlf_isNull(ds_send_reqdata.getColumnInfo("cretno")) ){
  1717. dsf_setTypeFormat(ds_send_reqdata, "cretno:INT");
  1718. }
  1719. var oParam = {};
  1720. oParam.id = "TRMNW10908";
  1721. oParam.service = "wardorderapp.NursPrcpMngt";
  1722. oParam.method = "reqGetPatTempPrcpInfo";
  1723. oParam.inds = "req=ds_send_reqdata";
  1724. oParam.outds = "ds_main_tempprcp_prcplist=prcplist";
  1725. oParam.async = false;
  1726. oParam.callback = "cf_TRMNW10908";
  1727. tranf_submit(oParam);
  1728. dsf_setDefaultVal(ds_main_tempprcp_prcplist, "prcpvol:0,prcpvolunitnm:-,prcpqty:0,prcpqtyunitnm:-,prcptims:0,prcpdayno:0,drugmthdspccdnm:-,drugmthdspccd:-,tootfact:-,clinccmtcnts:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:N,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-");
  1729. dsf_setFixVal(ds_main_tempprcp_prcplist, "flag:N");
  1730. if( utlf_isNull(ds_main_tempprcp_prcplist.getColumnInfo("tempcol8")) ){
  1731. ds_main_tempprcp_prcplist.addColumn("tempcol8", "string");
  1732. }
  1733. if(arErrorCode.pop("TRMNW10908") > -1){
  1734. //임시처방리스트에서 청구주기가 월일 경우 파란색
  1735. var sExprColor = "EXPR(";
  1736. for ( i = 0; i< ds_main_tempprcp_prcplist.rowcount; i++) {
  1737. var tempcol10 = ds_main_tempprcp_prcplist.getColumn(i, "tempcol10");
  1738. if (tempcol10 == "4"){
  1739. sExprColor += "currow == "+i+" ? '#0000ff' : ";
  1740. }
  1741. }
  1742. sExprColor += "'')";
  1743. for(var datanum = 0; datanum <group5.switch1.case_temp.grd_tempprcplist.getCellCount("Body"); datanum++){
  1744. group5.switch1.case_temp.grd_tempprcplist.setCellProperty("Body", datanum, "color", sExprColor);
  1745. }
  1746. }
  1747. //임시처방 검색 후 검색창 초기화
  1748. ds_main_tempprcpinfo_tempcond.setColumn(0, "srchdata", "");
  1749. group5.switch1.case_temp.ipt_tempsrchdata.setFocus();
  1750. }
  1751. /**
  1752. * @desc : 간호처방 기본값 설정
  1753. * @
  1754. * @param : desrow 목적지 노드의 row위치
  1755. * @return :
  1756. * @author : 오지훈 2008. 1. 4
  1757. * @---------------------------------------------------
  1758. */
  1759. function fSetNursPrcpDefault(desrow){
  1760. if(utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("prcpauthflag"))){
  1761. ds_main_prcp_prcplist.addColumn("prcpauthflag", "string");
  1762. }
  1763. if(utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("prcphopedd"))){
  1764. ds_main_prcp_prcplist.addColumn("prcphopedd", "string");
  1765. }
  1766. if(utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("drprcpetc10"))){
  1767. ds_main_prcp_prcplist.addColumn("drprcpetc10", "string");
  1768. }
  1769. if(utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("prcpgenrflag"))){
  1770. ds_main_prcp_prcplist.addColumn("prcpgenrflag", "string");
  1771. }
  1772. if(utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("prcpsignflag"))){
  1773. ds_main_prcp_prcplist.addColumn("prcpsignflag", "string");
  1774. }
  1775. if(utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("prcpstatcd"))){
  1776. ds_main_prcp_prcplist.addColumn("prcpstatcd", "string");
  1777. }
  1778. ds_main_prcp_prcplist.setColumn(desrow, "status" , "I"); //처방상태(신규)
  1779. ds_main_prcp_prcplist.setColumn(desrow, "prcpkindcd" , "20"); //처방분류코드(간호처방은 모두 추가)
  1780. ds_main_prcp_prcplist.setColumn(desrow, "prcpstatcd" , "000"); //처방상태코드
  1781. ds_main_prcp_prcplist.setColumn(desrow, "prcpauthflag" , 2); //처방권한구분, 의사와 공유하지 않음
  1782. ds_main_prcp_prcplist.setColumn(desrow, "prcpinptflag" , "09"); //처방입력구분, 간호:09
  1783. ds_main_prcp_prcplist.setColumn(desrow, "prcphopedd" , ds_main_cond.getColumn(0, "prcpdd")); //처방희망일
  1784. ds_main_prcp_prcplist.setColumn(desrow, "prcpmixno" , 0); //Mix번호
  1785. ds_main_prcp_prcplist.setColumn(desrow, "prnprcpflag" , "N"); //PRN처방구분
  1786. ds_main_prcp_prcplist.setColumn(desrow, "drprcpetc10" , "N"); //대차구분
  1787. ds_main_prcp_prcplist.setColumn(desrow, "drgacptflag" , "-"); //DRG인정
  1788. if ( ds_main_prcp_prcplist.getColumn(desrow, "able_erprcpflag") == "Y" // 응급가산 가능 처방
  1789. && ds_main_paminfo.getColumn(0, "orgordtype") == "E" // 응급실 경유 환자
  1790. && ds_main_paminfo.getColumn(0, "indd") + ds_main_paminfo.getColumn(0, "intm") >= utlf_getNewDate().getAddDate(-1,"D").getDateFormat("YYYYMMDDhhmm") // 내원 24시간 이내 환자 이면
  1791. ) {
  1792. ds_main_prcp_prcplist.setColumn(desrow, "erprcpflag" , "Y"); //응급처방구분
  1793. } else {
  1794. ds_main_prcp_prcplist.setColumn(desrow, "erprcpflag" , "N"); //응급처방구분
  1795. }
  1796. //20091021 khj 간호처방에서 야간(18:00~익일08:00)에 발생하는 처방 중 수가에서 야간 가산을 받을 수 있는 처방의 경우 간호처방 시 가산여부 “Y”로 자동세팅
  1797. if ( ds_codelist.lookup("cdgrupid", '002', "cdid") == ds_main_cond.getColumn(0, "wardcd")
  1798. && ds_main_cond.getColumn(0, "prcpdd")== utlf_getCurrentDate()
  1799. && ( utlf_getCurrentTime().substring(0,2)< "08" || utlf_getCurrentTime().substring(0,2)>= "18")
  1800. && ds_main_prcp_prcplist.getColumn(desrow, "estmcls")== "Y"
  1801. ){
  1802. ds_main_prcp_prcplist.setColumn(desrow, "nigtprcpflag", "Y"); //야간처방구분
  1803. }else {
  1804. ds_main_prcp_prcplist.setColumn(desrow, "nigtprcpflag", "N"); //야간처방구분
  1805. }
  1806. if(ds_main_prcp_prcplist.getColumn(desrow, "estmcls")!= "Y"){
  1807. /*
  1808. var sExprEdittype6 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype").replace("'combo'", "")
  1809. + "currow == "+(desrow)+" ? 'none' : "
  1810. + "'combo'";
  1811. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", sExprEdittype6);
  1812. */
  1813. ds_main_prcp_prcplist.addColumn("tempnpf","string");
  1814. ds_main_prcp_prcplist.setColumn(desrow, "tempnpf", 'none');
  1815. }
  1816. ds_main_prcp_prcplist.setColumn(desrow, "portprcpflag" , "N"); //포터블처방구분
  1817. ds_main_prcp_prcplist.setColumn(desrow, "fixprcpflag" , "N"); //정액처방구분
  1818. ds_main_prcp_prcplist.setColumn(desrow, "choiordflag" , "-"); //원무기준으로 처리하기 위해, '-' 설정
  1819. ds_main_prcp_prcplist.setColumn(desrow, "anamneflag" , "N"); //기왕증구분
  1820. ds_main_prcp_prcplist.setColumn(desrow, "angioflagcd" , "-"); //Angio구분
  1821. dsf_makeValue(ds_main_prcp_prcplist,"homematrflag", "string", "N", desrow); //귀가유치를 위한 물품여부
  1822. dsf_makeValue(ds_main_prcp_prcplist,"homematrqty", "string", "0", desrow); //귀가유치를 위한 물품수량
  1823. if( utlf_isNull(ds_main_prcp_prcplist.getColumn(desrow, "opansflagcd")) ) {
  1824. ds_main_prcp_prcplist.setColumn(desrow, "opansflagcd" , "-"); //수술마취구분
  1825. }
  1826. ds_main_prcp_prcplist.setColumn(desrow, "offictourhealexamflag" , "N"); //출장검진구분
  1827. ds_main_prcp_prcplist.setColumn(desrow, "prcpdayno" , 1); //처방횟수(일자)
  1828. ds_main_prcp_prcplist.setColumn(desrow, "prcpgenrflag" , ds_main_patinfocond_patinfo.getColumn(0, "ordtype"));
  1829. ds_main_prcp_prcplist.setColumn(desrow, "prcpsignflag" , ""); //전처방에서 2로 copy되어 ""로 초기화
  1830. //처방수량단위 설정, 약품일 경우 '3', 그 이외는 '-'로 설정
  1831. var prcpclscd = ds_main_prcp_prcplist.getColumn(desrow, "prcpclscd");
  1832. if(prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6"){
  1833. ds_main_prcp_prcplist.setColumn(desrow, "prcpqtyunitflag" , "3");
  1834. }else{
  1835. ds_main_prcp_prcplist.setColumn(desrow, "prcpqtyunitflag" , "-");
  1836. }
  1837. //가정간호 환자인 경우 처방적용일에 방문일자 셋팅
  1838. if( ds_main_cond.getColumn(0, "homecareyn") == "Y") {
  1839. ds_main_prcp_prcplist.setColumn(desrow, "prcpdelivefact" , ds_main_cond.getColumn(0, "visitdd")); //방문일자
  1840. }else{
  1841. ds_main_prcp_prcplist.setColumn(desrow, "prcpdelivefact" , ds_main_cond.getColumn(0, "prcpdd")); //적용일자
  1842. }
  1843. dsf_makeValue(ds_main_prcp_prcplist,"fstrgstrnm" , "string", "" , desrow);
  1844. dsf_makeValue(ds_main_prcp_prcplist,"resncnts" , "string", "" , desrow);
  1845. dsf_makeValue(ds_main_prcp_prcplist,"confirmdrnm" , "string", "" , desrow);
  1846. dsf_makeValue(ds_main_prcp_prcplist,"confirmdt" , "string", "" , desrow);
  1847. }
  1848. /**
  1849. * @desc : 간호처방 저장
  1850. * @
  1851. * @param :
  1852. * @return :
  1853. * @author : 오지훈 2008. 1. 4
  1854. * @---------------------------------------------------
  1855. */
  1856. function fSavePrcp(){
  1857. var oParam = {};
  1858. oParam.id = "TXMNW10901";
  1859. oParam.service = "wardorderapp.NursPrcpMngt";
  1860. oParam.method = "reqExeSaveNursPrcp";
  1861. oParam.inds = "saveFlagInfo=ds_send_savedata_saveflaginfo saveRgstInfo=ds_send_savedata_savergstinfo savePrcpInfo=ds_send_savedata_saveprcpinfo saveSignInfo=ds_send_savedata_savesigninfo";
  1862. oParam.outds = "ds_temp_result_prcperrlist=prcperrlist";
  1863. oParam.async = false;
  1864. oParam.callback = "cf_TXMNW10901";
  1865. tranf_submit(oParam);
  1866. dsf_setDefaultVal(ds_send_savedata_saveprcpinfo, "hosinhosoutflag:-,tempprcpflag:N,prcpsetcd:-,prcpvolunitflag:-,prcpqtyunitflag:-,powdflag:N,selfprcpflag:N,selfdrugflag:N,drugpackflag:N,erprcpflag:N,precureprcpflag:N,nigtprcpflag:N,portprcpflag:N,fixprcpflag:N,fastprcpflag:N,erreadflag:N,prcpdirecflag:-,tnsuseflag:N,tnsfiltflag:N,trnptbftestflag:N,offictourhealexamflag:N,stemcellflag:00NNN,angioflagcd:-,opansflagcd:-,ansttm:0000,mealcalrcnts:0,mealprotcnts:0,mealupdtflag:0,hosinprcpresncd:00,etcprcpresncd:-,drugmthdspccd:-,issdeptcd:-,prcpauthflag:0,prcpinptflag:00,ordreqlnkno:0,testreqlnkno:0,tootfact:-,clinccmtcnts:-,hsctdelivepos:0,hsctlnkno:0,etcprcpflag:-,rehbprcpcurefreqflag:0,dietprcpgenrflag:-,irpayflag:N,irflag:N,procerdietflag:0,diagtestconttestintvlflag:N,drugindependpackflag:N,diagtestconttestbasetm:0,diagtestconttestorgtims:0,ermediscmngtresncd:-,rehbprcpenddd:-,matrallsizespecid:-,rehbprcpcurepartcd:-,lowdrugresncd:N,tfdtlcd:-,dnorreqlnkno:0,subcretno:0,exptmthdfact:-,lowdrugresnetcfact:-,diagtestconttestcdspec:-,drgacptflag:-");
  1867. if( !utlf_isNull(ds_send_savedata_saveprcpinfo.getColumnInfo("homematrqty")) ){
  1868. dsf_setTypeFormat(ds_send_savedata_saveprcpinfo, "homematrqty:INT");
  1869. }
  1870. if(arErrorCode.pop("TXMNW10901") > -1){
  1871. //오류팝업
  1872. var prcpErrList = ds_temp_result_prcperrlist.rowcount;
  1873. if ( prcpErrList > 0 ) {
  1874. if ( !utlf_isNull(ds_temp_result_prcperrlist.getColumn(0, "prcpcd"))){
  1875. var xpt = system.clientToScreenX(this, this.position.left) + 100;
  1876. var ypt = system.clientToScreenY(this, this.position.top) + 50;
  1877. //var coord = getRelativeCoordinate ( xpt, ypt );
  1878. var mon = sysf_getCurrentMonitorNumber();
  1879. //xpt = coord[1];
  1880. //ypt = coord[2];
  1881. dsf_createDs("ds_arg_temp_result_prcperrlist");
  1882. ds_arg_temp_result_prcperrlist.copyData(ds_temp_result_prcperrlist);
  1883. var objArg = new Object();
  1884. objArg.arg_ds_result_prcperrlist = ds_arg_temp_result_prcperrlist;
  1885. frmf_open("SPMMO00600", "SPMMO00600", objArg, false, mon, xpt, ypt, null, null, null, null, null, "M");
  1886. ds_temp_result_prcperrlist.clearData();
  1887. }
  1888. } else {
  1889. //전처방 화면으로 변경
  1890. group5.switch1.tabindex = 2;
  1891. fprcpsetzoomToggle(false);
  1892. fbfzoomToggle(false);
  1893. //처방 저장 후 전처방 조회시 저장된 처방이 보이도록 스크롤을 가장 위로 함
  1894. group5.switch1.case_bf.grd_bfprcplist.vscrollbar.pos = 0;
  1895. ds_main_prcp_prcplist.clearData();
  1896. /*
  1897. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype", "expr:'checkbox'");
  1898. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground", "EXPR('')");
  1899. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", "expr:'combo'");
  1900. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","precureprcpflag"), "edittype", "combo");
  1901. */
  1902. ds_main_insumsginfo_insuinfo.setColumn(0, "limmsg", "");
  1903. fReqBfNursPrcpInfo(); // 전처방 조회
  1904. fReqTempNursPrcpInfo(); // 임시처방 조회
  1905. if(frmf_getMenuParam() == "SMMNH" || opener.frmf_getParameter("screenParam") == "SMMNH"){
  1906. fSearchHomePatInfo(); // 방문일자 조회_20090330(ByJA)
  1907. }
  1908. }
  1909. }
  1910. }
  1911. /**
  1912. * @desc : 처방저장 오류내역표시
  1913. * @
  1914. * @param :
  1915. * @return :
  1916. * @author : 성미연 2008. 2. 23
  1917. * @---------------------------------------------------
  1918. */
  1919. function fDestDisplayErrlist(errListPath, gridID ){
  1920. var gridObj = document.controls.item(gridID);
  1921. gridObj.rebuildStyle();
  1922. //전처방 리스트에서 반납일 경우 텍스트 빨간색
  1923. for (var i = 1; i<= getNodesetCount(errListPath); i++) {
  1924. var prcplineno = model.getValue(errListPath + "[" + i + "]/prcplineno");
  1925. for (var j = 1; j< gridObj.rows; j++) {
  1926. if (prcplineno == j ) {
  1927. gridObj.rowStyle(j, "data", "color") = "#FF0000";
  1928. }
  1929. }
  1930. }
  1931. }
  1932. /**
  1933. * @desc : 처방 SET 그리드 클릭시
  1934. * @
  1935. * @param :
  1936. * @return :
  1937. * @author : 성미연 2008. 1. 9
  1938. * @---------------------------------------------------
  1939. */
  1940. function fClickSetPrcp(mthdflag){
  1941. ds_main_prcp_prcplist.updatecontrol = false;
  1942. ds_main_prcp_prcplist.enableevent = false;
  1943. if(utlf_isNull(mthdflag)) mthdflag == "dblclick"; //복사 버튼은 btnclick
  1944. if ( (ds_main_prcpset_prcplist.rowposition < 0) && mthdflag != "btnclick" ) {
  1945. return;
  1946. }
  1947. if (ds_main_prcpset_prcplist.rowposition > -1 ){
  1948. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  1949. sysf_messageBox("해당 환자를", "C002");
  1950. return;
  1951. }
  1952. if (group5.grp_prcpapp.visible == true){
  1953. sysf_messageBox("처방적용일을 확인 후 진행하세요.", "C");
  1954. return;
  1955. }
  1956. if (ds_main_cond.getColumn(0, "homecareyn") == "Y" && utlf_isNull(ds_main_cond.getColumn(0, "visitdd")) ) {
  1957. // 방문일자를 선택하지 않은 경우 안내 메시지와 함께 방문일자가 처방당일로 자동 설정 되도록 요청에 의해 수정_김숙인ITC요청_20081215수정(ByJA)
  1958. var rtnval = sysf_messageBox("방문일을 선택하지 않으셨습니다. 방문일을 처방일과 동일하게 계속 진행하시겠습니까?", "S"); // return : yes=6, no=7
  1959. if(rtnval == "6"){ // yes
  1960. dsf_makeValue(ds_main_cond,"visitdd", "string" , ds_main_cond.getColumn(0, "prcpdd"));
  1961. }else{
  1962. return;
  1963. }
  1964. }
  1965. //ALL SIZE 처방 처리
  1966. if(ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "prcpclscd") == "M2"
  1967. && ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "matrallsizespecid") == "ALL") {
  1968. var grupsnglflag = ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "grupsnglflag");
  1969. var calcscormastspec = utlf_transNullToEmpty(ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "calcscormastspec")).split("|");
  1970. var matrsizeflag = calcscormastspec[2];
  1971. var matrallsizespecid = ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "matrallsizespecid");
  1972. //var xpt = window.screenleft + 100;
  1973. //var ypt = window.screenTop + 50;
  1974. //var coord = getRelativeCoordinate ( xpt, ypt );
  1975. //var mon = coord[0];
  1976. //xpt = coord[1];
  1977. //ypt = coord[2];
  1978. frmf_setParameter("scrnflag", "nursprcp");
  1979. frmf_setParameter("grupsnglflag", 'S');
  1980. frmf_setParameter("calcscorcd", calcscormastspec[3]);
  1981. frmf_setParameter("matrallsizespecid", matrallsizespecid);
  1982. frmf_setParameter("currow", ds_main_prcpset_prcplist.rowposition);
  1983. frmf_setParameter("targetpath", "ds_main_prcp_prcplist");
  1984. frmf_modal("SPMNW11500","SPMNW11500","", "", "", "", "", "", "", "", "", "", "M");
  1985. //modal("SPMNW11500", mon, xpt, ypt);
  1986. }else{
  1987. mnwAddNursPrcp(ds_main_prcpset_prcplist, "ds_main_prcp_prcplist", ds_main_prcpset_prcplist.rowposition, "");
  1988. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  1989. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  1990. }
  1991. fSetNursPrcpDefault(ds_main_prcp_prcplist.rowcount - 1);
  1992. ds_main_prcp_prcplist.setColumn(ds_main_prcp_prcplist.rowcount-1, "status", "I"); //처방상태 : 신규
  1993. }
  1994. // 16.10.10_심사팀 요청에 의한 추가
  1995. var sprcpcd = ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "prcpcd");
  1996. dsf_createDs("ds_send_reqdata1");
  1997. dsf_makeValue(ds_send_reqdata1,"prcpcd","string", sprcpcd);
  1998. //부서콤보 조회
  1999. var oParam = {};
  2000. oParam.id = "TRMNW10923";
  2001. oParam.service = "wardorderapp.NursPrcpMngt";
  2002. oParam.method = "reqGetInsulInfo";
  2003. oParam.inds = "req=ds_send_reqdata1";
  2004. oParam.outds = "ds_temp_insulinfo_insulinfo=insulinfo";
  2005. oParam.async = false;
  2006. tranf_submit(oParam);
  2007. ds_temp_insulinfo_insulinfo.addColumn("insulinfo", "string");
  2008. if (ds_temp_insulinfo_insulinfo.getColumn(0, "insulinfo") == "Y") {
  2009. sysf_messageBox("선별급여 품목이오니 보험기준 확인 후 저장바랍니다.", "E999");
  2010. }
  2011. /*
  2012. // 16.09.27_심사팀 요청에 의한 추가_AYS
  2013. ds_main_prcpset_prcplist.addColumn("insulinfoyn", "string");
  2014. if( ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "insulinfoyn") == "Y" ){
  2015. sysf_messageBox("선별급여 품목이오니 보험기준 확인 후 저장바랍니다.", "E999");
  2016. }
  2017. */
  2018. fSetPrcpInfo()
  2019. //신규처방은 반환컬럼 disable
  2020. //expr:
  2021. //currow == 1 ? 'none' :
  2022. //'checkbox'
  2023. /*
  2024. var sExprEdittype = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype").replace("'checkbox'", "")
  2025. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  2026. + "'checkbox'";
  2027. var controlbg = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground").replace("'')", "");
  2028. controlbg += "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'silver' : ";
  2029. controlbg += "'')";
  2030. */
  2031. ds_main_prcp_prcplist.addColumn("tempet","string");
  2032. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempet", 'none');
  2033. //group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype" , sExprEdittype);
  2034. ds_main_prcp_prcplist.addColumn("tempcbg","string");
  2035. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempcbg", 'silver');
  2036. //group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground" , controlbg);
  2037. if(ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowcount-1, "estmcls")!= "Y"){
  2038. /*
  2039. var sExprEdittype4 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype").replace("'combo'", "")
  2040. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  2041. + "'combo'";
  2042. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", sExprEdittype4);
  2043. */
  2044. ds_main_prcp_prcplist.addColumn("tempnpf","string");
  2045. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempnpf", 'none');
  2046. }
  2047. //수가 보험정보 조회
  2048. var calcscormastspec = utlf_transNullToEmpty(ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "calcscormastspec"));
  2049. var calcscorcd = calcscormastspec.split("|");
  2050. fInsuMsgInfoRef(calcscorcd[3]);
  2051. }
  2052. ds_main_prcp_prcplist.enableevent = true;
  2053. ds_main_prcp_prcplist.updatecontrol = true;
  2054. }
  2055. /**
  2056. * @desc : 전처방 그리드 클릭시
  2057. * @
  2058. * @param :
  2059. * @return :
  2060. * @author : 성미연 2008. 1. 9
  2061. * @---------------------------------------------------
  2062. */
  2063. function fClickBfPrcp(mthdflag){
  2064. ds_main_prcp_prcplist.updatecontrol = false;
  2065. ds_main_prcp_prcplist.enableevent = false;
  2066. if(utlf_isNull(mthdflag)) mthdflag = "dblclick"; //복사 버튼은 btnclick
  2067. if ( group5.switch1.case_bf.grd_bfprcplist.currentrow < 0 && group5.switch1.case_bf.grd_bfprcplist.currentcol < 0 && mthdflag != "btnclick" ) {
  2068. return;
  2069. }
  2070. if (ds_main_bfprcp_prcplist.rowposition > -1 ){
  2071. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  2072. sysf_messageBox("해당 환자를", "C002");
  2073. return;
  2074. }
  2075. if (group5.grp_prcpapp.visible == true){
  2076. sysf_messageBox("처방적용일을 확인 후 진행하세요.", "C");
  2077. return;
  2078. }
  2079. var prcphistcd = ds_main_bfprcp_prcplist.getColumn(ds_main_bfprcp_prcplist.rowposition, "prcphistcd");
  2080. var flag = ds_main_bfprcp_prcplist.getColumn(ds_main_bfprcp_prcplist.rowposition, "flag");
  2081. var prcpcd = ds_main_bfprcp_prcplist.getColumn(ds_main_bfprcp_prcplist.rowposition, "prcpcd");
  2082. if(flag == "N") {
  2083. sysf_messageBox("[" + prcpcd + "]처방은 수가가 종료되어 반환만 가능합니다.", "E");
  2084. }
  2085. if (prcphistcd == "L" || prcphistcd == "D" ) {
  2086. return;
  2087. }else{
  2088. //가정간호
  2089. if (ds_main_cond.getColumn(0, "homecareyn") == "Y"){
  2090. if ( utlf_isNull(ds_main_cond.getColumn(0, "visitdd")) ){
  2091. var rtnval = sysf_messageBox("방문일을 선택하지 않으셨습니다. 방문일을 처방일과 동일하게 계속 진행하시겠습니까?", "S"); // return : yes=6, no=7
  2092. if(rtnval == "6"){ // yes
  2093. dsf_makeValue(ds_main_cond,"visitdd","string",ds_main_cond.getColumn(0, "prcpdd"));
  2094. }else{
  2095. return;
  2096. }
  2097. /* 원본_20090122
  2098. messageBox("방문일자를", "C002");
  2099. return;
  2100. */
  2101. }
  2102. //방문일자와 다른 방문일의 처방 클릭시 blocking
  2103. if (ds_main_cond.getColumn(0, "visitdd") != ds_main_bfprcp_prcplist.getColumn(ds_main_bfprcp_prcplist.rowposition, "prcpdelivefact")){
  2104. sysf_messageBox("방문일이 동일한 처방에 대해서만 일괄 저장이 가능합니다.", "C");
  2105. return;
  2106. }
  2107. }
  2108. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol6")) ){
  2109. ds_main_prcp_prcplist.addColumn("tempcol6", "string");
  2110. }
  2111. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  2112. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  2113. }
  2114. mnwAddNursPrcp(ds_main_bfprcp_prcplist, "ds_main_prcp_prcplist", ds_main_bfprcp_prcplist.rowposition, "");
  2115. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  2116. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  2117. }
  2118. fSetNursPrcpDefault(ds_main_prcp_prcplist.rowcount - 1);
  2119. ds_main_prcp_prcplist.setColumn(ds_main_prcp_prcplist.rowcount-1, "status", "B"); //처방상태[전]
  2120. //추가..
  2121. ds_main_prcp_prcplist.addColumn("tempet","string");
  2122. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempet", 'checkbox');
  2123. }
  2124. fSetPrcpInfo();
  2125. if(ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowcount-1, "estmcls")!= "Y"){
  2126. /*
  2127. var sExprEdittype1 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype").replace("'combo'", "")
  2128. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  2129. + "'combo'";
  2130. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", sExprEdittype1);
  2131. */
  2132. ds_main_prcp_prcplist.addColumn("tempnpf","string");
  2133. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempnpf", 'none');
  2134. }
  2135. //수가 보험정보 조회
  2136. var calcscormastspec = utlf_transNullToEmpty(ds_main_bfprcp_prcplist.getColumn(ds_main_bfprcp_prcplist.rowposition, "calcscormastspec"));
  2137. var calcscorcd = calcscormastspec.split("|");
  2138. fInsuMsgInfoRef(calcscorcd[3]);
  2139. }
  2140. ds_main_prcp_prcplist.updatecontrol = true;
  2141. ds_main_prcp_prcplist.enableevent = true;
  2142. }
  2143. /**
  2144. * @desc : 임시처방 그리드 클릭시
  2145. * @
  2146. * @param :
  2147. * @return :
  2148. * @author : 성미연 2008. 1. 9
  2149. * @---------------------------------------------------
  2150. */
  2151. function fClickTempPrcp(){
  2152. if (ds_main_tempprcp_prcplist.rowposition > -1 ){
  2153. ds_main_prcp_prcplist.updatecontrol = false;
  2154. ds_main_prcp_prcplist.enableevent = false;
  2155. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  2156. sysf_messageBox("해당 환자를", "C002");
  2157. return;
  2158. }
  2159. if (group5.grp_prcpapp.visible == true){
  2160. sysf_messageBox("처방적용일을 확인 후 진행하세요.", "C");
  2161. return;
  2162. }
  2163. if (ds_main_cond.getColumn(0, "homecareyn") == "Y" && utlf_isNull(ds_main_cond.getColumn(0, "visitdd")) ) {
  2164. sysf_messageBox("방문일자를", "C002");
  2165. return;
  2166. }
  2167. if (ds_main_prcp_prcplist.findRow("tempcol21",ds_main_tempprcp_prcplist.getColumn(ds_main_tempprcp_prcplist.rowposition, "tempcol21")) != -1) { //없으면 -1, 있으면 해당 row 리턴
  2168. sysf_messageBox("처방이", "E006");
  2169. return;
  2170. }
  2171. var prcpclscd = ds_main_tempprcp_prcplist.getColumn(ds_main_tempprcp_prcplist.rowposition, "prcpclscd");
  2172. var grupsnglflag = ds_main_tempprcp_prcplist.getColumn(ds_main_tempprcp_prcplist.rowposition, "grupsnglflag");
  2173. var calcscormastspec = utlf_transNullToEmpty(ds_main_tempprcp_prcplist.getColumn(ds_main_tempprcp_prcplist.rowposition, "calcscormastspec")).split("|");
  2174. var matrsizeflag = calcscormastspec[2];
  2175. var matrallsizespecid = ds_main_tempprcp_prcplist.getColumn(ds_main_tempprcp_prcplist.rowposition, "matrallsizespecid"); //""
  2176. //ALL SIZE 처방 처리(임시처방에서 처방발행시 활동진술문 중 규격이 매핑되어 있지 않은 경우)
  2177. if(prcpclscd == "M2" && grupsnglflag == "S" && matrsizeflag == "Y" && ( utlf_isNull(matrallsizespecid) || matrallsizespecid == "-")){
  2178. //var xpt = window.screenleft + 100;
  2179. //var ypt = window.screenTop + 50;
  2180. //var coord = getRelativeCoordinate ( xpt, ypt );
  2181. //var mon = coord[0];
  2182. //xpt = coord[1];
  2183. //ypt = coord[2];
  2184. frmf_setParameter("scrnflag", "tempprcp");
  2185. frmf_setParameter("grupsnglflag", 'S');
  2186. frmf_setParameter("calcscorcd", calcscormastspec[3]);
  2187. frmf_setParameter("matrallsizespecid", matrallsizespecid);
  2188. frmf_setParameter("currow", ds_main_tempprcp_prcplist.rowposition);
  2189. frmf_setParameter("targetpath", "ds_main_prcp_prcplist");
  2190. frmf_modal("SPMNW11500","SPMNW11500","", "", "", "", "", "", "", "", "", "", "M");
  2191. //modal("SPMNW11500", mon, xpt, ypt);
  2192. }else{
  2193. //처방 main grid로 임시처방 copy
  2194. mnwAddNursPrcp(ds_main_tempprcp_prcplist, "ds_main_prcp_prcplist", ds_main_tempprcp_prcplist.rowposition, "");
  2195. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  2196. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  2197. }
  2198. fSetNursPrcpDefault(ds_main_prcp_prcplist.rowcount - 1);
  2199. ds_main_prcp_prcplist.setColumn(ds_main_prcp_prcplist.rowcount-1, "status", "T"); //처방상태[임]
  2200. }
  2201. fSetPrcpInfo();
  2202. //임시처방은 반환컬럼 disable
  2203. /*
  2204. var sExprEdittype2 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype").replace("'checkbox'", "")
  2205. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  2206. + "'checkbox'";
  2207. var controlbg = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground").replace("'')", "");
  2208. controlbg += "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'silver' : ";
  2209. controlbg += "'')";
  2210. */
  2211. //group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "edittype", sExprEdittype2);
  2212. ds_main_prcp_prcplist.addColumn("tempet","string");
  2213. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempet", 'none');
  2214. ds_main_prcp_prcplist.addColumn("tempcbg","string");
  2215. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempcbg", 'silver');
  2216. //group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","tempcol8"), "controlbackground" , controlbg);
  2217. if(ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowcount-1, "estmcls")!= "Y"){
  2218. /*
  2219. var sExprEdittype7 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype").replace("'combo'", "")
  2220. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  2221. + "'combo'";
  2222. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", sExprEdittype7);
  2223. */
  2224. ds_main_prcp_prcplist.addColumn("tempnpf","string");
  2225. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempnpf", 'none');
  2226. }
  2227. //수가 보험정보 조회
  2228. var calcscormastspec = utlf_transNullToEmpty(ds_main_tempprcp_prcplist.getColumn(ds_main_tempprcp_prcplist.rowposition, "calcscormastspec"));
  2229. var calcscorcd = calcscormastspec.split("|");
  2230. fInsuMsgInfoRef(calcscorcd[3]);
  2231. ds_main_prcp_prcplist.updatecontrol = true;
  2232. ds_main_prcp_prcplist.enableevent = true;
  2233. }
  2234. }
  2235. /**
  2236. * @desc : 처방저장 그리드 저장 이전 셋팅
  2237. * @
  2238. * @param :
  2239. * @return :
  2240. * @author : 성미연 2008. 1. 9
  2241. * @---------------------------------------------------
  2242. */
  2243. function fSetPrcpInfo(refYN){
  2244. //KNUH, 처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능을 위해 refYN 인자 추가 (2011.02.16 JJE)
  2245. if( utlf_isNull(refYN) ) refYN = "Y";
  2246. //환자상태가 병동, 응급의료센터일 경우 선처치 비활성화
  2247. var ordtype = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  2248. if (ordtype == 'I' || ordtype == 'E') {
  2249. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","precureprcpflag") , "edittype", 'none');
  2250. } else {
  2251. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","precureprcpflag") , "edittype", 'combo');
  2252. }
  2253. //KNUH, 처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능을 위해 refYN 값에 따라 refresh 처리 분기 (2011.02.16 JJE)
  2254. //if(refYN == "Y") grd_prcpposlist.refresh();
  2255. }
  2256. /**
  2257. * @desc : 처방저장 그리드에서 반환컬럼 클릭시(물품 팝업, 수량, 총용량 변경)
  2258. * @
  2259. * @param :
  2260. * @return :
  2261. * @author : 성미연 2008. 1. 9
  2262. * @---------------------------------------------------
  2263. */
  2264. function fClickRtn() {
  2265. }
  2266. /**
  2267. * @desc : 귀가유치물품 관련 데이터(여부,수량) 입력값 체크
  2268. * @
  2269. * @param : iRow-체크대상 행번호
  2270. * @return :
  2271. * @author : 김진아 2009.02.06
  2272. * @---------------------------------------------------
  2273. */
  2274. function fChkHomeMatr(iRow){
  2275. var ordtype = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  2276. var prcpclscd = ds_main_prcp_prcplist.getColumn(iRow, "prcpclscd");
  2277. var homematrflag = ds_main_prcp_prcplist.getColumn(iRow, "homematrflag");
  2278. var homematrqty = ds_main_prcp_prcplist.getColumn(iRow, "homematrqty");
  2279. var prcpqty = ds_main_prcp_prcplist.getColumn(iRow, "prcpqty");
  2280. if( (ds_main_prcp_prcplist.getColumn(iRow, "homematrflag")=="Y")
  2281. ||(ds_main_prcp_prcplist.getColumn(iRow, "homematrqty") !="0")){
  2282. if(ordtype!="O"){
  2283. sysf_messageBox("귀가유치물품을 지정할 수 없는 환자입니다.", "I", "(외래환자만 지정가능)");
  2284. dsf_makeValue(ds_main_prcp_prcplist,"homematrflag","string", "N", iRow);
  2285. dsf_makeValue(ds_main_prcp_prcplist,"homematrqty","string", "0", iRow);
  2286. return ;
  2287. } else if(prcpclscd!="M2"){
  2288. sysf_messageBox("귀가유치물품을 지정할 수 없는 처방입니다.", "I", "(재료처방만 지정가능)");
  2289. dsf_makeValue(ds_main_prcp_prcplist,"homematrflag","string", "N", iRow);
  2290. dsf_makeValue(ds_main_prcp_prcplist,"homematrqty","string", "0", iRow);
  2291. return ;
  2292. } else if(Number(prcpqty) < Number(homematrqty)){
  2293. sysf_messageBox("처방수량보다 귀가유치물품수량이 더 많을 수 없습니다.", "I", "처방수량 확인 후 다시 지정하십시오.");
  2294. dsf_makeValue(ds_main_prcp_prcplist,"homematrqty","string", "0", iRow);
  2295. return ;
  2296. }
  2297. }
  2298. }
  2299. /**
  2300. * @desc : 용량, 수량, 횟수를 수정했을 때 값계산
  2301. * @
  2302. * @param : flag : 용량, 수량, 횟수 변경 구분
  2303. curRow : 수정할 현재 row
  2304. * @return : void
  2305. * @author : 마정민 2007. 4. 30
  2306. * 소스카피 by cha
  2307. * @---------------------------------------------------
  2308. */
  2309. /*
  2310. function DrugCalc ( flag, curRow ) {
  2311. var PrcpVol = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol" );
  2312. if ( isNull(PrcpVol) || PrcpVol == 0 ) {
  2313. PrcpVol = "1";
  2314. }
  2315. var PrcpQty = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty" );
  2316. if ( isNull(PrcpQty) || PrcpQty == 0 ){
  2317. PrcpQty = "1";
  2318. }
  2319. var bfPrcpVol = model.getValue ( "/root/drugcalc/prcpvol" );
  2320. if ( isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  2321. bfPrcpVol = "1";
  2322. }
  2323. var bfPrcpQty = model.getValue ( "/root/drugcalc/prcpqty" );
  2324. if ( isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  2325. bfPrcpQty = "1";
  2326. }
  2327. var calcPrcpVol = 0;
  2328. var calcPrcpQty = 0;
  2329. // if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  2330. // calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  2331. // calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2332. // model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2333. //
  2334. // } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  2335. // calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  2336. // calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2337. // model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2338. // }20100514 khj
  2339. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  2340. var baseQty = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 31 , "^", "|" );
  2341. var baseVol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 32 , "^", "|" );
  2342. if (model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" ).substring ( 0, 1 ) == "A" && !isNull(baseQty) && !isNull(baseVol)) {
  2343. var baseQty = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 31 , "^", "|" );
  2344. var baseVol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 32 , "^", "|" );
  2345. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  2346. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  2347. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2348. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2349. } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  2350. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  2351. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  2352. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2353. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2354. }
  2355. } else {
  2356. if ( flag == "prcpvol" ) { // 용량을 수정했을 때: 수량 자동계산
  2357. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  2358. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2359. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  2360. } else if ( flag == "prcpqty" ) { // 수량을 수정했을 때: 용량 자동계산
  2361. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  2362. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2363. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  2364. }
  2365. }
  2366. }
  2367. */
  2368. function DrugCalc ( flag, curRow ) {
  2369. var PrcpVol = ds_main_prcp_prcplist.getColumn(curRow, "prcpvol");
  2370. if ( utlf_isNull(PrcpVol) || PrcpVol == 0 ) {
  2371. PrcpVol = "1";
  2372. }
  2373. var PrcpQty = ds_main_prcp_prcplist.getColumn(curRow, "prcpqty");
  2374. if ( utlf_isNull(PrcpQty) || PrcpQty == 0 ){
  2375. PrcpQty = "1";
  2376. }
  2377. var PrcpTims = ds_main_prcp_prcplist.getColumn(curRow, "prcptims");
  2378. if ( utlf_isNull(PrcpTims) || PrcpTims == 0 ) {
  2379. PrcpTims = "1";
  2380. }
  2381. var drprcpetc7 = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc7"));
  2382. var drprcpetc7_2 = ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc7");
  2383. if ( utlf_isNull(drprcpetc7) || drprcpetc7 == 0 || drprcpetc7 == "-") {
  2384. drprcpetc7 = "1";
  2385. }
  2386. var drprcpetc8 = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc8"));
  2387. var drprcpetc8_2 = ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc8");
  2388. if ( utlf_isNull(drprcpetc8) || drprcpetc8 == 0 || drprcpetc8 == "-") {
  2389. drprcpetc8 = "1";
  2390. }
  2391. var bfPrcpVol = ds_drugcalc.getColumn(0, "prcpvol");
  2392. if ( utlf_isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  2393. bfPrcpVol = "1";
  2394. }
  2395. var bfPrcpQty = ds_drugcalc.getColumn(0, "prcpqty");
  2396. if ( utlf_isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  2397. bfPrcpQty = "1";
  2398. }
  2399. var bfprcpTims = ds_drugcalc.getColumn(0, "prcptims");
  2400. if ( utlf_isNull(bfprcpTims) || bfprcpTims == 0 ) {
  2401. bfprcpTims = "1";
  2402. }
  2403. var bfdrprcpetc7 = ds_drugcalc.getColumn(0, "drprcpetc7");
  2404. if ( utlf_isNull(bfdrprcpetc7) || bfdrprcpetc7 == 0 ) {
  2405. bfdrprcpetc7 = "1";
  2406. }
  2407. var bfdrprcpetc8 = ds_drugcalc.getColumn(0, "drprcpetc8");
  2408. if ( utlf_isNull(bfdrprcpetc8) || bfdrprcpetc8 == 0 ) {
  2409. bfdrprcpetc8 = "1";
  2410. }
  2411. var calcPrcpVol = 0;
  2412. var calcPrcpQty = 0;
  2413. var calcPrcpTimeVol = 0;
  2414. var calcPrcpTimeQty = 0;
  2415. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  2416. var baseQty = lf_getArrayData ( ds_main_prcp_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 31 , "^", "|" );
  2417. var baseVol = lf_getArrayData ( ds_main_prcp_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 32 , "^", "|" );
  2418. var drugcntsvol = getArrayData ( ds_main_prcp_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 1 , "^", "|" );
  2419. var drugstndvol = getArrayData ( ds_main_prcp_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 3 , "^", "|" );
  2420. var drugpackvol = getArrayData ( ds_main_prcp_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 5 , "^", "|" );
  2421. var drugbasevol = getArrayData ( ds_main_prcp_prcplist.getColumn(curRow, "drugmastspec") + "^", 0, 7 , "^", "|" );
  2422. var baseTimeVol = drugcntsvol * drugbasevol / drugpackvol;
  2423. var baseTimeQty = drugbasevol;
  2424. if (utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "prcpclscd")).substring ( 0, 1 ) == "A" && !utlf_isNull(baseQty) && !utlf_isNull(baseVol)) {
  2425. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  2426. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  2427. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2428. calcPrcpTimeQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeQty)*1000;
  2429. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2430. calcPrcpTimeVol = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeVol)*1000;
  2431. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2432. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2433. var cnclInptTxt = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "prcpcd"));
  2434. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2435. if(ds_main_prcp_prcplist.getColumn(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2436. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2437. } //end
  2438. ds_main_prcp_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty);
  2439. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol);
  2440. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty);
  2441. } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  2442. var prcpclscd = ds_main_prcp_prcplist.getColumn(curRow, "prcpclscd");
  2443. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  2444. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2445. calcPrcpTimeQty = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeQty)*1000;
  2446. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2447. calcPrcpTimeVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeVol)*1000;
  2448. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2449. ds_main_prcp_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol);
  2450. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol);
  2451. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty);
  2452. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  2453. calcPrcpQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseQty)*1000;
  2454. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2455. calcPrcpTimeQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseTimeQty)*1000;
  2456. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2457. calcPrcpVol = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseVol)*1000;
  2458. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2459. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2460. var cnclInptTxt = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "prcpcd"));
  2461. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2462. if(ds_main_prcp_prcplist.getColumn(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2463. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2464. } //end
  2465. if(String(drprcpetc7).substr(0,1) == "0") {
  2466. calcPrcpQty = "1";
  2467. calcPrcpVol = "1";
  2468. calcPrcpTimeQty = "1";
  2469. }
  2470. if(String(drprcpetc8).substr(0,1) == "0") {
  2471. calcPrcpQty = "1";
  2472. calcPrcpVol = "1";
  2473. calcPrcpTimeQty = "1";
  2474. }
  2475. ds_main_prcp_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty);
  2476. ds_main_prcp_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol);
  2477. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty);
  2478. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  2479. calcPrcpVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseVol)*1000;
  2480. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2481. calcPrcpTimeVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseTimeVol)*1000;
  2482. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2483. calcPrcpQty = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseQty)*1000;
  2484. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2485. if(String(drprcpetc7).substr(0,1) == "0") {
  2486. calcPrcpQty = "1";
  2487. calcPrcpVol = "1";
  2488. calcPrcpTimeQty = "1";
  2489. }
  2490. if(String(drprcpetc8).substr(0,1) == "0") {
  2491. calcPrcpQty = "1";
  2492. calcPrcpVol = "1";
  2493. calcPrcpTimeQty = "1";
  2494. }
  2495. ds_main_prcp_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol);
  2496. ds_main_prcp_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty);
  2497. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol);
  2498. var prcpclscd = ds_main_prcp_prcplist.getColumn(curRow, "prcpclscd");
  2499. }
  2500. } else {
  2501. if ( flag == "prcpvol" ) { // 용량을 수정했을 때: 수량 자동계산
  2502. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  2503. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2504. calcPrcpTimeVol = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc7)*1000;
  2505. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2506. calcPrcpTimeQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc8)*1000;
  2507. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2508. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2509. var cnclInptTxt = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "prcpcd"));
  2510. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2511. if( ds_main_prcp_prcplist.getColumn(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2512. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2513. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  2514. //return;
  2515. } //end
  2516. ds_main_prcp_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty);
  2517. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol);
  2518. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty);
  2519. } else if ( flag == "prcpqty" ) { // 수량을 수정했을 때: 용량 자동계산
  2520. var prcpclscd = ds_main_prcp_prcplist.getColumn(curRow, "prcpclscd");
  2521. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  2522. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2523. calcPrcpTimeVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc7)*1000;
  2524. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2525. calcPrcpTimeQty = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc8)*1000;
  2526. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2527. ds_main_prcp_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol);
  2528. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol);
  2529. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty);
  2530. if ( prcpclscd == "M2" ) {
  2531. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  2532. if (!utlf_isNull(ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc4")) && ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc4")!= "-" && ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc4")>0){
  2533. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc4", PrcpQty);
  2534. }
  2535. }
  2536. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  2537. calcPrcpTimeQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(drprcpetc8)*1000;
  2538. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  2539. calcPrcpVol = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpVol)*1000;
  2540. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2541. calcPrcpQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpQty)*1000;
  2542. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2543. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  2544. var cnclInptTxt = utlf_transNullToEmpty(ds_main_prcp_prcplist.getColumn(curRow, "prcpcd"));
  2545. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  2546. ds_main_prcp_prcplist.addColumn("tempcol2", "string");
  2547. if(ds_main_prcp_prcplist.getColumn(curRow, "tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  2548. sysf_messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  2549. } //end
  2550. if(String(drprcpetc7).substr(0,1) == "0" && String(drprcpetc7).substr(1,1) != ".") {
  2551. calcPrcpQty = "1";
  2552. calcPrcpVol = "1";
  2553. calcPrcpTimeQty = "1";
  2554. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", "1");
  2555. }
  2556. if(String(drprcpetc8).substr(0,1) == "0" && String(drprcpetc8).substr(1,1) != ".") {
  2557. calcPrcpQty = "1";
  2558. calcPrcpVol = "1";
  2559. calcPrcpTimeQty = "1";
  2560. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", "1");
  2561. }
  2562. ds_main_prcp_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty);
  2563. ds_main_prcp_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol);
  2564. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", calcPrcpTimeQty);
  2565. if ( utlf_isNull(drprcpetc7_2) || drprcpetc7_2 == 0 || drprcpetc7_2 == "-") {
  2566. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", "1");
  2567. }
  2568. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  2569. calcPrcpTimeVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(drprcpetc7)*1000;
  2570. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  2571. calcPrcpVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpVol)*1000;
  2572. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  2573. calcPrcpQty = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpQty)*1000;
  2574. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  2575. if(String(drprcpetc7).substr(0,1) == "0" && String(drprcpetc7).substr(1,1) != ".") {
  2576. calcPrcpQty = "1";
  2577. calcPrcpVol = "1";
  2578. calcPrcpTimeVol = "1";
  2579. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", "1");
  2580. }
  2581. if(String(drprcpetc8).substr(0,1) == "0" && String(drprcpetc8).substr(1,1) != ".") {
  2582. calcPrcpQty = "1";
  2583. calcPrcpVol = "1";
  2584. calcPrcpTimeVol = "1";
  2585. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", "1");
  2586. }
  2587. ds_main_prcp_prcplist.setColumn(curRow, "prcpvol", calcPrcpVol);
  2588. ds_main_prcp_prcplist.setColumn(curRow, "prcpqty", calcPrcpQty);
  2589. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc7", calcPrcpTimeVol);
  2590. if ( utlf_isNull(drprcpetc8_2) || drprcpetc8_2 == 0 || drprcpetc8_2 == "-") {
  2591. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc8", "1");
  2592. }
  2593. var prcpclscd = ds_main_prcp_prcplist.getColumn(curRow, "prcpclscd");
  2594. if ( prcpclscd == "M2" ) {ds_main_prcp_prcplist.addColumn("drprcpetc4", "string");
  2595. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  2596. if (!utlf_isNull(ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc4")) && ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc4")!= "-" && ds_main_prcp_prcplist.getColumn(curRow, "drprcpetc4")>0){
  2597. ds_main_prcp_prcplist.setColumn(curRow, "drprcpetc4", PrcpQty);
  2598. }
  2599. }
  2600. }
  2601. }
  2602. }
  2603. /**
  2604. * @desc : 처방위치 return
  2605. * @
  2606. * @param :
  2607. * @return :
  2608. * @author : 성미연 2008. 1. 9
  2609. * @---------------------------------------------------
  2610. */
  2611. function fGetPrcpPos() {
  2612. var PrcpPosCD = "";
  2613. var pid= ds_main_cond.getColumn(0, "pid");
  2614. if (ds_main_prcpposinfo_cond.getColumn(0, "poscd") == '1') { //환자위치
  2615. if ( !utlf_isNull( ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid == '002' && cdid == '"+group5.grp_sea.combo1.value+"'"), "cdid") ) ) {
  2616. PrcpPosCD = ds_init_patinfo_patlist.lookup("pid", pid, "grupcd");
  2617. } else {
  2618. PrcpPosCD = ds_main_cond.getColumn(0, "wardcd");
  2619. }
  2620. } else { //User위치
  2621. PrcpPosCD = ds_main_prcpposinfo_cond.getColumn(0, "deptcd");
  2622. }
  2623. var roomcd = ds_main_patinfocond_patinfo.getColumn(0, "roomcd");
  2624. var deptcd = PrcpPosCD;
  2625. if(sysf_getUserInfo("dutplceinstcd") == "031" && (deptcd == "3063200000" || deptcd == "3063300000" || deptcd == "3050135000")) { // 본원 내과·신경외과집중치료실(3063200000), 외과·심혈관외과집중치료실(3063300000)은 집계부서를 기존 ICU 기준으로 변경 처리 2019.01.10 엄영만
  2626. // 20190131 이돈희 : 본원 심뇌혈관질환응급치료실(3050135000)을 CCU와 SU로 집계부서 분리 처리
  2627. if(roomcd == "MICU" || roomcd == "EMICU" || roomcd == 'MICU-i') { // MICU 내과중환자실
  2628. deptcd = "3060100000";
  2629. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2630. } else if(roomcd == "SICU" || roomcd == "ESICU") { // SICU 외과중환자실
  2631. deptcd = "3060200000";
  2632. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2633. } else if(roomcd == "NSICU" || roomcd == "ENSICU") { // NSICU 신경외과중환자실
  2634. deptcd = "3060300000";
  2635. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2636. } else if(roomcd == "CICU") { // CICU 심혈관중환자실
  2637. deptcd = "3060400000";
  2638. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2639. } else if(roomcd == "CCU") { // CCU
  2640. deptcd = "3041501000";
  2641. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2642. } else if(roomcd == "SU") { // SU
  2643. deptcd = "3041502000";
  2644. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2645. }
  2646. PrcpPosCD = deptcd;
  2647. }
  2648. //PrcpPosCD = fGetTotDeptChk(PrcpPosCD, roomcd);
  2649. return PrcpPosCD;
  2650. }
  2651. function fGetTotDeptChk(deptcd, roomcd) { // 2019.07.17_안씀(차후 공통 함수로 변경 계획)
  2652. var vTotDeptcd = "";
  2653. if(sysf_getUserInfo("dutplceinstcd") == "031" && (deptcd == "3063200000" || deptcd == "3063300000" || deptcd == "3050135000")) { // 본원 내과·신경외과집중치료실(3063200000), 외과·심혈관외과집중치료실(3063300000)은 집계부서를 기존 ICU 기준으로 변경 처리 2019.01.10 엄영만
  2654. // 20190131 이돈희 : 본원 심뇌혈관질환응급치료실(3050135000)을 CCU와 SU로 집계부서 분리 처리
  2655. if(roomcd == "MICU" || roomcd == "EMICU" || roomcd == 'MICU-i') { // MICU 내과중환자실
  2656. deptcd = "3060100000";
  2657. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2658. } else if(roomcd == "SICU" || roomcd == "ESICU") { // SICU 외과중환자실
  2659. deptcd = "3060200000";
  2660. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2661. } else if(roomcd == "NSICU" || roomcd == "ENSICU") { // NSICU 신경외과중환자실
  2662. deptcd = "3060300000";
  2663. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2664. } else if(roomcd == "CICU") { // CICU 심혈관중환자실
  2665. deptcd = "3060400000";
  2666. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2667. } else if(roomcd == "CCU") { // CCU
  2668. deptcd = "3041501000";
  2669. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2670. } else if(roomcd == "SU") { // SU
  2671. deptcd = "3041502000";
  2672. deptnm = ds_init_deptinfo_deptlist.lookup("deptcd", deptcd, "depthngnm");
  2673. }
  2674. }
  2675. vTotDeptcd = deptcd;
  2676. return vTotDeptcd;
  2677. }
  2678. /**
  2679. * @desc : 실제처방 적용일 팝업 확인 클릭시
  2680. * @
  2681. * @param :
  2682. * @return :
  2683. * @author : 성미연 2008. 1. 9
  2684. * @---------------------------------------------------
  2685. */
  2686. function fPrcpAppDDInfo(){
  2687. //적용일자 미래입력 불가능
  2688. var prcpappdd = ds_main_prcpposinfo_cond.getColumn(0, "prcpappdd");
  2689. //** 입원환자의 경우 입원일 이전으로 처방입력 불가 추가_20080822(ByJA) **//
  2690. var ordtype = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  2691. var indd = utlf_transNullToEmpty(ds_main_patinfocond_patinfo.getColumn(0, "indd"));
  2692. var orddd = utlf_transNullToEmpty(ds_main_patinfocond_patinfo.getColumn(0, "orddd"));
  2693. if(ordtype == "I"){
  2694. if(indd > prcpappdd){
  2695. sysf_messageBox("입원일자["+indd.substr(0,4)+"-"+indd.substr(4,2)+"-"+indd.substr(6,2)+"] 이전으로 입력할 수", "I004");
  2696. group5.grp_prcpapp.ipt_prcpappdd.setFocus();
  2697. return;
  2698. }
  2699. }else if(ordtype == "O"){
  2700. if(orddd > prcpappdd){
  2701. sysf_messageBox("진료일자["+orddd.substr(0,4)+"-"+orddd.substr(4,2)+"-"+orddd.substr(6,2)+"] 이전으로 입력할 수", "I004");
  2702. group5.grp_prcpapp.ipt_prcpappdd.setFocus();
  2703. return;
  2704. }
  2705. }
  2706. if (prcpappdd <= utlf_getCurrentDate()) {
  2707. ds_main_prcp_prcplist.setColumn(ds_main_prcp_prcplist.rowposition, "prcpdelivefact", prcpappdd);
  2708. } else {
  2709. sysf_messageBox("미래일자는 입력할 수", "I004");
  2710. group5.grp_prcpapp.ipt_prcpappdd.setFocus();
  2711. return;
  2712. }
  2713. group5.grp_prcpapp.visible = false;
  2714. //tf서브메뉴 사용
  2715. //window.showPopupMenu(true);
  2716. }
  2717. /**
  2718. * @desc : 처방목록 그리드 확대/축소
  2719. * @
  2720. * @param : state - true : 확대, false : 축소
  2721. * @return :
  2722. * @author : 성미연 2008. 2. 5
  2723. * @---------------------------------------------------
  2724. */
  2725. function fprcpsetzoomToggle(state){
  2726. if(state) {
  2727. group5.switch1.case_prcp.btn_zoom.text = "축소";
  2728. //group5.switch1.position= "absolute 0 55 900 742";
  2729. group5.switch1.position.right = 900;
  2730. //group5.switch1.case_prcp.grd_prcplist.position = "absolute 144 46 897 656";
  2731. group5.switch1.case_prcp.grd_prcplist.position.right = 897;
  2732. group5.switch1.case_prcp.grd_prcplist.setFormatColProperty(group5.switch1.case_prcp.grd_prcplist.getBindCellIndex("body","orgprcpnm"), "size", 290);
  2733. } else {
  2734. group5.switch1.case_prcp.btn_zoom.text = "확대";
  2735. //group5.switch1.position= "absolute 0 55 497 742";
  2736. group5.switch1.position.right = 497;
  2737. //group5.switch1.case_prcp.grd_prcplist.position = "absolute 144 46 494 656";
  2738. group5.switch1.case_prcp.grd_prcplist.position.right = 494;
  2739. group5.switch1.case_prcp.grd_prcplist.setFormatColProperty(group5.switch1.case_prcp.grd_prcplist.getBindCellIndex("body","orgprcpnm"), "size", 211);
  2740. }
  2741. }
  2742. /**
  2743. * @desc : 전처방 그리드 확대/축소
  2744. * @
  2745. * @param : state - true : 확대, false : 축소
  2746. * @return :
  2747. * @author : 성미연 2008. 2. 5
  2748. * @---------------------------------------------------
  2749. */
  2750. function fbfzoomToggle(state){
  2751. if(state) {
  2752. group5.switch1.case_bf.group4.btn_bfzoom.text = "축소";
  2753. group5.switch1.position= "absolute 0 55 1165 742";
  2754. group5.switch1.case_bf.grd_bfprcplist.position = "absolute 5 110 1155 656";
  2755. group5.switch1.case_bf.grd_bfprcplist.setFormatColProperty(group5.switch1.case_bf.grd_bfprcplist.getBindCellIndex("body","prcpnm"), "size", 233);
  2756. } else {
  2757. group5.switch1.case_bf.group4.btn_bfzoom.text = "확대";
  2758. group5.switch1.position= "absolute 0 55 497 742";
  2759. group5.switch1.case_bf.grd_bfprcplist.position = "absolute 5 110 494 656";
  2760. group5.switch1.case_bf.grd_bfprcplist.setFormatColProperty(group5.switch1.case_bf.grd_bfprcplist.getBindCellIndex("body","prcpnm"), "size", 117);
  2761. }
  2762. }
  2763. /**
  2764. * @desc : 임시처방 그리드 확대/축소
  2765. * @
  2766. * @param : state - true : 확대, false : 축소
  2767. * @return :
  2768. * @author : 성미연 2008. 6. 17
  2769. * @---------------------------------------------------
  2770. */
  2771. function ftempzoomToggle(state){
  2772. if(state) {
  2773. group5.switch1.case_temp.btn_tempzoom.text = "축소";
  2774. group5.switch1.position= "absolute 0 55 692 742";
  2775. group5.switch1.case_temp.grd_tempprcplist.position = "absolute 0 32 1190 656";
  2776. group5.switch1.case_temp.grd_tempprcplist.setFormatColProperty(group5.switch1.case_temp.grd_tempprcplist.getBindCellIndex("body","drugmthdspccdnm"), "size", 150);
  2777. } else {
  2778. group5.switch1.case_temp.btn_tempzoom.text = "확대";
  2779. group5.switch1.position= "absolute 0 55 497 742";
  2780. group5.switch1.case_temp.grd_tempprcplist.position = "absolute 0 32 494 656";
  2781. group5.switch1.case_temp.grd_tempprcplist.setFormatColProperty(group5.switch1.case_temp.grd_tempprcplist.getBindCellIndex("body","prcpnm"), "size", 230);
  2782. group5.switch1.case_temp.grd_tempprcplist.setFormatColProperty(group5.switch1.case_temp.grd_tempprcplist.getBindCellIndex("body","drugmthdspccdnm"), "size", 95);
  2783. }
  2784. }
  2785. function fDelPrcp() {
  2786. var arrRows = grdf_getSelectedRows(group5.grd_prcpposlist);
  2787. for(var i=arrRows.length-1; i>=0; i--){
  2788. ds_main_prcp_prcplist.deleteRow(arrRows[i]);
  2789. }
  2790. }
  2791. function fnZoneDisp() {
  2792. //응급의료센터(2280200000)인 경우
  2793. //병동정보대신에 구역정보가 보임)(20080620)
  2794. if ( !utlf_isNull( ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid == '002' && cdid == '"+group5.grp_sea.combo1.value+"'"), "cdid") ) ) {
  2795. group5.grp_sea.caption15.visible = false;
  2796. group5.grp_sea.cmb_room.visible = false;
  2797. group5.grp_sea.cap_Zone.visible = true;
  2798. group5.grp_sea.cmb_Zone.visible = true;
  2799. group5.grp_sea.cmb_room.value = "-";
  2800. var zonecd = ds_main_paminfo.getColumn(0, "sectioncd");
  2801. if( !utlf_isNull(zonecd) && zonecd != "-" ){
  2802. group5.grp_sea.cmb_Zone.value = ds_main_paminfo.getColumn(0, "sectioncd");
  2803. } else {
  2804. group5.grp_sea.cmb_Zone.value = "-";
  2805. }
  2806. } else {
  2807. group5.grp_sea.caption15.visible = true;
  2808. group5.grp_sea.cmb_room.visible = true;
  2809. group5.grp_sea.cap_Zone.visible = false;
  2810. group5.grp_sea.cmb_Zone.visible = false;
  2811. group5.grp_sea.cmb_Zone.value = "";
  2812. }
  2813. }
  2814. /**
  2815. * @desc : KNUH, 처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능
  2816. * @
  2817. * @param :
  2818. * @return :
  2819. * @author : JJE 2011. 2. 16
  2820. * @---------------------------------------------------
  2821. */
  2822. function fClickSetPrcpRows(){
  2823. ds_main_prcp_prcplist.updatecontrol = false;
  2824. ds_main_prcp_prcplist.enableevent = false;
  2825. var selectedRows = grdf_getSelectedRows(group5.switch1.case_prcp.grd_prcplist);
  2826. var prcpPosListRows = ds_main_prcp_prcplist.rowcount;
  2827. var str = "";
  2828. if(selectedRows.length == 1 ){
  2829. fClickSetPrcp("btnclick");
  2830. return;
  2831. }
  2832. if (selectedRows.length > 0 ){
  2833. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ){
  2834. sysf_messageBox("해당 환자를", "C002");
  2835. return;
  2836. }
  2837. if (group5.grp_prcpapp.visible == true){
  2838. sysf_messageBox("처방적용일을 확인 후 진행하세요.", "C");
  2839. return;
  2840. }
  2841. if (ds_main_cond.getColumn(0, "homecareyn") == "Y" && utlf_isNull(ds_main_cond.getColumn(0, "visitdd")) ) {
  2842. // 방문일자를 선택하지 않은 경우 안내 메시지와 함께 방문일자가 처방당일로 자동 설정 되도록 요청에 의해 수정_김숙인ITC요청_20081215수정(ByJA)
  2843. var rtnval = sysf_messageBox("방문일을 선택하지 않으셨습니다. 방문일을 처방일과 동일하게 계속 진행하시겠습니까?", "S"); // return : yes=6, no=7
  2844. if(rtnval == "6"){ // yes
  2845. dsf_makeValue(ds_main_cond,"visitdd","string",ds_main_cond.getColumn(0, "prcpdd"));
  2846. }else{
  2847. return;
  2848. }
  2849. }
  2850. for (i=0; i<selectedRows.length; i++){
  2851. var iRow = selectedRows[i];
  2852. //ALL SIZE 처방 처리
  2853. if(ds_main_prcpset_prcplist.getColumn(iRow, "prcpclscd") == "M2" && ds_main_prcpset_prcplist.getColumn(iRow, "matrallsizespecid") == "ALL") {
  2854. var grupsnglflag = ds_main_prcpset_prcplist.getColumn(iRow, "grupsnglflag");
  2855. var calcscormastspec = utlf_transNullToEmpty(ds_main_prcpset_prcplist.getColumn(iRow, "calcscormastspec")).split("|");
  2856. var matrsizeflag = calcscormastspec[2];
  2857. var matrallsizespecid = ds_main_prcpset_prcplist.getColumn(iRow, "matrallsizespecid");
  2858. //var xpt = window.screenleft + 100;
  2859. //var ypt = window.screenTop + 50;
  2860. //var coord = getRelativeCoordinate ( xpt, ypt );
  2861. //var mon = coord[0];
  2862. //xpt = coord[1];
  2863. //ypt = coord[2];
  2864. frmf_setParameter("scrnflag", "nursprcp");
  2865. frmf_setParameter("grupsnglflag", 'S');
  2866. frmf_setParameter("calcscorcd", calcscormastspec[3]);
  2867. frmf_setParameter("matrallsizespecid", matrallsizespecid);
  2868. frmf_setParameter("currow", iRow);
  2869. frmf_setParameter("targetpath", "ds_main_prcp_prcplist");
  2870. frmf_modal("SPMNW11500","SPMNW11500","", "", "", "", "", "", "", "", "", "", "M");
  2871. //modal("SPMNW11500", mon, xpt, ypt);
  2872. }else{
  2873. //처방 main grid로 약속처방 copy
  2874. mnwAddNursPrcp(ds_main_prcpset_prcplist, "ds_main_prcp_prcplist", iRow , "");
  2875. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  2876. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  2877. }
  2878. ds_main_prcp_prcplist.addColumn("tempet","string");
  2879. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempet", 'checkbox');
  2880. fSetNursPrcpDefault(ds_main_prcp_prcplist.rowcount - 1);
  2881. ds_main_prcp_prcplist.setColumn(prcpPosListRows, "status", "I"); //처방상태 : 신규
  2882. prcpPosListRows++;
  2883. }
  2884. fSetPrcpInfo("N");
  2885. // 16.10.10_심사팀 요청에 의한 추가
  2886. var sprcpcd = ds_main_prcpset_prcplist.getColumn(iRow, "prcpcd");
  2887. dsf_createDs("ds_send_reqdata1", [{col:"prcpcd", type:"string", size:256}]);
  2888. ds_send_reqdata1.addRow();
  2889. ds_send_reqdata1.setColumn(0, "prcpcd", sprcpcd);
  2890. //dsf_makeValue(ds_send_reqdata1,"prcpcd","string", sprcpcd);
  2891. //부서콤보 조회
  2892. var oParam = {};
  2893. oParam.id = "TRMNW10923";
  2894. oParam.service = "wardorderapp.NursPrcpMngt";
  2895. oParam.method = "reqGetInsulInfo";
  2896. oParam.inds = "req=ds_send_reqdata1";
  2897. oParam.outds = "ds_temp_insulinfo_insulinfo=insulinfo";
  2898. oParam.async = false;
  2899. tranf_submit(oParam);
  2900. ds_temp_insulinfo_insulinfo.addColumn("insulinfo", "string");
  2901. if (ds_temp_insulinfo_insulinfo.getColumn(0, "insulinfo") == "Y") {
  2902. str = str + sprcpcd + "," ;
  2903. }
  2904. // 16.09.27_심사팀 요청에 의한 추가_AYS
  2905. //if( ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "insulinfoyn") == "Y" ){
  2906. // str = str + utlf_transNullToEmpty(ds_main_prcpset_prcplist.getColumn(iRow, "prcpcd")) + ",";
  2907. //}
  2908. } //end for
  2909. // 16.09.27_심사팀 요청에 의한 추가_AYS
  2910. if( str.length > 1 ){
  2911. str = str.substr(0, str.length-1);
  2912. sysf_messageBox("처방코드 " + str + "는 선별급여 품목이오니 보험기준 확인 후 저장바랍니다.", "E999");
  2913. }
  2914. }
  2915. ds_main_prcp_prcplist.updatecontrol = true;
  2916. ds_main_prcp_prcplist.enableevent = true;
  2917. }
  2918. /**
  2919. * @desc : KNUH, 전처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능
  2920. * @
  2921. * @param :
  2922. * @return :
  2923. * @author : JJE 2011. 2. 17
  2924. * @---------------------------------------------------
  2925. */
  2926. function fClickBfPrcpRows(){
  2927. ds_main_prcp_prcplist.updatecontrol = false;
  2928. ds_main_prcp_prcplist.enableevent = false;
  2929. var selectedRows = grdf_getSelectedRows(group5.switch1.case_bf.grd_bfprcplist);
  2930. var errRtnMsg = "";
  2931. var prcpPosListRows = ds_main_prcp_prcplist.rowcount;
  2932. if(selectedRows.length == 1 ){
  2933. fClickBfPrcp("btnclick");
  2934. return;
  2935. }
  2936. if (selectedRows.length > 0 ){
  2937. if ( utlf_isNull(ds_main_cond.getColumn(0, "patnm")) ) {
  2938. sysf_messageBox("해당 환자를", "C002");
  2939. return;
  2940. }
  2941. if (group5.grp_prcpapp.visible == true){
  2942. sysf_messageBox("처방적용일을 확인 후 진행하세요.", "C");
  2943. return;
  2944. }
  2945. //가정간호
  2946. if (ds_main_cond.getColumn(0, "homecareyn") == "Y"){
  2947. if ( utlf_isNull(ds_main_cond.getColumn(0, "visitdd")) ){
  2948. var rtnval = sysf_messageBox("방문일을 선택하지 않으셨습니다. 방문일을 처방일과 동일하게 계속 진행하시겠습니까?", "S"); // return : yes=6, no=7
  2949. if(rtnval == "6"){ // yes
  2950. dsf_makeValue(ds_main_cond,"visitdd","string",ds_main_cond.getColumn(0, "prcpdd"));
  2951. }else{
  2952. return;
  2953. }
  2954. }
  2955. }
  2956. var cnt = 0;
  2957. var str = "";
  2958. for (i=0; i<selectedRows.length; i++){
  2959. var iRow = selectedRows[i];
  2960. var flag = ds_main_bfprcp_prcplist.getColumn(iRow, "flag");
  2961. var prcpcd = ds_main_bfprcp_prcplist.getColumn(iRow, "prcpcd");
  2962. if(flag == "N") {
  2963. if(cnt == 0) {
  2964. str = prcpcd;
  2965. } else {
  2966. str +=", " + prcpcd;
  2967. }
  2968. cnt++;
  2969. }
  2970. var prcphistcd = ds_main_bfprcp_prcplist.getColumn(iRow, "prcphistcd");
  2971. if (prcphistcd == "L" || prcphistcd == "D" ) {
  2972. continue;
  2973. }else{
  2974. //방문일자와 다른 방문일의 처방 클릭시 blocking
  2975. if (ds_main_cond.getColumn(0, "homecareyn") == "Y"){
  2976. if ( utlf_isNull(ds_main_cond.getColumn(0, "visitdd")) ){
  2977. if ( ds_main_cond.getColumn(0, "visitdd") != ds_main_bfprcp_prcplist.getColumn(iRow, "prcpdelivefact") ){
  2978. if( !utlf_isNull(errRtnMsg) ) errRtnMsg = errRtnMsg + ", ";
  2979. errRtnMsg = errRtnMsg + ds_main_bfprcp_prcplist.getColumn(iRow, "prcpcd");
  2980. continue;
  2981. }
  2982. }
  2983. }
  2984. mnwAddNursPrcp(ds_main_bfprcp_prcplist, "ds_main_prcp_prcplist", iRow , "");
  2985. if( utlf_isNull(ds_main_prcp_prcplist.getColumnInfo("tempcol8")) ){
  2986. ds_main_prcp_prcplist.addColumn("tempcol8", "string");
  2987. }
  2988. //추가..
  2989. ds_main_prcp_prcplist.addColumn("tempet","string");
  2990. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempet", 'checkbox');
  2991. fSetNursPrcpDefault(ds_main_prcp_prcplist.rowcount - 1);
  2992. ds_main_prcp_prcplist.setColumn(prcpPosListRows, "status", "B"); //처방상태[전]
  2993. prcpPosListRows++;
  2994. }
  2995. fSetPrcpInfo("N");
  2996. if(ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowcount-1, "estmcls")!= "Y"){
  2997. /*
  2998. var sExprEdittype8 = group5.grd_prcpposlist.getCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype").replace("'combo'", "")
  2999. + "currow == "+(ds_main_prcp_prcplist.rowcount-1)+" ? 'none' : "
  3000. + "'combo'";
  3001. group5.grd_prcpposlist.setCellProperty("Body", group5.grd_prcpposlist.getBindCellIndex("body","nigtprcpflag"), "edittype", sExprEdittype8);
  3002. */
  3003. ds_main_prcp_prcplist.addColumn("tempnpf","string");
  3004. ds_main_prcp_prcplist.setColumn((ds_main_prcp_prcplist.rowcount-1), "tempnpf", 'none');
  3005. }
  3006. } // end for
  3007. if(cnt > 0) {
  3008. sysf_messageBox("[" + str + "]처방은 수가가 종료되어 반환만 가능합니다.", "E");
  3009. }
  3010. if( !utlf_isNull(errRtnMsg) ){
  3011. sysf_messageBox("방문일이 동일한 처방에 대해서만 일괄 저장이 가능합니다.\n" + errRtnMsg + "처방은 방문일이 동일하지 않습니다.", "C");
  3012. }
  3013. }
  3014. ds_main_prcp_prcplist.updatecontrol = true;
  3015. ds_main_prcp_prcplist.enableevent = true;
  3016. }
  3017. /**
  3018. * @desc : 20110626_KNUH 보조유형 체크하는 로직
  3019. * @
  3020. * @param :
  3021. * @return :
  3022. * @author : dark9258 2011. 6. 26
  3023. * @---------------------------------------------------
  3024. */
  3025. function fCheckSubKindCd() {
  3026. var prcpgenrflag = ds_main_patinfocond_patinfo.getColumn(0, "ordtype");
  3027. var pid = ds_main_paminfo.getColumn(0, "pid");
  3028. var indd = ds_main_paminfo.getColumn(0, "indd");
  3029. dsf_makeValue(ds_temp_send,"pid", "string", pid);
  3030. dsf_makeValue(ds_temp_send,"indd", "string", indd);
  3031. var oParam = {};
  3032. oParam.id = "TRMMO15701";
  3033. oParam.service = "prcpmngtapp.PatPrcpSrchMngt";
  3034. oParam.method = "reqGetPatSupKind";
  3035. oParam.inds = "req=ds_temp_send";
  3036. oParam.outds = "ds_temp_patsupkind_patsupkind=patsupkind";
  3037. oParam.async = false;
  3038. oParam.callback = "cf_TRMMO15701";
  3039. tranf_submit(oParam);
  3040. if(arErrorCode.pop("TRMMO15701") > -1){
  3041. var nodelist = ds_temp_patsupkind_patsupkind.rowcount;
  3042. if(nodelist > 0) {
  3043. if(nodelist > 1){
  3044. frmf_clearParameter("SPMMO15700_subcretno");
  3045. var objArg = new Object();
  3046. objArg.arg_ds_temp_patsupkind = ds_temp_patsupkind_patsupkind;
  3047. frmf_modal("SPMMO15700", "SPMMO15700", objArg ,"","", "", "", "","","","","","M");
  3048. var subcretno = frmf_getParameter("SPMMO15700_subcretno");
  3049. if(subcretno == "0") {
  3050. var rtn = sysf_messageBox("주유형으로 처방을 발행하시겠습니까?", "Q");
  3051. if(rtn != "6") {
  3052. return "false";
  3053. }
  3054. }
  3055. if( utlf_isNull(subcretno) ) {
  3056. sysf_messageBox("유형을 선택하세요.", "E");
  3057. return "false";
  3058. }
  3059. dsf_makeValue(ds_temp_prcpinfo,"subcretno", "string", subcretno);
  3060. } else {
  3061. dsf_makeValue(ds_temp_prcpinfo,"subcretno", "string", "0");
  3062. }
  3063. } else {
  3064. dsf_makeValue(ds_temp_prcpinfo,"subcretno", "string", "0");
  3065. }
  3066. }
  3067. return "true";
  3068. }
  3069. //20110828_KNUH_Start
  3070. function fGetPatInfo() {
  3071. var settingnurid = ds_main_cond.getColumn(0, "settingrnid");
  3072. if( utlf_isNull(settingnurid) ) {
  3073. group5.grp_sea.cmb_room.enable = true;
  3074. } else {
  3075. group5.grp_sea.cmb_room.enable = false;
  3076. }
  3077. ds_send_reqdata.clearData();
  3078. dsf_makeValue(ds_send_reqdata, "wardcd", "string", ds_main_cond.getColumn(0, "wardcd"));
  3079. dsf_makeValue(ds_send_reqdata, "settingrnid", "string", ds_main_cond.getColumn(0, "settingrnid"));
  3080. var oParam = {};
  3081. oParam.id = "TRMNW10902";
  3082. oParam.service = "wardorderapp.NursPrcpMngt";
  3083. oParam.method = "reqGetWardRoomInfo";
  3084. oParam.inds = "reqCond=ds_send_reqdata";
  3085. oParam.outds = "ds_init_roominfo_room=room";
  3086. oParam.async = false;
  3087. tranf_submit(oParam);
  3088. ds_main_cond.setColumn(0, "roomcd", "-"); //해당 병실 셋팅
  3089. //해당 병실의 환자 조회
  3090. ds_send_reqdata.clearData();
  3091. dsf_makeValue(ds_send_reqdata, "orddd", "string", ds_main_cond.getColumn(0, "prcpdd"));
  3092. dsf_makeValue(ds_send_reqdata, "wardcd", "string", ds_main_cond.getColumn(0, "wardcd"));
  3093. dsf_makeValue(ds_send_reqdata, "roomcd", "string", ds_main_cond.getColumn(0, "roomcd"));
  3094. dsf_makeValue(ds_send_reqdata, "refflag", "string", "room");
  3095. dsf_makeValue(ds_send_reqdata, "ordtype", "string", "I");
  3096. dsf_makeValue(ds_send_reqdata, "settingrnid", "string", ds_main_cond.getColumn(0, "settingrnid"));
  3097. if(spcldept == ds_main_cond.getColumn(0, "wardcd")) {
  3098. dsf_makeValue(ds_send_reqdata, "spcldeptyn", "string", "Y");
  3099. } else {
  3100. dsf_makeValue(ds_send_reqdata, "spcldeptyn", "string", "");
  3101. }
  3102. var oParam = {};
  3103. oParam.id = "TRMNW10903";
  3104. oParam.service = "wardorderapp.NursPrcpMngt";
  3105. oParam.method = "reqGetRoomPatList";
  3106. oParam.inds = "reqCond=ds_send_reqdata";
  3107. oParam.outds = "ds_init_patinfo_patlist=patlist";
  3108. oParam.async = false;
  3109. tranf_submit(oParam);
  3110. if( utlf_isNull(ds_init_patinfo_patlist.getColumnInfo("userkindcd", "string")) ){
  3111. ds_init_patinfo_patlist.addColumn("userkindcd", "string");
  3112. }
  3113. ds_main_cond.setColumn(0, "patnm", "");
  3114. ds_main_cond.setColumn(0, "pid", "");
  3115. }
  3116. function fCalcScorHbookPrcp(){
  3117. fCalcScorHbook('prcp');
  3118. }
  3119. function fCalcScorHbookPrcppos(){
  3120. fCalcScorHbook('prcppos');
  3121. }
  3122. function fCalcScorHbookPrcpbf(){
  3123. fCalcScorHbook('bf');
  3124. }
  3125. function fprtlnm(pid){
  3126. dsf_makeValue(ds_send_reqdata,"pid","string", pid);
  3127. var oParam = {};
  3128. oParam.id = "TRMNW10911";
  3129. oParam.service = "wardorderapp.NursPrcpMngt";
  3130. oParam.method = "reqGetPrtlInfo";
  3131. oParam.inds = "reqdata=ds_send_reqdata";
  3132. oParam.outds = "ds_init_prtlinfo_prtllist=prtllist";
  3133. oParam.async = false;
  3134. tranf_submit(oParam);
  3135. }
  3136. //20110828_KNUH_End
  3137. function pmnmenu1_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  3138. {
  3139. eval(e.id + "()");
  3140. }
  3141. function pmnmenu2_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  3142. {
  3143. eval(e.id + "()");
  3144. }
  3145. function pmnmenu3_onmenuclick(obj:PopupMenu, e:MenuClickEventInfo)
  3146. {
  3147. eval(e.id + "()");
  3148. }
  3149. function group5_grd_prcpposlist_onenteredit(obj:Grid, e:GridEditEventInfo)
  3150. {
  3151. var curCol = e.col;
  3152. if( curCol == group5.grd_prcpposlist.getBindCellIndex("body","prcpvol") ){
  3153. ds_drugcalc.setColumn(0, "prcpvol", ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowposition, "prcpvol"));
  3154. } else if(curCol ==group5.grd_prcpposlist.getBindCellIndex("body","prcpqty")){
  3155. ds_drugcalc.setColumn(0, "prcpqty", ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowposition, "prcpqty"));
  3156. } else if(curCol == group5.grd_prcpposlist.getBindCellIndex("body","prcptims")){
  3157. ds_drugcalc.setColumn(0, "prcptims", ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowposition, "prcptims"));
  3158. } else if(curCol == group5.grd_prcpposlist.getBindCellIndex("body","drprcpetc7")){
  3159. ds_drugcalc.setColumn(0, "drprcpetc7", ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowposition, "drprcpetc7"));
  3160. } else if(curCol == group5.grd_prcpposlist.getBindCellIndex("body","drprcpetc8")){
  3161. ds_drugcalc.setColumn(0, "drprcpetc8", ds_main_prcp_prcplist.getColumn(ds_main_prcp_prcplist.rowposition, "drprcpetc8"));
  3162. }
  3163. }
  3164. function group5_switch1_onchanged(obj:Tab, e:TabIndexChangeEventInfo)
  3165. {
  3166. if(group5.switch1.tabindex ==0){
  3167. fprcpsetzoomToggle(false);
  3168. fbfzoomToggle(false);
  3169. }
  3170. if(group5.switch1.tabindex ==1){
  3171. fprcpsetzoomToggle(false);
  3172. fbfzoomToggle(false);
  3173. }
  3174. if(group5.switch1.tabindex ==2){
  3175. fprcpsetzoomToggle(false);
  3176. fbfzoomToggle(false);
  3177. }
  3178. }
  3179. /**
  3180. * @desc : 보험기준 조회
  3181. * @
  3182. * @param :
  3183. * @return :
  3184. * @author : AYS_16.09.26_본원 심사과 요청
  3185. * @---------------------------------------------------
  3186. */
  3187. function fOpenInsuInfo() {
  3188. prcpcd = ds_main_prcpset_prcplist.getColumn(ds_main_prcpset_prcplist.rowposition, "prcpcd");
  3189. dsf_makeValue(ds_temp_setparma, "prcpcd", "string", prcpcd, 0);
  3190. dsf_makeValue(ds_temp_setparma, "calcscorcd", "string", prcpcd, 0);
  3191. var objArg = new Object();
  3192. objArg.arg_ds_send_item3 = ds_temp_setparma;
  3193. frmf_modal("SPPIZ01600","SPPIZ01600","", 1, 400, 400, "", "", "", "", "", "", "M");
  3194. ds_temp_picmmech.clearData();
  3195. ds_temp_setparma.clearData();
  3196. }
  3197. ]]></Script>