12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526 |
- /*
- (SMMNW04000_중증도.xrw - JScript )
- - Version :
- 1) : Ver.1.00.01
- */
- var xRecInfo = '/root/main/recgrup/recinfo';
- var xRecMasterPath = "/root/main/recgrup/recgruplist"; //중증도기록마스터
- var xRecDetailPath = "/root/main/recdetailgrup/recdetailgruplist"; //중증도상세내역
- var xRecPntPath = "/root/main/recpntgrup/recpntlist"; //중증도상세점수
- var xRecDetailBKPath = "/root/temp/histgrup/histgruplist"; //중증도상세내역 hidden
- var recMCurRow = 0; //기록마스터에 현재 선택된 row index
- var instUseYN = "N";//JCI적용여부 20100430 김홍점
- var instUseYNcdnm = "";//JCI적용여부 20100430 김홍점
- var patRow = "";
- var recRow = "";
- var sAllSignSave = false;
- /*
- var icuArr = new Array(4);//중환자실리스트 하드코딩
- icuArr[0] = '3060100000';//내과중환자실
- icuArr[1] = '3060200000';//외과중환자실
- icuArr[2] = '3060300000';//신경외과중환자실
- icuArr[3] = '3060400000';//순환기계중환자실
- icuArr[4] = '3060600000';//2층중환자실
- */
- //응급의료센터 관련 변수_경북대 (2011.03.14 Ahn)
- var eERDEPTCD = "";
- var eERFLAG = "";
- // 환자정보 그리드 관련 색 (2011.03.30)
- var red = "#ff0000";
- var yellow = "#ffff00";
- var indigo = "#333399";
- var white = "#ffffff";
- /**
- * 20080820
- * 분류가 선택될때마다 hidden으로 분류군정보를 로드함(인증저장시 필요함)
- */
- function fLoadBsPnt(totpnt){
- var clsflag = model.getValue('/root/cond/clsflag'); //분류구분
- var execdt = model.getValue('/root/cond/execdd'); //기록일자
- var maddchk01 = model.getValue('/root/cond/maddchk01');
- var maddchk02 = model.getValue('/root/cond/maddchk02');
- var maddchk03 = model.getValue('/root/cond/maddchk03');
- var maddchk04 = model.getValue('/root/cond/maddchk04');
- var haddchk = model.getValue('/root/cond/haddchk');
- var haddchk01 = model.getValue('/root/cond/haddchk01');
- var dinfo = maddchk01+maddchk02+maddchk03+maddchk04+haddchk+haddchk01;
-
- if ( model.getValue("/root/cond/agechk") == "Y" ){
- bspntnm = instUseYNcdnm
- return bspntnm;
- }else {
-
-
- model.removenode('/root/send');
- model.makeValue('/root/send/bspnt/clsflag', clsflag);
- model.makeValue('/root/send/bspntgrup/execdt', execdt);
- model.makeValue('/root/send/bspntgrup/totpnt', totpnt);
- model.makeValue('/root/send/bspntgrup/dinfo', dinfo);
- if(submit('TRMNW04014')){
- var bspntnm = model.getValue('/root/hidden/bspnt/bspntinfo/bspntnm');
- return bspntnm;
-
- }else{
- messageBox('중증군조회를', 'E009');
- return;
- }
-
- }
- }
- /**
- * @group :
- * @ver : 2007.12.04
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 시작시 병동, 병실, 환자정보 조회
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fInit(){
-
- //debugger;
-
- //환자정보 조회
- //var sPamInfo = getGlobalVariable("paminfo");
- //if(sPamInfo == ""){
- // messageBox("환자를 먼저","C002");
- // window.close();
- // return;
- //}
-
-
- //사용자 직급구분에 따른 화면 제어 플래그 설정
- sJobKindCD = getUserInfo("jobkindcd"); // 직급코드
-
- //---------(20101204) 경북대
- //추가
- var ssflag = "";
- if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
- //경북대가 아니면
- if( sJobKindCD == "0330" || sJobKindCD == "0310"){
- ssflag = "Y";
- } else {
- ssflag = "N";
- }
- } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
- //경북대이면 03%로 체크한다.
- if( sJobKindCD.substring(0, 2) == "03"){
- ssflag = "Y";
- } else {
- ssflag = "N";
- }
- }
-
- //----------------------------
- //응급의료센터 부서코드 추출_ 경북대 (2011.03.14 Ahn)
- model.makeValue("/root/send/cdgrupid", "'002'");
- model.makeValue("/root/send/srchdd" , getCurrentDate()); // 조회기준일자
- if(submit("TRMNW00001", false)){
- eERDEPTCD = model.getvalue("/root/code/codeinfo/codelist[cdgrupid='002']/cdid");
- }
-
- //원본:의사의 경우만
- //if(sJobKindCD == "0330" || sJobKindCD == "0310" ){
- if(ssflag=="Y") {
- //---------(20101204) 경북대
- button4.visible = false;
- }else{
- button4.visible = true;
- }
-
- var pCode = "'199','055','W02','052','T49','T98'"; // 중증도위험사정에서 낙상 나이별 고위험군 지정 적용여부 FOR JCI
- fGetNursHardCdInfo(pCode, getCurrentDate());
-
- instUseYN = model.getValue("/root/code/codeinfo/codelist[cdgrupid ='199' and cdnm = 'Y']/cdnm");//cdid 가 1: 낙상소아 2:낙상성인 (Morse Scale)
-
- var pid = "";
- var wardcd = "";
- var roomcd ="";
- // 응급실-구역정보 (2011.03.14 Ahn)
- var sectioncd ="";
-
- // 추가 (2011.03.29 Ahn)
- var sexage = "";
- var patnm = "";
- var age = "";
-
- //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
- submit("TRMNW04001");
-
- //라디오버튼 디폴트 선택
- wardcd = getUserInfo("dutplcecd");
- fChangeWardByRadio(wardcd);
-
- ipt_indate.value = getCurrentDate();// 수행일에 현재날짜(디폴트);
- ipt_time.value = getCurrentDateTime().substring(9,13);//수행시간
-
- // 상단정보 세팅
- var sPamInfo = getGlobalVariable("paminfo");
- if ( !isNull(sPamInfo) ){
- setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
- pid = model.getValue("/root/main/paminfo/pamlist/pid");
- wardcd = model.getValue("/root/main/paminfo/pamlist/wardcd");
- roomcd = model.getValue("/root/main/paminfo/pamlist/roomcd");
- // 응급실 - 구역컬럼 추가 (2011.03.14 Ahn)
- sectioncd = model.getValue("/root/main/paminfo/pamlist/sectioncd");
-
- // 추가 (2011.03.29 Ahn)
- sexage = model.getValue("/root/main/paminfo/pamlist/sex") + "/" + model.getValue("/root/main/paminfo/pamlist/age");
- patnm = model.getValue("/root/main/paminfo/pamlist/hngnm2");
- age = model.getValue("/root/main/paminfo/pamlist/age");
- }
-
- // 응급실일 경우 (2011.03.14 Ahn)
- fGetWardChngInfo("Y", wardcd, sectioncd);
-
- //상단정보있을때 병동, 병실, 환자명, pid 세팅
- if( !isNull(pid)){
- opt_pid.value = pid;
- // 추가 (2011.03.29 Ahn)
- opt_sexage.value = sexage;
- opt_patnm.value = patnm;
- opt_age.value = age;
-
- //상단환자가 퇴원환자일경우
- if(model.getValue("/root/main/paminfo/pamlist/dschdd") != "99991231"){
- fGetICUList(); //중환자실리스트 조회
- fSetICUInOutFlag(pid, wardcd); //중환자실당일입퇴실여부
-
- model.setValue("/root/cond/patnm",patnm );
- model.setValue("/root/cond/sexage",sexage );
- model.setValue("/root/cond/age",age );
-
- //수행일시 초기화값 세팅
- model.setValue('/root/cond/execdd', getCurrentDate());
- model.setValue('/root/cond/exectm', getCurrentTime().substring(0, 4));
- model.setValue('/root/cond/execnm', getUserInfo("usernm"));
-
- model.removenode(xRecMasterPath); //기록마스터리셋
- model.removenode('/root/main/recpntgrup/recpntlist'); //상세점수리셋
- model.removenode('/root/main/recdetailgrup/recdetailgruplist'); //상세내역리셋
- fSearchPatList();//pid가 입력된 경우에는 중증도내역, 상세점수, 상세내역 모두조회
- return;
- } else {
- //20080827 dhkim 추가
- fGetICUList(); //중환자실리스트 조회
- fSetICUInOutFlag(pid, wardcd); //중환자실당일입퇴실여부
- }
- }
-
- //if(eERFLAG == "Y"){
- fGetWard(); //병동 조회
- cmb_ward.value = wardcd;
-
- fGetRoom(); //병실 검색
- fmisetting(); //내환자 세팅 조회
- //if(!isNull(roomcd)){
- // cmb_room.value = roomcd;
- //}
- if(eERFLAG == "Y"){ // 응급실 환자 조회 (2011.03.15 Ahn)
- fGetCareComPatList(cmb_ward.value, cmb_room.value, cmb_zone.value);
- } else {
- fGetPatient(); //환자검색
- }
-
- //}else{
- //}
-
- //수행일시 초기화값 세팅
- model.setValue('/root/cond/execdd', getCurrentDate());
- model.setValue('/root/cond/exectm', getCurrentTime().substring(0, 4));
- model.setValue('/root/cond/execnm', getUserInfo("usernm"));
-
- model.removenode(xRecMasterPath); //기록마스터리셋
- model.removenode('/root/main/recpntgrup/recpntlist'); //상세점수리셋
- model.removenode('/root/main/recdetailgrup/recdetailgruplist'); //상세내역리셋
- fSearchPatList(); //pid가 입력된 경우에는 중증도내역, 상세점수, 상세내역 모두조회
- model.refresh();
- }
- /**
- * @author : dhkim
- * @create : 20080829
- * @desc :해당환자가 중환자실당일입실환자인지,
- 당일퇴실환자인지 여부에 따라 조회조건의 중증도 구분을 변경
- 1.중환자실환자인지 체크
- 2.중환자실 당일퇴실환자인지 체크(퇴원예고포함)
- 해당환자면 조회조건의 중증도구분을 중환자실퇴실로 선택상태변경
- 3.중환자실 당일입실환자인지 체크
- 해당환자면 조회조건의 중증도구분을 중환자실입실로 선택상태변경
- */
- function fSetICUInOutFlag(pid, wardcd){
- var icuYn = 'N';
- /*
- //중환자실 환자인지 여부를 조회
- for(var i = 0; i < icuArr.length; i++){
- if(wardcd == icuArr[i]){
- icuYn = 'Y';
- break;
- }
- }
- */
- //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")
- && model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/clsflag") == '4'){
- icuYn = 'Y';
- break;
- }
- }
- //중환자실 환자일경우만 입퇴실여부체크
- if(icuYn == 'Y'){
- //입실, 퇴실여부
- model.removenode('/root/send');
- model.makeValue('/root/send/pid', pid);
- model.makeValue('/root/send/wardcd', wardcd);
- if(submit('TRMNW04015')){
- /*
- var icuOutYn = model.getValue('/root/hidden/icuinout/icuinoutinfo/outyn');
- var icuInYn = model.getValue('/root/hidden/icuinout/icuinoutinfo/inyn');
- if(icuOutYn == 'Y'){
- model.setValue('/root/cond/clsflag', '7');//중환자실퇴실
- }else if(icuInYn == 'Y'){
- model.setValue('/root/cond/clsflag', '6');//중환자실입실
- }else{
- model.setValue('/root/cond/clsflag', '4');//중환자실
- }
- */
- model.setValue('/root/cond/clsflag', '4');//중환자실
- model.refresh();
- }
- }
- }
- /**
- * @author : dhkim
- * @create : 20080827
- * @desc : 병동리스트중 중환자실리스트만 조회해 hidden시킴.
- * 중환자실 구분 없음.. 하드코딩 .. → '3060100000','3060200000','3060300000','3060400000','3060600000'
- */
- function fGetICUList(){
- var wardCnt = getNodesetCount("/root/hidden/wardcdgrup/wardcdgruplist");//ward list 노드 갯수
- var wardcd, wardnm ;
- model.removenode('/root/temp/signdata/recpntgrup/recpntlist');
- model.makeNode('/root/temp/signdata/recpntgrup/recpntlist');
- var nodeCnt = 0;
- /*
- for(var j = 0; j < icuArr.length; j++){
- for(var i = 1; i <= wardCnt; i++){
- wardcd = model.getValue('/root/hidden/wardcdgrup/wardcdgruplist[' + i + ']/wardcd');
- wardnm = model.getValue('/root/hidden/wardcdgrup/wardcdgruplist[' + i + ']/wardnm');
- if(wardcd == icuArr[j]){
- nodeCnt += 1;
- model.makeValue('/root/hidden/icucdgrup/icucdgruplist[' + nodeCnt + ']/cd', wardcd);
- model.makeValue('/root/hidden/icucdgrup/icucdgruplist[' + nodeCnt + ']/nm', wardnm);
- }
- }
- }
- */
- //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
- for(j = 1; j <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); j++){
- for(var i = 1; i <= wardCnt; i++){
- wardcd = model.getValue('/root/hidden/wardcdgrup/wardcdgruplist[' + i + ']/wardcd');
- wardnm = model.getValue('/root/hidden/wardcdgrup/wardcdgruplist[' + i + ']/wardnm');
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + j + "]/wardcd")
- && model.getValue("/root/init/icucdgrup/icucdgruplist[" + j + "]/clsflag") == '4'){
- nodeCnt += 1;
- model.makeValue('/root/hidden/icucdgrup/icucdgruplist[' + nodeCnt + ']/cd', wardcd);
- model.makeValue('/root/hidden/icucdgrup/icucdgruplist[' + nodeCnt + ']/nm', wardnm);
- }
- }
- }
- }
- /**
- * @author : dhkim
- * @create : 20080827
- * @desc : 해당환자가 중환자실 환자인가?
- * @return : boolean (true/false)
- */
- function fIsICUPatient(wardcd){
- var ret = false;//icu 환자인지 여부 디폴트
- /*
- for(var i = 0; i < icuArr.length ; i++){
- if(wardcd == icuArr[i]){
- ret = true;
- return true;
- }
- }
- */
- //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")
- && model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/clsflag") == '4'){
- ret = true;
- return true;
- }
- }
- return ret;
- }
- /**
- * @author : dhkim
- * @desc : 병동값 value changed 됐을때 병동별 분류구분 라디오버튼 변경(default)
- */
- function fChangeWardByRadio(wardcd){
- /*
- var clsflag = '1';
- switch (wardcd){
- case "3050122000" : clsflag = "5" ; break; //10층동병동(정신과병동)
- case "2110201000" : clsflag = "2" ; break; //신생아중환자실(신생아ICU)
- case "3060000000" : clsflag = "4" ; break; //중환자실
- case "3060600000" : clsflag = "4" ; break; //2층중환자실
- case "3060400000" : clsflag = "4" ; break; //순환기계중환자실
- case "3060300000" : clsflag = "4" ; break; //신경외과중환자실
- case "3060200000" : clsflag = "4" ; break; //외과중환자실
- case "3060100000" : clsflag = "4" ; break; //내과중환자실
- default : clsflag = "1" //default는 일반병동임.
- }
- */
- //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
- var clsflag = "1";
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")){ // 중환자실이면
- if(wardcd == model.getvalue("/root/code/codeinfo/codelist[cdgrupid='052']/cdid")){ // 신생아중환자실이면
- clsflag = '2';
- } else {
- clsflag = model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/clsflag");
- }
- }
- }
-
- if (clsflag == '1') {
- if(wardcd == model.getvalue("/root/code/codeinfo/codelist[cdgrupid='W02']/cdid")){ // 302병동이면
- clsflag = '5'
- } else if(wardcd == model.getvalue("/root/code/codeinfo/codelist[cdgrupid='055']/cdid")){ // 인공신장실이면
- clsflag = '3'
- } else {
- clsflag = '1';
- }
- }
-
- //인공신장실에서 메뉴 띄울 경우 혈액투석 셋팅_20090211_SMY추가
- //인공신장실 혈액투석간호기록에서 화면 연동시 parma추가-kys-20100412
- if(getScreenMenuParameter() == "SMMND" || opener.javascript.getParameter("SMMND00700_param_dial") == "dialrec"){
- clsflag = "3";
- }
-
- model.setValue('/root/cond/recflag', '1');
- model.setValue('/root/cond/clsflag', clsflag);
- }
- /**
- * @group :
- * @ver : 2007.12.04
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 병동 검색
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetWard(){
- model.removeNodeset("/root/send");
- submit("TRMNW04003"); //병동 조회
- }
- /**
- * @group :
- * @ver : 2007.12.04
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 병실 검색
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetRoom(flag){
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/wardcd",model.getValue("/root/cond/wardcd"));
- var setchk = model.getValue("/root/main/cond/settingrnid");
- submit("TRMNW04008"); //병실 조회
-
- addComboItem("cmb_room", "전체", "", "above");
- }
- /**
- * @group :
- * @ver : 2007.12.04
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 환자 검색
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetPatient(){
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/wardcd",model.getValue("/root/cond/wardcd"));
- model.makeValue("/root/send/roomcd",model.getValue("/root/cond/roomcd"));
- model.makeValue("/root/send/pid",model.getValue("/root/cond/pid"));
- submit("TRMNW04009"); //환자 조회
- }
- /**
- * @ver : 2008.06.20
- * @author : dhkim
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return :
- * @desc : 그리드 환자정보 리스트 조회
- * @---------------------------------------------------
- */
- function fSearchPatList(flag){
- var wardcd = model.getValue(cmb_ward.attribute('ref'));
- var roomcd = model.getValue(cmb_room.attribute('ref'));
- var pid = "";
-
- if(flag != "Srch"){
- if(eERFLAG=="Y"){ // 응급실 (2011.03.15 Ahn)
- pid = cmb_erpat.value;
- }else{
- pid = model.getValue(cmb_pid.attribute('ref'));
- }
- }
-
- var onlyPatSrch = "N";
- if (flag == "Srch"){
- // 구분 값 동기화 조회구분 -> 라디오구분(2011.04.01 Ahn)
- var recsrchflag = model.getValue('/root/cond/recsrchflag');
- var selRecFlag = fGetMinSrchFlag(recsrchflag); // 분류구분 중 우선순위 값 가져오기
- if(selRecFlag == 1){
- model.setValue("/root/cond/clsflag", 1);
- model.setValue("/root/cond/recflag", 1);
- }
- else if(selRecFlag == 2){
- model.setValue("/root/cond/clsflag", 9);
- model.setValue("/root/cond/recflag", 2);
- }
- else if(selRecFlag == 3){
- model.setValue("/root/cond/clsflag", 10);
- model.setValue("/root/cond/recflag", 3);
- }
- else if(selRecFlag == 4) {
- model.setValue("/root/cond/clsflag", 11);
- model.setValue("/root/cond/recflag", 4);
- }
- else{
- //messageBox('최소 한개 선택은 필수', 'I009');
- model.setValue("/root/cond/clsflag", "");
- onlyPatSrch = "Y";
- //event.defaultAction = "cancel";
- //return;
- }
-
- }else if (flag == "Sel"){
- // 구분 값 동기화 라디오 구분 -> 조회구분
- var selClsFlag = model.getValue('/root/cond/clsflag');
- //var selRecFlag = fGetMinSrchFlag(recsrchflag); // 분류구분 중 우선순위 값 가져오기
- if(parseInt(selClsFlag) < 8){
- model.setValue('/root/cond/recsrchflag', 1);
- model.setValue('/root/cond/recflag', 1);
- //recflag = "1";//중증도
- }else if(parseInt(selClsFlag) >= 8 && parseInt(selClsFlag) < 10){
- model.setValue('/root/cond/recsrchflag', 2);
- model.setValue('/root/cond/recflag', 2);
- //recflag = "2";//낙상
- }else if(parseInt(selClsFlag) == 10){
- model.setValue('/root/cond/recsrchflag', 3);
- model.setValue('/root/cond/recflag', 3);
- //recflag = "3";//욕창
- }else if(parseInt(selClsFlag) == 11){
- model.setValue('/root/cond/recsrchflag', 4);
- model.setValue('/root/cond/recflag', 4);
- //alert("통증기록 관련 개발중입니다!!");
- //messageBox('관련 화면 준비중', 'I009');
- //modal("SMMNW04800",1, event.screenX-200, event.screenY+50); //통증관리기록 화면 호출
- //messageBox('통증위험 사정구분을 선택하십시오', 'I');
- //modal("SMMNW04800",1); //통증관리기록 화면 호출
- //model.refresh();
- //return;
- //recflag = "1";//default
- }
- }
-
- var clsflag = model.getValue('/root/cond/clsflag');
- var recflag = model.getValue('/root/cond/recflag');
- var settingrnid = model.getValue('/root/cond/settingrnid');//내환자
- //20080820 주석처리
- //var bloodioflag = model.getValue('/root/cond/bloodioflag');//혈액투석외래입원구분 2008.08.07 dhkim 추가
- //default 세팅
- if(wardcd == null || wardcd == ''){
- //wardcd = '-'; //20090319_SMY_주석처리함
- }
- if(recflag == null || recflag == ''){
- recflag = '1';
- }
- if(clsflag == null || clsflag == ''){
- clsflag = '1';
- }
- //캡션을 라디오 구분에 따라 변경
- fChangeCaption(clsflag);
- //환자정보 그리드의 컬럼을 라디오구분에 따라 변경
- fChangeGridColumn(clsflag);
- //혈액투석선택일 경우 조회조건clear
- if(clsflag == '3'){
- wardcd = '';
- roomcd = '';
- //pid = '';
- /* 20080820 주석처리
- if(bloodioflag == ''){
- bloodioflag = 'I';//default
- model.setValue('/root/cond/bloodioflag', bloodioflag);
- }
- */
- }
- //선택된 분류구분 라디오버튼 코드에 따라 실제 입력할 clsflag, recflag 값을 설정해준다.
- if(Number(clsflag) < 8){
- recflag = '1';//중증도
- }else if(Number(clsflag) >= 8 && Number(clsflag) < 10){
- recflag = '2';//낙상
- if ( model.getValue("/root/cond/agechk") == "Y" ){
- model.setValue("/root/cond/agechk", "N" );
- //bool_agechk.dispatch("xforms-value-changed");
- }
-
- }else if(Number(clsflag) == 10){
- recflag = '3';//욕창
- }else if(Number(clsflag) == 11){ // 통증 추가 (2011.03.31 Ahn)
- recflag = '4';//통증
- }else{
- recflag = '1';//default
- }
- //조회조건의 recflag, clsflag값을 재설정한다.
- model.setValue('/root/cond/wardcd', wardcd);
- model.setValue('/root/cond/roomcd', roomcd);
- //model.setValue('/root/cond/pid', pid);
- //model.setValue('/root/cond/recflag', recflag);
- //model.setValue('/root/cond/clsflag', clsflag);
- //alert('recflag : ' + recflag + ', clsflag : ' + clsflag);
- //조회전 instance 설정
- model.removenode('/root/send');
- model.makeNode('/root/send');
- model.copyNode('/root/send', '/root/cond');
- var cretno = "";
- var dschdd ="";
- if ( !isNull(pid) && pid == model.getValue("/root/main/paminfo/pamlist/pid") ){
- cretno= model.getValue("/root/main/paminfo/pamlist/cretno");
- dschdd = model.getValue("/root/main/paminfo/pamlist/dschdd")
-
- }else if (!isNull(pid) && !isNull(model.getValue("/root/hidden/patientgrup/patientgruplist[pid='"+ pid +"']/dschdd") ) ){
- cretno= model.getValue("/root/hidden/patientgrup/patientgruplist[pid='"+ pid +"']/cretno")
- dschdd = model.getValue("/root/hidden/patientgrup/patientgruplist[pid='"+ pid +"']/dschdd");
- }else {
- dschdd = "99991231";
- }
-
- model.makeValue('/root/send/cretno', cretno);
- model.makeValue('/root/send/dschdd', dschdd);
- model.removenode('/root/main/patinfo');
- model.makeNode('/root/main/patinfo');
- //중증마스터, 상세점수, 상세내역, 상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/recgrup');
- model.removenode('/root/main/recpntgrup');
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
- model.refresh();
- // 응급실 환자정보 flag 삽입 (2011.03.15 ahn)
- model.makeValue('/root/send/erflag', eERFLAG);
-
- // 응급실 환자 구역정보 삽입 (2011.03.15 ahn)
- model.makeValue('/root/send/zonecd', cmb_zone.value);
-
- //환자정보 그리드 리스트 조회
- if(!submit('TRMNW04004')){
- messageBox('환자정보 조회를', 'E009');//실패하였습니다.
- return;
- }else{
- //기록마스터리셋
- model.removenode(xRecMasterPath);
- //상세점수리셋
- model.removenode('/root/main/recpntgrup/recpntlist');
- //상세내역리셋
- model.removenode('/root/main/recdetailgrup/recdetailgruplist');
- //2008.08.05 dhkim 추가
- //pid가 입력된 경우에는 환자정보에 해당 pid의 환자에 포커스 이동과 동시에 중증도 내역 자동조회
- if(pid != ''){
- for(var i = 1; i < grd_patinfo.rows; i++){
- if(model.getValue('/root/main/patinfo/patlist[' + i + ']/pid') == pid ){
- grd_patinfo.row = i+1;
- break;
- }
- }
-
- // 조회구분이 아무것도 선택되지 않은 경우
- if(onlyPatSrch != "Y"){
- //중증도/낙상/욕창 내역 조회(grd_recmaster)
- fSearchRecMaster(grd_patinfo.row, recflag);
- }
-
- }
- }
-
- // 그리드 재구성 (2011.03.30 Ahn)
- fSetPatGrid(grd_patinfo, "Pat");
-
- if( !isNull(pid)){
- if( dschdd != "99991231"){
- //otp_dsch.visible = true;
- cmb_pid.visible =false;
- cmb_ward.disabled = true;
- cmb_room.disabled = true;
- cmb_erpat.visible = false;
- //ipt_pid.disabled = true;
- model.refresh();
- }
- }
-
- /*
- // 환자가 한명일 경우 row 선택 해제 (색깔 관련)
- if(grd_patinfo.row == 2){
- grd_patinfo.row = 0;
- }
- */
- }
- /**
- * @group :
- * @ver : 2007.12.05 신혁춘
- * 2008.06.09 dhkim 수정
- * @by : dhkim
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @param : curRow - 현재 선택된 그리드의 행 인덱스, pFlag : save 저장후 재조회할경우 상단 수행일자는 첫번째행의 날짜로 세팅한다.
- * @return :
- * @desc : 환자정보 그리드 더블클릭 이벤트 발생시 호출됨
- * 중증도 구분에 따른 중증도/낙상/욕창 내역 조회
- * [임의 코드 부여 clsflag]
- * (1) 중증도 구분
- * 1: 일반병동
- * 2: 신생아 ICU
- * 3: 혈액투석
- * 4: 중환자실
- * 5: 정신과병동
- * 10: 중환자실입실(실제 flag는 4(중환자실)로 넘기나 당일 중환자실 입실환자만 조회
- * 11: 중환자실퇴실(실제 flag는 4(중환자실)로 넘기나 당일 중환자실 퇴실환자만 조회
- * (2) 낙상위험사정구분
- * 7: 소아
- * 8: 성인 -> Morse Scale
- * (3) 욕창위험사정구분 (욕창 -> Braden Scale)
- * 9: 욕창(욕창위험사정구분)
- *
- * *2008.08.05 dhkim 추가
- * 해당환자의 입원일자 이전으로 수행일자를 기록하려고 할때에는 blocking처리
- * @---------------------------------------------------
- */
- function fSearchRecMaster(curRow,pFlag){
- //혈액투석의 경우 입원환자 더블클릭 할때에 조회조건에 기본 조회값을 세팅해야함.
- //혈액투석의 경우 외래환자 더블클릭은 조회조건 비활성화
- var clsflag = model.getValue('/root/cond/clsflag');//분류구분
- var recflag = model.getValue('/root/cond/recflag');//기록구분
- // var ioflag = model.getValue('/root/main/paminfo/pamlist/ioflag'); //외래/입원구분
- // var pid = model.getValue('/root/main/paminfo/pamlist/pid'); //등록번호
- // var indd = model.getValue('/root/main/paminfo/pamlist/indd'); //입원일자
- // var histstat = model.getValue('/root/main/paminfo/pamlist/histstat'); //이력상태
- // var cretno = model.getValue('/root/main/paminfo/pamlist/cretno'); //생성번호
- // var seqno = model.getValue('/root/main/paminfo/pamlist/seqno'); //이력번호
- // var hngnm = model.getValue('/root/main/paminfo/pamlist/hngnm'); //환자명
- var ioflag = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/ioflag"); //외래/입원구분
- var pid = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/pid"); //등록번호
- var indd = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/indd"); //입원일자
- var histstat = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/histstat"); //이력상태
- var cretno = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/cretno"); //생성번호
- var seqno = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/seqno"); //이력번호
- var hngnm = model.getValue("/root/main/patinfo/patlist[" + (curRow-1) + "]/hngnm"); //환자명
-
- var execdd = model.getValue('/root/cond/execdd'); //수행일자
- var exectm = model.getValue('/root/cond/exectm'); //수행시간
- if(execdd == null || execdd == ''){
- execdd = getCurrentDate();
- }
- if(exectm == null || exectm == ''){
- exectm = getCurrentTime().substring(0, 4);
- }
- /********************************************************
- //화면 오픈시 상단에 환자 셋팅하지 않은 경우 저장 후에도 환자정보가 전체리스트로 조회되어야 함_중증도 조회조건에 셋팅하지 않음_20090211_SMY
- if(pid != '' && model.getValue('/root/cond/pid') == ''){
- model.setValue('/root/cond/pid', pid);//환자선택됐을때 조회조건에 등록번호 세팅
- }
- **********************************************************/
- //2008.08.05 dhkim
- //해당환자의 입원일자 이전으로 수행일자를 기록하려고 할때에는 blocking처리
- //20080820 외래환자의 경우 메세지 변경
- /*
- if(execdd < indd){
- var msgStr = '기록하시려는 일자(';
- msgStr += execdd.substring(0,4) + '-' + execdd.substring(4, 6) + '-' + execdd.substring(6);
- if(ioflag == 'O'){
- msgStr += ')는 환자의 예약일자(';
- }else{
- msgStr += ')는 환자의 입원일자(';
- }
- msgStr += indd.substring(0,4) + '-' + indd.substring(4, 6) + '-' + indd.substring(6);
- msgStr += ') 이전일자가 될 수';
- messageBox(msgStr, 'I004');
- return;
- }
- */
-
- //20081014 i/o조건값 cond 노드에 setting
- model.removenode('/root/cond/ioflag');
- model.makeValue('/root/cond/ioflag', ioflag);
- model.refresh();
- //혈액투석외래환자의 경우 조회조건을 비활성화 처리
- fDisabledSearchArea(clsflag, ioflag);
- /********************************************************
- //화면 오픈시 상단에 환자 셋팅하지 않은 경우 저장 후에도 환자정보가 전체리스트로 조회되어야 함_중증도 조회조건에 셋팅하지 않음_20090211_SMY
- if(clsflag == '3'){
- //혈액투석외래환자의 경우 조회조건에 pid만 세팅, 입원환자의 경우 wardcd, roomcd, pid 세팅
- fSetSearchCondition(clsflag, ioflag);//조회조건 세팅
- }
- **********************************************************/
- //중증도 마스터내역을 조회한다.
- model.removenode('/root/send');
- model.makeValue('/root/send/clsflag', clsflag);
- model.makeValue('/root/send/recflag', recflag);
- model.makeValue('/root/send/execdd', execdd);
- model.makeValue('/root/send/exectm', exectm);
- model.makeValue('/root/send/pid', pid);
- model.makeValue('/root/send/indd', indd);
- model.makeValue('/root/send/histstat', histstat);
- model.makeValue('/root/send/cretno', cretno);
- model.makeValue('/root/send/seqno', seqno);
- model.makeValue('/root/send/hngnm', hngnm);
- model.makeValue('/root/send/ioflag', ioflag);
-
- // 조회구분 추가 (2011.03.31 Ahn)
- var recsrchflag = model.getValue('/root/cond/recsrchflag');
- model.makeValue('/root/send/recsrchflag', recsrchflag);
-
- // 분류구분 중 우선순위 값 가져오기 (2011.03.31 ahn)
- var selRecFlag = fGetMinSrchFlag(recsrchflag);
- model.makeValue('/root/send/selrecflag', selRecFlag);
- //model.setValue('/root/cond/recflag', selRecFlag); // 상단 라디오체크 분류 set
-
- //model.makeValue('/root/send/recflag', selRecFlag);
- //model.makeValue('/root/send/clsflag', selRecFlag ? '2' : '2' model.getValue('/root/cond/clsflag'));
-
- model.removenode('/root/main/recgrup');
- model.makeNode('/root/main/recgrup');
- //상세점수, 상세내역, 상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/recpntgrup');
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
- model.refresh();
- //중증도내역 마스터 조회 후 기록정보 조회
- if(!submit('TRMNW04011')){
- messageBox('중증도내역의 조회를', 'E009');
- return;
- }else{
- //조회갯수 0일때 조회 후 수행일자, 수행시간, 최근 저장일을 세팅
- //var execdd = model.getValue('/root/cond/execdd');
- var execdd = model.getValue('/root/cond/copyexecdd');
- var exectm = model.getValue('/root/cond/exectm');
-
- //model.getValue(xRecMasterPath + '[' + curRow + ']/stat')
- /*
- var maxRecFlag = 0;
- var maxClsFlag = 0;
- for(i=1; i <= getNodesetCount(xRecMasterPath); i++){
- if(selRecFlag == model.getValue(xRecMasterPath + '[' + i + ']/recflag')){
- maxRecFlag = model.getValue(xRecMasterPath + '[' + i + ']/recflag');
- maxClsFlag = model.getValue(xRecMasterPath + '[' + i + ']/clsflag');
- break;
- }
- }
- */
- if(pFlag != "4"){
- //중증도 마스터를 조회후 수행일자에 해당하는 내역이 없으면 행추가, 있으면 해당 row select
- fSetRecMaster(exectm, execdd, pFlag);
-
- //환자정보에 선택한 로우정보 set
- //grd_patinfo.row = curRow;
- //grd_patinfo.topRow = curRow;
-
- //중증도 상세점수조회
- fSearchRecPnt();
- }
- }
-
- }
- /**
- * 중증도 마스터를 조회후 가장 우선수행일자, 기록순번에 해당하는 내역이 없으면 행추가, 있으면 해당 row select
- */
- function fSetRecMaster(exectm, execdd, pFlag){
- //model.getValue(xRecMasterPath + '[' + curRow + ']/stat')
- var indx = 0;
-
- for(i=1; i <= getNodesetCount(xRecMasterPath); i++){
- if((model.getValue(xRecInfo + "/recflag") == model.getValue(xRecMasterPath + '[' + i + ']/recflag')) &&
- (model.getValue(xRecInfo + "/clsflag") == model.getValue(xRecMasterPath + '[' + i + ']/clsflag'))){
- indx = i;
- break;
- }
- }
-
-
- //if(grd_recmaster.rows > 1){
- if (indx > 0){ // 기록 내역이 존재할 경우 (2011.03.31 Ahn)
-
- /*
- var _recseq, _execdd;
- var selRow = 0;
-
- for(var i = 1; i < grd_recmaster.rows; i++){
- //_exectm = model.getValue(xRecMasterPath + '[' + i + ']/exectm');
- _execdd = model.getValue(xRecMasterPath + '[' + i + ']/execdd');
- //2008.08.07 dhkim 수정. 날짜로만 체크
- //if(exectm == _exectm && execdd == _execdd){
-
- if(execdd == _execdd){ // 수행일자와 같으면서 해당 recflag일 경우
- selRow = i;
- break;
- }
- }
- if(selRow > 0){
- grd_recmaster.row = selRow; //수행일자에 해당하는 row를 선택
- }else{
-
- //수행일자에 해당하는 기록이 없으면 상세내역이 update될때 메세지 뿌림.
- //2008.08.07 dhkim 수정
- //수행일자에 해당하는 기록이 있으면 무조건 가장 최근 행에 포커스 이동.
-
- //grd_recmaster.insertRow("1", "above");
- //fSetNewRowRecMaster();
- }
- */
- //수행일자에 해당하는 기록 상관없이 해당 분류구분 중의 가장 첫번째행 포커스로 이동. (2011.04.19 Ahn)
- grd_recmaster.row = indx;
- if ( pFlag =="save" )
- {
- if(model.getValue("/root/cond/nextyn") == 'Y'){
- model.setValue("/root/cond/execdd", getCurrentDate());
- }else{
- model.setValue("/root/cond/execdd", grd_recmaster.valueMatrix(grd_recmaster.row,grd_recmaster.colRef("execdd")));
- }
- }
- }else{
- //기록된 내역이 한건도 없을때 신규행을 추가
- grd_recmaster.addRow();
- fSetNewRowRecMaster();
- }
-
- if ( instUseYN == "Y" && grp_agechk.visible == true ){
- model.setValue("/root/cond/agechk", model.getValue(xRecMasterPath + '[' + grd_recmaster.row + ']/agechk'));
- }else {
- model.setValue("/root/cond/agechk", "N");
- }
- }
- /**
- * @group :
- * @ver : 2008.06.23
- * @by : dhkim
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 기록마스터에 행추가후 값 세팅
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSetNewRowRecMaster(){
- var curRow = grd_recmaster.row;
- model.setValue(xRecMasterPath + '[' + curRow + ']/execdd', model.getValue('/root/cond/execdd'));//수행일자
- model.setValue(xRecMasterPath + '[' + curRow + ']/exectm', model.getValue('/root/cond/exectm'));//수행시간
- if (model.getValue(xRecInfo + '/recflag') == '1') var recflagnm = "중증도";
- else if (model.getValue(xRecInfo + '/recflag') == '2') var recflagnm = "낙상";
- else if (model.getValue(xRecInfo + '/recflag') == '3') var recflagnm = "욕창";
- else if (model.getValue(xRecInfo + '/recflag') == '4') var recflagnm = "통증";
- model.setValue(xRecMasterPath + '[' + curRow + ']/recflagnm', recflagnm);//기록 분류구분명 추가 (2011.04.01 Ahn)
- model.setValue(xRecMasterPath + '[' + curRow + ']/totpnt', 0); //총점
- model.setValue(xRecMasterPath + '[' + curRow + ']/execnm', getUserName());//수행자명
- model.setValue(xRecMasterPath + '[' + curRow + ']/pid', model.getValue(xRecInfo + '/pid'));//등록번호
- model.setValue(xRecMasterPath + '[' + curRow + ']/hngnm', model.getValue(xRecInfo + '/hngnm'));//환자명
- model.setValue(xRecMasterPath + '[' + curRow + ']/recflag', model.getValue(xRecInfo + '/recflag'));//기록구분
- model.setValue(xRecMasterPath + '[' + curRow + ']/clsflag', model.getValue(xRecInfo + '/clsflag'));//분류구분
- model.setValue(xRecMasterPath + '[' + curRow + ']/execkind', 0);//분류구분
- model.setValue(xRecMasterPath + '[' + curRow + ']/execid', getUserId());//수행자ID
- model.setValue(xRecMasterPath + '[' + curRow + ']/indd', model.getValue(xRecInfo + '/indd'));//입원일자
- model.setValue(xRecMasterPath + '[' + curRow + ']/histstat', model.getValue(xRecInfo + '/histstat'));//이력상태
- model.setValue(xRecMasterPath + '[' + curRow + ']/cretno', model.getValue(xRecInfo + '/cretno'));//생성번호
- model.setValue(xRecMasterPath + '[' + curRow + ']/seqno', model.getValue(xRecInfo + '/seqno'));//이력일련번호
- model.setValue(xRecMasterPath + '[' + curRow + ']/stat', 'i');//그리드상태
- model.setValue(xRecMasterPath + '[' + curRow + ']/agechk', 'N');//그리드상태
- model.refresh();
- }
- /**
- * @group :
- * @ver : 2007.12.06
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 상세점수조회 셋팅
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSearchRecPnt(selflag){
-
- model.setValue("/root/cond/maddchk01",'');
- model.setValue("/root/cond/maddchk02",'');
- model.setValue("/root/cond/maddchk03",'');
- model.setValue("/root/cond/maddchk04",'');
- model.setValue("/root/cond/haddchk",'');
- model.setValue("/root/cond/maddchk99",'');
- model.setValue("/root/cond/haddchk01",'');
-
- group2.refresh();
- group4.refresh();
-
- var curRow = grd_recmaster.row;
- var clsflag = "";
- var recflag = "";
-
- if(selflag == "Sel"){
- clsflag = model.getValue(xRecMasterPath + '[' + curRow + ']/clsflag');
- recflag = model.getValue(xRecMasterPath + '[' + curRow + ']/recflag');
- if(recflag == '1'){
- model.setValue("/root/cond/clsflag", clsflag); // 중증도구분 중 선택
- }else if((recflag == '2') && (clsflag == '2')){
- model.setValue("/root/cond/clsflag", 9); // 낙상 - Morse Scale 선택
- }else if((recflag == '2') && (clsflag == '1')){
- model.setValue("/root/cond/clsflag", 8); // 낙상 - Humpty Dumpty 선택
- }else if((recflag == '3') && (clsflag == '1')){
- model.setValue("/root/cond/clsflag", 10); // 욕창 선택
- }else if(recflag == '4'){
- //model.setValue("/root/cond/clsflag", 11); // 통증 선택
- //alert("통증관련 개발중입니다.");
- //messageBox('관련 화면 준비중', 'I009');
- messageBox('통증관리기록 메뉴를 사용하십시오', 'I');
- //modal("SMMNW04800",1); //통증관리기록 화면 호출
- return;
- }
-
- fChangeCaption(model.getValue("/root/cond/clsflag")); // 선택된 구분으로 캡션 변경 (2011.04.19 ahn)
-
- }else{
- clsflag = model.getValue(xRecInfo + '/clsflag');
- recflag = model.getValue(xRecInfo + '/recflag');
-
- }
-
-
- // 상단 라디오 선택
-
- //마스터가 암것도 없을때나 행추가 상태일때는 조회안하고 바로 리턴한다.
- if(grd_recmaster.rows < 2 || model.getValue(xRecMasterPath + '[' + curRow + ']/stat') == 'i'){
- model.removeNodeset("/root/main/recpntgrup/recpntlist");// 중증도 상세점수 클리어
- model.refresh();
- }
-
- var maddchk01 = model.getValue(xRecMasterPath + '[' + curRow + ']/maddchk01');
- var maddchk02 = model.getValue(xRecMasterPath + '[' + curRow + ']/maddchk02');
- var maddchk03 = model.getValue(xRecMasterPath + '[' + curRow + ']/maddchk03');
- var maddchk04 = model.getValue(xRecMasterPath + '[' + curRow + ']/maddchk04');
- var haddchk = model.getValue(xRecMasterPath + '[' + curRow + ']/haddchk');
- var haddchk01 = model.getValue(xRecMasterPath + '[' + curRow + ']/haddchk01');
- var dinfo = maddchk01+maddchk02+maddchk03+maddchk04+haddchk+haddchk01;
-
- //중증도내역 선택했던 로우정보(수행일자)를 저장한다.
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/pid", model.getValue(xRecMasterPath+"["+curRow+"]/pid"));
- model.makeValue("/root/send/indd", model.getValue(xRecMasterPath+"["+curRow+"]/indd"));
- model.makeValue("/root/send/cretno", model.getValue(xRecMasterPath+"["+curRow+"]/cretno"));
- model.makeValue("/root/send/execdd", model.getValue(xRecMasterPath+"["+curRow+"]/execdd"));
- //model.makeValue("/root/send/execdd", model.getValue('/root/cond/copyexecdd'));
- model.makeValue("/root/send/recseq", model.getValue(xRecMasterPath+"["+curRow+"]/recseq"));
- model.makeValue("/root/send/clsflag", clsflag);
- model.makeValue("/root/send/recflag", recflag);
- model.makeValue('/root/send/bspntgrup/dinfo', dinfo);
- //상세내역, 상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
-
- model.refresh();
- //상세점수그리드조회
- if(!submit("TRMNW04007")){//상세점수조회
- messageBox('상세점수조회를', 'E009');
- return;
- }else{
- //상세점수그리드의 컬럼을 조회한 내역의 갯수만큼 화면에 보여준다.
- fColLqidtys();
- }
- //중증기록 detail 상세내역 그리드리스트를 조회한다.
-
- fSearchRecDetail();
- addchk();
- }
- /**
- * @group :
- * @ver : 2007.12.06
- * 2008.06.23 dhkim 수정
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 상세점수그리드의 컬럼을 조회한 내역의 갯수만큼 화면에 보여준다.
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fColLqidtys() {
- var cnt = model.getValue("/root/main/recpntgrup/recpntlist/cnt");
- if(Number(cnt) > 0 ){
- var fdx = 0;
- var hngnm;
- var idx = 0;
- fdx = Number(grd_recpnt.colRef("hngnm"));
- for(var i = 1 ; i <= cnt ; i++) {
- hngnm = model.getValue("/root/main/recpntgrup/pnttitlgruplist["+ i +"]/hngnm");
- idx = Number(fdx) + Number(i);
- grd_recpnt.colhidden(idx) = false; //조회된 컬럼 갯수만큼 그리드의 필드를 보여줌
- //grd_recpnt.colwidth(idx) = hngnm.length * 10; //조회된 컬럼 갯수만큼 그리드의 필드를 100으로 길이 세팅
- grd_recpnt.colwidth(idx) = 50; // 컬럼사이즈 fix
- //그리드의 타이틀필드값에 상세내역의 타이틀을 세팅
- grd_recpnt.valuematrix(0, idx) = hngnm;
- grd_recpnt.valuematrix(1, idx) = hngnm;
- }
- grd_recpnt.colhidden(grd_recpnt.colRef("totpnt")) = false;
- grd_recpnt.colhidden(grd_recpnt.colRef("resultcd")) = false;
- // grd_recpnt.colhidden(43) = false;//중증도분류코드
- // grd_recpnt.colhidden(44) = false;//column 갯수
- grd_recpnt.colwidth(grd_recpnt.colRef("totpnt")) = 50;
- grd_recpnt.colwidth(grd_recpnt.colRef("resultcd")) = 50;
- //상세점수 그리드 1,2번째 컬럼에 등록번호, 환자명 세팅
- grd_recpnt.valuematrix(2,1) = model.getValue(xRecMasterPath+"["+grd_recmaster.row+"]/pid");
- grd_recpnt.valuematrix(2,2) = model.getValue(xRecMasterPath+"["+grd_recmaster.row+"]/hngnm");
- grd_recpnt.refresh();
- }
- }
- /**
- * @group :
- * @ver : 2007.12.05
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 선택된 중증도 내역에 따른 중증도 상세내역을 조회한다.
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSearchRecDetail(){
- var curRow = grd_recmaster.row;
- model.removenode('/root/main/recdetailgrup');
- model.makeNode('/root/main/recdetailgrup');
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/pid", model.getValue(xRecMasterPath+"["+curRow+"]/pid"));
- model.makeValue("/root/send/cretno", model.getValue(xRecMasterPath+"["+curRow+"]/cretno"));
- model.makeValue("/root/send/indd", model.getValue(xRecMasterPath+"["+curRow+"]/indd"));
- model.makeValue("/root/send/seqno", model.getValue(xRecMasterPath+"["+curRow+"]/seqno"));
- model.makeValue("/root/send/recseq", model.getValue(xRecMasterPath+"["+curRow+"]/recseq"));
- model.makeValue("/root/send/clsflag", model.getValue(xRecMasterPath+"["+curRow+"]/clsflag"));
- model.makeValue("/root/send/recflag", model.getValue(xRecMasterPath+"["+curRow+"]/recflag"));
- model.makeValue("/root/send/execdd", model.getValue(xRecMasterPath+"["+curRow+"]/execdd"));
- model.makeValue("/root/send/newexecdd", model.getValue("/root/cond/execdd"));
- //상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/tar_desccnts');
- model.refresh();
- //중증도 상세내역 조회
- if(submit("TRMNW04006")){
- model.copyNode("/root/temp","/root/main");
- fShowTreeRecDetailGrup();
- }
- }
- /**
- * @group :
- * @ver : 2007.12.06
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 상세내역 트리구조로 변환
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fShowTreeRecDetailGrup(){
- //그리드를 depth에 맞게 level을 조정한다.
- var dpth = 0;
- for(var i=1; i< grd_recdetail.rows; i++){
- //grd_recdetail.IsSubtotal(i) = true;
- dpth = Number(model.getValue(xRecDetailPath+"[" + (i) + "]/depth"));
- if(dpth == 1){
- grd_recdetail.outlinelevel(i) = 1;
- }else if(dpth == 2){
- grd_recdetail.outlinelevel(i) = 2;
- }
- grd_recdetail.colDisabled(11) = true ;
- }
- //트리스타일 설정
- grd_recdetail.OutlineCol = 3;
- grd_recdetail.OutlineBar = 4;
- grd_recdetail.allstyle( "all", "background-color" ) = "#FFFFFF" ;
- var iRow = grd_recdetail.rows;
- var timsval, flag;
- for(var i = 1 ; i < grd_recdetail.rows; i++ ){
- timsval = model.getValue(xRecDetailPath+"["+ i +"]/timsval");
- flag = model.getValue(xRecDetailPath+"["+ i +"]/flag");
- //입력필드가 아닐때 점수를 회색으로 보여준다.
- if(model.getValue(xRecDetailPath+"["+ i +"]/timsval") == "") {
- grd_recdetail.cellstyle("background-color", i,5 ,i,5) = "#C0C0C0";//회색
- }
- //20080827 구분에 체크되어있고 입력필드일 때 횟수값이 0이면 배경을 노랑색으로 보여준다.
- else if(flag == 'Y' && timsval != '' && (timsval == '0' || timsval == 0)){
- grd_recdetail.cellstyle("background-color", i,5 ,i,5) = "#FCFF00";//노랑
- }
- if(model.getValue(xRecDetailPath+"["+ i +"]/supcd") == "00000000") {//level이 상위레벨일때
- //색깔(연두색)을 입혀서 보여준다.
- grd_recdetail.rowstyle(i, "data", "background-color") = "#c0ff80";
- //그리드 체크박스 readonly true로 변경
- grd_recdetail.isReadonly(i, 1, i, 1) = true;//체크박스
- }else{
- //그리드 체크박스 readonly false로 변경
- if ( model.getValue("/root/cond/agechk") =="Y" ){
- grd_recdetail.isReadonly(i, 1, i, 1) = true;//체크박스
- } else {
- grd_recdetail.isReadonly(i, 1, i, 1) = false;//체크박스
- }
-
- }
- var timsinptyn = model.getValue(xRecDetailPath + '[' + i + ']/timsinptyn');//횟수입력여부
- if(timsinptyn == 'Y'){
- //그리드 체크박스 readonly false로 변경
- if ( model.getValue("/root/cond/agechk") =="Y" ){
- grd_recdetail.isReadonly(i, 5, i, 5) = true;//체크박스
- } else {
- grd_recdetail.isReadonly(i, 5, i, 5) = false;//횟수입력필드 readonly true로 변경
- }
-
- }else if(timsinptyn == 'N'){
- grd_recdetail.isReadonly(i, 5, i, 5) = true;//횟수입력필드 readonly false로 변경
- }
- }
- model.refresh();
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @param : selRow 현재 선택한 그리드 row idx
- * selCol 현재 선택한 그리드 col idx
- * _supcd 현재 선택한 그리드 row의 상위코드값
- * @desc : 횟수입력시 입력여부가 N이면 값을 원래 값으로 리턴
- * col = 1 (구분체크박스), col=5 (횟수)
- * @return :
- * @---------------------------------------------------
- */
- function fChangeTimsValValue(selRow, selCol, _supcd){
- if(_supcd == '00000000'){
- return;
- }
- if(selCol == 5){//횟수변경 (횟수입력여부가 Y인것만 입력 가능함)
- var flag = model.getValue(xRecDetailPath + '[' + selRow + ']/flag');
- var timsinptyn = model.getValue(xRecDetailPath + '[' + selRow + ']/timsinptyn');//횟수입력가능여부
- if(timsinptyn == 'N'){
- return;
- }else if(timsinptyn == 'Y'){//횟수 입력가능상태
- if(flag == 'N'){
- //체크상태가 아닌 데이터에 횟수 입력시 원래상태로 back
- model.setValue(xRecDetailPath + '[' + selRow + ']/timsval', model.getValue(xRecDetailPath + '[' + selRow + ']/bktimsval'));
- }
- }
- }
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @param : selRow 현재 선택한 그리드 row idx
- * selCol 현재 선택한 그리드 col idx
- * _supcd 현재 선택한 그리드 row의 상위코드값
- * @desc : 체크박스 변경에 따른 선택된 같은 그룹내의 체크박스 값 변경
- * col = 1 (구분체크박스)
- * @return :
- * @---------------------------------------------------
- */
- function fChangeCheckboxValue(selRow, selCol, _supcd){
- var curFlag = model.getValue(xRecDetailPath + '[' + selRow + ']/flag');//현재선택한 체크값
- var clsflag = model.getValue('/root/cond/clsflag');
- if(_supcd == '00000000'){
- return;
- }
- if(selCol == 1){//체크값 변경
- //2008.08.07 dhkim 추가
- //중증도중환자실(중환자실입실, 중환자실퇴실 포함), 신생아ICU는 multi 체크이므로 기존에 체크된 데이터를 해제하지 않는다.
- //일반병동, 정신과병동, 혈액투석, 낙상성인(Morse Scale), 욕창은 single 체크임
- var isMulti = false;
- if(clsflag == '4' || clsflag == '6' ||clsflag == '7' || clsflag == '2'){
- isMulti = true;
- }
- var supcd, flag;
- for(var i = 1; i < grd_recdetail.rows; i++){
- supcd = model.getValue(xRecDetailPath + '[' + i + ']/supcd');
- flag = model.getValue(xRecDetailPath + '[' + i + ']/flag');
- if(!isMulti){
- //같은 그룹내에서 비교
- if(supcd != '00000000' && supcd == _supcd && flag == 'Y'){//기존 체크데이터를 해제
- //원래 체크되어있던 값을 해제, 상태 삭제로
- model.setValue(xRecDetailPath + '[' + i + ']/flag', 'N');
- }
- }
- }
- //현재 체크한 값을 선택, 상태 신규로
- if(curFlag == 'Y'){
- model.setValue(xRecDetailPath + '[' + selRow + ']/flag', 'Y');
- //20080827
- //횟수값이 입력가능 항목이면 항목에 체크되었을때 횟수필드를 노랑으로 변경
- if(model.getValue(xRecDetailPath+"["+ selRow +"]/timsval") != ''){
- grd_recdetail.cellstyle("background-color", selRow,5 ,selRow,5) = "#FCFF00";//노랑
- }
- }else if(curFlag == 'N'){
- model.setValue(xRecDetailPath + '[' + selRow + ']/flag', 'N');
- //20080827
- //횟수값이 입력가능 항목이면 항목에 체크해제되었을때 횟수필드를 하냥으로 변경
- if(model.getValue(xRecDetailPath+"["+ selRow +"]/timsval") != ''){
- grd_recdetail.cellstyle("background-color", selRow,5 ,selRow,5) = "#FFFFFF";//하양
- }
- }
- model.refresh();
- }
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim
- * @-------------------------------------------------------------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return :
- * @desc : 저장하기전 전체그리드의 변경된 내역에 따른 그리드 상태값을 변경한다.
- * (1) 체크박스 선택여부에 따른 상태값 변경
- * 1. 원래값이 Y, 현재Y이면 stat은 '-'
- * 2. 원래값이 Y, 현재N이면 stat은 'd'
- * 3. 원래값이 N, 현재N이면 stat은 '-'
- * 4. 원래값이 N, 현재Y이면 stat은 'i'
- * (2) 횟수 입력에 따른 상태값 변경
- * 1. 현재 chkbox가 Y이고 timsinptyn(횟수입력여부)이 Y일때만 입력가능함.
- * 2. 원래 chkbox가 Y, 현재Y, 현재timsval과 원래 bktimsval값이 다르면 상태값은 'u'로
- * 3. 현재 chkbox가 N인 것에 timsval값이 입력되면 timsval값을 원래상태(원래상태값:bkimsval)로 복구
- * @-------------------------------------------------------------------------------------------------------
- */
- function fChangeGridStat(){
- var bkflag, bktimsval; //원래 체크박스값, 원래횟수값
- var flag, timsval; //변경한체크박스값, 변경한횟수값
- var timsinptyn; //횟수입력여부
- var stat='-'; //변경할 그리드 상태값
- var pntstat = '-'; //상세점수의 stat
- var recmasterrow = 0;
-
- for( var idx = 1 ; idx < grd_recmaster.rows ; idx++ ){
- if ( model.getValue(xRecDetailPath + '[1]/pid') == model.getValue(xRecMasterPath + '['+ idx +']/pid')
- && model.getValue(xRecDetailPath + '[1]/execdd') == model.getValue(xRecMasterPath + '['+ idx +']/execdd')
- && model.getValue(xRecDetailPath + '[1]/recseq') == model.getValue(xRecMasterPath + '['+ idx +']/recseq')
- ){
- recmasterrow = idx;
- grd_recmaster.row = recmasterrow;
- break;
- }
- }
-
- if ( recmasterrow == 0 ){
- messageBox( capt_master.attribute("text") + " 선택" ,"I008");
- return;
- }
- for(var i = 1; i < grd_recdetail.rows; i++){
- flag = model.getValue(xRecDetailPath + '[' + i + ']/flag'); //현재체크박스값
- timsval = model.getValue(xRecDetailPath + '[' + i + ']/timsval'); //현재횟수값
- bkflag = model.getValue(xRecDetailPath + '[' + i + ']/bkflag'); //원래체크박스값
- bktimsval = model.getValue(xRecDetailPath + '[' + i + ']/bktimsval'); //원래횟수값
- timsinptyn= model.getValue(xRecDetailPath + '[' + i + ']/timsinptyn'); //횟수입력여부
- if(bkflag == 'Y' && flag == 'Y'){
- if(timsinptyn == 'Y' && (timsval != bktimsval)){
- stat = 'u';
- pntstat = 'u';
- }else{
- stat = '-';
- }
- }else if(bkflag == 'Y' && flag == 'N'){
- stat = 'd';
- pntstat = 'u';
- }else if(bkflag == 'N' && flag == 'N'){
- stat = '-';
- }else if(bkflag == 'N' && flag == 'Y'){
- stat = 'i';
- pntstat = 'u';
- }
- //alert(i + stat);
- model.setValue(xRecDetailPath + '[' + i + ']/stat', stat);
- //alert(i + stat + ' , ' + );
- }
-
-
- //상세내역이 변경되면 상세점수와 중증도마스터의 stat을 변경상태로 설정한다.
- if(pntstat == 'u'){
- //중증도점수그리드
- grd_recpnt.addStatus(2, 'update');
- //중증도 마스터그리드
- if(grd_recmaster.rowStatus(recmasterrow) != 1){//상태가 신규상태가 아니면 u로 변경
- grd_recmaster.addStatus(recmasterrow, 'update');
- model.setValue(xRecMasterPath + '[' + recmasterrow + ']/stat', 'u');
- }
- }else{
- //중증도점수그리드
- grd_recpnt.removeStatus(2, 'update');
- //중증도 마스터그리드
- if(grd_recmaster.rowStatus(recmasterrow) != 1){//상태가 신규상태가 아니면 u로 변경
- grd_recmaster.removeStatus(recmasterrow, 'update');
- model.setValue(xRecMasterPath + '[' + recmasterrow + ']/stat', '-');
- }
- }
- model.refresh();
- }
- /**
- * @group :
- * @ver : 2008.06.27
- * @by : dhkim
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 내역 삭제를 한다
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fDelete(){
- var curRow = grd_recmaster.row;
- if(model.getValue(xRecMasterPath + '[' + curRow + ']/stat') == 'i'){
- grd_recmaster.deleteRow(curRow);
- return;
- }else{
- //20080926 기록자만이 삭제를 할 수 있다.
- var recid = model.getValue(xRecMasterPath + '[' + curRow + ']/execid');
- var recnm = model.getValue(xRecMasterPath + '[' + curRow + ']/execnm');
- if(recid != getUserId()){
- messageBox('기록을 입력한 등록자( ' + recnm + ' )만 해당 기록내역을 삭제하실 수 있습니다.' , 'E');
- return ;
- }else{
- var msg = messageBox('삭제를 진행하시면 입력하신 상세내역도 전부 삭제됩니다. 선택하신 중증도 내역을', 'Q001');
- if(msg == 6){
- model.removenode('/root/send');
- model.setValue(xRecMasterPath + '[' + curRow + ']/stat', 'd');
- model.makeValue('/root/send/recmaster', grd_recmaster.getUpdateDataAll('d'));
- var pid = model.getValue(xRecMasterPath + "/pid");
- var orddd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/indd');//입원일/진료일
- var cretno = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/cretno');//생성번호
- var orddeptcd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/orddeptcd');//진료과
- var orddrid = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/medispclid');//진료의
- var ioflag = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/ioflag'); //외래/입원구분
- var signno = model.getValue(xRecMasterPath + '[' + curRow + ']/signno');//인증번호
- /* [각 구분별 기록서식코드]
- * 중증도_일반병동 : 0000002439
- * 중증도_신생아 ICU : 0000002440
- * 중증도_혈액투석 : 0000002441
- * 중증도_중환자실 : 0000002442
- * 중증도_정신과병동 : 0000002444
- * 낙상사정_아동 : 0000002447
- * 낙상사정_성인(Morse Scale) : 0000002449
- * 욕창사정 (Braden Scale) : 0000002450
- */
- var recflag = model.getValue('/root/cond/recflag');
- var clsflag = model.getValue('/root/cond/clsflag');
- var formcd;//기록서식코드
- var formnm;//서식명
- if(clsflag == '1'){
- formcd = '0000002439'; //중증도_일반병동
- formnm = '중증도사정(일반병동)';
- recflag = '1';
- clsflag = '1';
- }else if(clsflag == '2'){
- formcd = '0000002440'; //중증도_신생아 ICU
- formnm = '중증도사정(신생아 ICU)';
- recflag = '1';
- clsflag = '2';
- }else if(clsflag == '5'){
- formcd = '0000002444'; //중증도_정신과병동
- formnm = '중증도사정(정신과병동)';
- recflag = '1';
- clsflag = '5';
- }else if(clsflag == '4' || clsflag == '6' || clsflag == '7'){
- formcd = '0000002442'; //중증도_중환자실
- formnm = '중증도사정(중환자실)';
- recflag = '1';
- clsflag = '4';
- }else if(clsflag == '3'){
- formcd = '0000002441'; //중증도_혈액투석
- formnm = '중증도사정(혈액투석)';
- recflag = '1';
- clsflag = '3';
- }else if(clsflag == '8'){
- formcd = '0000002447'; //낙상사정_아동
- formnm = '낙상위험사정(Humpty Dumpty Scale)';
- recflag = '2';
- clsflag = '1';
- }else if(clsflag == '9'){
- formcd = '0000002449'; //낙상사정_성인(Morse Scale)
- formnm = '낙상위험사정(Morse Scale)'; // 성인 -> Morse Scale (2011.03.17 ahn)
- recflag = '2';
- clsflag = '2';
- }else if(clsflag == '10'){
- formcd = '0000002450'; //욕창
- formnm = '욕창위험사정(Braden Scale)'; // 욕창 -> Braden Scale (2011.04.13 ahn)
- recflag = '3';
- clsflag = '1';
- }
- Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
- // 인증 로직 호출
- if(Sign.signprocess() == true){ // ▶ 전자인증 관련 환자 인적 정보를 보내줌.
- var wSigninfo = "pid" +"▦" // 01 등록번호
- + "orddd" +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
- + "cretno" +"▦" // 03 생성번호
- + "signno" +"▦" // 04 서명번호(인증번호)
- + "recdd" +"▦" // 05 실제 기록이 이루어진 기록일자
- + "rectm" +"▦" // 06 실제 기록이 이루어진 기록시간
- + "recsaveflag" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- + "signflag" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- + "signgenrflag" +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
- + "formcd" +"▦" // 10 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
- + "orddeptcd" +"▦" // 11 진료부서코드
- + "orddrid" +"▦" // 12 진료의사ID (집도의)
- + "signbfcnts" +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
- + "signaftcnts" +"▦" // 14 ▶ 공인인증 처리후 데이터
- + "screenid" +"▦" // 15 ▶ 화면아이디
- + "certflag" +"▩" // 16 ▶ 인증여부( T : 임시저장, C : 인증저장)
- + pid +"▦" // 01 등록번호
- + orddd +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
- + cretno +"▦" // 03 생성번호
- + signno +"▦" // 04 서명번호(인증번호)
- + getCurrentDate() +"▦" // 05 실제 기록이 이루어진 기록일자
- + getCurrentTime() +"▦" // 06 실제 기록이 이루어진 기록시간
- + "Y" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- + "02" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- + ioflag +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
- + formcd +"▦" // 10 각 기록지별 서식코드 (emr.mrfmform)
- + orddeptcd +"▦" // 11 진료부서코드
- + orddrid +"▦" // 12 진료의사ID
- + Sign.signedInfos[1] +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
- + Sign.signedInfos[2] +"▦" // 14 ▶ 공인인증 처리후 데이터
- + getScreenID() +"▦" // 15 ▶ 화면아이디
- + "C" +"▩"; // 16 ▶ 인증여부( T : 임시저장, C : 인증저장)
- model.makeValue("/root/send/signinfo" , wSigninfo);
- } else {
- return ;
- }
- if(!submit('TXMNW04001')){
- messageBox('중증도 내역의 삭제를', 'E009');
- return;
- }else{
- //중증도조회
- fSearchRecMaster(grd_patinfo.row);
- }
- }else if(msg == 7){
- return;
- }
- }
- }
- }
- // ※ 인증데이터 생성함수 만들기
- function fMake_SignData(){
- // ▶ 기록 관련 인스턴스 전체를 copy, 인증에 저장할 모든 Instance AddNode한다.
-
- if(sAllSignSave == true){
-
- Sign.addnode("/root/cond");
- Sign.addnode("/root/main/patinfo/patlist[" + (patRow) + "]");
- Sign.addnode("/root/main/recgrup/recgruplist[" + (recRow) + "]");
- Sign.addnode("/root/main/recpntgrup" );
- Sign.addnode("/root/main/recdetailgrup");
- Sign.addnode("/root/temp/signdata/recpntgrup");
- Sign.addnode('/root/temp/signdata/detailinfo');
-
- } else{
- Sign.addnode("/root/cond");
- Sign.addnode("/root/main/patinfo/patlist[" + (grd_patinfo.row-1) + "]");
- Sign.addnode("/root/main/recgrup/recgruplist[" + (grd_recmaster.row) + "]");
- Sign.addnode("/root/main/recpntgrup" );
- Sign.addnode("/root/main/recdetailgrup");
- Sign.addnode("/root/temp/signdata/recpntgrup");
- Sign.addnode('/root/temp/signdata/detailinfo');
- }
-
- /***************************************/
- //1.상세점수 노드 만들기
- //2.중증도구분 한글명으로 보내기
- /****************************************/
- /*/ --------------------------
- var condPath = Sign.XPATH_SIGNINFO + "/cond";
- //중증도 구분
- var clsflag = model.getValue(condpath + "/clsflag");
- if(clsflag == '1'){
- model.makeValue(condpath + "/recflagnm", '중증도');
- model.makeValue(condpath + "/clsflagnm", '일반병동');
- }*/
- }
- //input수행일자에 해당하는 기록일이 있는지 조회
- //신규데이터가 아닌것중..(stat != 'i')
- //@param : iptExecdd 입력하고자 하는 수행일자(input 컴포넌트)
- //@return : arr[0] - 기록여부 (true/false)
- // arr[1] - signno (기록여부가 true일때 해당기록의 signno를 할당)
- // 20080820 - array로 변경
- function fIsRecorded(iptExecdd){
- var retArr = new Array(1);
- var recorded = false;
- var signno = '';
- var execdd;
- var stat;
- for(var i = 1; i < grd_recmaster.rows; i++){
- execdd = model.getValue(xRecMasterPath + '[' + i + ']/execdd');
- stat = model.getValue(xRecMasterPath + '[' + i + ']/stat');
- if(execdd != '' && iptExecdd == execdd && stat != 'i'){
- signno = model.getValue(xRecMasterPath + '[' + i + ']/signno');
- recorded = true;
- retArr[0] = recorded;
- retArr[1] = signno;
- return retArr;
- }
- }
- retArr[0] = recorded;
- retArr[1] = signno;
- return retArr;
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim
- * @-------------------------------------------------------------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return :
- * @desc : [인증저장]
- * 중증도 마스터와 상세내역을 인증저장한다.
- * - 저장전 중증도 상세내역 점수의 유효성을 체크한다.
- * - 상세내역의 체크된 내역 점수를 합산하여 기록마스터의 totpnt에 set한다.
- * - 이미 기록이 입력되어 있는 경우에 -> grd_recmaster에 상태값이 'u'임.
- * 기록된 날짜가 조회조건의 수행일자와 같으면 db에 update처리하고
- * 기록된 날짜와 조회조건의 수행일자가 다르면 신규로 insert처리한다.(메세지로 알려줄것)
- * @-------------------------------------------------------------------------------------------------------
- */
- function fSignSave(){
-
- //debugger;
- sAllSignSave = false;
- var dschdd = model.getValue("/root/main/paminfo/pamlist/dschdd"); //퇴원일자
- var indd = model.getValue("/root/main/paminfo/pamlist/indd"); //입원일자
- var execdd = model.getValue("/root/cond/execdd"); //수행일자
- if(indd != '' || indd ==null) {
- if((execdd < indd) || (execdd > dschdd)) { //입원,퇴원일자 사이의 수행일자만 입력하도록 블러킹
- messageBox("수행하려는 일자는 입원일자(" +indd.substring(0,4) + "-" + indd.substring(4, 6) + "-" + indd.substring(6) + ")이전 또는 퇴원일자("+dschdd.substring(0,4) + "-" + dschdd.substring(4, 6) + "-" + dschdd.substring(6)+")이후의 일자가 될 수","I004");
- return;
- }
- }
- var recmasterrow = 0;
-
- for( var idx = 1 ; idx < grd_recmaster.rows ; idx++ ){
- if ( model.getValue(xRecDetailPath + '[1]/pid') == model.getValue(xRecMasterPath + '['+ idx +']/pid')
- && model.getValue(xRecDetailPath + '[1]/execdd') == model.getValue(xRecMasterPath + '['+ idx +']/execdd')
- && model.getValue(xRecDetailPath + '[1]/recseq') == model.getValue(xRecMasterPath + '['+ idx +']/recseq')
- ){
- recmasterrow = idx;
- grd_recmaster.row = recmasterrow;
- break;
- }
- }
-
- if ( recmasterrow == 0 ){
- messageBox( capt_master.attribute("text") + " 선택" ,"I008");
- return;
- }
-
- var recMasterStat = model.getValue(xRecMasterPath + '[' + grd_recmaster.row + ']/stat');//기록마스터의 상태값
-
- /*
- //1. 신규등록
- // 1) 저장된 기록이 하나도 없을때 최초등록의 경우 insert
- // 2) input에 수행일자가 해당 기록에 없는 경우... 이미 기록된 내역을 해당 수행일자로 insert
- // 2008.08.27 수정요청사항
- // 3) input에 수행일자가 해당 기록에 있는 경우... 수정된 내역을 수행일시는 현재일자+현재시간 으로 insert
- //recMasterStat이 '-'이라도 저장할 수행일자가 기록내역에 없으면 신규 insert
- //--------------------------------------------------------------------------------------------
- //2008.08.27 수정요청사항 (기록수정은 진행하지 않는다.)
- //2. 수정등록 (사용안함)
- // 1) 해당기록의 항목을 선택하여 수정하는 경우 수정한 항목을 update
- // 2) input에 수행일자가 해당 기록에 있는 경우... 수정된 내역을 해당수행일자로 update
- // (저장할 수행일자가 기록내역에 있으면 이미 저장된 기록내역이 있습니다 메세지 뿌려줄것)
- */
- //2008.08.27 사용안함-->input수행일자에 해당되는 기록이 이미 입력되어 있는 경우에 db에 update처리
- //2008.08.27 변경됨-->input수행일자에 해당되는 기록이 이미 입력되어 있는 경우에 db에 insert처리, 단, 수행일시는 무조건 현재일시로 저장
- //input수행일자에 해당되는 기록이 저장되어있지 않은경우 db에 insert처리
- var execdd = model.getValue('/root/cond/execdd');//조회조건의 수행일자
- var exectm = model.getValue('/root/cond/exectm');//조회조건의 수행시간
- //수행일시 필수입력 체크_20090122_SMY추가
- if(execdd == ""){
- messageBox("수행일자를 입력하세요","I");
- model.setFocus("ipt_indate");
- return;
- }
- if(exectm == ""){
- messageBox("수행시간을 입력하세요","I");
- model.setFocus("ipt_time");
- return;
- }
- /*
- var dschdd = model.getValue("/root/main/patinfo/patlist[" + (grd_patinfo.row-1) + "]/dschdd"); //퇴원일자
- if(dschdd != '99991231') {
- if(execdd > dschdd){
- var msgStr = '기록하시려는 일자(';
- msgStr += execdd.substring(0,4) + '-' + execdd.substring(4, 6) + '-' + execdd.substring(6);
- if(ioflag == 'O'){
- msgStr += ')는 환자의 예약일자(';
- }else{
- msgStr += ')는 환자의 퇴원일자(';
- }
- msgStr += dschdd.substring(0,4) + '-' + dschdd.substring(4, 6) + '-' + dschdd.substring(6);
- msgStr += ') 이후일자가 될 수';
- messageBox(msgStr, 'I004');
- return;
- }
- }
- */
- var recdd = model.getValue(xRecMasterPath + '[' + grd_recmaster.row + ']/execdd');//기록된 일자
- var isRecordedArr = fIsRecorded(execdd);//input수행일자에 해당되는 기록이 있는지 여부
- //20080820 array로 변경
- //arr[0]은 기록여부 true/false
- //arr[1]은 기록여부 true일때의 signno
- var signno = '';//인증번호
- var siflag = 'N';//default 는 N. 기존의 데이터를 그대로 신규로 insert하는경우flag값
- // Y인경우 : 1.다른일자의 기록내역은 있으나 input의 수행일자에 해당되는 기록이 없을때..
- // 2. input의 수행일자에 해당되는 기록이 있을때..
- //저장전 유효성을 체크한다.
- if(fIsValid()){
- //상세내역의 체크점수를 합산하여 마스터와 상세점수의 totpnt에 set한다.
- var totPnt = fSumPnt();
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/totpnt', totPnt);//마스터의 총점
- model.setValue('/root/main/recpntgrup/recpntlist/totpnt', totPnt);//상세점수의 총점
- //총점에 해당하는 분류군을 조회한후 마스터와 상세점수의 분류군에 set한다.
- var bspntnm = fLoadBsPnt(totPnt);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/resultnm', bspntnm);//마스터의 분류군
- model.setValue('/root/main/recpntgrup/recpntlist/resultcd', bspntnm);//상세점수의 총점
-
- var maddchk01 = model.getValue("/root/cond/maddchk01");
- var maddchk02 = model.getValue("/root/cond/maddchk02");
- var maddchk03 = model.getValue("/root/cond/maddchk03");
- var maddchk04 = model.getValue("/root/cond/maddchk04");
- var haddchk = model.getValue("/root/cond/haddchk");
- var maddchk99 = model.getValue("/root/cond/maddchk99");
- var haddchk01 = model.getValue("/root/cond/haddchk01");
-
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/maddchk01', maddchk01);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/maddchk02', maddchk02);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/maddchk03', maddchk03);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/maddchk04', maddchk04);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/haddchk', haddchk);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/maddchk99', maddchk99);
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/haddchk01', haddchk01);
-
-
- if(model.getValue("/root/cond/clsflag") == "9"){
- if(maddchk01 == "" && maddchk02 == "" && maddchk03 == "" && maddchk04 == "" && maddchk99 == "" ){
- messageBox("기타 항목은 반드시 하나 이상 체크 하셔야 합니다.","I");
- return;
- }
- }
-
- //상세내역 체크한 점수를 항목별로 합산하여 상세점수 노드에 set한다.
- fSetRecDetailPnt();
- var msgStr;
- if(isRecordedArr[0]){
- var execStr = execdd.substring(0, 4) + '-' + execdd.substring(4, 6) + '-' + execdd.substring(6, 8);
- msgStr = '이미 저장된 기록 내역(' + execStr + ')이 있습니다. 다시'; //db insert (수행일시를 현재일시로)
- //20080827 주석처리 signno = isRecordedArr[1];//해당기록의 signno를 할당해 db에 update한다.(사용안함)
- signno = '';//신규이기때문에 signno를 새로딴다.
- }else{//신규등록및 이미기록되었으나 기록일자와 수행일자가 같을때..
- //msgStr = '중증도 및 위험사정의 기록내역을';
- msgStr = ""; // 메시지는 '저장하시겠습니까?' 로 통일 (2011.04.18 Ahn)
- }
- //recMasterStat이 '-'경우 'u'로 넘김.
- //중증도점수그리드
- grd_recpnt.addStatus(2, 'update');
- //중증도 마스터그리드
- //20080827 상태가 신규가 아니면 u 상태로 db에 복사해 insert로 변경됨...
- if(grd_recmaster.rowStatus(grd_recmaster.row) != 1){//상태가 신규상태가 아니면 u로 변경
- grd_recmaster.addStatus(grd_recmaster.row, 'update');
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/stat', 'u');
- siflag = 'Y';//기존데이터를 복사해 insert하는 경우 Y아니면 N
- }
- var msg = messageBox(msgStr, 'Q002');//저장하시겠습니까?
- if(Number(msg) == 6){//예
- model.removenode('/root/send');
- model.makeValue('/root/send/sch_execdd', execdd);//조회조건에 있는 수행일자
- model.makeValue('/root/send/sch_exectm', exectm);//조회조건에 있는 수행시간
- model.makeValue('/root/send/siflag', siflag);//기존데이터를 복사해 insert하는 경우 Y아니면 N
- model.makeValue('/root/send/ioflag', model.getValue('/root/cond/ioflag'));//외래입원구분
-
- var pid = model.getValue(xRecMasterPath + "/pid");
- var orddd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/indd');//입원일/진료일
- var cretno = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/cretno');//생성번호
- var orddeptcd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/orddeptcd');//진료과
- var orddrid = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/medispclid');//진료의
- var ioflag = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/ioflag'); //외래/입원구분
- //신규(insert)일때는 signno를 초기화한다.
- /*
- if((recMasterStat == 'i') || (recMasterStat == 'u' && execdd != recdd)){
- signno = '';
- }else{
- signno = model.getValue(xRecMasterPath + "[" + grd_recmaster.row + "]/signno");
- }
- */
- //alert(grd_recmaster.row + '의 signno : ' + signno);
- /* [각 구분별 기록서식코드]
- * 중증도_일반병동 : 0000002439
- * 중증도_신생아 ICU : 0000002440
- * 중증도_혈액투석 : 0000002441
- * 중증도_중환자실 : 0000002442
- * 중증도_정신과병동 : 0000002444
- * 낙상사정_아동 : 0000002447
- * 낙상사정_성인(Morse Scale) : 0000002449
- * 욕창사정(Braden Scale) : 0000002450
- */
- var recflag = model.getValue('/root/cond/recflag');
- var clsflag = model.getValue('/root/cond/clsflag');
- var formcd;//기록서식코드
- var formnm;//서식명
- if(clsflag == '1'){
- formcd = '0000002439'; //중증도_일반병동
- formnm = '중증도사정(일반병동)';
- recflag = '1';
- clsflag = '1';
- }else if(clsflag == '2'){
- formcd = '0000002440'; //중증도_신생아 ICU
- formnm = '중증도사정(신생아 ICU)';
- recflag = '1';
- clsflag = '2';
- }else if(clsflag == '5'){
- formcd = '0000002444'; //중증도_정신과병동
- formnm = '중증도사정(정신과병동)';
- recflag = '1';
- clsflag = '5';
- }else if(clsflag == '4' || clsflag == '6' || clsflag == '7'){
- formcd = '0000002442'; //중증도_중환자실
- formnm = '중증도사정(중환자실)';
- recflag = '1';
- clsflag = '4';
- }else if(clsflag == '3'){
- formcd = '0000002441'; //중증도_혈액투석
- formnm = '중증도사정(혈액투석)';
- recflag = '1';
- clsflag = '3';
- }else if(clsflag == '8'){
- formcd = '0000002447'; //낙상사정_아동
- formnm = '낙상위험사정(Humpty Dumpty Scale)';
- recflag = '2';
- clsflag = '1';
- }else if(clsflag == '9'){
- formcd = '0000002449'; //낙상사정_성인 (Morse Scale)
- formnm = '낙상위험사정(Morse Scale)'; // 성인 -> Morse Scale 변경 (2011.03.17 ahn)
- recflag = '2';
- clsflag = '2';
- }else if(clsflag == '10'){
- formcd = '0000002450'; //욕창
- formnm = '욕창위험사정(Braden Scale)'; // 욕창 -> Braden Scale 변경 (2011.04.13 ahn)
- recflag = '3';
- clsflag = '1';
- }
- //alert(formcd);
- //상세점수내역 노드를 만들어서 보낸다.
- //temp/signdata/recpntgrup/recpntlist/timsval
- //temp/signdata/recpntgrup/recpntlist/hngnm
- model.removenode('/root/temp/signdata');
- model.makeNode('/root/temp/signdata/recpntgrup/recpntlist');
- //중증기록구분을 한글명으로 노드를 만들어서 내보낸다.
- var xDetailPath = '/root/temp/signdata/detailinfo';
- model.makeNode(xDetailPath);
- model.makeValue(xDetailPath + '/formnm', formnm);
- model.makeValue(xDetailPath + '/recflag', recflag);
- model.makeValue(xDetailPath + '/clsflag', clsflag);
- var recpntCnt = getNodesetCount("/root/main/recpntgrup/pnttitlgruplist");
- var timsval, hngnm;
- var colno;
- for(var i = 1; i <= recpntCnt; i++){
- if(i < 10){
- colno = '0' + i;
- }else{
- colno = i;
- }
- timsval = model.getValue(xRecPntPath + '/timsval' + colno);
- hngnm = model.getValue('/root/main/recpntgrup/pnttitlgruplist[' + i + ']/hngnm');
- //alert(colno + ', ' + timsval + ', ' + hngnm + ', ' + i);
- model.makeValue('/root/temp/signdata/recpntgrup/recpntlist[' + i + ']/timsval', timsval);
- model.makeValue('/root/temp/signdata/recpntgrup/recpntlist[' + i + ']/hngnm', hngnm);
- }
- // Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
- // 인증 로직 호출
- if(Sign.signprocess() == true){ // ▶ 전자인증 관련 환자 인적 정보를 보내줌.
- //alert(Sign.signedInfos[1]);
- var wSigninfo = "pid" +"▦" // 01 등록번호
- + "orddd" +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
- + "cretno" +"▦" // 03 생성번호
- + "signno" +"▦" // 04 서명번호(인증번호)
- + "recdd" +"▦" // 05 실제 기록이 이루어진 기록일자
- + "rectm" +"▦" // 06 실제 기록이 이루어진 기록시간
- + "recsaveflag" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- + "signflag" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- + "signgenrflag" +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
- + "formcd" +"▦" // 10 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
- + "orddeptcd" +"▦" // 11 진료부서코드
- + "orddrid" +"▦" // 12 진료의사ID (집도의)
- + "signbfcnts" +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
- + "signaftcnts" +"▦" // 14 ▶ 공인인증 처리후 데이터
- + "screenid" +"▦" // 15 ▶ 화면아이디
- + "certflag" +"▩" // 16 ▶ 인증여부( T : 임시저장, C : 인증저장)
- + pid +"▦" // 01 등록번호
- + orddd +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
- + cretno +"▦" // 03 생성번호
- + signno +"▦" // 04 서명번호(인증번호)
- + getCurrentDate() +"▦" // 05 실제 기록이 이루어진 기록일자
- + getCurrentTime() +"▦" // 06 실제 기록이 이루어진 기록시간
- + "Y" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- + "02" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- + ioflag +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
- + formcd +"▦" // 10 각 기록지별 서식코드 (emr.mrfmform)
- + orddeptcd +"▦" // 11 진료부서코드
- + orddrid +"▦" // 12 진료의사ID
- + Sign.signedInfos[1] +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
- + Sign.signedInfos[2] +"▦" // 14 ▶ 공인인증 처리후 데이터
- + getScreenID() +"▦" // 15 ▶ 화면아이디
- + "C" +"▩"; // 16 ▶ 인증여부( T : 임시저장, C : 인증저장)
- model.makeValue("/root/send/signinfo" , wSigninfo);
- } else {
- return ;
- }
- var test_1 = grd_recmaster.getUpdateDataAll('i'); // 150114 - AYS
- model.makeValue('/root/send/recmaster', grd_recmaster.getUpdateDataAll('i'));
- //model.makeValue('/root/send/recmaster', (sRecHeader + sRecData));
-
-
- for( var idx = 1 ; idx <= getNodesetCount(xRecDetailPath) ; idx++){
- if ( Number(model.getValue(xRecDetailPath + '[' + idx + ']/basepnt_multi')) > 0 ){
- model.setValue( xRecDetailPath + '[' + idx + ']/basepnt',model.getValue(xRecDetailPath + '[' + idx + ']/basepnt_multi'));
- }
- }
-
- var test_2 = grd_recdetail.getUpdateDataAll('i'); // 150114 - AYS
- model.makeValue('/root/send/recdetail', grd_recdetail.getUpdateDataAll('i'));
- //model.makeValue('/root/send/recdetail', (sDetailHeader + sDetailData));
-
- fLoadFallPnt(recflag, clsflag, bspntnm);
- if(!submit('TXMNW04001')){
- messageBox('저장을', 'E009');
- return;
- }else{
- model.removenode("/root/cond/copyexecdd");
- //환자리스트조회
- //fSearchPatList();
- //중증도조회
- //fSearchRecMaster(grd_patinfo.row);
- //중증도상세점수조회
- //fSearchRecPnt();
- var condparam = '';
- var i = grd_patinfo.row -1;
-
- if(model.getValue("/root/cond/nextyn")=='Y'){
- if((grd_patinfo.rows-2) > i){
- i = i+1 ;
- }else if((grd_patinfo.rows-2) == i){
- messageBox('다음 환자가 없습니다.', 'E');
- }
- }
-
- if(model.getValue("/root/main/paminfo/pamlist/dschdd") == "99991231"){ //퇴원환자가 아닌경우
- if( model.getValue('/root/main/patinfo/patlist[' + i + ']/ioflag') =="O" ) {
- //외래환자 상단정보 등록
- condparam = "O"+"▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/pid")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/indd")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/cretno")
- + "▦" + getUserInfo("dutplceinstcd")
- + getCurrentDate();
-
- }
- // 응급실 추가 2011.03.15 (Ahn)
- else if(model.getValue('/root/main/patinfo/patlist[' + i + ']/ioflag') =="E" ) {
- //응급환자 상단정보 등록
- condparam = "E"+"▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/pid")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/indd")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/cretno")
- + "▦" + getUserInfo("dutplceinstcd")
- + getCurrentDate();
- }else{
- //재원환자 상단정보 등록
- condparam = "I"+"▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/pid")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/indd")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/cretno")
- + "▦" + getUserInfo("dutplceinstcd")
- + getCurrentDate();
- }
- }else { //퇴원환자인 경우
- if( model.getValue('/root/main/patinfo/patlist[' + i + ']/ioflag') =="O" ) {
- //외래환자 상단정보 등록
- condparam = "O"+"▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/pid")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/indd")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/cretno")
- + "▦" + getUserInfo("dutplceinstcd")
- + "▦" + model.getValue("/root/main/paminfo/pamlist/dschdd");
-
- }// 응급실 추가 2011.03.15 (Ahn)
- else if(model.getValue('/root/main/patinfo/patlist[' + i + ']/ioflag') =="E" ) {
- //응급환자 상단정보 등록
- condparam = "E"+"▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/pid")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/indd")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/cretno")
- + "▦" + getUserInfo("dutplceinstcd")
- + "▦" + model.getValue("/root/main/paminfo/pamlist/dschdd");
- }else{
- //재원환자 상단정보 등록
- condparam = "I"+"▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/pid")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/indd")
- + "▦" + model.getValue("/root/main/patinfo/patlist[" + i + "]/cretno")
- + "▦" + getUserInfo("dutplceinstcd")
- + "▦" + model.getValue("/root/main/paminfo/pamlist/dschdd");
- }
- }
- setParameter("condparam", condparam);
- modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
-
- //조회조건 clear
- model.setValue('/root/cond/pid', '');
- //환자정보 표시 clear (2011.03.29 Ahn)
- model.setValue('root/cond/patnm', '');
- model.setValue('root/cond/sexage', '');
- model.setValue('root/cond/age', '');
-
- // 해당 환자 pid 임시 저장
- var patPid = model.getValue("/root/main/patinfo/patlist[" + i + "]/pid");
- var patIdx = "";
-
- //환자정보 조회
- fSearchPatList(); // 환자정보 재조회 (2011.03.30 Ahn)
-
- // 해당 환자정보 재 표시
- model.setValue('/root/cond/pid', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/pid"));
- model.setValue('/root/cond/patnm', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/hngnm"));
- model.setValue('/root/cond/sexage', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/sexage"));
- model.setValue('/root/cond/age', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/age"));
-
-
- // 해당 환자 인덱스 선택 재 지정
- for(i=2; i<=grd_patinfo.rows; i++){
- if(patPid == grd_patinfo.valueMatrix(i,grd_patinfo.colRef("pid"))){
- model.setFocus("grd_patinfo");
- patIdx = i;
- break;
- }
- }
- grd_patinfo.row = patIdx;
-
- //중증도/낙상/욕창 내역 조회(grd_recmaster)
- fSearchRecMaster(patIdx,"save");
- }
- }else if(Number(msg) == 7){//아니오
- return;
- }
- }
- }
- /**
- * @group :
- * @ver : 2008.08.20
- * @by : dhkim
- * @-------------------------------------------------------------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return :
- * @desc : 상세내역 체크한 점수를 항목별로 합산하여 상세점수 노드에 set한다.
- * 0. 항목의 index값을 임시저장
- * 1. 항목에 해당하는 명칭 get (pnttitlgruplist)
- * 2. 1의 명칭에 해당하는 clstlcd get (recdetailgruplist)
- * 3. supcd가 2인 그룹의 첫번째 index를 찾는다.
- * 4. 3부터 detail값을 반복하여 supcd가 2인 그룹의 점수를 합산 (recdetailgruplist)
- * 5. 상세점수에 0번째 timsval+0 노드에 3값을 세팅 (recpntlist)
- */
- function fSetRecDetailPnt(){
- var recpntTitlCnt = getNodesetCount("/root/main/recpntgrup/pnttitlgruplist");
- var titlhngnm;
- var clstlcd;
- var detlFidx;
- var basepnt = 0;
- var totpnt = 0;
- var flag;
- if ( model.getValue("/root/cond/agechk") == "Y" ){
- return;
- }
- for(var i = 1; i <= recpntTitlCnt; i++){
- //1. 항목에 해당하는 명칭 get (pnttitlgruplist)
- titlhngnm = model.getValue('/root/main/recpntgrup/pnttitlgruplist[' + i + ']/hngnm');
- //2. 1의 명칭에 해당하는 clstlcd get (recdetailgruplist)
- clstlcd = model.getValue("/root/main/recdetailgrup/recdetailgruplist[hngnm='" + titlhngnm + "']/clstlcd");
- //3. supcd가 2인 그룹의 첫번째 index를 찾는다.
- detlFidx = grd_recdetail.findRow(clstlcd, 1, grd_recdetail.colRef("supcd"));
- //alert('detlFidx : ' + detlFidx + ', clstlcd : ' + clstlcd );
- //4. 3부터 detail값을 반복하여 supcd가 2인 그룹의 점수를 합산 (recdetailgruplist)
- for(var j = detlFidx; j <= grd_recdetail.rows; j++){
- supcd = model.getValue(xRecDetailPath + '[' + j + ']/supcd');
- flag = model.getValue(xRecDetailPath + '[' + j + ']/flag');
- //basepnt = model.getValue(xRecDetailPath + '[' + j + ']/basepnt');
- //alert('supcd : ' + supcd + ', flag : ' + flag + ', basepnt : ' + basepnt);
- if(supcd == clstlcd){
- if(flag == 'Y'){//체크된 데이터만 합산한다.
- if( model.getValue(xRecDetailPath + '[' + j + ']/timsinptyn') == "Y" ){//횟수입력여부
- basepnt = Number(model.getValue(xRecDetailPath + '[' + j + ']/basepnt')) * Number(model.getValue(xRecDetailPath + '[' + j + ']/timsval'));
- } else {
- basepnt = Number(model.getValue(xRecDetailPath + '[' + j + ']/basepnt'));
- }
- model.makeValue(xRecDetailPath + '[' + j + ']/basepnt_multi',basepnt);
- totpnt += Number(basepnt);
- }
- }else{
- j = grd_recdetail.rows;//for루프를 멈춘다.
- }
- }
- //5. 상세점수에 i번째 timsval+i 노드에 3값을 세팅 (recpntlist)
- if(i < 10){
- colno = '0' + i;
- }else{
- colno = i;
- }
- model.setValue(xRecPntPath + '/timsval' + colno, totpnt);
- totpnt = 0; //초기화
- basepnt=0;
- }
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim not used
- * @-------------------------------------------------------------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return :
- * @desc : 중증도 마스터와 상세내역을 저장한다.
- * - 저장전 중증도 상세내역 점수의 유효성을 체크한다.
- * - 상세내역의 체크된 내역 점수를 합산하여 기록마스터의 totpnt에 set한다.
- * - 이미 기록이 입력되어 있는 경우에 -> grd_recmaster에 상태값이 'u'임.
- * 기록된 날짜가 조회조건의 수행일자와 같으면 db에 update처리하고
- * 기록된 날짜와 조회조건의 수행일자가 다르면 신규로 insert처리한다.(메세지로 알려줄것)
- * @-------------------------------------------------------------------------------------------------------
- */
- function fSave(){
- var recMasterStat = model.getValue(xRecMasterPath + '[' + grd_recmaster.row + ']/stat');//기록마스터의 상태값
- if(recMasterStat == '-'){//저장내역 없으면 바로리턴
- return false;
- }
- //저장전 유효성을 체크한다.
- if(fIsValid()){
- //상세내역의 체크점수를 합산하여 마스터의 totpnt에 set한다.
- var totPnt = fSumPnt();
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/totpnt', totPnt);
- var execdd = model.getValue('/root/cond/execdd');//조회조건의 수행일자
- var exectm = model.getValue('/root/cond/exectm');//조회조건의 수행시간
- var recdd = model.getValue(xRecMasterPath + '[' + grd_recmaster.row + ']/execdd');//기록된 일자
- var msgStr = '중증도 및 위험사정의 기록내역을';
- //이미 기록이 입력되어 있는 경우에 기록된 날짜가 조회조건의 수행일자와 같으면 db에 update처리
- if(recMasterStat == 'u' && execdd != recdd){
- msgStr = '이미 저장된 기록 내역이 있습니다. 다시';
- }else{//신규등록및 이미기록되었으나 기록일자와 수행일자가 같을때..
- msgStr = '중증도 및 위험사정의 기록내역을';
- }
- var msg = messageBox(msgStr, 'Q002');//저장하시겠습니까?
- if(Number(msg) == 6){//예
- model.removenode('/root/send');
- model.makeValue('/root/send/recmaster', grd_recmaster.getUpdateDataAll('i'));
- model.makeValue('/root/send/recdetail', grd_recdetail.getUpdateDataAll('i'));
- model.makeValue('/root/send/sch_execdd', execdd);//조회조건에 있는 수행일자
- model.makeValue('/root/send/sch_exectm', exectm);//조회조건에 있는 수행시간
- if(!submit('TXMNW04001')){
- messageBox('중증도및 위험사정의 저장을', 'E009');
- return;
- }else{
- //중증도조회
- fSearchRecMaster(grd_patinfo.row);
- }
- }else if(Number(msg) == 7){//아니오
- return;
- }
- }
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim
- * @-------------------------------------------------------------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return : totpnt 총점
- * @desc : 상세내역 체크된 내역의 점수를 합산한다.
- * @-------------------------------------------------------------------------------------------------------
- */
- function fSumPnt(){
- var flag, timsval;
- var totPnt = 0;
-
- if ( model.getValue("/root/cond/agechk") == "Y" ){
- return "";
- }
- for(var i = 1; i < grd_recdetail.rows; i++){
- flag = model.getValue(xRecDetailPath + '[' + i + ']/flag');
- if(flag == 'Y'){
- if( model.getValue(xRecDetailPath + '[' + i + ']/timsinptyn') == "Y" ){//횟수입력여부
- timsval = Number(model.getValue(xRecDetailPath + '[' + i + ']/basepnt')) * Number(model.getValue(xRecDetailPath + '[' + i + ']/timsval'));
- } else {
- timsval = Number(model.getValue(xRecDetailPath + '[' + i + ']/basepnt'));
- }
- totPnt += Number(timsval);
- }
- }
- return totPnt;
- }
- /**
- * @group :
- * @ver : 2008.06.25
- * @by : dhkim
- * @-------------------------------------------------------------------------------------------------------
- * @type : function
- * @access : public
- * @param :
- * @return :
- * @desc : 중증도 마스터와 상세내역을 저장하기 전 데이터의 유효성을 체크한다.
- * - 상세내역에 미체크 내역이 있는지 확인한다.
- * - 2008.08.06 dhkim 요구사항 추가
- * [모든항목 필수체크하는경우]
- * 1) 중증도 : 일반병동, 정신과병동(DT, ECT항목은 필수아님), 혈액투석
- * 2) 욕창
- * clsflag = 1, 3, 5, 10(화면내부)
- *
- * [모든항목 필수체크아닌경우]
- * 1) 중증도 : 중환자실, 신생아ICU
- * 2) 낙상 : 성인, 소아
- * clsflag = 2, 4, 8, 9(화면내부)
- * - 2008.08.20 dhkim 요구사항 추가
- * 낙상의 경우 나이를 체크할것.
- * 낙상 소아 : 만 12세 미만 clsflag = 8
- * 낙상 성인 : 만 13세 이상 clsflag = 9
- * - 2008.08.27 dhkim 요구사항 추가
- * 체크된 항목에 대해 횟수 입력필드가 0이면 횟수입력하라는 메세지 띄울것
- * @-------------------------------------------------------------------------------------------------------
- */
- function fIsValid(){
- var supcd;
- var _supcd, _flag, _hngnm, _timsval;
- var isChecked = false;
- var clsflag = model.getValue('/root/cond/clsflag');
- var age = model.getValue("/root/main/patinfo/patlist[" + (grd_patinfo.row-1) + "]/sexage").split('/')[1];
- //환자가 선택되지 않은경우 기록을 입력할수 없다.
- var pid = grd_recpnt.valueMatrix(2, 1);//20080917 수정
- if(pid == ''){
- messageBox('기록하려는 환자정보가 존재하지 않습니다. 환자를 먼저 선택하신 후 기록을 작성하세요.', 'E');
- return false;
- }
- //20080827
- //체크된 항목에 대해 횟수 입력필드가 0이면 횟수입력하라는 메세지 띄울것
- for(var j = 1; j < grd_recdetail.rows; j++){
- _flag = model.getValue(xRecDetailPath + '[' + j + ']/flag');
- _timsval = model.getValue(xRecDetailPath + '[' + j + ']/timsval');
- _hngnm = model.getValue(xRecDetailPath + '[' + j + ']/hngnm');
- //20080827
- //체크된 항목에 대해 횟수 입력필드가 0이면 횟수입력하라는 메세지 띄울것
- if(_flag == 'Y' && _timsval != '' && (_timsval == '0' || _timsval == 0)){
- messageBox('[' + _hngnm + ']의 횟수가 입력되지 않았습니다. 횟수를', 'C001');
- grd_recdetail.topRow = j;
- return false;
- }
- }
- //20080923 dhkim 2차리허설 요구사항 (소아청소년과의 경우 13세 이상이라도 입원할 경우가 있기때문에 나이제한을 두지 말아야 한다.)
- /*
- //낙상성인, 낙상소아의 경우 환자 나이를 체크함
- if(clsflag == '8'){//낙상소아
- if(age > 13){
- messageBox('해당 환자의 나이가 ' + age + '세이므로 아동 낙상위험사정 기록을', 'E001');
- return false;
- }
- }else if(clsflag == '9'){//낙상성인
- if(age < 13){
- messageBox('해당 환자의 나이가 ' + age + '세이므로 성인 낙상위험사정 기록을', 'E001');
- return false;
- }
- }
- */
- //낙상성인 (Morse Scale), 낙상소아, 중증도 중환자실, 신생아ICU 은 필수체크 안함
- if(clsflag == '2' || clsflag == '4' || clsflag == '6' || clsflag == '7' || clsflag == '8' || clsflag == '9'){
- return true;
- }
- var testhngnm = '';
- //상세내역의 미체크 내역이 있는지 확인한다.
- //정신과병동 선택했을때 항목중 DT(<clstlcd>00000440</clstlcd>), ECT(<clstlcd>00000447</clstlcd>)는 필수아님
- for(var i = 1; i <= grd_recdetail.rows; i++){
- supcd = model.getValue(xRecDetailPath + '[' + i + ']/supcd');
- if(i == (grd_recdetail.rows)){
- if(isChecked == false){//마지막 row의 그룹은 비교할 데이터가 없으므로 체크값이false이면 blocking건다.(20080825)
- //2008.08.07 dhkim 추가
- //정신과병동 선택했을때 항목중 DT, ECT는 필수아님
- if((clsflag == '5' && hngnm == 'DT')||(clsflag == '5' && hngnm == 'ECT')){
- //skip
- }else{
- messageBox(hngnm + '(이)가 선택되지 않았습니다.' + hngnm + '(를)을', 'C001');//선택하십시오.
- grd_recdetail.topRow = i-1;
- return false;
- }
- }
- }
- if(supcd == '00000000'){
- hngnm = model.getValue(xRecDetailPath + '[' + i + ']/hngnm');
- for(var j = (i + 1); j < grd_recdetail.rows; j++){
- _supcd = model.getValue(xRecDetailPath + '[' + j + ']/supcd');
- //alert('상위 : ' + hngnm + ', 하위 : ' + model.getValue(xRecDetailPath + '[' + j + ']/hngnm') );
- if(supcd == _supcd){
- if(isChecked == false){//다른그룹으로 변경됐을때 isChecked가 false이면 리턴하면서 해당 row를 젤 위로 가도록 보여줌-_-;
- //2008.08.07 dhkim 추가
- //정신과병동 선택했을때 항목중 DT, ECT는 필수아님
- if((clsflag == '5' && hngnm == 'DT')||(clsflag == '5' && hngnm == 'ECT')){
- //skip
- }else{
- messageBox(hngnm + '(이)가 선택되지 않았습니다.' + hngnm + '(를)을', 'C001');//선택하십시오.
- grd_recdetail.topRow = i;
- return false;
- }
- }
- isChecked = false;
- j = grd_recdetail.rows;
- //break;
- }else{
- _flag = model.getValue(xRecDetailPath + '[' + j + ']/flag');
- if(_flag == 'Y'){
- isChecked = true;
- }
- }
- }
- }
- }
- return true;
- }
- /**
- * @group :
- * @ver : 2007.12.06
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 내환자 정보를 조회한다.
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fmisetting(){
- var setid = getUserId();
- var setdeptcd = getUserInfo("dutplcecd");
-
- model.removeNodeset("/root/send");
- model.removeNodeset("/root/hidden/setting/settingrn");
-
- //인공신장실 혈액투석간호기록에서 화면 연동시 parma추가-kys-20100412
- if(getScreenMenuParameter() == "SMMND" || opener.javascript.getParameter("SMMND00700_param_dial") == "dialrec"){
- model.makeValue("/root/send/wardcd", setdeptcd);
- } else {
- model.makeValue("/root/send/wardcd", model.getValue("/root/cond/wardcd"));
- }
-
- //내환자세팅한 간호사 조회
- if(submit("TRMNW04012")){
- //병동 변경시 내환자 정보 셋팅됨_2009-02-09_SMY수정
-
- model.setValue("/root/cond/settingrnid", "");
- for(i = 1; i <= getNodesetCount("/root/hidden/setting/settingrn"); i++ ) {
- if (model.getValue("/root/hidden/setting/settingrn[" + i + "]/settingrnid") == setid) {
- model.setValue("/root/cond/settingrnid", setid);
- }
- }
- /*
- var pid = model.getValue("/root/main/paminfo/pamlist/pid");//상단정보
- var setid = getUserId();
- var setCnt = getNodesetCount('/root/hidden/setting/settingrn');
-
- var setRow = 0;
- for(var i = 1; i < setCnt; i++){
- if(model.getValue('/root/hidden/setting/settingrn[" + i + "]/settingrnid') == setid){
- setRow = i-1;
- break;
- }
- }
- if(setRow > 0 && pid == ''){//상단정보 설정안되어 있을때
- model.setValue('/root/cond/settingrnid', setid);//세션의 간호사로 아이디세팅
- } else {
- model.setValue('/root/cond/settingrnid', '-');//없으면 default
- }
- */
- }
- model.refresh();
- return;
- }
- /**
- * @group :
- * @ver : 2007.12.06
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 중증도 상세내역의 설명을 조회한다.
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fHistDescs(){
- model.removeNodeset("/root/main/tar_desccnts");
- var iRow = grd_recdetail.row;
- model.makeValue("/root/main/tar_desccnts",model.getValue(xRecDetailPath+"["+iRow+"]/desccnts"));
- tar_desccnts.refresh();
- }
- /**
- * @ver : 2008.06.09
- * @author : dhkim
- * @------------------------------------------------------------------------------
- * @access : public
- * @type : function
- * @param :
- * @desc : 선택된 병동에 따라 중증도/낙상/욕창 구분을 default선택한다.
- * @--------------------------------------------------------------------------------
- */
- function fSelectDefaultRdoCond(clsseting){
- /*
- switch (clsseting){
- case "3050122000" : rdo_clsflaga.value = "5" ; break; //10층동병동(정신과병동)
- case "2110201000" : rdo_clsflaga.value = "2" ; break; //신생아중환자실(신생아ICU)
- case "3060000000" : rdo_clsflaga.value = "4" ; break; //중환자실
- case "3060600000" : rdo_clsflaga.value = "4" ; break; //2층중환자실
- case "3060400000" : rdo_clsflaga.value = "4" ; break; //순환기계중환자실
- case "3060300000" : rdo_clsflaga.value = "4" ; break; //신경외과중환자실
- case "3060200000" : rdo_clsflaga.value = "4" ; break; //외과중환자실
- case "3060100000" : rdo_clsflaga.value = "4" ; break; //내과중환자실
- default : rdo_clsflaga.value = "1" //default는 일반병동임.
- }
- */
- var setflag = "1";
- //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(clsseting == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")){ // 중환자실이면
- if(clsseting == model.getvalue("/root/code/codeinfo/codelist[cdgrupid='052']/cdid")){ // 신생아중환자실이면
- setflag = '2';
- } else {
- setflag = model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/clsflag");
- }
- }
- }
-
- if (setflag == '1') {
- if(clsseting == model.getvalue("/root/code/codeinfo/codelist[cdgrupid='W02']/cdid")){ // 302병동이면
- setflag = '5'
- } else if(clsseting == model.getvalue("/root/code/codeinfo/codelist[cdgrupid='055']/cdid")){ // 인공신장실이면
- setflag = '3'
- } else {
- setflag = '1';
- }
- }
-
- rdo_clsflaga.value = setflag;
- }
- /**
- * @ver : 2008.06.09
- * @author : dhkim
- * @------------------------------------------------------------------------------
- * @access : public
- * @type : function
- * @param : clsflag 중증도/낙상/욕창 구분(라디오버튼)
- * ioflag 외래/입원구분
- * @desc : 환자정보 더블클릭할때
- * 혈액투석의 경우
- * 입원환자는 조회조건에 기본 조회값(병동, 병실, 환자명, 등록번호)을 세팅해야한다.
- * @--------------------------------------------------------------------------------
- */
- function fSetSearchCondition(clsflag, ioflag){
- if(clsflag == '3' && ioflag == 'O'){
- var pid = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/pid');
- var patnm = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/hngnm');
- var sexage = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/sexage');
- var age = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/age');
- //환자명, 등록번호 세팅
- model.setValue("/root/cond/pid", pid);
- model.refresh();
- }else if(clsflag == '3' && ioflag == 'I'){
- var pid = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/pid');
- var roomcd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/roomcd');
- var wardcd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/wardcd');
- var patnm = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/hngnm');
- var sexage = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/sexage');
- var age = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/age');
- //병동선택
- cmb_ward.value = wardcd;
- //병동에 해당되는 병실검색
- fGetRoom();
- //병실선택
- cmb_room.value = roomcd;
- //병실별 환자검색
- fGetPatient();
- //환자명, 등록번호 세팅
- cmb_pid.value = pid;
- opt_pid.value = pid;
- opt_patnm.value = patnm; // 추가 (2011.03.29 Ahn)
- opt_sexage.value = sexage;
- opt_age.value = age;
- }
- }
- /**
- * 중증도/낙상/욕창 (recflag) 선택여부에 따라 캡션을 변경
- */
- function fChangeCaption(clsflag){
- model.setValue("/root/cond/agechk", "N" );
-
- //중증도/낙상/욕창 선택여부에 따라 텍스트를 변경
- if(clsflag == "1" ){
- //capt_master.attribute("text") = "일반병동 중증도내역"; // '환자별 중증도 및 위험사정' 으로 고정 (2011.03.29 Ahn)
- capt_pnt.attribute("text") = "일반병동 중증도상세점수";
- capt_detail.attribute("text") = "일반병동 중증도상세내역";
- capt_bedsore.visible=false;
- grp_agechk.visible = false;
- group2.visible = false;
- group4.visible = false;
- grd_recdetail.attribute("height") = "525px";
- }else if(clsflag == "2" ){
- //capt_master.attribute("text") = "신생아 ICU 중증도내역";
- capt_pnt.attribute("text") = "신생아 ICU 중증도상세점수";
- capt_detail.attribute("text") = "신생아 ICU 중증도상세내역";
- capt_bedsore.visible=false;
- grp_agechk.visible = false;
- group2.visible = false;
- group4.visible = false;
- grd_recdetail.attribute("height") = "525px";
- }else if(clsflag == "3" ){
- //capt_master.attribute("text") = "혈액투석 중증도내역";
- capt_pnt.attribute("text") = "혈액투석 중증도상세점수";
- capt_detail.attribute("text") = "혈액투석 중증도상세내역";
- capt_bedsore.visible=false;
- grp_agechk.visible = false;
- group2.visible = false;
- group4.visible = false;
- grd_recdetail.attribute("height") = "525px";
- }else if(clsflag == "4" || clsflag == "6" || clsflag == "7"){
- //capt_master.attribute("text") = "중환자실 중증도내역";
- capt_pnt.attribute("text") = "중환자실 중증도상세점수";
- capt_detail.attribute("text") = "중환자실 중증도상세내역";
- capt_bedsore.visible=false;
- grp_agechk.visible = false;
- group2.visible = false;
- group4.visible = false;
- grd_recdetail.attribute("height") = "525px";
- }else if(clsflag == "5"){
- //capt_master.attribute("text") = "정신과병동 중증도내역";
- capt_pnt.attribute("text") = "정신과병동 중증도상세점수";
- capt_detail.attribute("text") = "정신과병동 중증도상세내역";
- capt_bedsore.visible=false;
- grp_agechk.visible = false;
- group2.visible = false;
- group4.visible = false;
- grd_recdetail.attribute("height") = "525px";
- }else if(clsflag == "8"){
- //capt_master.attribute("text") = "낙상위험사정구분(아동)내역";
- capt_pnt.attribute("text") = "낙상위험사정구분(Humpty Dumpty Scale)상세점수";
- capt_detail.attribute("text") = "낙상위험사정구분(Humpty Dumpty Scale)상세내역";
- capt_bedsore.visible=false;
- group2.visible = false;
- group4.visible = true;
- grd_recdetail.attribute("height") = "420px";
- /*
- if ( instUseYN == "Y" ){
- grp_agechk.visible = true;
- cap_agemsg.attribute("text") = "낙상사정 제외 고위험군입니다";
- }else {
- grp_agechk.visible = false;
- }
- */
- }else if(clsflag == "9"){
- //capt_master.attribute("text") = "낙상위험사정구분(Morse Scale)내역";
- capt_pnt.attribute("text") = "낙상위험사정구분(Morse Scale)상세점수";
- capt_detail.attribute("text") = "낙상위험사정구분(Morse Scale)상세내역";
- capt_bedsore.visible=false;
- group2.visible = true;
- group4.visible = false;
- grd_recdetail.attribute("height") = "420px";
-
- /*
- if ( instUseYN == "Y" ){
- grp_agechk.visible = true;
- cap_agemsg.attribute("text") = "낙상사정 제외 고위험군입니다";//20100514 khj 소경화itc 요청에의한 메시지 수정
- }else {
- grp_agechk.visible = false;
- }
- */
- }else if(clsflag == "10"){
- // capt_master.attribute("text") = "욕창위험사정구분(욕창)내역";
- capt_pnt.attribute("text") = "욕창위험사정구분(Braden Scale)상세점수";
- capt_detail.attribute("text") = "욕창위험사정구분(Braden Scale)상세내역";
- capt_bedsore.visible=true;
- grp_agechk.visible = false;
- group2.visible = false;
- group4.visible = false;
- grd_recdetail.attribute("height") = "525px";
- }
- }
- /**
- * @ver : 2008.06.09
- * @author : dhkim
- * @------------------------------------------------------------------------------
- * @access : public
- * @type : function
- * @param :
- * @desc : 혈액투석의 경우 환자정보 그리드의 구조를 변경
- * @--------------------------------------------------------------------------------
- */
- function fChangeGridColumn(clsflag){
- if(clsflag == '3'){
- grd_patinfo.colWidth(grd_patinfo.colRef("ioflagnm")) = 33; //구분
- grd_patinfo.colWidth(grd_patinfo.colRef("pid")) = 80; //등록번호
- grd_patinfo.colWidth(grd_patinfo.colRef("roomcd")) = 0; //병실
- grd_patinfo.colWidth(grd_patinfo.colRef("indd")) = 0; //입원일
- grd_patinfo.colWidth(grd_patinfo.colRef("maintepatrgstdd")) = 68; //유지환자등록일자
- //20080820 주석처리 rdo_bloodioflag.attribute("visibility") = "visible";//외래입원구분
- }else{
- grd_patinfo.colWidth(grd_patinfo.colRef("ioflagnm")) = 0; //구분
- grd_patinfo.colWidth(grd_patinfo.colRef("pid")) = 0; //등록번호
- grd_patinfo.colWidth(grd_patinfo.colRef("roomcd")) = 53; //병실
- grd_patinfo.colWidth(grd_patinfo.colRef("indd")) = 69; //입원일
- grd_patinfo.colWidth(grd_patinfo.colRef("maintepatrgstdd")) = 0; //유지환자등록일자
- //20080820 주석처리 rdo_bloodioflag.attribute("visibility") = "hidden";//외래입원구분
- //20080820 주석처리 rdo_bloodioflag.value = '';
- }
- }
- /**
- * @ver : 2008.06.09
- * @author : dhkim
- * @------------------------------------------------------------------------------
- * @access : public
- * @type : function
- * @param : clsflag 중증도/낙상/욕창 구분(라디오버튼)
- * ioflag 외래/입원구분
- * @desc : 환자정보 더블클릭할때
- * 혈액투석의 경우 외래환자는 조회조건을 clear하고 비활성화처리한다.
- * @--------------------------------------------------------------------------------
- */
- function fDisabledSearchArea(clsflag, ioflag){
- //구분이 혈액투석, 외래환자일때 조회조건 clear, 비활성화처리
- if(clsflag == '3' && ioflag == 'O'){
-
- caption35.attribute('visibility') = 'visible';
- cmb_ward.attribute('visibility') = 'visible';
- // 응급실이 아닐 경우만 보임 (2011.03.15 Ahn)
- if(eERFLAG != "Y"){
- cmb_room.attribute('visibility') = 'visible';
- //cmb_pid.attribute('visibility') = 'visible'; // 환자리스트 콤보 숨기기 (2011.03.29 Ahn)
- }
-
- cmb_ward.disabled = true;
- cmb_room.disabled = true;
- cmb_pid.disabled = true;
- cmb_ward.value = '';
- cmb_room.value = '';
- }else{
- caption35.attribute('visibility') = 'visible'; // Room 캡션 활성화
- cmb_ward.attribute('visibility') = 'visible'; // 병동선택 라디오 버튼 활성화
- if(eERFLAG != "Y"){
- cmb_room.attribute('visibility') = 'visible'; // 병실선택 활성화
- //cmb_pid.attribute('visibility') = 'visible'; // 환자리스트 콤보 숨기기 (2011.03.29 Ahn)
- }
-
- if(model.getValue("/root/main/paminfo/pamlist/dschdd") == "99991231"){
- caption35.disabled = false;
- cmb_ward.disabled = false;
- cmb_room.disabled = false;
- cmb_pid.disabled = false;
- }
- }
- }
- /**********************************************************************************************************************************************/
- /***********************************************************스크립트정리중입니다******************************************************************/
- /**********************************************************************************************************************************************/
- /**
- * @group :
- * @ver : 2007.12.14
- * @by : 신혁춘
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : Sign 정보의 인스턴스를 만든다.
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fsingnode(){
- var clsrecchk = model.getValue("/root/main/topattribute/clsflag")
- var a = rdo_clsflaga.label;
- var b = rdo_clsflagb.label;
- var c = rdo_clsflagc.label;
- var iRow = grd_recmaster.row
- var xrecgruplistPath = "/root/main/recgrup/recgruplist"
- if(a != ""){
- model.makeValue("/root/main/sing/redord/clsflag",a);
- }
- if(b != ""){
- model.makeValue("/root/main/sing/redord/clsflag",b);
- }
- if(c != ""){
- model.makeValue("/root/main/sing/redord/clsflag",c);
- }
- model.makeValue("/root/main/sing/redord/usernm",model.getValue(xrecgruplistPath+"["+ iRow +"]/usernm"));
- model.makeValue("/root/main/sing/redord/execdt",model.getValue(xrecgruplistPath+"["+ iRow +"]/execdt"));
- model.makeValue("/root/main/sing/redord/exectm",model.getValue(xrecgruplistPath+"["+ iRow +"]/exectm"));
- var hRow = grd_recdetail.rows
- var k = 1
- var o = 1
- var xhistgruplistPath = "/root/main/histgrup/histgruplist"
- var xsinghistgrupPath = "/root/main/sing/histgrup"
- var total = 0
- var only = 0
- var supcd2 = "00000000"
- for(i=0; i <= hRow; i++){
- var flagchk = model.getValue(xhistgruplistPath+"["+i+"]/flag")
- var supcdk = model.getValue(xhistgruplistPath+"["+i+"]/supcd")
- if(supcdk == "00000000"){
- model.makeNode("/root/main/sing/histgrup["+k+"]");
- model.copyNode("/root/main/sing/histgrup["+k+"]", xhistgruplistPath+"["+i+"]");
- k = k + 1
- }
- if(flagchk == "Y"){
- model.makeNode("/root/main/sing/histgrup["+k+"]");
- model.copyNode("/root/main/sing/histgrup["+k+"]", xhistgruplistPath+"["+i+"]");
- k = k + 1
- }
- }
- for(i=0; i <= hRow; i++){
- var flagchk = model.getValue(xhistgruplistPath+"["+i+"]/flag")
- var supcdk = model.getValue(xhistgruplistPath+"["+i+"]/supcd")
- if(supcdk == "00000000"){
- var l = 0
- var grupcd1 = model.getValue(xhistgruplistPath+"["+i+"]/grupcd")
- }
- var supcd1 = model.getValue(xhistgruplistPath+"["+i+"]/supcd")
- var sum1 = model.getValue(xhistgruplistPath+"["+i+"]/sumk")
- var sumk = 0
- if(l==0 && flagchk == "Y" && sum1!="Y"){
- for(k=0; k<=hRow; k++){
- supcd2 = model.getValue(xhistgruplistPath+"["+k+"]/supcd")
- var flagchk1 = model.getValue(xhistgruplistPath+"["+k+"]/flag")
- if(supcd1==supcd2 && supcd1==grupcd1 && flagchk1 == "Y"){
- sumk = sumk + (model.getValue(xhistgruplistPath+"["+k+"]/basepnt") * model.getValue(xhistgruplistPath+"["+k+"]/timsinptyn"));
- total = total + (model.getValue(xhistgruplistPath+"["+k+"]/basepnt") * model.getValue(xhistgruplistPath+"["+k+"]/timsinptyn"));
- model.makeValue(xhistgruplistPath+"["+k+"]/sumk", "Y");
- }
- }
- model.makeNode("/root/main/sing/topsum["+o+"]");
- model.makeValue("/root/main/sing/topsum["+o+"]/sum", sumk);
- if(l==0){
- sumk = 0;
- o = o +1
- }
- }
- }
- model.makeNode("/root/main/sing/topsum["+o+"]");
- model.makeValue("/root/main/sing/topsum["+o+"]/sum", total);
- if(clsrecchk != 7 || clsrecchk != 8 || clsrecchk != 9){
- clsflag = model.getValue("/root/main/topattribute/clsflag") ;
- recflag = "1";
- }
- if (clsrecchk == 8 || clsrecchk == 7){
- clsflag = model.getValue("/root/main/topattribute/clsflag") ;
- recflag = "2";
- }
- if (clsrecchk == 9 ){
- clsflag = model.getValue("/root/main/topattribute/clsflag") ;
- recflag = "3";
- }
- var kRow = grd_recmaster.row
- var xrecgruplistPath = "/root/main/recgrup/recgruplist"
-
- var maddchk01 = model.getValue('/root/cond/maddchk01');
- var maddchk02 = model.getValue('/root/cond/maddchk02');
- var maddchk03 = model.getValue('/root/cond/maddchk03');
- var maddchk04 = model.getValue('/root/cond/maddchk04');
- var haddchk = model.getValue('/root/cond/haddchk');
- var haddchk01 = model.getValue('/root/cond/haddchk');
- var dinfo = maddchk01+maddchk02+maddchk03+maddchk04+haddchk+haddchk01;
-
- model.makeValue("/root/send/execdt", model.getValue(xrecgruplistPath+"["+kRow+"]/execdt"))
- model.makeValue("/root/send/clsflag", model.getValue("/root/main/topattribute/clsflag") );
- model.makeValue("/root/send/recflag", recflag);
- model.makeValue("/root/send/totpnt", total);
- model.makeValue('/root/send/bspntgrup/dinfo', dinfo);
-
- if(submit("TRMNW04014")){
- o = o+1
- model.makeNode("/root/main/sing/topsum["+o+"]");
- model.makeValue("/root/main/sing/topsum["+o+"]/sum", model.getValue("/root/main/sfbp/sfbpinfo/clsgrupkind"));
- }
- }
- /**
- * @group :
- * @ver : 2010.05.03
- * @by : khj
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : JCI용 : 낙상은 7세 미만 혹은 65세 이상인 경우 고위험군체크되면 상세내역 선택할수 없고 디폴트로 고위험군임.
- * @param : pFlag = Y : check, N : uncheck
- * @return :
- * @---------------------------------------------------
- */
- function fJCISettingAgeChk(pFlag){
- var clsflag = model.getValue('/root/cond/clsflag');
- if ( clsflag != "8" && clsflag != "9" ) return;
-
- var clsflag_modify = (clsflag == "8" ? "1" : "2");
-
- instUseYNcdnm = model.getValue("/root/code/codeinfo/codelist[cdgrupid ='199' and cdnm = 'Y' and cdid ='"+ clsflag_modify +"' ]/grupdetldesc");
-
- if ( pFlag =="Y" ){
-
- grd_recpnt.addStatus(2, 'update');
- grd_recpnt.valueMatrix(grd_recpnt.fixedRows,grd_recpnt.colRef("resultcd") ) = instUseYNcdnm;
- for( var jdx = grd_recpnt.colRef("timsval01") ; jdx <= grd_recpnt.colRef("totpnt") ; jdx++ ){
- grd_recpnt.valueMatrix(grd_recpnt.fixedRows, jdx ) = "";
- }
-
- if(grd_recmaster.rowStatus(grd_recmaster.row) != 1){//상태가 신규상태가 아니면 u로 변경
- grd_recmaster.addStatus(grd_recmaster.row, 'update');
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/stat', 'u');
- }
-
- grd_recmaster.valueMatrix(grd_recmaster.row,grd_recmaster.colRef("resultnm") ) = instUseYNcdnm;
- grd_recmaster.valueMatrix(grd_recmaster.row,grd_recmaster.colRef("totpnt") ) = "";
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/agechk', "Y" );
- for( var idx = 1 ; idx <= getNodesetCount(xRecDetailPath); idx++ ){
- model.setValue(xRecDetailPath +"["+ idx +"]/flag", "N");
- model.setValue(xRecDetailPath +"["+ idx +"]/timsval", "");
- grd_recdetail.isReadonly(idx, grd_recdetail.colRef("flag"), idx, grd_recdetail.colRef("timsval")) = true;
- }
-
-
- }else {
-
- //중증도 마스터그리드
- if(grd_recmaster.rowStatus(grd_recmaster.row) != 1){//상태가 신규상태가 아니면 u로 변경
- grd_recmaster.removeStatus(grd_recmaster.row, 'update');
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/stat', '-');
-
- }
- model.setValue(xRecMasterPath + '[' + grd_recmaster.row + ']/agechk', "N" );
- fSearchRecPnt();
- grd_recmaster.valueMatrix(grd_recmaster.row,grd_recmaster.colRef("resultnm") ) = grd_recpnt.valueMatrix(grd_recpnt.fixedRows,grd_recpnt.colRef("resultcd") );
- grd_recmaster.valueMatrix(grd_recmaster.row,grd_recmaster.colRef("totpnt") ) = grd_recpnt.valueMatrix(grd_recpnt.fixedRows, grd_recpnt.colRef("totpnt") );
- }
-
- grd_recdetail.refresh();
-
- }
- /**
- * @group :
- * @ver : 2011.03.14
- * @by : 안도영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 구역정보 조회 및 내환자정보 숨기기 (응급실인 경우)
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetWardChngInfo(initFlag, wardCd, sectionCd){
- if(initFlag=="Y") {
- var sWardCD = wardCd;
- }
- else{
- var sWardCD = model.getValue("/root/cond/wardcd");
- }
-
- if ( sWardCD == eERDEPTCD) {
- eERFLAG = "Y";
- }else{
- eERFLAG = "";
- }
-
- //응급실인 경우 구역정보 추가조회
- if(eERFLAG == "Y"){ // 응급실
- fGetZoneList();
- copyNodeset("/root/temp2/zoneinfo", "/root/temp/zoneinfo");
- //cap_wardcd.attribute("text") = "구역:";
- cmb_room.visible = "false";
- //cmb_settingrn.disabled = "true";
- //cmb_erpat.visible = "true";
- //cmb_pid.visible = "false";
- cmb_zone.visible = "true";
-
- if(initFlag=="Y"){ // 처음 상단 정보로 화면 열릴 때
- model.setValue("/root/cond/zonecd", (sectionCd == "") ? "-" : sectionCd);
- }else{
- model.setValue("/root/cond/zonecd", "-"); // 'All'로 default
- }
-
-
- }else{
- //cap_wardcd.attribute("text") = "병실:"
- cmb_room.visible = "true";
- //cmb_settingrn.disabled = "false";
- //cmb_erpat.visible = "false";
- //cmb_pid.visible = "true"
- cmb_zone.visible = "false";
-
- //grd_patinfo.colAttribute(grd_patinfo.colRef("roomcd"), "visibility") = "visible";
- //grd_patinfo.colAttribute(grd_patinfo.colRef("bedposcnts"), "visibility") = "hidden";
-
- model.setValue("/root/cond/zonecd", "");
-
- }
- cmb_zone.refresh();
- cmb_room.refresh();
- cmb_erpat.refresh();
- //cmb_settingrn.refresh();
- grd_patinfo.refresh();
- }
- /**
- * @group :
- * @ver : 2011.03.30
- * @by : 안도영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 그리드 조회 시 분류구분에 따른 재구성
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fSetPatGrid(grid, flag){
- switch (flag){
-
- case "Pat" :
-
- var arrColIdx = new Array();
- arrColIdx[0] = grid.colRef("resultnm1"); // 각 위험군 콜 인덱스
- arrColIdx[1] = grid.colRef("resultnm2");
- arrColIdx[2] = grid.colRef("resultnm3");
- arrColIdx[3] = grid.colRef("resultnm4");
-
- // 값이 있는 위험군 셀 색 넣기
- for(i=2; i< grid.rows; i++){ // 행
- for(var j=0; j<arrColIdx.length; j++){
- if("" != grid.valueMatrix(i, arrColIdx[j])){
- if(2 == (j+1)) { // 낙상
- if("Y" == grid.valueMatrix(i, grid.colRef("coloryn2"))){ // '고위험군' 만 색 표시 (2011.04.13 ahn)
- grid.cellstyle("background-color", i, arrColIdx[j]) = yellow;
- grid.cellstyle("color", i, arrColIdx[j]) = red;
- }
- }else if(3 == (j+1)) { // 욕창
- if("Y" == grid.valueMatrix(i, grid.colRef("coloryn3"))){ // '정상' 제외한 군 색 표시 (2011.04.19 ahn)
- grid.cellstyle("background-color", i, arrColIdx[j]) = red;
- //grd_patinfo.cellstyle("font-color", i, arrColIdx[j]) = red;
- }
- }else if(4 == (j+1)) { // 통증
- if(4 <= parseInt(grid.valueMatrix(i, arrColIdx[j]))){ // 통증 점수가 4점 이상인 경우만 색 표시 (2011.04.13 ahn)
- grid.cellstyle("background-color", i, arrColIdx[j]) = indigo;
- grid.cellstyle("color", i, arrColIdx[j]) = white;
- }
- }
- }
- }
- }
-
- // 조회 구분대로 환자정보 그리드 구성
- var tmp = model.getValue("/root/cond/recsrchflag");
- var recSrchFlag = tmp.setReplaceWord("^", "");
-
- for(i=1; i<5; i++){ // 분류 수
- var resultnm = "resultnm" + i;
- var execnm = "execnm" + i;
- var execdd = "execdd" + i;
- grid.colHidden(grid.colRef(resultnm)) = true;
- grid.colHidden(grid.colRef(execnm)) = true;
- grid.colHidden(grid.colRef(execdd)) = true;
-
- for(var j=0; j < recSrchFlag.length; j++){
- if(i == recSrchFlag.charAt(j)){
- var resultnm = "resultnm" + recSrchFlag.charAt(j);
- var execnm = "execnm" + recSrchFlag.charAt(j);
- var execdd = "execdd" + recSrchFlag.charAt(j);
- grid.colHidden(grid.colRef(resultnm)) = false;
- grid.colHidden(grid.colRef(execnm)) = false;
- grid.colHidden(grid.colRef(execdd)) = false;
- break;
- }
- }
-
- }
- grid.refresh();
-
- break;
- /*
- case "Exec" :
- // 조회 구분대로 환자정보 그리드 구성
- var tmp = model.getValue("/root/cond/recsrchflag");
- var recSrchFlag = tmp.setReplaceWord("^", "");
- var totpnt = "";
- var resultnm = "";
- var execnm = "";
-
- for(i=1; i<5; i++){ // 분류 수
- totpnt = "totpnt" + i;
- resultnm = "resultnm" + i;
- execnm = "execnm" + i;
-
- grid.colHidden(grid.colRef(totpnt)) = true;
- grid.colHidden(grid.colRef(resultnm)) = true;
- grid.colHidden(grid.colRef(execnm)) = true;
-
- for(var j=0; j < recSrchFlag.length; j++){
- if(i == recSrchFlag.charAt(j)){
- totpnt = "totpnt" + recSrchFlag.charAt(j);
- resultnm = "resultnm" + recSrchFlag.charAt(j);
- execnm = "execnm" + recSrchFlag.charAt(j);
- if(i<4) grid.colHidden(grid.colRef(totpnt)) = false;
- grid.colHidden(grid.colRef(resultnm)) = false;
- grid.colHidden(grid.colRef(execnm)) = false;
- break;
- }
- }
-
- }
- grid.refresh();
-
- break;
- */
- default :
- break;
-
- }
-
- }
- /**
- * @group :
- * @ver : 2011.03.31
- * @by : 안도영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 조회 분류별 정렬 (가장 작은 값 찾기)
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fGetMinSrchFlag(srchflag){
- var arrRecSrFlag = new Array();
- var recsrchflag = srchflag.setReplaceWord("^", "");
- for(i=0; i< recsrchflag.length; i++){
- arrRecSrFlag[i] = recsrchflag.charAt(i);
- }
- for(var j = 0; j < arrRecSrFlag.length; j++){
- for(i = j+ 1; i < arrRecSrFlag.length; i++){
-
- if(arrRecSrFlag[i] < arrRecSrFlag[j])
- {
- var tmp = arrRecSrFlag[j];
- arrRecSrFlag[j] = arrRecSrFlag[i];
- arrRecSrFlag[i] = tmp;
- }
- }
- }
-
- return arrRecSrFlag[0]; // 가장 작은 값 return
- }
- /**
- * @group :
- * @ver : 2011.04.13
- * @by : 안도영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 환자리스트 그리드 확대 / 축소
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fPatlist_Extend(grid){
- //switch (workflag) {
-
- //case "pat":
- /* if ( btn_sizectr.text == "축소") {
- btn_sizectr.text = "확대"; //축소되었으므로 확대시켜야한다.
- swtpatList.visible = true ;
- linpatListRight.visible = true ;
- linDruglistTop.attribute("x1") = "220"
- grd_druglist.attribute("left") = "220"
- grd_druglist.attribute("width") = "970"
-
- bolall.attribute("left") = "222"; //--(20081216)
- }
- */
- // break;
- //case "drug":
- if ( btn_sizectr.text == "축소") {
- btn_sizectr.text = "확대"; //축소되었으므로 확대시켜야한다.
- //swtpatList.visible = true ;
- //linpatListRight.visible = true ;
- //linDruglistTop.attribute("x1") = "220"
- //grd_druglist.attribute("left") = "220"
- grid.attribute("width") = "335"
-
- //bolall.attribute("left") = "222"; //--(20081216)
- } else {
- btn_sizectr.text = "축소"; //확대되었으므로 축소시켜야한다.
- //swtpatList.visible = false ;
- //linpatListRight.visible = false ;
- //linDruglistTop.attribute("x1") = "0"
- //grd_druglist.attribute("left") = "0"
- grid.attribute("width") = "690"
-
- //bolall.attribute("left") = "2"; //--(20081216)
- }
- grid.refresh();
- // break;
- //}
- }
- ///-----------------(20081210)
- /**
- * @group :
- * @ver : 2011.04.19
- * @by : 안도영
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 라디오 선택 시 재조회
- * @param :
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function patReSrch(flag){
-
- // 해당 환자 pid 임시 저장
- var patPid = model.getValue('/root/cond/pid');
- var patIdx = "";
-
- //조회조건 clear
- model.setValue('/root/cond/pid', '');
- //환자정보 표시 clear (2011.03.29 Ahn)
- model.setValue('root/cond/patnm', '');
- model.setValue('root/cond/sexage', '');
- model.setValue('root/cond/age', '');
-
- //환자정보 조회
- fSearchPatList(flag);
-
- if("" != patPid){
- // 해당 환자정보 재 표시
- model.setValue('/root/cond/pid', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/pid"));
- model.setValue('/root/cond/patnm', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/hngnm"));
- model.setValue('/root/cond/sexage', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/sexage"));
- model.setValue('/root/cond/age', model.getValue("/root/main/patinfo/patlist[pid = '" + patPid + "']/age"));
-
-
- // 해당 환자 인덱스 선택 재 지정
- for(i=2; i<=grd_patinfo.rows; i++){
- if(patPid == grd_patinfo.valueMatrix(i,grd_patinfo.colRef("pid"))){
- patIdx = i;
- break;
- }
- }
-
- grd_patinfo.row = patIdx;
-
- //중증도/낙상/욕창 내역 조회(grd_recmaster)
- fSearchRecMaster(patIdx);
- }
- }
- function addchk(){
-
- var wardcd = model.getValue("/root/cond/wardcd");
- var age = model.getValue("/root/cond/age");
- if(model.getValue("/root/cond/clsflag") == "8"){
-
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")){ // 중환자실이면
- chk_haddchk01.value = 'Y';
- }
- }
-
- if(age < 3){
- chk_haddchk.value = 'Y';
- }
- }else if(model.getValue("/root/cond/clsflag") == "9"){
-
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")){ // 중환자실이면
- chk_maddchk01.value = 'Y';
- }
- }
- if(age >= 70){
- chk_maddchk02.value = 'Y';
- }
- }
- group2.refresh();
- group4.refresh();
- }
- // 중증도 일괄저장
- function fAllSignSave(){
- //debugger;
- var chk = "Y";
- var totcnt = 0;
- var succnt = 0;
- var failcnt = 0;
- cap_succnt.value = 0;
- cap_failcnt.value = 0;
- cap_totcnt.value = 0;
-
- var cnt = getNodesetCount("/root/main/patinfo/patlist[chk = '" + chk + "']");
-
- if(cnt < 1){
- messageBox('일괄저장 할 환자를', 'C002');
- return;
- }
-
- var msg = messageBox(cnt+'명의 중증도 항목을 일괄 인증저장 하시겠습니까?', 'Q');
-
- if(Number(msg) != 6){
- return;
- }
- //cap_all.text = cnt;
-
- sAllSignSave = true;
- var chk = "N";
- var totcnt = getNodesetCount("/root/main/patinfo/patlist");
-
- for (patRow = 1; patRow <= totcnt; patRow++) {
- chk = model.getValue("/root/main/patinfo/patlist[" + patRow + "]/chk");
- if (chk != "Y"){
- continue;
- }
-
- cap_totcnt.text = cnt;
- var dschdd = model.getValue("/root/main/patinfo/patlist[" + patRow + "]/dschdd"); //퇴원일자
- var indd = model.getValue("/root/main/patinfo/patlist[" + patRow + "]/indd"); //입원일자
- var hngnm = model.getValue("/root/main/patinfo/patlist[" + patRow + "]/hngnm"); //환자이름
- var execdd = model.getValue("/root/cond/execdd"); //수행일자
-
- model.setValue("/root/cond/pid", model.getValue("/root/main/patinfo/patlist[" + patRow + "]/pid"));
- model.setValue("/root/cond/patnm", model.getValue("/root/main/patinfo/patlist[" + patRow + "]/hngnm"));
- model.setValue("/root/cond/sexage", model.getValue("/root/main/patinfo/patlist[" + patRow + "]/sexage"));
- model.setValue("/root/cond/age", model.getValue("/root/main/patinfo/patlist[" + patRow + "]/age"));
-
- if(indd != '' || indd ==null) {
- if((execdd < indd) || (execdd > dschdd)) { //입원,퇴원일자 사이의 수행일자만 입력하도록 블러킹
- messageBox("수행하려는 일자는 입원일자(" +indd.substring(0,4) + "-" + indd.substring(4, 6) + "-" + indd.substring(6) + ")이전 또는 퇴원일자("+dschdd.substring(0,4) + "-" + dschdd.substring(4, 6) + "-" + dschdd.substring(6)+")이후의 일자가 될 수","I004");
- return;
- }
- }
-
- fSearchRecMasterAll(patRow);
-
- var recmasterrow = 0;
-
- for( var idx = 1 ; idx <= getNodesetCount(xRecMasterPath) ; idx++ ){
- if ( model.getValue(xRecDetailPath + '[1]/pid') == model.getValue(xRecMasterPath + '['+ idx +']/pid')
- && model.getValue(xRecDetailPath + '[1]/execdd') == model.getValue(xRecMasterPath + '['+ idx +']/execdd')
- && model.getValue(xRecDetailPath + '[1]/recseq') == model.getValue(xRecMasterPath + '['+ idx +']/recseq')
- ){
- recmasterrow = idx;
- recRow = idx;
- break;
- }
- }
-
- if ( recmasterrow == 0 ){
- //var hngnm = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/hngnm");
- messageBox(hngnm + ' 환자는 저장 이력이 없습니다. 개별 인증저장 하십시오.', "I008");
- //messageBox( capt_master.attribute("text") + " 선택" ,"I008");
- failcnt++;
- cap_failcnt.text = failcnt;
- continue;
- }
-
- if(!addallchk()){
- //messageBox(hngnm + '낙상 구분을 재 선택하여 개별 인증저장 하십시오.', "I008");
- failcnt++;
- cap_failcnt.text = failcnt;
- continue;
- }
-
- var recMasterStat = model.getValue(xRecMasterPath + '[' + recmasterrow + ']/stat');//기록마스터의 상태값
- var execdd = model.getValue('/root/cond/execdd');//조회조건의 수행일자
- var exectm = model.getValue('/root/cond/exectm');//조회조건의 수행시간
- //수행일시 필수입력 체크_20090122_SMY추가
- if(execdd == ""){
- messageBox("수행일자를 입력하세요","I");
- model.setFocus("ipt_indate");
- return;
- }
- if(exectm == ""){
- messageBox("수행시간을 입력하세요","I");
- model.setFocus("ipt_time");
- return;
- }
- var recdd = model.getValue(xRecMasterPath + '[' + recmasterrow + ']/execdd');//기록된 일자
- var isRecordedArr = fIsRecordedAll(execdd);//input수행일자에 해당되는 기록이 있는지 여부
- //20080820 array로 변경
- //arr[0]은 기록여부 true/false
- //arr[1]은 기록여부 true일때의 signno
- var signno = '';//인증번호
- var siflag = 'N';//default 는 N. 기존의 데이터를 그대로 신규로 insert하는경우flag값
- // Y인경우 : 1.다른일자의 기록내역은 있으나 input의 수행일자에 해당되는 기록이 없을때..
- // 2. input의 수행일자에 해당되는 기록이 있을때..
-
- //상세내역의 체크점수를 합산하여 마스터와 상세점수의 totpnt에 set한다.
- //var totPnt = fSumPnt_1();
- //model.setValue(xRecMasterPath + '[' + recRow + ']/totpnt', totPnt);//마스터의 총점
- //model.setValue('/root/main/recpntgrup/recpntlist/totpnt', totPnt);//상세점수의 총점
- //총점에 해당하는 분류군을 조회한후 마스터와 상세점수의 분류군에 set한다.
- //var bspntnm = fLoadBsPnt_1(totPnt);
- //model.setValue(xRecMasterPath + '[' + recRow + ']/resultnm', bspntnm);//마스터의 분류군
- //model.setValue('/root/main/recpntgrup/recpntlist/resultcd', bspntnm);//상세점수의 총점
-
- //var maddchk01 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk01');
- //var maddchk02 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk02');
- //var maddchk03 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk03');
- //var maddchk04 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk04');
- //var haddchk = model.getValue(xRecMasterPath + '[' + recRow + ']/haddchk');
- //var maddchk99 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk99');
-
- //if(model.getValue("/root/cond/clsflag") == "9"){
- // if(maddchk01 == "" && maddchk02 == "" && maddchk03 == "" && maddchk04 == "" && maddchk99 == "" ){
- // model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk99', 'Y');
- // //messageBox("기타 항목은 반드시 하나 이상 체크 하셔야 합니다.","I");
- // //return;
- // }
- //}
-
- //model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk01', maddchk01);
- //model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk02', maddchk02);
- //model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk03', maddchk03);
- //model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk04', maddchk04);
- //model.setValue(xRecMasterPath + '[' + recRow + ']/haddchk' , haddchk);
- //model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk99', maddchk99);
-
- //상세내역 체크한 점수를 항목별로 합산하여 상세점수 노드에 set한다.
- //fSetRecDetailPnt_1();
- var msgStr;
- if(isRecordedArr[0]){
- var execStr = execdd.substring(0, 4) + '-' + execdd.substring(4, 6) + '-' + execdd.substring(6, 8);
- var hngnm = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/hngnm");
- msgStr = hngnm + '환자는 이미 저장된 기록 내역(' + execStr + ')이 있습니다. 다시'; //db insert (수행일시를 현재일시로)
- var msg = messageBox(msgStr, 'Q002');//저장하시겠습니까?
- if(Number(msg) != 6){//예
- failcnt++;
- cap_failcnt.text = failcnt;
- continue;
- }
- //20080827 주석처리 signno = isRecordedArr[1];//해당기록의 signno를 할당해 db에 update한다.(사용안함)
- signno = '';//신규이기때문에 signno를 새로딴다.
- }else{//신규등록및 이미기록되었으나 기록일자와 수행일자가 같을때..
- //msgStr = '중증도 및 위험사정의 기록내역을';
- msgStr = ""; // 메시지는 '저장하시겠습니까?' 로 통일 (2011.04.18 Ahn)
- }
- //recMasterStat이 '-'경우 'u'로 넘김.
- //중증도점수그리드
- //grd_recpnt.addStatus(2, 'update');
- //중증도 마스터그리드
- //20080827 상태가 신규가 아니면 u 상태로 db에 복사해 insert로 변경됨...
- //if(grd_recmaster.rowStatus(grd_recmaster.row) != 1){//상태가 신규상태가 아니면 u로 변경
- // grd_recmaster.addStatus(grd_recmaster.row, 'update');
- var mstat = model.getValue(xRecMasterPath + '[' + recRow + ']/stat');
- if(mstat != 'i' || mstat != 'I'){
- model.setValue(xRecMasterPath + '[' + recRow + ']/stat', 'u');
- siflag = 'Y'; //기존데이터를 복사해 insert하는 경우 Y아니면 N
- }
-
- //}
- //var msg = messageBox(msgStr, 'Q002');//저장하시겠습니까?
- //if(Number(msg) == 6){//예
-
- //if(true){
- model.removenode('/root/send');
- model.makeValue('/root/send/sch_execdd', execdd);//조회조건에 있는 수행일자
- model.makeValue('/root/send/sch_exectm', exectm);//조회조건에 있는 수행시간
- model.makeValue('/root/send/siflag', siflag);//기존데이터를 복사해 insert하는 경우 Y아니면 N
- model.makeValue('/root/send/ioflag', model.getValue('/root/cond/ioflag'));//외래입원구분
-
- var pid = model.getValue(xRecMasterPath + "/pid");
- var orddd = model.getValue('/root/main/patinfo/patlist[' + patRow + ']/indd');//입원일/진료일
- var cretno = model.getValue('/root/main/patinfo/patlist[' + patRow + ']/cretno');//생성번호
- var orddeptcd = model.getValue('/root/main/patinfo/patlist[' + patRow + ']/orddeptcd');//진료과
- var orddrid = model.getValue('/root/main/patinfo/patlist[' + patRow + ']/medispclid');//진료의
- var ioflag = model.getValue('/root/main/patinfo/patlist[' + patRow + ']/ioflag'); //외래/입원구분
- //신규(insert)일때는 signno를 초기화한다.
- /*
- if((recMasterStat == 'i') || (recMasterStat == 'u' && execdd != recdd)){
- signno = '';
- }else{
- signno = model.getValue(xRecMasterPath + "[" + grd_recmaster.row + "]/signno");
- }
- */
- //alert(grd_recmaster.row + '의 signno : ' + signno);
- /* [각 구분별 기록서식코드]
- * 중증도_일반병동 : 0000002439
- * 중증도_신생아 ICU : 0000002440
- * 중증도_혈액투석 : 0000002441
- * 중증도_중환자실 : 0000002442
- * 중증도_정신과병동 : 0000002444
- * 낙상사정_아동 : 0000002447
- * 낙상사정_성인(Morse Scale) : 0000002449
- * 욕창사정(Braden Scale) : 0000002450
- */
- var recflag = model.getValue('/root/cond/recflag');
- var clsflag = model.getValue('/root/cond/clsflag');
- var formcd;//기록서식코드
- var formnm;//서식명
- if(clsflag == '1'){
- formcd = '0000002439'; //중증도_일반병동
- formnm = '중증도사정(일반병동)';
- recflag = '1';
- clsflag = '1';
- }else if(clsflag == '2'){
- formcd = '0000002440'; //중증도_신생아 ICU
- formnm = '중증도사정(신생아 ICU)';
- recflag = '1';
- clsflag = '2';
- }else if(clsflag == '5'){
- formcd = '0000002444'; //중증도_정신과병동
- formnm = '중증도사정(정신과병동)';
- recflag = '1';
- clsflag = '5';
- }else if(clsflag == '4' || clsflag == '6' || clsflag == '7'){
- formcd = '0000002442'; //중증도_중환자실
- formnm = '중증도사정(중환자실)';
- recflag = '1';
- clsflag = '4';
- }else if(clsflag == '3'){
- formcd = '0000002441'; //중증도_혈액투석
- formnm = '중증도사정(혈액투석)';
- recflag = '1';
- clsflag = '3';
- }else if(clsflag == '8'){
- formcd = '0000002447'; //낙상사정_아동
- formnm = '낙상위험사정(Humpty Dumpty Scale)';
- recflag = '2';
- clsflag = '1';
- }else if(clsflag == '9'){
- formcd = '0000002449'; //낙상사정_성인 (Morse Scale)
- formnm = '낙상위험사정(Morse Scale)'; // 성인 -> Morse Scale 변경 (2011.03.17 ahn)
- recflag = '2';
- clsflag = '2';
- }else if(clsflag == '10'){
- formcd = '0000002450'; //욕창
- formnm = '욕창위험사정(Braden Scale)'; // 욕창 -> Braden Scale 변경 (2011.04.13 ahn)
- recflag = '3';
- clsflag = '1';
- }
- //alert(formcd);
- //상세점수내역 노드를 만들어서 보낸다.
- //temp/signdata/recpntgrup/recpntlist/timsval
- //temp/signdata/recpntgrup/recpntlist/hngnm
- model.removenode('/root/temp/signdata');
- model.makeNode('/root/temp/signdata/recpntgrup/recpntlist');
- //중증기록구분을 한글명으로 노드를 만들어서 내보낸다.
- var xDetailPath = '/root/temp/signdata/detailinfo';
- model.makeNode(xDetailPath);
- model.makeValue(xDetailPath + '/formnm', formnm);
- model.makeValue(xDetailPath + '/recflag', recflag);
- model.makeValue(xDetailPath + '/clsflag', clsflag);
- var recpntCnt = getNodesetCount("/root/main/recpntgrup/pnttitlgruplist");
- var timsval, hngnm;
- var colno;
- for(var i = 1; i <= recpntCnt; i++){
- if(i < 10){
- colno = '0' + i;
- }else{
- colno = i;
- }
- timsval = model.getValue(xRecPntPath + '/timsval' + colno);
- hngnm = model.getValue('/root/main/recpntgrup/pnttitlgruplist[' + i + ']/hngnm');
- //alert(colno + ', ' + timsval + ', ' + hngnm + ', ' + i);
- model.makeValue('/root/temp/signdata/recpntgrup/recpntlist[' + i + ']/timsval', timsval);
- model.makeValue('/root/temp/signdata/recpntgrup/recpntlist[' + i + ']/hngnm', hngnm);
- }
- Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
- // 인증 로직 호출
- if(Sign.signprocess() == true){ // ▶ 전자인증 관련 환자 인적 정보를 보내줌.
- //alert(Sign.signedInfos[1]);
-
- var wSigninfo = ""
- wSigninfo = "pid" +"▦" // 01 등록번호
- + "orddd" +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
- + "cretno" +"▦" // 03 생성번호
- + "signno" +"▦" // 04 서명번호(인증번호)
- + "recdd" +"▦" // 05 실제 기록이 이루어진 기록일자
- + "rectm" +"▦" // 06 실제 기록이 이루어진 기록시간
- + "recsaveflag" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- + "signflag" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- + "signgenrflag" +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
- + "formcd" +"▦" // 10 각 기록지별 서식코드 0000002473 N57 간호 수술간호기록
- + "orddeptcd" +"▦" // 11 진료부서코드
- + "orddrid" +"▦" // 12 진료의사ID (집도의)
- + "signbfcnts" +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
- + "signaftcnts" +"▦" // 14 ▶ 공인인증 처리후 데이터
- + "screenid" +"▦" // 15 ▶ 화면아이디
- + "certflag" +"▩" // 16 ▶ 인증여부( T : 임시저장, C : 인증저장)
- + pid +"▦" // 01 등록번호
- + orddd +"▦" // 02 입원일자(입원,응급)/진료일자(외래)
- + cretno +"▦" // 03 생성번호
- + signno +"▦" // 04 서명번호(인증번호)
- + getCurrentDate() +"▦" // 05 실제 기록이 이루어진 기록일자
- + getCurrentTime() +"▦" // 06 실제 기록이 이루어진 기록시간
- + "Y" +"▦" // 07 전자서명 인적정보 변경여부(기록일시 변경되는 경우 : Y, 그외 : N)
- + "02" +"▦" // 08 서명자료구분(01 : 진료, 02 : 간호, 03 : LIS, 04 : 진료지원)
- + ioflag +"▦" // 09 외래/입원구분(코드정의서 M0010 참조)
- + formcd +"▦" // 10 각 기록지별 서식코드 (emr.mrfmform)
- + orddeptcd +"▦" // 11 진료부서코드
- + orddrid +"▦" // 12 진료의사ID
- + Sign.signedInfos[1] +"▦" // 13 ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
- + Sign.signedInfos[2] +"▦" // 14 ▶ 공인인증 처리후 데이터
- + getScreenID() +"▦" // 15 ▶ 화면아이디
- + "C" +"▩"; // 16 ▶ 인증여부( T : 임시저장, C : 인증저장)
- model.makeValue("/root/send/signinfo" , wSigninfo);
- } else {
- return ;
- }
-
-
- var sRecData = "";
- for (i=1; i<=getNodesetCount(xRecMasterPath); i++){
- var sRecHeader = "m▦rownum▦execdd▦exectm▦recflagnm▦totpnt▦resultnm▦execnm▦pid▦hngnm▦recseq▦recflag▦clsflag▦execkind▦execid▦indd▦histstat▦cretno▦seqno▦resultcd▦signno▦stat▦agechk▦maddchk01▦maddchk02▦maddchk03▦maddchk04▦maddchk99▦haddchk▩";
- var sRecData = sRecData
- + "i" +"▦"
- + i +"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/execdd" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/exectm" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/recflagnm" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/totpnt" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/resultnm" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/execnm" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/pid" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/hngnm" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/recseq" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/recflag" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/clsflag" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/execkind" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/execid" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/indd" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/histstat" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/cretno" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/seqno" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/resultcd" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/signno" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/stat" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/agechk" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/maddchk01" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/maddchk02" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/maddchk03" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/maddchk04" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/maddchk99" )+"▦"
- + model.getValue(xRecMasterPath+ "["+i+"]/haddchk" )+"▩"
-
- }
-
- var test_11 = sRecHeader + sRecData;
- //var test_1 = grd_recmaster.getUpdateDataAll('i'); // 150114 - AYS
- //model.makeValue('/root/send/recmaster', grd_recmaster.getUpdateDataAll('i'));
- model.makeValue('/root/send/recmaster', (sRecHeader + sRecData));
-
-
- for( var idx = 1 ; idx <= getNodesetCount(xRecDetailPath) ; idx++){
- if ( Number(model.getValue(xRecDetailPath + '[' + idx + ']/basepnt_multi')) > 0 ){
- model.setValue( xRecDetailPath + '[' + idx + ']/basepnt',model.getValue(xRecDetailPath + '[' + idx + ']/basepnt_multi'));
- }
- }
-
-
- var sDetailData = "";
- for (i=1; i<=getNodesetCount(xRecDetailPath); i++){
- var sDetailHeader = "m▦rownum▦stat▦flag▦clstlcd▦hngnm▦basepnt▦timsval▦cnfmyn▦cmtinptyn▦grupmulti▦engnm▦refseq▦deptcd▦supcd▦todd▦depth▦grupflag▦clsflag▦recflag▦sortseq▦bktimsval▦desccnts▦pid▦execdd▦recseq▦wardcd▦roomcd▩";
- var sDetailData = sDetailData
- + "i" +"▦"
- + i +"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/stat" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/flag" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/clstlcd" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/hngnm" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/basepnt" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/timsval" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/cnfmyn" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/cmtinptyn" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/grupmulti" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/engnm" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/refseq" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/deptcd" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/supcd" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/todd" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/depth" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/grupflag" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/clsflag" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/recflag" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/sortseq" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/bktimsval" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/desccnts" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/pid" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/execdd" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/recseq" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/wardcd" )+"▦"
- + model.getValue(xRecDetailPath+ "["+i+"]/roomcd" )+"▩"
-
- }
-
- var test_12 = sDetailHeader + sDetailData;
-
- //var test_2 = grd_recdetail.getUpdateDataAll('i'); // 150114 - AYS
- //model.makeValue('/root/send/recdetail', grd_recdetail.getUpdateDataAll('i'));
- model.makeValue('/root/send/recdetail', (sDetailHeader + sDetailData));
-
- if(!submit('TXMNW04001', false)){
- //messageBox('저장을', 'E009');
- return;
- }else{
- model.removenode("/root/cond/copyexecdd");
-
-
- //조회조건 clear
- model.setValue('/root/cond/pid', '');
- //환자정보 표시 clear (2011.03.29 Ahn)
- model.setValue('root/cond/patnm', '');
- model.setValue('root/cond/sexage', '');
- model.setValue('root/cond/age', '');
-
- //model.removeNodeset(xRecMasterPath);
- //model.removeNodeset(xRecDetailPath);
- //model.removeNodeset('/root/send/');
- //model.removenode('/root/send/recmaster');
- //model.removenode('/root/send/recdetail');
-
-
- model.removenode('/root/send/');
- model.removenode('/root/main/recgrup');
- model.removenode('/root/main/recpntgrup');
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
-
- succnt++;
- cap_succnt.text = succnt;
- }
- //}else if(Number(msg) == 7){//아니오
- //
- // continue;
- //}
-
- }
-
- //sAllSignSave = false;
- //model.removeNodeset(xRecInfo);
- //model.removeNodeset(xRecMasterPath);
- //model.removeNodeset(xRecDetailPath);
- //model.removeNodeset('/root/send/');
-
- model.setValue('/root/cond/pid', '');
- model.setValue('root/cond/patnm', '');
- model.setValue('root/cond/sexage', '');
- model.setValue('root/cond/age', '');
-
- model.removenode('/root/send/');
- model.removenode('/root/main/recgrup');
- model.removenode('/root/main/recpntgrup');
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
- //model.removenode('/root/main/patinfo');
- fSearchPatList();
-
- messageBox( succnt + " 명의 환자 일괄저장이", "I001");
- }
- function fSearchRecMasterAll(patRow,pFlag){
- //혈액투석의 경우 입원환자 더블클릭 할때에 조회조건에 기본 조회값을 세팅해야함.
- //혈액투석의 경우 외래환자 더블클릭은 조회조건 비활성화
- var clsflag = model.getValue('/root/cond/clsflag');//분류구분
- var recflag = model.getValue('/root/cond/recflag');//기록구분
- var ioflag = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/ioflag"); //외래/입원구분
- var pid = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/pid"); //등록번호
- var indd = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/indd"); //입원일자
- var histstat = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/histstat"); //이력상태
- var cretno = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/cretno"); //생성번호
- var seqno = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/seqno"); //이력번호
- var hngnm = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/hngnm"); //환자명
- var execdd = model.getValue('/root/cond/execdd'); //수행일자
- var exectm = model.getValue('/root/cond/exectm'); //수행시간
- if(execdd == null || execdd == ''){
- execdd = getCurrentDate();
- }
- if(exectm == null || exectm == ''){
- exectm = getCurrentTime().substring(0, 4);
- }
- //20081014 i/o조건값 cond 노드에 setting
- model.removenode('/root/cond/ioflag');
- model.makeValue('/root/cond/ioflag', ioflag);
- //혈액투석외래환자의 경우 조회조건을 비활성화 처리
- //fDisabledSearchArea(clsflag, ioflag); // 추가여부는 추후 판단
-
- /********************************************************
- //화면 오픈시 상단에 환자 셋팅하지 않은 경우 저장 후에도 환자정보가 전체리스트로 조회되어야 함_중증도 조회조건에 셋팅하지 않음_20090211_SMY
- if(clsflag == '3'){
- //혈액투석외래환자의 경우 조회조건에 pid만 세팅, 입원환자의 경우 wardcd, roomcd, pid 세팅
- fSetSearchCondition(clsflag, ioflag);//조회조건 세팅
- }
- **********************************************************/
-
- //중증도 마스터내역을 조회한다.
- model.removenode('/root/send');
- model.makeValue('/root/send/clsflag', clsflag);
- model.makeValue('/root/send/recflag', recflag);
- model.makeValue('/root/send/execdd', execdd);
- model.makeValue('/root/send/exectm', exectm);
- model.makeValue('/root/send/pid', pid);
- model.makeValue('/root/send/indd', indd);
- model.makeValue('/root/send/histstat', histstat);
- model.makeValue('/root/send/cretno', cretno);
- model.makeValue('/root/send/seqno', seqno);
- model.makeValue('/root/send/hngnm', hngnm);
- model.makeValue('/root/send/ioflag', ioflag);
-
- // 조회구분 추가 (2011.03.31 Ahn)
- var recsrchflag = model.getValue('/root/cond/recsrchflag');
- //var recsrchflag = '1'; // 중증도 이력만 호출하기 위해 값 설정
- model.makeValue('/root/send/recsrchflag', recsrchflag);
-
- // 분류구분 중 우선순위 값 가져오기 (2011.03.31 ahn)
- var selRecFlag = fGetMinSrchFlag(recsrchflag);
- //model.makeValue('/root/send/selrecflag', recsrchflag);
- model.setValue('/root/cond/recflag', selRecFlag); // 상단 라디오체크 분류 set
-
- model.removenode('/root/main/recgrup');
- model.makeNode('/root/main/recgrup');
-
- //상세점수, 상세내역, 상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/recpntgrup');
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
- //model.refresh();
-
- //중증도내역 마스터 조회 후 기록정보 조회
- if(!submit('TRMNW04011',false)){
- messageBox('중증도내역의 조회를', 'E009');
- return;
- }else{
- //조회갯수 0일때 조회 후 수행일자, 수행시간, 최근 저장일을 세팅
- //var execdd = model.getValue('/root/cond/execdd');
- var execdd = model.getValue('/root/cond/copyexecdd');
- var exectm = model.getValue('/root/cond/exectm');
-
- if(pFlag != "4"){
- //중증도 마스터를 조회후 수행일자에 해당하는 내역이 없으면 행추가, 있으면 해당 row select
- if(!fSetRecMasterAll(exectm, execdd, pFlag)){
- return;
- } else{
- //환자정보에 선택한 로우정보 set
- //grd_patinfo.row = curRow;
- //grd_patinfo.topRow = curRow;
- //중증도 상세점수조회
- fSearchRecPntAll();
- }
- }
- }
- }
- function fSetRecMasterAll(exectm, execdd, pFlag){
- var indx = 0;
-
- for(i=1; i <= getNodesetCount(xRecMasterPath); i++){
- if((model.getValue(xRecInfo + "/recflag") == model.getValue(xRecMasterPath + '[' + i + ']/recflag')) &&
- (model.getValue(xRecInfo + "/clsflag") == model.getValue(xRecMasterPath + '[' + i + ']/clsflag'))){
- indx = i;
- break;
- }
- }
-
- if (indx > 0){ // 기록 내역이 존재할 경우 (2011.03.31 Ahn)
- recRow = indx;
- } else{
- //기록된 내역이 한건도 없을때
- //var hngnm = model.getValue("/root/main/patinfo/patlist[" + (patRow) + "]/hngnm");
- //var msgStr = '(' + hngnm + ') 환자는 중증도 저장 이력이 없습니다. 개별 인증저장 하십시오.';
- //messageBox(msgStr,"I");
- return false;
- }
-
- if ( instUseYN == "Y" && grp_agechk.visible == true ){
- model.setValue("/root/cond/agechk", model.getValue(xRecMasterPath + '[' + recRow + ']/agechk'));
- }else {
- model.setValue("/root/cond/agechk", "N");
- }
-
- return true;
- }
- function fSearchRecPntAll(selflag){
-
- model.setValue("/root/cond/maddchk01",''); // 집중치료실 환자 체크(Morse)
- model.setValue("/root/cond/maddchk02",''); // 만70세 이상 환자 체크(Morse)
- model.setValue("/root/cond/maddchk03",''); // 진정 및 이완 약물투여 환자 체크(Morse)
- model.setValue("/root/cond/maddchk04",''); // 음주 환자 체크(Morse)
- model.setValue("/root/cond/maddchk99",''); // 해당사항 없음 체크(Morse)
- model.setValue("/root/cond/haddchk",''); // 3세 미만 소아 체크(Humpty Dumpty)
- model.setValue("/root/cond/haddchk01",''); // 집충치료실 환자 체크(Humpty Dumpty)
-
- //group2.refresh();
- //group4.refresh();
-
- //var curRow = grd_recmaster.row; // 이 부분 GridRow Var로 수정 - AYS
- var clsflag = "";
- var recflag = "";
-
- if(selflag == "Sel"){
- clsflag = model.getValue(xRecMasterPath + '[' + recRow + ']/clsflag');
- recflag = model.getValue(xRecMasterPath + '[' + recRow + ']/recflag');
- if(recflag == '1'){
- model.setValue("/root/cond/clsflag", clsflag); // 중증도구분 중 선택
- }else if((recflag == '2') && (clsflag == '2')){
- model.setValue("/root/cond/clsflag", 9); // 낙상 - Morse Scale 선택
- }else if((recflag == '2') && (clsflag == '1')){
- model.setValue("/root/cond/clsflag", 8); // 낙상 - Humpty Dumpty 선택
- }else if((recflag == '3') && (clsflag == '1')){
- model.setValue("/root/cond/clsflag", 10); // 욕창 선택
- }else if(recflag == '4'){
- //model.setValue("/root/cond/clsflag", 11); // 통증 선택
- //alert("통증관련 개발중입니다.");
- //messageBox('관련 화면 준비중', 'I009');
- messageBox('통증관리기록 메뉴를 사용하십시오', 'I');
- //modal("SMMNW04800",1); //통증관리기록 화면 호출
- return;
- }
-
- fChangeCaption(model.getValue("/root/cond/clsflag")); // 선택된 구분으로 캡션 변경 (2011.04.19 ahn)
-
- }else{
- clsflag = model.getValue(xRecInfo + '/clsflag');
- recflag = model.getValue(xRecInfo + '/recflag');
- }
- // 상단 라디오 선택
- //마스터가 암것도 없을때나 행추가 상태일때는 조회안하고 바로 리턴한다.
- //if(grd_recmaster.rows < 2 || model.getValue(xRecMasterPath + '[' + recRow + ']/stat') == 'i'){ // 이 부분 GridRow Var로 수정 - AYS
- //if(getNodesetCount(xRecMasterPath) < 2 || model.getValue(xRecMasterPath + '[' + recRow + ']/stat') == 'i'){ // 이 부분 GridRow Var로 수정 - AYS
- // model.removeNodeset("/root/main/recpntgrup/recpntlist");// 중증도 상세점수 클리어
- // model.refresh();
- // }
-
- var maddchk01 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk01');
- var maddchk02 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk02');
- var maddchk03 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk03');
- var maddchk04 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk04');
- var haddchk = model.getValue(xRecMasterPath + '[' + recRow + ']/haddchk');
- //var haddchk01 = model.getValue(xRecMasterPath + '[' + recRow + ']/haddchk01');
- var dinfo = maddchk01+maddchk02+maddchk03+maddchk04+haddchk;
-
- //중증도내역 선택했던 로우정보(수행일자)를 저장한다.
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/pid", model.getValue(xRecMasterPath+"["+recRow+"]/pid"));
- model.makeValue("/root/send/indd", model.getValue(xRecMasterPath+"["+recRow+"]/indd"));
- model.makeValue("/root/send/cretno", model.getValue(xRecMasterPath+"["+recRow+"]/cretno"));
- model.makeValue("/root/send/execdd", model.getValue(xRecMasterPath+"["+recRow+"]/execdd"));
- //model.makeValue("/root/send/execdd", model.getValue('/root/cond/copyexecdd'));
- model.makeValue("/root/send/recseq", model.getValue(xRecMasterPath+"["+recRow+"]/recseq"));
- model.makeValue("/root/send/clsflag", clsflag);
- model.makeValue("/root/send/recflag", recflag);
- model.makeValue('/root/send/bspntgrup/dinfo', dinfo);
- //상세내역, 상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/recdetailgrup');
- model.removenode('/root/main/tar_desccnts');
-
- //model.refresh();
- //상세점수그리드조회
- if(!submit("TRMNW04007",false)) {//상세점수조회
- messageBox('상세점수조회를', 'E009');
- return;
- }else{
- //상세점수그리드의 컬럼을 조회한 내역의 갯수만큼 화면에 보여준다.
- //fColLqidtys(); // 삭제해도 무방하지 않을까? 그리드 참조부분 - AYS
- }
- //중증기록 detail 상세내역 그리드리스트를 조회한다.
-
- fSearchRecDetailAll();
- //addchk();
- }
- function fSearchRecDetailAll(){
-
- model.removenode('/root/main/recdetailgrup');
- model.makeNode('/root/main/recdetailgrup');
- model.removeNodeset("/root/send");
- model.makeValue("/root/send/pid", model.getValue(xRecMasterPath+"["+recRow+"]/pid"));
- model.makeValue("/root/send/cretno", model.getValue(xRecMasterPath+"["+recRow+"]/cretno"));
- model.makeValue("/root/send/indd", model.getValue(xRecMasterPath+"["+recRow+"]/indd"));
- model.makeValue("/root/send/seqno", model.getValue(xRecMasterPath+"["+recRow+"]/seqno"));
- model.makeValue("/root/send/recseq", model.getValue(xRecMasterPath+"["+recRow+"]/recseq"));
- model.makeValue("/root/send/clsflag", model.getValue(xRecMasterPath+"["+recRow+"]/clsflag"));
- model.makeValue("/root/send/recflag", model.getValue(xRecMasterPath+"["+recRow+"]/recflag"));
- model.makeValue("/root/send/execdd", model.getValue(xRecMasterPath+"["+recRow+"]/execdd"));
- model.makeValue("/root/send/newexecdd", model.getValue("/root/cond/execdd"));
- //상세설명의 현재instance를 remove한다.
- model.removenode('/root/main/tar_desccnts');
- //model.refresh();
- //중증도 상세내역 조회
- if(submit("TRMNW04006",false)){
- //model.copyNode("/root/temp","/root/main");
- //fShowTreeRecDetailGrup(); // Grid 색상 추가 부분 제거 필요
- }
- }
- function fIsRecordedAll(iptExecdd){
- var retArr = new Array(1);
- var recorded = false;
- var signno = '';
- var execdd;
- var stat;
- for(var i = 1; i < getNodesetCount(xRecMasterPath); i++){
- execdd = model.getValue(xRecMasterPath + '[' + i + ']/execdd');
- stat = model.getValue(xRecMasterPath + '[' + i + ']/stat');
- if(execdd != '' && iptExecdd == execdd && stat != 'i'){
- signno = model.getValue(xRecMasterPath + '[' + i + ']/signno');
- recorded = true;
- retArr[0] = recorded;
- retArr[1] = signno;
- return retArr;
- }
- }
- retArr[0] = recorded;
- retArr[1] = signno;
- return retArr;
- }
- function addallchk(){
-
- var wardcd = model.getValue("/root/cond/wardcd");
- var patnm = model.getValue("/root/main/patinfo/patlist[" + patRow + "]/hngnm");
- var age = model.getValue("/root/main/patinfo/patlist[" + patRow + "]/age");
- var maddchk01 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk01');
- var maddchk02 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk02');
- var maddchk03 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk03');
- var maddchk04 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk04');
- var maddchk99 = model.getValue(xRecMasterPath + '[' + recRow + ']/maddchk99');
- var haddchk = model.getValue(xRecMasterPath + '[' + recRow + ']/haddchk');
- var haddchk01 = model.getValue(xRecMasterPath + '[' + recRow + ']/haddchk01');
- if(model.getValue("/root/cond/clsflag") == "8"){
-
- if(parseInt(age) >= 15){
- messageBox(patnm + " 환자는 15세 이상입니다. Morse scale을 사용해야 합니다.","E");
- //messageBox("낙상 위험 사정은 15세 이상 - Morse scale을 사용해야 합니다.","E");
- return false;
- }else{
-
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")){ // 중환자실이면
- //chk_haddchk01.value = 'Y';
- haddchk01 = 'Y';
- model.setValue(xRecMasterPath + '[' + recRow + ']/haddchk01', haddchk01);
- }
- }
-
- if(parseInt(age) < 3){
- //chk_haddchk.value = 'Y';
- haddchk = 'Y';
- model.setValue(xRecMasterPath + '[' + recRow + ']/haddchk', haddchk);
- }
- }
-
- }else if(model.getValue("/root/cond/clsflag") == "9"){
-
- if(parseInt(age) < 15){
- //messageBox("낙상 위험 사정은 15세 미만 - Humpty Dumpty scale을 사용해야 합니다.","E");
- messageBox(patnm + " 환자는 15세 미만입니다. Humpty Dumpty scale을 사용해야 합니다.","E");
- return false;
- }else{
-
- for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
- if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")){ // 중환자실이면
- //chk_maddchk01.value = 'Y';
- maddchk01 = 'Y';
- model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk01', maddchk01);
- }
- }
- }
- if(parseInt(age) >= 70){
- //chk_maddchk02.value = 'Y';
- maddchk02 = 'Y';
- model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk02', maddchk02);
- }
-
- if(maddchk01 == "" && maddchk02 == "" && maddchk03 == "" && maddchk04 == "" && maddchk99 == "" ){
- maddchk99 = 'Y';
- model.setValue(xRecMasterPath + '[' + recRow + ']/maddchk99', maddchk99);
- }
- }
-
- model.setValue("/root/cond/maddchk01" , maddchk01);
- model.setValue("/root/cond/maddchk02" , maddchk02);
- model.setValue("/root/cond/maddchk03" , maddchk03);
- model.setValue("/root/cond/maddchk04" , maddchk04);
- model.setValue("/root/cond/maddchk99" , maddchk99);
- model.setValue("/root/cond/haddchk" , haddchk);
- model.setValue("/root/cond/haddchk01" , haddchk01);
-
- return true;
- }
- function fLoadFallPnt(recflag, clsflag, bspntnm){
- //debugger;
- var spid = model.getValue(xRecMasterPath + "/pid");
- var sorddd = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/indd');
- var sioflag = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/ioflag');
- var scretno = model.getValue('/root/main/patinfo/patlist[' + (grd_patinfo.row-1) + ']/cretno');
- var sexecdd = model.getValue('/root/cond/execdd');
- var sfromcd = "";
- var sprntyn = "";
- var left = event.screenX;
- var top = event.screenY;
- var snowdate = getCurrentDate();
- if(recflag == '2' && clsflag == '1'){ //Humpty Dumpty(소아)
- sfromcd = '1600017757';
- sprntyn = 'Y';
- } else if(recflag == '2' && clsflag == '2'){ // Morse Scale(성인)
- sfromcd = '1600017756';
- sprntyn = 'Y';
- } else{
- sfromcd = '';
- sprntyn = 'N';
- }
-
- model.removenode('/root/send2');
- model.makeValue("/root/send2/req/pid", spid);
- model.makeValue("/root/send2/req/indd", sorddd);
- model.makeValue("/root/send2/req/cretno", scretno);
- model.makeValue("/root/send2/req/formcd", sfromcd);
-
- if(getUserInfo("dutplceinstcd") == '032' && sprntyn == 'Y' && bspntnm == '고위험군' && snowdate == sexecdd && getUserInfo("dutplcecd") != '3062300000' && getUserInfo("dutplcecd") != '2110201000' && getUserInfo("dutplcecd") != '2364601000') {
- if (submit("TRMNW15101") == true){
- if(getNodesetCount("/root/duplocrprnt/msginfo/list") > 0 ) { // 출력했던 건인 경우
- if(model.getValue("/root/duplocrprnt/msginfo/list/scanyn") == "N"){ // 스캔된건이 없는경우
- if(model.getValue("/root/duplocrprnt/msginfo/list/statcd") == "D" || model.getValue("/root/duplocrprnt/msginfo/list/statcd") == "CP"){ // 삭제/출력취소 된 건인 경우
- //신규출력
- fOCRPrint(spid, sorddd, scretno, sioflag, sfromcd);
- //fOCRPrint(left, top, spid, sorddd, scretno, sioflag, sfromcd);
-
- }
- }
- }else{
- // 신규출력
- fOCRPrint(spid, sorddd, scretno, sioflag, sfromcd);
- //fOCRPrint(left, top, spid, sorddd, scretno, sioflag, sfromcd);
- }
- }
- }
- }
- function fOCRPrint(spid, sorddd, scretno, sioflag, sformcd){
- //ivwiewer 를 nonvisible 로 올려두고 진행
- var formcd = sformcd
- var pid = spid
- var orddd = sorddd
- var cretno = scretno
- var ordtype = sioflag
- var formtypecls = "3";
- var ocrtagprntyn = "Y";
- ivw_ocrprnt.attribute("src") = "../../../emr/formmngtweb/xrw/SSMRF03800_OCR뷰어.xrw";
- ivw_ocrprnt.window.javascript.fGetOCRInfo(formcd, pid, orddd, cretno, ordtype, formtypecls, ocrtagprntyn);
- ivw_ocrprnt.window.javascript.fPrint();
- }
|