SMMNR10100.js 368 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566
  1. /*
  2. Flow Sheet(SMMNR10100.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var sCondPath = "/root/main/cond";
  7. var xChartHeaderListPath = "/root/main/chartheaderlist";
  8. var xStnddayClincObsRecListPath = "/root/main/clincobsrecinfo/stnddayclincobsrecinfo/stnddayclincobsreclist";
  9. var xFormerdayClincObsRecListPath = "/root/main/clincobsrecinfo/formerclincobsrecinfo/formerclincobsreclist";
  10. var xHoursClincObsRecList = "/root/main/clincobsrecinfo/hoursclincobsrecinfo/hoursclincobsreclist";
  11. var xDaysClincObsRecList = "/root/main/clincobsrecinfo/daysclincobsrecinfo/daysclincobsreclist";
  12. var xPamInfoPath = "/root/main/paminfo/pamlist"; // 환자정보
  13. var xDayCountListPath = "/root/main/daycountinfo/daycountlist";
  14. var xFormerDayCountListPath = "/root/main/formerdaycountinfo/daycountlist";
  15. var xIntervalRecYNListPath = "/root/temp/clincobsrecinfo/intervalrecynlist";
  16. var xClincObsRecListPath = "/root/temp/clincobsrecinfo/clincobsreclist";
  17. var sAttrListPath = "/root/temp/clincobsrecinfo/attrlist";
  18. var sAttrListPath1 = "/root/temp/clincobsrecinfo/attrlist1";
  19. var xRecUserListPath = "/root/temp/clincobsrecinfo/recuserlist";
  20. var xTMSettingListPath = "/root/temp/clincobsrecinfo/tmsettinglist";
  21. var sAttrListTempPath = "/root/temp/attrinfo/attrlist";
  22. var sAttrListInitPath = "/root/temp/initcmblnfo/initcmblist";
  23. var xFormerIntervalRecYNListPath = "/root/temp/formerclincobsrecinfo/intervalrecynlist";
  24. var xFormerClincObsRecListPath = "/root/temp/formerclincobsrecinfo/clincobsreclist";
  25. var xFormerAttrListPath = "/root/temp/formerclincobsrecinfo/attrlist";
  26. var xFormerAttrListPath1 = "/root/temp/formerclincobsrecinfo/attrlist1";
  27. var xFormerRecUserListPath = "/root/temp/formerclincobsrecinfo/recuserlist";
  28. var xPathViewData = "/root/temp/clincobsrecinfo/rtnsigndata";
  29. var xFormerRecPath = "/root/temp/formerclincobsrecinfo";
  30. var sSettingNode = "/root/temp/viewersettinginfo/viewersettinglist" ;
  31. var xFluidPath = "/root/temp/clincobsrecinfo/fluidlist";
  32. var xInstrmtPath = "/root/temp/clincobsrecinfo/instrmtlist";
  33. var xFluidTmpPath = "/root/temp/clincobsfluidrecinfo/fluidlist";
  34. var xResultPath = "/root/certtemp/recinfo";
  35. var xResultAttrPath = "/root/certattrtemp/recattrinfo";
  36. var xItemPopupPath = "/root/init/popmenu/itemcolmenu";
  37. var xItemInitPopupPath = "/root/init/popmenu/iteminitmenu/menulist";
  38. var sHeader = new Array();
  39. var sFormerHeader = new Array();
  40. var sGbn = ""; // 환자번호
  41. var sPid = ""; // 환자번호
  42. var sIndd = ""; // 입원일자
  43. var sCretNo = ""; // 환자 일자별 일련번호
  44. var sInstcd = ""; // 기관코드
  45. var sIOFlag = ""; // 입원/외래 구분
  46. var sWardCD = ""; // 병동코드
  47. var sRoomCD = ""; // 병실코드
  48. var sJobKindCD = ""; // 직급코드
  49. var sIndschacptstat = "";
  50. var sDschdd = "";
  51. var sChartItem = new Array();
  52. var sDayCountFlag = "";
  53. var sPopUpMenuFlag = "";
  54. var s4DateSrch = "";
  55. var sViewerRecDD = "";
  56. var sViewerFunc = "sign";
  57. var sMakeChartInfo = new Array();
  58. var sImageRecDD = "";
  59. var sPatNm = "";
  60. var sSexAge = "";
  61. var sDutplcecd = "";
  62. var sOrdDeptcd = "";
  63. var sMedispclid = "";
  64. var sUserFlag = "";
  65. var sUserDeptCd = "";
  66. var sUserId = "";
  67. var sUserNm = "";
  68. var sSpParamInfo = "";
  69. var sPamInfo = "";
  70. var sParamInfo = "";
  71. var sSelectView = "24hours";
  72. var sFluidSumInfo = new Array(); //Fluid 합계 정보 배열
  73. var sFluidBfSumInfo = new Array(); //Fluid 과거 합계 정보 배열
  74. //환경설정 변수
  75. var sDayStndTm = "999999";
  76. var sEvenStndTm = "999999";
  77. var sNightStndTm = "999999";
  78. var sIoTmUseYn = "Y";
  79. var sEventItemUseYn = "N";
  80. var sSeriousYseYn = "N";
  81. var sApchUseYn = "N";
  82. var sHdayUseYn = "Y";
  83. var sPodUseYn = "Y";
  84. var sIcuDayUseYn = "N";
  85. var sCpDayUseYn = "N";
  86. var sBmtUseYn = "N";
  87. var sAntiDayUseYn = "N";
  88. var sHeightUseYn = "N";
  89. var sWeightUseYn = "N";
  90. var sBloodUseYn = "N";
  91. var sChngRoomUseYn = "N";
  92. var sOpddUseYn = "Y";
  93. var sStartTm = "060000";
  94. var sGraphUseYn = "Y"
  95. var sSrchTypeInfo = "ALL";
  96. var sInitTimeFlag = "60";
  97. var sFamilyMeetUseYn = "N";
  98. var sBrthddUseYn = "N";
  99. var sWardBtnUseYn = "N";
  100. var sHeaderFlag = "D";
  101. var sTmpSaveUseYn = "N";
  102. var sPatInfoViewCdnt = 0;
  103. var sDayCountCnt = 0;
  104. var sDataRowHeight = 23;
  105. var sDataFontSize = 12;
  106. var sTotaluseYn = "Y";
  107. var sSubTotaluseYn = "N";
  108. var sRunTotaluseYn = "N";
  109. var sCurrentTMColInfo = 0; //Now 기준 Col정보
  110. var sDutyTMColInfo1 = 0; //Day 기준 Col정보
  111. var sDutyTMColInfo2 = 0; //Evening 기준 Col정보
  112. var sDutyTMColInfo3 = 0; //Night 기준 Col정보
  113. var sNowDate = "";
  114. var sCmbWardValue = "";
  115. var sCmbRoomValue = "";
  116. var sCmbPatValue = "";
  117. var sCmbMyPatValue = "";
  118. var s24ClsListInitYn = "N";
  119. var sSclsChkFlag = "Y";
  120. //---------(20110228) 경북대
  121. var gcurrentpid = "";
  122. var gpidPath = "/root/temp/cond/settingpatient/settingpatientlist";
  123. //---------(20110228) 경북대
  124. //경북대 응급실 관련 변수 (2011.03.02 Ahn)
  125. var eERDEPTCD = "";
  126. var eERFLAG = "";
  127. //경북대 환자 콤보 리스트 경로
  128. var erPatPidPath = "/root/temp/cond/patientgrup/patientgruplist";
  129. //경북대 기록지 구분용 (기록 유무 표시) _ 2011.03.10 (ahn)
  130. var eRECFLAG = "erFlow"; // 임상관찰기록
  131. var sJobkind = getUserInfo("jobkindcd").substring(0, 2);
  132. //var sChartNum = 1;
  133. /**
  134. * @group :
  135. * @ver : 2009.12.15
  136. * @by : 양천덕
  137. * @---------------------------------------------------
  138. * @type : function
  139. * @access : public
  140. * @desc : FlowSheet 환경 설정 조회
  141. * @param :
  142. * @return :
  143. * @---------------------------------------------------
  144. */
  145. function fInitViewer(){
  146. //FlowSheet 환경설정 정보 조회
  147. submit("TRMNR10101", false);
  148. if( getNodesetCount(sSettingNode) > 0 ){
  149. //화면 open시점 설정 정보
  150. sStartTm = model.getValue(sSettingNode + "/starttm" ); //조회시작시간
  151. sGraphUseYn = model.getValue(sSettingNode + "/graphuseyn" ); //그래프사용여부
  152. sSrchTypeInfo = model.getValue(sSettingNode + "/srchtypeinfo" ); //조회분류정보
  153. sInitTimeFlag = model.getValue(sSettingNode + "/inittimeflag" ); //초기조회시간구분
  154. sWardBtnUseYn = model.getValue(sSettingNode + "/wardbtnuseyn" ); //병동버튼사용여부
  155. sTmpSaveUseYn = model.getValue(sSettingNode + "/tmpsaveuseyn" ); //임시저장사용여부
  156. sIoTmUseYn = model.getValue(sSettingNode + "/iotmuseyn" ); //경구입력화면 버튼 사용여부
  157. if(getNodesetCount(sSettingNode + "/srchtminfo/minlist/item") > 0){
  158. model.copynode("/root/init/minlist", sSettingNode + "/srchtminfo/minlist"); //조회시간값
  159. }
  160. //환자 정보 조회 후 설정 정보
  161. sSeriousYseYn = model.getValue(sSettingNode + "/serioususeyn" ); //중증정보사용여부
  162. sApchUseYn = model.getValue(sSettingNode + "/apchuseyn" ); //아파치정보사용여부
  163. sHdayUseYn = model.getValue(sSettingNode + "/hdayuseyn" ); //HospitalDay사용여부
  164. sIcuDayUseYn = model.getValue(sSettingNode + "/icudayuseyn" ); //ICUDay사용여부
  165. sOpddUseYn = model.getValue(sSettingNode + "/opdduseyn" ); //수술일정보사용여부
  166. sPodUseYn = model.getValue(sSettingNode + "/poduseyn" ); //OP경과일사용여부
  167. sCpDayUseYn = model.getValue(sSettingNode + "/cpdayuseyn" ); //CP적용일자사용여부
  168. sBmtUseYn = model.getValue(sSettingNode + "/bmtuseyn" ); //BMT적용일자사용여부
  169. sAntiDayUseYn = model.getValue(sSettingNode + "/antidayuseyn" ); //항암프로토콜적용일사용여부
  170. sHeightUseYn = model.getValue(sSettingNode + "/heightuseyn" ); //키정보사용여부
  171. sWeightUseYn = model.getValue(sSettingNode + "/weightuseyn" ); //몸무게정보사용여부
  172. sBloodUseYn = model.getValue(sSettingNode + "/blooduseyn" ); //혈액준비사용여부
  173. sChngRoomUseYn = model.getValue(sSettingNode + "/chngroomuseyn" ); //전실사용여부
  174. sFamilyMeetUseYn = model.getValue(sSettingNode + "/familymeetuseyn"); //가족면회정보사용여부
  175. sBrthddUseYn = model.getValue(sSettingNode + "/brthdduseyn" ); //출생일정보조회여부
  176. //데이터 조회 후 처리 설정 정보
  177. sHeaderFlag = model.getValue(sSettingNode + "/headerflag" ); //조회해더구분(A:전체, D:일시 두줄 조회, T:일시 한줄조회)
  178. sDayStndTm = model.getValue(sSettingNode + "/daystndtm" ); //Day기준시간
  179. sEvenStndTm = model.getValue(sSettingNode + "/evenstndtm" ); //Evening기준시간
  180. sNightStndTm = model.getValue(sSettingNode + "/nightstndtm" ); //Night기준시간
  181. sDataRowHeight = model.getValue(sSettingNode + "/datarowheight" ); //Grid행 높이
  182. sDataFontSize = model.getValue(sSettingNode + "/datafontsize" ); //Grid글씨크기
  183. sTotaluseYn = model.getValue(sSettingNode + "/totaluseyn" ); //합계사용여부
  184. sSubTotaluseYn = model.getValue(sSettingNode + "/subtotaluseyn" ); //부분합계사용여부
  185. sRunTotaluseYn = model.getValue(sSettingNode + "/runtotaluseyn" ); //누적합계사용여부
  186. sEventItemUseYn = model.getValue(sSettingNode + "/eventitemuseyn" ); //Event사용여부
  187. }
  188. //화면 선택 정보
  189. sSelectView = "24hours";
  190. //if(switch1.selectedIndex == 1) sSelectView = "24hours";
  191. //if(switch1.selectedIndex == 2) sSelectView = "4days";
  192. //if(switch1.selectedIndex == 3) sSelectView = "formerday";
  193. //그래프 사용 여부 설정
  194. if(sGraphUseYn == "Y"){
  195. if(model.getValue(sCondPath+"/vwctrl_4days") == ""){ // (A : Graph Off, I : Graph On)
  196. model.setValue(sCondPath+"/vwctrl_4days", "I");
  197. }
  198. if(model.getValue(sCondPath+"/vwctrl_24hours") == ""){ // (A : Graph Off, I : Graph On)
  199. model.setValue(sCondPath+"/vwctrl_24hours", "I");
  200. }
  201. //그래프 초기화 작업 함수 호출(그래프 생성 함수와 동일 Parameter로 처리)
  202. fMakeChart("init24hours");
  203. //fMakeChart("init4days" );
  204. }else{
  205. if(model.getValue(sCondPath+"/vwctrl_4days") == ""){ // (A : Graph Off, I : Graph On)
  206. model.setValue(sCondPath+"/vwctrl_4days", "A");
  207. }
  208. if(model.getValue(sCondPath+"/vwctrl_24hours") == ""){ // (A : Graph Off, I : Graph On)
  209. model.setValue(sCondPath+"/vwctrl_24hours", "A");
  210. }
  211. }
  212. //병동관련 업무 Btn그룹 사용 여부 설정
  213. if(sWardBtnUseYn == "Y"){
  214. grp_wardbtn.visible = true;
  215. }else{
  216. grp_wardbtn.visible = false;
  217. }
  218. //임시저장 기능 사용 여부 설정
  219. if(sTmpSaveUseYn == "Y"){
  220. btn_tempsave.disabled = false;
  221. }else{
  222. btn_tempsave.disabled = true;
  223. }
  224. //경구입력화면 버튼 사용여부
  225. if( sIoTmUseYn == "Y" ){
  226. btn_EtrlInpt.visible = true;
  227. }else{
  228. btn_EtrlInpt.visible = false;
  229. }
  230. //model.setValue(sCondPath+"/vwctrl_button","24hours");
  231. //model.setValue(sCondPath+"/daycountinfo", "1 2 3 4 5 6");
  232. //model.setValue(sCondPath+"/formerdaycountinfo", "1 2 3 4 5 6");
  233. //화면 전환 및 그래프 설정
  234. fChageView(sSelectView);
  235. //파라미터 정보 조회
  236. sParamInfo = "";
  237. sSpParamInfo = "";
  238. //24시간 그리드 콤보 노드 세팅
  239. for(var i=0; i< 24; i++){
  240. model.makeNode("/root/init/hourlist/item["+(i+1)+"]");
  241. if(i <10){
  242. model.makeValue("/root/init/hourlist/item["+(i+1)+"]/cd","0"+i);
  243. }else{
  244. model.makeValue("/root/init/hourlist/item["+(i+1)+"]/cd",i);
  245. }
  246. model.makeValue("/root/init/hourlist/item["+(i+1)+"]/nm",i);
  247. }
  248. //사용자 직급구분에 따른 화면 제어 설정
  249. sJobKindCD = getUserInfo("jobkindcd"); // 직급코드
  250. sUserDeptCd = getUserInfo("dutplcecd"); // 근무부서코드
  251. sUserId = getUserInfo("userid"); // 사용자ID
  252. sUserNm = getUserInfo("usernm"); // 사용자명
  253. if(getUserInfo("dutplceinstcd") == '031'){
  254. button2.visible = true;
  255. }else{
  256. button2.visible = false;
  257. }
  258. //---------(20101204) 경북대
  259. //추가
  260. var ssflag = "";
  261. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  262. //경북대가 아니면
  263. if( sJobKindCD == "0330" || sJobKindCD == "0310"){
  264. ssflag = "Y";
  265. }else{
  266. ssflag = "N";
  267. }
  268. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  269. //경북대이면 03%로 체크한다.
  270. if( sJobKindCD.substring(0, 2) == "03"){
  271. ssflag = "Y";
  272. }else{
  273. ssflag = "N";
  274. }
  275. }
  276. //원본:의사의 경우만
  277. //병동, 진료 구분 설정
  278. //if(sJobKindCD == "0330" || sJobKindCD == "0310"){
  279. if(ssflag=="Y") {
  280. //---------(20101204) 경북대
  281. sUserFlag = "2";
  282. }else{
  283. sUserFlag = "1";
  284. }
  285. //사용자 구분에 따른 설정 변경 Test Setting
  286. //sUserFlag = "2";
  287. model.setValue(sCondPath+"/srchflag", sUserFlag);
  288. //Parameter 정보 체크
  289. if(checkOpener()){
  290. /**
  291. SMMNR00900_Param
  292. pid▦indd▦cretno▦instcd▩ ==> 등록번호▦입원일자▦생성번호▦기관코드▩
  293. SMMNR00900_SpParam
  294. pid▦indd▦cretno▦instcd▦inrmdt▦dutplcecd▩ ==> 등록번호▦입원일자▦생성번호▦기관코드▦근무지코드▩
  295. => Sample Param
  296. sSpParamInfo = "pid▦indd▦cretno▦instcd▦inrmdt▩18907181▦20080102▦800340650▦012▦20080930120300▦3073300000▩";
  297. sParamInfo = "pid▦indd▦cretno▦instcd▩19466116▦20080913▦800511468▦012▩";
  298. **/
  299. sSpParamInfo = opener.javascript.getParameter("SMMNR00900_SpParam");
  300. if(sSpParamInfo == ""){
  301. sParamInfo = opener.javascript.getParameter("SMMNR00900_Param");
  302. opener.javascript.clearParameter("SMMNR00900_Param");
  303. setParameter("SMMNR00900_Param","");
  304. }else{
  305. sParamInfo = sSpParamInfo;
  306. sDutplcecd = fGetArrayDataTPR(sSpParamInfo,1,5);
  307. }
  308. }
  309. //화면 기본 정보 설정(회복실, 마취과 별도 Action 추가)
  310. //if(sSpParamInfo != "" && sDutplcecd != ""){
  311. // chk_bizlnkflag.visible = true;
  312. // chk_bizlnkflag.value = "Y";
  313. //}
  314. //fControlPatInfo();
  315. /*
  316. if(sSeriousYseYn == "Y"){
  317. cap_serious.visible = true;
  318. cap_seriousvalue1.visible = true;
  319. cap_seriousvalue2.visible = true;
  320. cap_seriousvalue3.visible = true;
  321. cap_serious.attribute("left") = sPatInfoViewCdnt;
  322. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_serious.attribute("width").replace("px", ""));
  323. cap_seriousvalue1.attribute("left") = sPatInfoViewCdnt;
  324. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_seriousvalue1.attribute("width").replace("px", ""));
  325. cap_seriousvalue2.attribute("left") = sPatInfoViewCdnt;
  326. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_seriousvalue2.attribute("width").replace("px", ""));
  327. cap_seriousvalue3.attribute("left") = sPatInfoViewCdnt;
  328. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_seriousvalue3.attribute("width").replace("px", "")) + 5;
  329. }
  330. if(sApchUseYn == "Y"){
  331. cap_apch.visible = true;
  332. cap_apchvalue.visible = true;
  333. cap_apch.attribute("left") = sPatInfoViewCdnt;
  334. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_apch.attribute("width").replace("px", ""));
  335. cap_apchvalue.attribute("left") = sPatInfoViewCdnt;
  336. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_apchvalue.attribute("width").replace("px", "")) + 3;
  337. }
  338. if(sHdayUseYn == "Y"){
  339. sDayCountCnt++;
  340. cap_hd.visible = true;
  341. cap_hdvalue.visible = true;
  342. cap_hd.attribute("left") = sPatInfoViewCdnt;
  343. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_hd.attribute("width").replace("px", ""));
  344. cap_hdvalue.attribute("left") = sPatInfoViewCdnt;
  345. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_hdvalue.attribute("width").replace("px", "")) + 3;
  346. }
  347. if(sIcuDayUseYn == "Y"){
  348. sDayCountCnt++;
  349. cap_icu.visible = true;
  350. cap_icuvalue.visible = true;
  351. cap_icu.attribute("left") = sPatInfoViewCdnt;
  352. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_icu.attribute("width").replace("px", ""));
  353. cap_icuvalue.attribute("left") = sPatInfoViewCdnt;
  354. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_icuvalue.attribute("width").replace("px", ""));
  355. }
  356. if(sOpddUseYn == "Y"){
  357. cap_opdd.visible = true;
  358. cap_opddvalue.visible = true;
  359. cap_opdd.attribute("left") = sPatInfoViewCdnt;
  360. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_opdd.attribute("width").replace("px", ""));
  361. cap_opddvalue.attribute("left") = sPatInfoViewCdnt;
  362. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_opddvalue.attribute("width").replace("px", "")) + 3;
  363. }
  364. if(sPodUseYn == "Y"){
  365. sDayCountCnt++;
  366. cap_pod.visible = true;
  367. cap_podvalue.visible = true;
  368. cap_pod.attribute("left") = sPatInfoViewCdnt;
  369. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_pod.attribute("width").replace("px", ""));
  370. cap_podvalue.attribute("left") = sPatInfoViewCdnt;
  371. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_podvalue.attribute("width").replace("px", "")) + 3;
  372. }
  373. if(sCpDayUseYn == "Y"){
  374. sDayCountCnt++;
  375. cap_cp.visible = true;
  376. cap_cpvalue.visible = true;
  377. cap_cp.attribute("left") = sPatInfoViewCdnt;
  378. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_cp.attribute("width").replace("px", ""));
  379. cap_cpvalue.attribute("left") = sPatInfoViewCdnt;
  380. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_cpvalue.attribute("width").replace("px", "")) + 3;
  381. }
  382. if(sBmtUseYn == "Y"){
  383. sDayCountCnt++;
  384. cap_bmt.visible = true;
  385. cap_bmtvalue.visible = true;
  386. cap_bmt.attribute("left") = sPatInfoViewCdnt;
  387. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_bmt.attribute("width").replace("px", ""));
  388. cap_bmtvalue.attribute("left") = sPatInfoViewCdnt;
  389. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_bmtvalue.attribute("width").replace("px", "")) + 3;
  390. }
  391. if(sAntiDayUseYn == "Y"){
  392. sDayCountCnt++;
  393. cap_d.visible = true;
  394. cap_dvalue.visible = true;
  395. cap_d.attribute("left") = sPatInfoViewCdnt;
  396. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_d.attribute("width").replace("px", ""));
  397. cap_dvalue.attribute("left") = sPatInfoViewCdnt;
  398. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_dvalue.attribute("width").replace("px", "")) + 3;
  399. }
  400. if(sHeightUseYn == "Y"){
  401. cap_height.visible = true;
  402. cap_heightvalue.visible = true;
  403. cap_height.attribute("left") = sPatInfoViewCdnt;
  404. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_height.attribute("width").replace("px", ""));
  405. cap_heightvalue.attribute("left") = sPatInfoViewCdnt;
  406. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_heightvalue.attribute("width").replace("px", "")) + 3;
  407. }
  408. if(sWeightUseYn == "Y"){
  409. cap_weight.visible = true;
  410. cap_weightvalue.visible = true;
  411. cap_weight.attribute("left") = sPatInfoViewCdnt;
  412. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_weight.attribute("width").replace("px", ""));
  413. cap_weightvalue.attribute("left") = sPatInfoViewCdnt;
  414. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_weightvalue.attribute("width").replace("px", "")) + 3;
  415. }
  416. if(sBloodUseYn == "Y"){
  417. cap_blood.visible = true;
  418. cap_bloodvalue.visible = true;
  419. cap_blood.attribute("left") = sPatInfoViewCdnt;
  420. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_blood.attribute("width").replace("px", ""));
  421. cap_bloodvalue.attribute("left") = sPatInfoViewCdnt;
  422. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_bloodvalue.attribute("width").replace("px", "")) + 3;
  423. }
  424. if(sChngRoomUseYn == "Y"){
  425. cap_chngroom.visible = true;
  426. cap_chngroomvalue.visible = true;
  427. cap_chngroom.attribute("left") = sPatInfoViewCdnt;
  428. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_chngroom.attribute("width").replace("px", ""));
  429. cap_chngroomvalue.attribute("left") = sPatInfoViewCdnt;
  430. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_chngroomvalue.attribute("width").replace("px", "")) + 3;
  431. }
  432. if(sBrthddUseYn == "Y"){
  433. cap_brthdd.visible = true;
  434. cap_brthddvalue.visible = true;
  435. cap_brthdd.attribute("left") = sPatInfoViewCdnt;
  436. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_brthdd.attribute("width").replace("px", ""));
  437. cap_brthddvalue.attribute("left") = sPatInfoViewCdnt;
  438. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_brthddvalue.attribute("width").replace("px", "")) + 3;
  439. }
  440. if(sFamilyMeetUseYn == "Y"){
  441. cap_familymeetam.visible = true;
  442. cap_familymeetamvalue.visible = true;
  443. cap_familymeetpm.visible = true;
  444. cap_familymeetpmvalue.visible = true;
  445. }
  446. //환자 기본 정보 조회 화면 위치 설정
  447. if(eval(grp_patinfolist.attribute("width").replace("px", "")) - sPatInfoViewCdnt >= 225 ){
  448. grp_patinfolist.attribute("left") = 225;
  449. grp_patinfolist.attribute("width") = eval(grp_patinfolist.attribute("width").replace("px", "")) - 225;
  450. }else{
  451. grp_patinfolist.attribute("left") = eval(grp_patinfolist.attribute("width").replace("px", "")) - sPatInfoViewCdnt ;
  452. grp_patinfolist.attribute("width") = sPatInfoViewCdnt;
  453. }
  454. */
  455. model.setValue(sCondPath+"/timeflag", sInitTimeFlag);
  456. model.setValue(sCondPath+"/cmbstatusx", "0");
  457. model.setValue(sCondPath+"/cmbstatusy", "0");
  458. model.setValue(sCondPath+"/rectm",sStartTm);
  459. }
  460. function fControlPatInfo(){
  461. sPatInfoViewCdnt = 15; //0->15로 수정_20110207_SMY
  462. if(sSeriousYseYn == "Y"){
  463. cap_serious.visible = true;
  464. cap_seriousvalue1.visible = true;
  465. cap_seriousvalue2.visible = true;
  466. cap_seriousvalue3.visible = true;
  467. cap_serious.attribute("left") = sPatInfoViewCdnt;
  468. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_serious.attribute("width").replace("px", ""));
  469. cap_seriousvalue1.attribute("left") = sPatInfoViewCdnt;
  470. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_seriousvalue1.attribute("width").replace("px", ""));
  471. cap_seriousvalue2.attribute("left") = sPatInfoViewCdnt;
  472. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_seriousvalue2.attribute("width").replace("px", ""));
  473. cap_seriousvalue3.attribute("left") = sPatInfoViewCdnt;
  474. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_seriousvalue3.attribute("width").replace("px", "")) + 5;
  475. }
  476. if(sApchUseYn == "Y"){
  477. cap_apch.visible = true;
  478. cap_apchvalue.visible = true;
  479. cap_apch.attribute("left") = sPatInfoViewCdnt;
  480. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_apch.attribute("width").replace("px", ""));
  481. cap_apchvalue.attribute("left") = sPatInfoViewCdnt;
  482. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_apchvalue.attribute("width").replace("px", "")) + 5;
  483. }
  484. if(sHdayUseYn == "Y"){
  485. sDayCountCnt++;
  486. cap_hd.visible = true;
  487. cap_hdvalue.visible = true;
  488. cap_hd.attribute("left") = sPatInfoViewCdnt;
  489. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_hd.attribute("width").replace("px", ""));
  490. cap_hdvalue.attribute("left") = sPatInfoViewCdnt;
  491. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_hdvalue.attribute("width").replace("px", "")) + 5;
  492. }
  493. if(sIcuDayUseYn == "Y"){
  494. sDayCountCnt++;
  495. cap_icu.visible = true;
  496. cap_icuvalue.visible = true;
  497. cap_icu.attribute("left") = sPatInfoViewCdnt;
  498. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_icu.attribute("width").replace("px", ""));
  499. cap_icuvalue.attribute("left") = sPatInfoViewCdnt;
  500. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_icuvalue.attribute("width").replace("px", "")) + 5;
  501. }
  502. if(sOpddUseYn == "Y"){
  503. cap_opdd.visible = true;
  504. cap_opddvalue.visible = true;
  505. cap_opdd.attribute("left") = sPatInfoViewCdnt;
  506. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_opdd.attribute("width").replace("px", ""));
  507. cap_opddvalue.attribute("left") = sPatInfoViewCdnt;
  508. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_opddvalue.attribute("width").replace("px", "")) + 5;
  509. }
  510. if(sPodUseYn == "Y"){
  511. sDayCountCnt++;
  512. cap_pod.visible = true;
  513. cap_podvalue.visible = true;
  514. cap_pod.attribute("left") = sPatInfoViewCdnt;
  515. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_pod.attribute("width").replace("px", ""));
  516. cap_podvalue.attribute("left") = sPatInfoViewCdnt;
  517. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_podvalue.attribute("width").replace("px", "")) + 5;
  518. }
  519. if(sCpDayUseYn == "Y"){
  520. sDayCountCnt++;
  521. cap_cp.visible = true;
  522. cap_cpvalue.visible = true;
  523. cap_cp.attribute("left") = sPatInfoViewCdnt;
  524. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_cp.attribute("width").replace("px", ""));
  525. cap_cpvalue.attribute("left") = sPatInfoViewCdnt;
  526. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_cpvalue.attribute("width").replace("px", "")) + 5;
  527. }
  528. if(sBmtUseYn == "Y"){
  529. sDayCountCnt++;
  530. cap_bmt.visible = true;
  531. cap_bmtvalue.visible = true;
  532. cap_bmt.attribute("left") = sPatInfoViewCdnt;
  533. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_bmt.attribute("width").replace("px", ""));
  534. cap_bmtvalue.attribute("left") = sPatInfoViewCdnt;
  535. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_bmtvalue.attribute("width").replace("px", "")) + 5;
  536. }
  537. if(sAntiDayUseYn == "Y"){
  538. sDayCountCnt++;
  539. cap_d.visible = true;
  540. cap_dvalue.visible = true;
  541. cap_d.attribute("left") = sPatInfoViewCdnt;
  542. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_d.attribute("width").replace("px", ""));
  543. cap_dvalue.attribute("left") = sPatInfoViewCdnt;
  544. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_dvalue.attribute("width").replace("px", "")) + 5;
  545. }
  546. if(sHeightUseYn == "Y"){
  547. cap_height.visible = true;
  548. cap_heightvalue.visible = true;
  549. cap_height.attribute("left") = sPatInfoViewCdnt;
  550. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_height.attribute("width").replace("px", ""));
  551. cap_heightvalue.attribute("left") = sPatInfoViewCdnt;
  552. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_heightvalue.attribute("width").replace("px", "")) + 5;
  553. }
  554. if(sWeightUseYn == "Y"){
  555. cap_weight.visible = true;
  556. cap_weightvalue.visible = true;
  557. cap_weight.attribute("left") = sPatInfoViewCdnt;
  558. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_weight.attribute("width").replace("px", ""));
  559. cap_weightvalue.attribute("left") = sPatInfoViewCdnt;
  560. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_weightvalue.attribute("width").replace("px", "")) + 5;
  561. }
  562. if(sBloodUseYn == "Y"){
  563. cap_blood.visible = true;
  564. cap_bloodvalue.visible = true;
  565. cap_blood.attribute("left") = sPatInfoViewCdnt;
  566. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_blood.attribute("width").replace("px", ""));
  567. cap_bloodvalue.attribute("left") = sPatInfoViewCdnt;
  568. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_bloodvalue.attribute("width").replace("px", "")) + 5;
  569. }
  570. if(sChngRoomUseYn == "Y"){
  571. cap_chngroom.visible = true;
  572. cap_chngroomvalue.visible = true;
  573. cap_chngroom.attribute("left") = sPatInfoViewCdnt;
  574. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_chngroom.attribute("width").replace("px", ""));
  575. cap_chngroomvalue.attribute("left") = sPatInfoViewCdnt;
  576. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_chngroomvalue.attribute("width").replace("px", "")) + 5;
  577. }
  578. if(sBrthddUseYn == "Y"){
  579. cap_brthdd.visible = true;
  580. cap_brthddvalue.visible = true;
  581. cap_brthdd.attribute("left") = sPatInfoViewCdnt;
  582. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_brthdd.attribute("width").replace("px", ""));
  583. cap_brthddvalue.attribute("left") = sPatInfoViewCdnt;
  584. sPatInfoViewCdnt = eval(sPatInfoViewCdnt) + eval(cap_brthddvalue.attribute("width").replace("px", "")) + 10;
  585. }
  586. if(sFamilyMeetUseYn == "Y"){
  587. cap_familymeetam.visible = true;
  588. cap_familymeetamvalue.visible = true;
  589. cap_familymeetpm.visible = true;
  590. cap_familymeetpmvalue.visible = true;
  591. }
  592. patinfolist_width = 1071;
  593. patinfolist_left = 0;
  594. //환자 기본 정보 조회 화면 위치 설정
  595. if(patinfolist_width - sPatInfoViewCdnt >= 225 ){
  596. grp_patinfolist.attribute("left") = 225;
  597. grp_patinfolist.attribute("width") = patinfolist_width - 225;
  598. }else{
  599. grp_patinfolist.attribute("left") = patinfolist_width - sPatInfoViewCdnt ;
  600. grp_patinfolist.attribute("width") = sPatInfoViewCdnt;
  601. }
  602. }
  603. /**
  604. * @group :
  605. * @ver : 2009.12.15
  606. * @by : 양천덕
  607. * @---------------------------------------------------
  608. * @type : function
  609. * @access : public
  610. * @desc : 화면 초기화
  611. * @param :
  612. * @return :
  613. * @---------------------------------------------------
  614. */
  615. function fInitialize(pFlag){
  616. fSettingPamInfo(); // 함수 내 응급실 부서코드 조회 추가 (2011.03.02 Ahn)
  617. /* 중환자실 부서 조회 ( 2011.03.25 Ahn)
  618. * 내환자 저장 시 다음환자 넘어가지 않는 부서 추가 ( 2011.04.18)
  619. * 간호일지, 임상관찰기록 화면 공통코드 신규 생성 ('T30')
  620. */
  621. model.makeValue("/root/send/cdgpid", "T30");
  622. submit("TRMNW04001");
  623. // if (pFlag == "init") {
  624. // sParamInfo = "";
  625. // }
  626. sSpParamInfo = opener.javascript.getParameter("SMMNR00900_Param");
  627. sGbn = fGetArrayDataTPR(sParamInfo,1,4); // 구분
  628. if (sGbn == "dr") {
  629. } else {
  630. sParamInfo = "";
  631. }
  632. //debugger;
  633. //parameter 정보 여부에 따른 처리
  634. if(sParamInfo == ""){
  635. //환자정보 조회
  636. sPamInfo = getGlobalVariable("paminfo");
  637. model.removenodeset("/root/main/paminfo/pamlist");
  638. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  639. //상단정보 존재 여부 체크
  640. if(sPamInfo == ""){
  641. //내환자 등록 내역이 있으면 내환자 첫번째 환자 세팅
  642. if( getNodesetCount("/root/temp/cond/settingpatient/settingpatientlist") > 0){
  643. fSetParam("SettingPat", 1);
  644. return;
  645. }else{
  646. model.setValue(sCondPath+"/recdd",getCurrentDate());
  647. model.setValue(sCondPath+"/formerrecdd", getDateCalc(model.getValue(sCondPath+"/recdd"),1));
  648. fChkTgtPatInfo("disable");
  649. fChangUserTypeSrch(sUserFlag);
  650. model.refresh();
  651. return;
  652. }
  653. }else{
  654. fChkTgtPatInfo("able");
  655. fSettingViewCtrl();
  656. }
  657. fSettingPatInfo();
  658. //2008-04-28 삭제
  659. //var patinfo = "등록번호: "+sPid+", 환자명: "+model.getValue(xPamInfoPath+"/hngnm")+", 성별/나이: "+
  660. //model.getValue(xPamInfoPath+"/sex")+"/"+model.getValue(xPamInfoPath+"/age")+", 병실:"+model.getValue(xPamInfoPath+"/roomcd");
  661. //model.setValue(sCondPath+"/patinfo",patinfo);
  662. }else{
  663. sPid = fGetArrayDataTPR(sParamInfo,1,0); // 등록번호
  664. sIndd = fGetArrayDataTPR(sParamInfo,1,1); // 입원일자
  665. sCretNo = fGetArrayDataTPR(sParamInfo,1,2); // 생성번호
  666. sInstcd = fGetArrayDataTPR(sParamInfo,1,3); // 기관코드
  667. //sJobKindCD = fGetArrayDataTPR(sParamInfo,1,4); // 직급코드
  668. //sJobKindCD = getUserInfo("jobkindcd");
  669. model.makeValue("/root/send/pid", sPid);
  670. model.makeValue("/root/send/indd", sIndd);
  671. model.makeValue("/root/send/cretno", sCretNo);
  672. model.makeValue("/root/send/instcd", sInstcd);
  673. submit("TRMNR00910", false);
  674. if(getNodesetCount("/root/main/patinfo") < 1){
  675. model.setValue(sCondPath+"/recdd",getCurrentDate());
  676. model.setValue(sCondPath+"/formerrecdd", getDateCalc(model.getValue(sCondPath+"/recdd"),1));
  677. fChkTgtPatInfo("disable");
  678. fChangUserTypeSrch(sUserFlag);
  679. //model.toggle("case_24hoursstnd");
  680. model.refresh();
  681. return;
  682. }else{
  683. fChkTgtPatInfo("able");
  684. fSettingViewCtrl();
  685. }
  686. sIOFlag = model.getValue("/root/main/patinfo/ordtype"); // 입원/외래 구분
  687. sWardCD = model.getValue("/root/main/patinfo/wardcd"); // 병동코드
  688. sRoomCD = model.getValue("/root/main/patinfo/roomcd"); // 병실코드
  689. sIndschacptstat = model.getValue("/root/main/patinfo/indschacptstat"); //입퇴원구분코드
  690. sDschdd = model.getValue("/root/main/patinfo/dschdd"); // 퇴원일자
  691. sOrdDeptcd = model.getValue("/root/main/patinfo/orddeptcd"); // 진료과
  692. sMedispclid = model.getValue("/root/main/patinfo/medispclid"); // 주치의
  693. model.setValue(sCondPath+"/pid", sPid);
  694. }
  695. // 응급실일 경우 (2011.02.24 Ahn)
  696. fGetWardChngInfo("Y", pFlag);
  697. fSettingPatInfo2("init");
  698. }
  699. /**
  700. * @group :
  701. * @ver : 2009.12.15
  702. * @by : 양천덕
  703. * @---------------------------------------------------
  704. * @type : function
  705. * @access : public
  706. * @desc : 사용자별 조회 조건 변경
  707. * @param :
  708. * @return :
  709. * @---------------------------------------------------
  710. */
  711. function fSettingUserTypeSrch(pFlag){
  712. if( pFlag == "1"){
  713. grp_outpatinfo.visible = false;
  714. grp_oderinpatinfo.visible = false;
  715. grp_inpatinfo.visible = true;
  716. }else{
  717. grp_outpatinfo.visible = false;
  718. grp_inpatinfo.visible = false;
  719. grp_oderinpatinfo.visible = true;
  720. }
  721. }
  722. /**
  723. * @group :
  724. * @ver : 2009.12.15
  725. * @by : 양천덕
  726. * @---------------------------------------------------
  727. * @type : function
  728. * @access : public
  729. * @desc : 사용자별 조회 조건 변경
  730. * @param :
  731. * @return :
  732. * @---------------------------------------------------
  733. */
  734. function fChangUserTypeSrch(pFlag){
  735. fInitViewInfo();
  736. fSettingUserTypeSrch(pFlag);
  737. var sSettingId1 = "-";
  738. var sSettingId2 = "-";
  739. if( pFlag == "1" ){
  740. if( cmb_wardlist.value == "" ){
  741. cmb_wardlist.value = sUserDeptCd;
  742. cmb_wardlist.dispatch("xforms-value-changed");
  743. }else{
  744. fGetCareComRoomList(sUserDeptCd);
  745. model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist", sUserDeptCd);
  746. cmb_wardlist.refresh();
  747. }
  748. }else{
  749. if( sUserFlag == "2" ){
  750. if( cmb_deptlist.value == "" ) return;
  751. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/cond/doctlist/medispcl" , sUserDeptCd, "0330", "", "M");
  752. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/cond/doctlist/atdoct", sUserDeptCd, "0330", "", "A");
  753. addComboInstance("/root/temp/cond/doctlist/medispcl", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  754. addComboInstance("/root/temp/cond/doctlist/atdoct", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
  755. if(model.getValue("/root/temp/cond/doctlist/medispcl/usercombo[userid='"+ sUserId+"']/userid") != ""){
  756. sSettingId1 = sUserId
  757. }
  758. if(model.getValue("/root/temp/cond/doctlist/atdoct/usercombo[userid='"+ sUserId+"']/userid") != ""){
  759. sSettingId2 = sUserId
  760. }
  761. fGetCareComDeptPatList(sUserDeptCd, sSettingId1 , sSettingId2, model.getValue("/root/init/mypatsrchflag"));
  762. if( model.getValue("/root/temp/cond/deptgrup/deptgruplist[deptcd='"+ sUserDeptCd +"']/dept") != "" ){
  763. model.setValue("/root/temp/cond/deptgrup/deptgruplist/dept", sUserDeptCd);
  764. model.setValue("/root/temp/cond/doctlist/medispcl/usercombo", sSettingId1);
  765. model.setValue("/root/temp/cond/doctlist/atdoct/usercombo", sSettingId2);
  766. }else{
  767. model.setValue("/root/temp/cond/deptgrup/deptgruplist/dept", "-");
  768. }
  769. }else{
  770. model.setValue("/root/temp/cond/deptgrup/deptgruplist/dept", "-");
  771. model.removenodeset("/root/temp/cond/doctlist/medispcl/usercombo");
  772. model.removenodeset("/root/temp/cond/doctlist/atdoct/usercombo");
  773. }
  774. cmb_deptlist.refresh();
  775. cmb_medispcllist.refresh();
  776. cmb_atdoctlist.refresh();
  777. }
  778. }
  779. /**
  780. * @group :
  781. * @ver : 2009.12.15
  782. * @by : 양천덕
  783. * @---------------------------------------------------
  784. * @type : function
  785. * @access : public
  786. * @desc : 초기 param 존재 하지 않을 경우 환자 선택화면 설정
  787. * @param :
  788. * @return :
  789. * @---------------------------------------------------
  790. */
  791. function fSettingPamInfo(){
  792. //병동코드 조회
  793. fGetCareComWardList("false");
  794. //------------(20110209) 경북대
  795. //내환자 조회
  796. //fGetSettingPatientList("false");
  797. fGetSettingPatientList_type2("false");
  798. //------------(20110209) 경북대
  799. //진료과 정보 조회
  800. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/temp/cond/deptgrup/deptgruplist" , "D"); //부서코드 콤보
  801. //응급의료센터 부서코드 추출_ 경북대 (2011.02.24 Ahn)
  802. model.makeValue("/root/send/cdgrupid", "'002'");
  803. model.makeValue("/root/send/srchdd" , getCurrentDate()); // 조회기준일자
  804. model.makeNode("/root/code/codeinfo");
  805. if(submit("TRMNW00001", false)){
  806. eERDEPTCD = model.getvalue("/root/code/codeinfo/codelist[cdgrupid='002']/cdid");
  807. }
  808. }
  809. /**
  810. * @group :
  811. * @ver : 2009.12.15
  812. * @by : 양천덕
  813. * @---------------------------------------------------
  814. * @type : function
  815. * @access : public
  816. * @desc : 화면 버튼 설정
  817. * @param :
  818. * @return :
  819. * @---------------------------------------------------
  820. */
  821. function fSettingViewCtrl(){
  822. // 의사의 경우는 조회만 가능
  823. if(sUserFlag == "2"){
  824. btn_viewsetting.disabled = true;
  825. btn_cleanitem.disabled = true;
  826. grp_wardbtn.disabled = true;
  827. btn_EtrlInpt.disabled = true;
  828. btn_cdisopen.disabled = true;
  829. btn_24hoursnursitem.disabled = true;
  830. btn_tempsave.disabled = true;
  831. btn_24hourscertsave.disabled = true;
  832. }
  833. /*
  834. else{
  835. btn_24hourscertsave.disabled = false;
  836. btn_24hoursnursitem.disabled = false;
  837. btn_EtrlInpt.disabled = false;
  838. btn_cdisopen.disabled = false;
  839. }
  840. */
  841. }
  842. /**
  843. * @group :
  844. * @ver : 2009.12.15
  845. * @by : 양천덕
  846. * @---------------------------------------------------
  847. * @type : function
  848. * @access : public
  849. * @desc : 이전/이후 날짜 Setting
  850. * @param :
  851. * @return :
  852. * @---------------------------------------------------
  853. */
  854. function fCalcDate(pFlag, pVWFlag, pTerm){
  855. var sRecDT = model.getValue(sCondPath+"/recdd")+model.getValue(sCondPath+"/rectm");
  856. switch(pVWFlag){
  857. case "24hours" :
  858. var sTime = eval(model.getValue(sCondPath+"/timeflag")) * pTerm;
  859. sRecDT = sRecDT.toDate("YYYYMMDDhhmmss");
  860. if(pFlag == "-"){
  861. sRecDT.setMinutes(sRecDT.getMinutes() - sTime);
  862. }else{
  863. sRecDT.getAddDate(sTime, "m");
  864. }
  865. model.setValue(sCondPath+"/recdd",getDateTime(sRecDT,'기본').substr(0,8));
  866. model.setValue(sCondPath+"/rectm",getDateTime(sRecDT,'기본').substr(8,6));
  867. break;
  868. case "4days" :
  869. model.setValue(sCondPath+"/recdd",getDateCalc(model.getValue(sCondPath+"/recdd"),4,pFlag));
  870. break;
  871. }
  872. fSearchClincObsRec(pVWFlag);
  873. }
  874. /**
  875. * @group :
  876. * @ver : 2009.12.15
  877. * @by : 양천덕
  878. * @---------------------------------------------------
  879. * @type : function
  880. * @access : public
  881. * @desc : 화면 전환
  882. * @param :
  883. * @return :
  884. * @---------------------------------------------------
  885. */
  886. function fChageView(pFlag){
  887. model.setValue(sCondPath+"/vwctrl_button", pFlag);
  888. switch(pFlag){
  889. case "24hours" :
  890. //model.toggle("case_24hoursstnd");
  891. //chk_24hoursclslist.visible = true;
  892. //chk_supitemcd.visible = false;
  893. model.setValue(sCondPath+"/hourschartinfo","1 2 3 4 5");
  894. //model.setValue(sCondPath+"/daycountinfo", "1 2 3 4 5 6");
  895. break;
  896. /*
  897. case "4days" :
  898. model.toggle("case_4daysstnd");
  899. chk_24hoursclslist.visible = true;
  900. chk_supitemcd.visible = false;
  901. model.setValue(sCondPath+"/dayschartinfo","1 2 3 4");
  902. //model.setValue(sCondPath+"/daycountinfo", "1 2 3 4 5 6");
  903. break;
  904. case "formerday" :
  905. model.toggle("case_formerdaysearch");
  906. chk_24hoursclslist.visible = false;
  907. chk_supitemcd.visible = true;
  908. //grp_chkbox.visible = false;
  909. model.setValue(sCondPath+"/formerrecdd", getDateCalc(model.getValue(sCondPath+"/recdd"),1,"-"));
  910. model.setValue(sCondPath+"/hourflag", model.getValue(sCondPath+"/rectm").substr(0,2));
  911. model.setValue(sCondPath+"/formerhourflag",model.getValue(sCondPath+"/rectm").substr(0,2));
  912. //model.setValue(sCondPath+"/daycountinfo", "1 2 3 4 5 6");
  913. //model.setValue(sCondPath+"/formerclsinfo", "1 2 3 4 5 6");
  914. break;
  915. */
  916. }
  917. fControlGridSize(pFlag);
  918. //fSearchClincObsRec();
  919. }
  920. /**
  921. * @group :
  922. * @ver : 2009.12.15
  923. * @by : 양천덕
  924. * @---------------------------------------------------
  925. * @type : function
  926. * @access : public
  927. * @desc : 시작일자 계산
  928. * @param :
  929. * @return :
  930. * @---------------------------------------------------
  931. */
  932. function fCalcStartDate(pDate, pTimeFlag){
  933. var sStartDT = pDate.toDate("YYYYMMDDhhmmss");
  934. var sTime = "";
  935. var sRemainder = 0;
  936. if(pTimeFlag != 1 ){
  937. sRemainder = eval(pDate.substr(10,2))%pTimeFlag;
  938. }
  939. sStartDT.setMinutes(sStartDT.getMinutes()-sRemainder);
  940. return sStartDT;
  941. }
  942. /**
  943. * @group :
  944. * @ver : 2009.12.15
  945. * @by : 양천덕
  946. * @---------------------------------------------------
  947. * @type : function
  948. * @access : public
  949. * @desc : 그리드 크기 조절(Graph Off/ Graph On)
  950. * @param :
  951. * @return :
  952. * @---------------------------------------------------
  953. */
  954. function fControlGridSize(pFlag){
  955. switch(pFlag){
  956. case "24hours" : // 24시간 화면
  957. if(model.getValue(sCondPath+"/vwctrl_24hours") == "A"){ // Graph Off
  958. btn_24hoursvwctrl.value = "차트보기";
  959. model.setValue(sCondPath+"/vwctrl_24hours","I");
  960. document.all.item("obj_24hourschart").visible = false;
  961. document.all.item("obj_24hourschart").refresh();
  962. //grd_24hoursheader.visible = false;
  963. btn_24hoursup.visible = false;
  964. btn_24hoursdown.visible = false;
  965. //그래프 체크박스 숨김,보임 설정
  966. grp_chkbox.visible = false;
  967. chk_hourschartinfo.visible = false;
  968. //chk_dayschartinfo.visible = false;
  969. line2.attribute("y1") = 0;
  970. line2.attribute("y2") = 0;
  971. grd_24hoursclincobsreclist.attribute("top") = 4;
  972. grd_24hoursclincobsreclist.attribute("height") = 662;
  973. btn_24hoursdetailbefore.attribute("top") = 6;
  974. btn_24hoursdetailafter.attribute("top") = 6;
  975. }else{
  976. btn_24hoursvwctrl.value = "차트닫기";
  977. model.setValue(sCondPath+"/vwctrl_24hours","A");
  978. document.all.item("obj_24hourschart").visible = true;
  979. document.all.item("obj_24hourschart").refresh();
  980. //grd_24hoursheader.visible = true;
  981. btn_24hoursup.visible = true;
  982. btn_24hoursdown.visible = true;
  983. //그래프 체크박스 숨김,보임 설정
  984. grp_chkbox.visible = true;
  985. chk_hourschartinfo.visible = true;
  986. //chk_dayschartinfo.visible = false;
  987. line2.attribute("y1") = 224;
  988. line2.attribute("y2") = 224;
  989. grd_24hoursclincobsreclist.attribute("top") = 228;
  990. grd_24hoursclincobsreclist.attribute("height") = 429;
  991. btn_24hoursdetailbefore.attribute("top") = 231;
  992. btn_24hoursdetailafter.attribute("top") = 231;
  993. }
  994. btn_24hoursvwctrl.refresh();
  995. //fCreateHeader(pFlag);
  996. setTree(grd_24hoursclincobsreclist,31,0,false);
  997. break;
  998. /*
  999. case "4days" : // 4일기준 화면
  1000. if(model.getValue(sCondPath+"/vwctrl_4days") == "A"){ // Graph Off
  1001. btn_4daysvwctrl.value = "차트보기";
  1002. model.setValue(sCondPath+"/vwctrl_4days","I");
  1003. document.all.item("obj_4dayschart").visible = false;
  1004. document.all.item("obj_4dayschart").refresh();
  1005. //grd_4dayschartheader.visible = false;
  1006. btn_4daysup.visible = false;
  1007. btn_4daysdown.visible=false;
  1008. grp_chkbox.visible = false;
  1009. chk_hourschartinfo.visible = false;
  1010. chk_dayschartinfo.visible = false;
  1011. grd_4daysclincobsreclist.attribute("top") = 23;
  1012. grd_4daysclincobsreclist.attribute("height") = 661;
  1013. }else{
  1014. btn_4daysvwctrl.value = "차트닫기";
  1015. model.setValue(sCondPath+"/vwctrl_4days","A");
  1016. document.all.item("obj_4dayschart").visible = true;
  1017. document.all.item("obj_4dayschart").refresh();
  1018. //grd_4dayschartheader.visible = true;
  1019. btn_4daysup.visible = true;
  1020. btn_4daysdown.visible=true;
  1021. grp_chkbox.visible = true;
  1022. chk_hourschartinfo.visible = false;
  1023. chk_dayschartinfo.visible = true;
  1024. grd_4daysclincobsreclist.attribute("top") = 282;
  1025. grd_4daysclincobsreclist.attribute("height") = 402;
  1026. }
  1027. btn_4daysvwctrl.refresh();
  1028. //fCreateHeader(pFlag);
  1029. setTree(grd_4daysclincobsreclist,23,0,false);
  1030. break;
  1031. */
  1032. }
  1033. }
  1034. /**
  1035. * @group :
  1036. * @ver : 2009.12.15
  1037. * @by : 양천덕
  1038. * @---------------------------------------------------
  1039. * @type : function
  1040. * @access : public
  1041. * @desc : 차트 생성
  1042. * @param :
  1043. * @return :
  1044. * @---------------------------------------------------
  1045. */
  1046. function fMakeChart(pFlag){
  1047. var Obj_Chart;
  1048. var sColCnt = 0;
  1049. var sRecRslt = "";
  1050. var sRecRslt1 = "";
  1051. var sChartInfo = "";
  1052. var sRecDD = "";
  1053. var sRecTM = "";
  1054. var sRecRsltArr = new Array();
  1055. var sRecRslt1Arr = new Array();
  1056. var iArrSize = 0;
  1057. var iChartPos = 0;
  1058. var idx=0;
  1059. if(pFlag == "24hours" || pFlag == "4days"){
  1060. //2008-05-19 추가
  1061. for(var i = 1 ; i <= getNodesetCount(xClincObsRecListPath) ; i++){
  1062. if(model.getValue(xClincObsRecListPath +"["+ i +"]/leftaxis") == "1" ){
  1063. sChartItem[0] = model.getValue(xClincObsRecListPath +"["+ i +"]/itemcd");
  1064. }else if(model.getValue(xClincObsRecListPath +"["+ i +"]/leftaxis") == "2"){
  1065. sChartItem[1] = model.getValue(xClincObsRecListPath +"["+ i +"]/itemcd");
  1066. }else if(model.getValue(xClincObsRecListPath +"["+ i +"]/leftaxis") == "3" && model.getValue(xClincObsRecListPath +"["+ i +"]/graphappyn")=="Y" ){
  1067. sChartItem[2] = model.getValue(xClincObsRecListPath +"["+ i +"]/itemcd");
  1068. }else if(model.getValue(xClincObsRecListPath +"["+ i +"]/leftaxis") == "4" && model.getValue(xClincObsRecListPath +"["+ i +"]/graphappyn")=="Y" ){
  1069. sChartItem[3] = model.getValue(xClincObsRecListPath +"["+ i +"]/itemcd");
  1070. }else if(model.getValue(xClincObsRecListPath +"["+ i +"]/leftaxis") == "5" && model.getValue(xClincObsRecListPath +"["+ i +"]/graphappyn")=="Y" ){
  1071. sChartItem[4] = model.getValue(xClincObsRecListPath +"["+ i +"]/itemcd");
  1072. }else if(model.getValue(xClincObsRecListPath +"["+ i +"]/leftaxis") == "6" && model.getValue(xClincObsRecListPath +"["+ i +"]/graphappyn")=="Y" ){
  1073. sChartItem[5] = model.getValue(xClincObsRecListPath +"["+ i +"]/itemcd");
  1074. }
  1075. }
  1076. }else{
  1077. sChartItem[0] = "99999999"; // 혈압(low)
  1078. sChartItem[1] = "99999999"; // 혈압(high)
  1079. sChartItem[2] = "99999999"; // 맥박
  1080. sChartItem[3] = "99999999"; // 호흡
  1081. sChartItem[4] = "99999999"; // 체온
  1082. sChartItem[5] = "99999999"; // BP(M)
  1083. }
  1084. if(pFlag == "24hours" || pFlag == "init24hours" ){
  1085. obj_24hourschart.ClearChart();
  1086. sChartInfo = model.getValue(sCondPath+"/hourschartinfo").split(" ");
  1087. //obj_24hourschart.RemoveAllSeries();
  1088. //obj_24hourschart.Axis.RemoveAllCustom();
  1089. //margin 값 정하기
  1090. //obj_24hourschart.Panel.MarginTop = 1;
  1091. obj_24hourschart.Panel.MarginTop = 3;
  1092. obj_24hourschart.Panel.MarginLeft = 10;
  1093. obj_24hourschart.Panel.MarginRight = 0;
  1094. obj_24hourschart.Panel.MarginBottom = -1;
  1095. //하단축 칸 수 정하기와 눈금 없애기
  1096. obj_24hourschart.Axis.Bottom.Automatic = false; //하단축 자동 설정(기본값)
  1097. obj_24hourschart.Axis.Bottom.Labels.Visible = true; //하단축 Label 설정
  1098. obj_24hourschart.Axis.Bottom.Labels.multiline = true; //하단축 Label 2줄 설정
  1099. obj_24hourschart.Axis.Bottom.Labels.Font.Size = 1; //하단축 Label 폰트 사이즈 조절
  1100. //obj_24hourschart.Axis.Bottom.SetMinMax (0, 24); //하단축 최소, 최대 길이 설정
  1101. obj_24hourschart.Axis.Bottom.Minimum = 0;
  1102. obj_24hourschart.Axis.Bottom.Maximum = 24.1;
  1103. obj_24hourschart.Axis.Bottom.Increment = 1; //하단축 증가값 설정
  1104. obj_24hourschart.Axis.Bottom.MinorTickCount = 0; //하단축 눈금 갯수 설정
  1105. obj_24hourschart.Axis.Bottom.TicksInner.visible = true; //하단축 눈금 안쪽 표시 설정
  1106. Obj_Chart = obj_24hourschart;
  1107. sColCnt = 24;
  1108. }else if( pFlag == "4days" || pFlag == "init4days" ){
  1109. obj_4dayschart.ClearChart();
  1110. sChartInfo = model.getValue(sCondPath+"/dayschartinfo").split(" ");
  1111. //obj_4dayschart.RemoveAllSeries();
  1112. //obj_4dayschart.Axis.RemoveAllCustom();
  1113. //margin 값 정하기
  1114. obj_4dayschart.Panel.MarginTop = 2;
  1115. obj_4dayschart.Panel.MarginLeft = 10;
  1116. obj_4dayschart.Panel.MarginRight = 0;
  1117. obj_4dayschart.Panel.MarginBottom = -6;
  1118. //obj_4dayschart.Axis.Bottom.TickLength = 0;
  1119. //하단축 칸 수 정하기와 눈금 없애기
  1120. obj_4dayschart.Axis.Bottom.SetMinMax (0, 4); //4일 동안 좌표를 표현 (하루는 DivPerDay만큼 나눠짐)
  1121. //obj_4dayschart.Axis.Bottom.Minimum = 0;
  1122. //obj_4dayschart.Axis.Bottom.Maximum = 4;
  1123. obj_4dayschart.Axis.Bottom.Increment = 1;
  1124. obj_4dayschart.Axis.Bottom.MinorTickCount = 3;
  1125. Obj_Chart = obj_4dayschart;
  1126. sColCnt = 16;
  1127. }
  1128. Obj_Chart.Axis.Bottom.AxisPen.Visible = false ;
  1129. Obj_Chart.Axis.Bottom.AxisPen.Color = 0x000000;
  1130. Obj_Chart.Axis.Bottom.Labels.Font.Color = 0x000000; //하단 축 눈금 명칭 색을 바탕색으로 하여 보이지 않게 처리
  1131. Obj_Chart.Panel.BevelWidth = 0; // 주위 테두리 넓이 0으로 설정
  1132. Obj_Chart.Header.Visible = false; // Graph Header 정보 사용 여부
  1133. Obj_Chart.Aspect.View3D = false; // 2d 로 표현하기
  1134. Obj_Chart.Zoom.Enable = true; // zoom 사용하지 않기 (마우스 하단으로 드래그 zoomin, 마우스 상단으로 드래그 zoomout)
  1135. Obj_Chart.Scroll.Enable = true; // scroll 사용하지 않기
  1136. Obj_Chart.Legend.Visible = false; // 그래프 참조 박스 띄우지 않기
  1137. Obj_Chart.Tools.Add(8); // 그래프 Hint 설정
  1138. Obj_Chart.Panel.Gradient.Visible = true; // 페널에 그라디언트 적용
  1139. Obj_Chart.Panel.Gradient.StartColor = 0xffffff; // 그라디언트 시작색깔
  1140. Obj_Chart.Panel.Gradient.EndColor = 0xffffff; // 그라디언트 종료색깔
  1141. Obj_Chart.Environment.MouseWheelScroll = true; // Graph 마우스 휠 사용 여부
  1142. // 혈압을 나타내는 막대그래프를 먼저 그려야 맥박, 체온,호흡 점이 막대 그래프에 가려지지 않는다.
  1143. var cus_axis1 = Obj_Chart.Axis.AddCustom(false); // 혈압축
  1144. Obj_Chart.Axis.Custom(0).AxisPen.Color = 0x0000ff;
  1145. //Obj_Chart.Axis.Custom(0).Title.Caption = "혈압/맥박"
  1146. Obj_Chart.Axis.Custom(0).Title.Font.Size = 8;
  1147. Obj_Chart.Axis.Custom(0).Title.Font.Bold = true;
  1148. Obj_Chart.Axis.Custom(0).Title.Angle = 90;
  1149. Obj_Chart.Axis.Custom(0).PositionPercent = 0;
  1150. Obj_Chart.Axis.Custom(0).StartPosition = 0;
  1151. Obj_Chart.Axis.Custom(0).EndPosition = 100;
  1152. Obj_Chart.Axis.Custom(0).Automatic = false;
  1153. Obj_Chart.Axis.Custom(0).Maximum = 200;
  1154. Obj_Chart.Axis.Custom(0).Minimum = 20;
  1155. Obj_Chart.Axis.Custom(0).Increment = 20;
  1156. var cus_axis2 = Obj_Chart.Axis.AddCustom(false); // 호흡축
  1157. Obj_Chart.Axis.Custom(1).AxisPen.Color = 0x00ff00;
  1158. //Obj_Chart.Axis.Custom(1).Title.Caption = "호흡";
  1159. Obj_Chart.Axis.Custom(1).Title.Font.Size = 8;
  1160. Obj_Chart.Axis.Custom(1).Title.Font.Bold = true;
  1161. Obj_Chart.Axis.Custom(1).Title.Angle = 90;
  1162. Obj_Chart.Axis.Custom(1).PositionPercent = -8;
  1163. Obj_Chart.Axis.Custom(1).Automatic = false;
  1164. Obj_Chart.Axis.Custom(1).Maximum = 90;
  1165. Obj_Chart.Axis.Custom(1).Minimum = 0;
  1166. Obj_Chart.Axis.Custom(1).Increment = 10;
  1167. var cus_axis3 = Obj_Chart.Axis.AddCustom(false); // 체온축
  1168. Obj_Chart.Axis.Custom(2).AxisPen.Color = 0xff0000;
  1169. //Obj_Chart.Axis.Custom(2).Title.Caption = "체온";
  1170. Obj_Chart.Axis.Custom(2).Title.Font.Size = 8;
  1171. Obj_Chart.Axis.Custom(2).Title.Font.Bold = true;
  1172. Obj_Chart.Axis.Custom(2).Title.Angle = 90;
  1173. Obj_Chart.Axis.Custom(2).PositionPercent = -4;
  1174. Obj_Chart.Axis.Custom(2).Automatic = false;
  1175. Obj_Chart.Axis.Custom(2).Maximum = 40.0;
  1176. Obj_Chart.Axis.Custom(2).Minimum = 35.5;
  1177. Obj_Chart.Axis.Custom(2).Increment = 0.5;
  1178. Obj_Chart.AddSeries (0); // 38선
  1179. Obj_Chart.AddSeries (11); // OP
  1180. Obj_Chart.AddSeries (11); // 혈압
  1181. Obj_Chart.AddSeries (0); // 맥박
  1182. Obj_Chart.AddSeries (0); // 호흡
  1183. Obj_Chart.AddSeries (0); // 체온
  1184. Obj_Chart.AddSeries (0); // BP(M)
  1185. Obj_Chart.Series(0).VerticalAxisCustom = cus_axis3; // 38선
  1186. Obj_Chart.Series(1).VerticalAxisCustom = cus_axis1; // OP
  1187. Obj_Chart.Series(2).VerticalAxisCustom = cus_axis1; // 혈압
  1188. Obj_Chart.Series(3).VerticalAxisCustom = cus_axis1; // 맥박
  1189. Obj_Chart.Series(4).VerticalAxisCustom = cus_axis2; // 호흡
  1190. Obj_Chart.Series(5).VerticalAxisCustom = cus_axis3; // 체온
  1191. Obj_Chart.Series(6).VerticalAxisCustom = cus_axis1; // BP(M)
  1192. //라인의 굵기를 정해준다.
  1193. Obj_Chart.Series(0).asLine.LinePen.Width = 2;
  1194. Obj_Chart.Series(1).asCandle.CandleStyle = 2;
  1195. Obj_Chart.Series(1).asCandle.CandleWidth = 2;
  1196. Obj_Chart.Series(2).asCandle.CandleStyle = 2;
  1197. Obj_Chart.Series(2).asCandle.CandleWidth = 2;
  1198. Obj_Chart.Series(3).asLine.LinePen.Width = 2;
  1199. Obj_Chart.Series(4).asLine.LinePen.Width = 2;
  1200. Obj_Chart.Series(5).asLine.LinePen.Width = 2;
  1201. Obj_Chart.Series(6).asLine.LinePen.Width = 2;
  1202. Obj_Chart.Series(6).asLine.LinePen.style = 2;
  1203. //Series 색상 설정
  1204. Obj_Chart.Series(0).Color = 0xffcc00; //black 38선
  1205. Obj_Chart.Series(1).Color = 0x0000ff; //red OP
  1206. Obj_Chart.Series(2).Color = 0x000000; //black 혈압
  1207. Obj_Chart.Series(3).Color = 0x0000ff; //red 맥박
  1208. Obj_Chart.Series(4).Color = 0x00ff00; //green 호흡
  1209. Obj_Chart.Series(5).Color = 0xff0000; //blue 체온
  1210. Obj_Chart.Series(6).Color = 0x000000; //black BP(M)
  1211. //Pointer 설정
  1212. Obj_Chart.Series(3).asLine.Pointer.Visible = true;
  1213. //Obj_Chart.Series(1).asLine.Pointer.Pen.color = 0x0000ff;
  1214. //Obj_Chart.Series(1).asLine.Pointer.Pen.width = 2;
  1215. Obj_Chart.Series(3).asLine.Pointer.Style = 1;
  1216. Obj_Chart.Series(3).asLine.Pointer.VerticalSize = 3;
  1217. Obj_Chart.Series(3).asLine.Pointer.HorizontalSize = 3;
  1218. Obj_Chart.Series(4).asLine.Pointer.Visible = true;
  1219. //Obj_Chart.Series(4).asLine.Pointer.Pen.color = 0x00ff00;
  1220. //Obj_Chart.Series(2).asLine.Pointer.Pen.width = 2;
  1221. Obj_Chart.Series(4).asLine.Pointer.Style = 0;
  1222. Obj_Chart.Series(4).asLine.Pointer.VerticalSize = 2;
  1223. Obj_Chart.Series(4).asLine.Pointer.HorizontalSize = 2;
  1224. Obj_Chart.Series(5).asLine.Pointer.Visible = true;
  1225. Obj_Chart.Series(5).asLine.Pointer.Pen.color = 0xff0000;
  1226. Obj_Chart.Series(5).asLine.Pointer.Pen.width = 2;
  1227. Obj_Chart.Series(5).asLine.Pointer.Style = 2;
  1228. Obj_Chart.Series(5).asLine.Pointer.VerticalSize = 2;
  1229. Obj_Chart.Series(5).asLine.Pointer.HorizontalSize = 2;
  1230. Obj_Chart.Series(6).asLine.Pointer.Visible = true;
  1231. Obj_Chart.Series(6).asLine.Pointer.Pen.color = 0x000000;
  1232. Obj_Chart.Series(6).asLine.Pointer.Pen.width = 2;
  1233. Obj_Chart.Series(6).asLine.Pointer.Style = 5;
  1234. Obj_Chart.Series(6).asLine.Pointer.VerticalSize = 2;
  1235. Obj_Chart.Series(6).asLine.Pointer.HorizontalSize = 2;
  1236. //Obj_Chart.Legend.Series = Obj_Chart.Series(1);
  1237. //Obj_Chart.Legend.Series = Obj_Chart.Series(2);
  1238. //Obj_Chart.Legend.Series = Obj_Chart.Series(3);
  1239. //Obj_Chart.Legend.Series = Obj_Chart.Series(5);
  1240. //depth 정하기 : Depth 적용이 안됨.
  1241. Obj_Chart.Series(0).Depth = 1;
  1242. Obj_Chart.Series(1).Depth = 1;
  1243. Obj_Chart.Series(2).Depth = 1;
  1244. Obj_Chart.Series(3).Depth = 1;
  1245. Obj_Chart.Series(4).Depth = 1;
  1246. Obj_Chart.Series(5).Depth = 3;
  1247. Obj_Chart.Series(6).Depth = 4;
  1248. //38선 그리기
  1249. Obj_Chart.Series(0).AddXY (-5, 38, "", Obj_Chart.Series(0).Color );
  1250. Obj_Chart.Series(0).AddXY (70, 38, "", Obj_Chart.Series(0).Color );
  1251. /*
  1252. 20090715 김홍점 그래프 interval값도 timeflag가 30, 60 일때 10분 단위로 표시
  1253. intervalrecynlist 의 substring(recrsltitvl+iCol,14) 값을 세팅한다.
  1254. */
  1255. if(pFlag == "24hours" || pFlag == "4days"){
  1256. var sTime = model.getValue("/root/main/cond/timeflag");
  1257. iArrSize = model.getValue("/root/init/minlist/item[cd='"+sTime+"']/gap");
  1258. // 그래프 표시
  1259. for(var i=0; i<sChartInfo.length; i++){
  1260. if(sChartInfo[i] == "") continue;
  1261. sChartInfo[i] = eval(sChartInfo[i]);
  1262. for(var iCol=1; iCol<=sColCnt; iCol++){
  1263. if(sChartInfo[i] == 1){ //막대그래프
  1264. Obj_Chart.Series(sChartInfo[i]+1).asCandle.UpCloseColor = 0xffffff;
  1265. Obj_Chart.Series(sChartInfo[i]+1).asCandle.DownCloseColor = 0x0000ff;
  1266. if(pFlag == "24hours"){
  1267. sRecRslt1 = model.getValue(xHoursClincObsRecList+"[itemcd='"+sChartItem[(sChartInfo[i]-1)]+"']/recrslt"+iCol);
  1268. sRecRslt = model.getValue(xHoursClincObsRecList+"[itemcd='"+sChartItem[sChartInfo[i]]+"']/recrslt"+iCol);
  1269. if(sRecRslt != "" && sRecRslt1 != "" && fIsNumber(sRecRslt) == true && fIsNumber(sRecRslt1) == true){
  1270. //Obj_Chart.Series(sChartInfo[i]-1).asCandle.AddCandle (iCol/2-0.25, eval(sRecRslt1), 0, 0, eval(sRecRslt));
  1271. //Obj_Chart.Series(sChartInfo[i]-1).asCandle.AddCandle (iCol/2-0.25, eval(sRecRslt), 0, 0, eval(sRecRslt1));
  1272. Obj_Chart.Series(sChartInfo[i]+1).asCandle.AddCandle (iCol-1, eval(sRecRslt), 0, 0, eval(sRecRslt1));
  1273. }
  1274. if( sTime == "30" || sTime == "60" ){
  1275. sRecRslt1 = model.getValue(xIntervalRecYNListPath+"[itemcd='"+sChartItem[(sChartInfo[i]-1)]+"']/recrsltitvl"+iCol);
  1276. sRecRslt = model.getValue(xIntervalRecYNListPath+"[itemcd='"+sChartItem[sChartInfo[i]]+"']/recrsltitvl"+iCol);
  1277. sRecRslt1Arr = sRecRslt1.split(" ");
  1278. sRecRsltArr = sRecRslt.split(" ");
  1279. idx = 0;
  1280. for( var arr = (sHeader[4][iCol]=="00" ? 0 : 3) ; arr < sRecRslt1Arr.length && arr < sRecRsltArr.length ; arr++ ){
  1281. iChartPos = (iCol-1) + ( (1/iArrSize)*(idx+1) );
  1282. idx++;
  1283. if(sRecRslt1Arr[arr] != "0" && sRecRsltArr[arr] != "0" && fIsNumber(sRecRslt1Arr[arr].substr(14)) == true && fIsNumber(sRecRslt1Arr[arr].substr(14)) == true){
  1284. Obj_Chart.Series(sChartInfo[i]+1).asCandle.AddCandle (iChartPos, eval(sRecRsltArr[arr].substr(14)), 0, 0, eval(sRecRslt1Arr[arr].substr(14)));
  1285. }
  1286. }
  1287. }
  1288. }else{
  1289. sRecRslt1 = model.getValue(xDaysClincObsRecList+"[itemcd='"+sChartItem[(sChartInfo[i]-1)]+"']/recrslt"+iCol);
  1290. sRecRslt = model.getValue(xDaysClincObsRecList+"[itemcd='"+sChartItem[sChartInfo[i]]+"']/recrslt"+iCol);
  1291. if(sRecRslt != "" && sRecRslt1 != "" && fIsNumber(sRecRslt) == true && fIsNumber(sRecRslt1) == true){
  1292. //Obj_Chart.Series(sChartInfo[i]-1).asCandle.AddCandle ((iCol/4)-0.1, eval(sRecRslt1), 0, 0, eval(sRecRslt));
  1293. //Obj_Chart.Series(sChartInfo[i]-1).asCandle.AddCandle ((iCol/4)-0.1, eval(sRecRslt), 0, 0, eval(sRecRslt1));
  1294. Obj_Chart.Series(sChartInfo[i]+1).asCandle.AddCandle ((iCol/4)-0.25, eval(sRecRslt), 0, 0, eval(sRecRslt1));
  1295. }
  1296. }
  1297. }else{
  1298. if(pFlag == "24hours"){
  1299. sRecRslt = model.getValue(xHoursClincObsRecList+"[itemcd='"+sChartItem[sChartInfo[i]]+"']/recrslt"+iCol);
  1300. if(sRecRslt != "" && fIsNumber(sRecRslt) == true){
  1301. Obj_Chart.Series(sChartInfo[i]+1).AddXY (iCol-1, eval(sRecRslt), "", Obj_Chart.Series(sChartInfo[i]+1).Color);
  1302. }
  1303. if ( sTime == "30" || sTime == "60" ){
  1304. sRecRslt = model.getValue(xIntervalRecYNListPath+"[itemcd='"+sChartItem[sChartInfo[i]]+"']/recrsltitvl"+iCol);
  1305. sRecRsltArr = sRecRslt.split(" ");
  1306. idx = 0;
  1307. for( var arr = (sHeader[4][iCol]=="00" ? 0 : 3) ; arr < sRecRsltArr.length ; arr++ ){
  1308. iChartPos = (iCol-1) + ( (1/iArrSize)*(idx+1) );
  1309. idx++;
  1310. if(sRecRsltArr[arr] != "0" && fIsNumber(sRecRsltArr[arr].substr(14)) == true){
  1311. Obj_Chart.Series(sChartInfo[i]+1).AddXY (iChartPos, eval(sRecRsltArr[arr].substr(14)), "", Obj_Chart.Series(sChartInfo[i]+1).Color);
  1312. }
  1313. }
  1314. }
  1315. }else{
  1316. sRecRslt = model.getValue(xDaysClincObsRecList+"[itemcd='"+sChartItem[sChartInfo[i]]+"']/recrslt"+iCol);
  1317. if(sRecRslt != "" && fIsNumber(sRecRslt) == true){
  1318. Obj_Chart.Series(sChartInfo[i]+1).AddXY ((iCol/4)-0.25, eval(sRecRslt), "", Obj_Chart.Series(sChartInfo[i]+1).Color);
  1319. }
  1320. }
  1321. }
  1322. }
  1323. }
  1324. // 수술시간 표시
  1325. Obj_Chart.Series(1).asCandle.UpCloseColor = 0x0000ff;
  1326. Obj_Chart.Series(1).asCandle.DownCloseColor = 0x0000ff;
  1327. Obj_Chart.Series(1).Marks.visible = false;
  1328. var sX = 0;
  1329. var OPChartRow = 1; // 수술관련 Tools Itme은 위에 Hint Item이 존재하여 1부터 시작
  1330. var sOPX = 0;
  1331. for(var i=1; i<=sColCnt+1; i++){
  1332. if(i == 1 || sRecDD != sHeader[1][i]){
  1333. sRecDD = sHeader[1][i];
  1334. sRecTM = model.getValue(xDayCountListPath+"[recdd ='"+sRecDD+"']/optm");
  1335. //TEST 수술일자
  1336. //sRecDD = "20100315";
  1337. //sRecTM = "1240";
  1338. if(sRecTM == "") continue;
  1339. for(var iCol=1; iCol<=sColCnt+1; iCol++){
  1340. if((sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]) >= (sRecDD+sRecTM) &&
  1341. (sHeader[1][1]+sHeader[3][1]+sHeader[4][1]) <= (sRecDD+sRecTM)){
  1342. sOpPnt = "";
  1343. sOpPnt1 = 0;
  1344. if(model.getValue("/root/main/cond/vwctrl_button") == "24hours"){
  1345. sTimeFlag = model.getValue("/root/main/cond/timeflag");
  1346. if(sRecTM.substr(2,1) == "0"){
  1347. sOpPnt = eval(sRecTM.substr(3,1)) % eval(sTimeFlag) / eval(sTimeFlag);
  1348. }else{
  1349. sOpPnt = eval(sRecTM.substr(2,2)) % eval(sTimeFlag) / eval(sTimeFlag);
  1350. }
  1351. //나머지값이 1일 경우 +1을 해줌
  1352. if(eval(sRecTM.substr(2,2)) % eval(sTimeFlag) == 0){
  1353. sOpPnt = sOpPnt+1;
  1354. }
  1355. }else{
  1356. if(sRecTM.substr(2,1) == "0"){
  1357. sOpPnt1 = eval(sRecTM.substr(3,1));
  1358. }else{
  1359. sOpPnt1 = eval(sRecTM.substr(2,2));
  1360. }
  1361. if(iCol == 2 || iCol == 6 || iCol == 10 || iCol == 14 ){
  1362. if(sRecTM.substr(0,2) == "06"){
  1363. sOpPnt = (iCol - 2);
  1364. }else if(sRecTM.substr(0,2) == "07"){
  1365. sOpPnt = (iCol - 2) + 1 / 8 + sOpPnt1/60/8;
  1366. }else if(sRecTM.substr(0,2) == "08"){
  1367. sOpPnt = (iCol - 2) + 2 / 8 + sOpPnt1/60/8;
  1368. }else if(sRecTM.substr(0,2) == "09"){
  1369. sOpPnt = (iCol - 2) + 3 / 8 + sOpPnt1/60/8;
  1370. }else if(sRecTM.substr(0,2) == "10"){
  1371. sOpPnt = (iCol - 2) + 4 / 8 + sOpPnt1/60/8;
  1372. }else if(sRecTM.substr(0,2) == "11"){
  1373. sOpPnt = (iCol - 2) + 5 / 8 + sOpPnt1/60/8;
  1374. }else if(sRecTM.substr(0,2) == "12"){
  1375. sOpPnt = (iCol - 2) + 6 / 8 + sOpPnt1/60/8;
  1376. }else if(sRecTM.substr(0,2) == "13"){
  1377. sOpPnt = (iCol - 2) + 7 / 8 + sOpPnt1/60/8;
  1378. }else if(sRecTM.substr(0,2) == "14"){
  1379. sOpPnt = (iCol - 1);
  1380. }
  1381. }else if(iCol == 3 || iCol == 7 || iCol == 11 || iCol == 15 ){
  1382. if(sRecTM.substr(0,2) == "14"){
  1383. sOpPnt = (iCol - 2);
  1384. }else if(sRecTM.substr(0,2) == "15"){
  1385. sOpPnt = (iCol - 2) + 1/4 + sOpPnt1/60/4;
  1386. }else if(sRecTM.substr(0,2) == "16"){
  1387. sOpPnt = (iCol - 2) + 2/4 + sOpPnt1/60/4;
  1388. }else if(sRecTM.substr(0,2) == "17"){
  1389. sOpPnt = (iCol - 2) + 3/4 + sOpPnt1/60/4;
  1390. }else if(sRecTM.substr(0,2) == "18"){
  1391. sOpPnt = (iCol - 1);
  1392. }
  1393. }else if(iCol == 4 || iCol == 8 || iCol == 12 || iCol == 16 ){
  1394. if(sRecTM.substr(0,2) == "18"){
  1395. sOpPnt = (iCol - 2);
  1396. }else if(sRecTM.substr(0,2) == "19"){
  1397. sOpPnt = (iCol - 2) + 1/4 + sOpPnt1/60/4;
  1398. }else if(sRecTM.substr(0,2) == "20"){
  1399. sOpPnt = (iCol - 2) + 2/4 + sOpPnt1/60/4;
  1400. }else if(sRecTM.substr(0,2) == "21"){
  1401. sOpPnt = (iCol - 2) + 3/4 + sOpPnt1/60/4;
  1402. }else if(sRecTM.substr(0,2) == "22"){
  1403. sOpPnt = (iCol - 1);
  1404. }
  1405. }else if(iCol == 5 || iCol == 9 || iCol == 13 || iCol == 17 ){
  1406. if(sRecTM.substr(0,2) == "22"){
  1407. sOpPnt = (iCol - 2);
  1408. }else if(sRecTM.substr(0,2) == "23"){
  1409. sOpPnt = (iCol - 2) + 1 / 8 + sOpPnt1/60/8;
  1410. }else if(sRecTM.substr(0,2) == "00"){
  1411. sOpPnt = (iCol - 2) + 2 / 8 + sOpPnt1/60/8;
  1412. }else if(sRecTM.substr(0,2) == "01"){
  1413. sOpPnt = (iCol - 2) + 3 / 8 + sOpPnt1/60/8;
  1414. }else if(sRecTM.substr(0,2) == "02"){
  1415. sOpPnt = (iCol - 2) + 4 / 8 + sOpPnt1/60/8;
  1416. }else if(sRecTM.substr(0,2) == "03"){
  1417. sOpPnt = (iCol - 2) + 5 / 8 + sOpPnt1/60/8;
  1418. }else if(sRecTM.substr(0,2) == "04"){
  1419. sOpPnt = (iCol - 2) + 6 / 8 + sOpPnt1/60/8;
  1420. }else if(sRecTM.substr(0,2) == "05"){
  1421. sOpPnt = (iCol - 2) + 7 / 8 + sOpPnt1/60/8;
  1422. }else if(sRecTM.substr(0,2) == "06"){
  1423. sOpPnt = (iCol - 1);
  1424. }
  1425. }else{
  1426. sOpPnt = (iCol - 1);
  1427. }
  1428. }
  1429. if(pFlag == "24hours"){
  1430. sX = iCol-2+sOpPnt;
  1431. if(iCol < 2){
  1432. sOPX = 110 + ((iCol-1) * 41.3) // max = 950;
  1433. }else if(iCol < 25){
  1434. sOPX = 120 + ((iCol-2) * 41.3) // max = 950;
  1435. }else{
  1436. sOPX = 90 + ((iCol-2) * 41.3) // max = 950;
  1437. }
  1438. }else{
  1439. //sX = iCol/4-0.50;
  1440. sX = eval(sOpPnt)/4;
  1441. if(iCol < 2){
  1442. sOPX = 110 + ((iCol -1) * 63.2) // max = 950;
  1443. }else{
  1444. if(iCol == 17){
  1445. sOPX = 110 + ((iCol-2) * 63.2);// max = 950;
  1446. }else{
  1447. sOPX = 110 + ((iCol-2) * 63.2) + 16/iCol * 10 // max = 950;
  1448. }
  1449. }
  1450. }
  1451. Obj_Chart.Series(1).asCandle.AddCandle (sX, 0, 0, 0, 170);
  1452. Obj_Chart.Tools.Add(10);
  1453. Obj_Chart.Tools.Items(OPChartRow).Active = true;
  1454. Obj_Chart.Tools.Items(OPChartRow).asAnnotation.Shape.Top= 8;
  1455. Obj_Chart.Tools.Items(OPChartRow).asAnnotation.Shape.Left= sOPX;
  1456. Obj_Chart.Tools.Items(OPChartRow).asAnnotation.Text = "OP "+ sRecTM.substr(0,2)+":"+sRecTM.substr(2,2);
  1457. OPChartRow++;
  1458. break;
  1459. }
  1460. }
  1461. }
  1462. }
  1463. }
  1464. }
  1465. /**
  1466. * @group :
  1467. * @ver : 2009.12.15
  1468. * @by : 양천덕
  1469. * @---------------------------------------------------
  1470. * @type : function
  1471. * @access : public
  1472. * @desc : 그리드 Header 생성
  1473. * @param :
  1474. * @return :
  1475. * @---------------------------------------------------
  1476. */
  1477. function fCreateHeader(pFlag){
  1478. var sRecDT = "";
  1479. //var sChartCapNm = "";
  1480. var sGridCapNm = "";
  1481. var sTimeFlag = 0;
  1482. var sCDay = new Array();
  1483. var sDayInfo = "";
  1484. var iDayRow = 0;
  1485. var sDayCountInfo = "";
  1486. var sDateList = "";
  1487. sHeader[1] = new Array();
  1488. sHeader[2] = new Array();
  1489. sHeader[3] = new Array();
  1490. sHeader[4] = new Array();
  1491. sHeader[1][0] = "날 짜";
  1492. sHeader[2][0] = "Day count";
  1493. sHeader[3][0] = "시 간";
  1494. sHeader[4][0] = "분";
  1495. model.removenode("/root/send");
  1496. model.makeValue("/root/send/pid", sPid);
  1497. model.makeValue("/root/send/indd", sIndd);
  1498. model.makeValue("/root/send/cretno", sCretNo);
  1499. model.makeValue("/root/send/instcd", sInstcd);
  1500. model.makeValue("/root/send/ioflag", sIOFlag);
  1501. model.makeValue("/root/send/dayinfo", ipt_24hoursrecdd.value);
  1502. //현재 시점의 환자 기본 정보 조회
  1503. submit("TRMNR10102");
  1504. fControlPatInfo();
  1505. switch(pFlag){
  1506. case "24hours" :
  1507. //그리드 스타일 초기화
  1508. grd_24hoursclincobsreclist.rebuildStyle();
  1509. sTimeFlag = eval(model.getValue(sCondPath+"/timeflag"));
  1510. sRecDT = model.getValue(sCondPath+"/recdd")+model.getValue(sCondPath+"/rectm");
  1511. var sStartDT = fCalcStartDate(sRecDT,sTimeFlag);
  1512. var sTime = 0;
  1513. for(var i=1; i<=25; i++){
  1514. if(i>1){
  1515. sStartDT = sStartDT.getAddDate(sTimeFlag,"m");
  1516. }
  1517. sHeader[1][i] = getDateTime(sStartDT,'기본').substr(0,8);
  1518. if(iDayRow == 0 || sCDay[iDayRow-1] != sHeader[1][i]){
  1519. sCDay[iDayRow] = sHeader[1][i];
  1520. iDayRow++;
  1521. }
  1522. sHeader[3][i] = getDateTime(sStartDT,'기본').substr(8,2);
  1523. sHeader[4][i] = getDateTime(sStartDT,'기본').substr(10,2);
  1524. }
  1525. for(var i=0; i<sCDay.length;i++){
  1526. sDayInfo += sCDay[i];
  1527. if(i != sCDay.length-1){
  1528. sDayInfo += ",";
  1529. }
  1530. }
  1531. if(sDayCountCnt > 0){
  1532. model.makeValue("/root/send/dayinfo",sDayInfo);
  1533. if(submit("TRMNR00903", false)){ // 2008-07-09
  1534. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  1535. for(var i=1; i<=24; i++){
  1536. sHeader[2][i] = "";
  1537. if(sHdayUseYn == "Y"){
  1538. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1539. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  1540. }
  1541. if(sPodUseYn == "Y"){
  1542. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1543. sHeader[2][i] += "POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  1544. }
  1545. if(sIcuDayUseYn == "Y"){
  1546. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1547. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  1548. }
  1549. if(sAntiDayUseYn == "Y"){
  1550. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1551. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  1552. }
  1553. if(sBmtUseYn == "Y"){
  1554. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1555. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  1556. }
  1557. if(sCpDayUseYn == "Y"){
  1558. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1559. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  1560. }
  1561. }
  1562. }
  1563. }
  1564. //환경 설정 정보를 이용하여 그리드 Caption Control
  1565. if(sHeaderFlag == "A"){
  1566. for(var iRow=1; iRow<=4; iRow++){
  1567. if(iRow == 2 && sDayCountCnt == 0 ) continue;
  1568. for(var iCol=0; iCol<=24; iCol++){
  1569. if(iRow == 1){
  1570. if(iCol == 0){
  1571. sGridCapNm += sHeader[iRow][iCol]; // 년월일
  1572. }else{
  1573. sGridCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  1574. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  1575. }
  1576. }else if(iRow == 2){ // day count
  1577. sGridCapNm += sHeader[iRow][iCol];
  1578. }else if(iRow == 3){ // 시
  1579. sGridCapNm += sHeader[iRow][iCol];
  1580. if(iCol != 0){
  1581. sGridCapNm += "시";
  1582. }
  1583. }else if(iRow == 4){ // 분
  1584. sGridCapNm += sHeader[iRow][iCol];
  1585. if(iCol != 0){
  1586. sGridCapNm += "분";
  1587. }
  1588. }
  1589. if(iCol != 24){
  1590. sGridCapNm += "^";
  1591. }
  1592. }
  1593. if(iRow != 4){
  1594. sGridCapNm += "|";
  1595. }
  1596. }
  1597. }else if(sHeaderFlag == "D"){
  1598. for(var iRow=1; iRow<=4; iRow++){
  1599. if(iRow == 1 || iRow == 2 ) continue;
  1600. for(var iCol=0; iCol<=24; iCol++){
  1601. if(iRow == 3){ // 시
  1602. sGridCapNm += sHeader[iRow][iCol];
  1603. if(iCol != 0){
  1604. sGridCapNm += "시";
  1605. }
  1606. }else if(iRow == 4){ // 분
  1607. sGridCapNm += sHeader[iRow][iCol];
  1608. if(iCol != 0){
  1609. sGridCapNm += "분";
  1610. }
  1611. }
  1612. if(iCol != 24){
  1613. sGridCapNm += "^";
  1614. }
  1615. }
  1616. if(iRow != 4){
  1617. sGridCapNm += "|";
  1618. }
  1619. }
  1620. }else{
  1621. for(var iCol=0; iCol<=24; iCol++){
  1622. //24시간 화면 Caption 설정
  1623. if(iCol != 0){
  1624. sGridCapNm += sHeader[3][iCol] + ":" + sHeader[4][iCol];
  1625. }else{
  1626. sGridCapNm += sHeader[3][iCol];
  1627. }
  1628. if(iCol != 24){
  1629. sGridCapNm += "^";
  1630. }
  1631. }
  1632. }
  1633. grd_24hoursclincobsreclist.caption = sGridCapNm;
  1634. break;
  1635. /*
  1636. case "4days" :
  1637. var sStartDD = getDateCalc(model.getValue(sCondPath+"/recdd"),2,"-");
  1638. var sRemainder = 0;
  1639. var i=1;
  1640. for(var iDay=0; iDay<=3; iDay++){
  1641. sRecDD = getDateCalc(sStartDD,iDay,"+");
  1642. sDayInfo += sRecDD;
  1643. if(iDay != 3){
  1644. sDayInfo += ",";
  1645. }
  1646. for(var iTime=1;iTime<= 4; iTime++){
  1647. sHeader[1][i] = sRecDD;
  1648. sHeader[2][i] = "";
  1649. sRemainder = iTime % 4;
  1650. if(sRemainder == 1){
  1651. sHeader[3][i] = "06";
  1652. }else if(sRemainder == 2){
  1653. sHeader[3][i] = "14";
  1654. }else if(sRemainder == 3){
  1655. sHeader[3][i] = "18";
  1656. }else if(sRemainder == 0){
  1657. sHeader[3][i] = "22";
  1658. }
  1659. sHeader[4][i] = "00";
  1660. i++;
  1661. }
  1662. }
  1663. sHeader[1][i] = getDateCalc(sRecDD,1,"+");
  1664. sHeader[2][i] = "";
  1665. sHeader[3][i] = "06";
  1666. sHeader[4][i] = "00";
  1667. if(sDayCountCnt > 0){
  1668. model.makeValue("/root/send/dayinfo",sDayInfo);
  1669. if(submit("TRMNR00903", false)){ // 2008-07-09
  1670. //sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  1671. for(var i=1; i<=16; i++){
  1672. sHeader[2][i] = "";
  1673. if(sHdayUseYn == "Y"){
  1674. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1675. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  1676. }
  1677. if(sPodUseYn == "Y"){
  1678. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1679. sHeader[2][i] += "POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  1680. }
  1681. if(sIcuDayUseYn == "Y"){
  1682. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1683. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  1684. }
  1685. if(sAntiDayUseYn == "Y"){
  1686. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1687. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  1688. }
  1689. if(sBmtUseYn == "Y"){
  1690. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1691. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  1692. }
  1693. if(sCpDayUseYn == "Y"){
  1694. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1695. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  1696. }
  1697. }
  1698. }
  1699. }
  1700. for(var iRow=1; iRow<=3; iRow++){
  1701. if(iRow == 2 && sDayCountCnt == 0 ) continue;
  1702. for(var iCol=0; iCol<= 16; iCol++){
  1703. if(iRow == 1){
  1704. if(iCol == 0){
  1705. sGridCapNm += sHeader[iRow][iCol]; // 년월일
  1706. }else{
  1707. sGridCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  1708. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  1709. }
  1710. }else if(iRow == 2){ // day count
  1711. sGridCapNm += sHeader[iRow][iCol];
  1712. }else if(iRow == 3){ // 시
  1713. sGridCapNm += sHeader[iRow][iCol];
  1714. if(iCol != 0){
  1715. sGridCapNm += ":"+sHeader[4][iCol];
  1716. }
  1717. }
  1718. if(iCol != 16){
  1719. sGridCapNm += "^";
  1720. }
  1721. }
  1722. if(iRow != 3){
  1723. sGridCapNm += "|";
  1724. }
  1725. }
  1726. grd_4daysclincobsreclist.caption = sGridCapNm;
  1727. break;
  1728. case "formerday" :
  1729. sFormerHeader[1] = new Array();
  1730. sFormerHeader[2] = new Array();
  1731. sFormerHeader[3] = new Array();
  1732. sFormerHeader[4] = new Array();
  1733. sFormerHeader[1][0] = "날 짜";
  1734. sFormerHeader[2][0] = "Day count";
  1735. sFormerHeader[3][0] = "시 간";
  1736. sFormerHeader[4][0] = "분";
  1737. var sVWCtrl_Formerday = model.getValue(sCondPath+"/vwctrl_formerday");
  1738. sTimeFlag = 60;
  1739. var sTime = 0;
  1740. var sFormerGridCapNm = "";
  1741. if(sVWCtrl_Formerday == "former" || sVWCtrl_Formerday == "all"){
  1742. var sFormerRecDT = model.getValue(sCondPath+"/formerrecdd")+model.getValue(sCondPath+"/formerhourflag")+"0000";
  1743. var sFormerStartDT = fCalcStartDate(sFormerRecDT,sTimeFlag);
  1744. iDayRow = 0;
  1745. for(var i=1; i<=7; i++){
  1746. if(i>1){
  1747. sFormerStartDT = sFormerStartDT.getAddDate(sTimeFlag,"m");
  1748. }
  1749. sFormerHeader[1][i] = getDateTime(sFormerStartDT,'기본').substr(0,8);
  1750. if(iDayRow == 0 || sCDay[iDayRow-1] != sFormerHeader[1][i]){
  1751. sCDay[iDayRow] = sFormerHeader[1][i];
  1752. iDayRow++;
  1753. }
  1754. sFormerHeader[3][i] = getDateTime(sFormerStartDT,'기본').substr(8,2);
  1755. sFormerHeader[4][i] = getDateTime(sFormerStartDT,'기본').substr(10,2);
  1756. }
  1757. sDayInfo = "";
  1758. if(sDayCountCnt > 0){
  1759. for(var i=0; i<sCDay.length;i++){
  1760. sDayInfo += sCDay[i];
  1761. if(i != sCDay.length-1){
  1762. sDayInfo += ",";
  1763. }
  1764. }
  1765. model.makeValue("/root/send/dayinfo",sDayInfo);
  1766. if(submit("TRMNR00907", false)){ // 2008-07-09
  1767. sDayCountInfo = model.getValue(sCondPath+"/formerdaycountinfo").split(" ");
  1768. for(var i=1; i<=6; i++){
  1769. sFormerHeader[2][i] = "";
  1770. if(sHdayUseYn == "Y"){
  1771. if(sFormerHeader[2][i] != "") sHeader[2][i] += "/";
  1772. sFormerHeader[2][i] += "HD:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/hd");
  1773. }
  1774. if(sPodUseYn == "Y"){
  1775. if(sFormerHeader[2][i] != "") sHeader[2][i] += "/";
  1776. sFormerHeader[2][i] += "POD:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/pod");
  1777. }
  1778. if(sIcuDayUseYn == "Y"){
  1779. if(sFormerHeader[2][i] != "") sHeader[2][i] += "/";
  1780. sFormerHeader[2][i] += "ICU:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/icu");
  1781. }
  1782. if(sAntiDayUseYn == "Y"){
  1783. if(sFormerHeader[2][i] != "") sHeader[2][i] += "/";
  1784. sFormerHeader[2][i] += "D:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/d");
  1785. }
  1786. if(sBmtUseYn == "Y"){
  1787. if(sFormerHeader[2][i] != "") sHeader[2][i] += "/";
  1788. sFormerHeader[2][i] += "BMT:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/bmt");
  1789. }
  1790. if(sCpDayUseYn == "Y"){
  1791. if(sFormerHeader[2][i] != "") sHeader[2][i] += "/";
  1792. sFormerHeader[2][i] += "CP:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/cp");
  1793. }
  1794. }
  1795. }
  1796. }
  1797. for(var iRow=1; iRow<=4; iRow++){
  1798. if(iRow == 2 && sDayCountCnt == 0 ) continue;
  1799. for(var iCol=0; iCol<=6; iCol++){
  1800. if(iRow == 1){
  1801. if(iCol == 0){
  1802. sFormerGridCapNm += sFormerHeader[iRow][iCol];
  1803. }else{
  1804. sFormerGridCapNm += sFormerHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  1805. " ("+sFormerHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  1806. }
  1807. }else if(iRow == 2){ // day count
  1808. sFormerGridCapNm += sFormerHeader[iRow][iCol];
  1809. }else if(iRow == 3){ // 시
  1810. sFormerGridCapNm += sFormerHeader[iRow][iCol];
  1811. if(iCol != 0){
  1812. sFormerGridCapNm += "시";
  1813. }
  1814. }else if(iRow == 4){ // 분
  1815. sFormerGridCapNm += sFormerHeader[iRow][iCol];
  1816. if(iCol != 0){
  1817. sFormerGridCapNm += "분";
  1818. }
  1819. }
  1820. if(iCol != 6){
  1821. sFormerGridCapNm += "^";
  1822. }
  1823. }
  1824. if(iRow != 4){
  1825. sFormerGridCapNm += "|";
  1826. }
  1827. }
  1828. grd_formersclincobsreclist.caption = sFormerGridCapNm;
  1829. }
  1830. iDayRow = 0;
  1831. if(sVWCtrl_Formerday == "stnd" || sVWCtrl_Formerday == "all"){
  1832. sRecDT = model.getValue(sCondPath+"/recdd")+model.getValue(sCondPath+"/hourflag")+"0000";
  1833. var sStartDT = fCalcStartDate(sRecDT,sTimeFlag);
  1834. for(var i=1; i<=15; i++){
  1835. if(i>1){
  1836. sStartDT = sStartDT.getAddDate(sTimeFlag,"m");
  1837. }
  1838. sHeader[1][i] = getDateTime(sStartDT,'기본').substr(0,8);
  1839. if(iDayRow == 0 || sCDay[iDayRow-1] != sHeader[1][i]){
  1840. sCDay[iDayRow] = sHeader[1][i];
  1841. iDayRow++;
  1842. }
  1843. sHeader[3][i] = getDateTime(sStartDT,'기본').substr(8,2);
  1844. sHeader[4][i] = getDateTime(sStartDT,'기본').substr(10,2);
  1845. }
  1846. sDayInfo = "";
  1847. if(sDayCountCnt > 0){
  1848. for(var i=0; i<sCDay.length;i++){
  1849. sDayInfo += sCDay[i];
  1850. if(i != sCDay.length-1){
  1851. sDayInfo += ",";
  1852. }
  1853. }
  1854. model.makeValue("/root/send/dayinfo",sDayInfo);
  1855. if(submit("TRMNR00903", false)){ // 2008-07-09
  1856. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  1857. for(var i=1; i<=14; i++){
  1858. sHeader[2][i] = "";
  1859. if(sHdayUseYn == "Y"){
  1860. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1861. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  1862. }
  1863. if(sPodUseYn == "Y"){
  1864. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1865. sHeader[2][i] += "POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  1866. }
  1867. if(sIcuDayUseYn == "Y"){
  1868. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1869. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  1870. }
  1871. if(sAntiDayUseYn == "Y"){
  1872. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1873. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  1874. }
  1875. if(sBmtUseYn == "Y"){
  1876. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1877. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  1878. }
  1879. if(sCpDayUseYn == "Y"){
  1880. if(sHeader[2][i] != "") sHeader[2][i] += "/";
  1881. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  1882. }
  1883. }
  1884. }
  1885. }
  1886. for(var iRow=1; iRow<=4; iRow++){
  1887. if(iRow == 2 && sDayCountCnt == 0 ) continue;
  1888. for(var iCol=0; iCol<=14; iCol++){
  1889. if(iRow == 1){
  1890. if(iCol == 0){
  1891. sGridCapNm += sHeader[iRow][iCol]; // 년월일
  1892. }else{
  1893. sGridCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  1894. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  1895. }
  1896. }else if(iRow == 2){ // day count
  1897. sGridCapNm += sHeader[iRow][iCol];
  1898. }else if(iRow == 3){ // 시
  1899. sGridCapNm += sHeader[iRow][iCol];
  1900. if(iCol != 0){
  1901. sGridCapNm += "시";
  1902. }
  1903. }else if(iRow == 4){ // 분
  1904. sGridCapNm += sHeader[iRow][iCol];
  1905. if(iCol != 0){
  1906. sGridCapNm += "분";
  1907. }
  1908. }
  1909. if(iCol != 14){
  1910. sGridCapNm += "^";
  1911. }
  1912. }
  1913. if(iRow != 4){
  1914. sGridCapNm += "|";
  1915. }
  1916. }
  1917. grd_stndclincobsreclist.caption = sGridCapNm;
  1918. }
  1919. break;
  1920. */
  1921. }
  1922. }
  1923. /**
  1924. * @group :
  1925. * @ver : 2009.12.15
  1926. * @by : 양천덕
  1927. * @---------------------------------------------------
  1928. * @type : function
  1929. * @access : public
  1930. * @desc : 차트 Down
  1931. * @param :
  1932. * @return :
  1933. * @---------------------------------------------------
  1934. */
  1935. function fControlChartDown(pFlag){
  1936. var sObj_Chart;
  1937. switch(pFlag){
  1938. case "24hours" :
  1939. sObj_Chart = obj_24hourschart;
  1940. break;
  1941. case "4days" :
  1942. sObj_Chart = obj_4dayschart;
  1943. break;
  1944. }
  1945. sObj_Chart.Axis.Custom(0).Maximum = sObj_Chart.Axis.Custom(0).Maximum-20;
  1946. sObj_Chart.Axis.Custom(0).Minimum = sObj_Chart.Axis.Custom(0).Minimum-20;
  1947. sObj_Chart.Axis.Custom(1).Maximum = sObj_Chart.Axis.Custom(1).Maximum-10;
  1948. sObj_Chart.Axis.Custom(1).Minimum = sObj_Chart.Axis.Custom(1).Minimum-10;
  1949. sObj_Chart.Axis.Custom(2).Maximum = sObj_Chart.Axis.Custom(2).Maximum-1;
  1950. sObj_Chart.Axis.Custom(2).Minimum = sObj_Chart.Axis.Custom(2).Minimum-1;
  1951. for(var i=0; i < sObj_Chart.Tools.Count-1; i++){
  1952. sObj_Chart.Tools.Items(i).asAnnotation.Shape.Top= sObj_Chart.Tools.Items(i).asAnnotation.Shape.Top - 20;
  1953. }
  1954. }
  1955. /**
  1956. * @group :
  1957. * @ver : 2009.12.15
  1958. * @by : 양천덕
  1959. * @---------------------------------------------------
  1960. * @type : function
  1961. * @access : public
  1962. * @desc : 차트 Up
  1963. * @param :
  1964. * @return :
  1965. * @---------------------------------------------------
  1966. */
  1967. function fControlChartUp(pFlag){
  1968. var sObj_Chart;
  1969. switch(pFlag){
  1970. case "24hours" :
  1971. sObj_Chart = obj_24hourschart;
  1972. break;
  1973. case "4days" :
  1974. sObj_Chart = obj_4dayschart;
  1975. break;
  1976. }
  1977. sObj_Chart.Axis.Custom(0).Maximum = sObj_Chart.Axis.Custom(0).Maximum+20; // 맥박
  1978. sObj_Chart.Axis.Custom(0).Minimum = sObj_Chart.Axis.Custom(0).Minimum+20;
  1979. sObj_Chart.Axis.Custom(1).Maximum = sObj_Chart.Axis.Custom(1).Maximum+10;
  1980. sObj_Chart.Axis.Custom(1).Minimum = sObj_Chart.Axis.Custom(1).Minimum+10;
  1981. sObj_Chart.Axis.Custom(2).Maximum = sObj_Chart.Axis.Custom(2).Maximum+1;
  1982. sObj_Chart.Axis.Custom(2).Minimum = sObj_Chart.Axis.Custom(2).Minimum+1;
  1983. for(var i=0; i < sObj_Chart.Tools.Count-1; i++){
  1984. sObj_Chart.Tools.Items(i).asAnnotation.Shape.Top= sObj_Chart.Tools.Items(i).asAnnotation.Shape.Top + 10;
  1985. }
  1986. }
  1987. /**
  1988. * @group :
  1989. * @ver : 2009.12.15
  1990. * @by : 양천덕
  1991. * @---------------------------------------------------
  1992. * @type : function
  1993. * @access : public
  1994. * @desc : FlowSheet 기록 조회
  1995. * @param :
  1996. * @return :
  1997. * @---------------------------------------------------
  1998. */
  1999. function fSearchClincObsRec(pClsFlag){
  2000. sFluidSumInfo = new Array();
  2001. if(model.getValue("/root/main/patinfo/pid") == ""){
  2002. messageBox("환자를 선택하십시요","I");
  2003. return;
  2004. }
  2005. var sStrTime = "";
  2006. var sRecCnt = 0;
  2007. var sItemCD = "";
  2008. var sItemSeqNo = "";
  2009. var pFlag = model.getValue(sCondPath+"/vwctrl_button");
  2010. var sTimeFlag = model.getValue(sCondPath+"/timeflag");
  2011. var sRecDd = model.getValue(sCondPath+"/recdd");
  2012. fCreateHeader(pFlag);
  2013. model.removenode("/root/send");
  2014. model.makeValue("/root/send/pid", sPid);
  2015. model.makeValue("/root/send/indd", sIndd);
  2016. model.makeValue("/root/send/cretno", sCretNo);
  2017. model.makeValue("/root/send/instcd", sInstcd);
  2018. model.makeValue("/root/send/timeflag", sTimeFlag);
  2019. model.makeValue("/root/send/srchdd",sRecDd );//20090730 김홍점 [임상관찰기록] 삽관, 기구 관련 그룹정보 연동 시 삽입(적용)일 및 적용일수 정보 조회를 위한 기준일자
  2020. //model.makeValue("/root/send/ioflag", sIOFlag);
  2021. model.makeValue("/root/send/fromdt",sHeader[1][1]+sHeader[3][1]+sHeader[4][1]+"00");
  2022. model.makeValue("/root/send/existsdelinfo", model.getValue("/root/main/cond/existsdelinfo"));
  2023. model.removenodeset(xHoursClincObsRecList);
  2024. model.removenodeset(xDaysClincObsRecList);
  2025. model.removenodeSet(xClincObsRecListPath);
  2026. model.removenodeset(xFormerRecPath);
  2027. sCmbWardValue = cmb_wardlist.value;
  2028. sCmbRoomValue = cmb_roomlist.value;
  2029. sCmbPatValue = cmb_patlist.value;
  2030. sCmbMyPatValue = cmb_mypatlist.value;
  2031. switch(pFlag){
  2032. case "24hours" :
  2033. var iHoursRecRow = 0;
  2034. var iHoursDataRow = 0;
  2035. var sBizLnkFlag = model.getValue(sCondPath+"/bizlnkflag");
  2036. model.makeValue("/root/send/todt",sHeader[1][25]+sHeader[3][25]+sHeader[4][25]+"00");
  2037. model.makeValue("/root/send/recflag", "24hours");
  2038. for(var i=1; i <= 25; i++){
  2039. if(sStrTime == ""){
  2040. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  2041. }else{
  2042. sStrTime += ","+sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  2043. }
  2044. }
  2045. model.makeValue("/root/send/strtime", sStrTime);
  2046. if(sBizLnkFlag == "Y"){
  2047. model.makeValue("/root/send/bizdeptcd", sDutplcecd);
  2048. }
  2049. //if(pClsFlag == "selectedcls"){
  2050. // model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/hoursclsinfo"));
  2051. //}else{
  2052. // model.setValue(sCondPath+"/hoursclsinfo","");
  2053. //}
  2054. grd_24hoursclincobsreclist.rebuild(); //Grid 설정 초기화
  2055. grd_24hoursclincobsreclist.dataHeight = sDataRowHeight; //Grid 행 높이 설정
  2056. submit("TRMNR00901_SJH", false);
  2057. chk_24hoursclslist.attribute("cols") = getNodesetCnt(model, "/root/init/clsinfo/clslist");
  2058. if(s24ClsListInitYn == "N"){
  2059. var sSrchClsInfoList = "";
  2060. if(sSrchTypeInfo == "ALL"){
  2061. for(var i = 0 ; i <= getNodesetCnt(model, "/root/init/clsinfo/clslist") ; i++){
  2062. if(sSrchClsInfoList == ""){
  2063. sSrchClsInfoList += model.getValue("/root/init/clsinfo/clslist["+i+"]/itemcd");
  2064. }else{
  2065. sSrchClsInfoList += " " + model.getValue("/root/init/clsinfo/clslist["+i+"]/itemcd");
  2066. }
  2067. }
  2068. model.setValue("/root/main/cond/hoursclsinfo", sSrchClsInfoList);
  2069. }else{
  2070. model.setValue("/root/main/cond/hoursclsinfo", sSrchTypeInfo);
  2071. }
  2072. s24ClsListInitYn = "Y";
  2073. }
  2074. chk_24hoursclslist.refresh();
  2075. model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/hoursclsinfo") );
  2076. //submit("TRMNR00902", false); // 2008-07-09
  2077. submit("TRMNR10103", false); // 2008-07-09
  2078. break;
  2079. /*
  2080. case "4days" :
  2081. var iDaysRecRow = 0;
  2082. var iDaysDataRow = 0;
  2083. model.makeValue("/root/send/todt",sHeader[1][17]+sHeader[3][17]+sHeader[4][17]+"00");
  2084. //if(pClsFlag == "selectedcls"){
  2085. model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/hoursclsinfo"));
  2086. //}else{
  2087. // model.setValue(sCondPath+"/hoursclsinfo","");
  2088. //}
  2089. for(var i=1;i<= 17; i++){
  2090. if(sStrTime == ""){
  2091. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  2092. }else{
  2093. sStrTime += ","+sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  2094. }
  2095. }
  2096. //sStrTime += "," + getDateCalc(sHeader[1][1],4,"+") + "060000";
  2097. model.makeValue("/root/send/strtime", sStrTime);
  2098. model.makeValue("/root/send/recflag", "4days");
  2099. grd_4daysclincobsreclist.rebuild();
  2100. submit("TRMNR00904", false); // 2008-07-09
  2101. break;
  2102. case "formerday":
  2103. var sVWCtrl_Formerday = model.getValue(sCondPath+"/vwctrl_formerday");
  2104. if(sVWCtrl_Formerday == "stnd" || sVWCtrl_Formerday == "all"){
  2105. model.removenodeset(xStnddayClincObsRecListPath);
  2106. model.makeValue("/root/send/todt",sHeader[1][15]+sHeader[3][15]+sHeader[4][15]+"00");
  2107. if(pClsFlag == "selectedcls"){
  2108. model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/formerclsinfo"));
  2109. }else{
  2110. model.setValue(sCondPath+"/formerclsinfo","");
  2111. }
  2112. sStrTime == ""
  2113. for(var i=1; i <= 14 ; i++){
  2114. if(sStrTime == ""){
  2115. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  2116. }else{
  2117. sStrTime += ","+sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  2118. }
  2119. }
  2120. model.makeValue("/root/send/strtime", sStrTime);
  2121. model.makeValue("/root/send/recflag", "formerday");
  2122. model.makeValue("/root/send/srchdd",sRecDd );//20090730 김홍점 [임상관찰기록] 삽관, 기구 관련 그룹정보 연동 시 삽입(적용)일 및 적용일수 정보 조회를 위한 기준일자
  2123. grd_stndclincobsreclist.rebuild();
  2124. submit("TRMNR00905", false); // 2008-07-09
  2125. }
  2126. if(sVWCtrl_Formerday == "former" || sVWCtrl_Formerday == "all"){
  2127. model.removenodeset(xFormerdayClincObsRecListPath);
  2128. sStrTime = "";
  2129. model.makeValue("/root/send/fromdt",sFormerHeader[1][1]+sFormerHeader[3][1]+sFormerHeader[4][1]+"00");
  2130. model.makeValue("/root/send/todt",sFormerHeader[1][7]+sFormerHeader[3][7]+sFormerHeader[4][7]+"00");
  2131. if(pClsFlag == "selectedcls"){
  2132. model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/formerclsinfo"));
  2133. }else{
  2134. model.setValue(sCondPath+"/formerclsinfo","");
  2135. }
  2136. sStrTime == ""
  2137. for(var i=1;i<= 7; i++){
  2138. if(sStrTime == ""){
  2139. sStrTime += sFormerHeader[1][i]+sFormerHeader[3][i]+sFormerHeader[4][i]+"00";
  2140. }else{
  2141. sStrTime += ","+sFormerHeader[1][i]+sFormerHeader[3][i]+sFormerHeader[4][i]+"00";
  2142. }
  2143. }
  2144. model.makeValue("/root/send/strtime", sStrTime);
  2145. model.makeValue("/root/send/recflag", "formerday");
  2146. model.makeValue("/root/send/srchdd",model.getValue(sCondPath+"/formerrecdd") );//20090730 김홍점 [임상관찰기록] 삽관, 기구 관련 그룹정보 연동 시 삽입(적용)일 및 적용일수 정보 조회를 위한 기준일자
  2147. grd_formersclincobsreclist.rebuild();
  2148. submit("TRMNR00906", false); // 2008-07-09
  2149. }
  2150. break;
  2151. */
  2152. }
  2153. fSettingClincObsRec(pFlag);
  2154. }
  2155. /**
  2156. * @group :
  2157. * @ver : 2009.12.15
  2158. * @by : 양천덕
  2159. * @---------------------------------------------------
  2160. * @type : function
  2161. * @access : public
  2162. * @desc : 셀이 포커스를 얻을 때 발생
  2163. * @param :
  2164. * @return :
  2165. * @---------------------------------------------------
  2166. */
  2167. function fEnterGridCell(pFlag){
  2168. var iRow = 0;
  2169. var iCol = 0;
  2170. var iRecRow = 0;
  2171. var sRecFromDT = "";
  2172. var sRecToDT = "";
  2173. var sRecDT = "";
  2174. var sAttrCD = "";
  2175. switch(pFlag){
  2176. case "24hours" :
  2177. sMouseiCol = grd_24hoursclincobsreclist.mouseCol;
  2178. if(sMouseiCol == grd_24hoursclincobsreclist.colRef("itemnm")) return;
  2179. iRecRow = grd_24hoursclincobsreclist.row - grd_24hoursclincobsreclist.fixedrows+1;
  2180. iRow = grd_24hoursclincobsreclist.row;
  2181. iCol = grd_24hoursclincobsreclist.col;
  2182. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  2183. sRecFromDT = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recfromdt"));
  2184. sRecToDT = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("rectodt"));
  2185. sAttrCD = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("attrcd"));
  2186. sReChartFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("reccharflag"));
  2187. //추가
  2188. if(model.getValue("/root/main/cond/cmbstatusx") != "0" && model.getValue("/root/main/cond/cmbstatusy") != "0"){
  2189. if(sReChartFlag == "A"){
  2190. var cmbstatusx = model.getValue("/root/main/cond/cmbstatusx");
  2191. var cmbstatusy = model.getValue("/root/main/cond/cmbstatusy");
  2192. var cmbRecRow = cmbstatusx - grd_24hoursclincobsreclist.fixedrows+1;
  2193. var cmbAttrCD = model.getValue(xHoursClincObsRecList+"["+cmbRecRow+"]/attrcd");
  2194. grd_24hoursclincobsreclist.cellComboNodeset(cmbstatusx,cmbstatusy) = sAttrListPath1+"[supcd='"+cmbAttrCD+"']";
  2195. cmbstatusx = "0";
  2196. cmbstatusy = "0";
  2197. }else{
  2198. cmbstatusx = "0";
  2199. cmbstatusy = "0";
  2200. }
  2201. }
  2202. //---------(20101204) 경북대
  2203. //추가
  2204. var ssflag = "";
  2205. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  2206. //경북대가 아니면
  2207. if( sJobKindCD == "0330" || sJobKindCD == "0310"){
  2208. ssflag = "Y";
  2209. }else{
  2210. ssflag = "N";
  2211. }
  2212. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  2213. //경북대이면 03%로 체크한다.
  2214. if( sJobKindCD.substring(0, 2) == "03"){
  2215. ssflag = "Y";
  2216. }else{
  2217. ssflag = "N";
  2218. }
  2219. }
  2220. //원본:의사의 경우만
  2221. //if(sJobKindCD == "30" ){
  2222. if(ssflag=="Y"){
  2223. //---------(20101204) 경북대
  2224. grd_24hoursclincobsreclist.combo.button.visible = false;
  2225. grd_24hoursclincobsreclist.isReadOnly(iRow,grd_24hoursclincobsreclist.fixedCols,iRow, grd_24hoursclincobsreclist.cols-1) = true;
  2226. return;
  2227. }
  2228. if(sReChartFlag =="A" && sAttrCD != ""){
  2229. model.removenodeSet(sAttrListPath);
  2230. for(var i = 1 ; i <= getNodesetCount(sAttrListPath1) ; i ++){
  2231. if(sAttrCD == model.getValue(sAttrListPath1+"["+i+"]/supcd") ){
  2232. var insComboNode = eval(getNodesetCount(sAttrListPath)) + 1 ;
  2233. if(insComboNode == 1){
  2234. model.makeNode(sAttrListPath);
  2235. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", "");
  2236. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", "");
  2237. insComboNode++;
  2238. }
  2239. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", model.getValue(sAttrListPath1+"["+i+"]/attrdesc"));
  2240. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", model.getValue(sAttrListPath1+"["+i+"]/attrcd"));
  2241. }
  2242. }
  2243. model.setValue("/root/main/cond/cmbstatusx",iRow );
  2244. model.setValue("/root/main/cond/cmbstatusy",iCol );
  2245. grd_24hoursclincobsreclist.combo.button.visible = true;
  2246. grd_24hoursclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath;
  2247. grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(grd_24hoursclincobsreclist.col)-20;
  2248. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  2249. model.setFocus("body");
  2250. grd_24hoursclincobsreclist.row = iRow;
  2251. grd_24hoursclincobsreclist.col = iCol;
  2252. //model.setFocus("grd_24hoursclincobsreclist");
  2253. }else{
  2254. //grd_24hoursclincobsreclist.colAttribute(iCol, "type") = "input";
  2255. grd_24hoursclincobsreclist.combo.button.visible = false;
  2256. //grd_24hoursclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListInitPath;
  2257. grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(grd_24hoursclincobsreclist.col);
  2258. //model.setFocus("body");
  2259. //model.setFocus("grd_24hoursclincobsreclist");
  2260. }
  2261. //2008-05-21 멀티 선택이 되지 않아 삭제(콤보 변경이 안됌)
  2262. //model.setFocus("body");
  2263. //model.setFocus("grd_24hoursclincobsreclist");
  2264. break;
  2265. /*
  2266. case "4days" :
  2267. iRecRow = grd_4daysclincobsreclist.row - grd_4daysclincobsreclist.fixedrows+1;
  2268. iRow = grd_4daysclincobsreclist.row;
  2269. iCol = grd_4daysclincobsreclist.col;
  2270. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  2271. sRecFromDT = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("recfromdt"));
  2272. sRecToDT = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("rectodt"));
  2273. sAttrCD = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("attrcd"));
  2274. sReChartFlag = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("reccharflag"));
  2275. //추가
  2276. if(model.getValue("/root/main/cond/cmbstatusx") != "0" && model.getValue("/root/main/cond/cmbstatusy") != "0"){
  2277. if(sReChartFlag == "A"){
  2278. var cmbstatusx = model.getValue("/root/main/cond/cmbstatusx");
  2279. var cmbstatusy = model.getValue("/root/main/cond/cmbstatusy");
  2280. var cmbRecRow = cmbstatusx - grd_4daysclincobsreclist.fixedrows+1;
  2281. var cmbAttrCD = model.getValue(xDaysClincObsRecList+"["+cmbRecRow+"]/attrcd");
  2282. grd_4daysclincobsreclist.cellComboNodeset(cmbstatusx,cmbstatusy) = sAttrListPath1+"[supcd='"+cmbAttrCD+"']";
  2283. cmbstatusx = "0";
  2284. cmbstatusy = "0";
  2285. }else{
  2286. cmbstatusx = "0";
  2287. cmbstatusy = "0";
  2288. }
  2289. }
  2290. // 의사의 경우
  2291. if(sJobKindCD == "30"){
  2292. grd_4daysclincobsreclist.combo.button.visible = false;
  2293. grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols,iRow, grd_4daysclincobsreclist.cols-1) = true;
  2294. return;
  2295. }
  2296. if(sReChartFlag =="A" && sAttrCD != ""){
  2297. model.removenodeSet(sAttrListPath);
  2298. for(var i = 1 ; i <= getNodesetCount(sAttrListPath1) ; i ++){
  2299. if(sAttrCD == model.getValue(sAttrListPath1+"["+i+"]/supcd") ){
  2300. var insComboNode = eval(getNodesetCount(sAttrListPath)) + 1 ;
  2301. if(insComboNode == 1){
  2302. model.makeNode(sAttrListPath);
  2303. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", "");
  2304. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", "");
  2305. insComboNode++;
  2306. }
  2307. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", model.getValue(sAttrListPath1+"["+i+"]/attrdesc"));
  2308. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", model.getValue(sAttrListPath1+"["+i+"]/attrcd"));
  2309. }
  2310. }
  2311. model.setValue("/root/main/cond/cmbstatusx",iRow );
  2312. model.setValue("/root/main/cond/cmbstatusy",iCol );
  2313. grd_4daysclincobsreclist.combo.button.visible = true;
  2314. grd_4daysclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath;
  2315. grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col)-20;
  2316. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  2317. model.setFocus("body");
  2318. grd_4daysclincobsreclist.row = iRow;
  2319. grd_4daysclincobsreclist.col = iCol;
  2320. }else{
  2321. grd_4daysclincobsreclist.combo.button.visible = false;
  2322. grd_4daysclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(grd_24hoursclincobsreclist.col);
  2323. }
  2324. // if(eval(model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/depth")) == 1){
  2325. // grd_4daysclincobsreclist.combo.button.visible = false;
  2326. // grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols,iRow, grd_4daysclincobsreclist.cols-1) = true;
  2327. // }else{
  2328. // //2008-05-21 변경
  2329. // //if(sRecDT < sRecFromDT || sRecDT > sRecToDT ){
  2330. // if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/reccharflag") == "C" ){
  2331. // if(model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/attrcd") == ""){
  2332. // grd_4daysclincobsreclist.combo.button.visible = false;
  2333. // grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col);
  2334. // }
  2335. // grd_4daysclincobsreclist.isReadOnly(iRow,iCol) = true;
  2336. // }else{
  2337. //
  2338. //
  2339. // if(sReChartFlag =="A" && sAttrCD != ""){ //속성이 존재하는 경우, 기록구분이 주체인 항목
  2340. // model.setValue("/root/main/cond/cmbstatusx",iRow );
  2341. // model.setValue("/root/main/cond/cmbstatusy",iCol );
  2342. //
  2343. // grd_4daysclincobsreclist.combo.button.visible = true;
  2344. // grd_4daysclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath+"[supcd='"+sAttrCD+"']";
  2345. // grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col)-20;
  2346. //
  2347. // //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  2348. // model.setFocus("body");
  2349. // model.setFocus("grd_4daysclincobsreclist");
  2350. // }else{
  2351. // grd_4daysclincobsreclist.combo.button.visible = false;
  2352. // grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col);
  2353. // }
  2354. // }
  2355. // }
  2356. //2008-05-21 멀티 선택이 되지 않아 삭제(콤보 변경이 안됌)
  2357. //model.setFocus("body");
  2358. //model.setFocus("grd_4daysclincobsreclist");
  2359. break;
  2360. case "stnd":
  2361. iRecRow = grd_stndclincobsreclist.row - grd_stndclincobsreclist.fixedrows+1;
  2362. iRow = grd_stndclincobsreclist.row;
  2363. iCol = grd_stndclincobsreclist.col;
  2364. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  2365. sRecFromDT = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("recfromdt"));
  2366. sRecToDT = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("rectodt"));
  2367. sAttrCD = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("attrcd"));
  2368. sReChartFlag = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("reccharflag"));
  2369. if(model.getValue("/root/main/cond/cmbstatusx") != "0" && model.getValue("/root/main/cond/cmbstatusy") != "0"){
  2370. if(sReChartFlag == "A"){
  2371. var cmbstatusx = model.getValue("/root/main/cond/cmbstatusx");
  2372. var cmbstatusy = model.getValue("/root/main/cond/cmbstatusy");
  2373. var cmbRecRow = cmbstatusx - grd_stndclincobsreclist.fixedrows+1;
  2374. var cmbAttrCD = model.getValue(xStnddayClincObsRecListPath+"["+cmbRecRow+"]/attrcd");
  2375. grd_stndclincobsreclist.cellComboNodeset(cmbstatusx,cmbstatusy) = sAttrListPath1+"[supcd='"+cmbAttrCD+"']";
  2376. cmbstatusx = "0";
  2377. cmbstatusy = "0";
  2378. }else{
  2379. cmbstatusx = "0";
  2380. cmbstatusy = "0";
  2381. }
  2382. }
  2383. // 의사의 경우
  2384. if(sJobKindCD == "30"){
  2385. grd_stndclincobsreclist.combo.button.visible = false;
  2386. grd_stndclincobsreclist.isReadOnly(iRow,grd_stndclincobsreclist.fixedCols,iRow, grd_stndclincobsreclist.cols-1) = true;
  2387. return;
  2388. }
  2389. if(sReChartFlag =="A" && sAttrCD != ""){
  2390. model.removenodeSet(sAttrListPath);
  2391. for(var i = 1 ; i <= getNodesetCount(sAttrListPath1) ; i ++){
  2392. if(sAttrCD == model.getValue(sAttrListPath1+"["+i+"]/supcd") ){
  2393. var insComboNode = eval(getNodesetCount(sAttrListPath)) + 1 ;
  2394. if(insComboNode == 1){
  2395. model.makeNode(sAttrListPath);
  2396. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", "");
  2397. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", "");
  2398. insComboNode++;
  2399. }
  2400. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", model.getValue(sAttrListPath1+"["+i+"]/attrdesc"));
  2401. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", model.getValue(sAttrListPath1+"["+i+"]/attrcd"));
  2402. }
  2403. }
  2404. model.setValue("/root/main/cond/cmbstatusx",iRow );
  2405. model.setValue("/root/main/cond/cmbstatusy",iCol );
  2406. grd_stndclincobsreclist.combo.button.visible = true;
  2407. grd_stndclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath;
  2408. grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col)-20;
  2409. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  2410. model.setFocus("body");
  2411. grd_stndclincobsreclist.row = iRow;
  2412. grd_stndclincobsreclist.col = iCol;
  2413. }else{
  2414. grd_stndclincobsreclist.combo.button.visible = false;
  2415. grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col);
  2416. }
  2417. // if(eval(model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/depth")) == 1){
  2418. // grd_stndclincobsreclist.combo.button.visible = false;
  2419. // grd_stndclincobsreclist.isReadOnly(iRow,grd_stndclincobsreclist.fixedCols,iRow, grd_stndclincobsreclist.cols-1) = true;
  2420. // }else{
  2421. // //2008-05-21 변경
  2422. // //if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/recyn") == "N"){
  2423. // if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/reccharflag") == "C"){
  2424. // if(model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/attrcd") == ""){
  2425. // grd_stndclincobsreclist.combo.button.visible = false;
  2426. // grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col);
  2427. // }
  2428. // grd_stndclincobsreclist.isReadOnly(iRow,iCol) = true;
  2429. // }else{
  2430. //
  2431. // if(sReChartFlag =="A" && sAttrCD != ""){ //속성이 존재하는 경우, 기록구분이 주체인 항목
  2432. // model.setValue("/root/main/cond/cmbstatusx",iRow );
  2433. // model.setValue("/root/main/cond/cmbstatusy",iCol );
  2434. //
  2435. // grd_stndclincobsreclist.combo.button.visible = true;
  2436. // grd_stndclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath+"[supcd='"+sAttrCD+"']";
  2437. // grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col)-20;
  2438. //
  2439. // //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  2440. // model.setFocus("body");
  2441. // model.setFocus("grd_stndclincobsreclist");
  2442. // }else{
  2443. // grd_stndclincobsreclist.combo.button.visible = false;
  2444. // grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col);
  2445. // }
  2446. // }
  2447. // }
  2448. //2008-05-21 멀티 선택이 되지 않아 삭제(콤보 변경이 안됌)
  2449. //model.setFocus("body");
  2450. //model.setFocus("grd_stndclincobsreclist");
  2451. break;
  2452. case "former":
  2453. iRecRow = grd_formersclincobsreclist.row - grd_formersclincobsreclist.fixedrows+1;
  2454. iRow = grd_formersclincobsreclist.row;
  2455. iCol = grd_formersclincobsreclist.col;
  2456. sRecDT = sFormerHeader[1][iCol]+sFormerHeader[3][iCol]+sFormerHeader[4][iCol]+"59";
  2457. sRecFromDT = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("recfromdt"));
  2458. sRecToDT = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("rectodt"));
  2459. sAttrCD = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("attrcd"));
  2460. sReChartFlag = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("reccharflag"));
  2461. if(model.getValue("/root/main/cond/cmbstatusx") != "0" && model.getValue("/root/main/cond/cmbstatusy") != "0"){
  2462. if(sReChartFlag == "A"){
  2463. var cmbstatusx = model.getValue("/root/main/cond/cmbstatusx");
  2464. var cmbstatusy = model.getValue("/root/main/cond/cmbstatusy");
  2465. var cmbRecRow = cmbstatusx - grd_formersclincobsreclist.fixedrows+1;
  2466. var cmbAttrCD = model.getValue(xFormerdayClincObsRecListPath+"["+cmbRecRow+"]/attrcd");
  2467. grd_formersclincobsreclist.cellComboNodeset(cmbstatusx,cmbstatusy) = xFormerAttrListPath1+"[supcd='"+cmbAttrCD+"']";
  2468. cmbstatusx = "0";
  2469. cmbstatusy = "0";
  2470. }else{
  2471. cmbstatusx = "0";
  2472. cmbstatusy = "0";
  2473. }
  2474. }
  2475. // 의사의 경우
  2476. if(sJobKindCD == "30"){
  2477. grd_formersclincobsreclist.combo.button.visible = false;
  2478. grd_formersclincobsreclist.isReadOnly(iRow,grd_formersclincobsreclist.fixedCols,iRow, grd_formersclincobsreclist.cols-1) = true;
  2479. return;
  2480. }
  2481. if(sReChartFlag =="A" && sAttrCD != ""){
  2482. model.removenodeSet(sAttrListPath);
  2483. for(var i = 1 ; i <= getNodesetCount(sAttrListPath1) ; i ++){
  2484. if(sAttrCD == model.getValue(sAttrListPath1+"["+i+"]/supcd") ){
  2485. var insComboNode = eval(getNodesetCount(sAttrListPath)) + 1 ;
  2486. if(insComboNode == 1){
  2487. model.makeNode(sAttrListPath);
  2488. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", "");
  2489. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", "");
  2490. insComboNode++;
  2491. }
  2492. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrnm", model.getValue(xFormerAttrListPath1+"["+i+"]/attrdesc"));
  2493. model.makeValue(sAttrListPath+"["+insComboNode+"]/attrcd", model.getValue(xFormerAttrListPath1+"["+i+"]/attrcd"));
  2494. }
  2495. }
  2496. model.setValue("/root/main/cond/cmbstatusx",iRow );
  2497. model.setValue("/root/main/cond/cmbstatusy",iCol );
  2498. grd_formersclincobsreclist.combo.button.visible = true;
  2499. grd_formersclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath;
  2500. grd_formersclincobsreclist.combo.input.attribute("width") = grd_formersclincobsreclist.colWidth(grd_formersclincobsreclist.col)-20;
  2501. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  2502. model.setFocus("body");
  2503. grd_formersclincobsreclist.row = iRow;
  2504. grd_formersclincobsreclist.col = iCol;
  2505. }else{
  2506. grd_formersclincobsreclist.combo.button.visible = false;
  2507. grd_formersclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col);
  2508. }
  2509. break;
  2510. */
  2511. }
  2512. }
  2513. /**
  2514. * @group :
  2515. * @ver : 2009.12.15
  2516. * @by : 양천덕
  2517. * @---------------------------------------------------
  2518. * @type : function
  2519. * @access : public
  2520. * @desc : 셀의 서브컨트롤이 “input” 또는 “inputbutton”일 때 edit 상태로 들어가서 키보드 이벤트가 발생하기 시작하는 시점에서 발생
  2521. * @param :
  2522. * @return :
  2523. * @---------------------------------------------------
  2524. */
  2525. function fChangeGridEdit(pFlag){
  2526. var iRow = 0;
  2527. switch(pFlag){
  2528. case "24hours" :
  2529. iRow = grd_24hoursclincobsreclist.row - grd_24hoursclincobsreclist.fixedrows + 1;
  2530. if(eval(model.getValue(xHoursClincObsRecList+"["+iRow+"]/depth")) >= 2 && model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") != "" && model.getValue(xHoursClincObsRecList+"["+iRow+"]/reccharflag") == "A"){
  2531. event.preventDefault();
  2532. }
  2533. break;
  2534. /*
  2535. case "4days" :
  2536. iRow = grd_4daysclincobsreclist.row - grd_4daysclincobsreclist.fixedrows+1;
  2537. if(eval(model.getValue(xDaysClincObsRecList+"["+iRow+"]/depth")) == 2 && model.getValue(xDaysClincObsRecList+"["+iRow+"]/attrcd") != ""){
  2538. event.preventDefault();
  2539. }
  2540. break;
  2541. case "formerday":
  2542. iRow = grd_stndclincobsreclist.row - grd_stndclincobsreclist.fixedrows+1;
  2543. if(eval(model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/depth")) == 2 && model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/attrcd") != ""){
  2544. event.preventDefault();
  2545. }
  2546. break;
  2547. */
  2548. }
  2549. }
  2550. /**
  2551. * @group :
  2552. * @ver : 2009.12.15
  2553. * @by : 양천덕
  2554. * @---------------------------------------------------
  2555. * @type : function
  2556. * @access : public
  2557. * @desc : 상세값과 사용자 정보를 Hint로 보여줌.
  2558. * @param :
  2559. * @return :
  2560. * @---------------------------------------------------
  2561. */
  2562. function fSearchDetlRecHintInfo(pFlag){
  2563. var iRow = 0;
  2564. var iCol = 0;
  2565. var sItemCD = "";
  2566. var sItemSeqNo = "";
  2567. var sRecDD = "";
  2568. var sRecTM = "";
  2569. var sAttrCD = "";
  2570. var sAttrNM = "";
  2571. var sRecFlag = "";
  2572. var sTimeFlag = "";
  2573. var sRecRslt = "";
  2574. var sSubTotal = 0;
  2575. var sFromDT = "";
  2576. var sToDT = "";
  2577. var sStndDT = "";
  2578. var sHintInfo = "";
  2579. switch(pFlag){
  2580. case "24hours" :
  2581. iRow = grd_24hoursclincobsreclist.mouseRow - grd_24hoursclincobsreclist.fixedrows+1;
  2582. iCol = grd_24hoursclincobsreclist.mouseCol;
  2583. if(iRow < 1 || iCol < 0 ){
  2584. sHintInfo = "";
  2585. }else{
  2586. if(iCol == 0){
  2587. sHintInfo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemnm");
  2588. }else{
  2589. sItemCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemcd");
  2590. sItemSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemseqno");
  2591. sCareRecSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/carerecseqno");
  2592. sRecDD = sHeader[1][iCol];
  2593. sRecTM = sHeader[3][iCol]+sHeader[4][iCol]+"00";
  2594. sTimeFlag = model.getValue(sCondPath+"/timeflag");
  2595. sRecFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recflag");
  2596. var sHistRecUserNm = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/usernm").split("^");
  2597. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/recdt").split("^");
  2598. //model.setValue(sCondPath+"/detlrecinfo/usernm", sSettingUserNm);
  2599. //model.setValue(sCondPath+"/detlrecinfo/usernm", model.getValue(xRecUserListPath+"[carerecseqno ='"+sCareRecSeqNo+"' and recdt ='"+sRecDD+sRecTM+"']/usernm"));
  2600. sAttrCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd");
  2601. if(sAttrCD == ""){
  2602. sHintInfo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  2603. }else{
  2604. sAttrCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  2605. sAttrNM = model.getValue(sAttrListPath1+"[attrcd ='"+sAttrCD+"']/attrdesc");
  2606. if(sAttrNM == ""){
  2607. sHintInfo = sAttrCD;
  2608. }else{
  2609. sHintInfo = sAttrNM;
  2610. }
  2611. }
  2612. var sSettingUserNm = "";
  2613. if(sHistRecDT.length > 0){
  2614. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  2615. if((sRecDD + sRecTM) == sHistRecDT[histrow]){
  2616. sSettingUserNm = sHistRecUserNm[histrow];
  2617. }
  2618. }
  2619. }
  2620. if(sSettingUserNm != ""){
  2621. sHintInfo += "\n" + sSettingUserNm;
  2622. }
  2623. sFromDT = sHeader[1][1]+sHeader[3][1]+sHeader[4][1];
  2624. sToDT = sRecDD+sRecTM.substr(0,4);
  2625. if( model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol)!= "" &&
  2626. (model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") == "" || model.getValue(xHoursClincObsRecList+"["+iRow+"]/totalyn") == "Y") &&
  2627. (sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") ){
  2628. for(var i=1; i<= iCol; i++){
  2629. sStndDT = sHeader[1][i]+sHeader[3][i]+sHeader[4][i];
  2630. if(sStndDT >= sFromDT && sStndDT <= sToDT){
  2631. sRecRslt = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+i);
  2632. if(sRecRslt != "" && fIsNumber(sRecRslt) == true ){
  2633. sSubTotal += eval(sRecRslt);
  2634. }
  2635. }
  2636. }
  2637. }
  2638. if(sSubTotal == 0) sSubTotal== "";
  2639. if(sSubTotal != "") sHintInfo += "\n" + sSubTotal;
  2640. }
  2641. }
  2642. break;
  2643. }
  2644. return sHintInfo;
  2645. }
  2646. /**
  2647. * @group :
  2648. * @ver : 2009.12.15
  2649. * @by : 양천덕
  2650. * @---------------------------------------------------
  2651. * @type : function
  2652. * @access : public
  2653. * @desc : 상세값과 사용자 정보를 보여줌.
  2654. * @param :
  2655. * @return :
  2656. * @---------------------------------------------------
  2657. */
  2658. function fSearchDetlRecInfo(pFlag){
  2659. var iRow = 0;
  2660. var iCol = 0;
  2661. var sItemCD = "";
  2662. var sItemSeqNo = "";
  2663. var sRecDD = "";
  2664. var sRecTM = "";
  2665. var sAttrCD = "";
  2666. var sAttrNM = "";
  2667. var sRecFlag = "";
  2668. var sTimeFlag = "";
  2669. var sRecRslt = "";
  2670. var sSubTotal = 0;
  2671. var sFromDT = "";
  2672. var sToDT = "";
  2673. var sStndDT = "";
  2674. var sSubTotalArray = "";
  2675. switch(pFlag){
  2676. case "24hours" :
  2677. iRow = grd_24hoursclincobsreclist.mouseRow - grd_24hoursclincobsreclist.fixedrows+1;
  2678. iCol = grd_24hoursclincobsreclist.mouseCol;
  2679. if(iRow < 1 || iCol < 0 ){
  2680. model.setValue(sCondPath+"/detlrecinfo/detlval" , "");
  2681. model.setValue(sCondPath+"/detlrecinfo/usernm" , "");
  2682. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2683. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", "");
  2684. }else{
  2685. if(iCol == 0){
  2686. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemnm"));
  2687. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2688. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2689. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", "");
  2690. }else{
  2691. sItemCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemcd");
  2692. sItemSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemseqno");
  2693. sCareRecSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/carerecseqno");
  2694. sRecDD = sHeader[1][iCol];
  2695. sRecTM = sHeader[3][iCol]+sHeader[4][iCol]+"00";
  2696. sTimeFlag = model.getValue(sCondPath+"/timeflag");
  2697. sRecFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recflag");
  2698. var sHistRecUserNm = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/usernm").split("^");
  2699. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/recdt").split("^");
  2700. var sSettingUserNm = "";
  2701. if(sHistRecDT.length > 0){
  2702. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  2703. if((sRecDD + sRecTM) == sHistRecDT[histrow]){
  2704. sSettingUserNm = sHistRecUserNm[histrow];
  2705. }
  2706. }
  2707. }
  2708. model.setValue(sCondPath+"/detlrecinfo/usernm", sSettingUserNm);
  2709. //model.setValue(sCondPath+"/detlrecinfo/usernm", model.getValue(xRecUserListPath+"[carerecseqno ='"+sCareRecSeqNo+"' and recdt ='"+sRecDD+sRecTM+"']/usernm"));
  2710. sAttrCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd");
  2711. if(sAttrCD == ""){
  2712. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol));
  2713. }else{
  2714. sAttrCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  2715. sAttrNM = model.getValue(sAttrListPath1+"[attrcd ='"+sAttrCD+"']/attrdesc");
  2716. if(sAttrNM == ""){
  2717. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrCD);
  2718. }else{
  2719. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrNM);
  2720. }
  2721. }
  2722. sFromDT = sHeader[1][1]+sHeader[3][1]+sHeader[4][1];
  2723. sToDT = sRecDD+sRecTM.substr(0,4);
  2724. if( model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol)!= "" &&
  2725. (model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") == "" || model.getValue(xHoursClincObsRecList+"["+iRow+"]/totalyn") == "Y") &&
  2726. (sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") ){
  2727. for(var i=1; i<= iCol; i++){
  2728. sStndDT = sHeader[1][i]+sHeader[3][i]+sHeader[4][i];
  2729. if(sStndDT >= sFromDT && sStndDT <= sToDT){
  2730. sRecRslt = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+i);
  2731. if(sRecRslt != "" && fIsNumber(sRecRslt) == true ){
  2732. sSubTotal += eval(sRecRslt);
  2733. }
  2734. }
  2735. }
  2736. }
  2737. if( sSubTotal == 0 ) sSubTotal="";
  2738. model.setValue(sCondPath+"/detlrecinfo/subtotal", sSubTotal);
  2739. if( sSubTotal == "" ){
  2740. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", "");
  2741. }else{
  2742. sFromDT = sFromDT.substr(4,2)+"/"+sFromDT.substr(6,2)+" "+sFromDT.substr(8,2)+":"+sFromDT.substr(10,2);
  2743. sToDT = sToDT.substr(4,2)+"/"+sToDT.substr(6,2)+" "+sToDT.substr(8,2)+":"+sToDT.substr(10,2);
  2744. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", sFromDT + "~" + sToDT);
  2745. }
  2746. }
  2747. }
  2748. break;
  2749. /*
  2750. case "4days" :
  2751. iRow = grd_4daysclincobsreclist.mouseRow - grd_4daysclincobsreclist.fixedrows+1;
  2752. iCol = grd_4daysclincobsreclist.mouseCol;
  2753. if(iRow < 1 || iCol < 0 ){
  2754. model.setValue(sCondPath+"/detlrecinfo/detlval", "");
  2755. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2756. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2757. }else{
  2758. if(iCol == 0){
  2759. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xDaysClincObsRecList+"["+iRow+"]/itemnm"));
  2760. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2761. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2762. }else{
  2763. sItemCD = model.getValue(xDaysClincObsRecList+"["+iRow+"]/itemcd");
  2764. sItemSeqNo = model.getValue(xDaysClincObsRecList+"["+iRow+"]/itemseqno");
  2765. sCareRecSeqNo = model.getValue(xDaysClincObsRecList+"["+iRow+"]/carerecseqno");
  2766. sRecDD = sHeader[1][iCol];
  2767. sRecTM = sHeader[3][iCol]+sHeader[4][iCol]+"00";
  2768. sRecFlag = model.getValue(xDaysClincObsRecList+"["+iRow+"]/recflag");
  2769. var sHistRecUserNm = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/usernm").split("^");
  2770. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/recdt").split("^");
  2771. var sSettingUserNm = "";
  2772. if(sHistRecDT.length > 0){
  2773. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  2774. if((sRecDD + sRecTM) == sHistRecDT[histrow]){
  2775. sSettingUserNm = sHistRecUserNm[histrow];
  2776. }
  2777. }
  2778. }
  2779. model.setValue(sCondPath+"/detlrecinfo/usernm", sSettingUserNm);
  2780. sAttrCD = model.getValue(xDaysClincObsRecList+"["+iRow+"]/attrcd");
  2781. if(sAttrCD == ""){
  2782. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xDaysClincObsRecList+"["+iRow+"]/recrslt"+iCol));
  2783. }else{
  2784. sAttrCD = model.getValue(xDaysClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  2785. sAttrNM = model.getValue(sAttrListPath1+"[attrcd='"+sAttrCD+"']/attrdesc");
  2786. if(sAttrNM == ""){
  2787. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrCD);
  2788. }else{
  2789. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrNM);
  2790. }
  2791. }
  2792. // 4일 조회 화면 intake 또는 output 일때 합계 계산
  2793. sFromDT = sHeader[1][1]+sHeader[3][1]+sHeader[4][1];
  2794. sToDT = sRecDD+sRecTM.substr(0,4);
  2795. //if((sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") && model.getValue(xDaysClincObsRecList+"["+iRow+"]/recrslt"+iCol)!= "" && model.getValue(xDaysClincObsRecList+"["+iRow+"]/attrcd") == ""){
  2796. if( model.getValue(xDaysClincObsRecList+"["+iRow+"]/recrslt"+iCol)!= "" &&
  2797. (model.getValue(xDaysClincObsRecList+"["+iRow+"]/attrcd") == "" || model.getValue(xDaysClincObsRecList+"["+iRow+"]/totalyn") == "Y") &&
  2798. (sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") ){
  2799. for(var i=1; i<= iCol; i++){
  2800. sStndDT = sHeader[1][i]+sHeader[3][i]+sHeader[4][i];
  2801. if(sStndDT >= sFromDT && sStndDT <= sToDT){
  2802. sRecRslt = model.getValue(xDaysClincObsRecList+"["+iRow+"]/recrslt"+i);
  2803. if(sRecRslt != "" && fIsNumber(sRecRslt) == true){
  2804. sSubTotal += eval(sRecRslt);
  2805. }
  2806. }
  2807. }
  2808. }
  2809. if(sSubTotal == 0) sSubTotal="";
  2810. model.setValue(sCondPath+"/detlrecinfo/subtotal", sSubTotal);
  2811. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", sFromDT + "~" + sToDT);
  2812. }
  2813. }
  2814. break;
  2815. case "former": // 이전 기록
  2816. iRow = grd_formersclincobsreclist.mouseRow - grd_formersclincobsreclist.fixedrows+1;
  2817. iCol = grd_formersclincobsreclist.mouseCol;
  2818. if(iRow < 1 || iCol < 0){
  2819. model.setValue(sCondPath+"/detlrecinfo/detlval", "");
  2820. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2821. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2822. }else{
  2823. if(iCol == 0){
  2824. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/itemnm"));
  2825. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2826. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2827. }else{
  2828. sRecDD = sFormerHeader[1][iCol];
  2829. sRecTM = sFormerHeader[3][iCol]+sFormerHeader[4][iCol]+"00";
  2830. sCareRecSeqNo = model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/carerecseqno");
  2831. sRecFlag = model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recflag");
  2832. var sHistRecUserNm = model.getValue(xFormerRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/usernm").split("^");
  2833. var sHistRecDT = model.getValue(xFormerRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/recdt").split("^");
  2834. var sSettingUserNm = "";
  2835. if(sHistRecDT.length > 0){
  2836. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  2837. if((sRecDD + sRecTM) == sHistRecDT[histrow]){
  2838. sSettingUserNm = sHistRecUserNm[histrow];
  2839. }
  2840. }
  2841. }
  2842. model.setValue(sCondPath+"/detlrecinfo/usernm", sSettingUserNm);
  2843. sAttrCD = model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/attrcd");
  2844. if(sAttrCD == ""){
  2845. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol));
  2846. }else{
  2847. sAttrCD = model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol);
  2848. sAttrNM = model.getValue(xFormerAttrListPath1+"[attrcd ='"+sAttrCD+"']/attrdesc");
  2849. if(sAttrNM == ""){
  2850. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrCD);
  2851. }else{
  2852. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrNM);
  2853. }
  2854. }
  2855. sFromDT = sFormerHeader[1][1]+sFormerHeader[3][1]+sFormerHeader[4][1];
  2856. sToDT = sRecDD+sRecTM.substr(0,4);
  2857. //if((sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") && model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol)!= "" && model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/attrcd") == ""){
  2858. if( model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol)!= "" &&
  2859. (model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/attrcd") == "" || model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/totalyn") == "Y") &&
  2860. (sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") ){
  2861. for(var i=1; i<= iCol; i++){
  2862. sStndDT = sFormerHeader[1][i]+sFormerHeader[3][i]+sFormerHeader[4][i];
  2863. if(sStndDT >= sFromDT && sStndDT <= sToDT){
  2864. sRecRslt = model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recrslt"+i);
  2865. if(sRecRslt != "" && fIsNumber(sRecRslt) == true){
  2866. sSubTotal += eval(sRecRslt);
  2867. }
  2868. }
  2869. }
  2870. }
  2871. if(sSubTotal == 0) sSubTotal="";
  2872. model.setValue(sCondPath+"/detlrecinfo/subtotal", sSubTotal);
  2873. }
  2874. }
  2875. break;
  2876. case "stnd":
  2877. iRow = grd_stndclincobsreclist.mouseRow - grd_stndclincobsreclist.fixedrows+1;
  2878. iCol = grd_stndclincobsreclist.mouseCol;
  2879. if(iRow < 1 || iCol < 0){
  2880. model.setValue(sCondPath+"/detlrecinfo/detlval", "");
  2881. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2882. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2883. }else{
  2884. if(iCol == 0){
  2885. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/itemnm"));
  2886. model.setValue(sCondPath+"/detlrecinfo/usernm", "");
  2887. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  2888. }else{
  2889. sRecDD = sHeader[1][iCol];
  2890. sRecTM = sHeader[3][iCol]+sHeader[4][iCol]+"00";
  2891. sCareRecSeqNo = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/carerecseqno");
  2892. sRecFlag = model.getValue(xFormerdayClincObsRecListPath+"["+iRow+"]/recflag");
  2893. var sHistRecUserNm = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/usernm").split("^");
  2894. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/recdt").split("^");
  2895. var sSettingUserNm = "";
  2896. if(sHistRecDT.length > 0){
  2897. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  2898. if((sRecDD + sRecTM) == sHistRecDT[histrow]){
  2899. sSettingUserNm = sHistRecUserNm[histrow];
  2900. }
  2901. }
  2902. }
  2903. model.setValue(sCondPath+"/detlrecinfo/usernm", sSettingUserNm);
  2904. sAttrCD = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/attrcd");
  2905. if(sAttrCD == ""){
  2906. model.setValue(sCondPath+"/detlrecinfo/detlval", model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol));
  2907. }else{
  2908. sAttrCD = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol);
  2909. sAttrNM = model.getValue(sAttrListPath1+"[attrcd ='"+sAttrCD+"']/attrdesc");
  2910. if(sAttrNM == ""){
  2911. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrCD);
  2912. }else{
  2913. model.setValue(sCondPath+"/detlrecinfo/detlval", sAttrNM);
  2914. }
  2915. }
  2916. sFromDT = sHeader[1][1]+sHeader[3][1]+sHeader[4][1];
  2917. sToDT = sRecDD+sRecTM.substr(0,4);
  2918. //if((sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") && model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol)!= "" && model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/attrcd") == ""){
  2919. if( model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol)!= "" &&
  2920. (model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/attrcd") == "" || model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/totalyn") == "Y") &&
  2921. (sRecFlag == "B" || sRecFlag == "C" || sRecFlag == "T") ){
  2922. for(var i=1; i<= iCol; i++){
  2923. sStndDT = sHeader[1][i]+sHeader[3][i]+sHeader[4][i];
  2924. if(sStndDT >= sFromDT && sStndDT <= sToDT){
  2925. sRecRslt = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recrslt"+i);
  2926. if(sRecRslt != "" && fIsNumber(sRecRslt) == true){
  2927. sSubTotal += eval(sRecRslt);
  2928. }
  2929. }
  2930. }
  2931. }
  2932. if(sSubTotal == 0) sSubTotal="";
  2933. model.setValue(sCondPath+"/detlrecinfo/subtotal", sSubTotal);
  2934. }
  2935. }
  2936. break;
  2937. */
  2938. }
  2939. opt_detlval.refresh();
  2940. opt_usernm.refresh();
  2941. opt_subtotal.refresh();
  2942. opt_subtotalarray.refresh();
  2943. }
  2944. /**
  2945. * @group :
  2946. * @ver : 2009.12.15
  2947. * @by : 양천덕
  2948. * @---------------------------------------------------
  2949. * @type : function
  2950. * @access : public
  2951. * @desc : 임상관찰 기록 저장(임시저장)
  2952. * @param :
  2953. * @return :
  2954. * @---------------------------------------------------
  2955. */
  2956. function fSaveTempClincObsRec(pRecFlag){
  2957. var sSaveDataHeader = "status▦pid▦indd▦cretno▦wardcd▦roomcd▦instcd▦ioflag▦itemcd▦itemseqno▦recflag▦recdt▦recrslt▦certkey▦carerecseqno▩";
  2958. var sSaveData = ""; // 저장데이터
  2959. var sRowCnt = 0; // 전체 row 갯수
  2960. var sItemCD = ""; // 항목코드
  2961. var sItemSeqNO = ""; // 항목일련번호
  2962. var sRecRslt_BK = ""; // 기존 기록결과
  2963. var sRecRslt = ""; // 신규 기록결과
  2964. var sCertKey = ""; // 기존 인증키
  2965. var sStatus = ""; // 상태
  2966. var sStrTime = ""; // 각 컬럼의 시간
  2967. var sRecFlag = ""; // 기록구분
  2968. var sRecCharFlag = ""; // 기록성격구분
  2969. var sChkChngData = false;
  2970. var sBizLnkFlag = model.getValue(sCondPath+"/bizlnkflag");
  2971. var sTimeFlag = model.getValue(sCondPath+"/timeflag");
  2972. var sRecDd = model.getValue(sCondPath+"/recdd");
  2973. sFluidSumInfo = new Array();
  2974. model.removeNodeSet(xResultPath);
  2975. model.removenode("/root/send");
  2976. if(sPid == ""){
  2977. sPid = model.getValue("/root/main/patinfo/pid");
  2978. sIndd = model.getValue("/root/main/patinfo/indd");
  2979. sCretNo = model.getValue("/root/main/patinfo/cretno");
  2980. sIOFlag = model.getValue("/root/main/patinfo/ordtype");
  2981. }
  2982. model.makeValue("/root/send/pid" , sPid);
  2983. model.makeValue("/root/send/indd" , sIndd);
  2984. model.makeValue("/root/send/cretno" , sCretNo);
  2985. model.makeValue("/root/send/instcd" , sInstcd);
  2986. model.makeValue("/root/send/ioflag" , sIOFlag);
  2987. model.makeValue("/root/send/timeflag" , sTimeFlag);
  2988. model.makeValue("/root/send/srchdd" , sRecDd );//20090730 김홍점 [임상관찰기록] 삽관, 기구 관련 그룹정보 연동 시 삽입(적용)일 및 적용일수 정보 조회를 위한 기준일자
  2989. model.makeValue("/root/send/fromdt" , sHeader[1][1]+sHeader[3][1]+sHeader[4][1]+"00");
  2990. model.makeValue("/root/send/existsdelinfo", model.getValue("/root/main/cond/existsdelinfo"));
  2991. switch(pRecFlag){
  2992. case "24hours" :
  2993. if(sBizLnkFlag == "Y"){
  2994. model.makeValue("/root/send/bizdeptcd", sDutplcecd);
  2995. }
  2996. model.makeValue("/root/send/todt",sHeader[1][24]+sHeader[3][24]+sHeader[4][24]+"00");
  2997. model.makeValue("/root/send/recflag", "24hours");
  2998. model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/hoursclsinfo") );
  2999. for(var i=1; i <= 25; i++){
  3000. if(sStrTime == ""){
  3001. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  3002. }else{
  3003. sStrTime += ","+sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  3004. }
  3005. }
  3006. model.makeValue("/root/send/strtime", sStrTime);
  3007. sRowCnt = grd_24hoursclincobsreclist.rows - grd_24hoursclincobsreclist.fixedrows;
  3008. for(var iRow = 1; iRow<=sRowCnt; iRow++){
  3009. sItemCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemcd" );
  3010. sItemSeqNO = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemseqno" );
  3011. sRecFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recflag" );
  3012. sRecCharFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/reccharflag" );
  3013. sCareRecSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/carerecseqno");
  3014. sItemNM = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemnm" );
  3015. sLnkBizCd = model.getValue(xHoursClincObsRecList+"["+iRow+"]/lnkbizcd" );
  3016. sStype = model.getValue(xHoursClincObsRecList+"["+iRow+"]/style" );
  3017. // 값조회, 추가행, Graph사용 수액의 경우는 저장이 필요없음.
  3018. if( sRecCharFlag == "C" || sRecCharFlag == "" || ( sLnkBizCd == "12" && sStype == "01") ) continue;
  3019. for(var iCol=1; iCol<= 24; iCol++){
  3020. //sRecRslt_BK = model.getValue(xClincObsRecListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+sItemSeqNO+"' and recflag='"+sRecFlag+"']/recrslt"+iCol);
  3021. sRecRslt_BK = model.getValue(xClincObsRecListPath+"[carerecseqno='"+sCareRecSeqNo+"']/recrslt"+iCol);
  3022. sRecRslt = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  3023. sStatus = "";
  3024. sResultPath = "";
  3025. //상태값 변경
  3026. if(sLnkBizCd == "99" || sLnkBizCd == "01" || sLnkBizCd == "02" || sLnkBizCd == "03" || sLnkBizCd == "04"){ //연계항목, 분류는 제외
  3027. sStatus = "";
  3028. }else if(sRecRslt_BK == "" && sRecRslt == ""){
  3029. sStatus = "";
  3030. }else if(sRecRslt_BK == "" && sRecRslt != ""){
  3031. sStatus = "U";
  3032. }else if(sRecRslt_BK != "" && sRecRslt == ""){
  3033. sStatus = "U";
  3034. }else if(sRecRslt_BK != "" && sRecRslt_BK != sRecRslt){
  3035. sStatus = "U";
  3036. }
  3037. if(sStatus == "") continue;
  3038. //sCertKey = model.getValue(xRecUserListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+ sItemSeqNO+"' and recflag ='"+sRecFlag+"' and recdt = '"+sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00']/certkey");
  3039. var sRsltNodeCnt = eval(getNodesetCount(xResultPath)) + 1;
  3040. var sSaveRecDt = "";
  3041. //간편 입력 저장 부분
  3042. var sArraySaveData = new Array();
  3043. if(isSearchString(sRecRslt, "'") == true){
  3044. sArraySaveData = sRecRslt.split("/");
  3045. for(var i = 0 ; i < sArraySaveData.length ; i++){
  3046. if(i == sArraySaveData.length -1 && isSearchString(sArraySaveData[i], "'") == true && sArraySaveData[i].replace("'", "").isNumber() == true && sArraySaveData[i].replace("'", "") < 60 && sArraySaveData[i].replace("'", "").length == 2){
  3047. sSaveRecDt = sHeader[1][iCol]+sHeader[3][iCol]+sArraySaveData[i].replace("'", "")+"00";
  3048. sRecRslt = sRecRslt.replace("/" + sArraySaveData[i], "" );
  3049. }
  3050. }
  3051. }
  3052. //if(sRecRslt.length < 1) return;
  3053. if(sSaveRecDt == "") sSaveRecDt = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00";
  3054. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3055. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/recdt" , sSaveRecDt );
  3056. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/attrcd" , model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") );
  3057. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3058. sChkChngData = true;
  3059. //sCertKey = model.getValue(xRecUserListPath+"[carerecseqno='"+sCareRecSeqNo+"' and recdt = '"+sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00']/certkey");
  3060. sSaveData += sStatus +"▦"
  3061. + sPid +"▦"
  3062. + sIndd +"▦"
  3063. + sCretNo +"▦"
  3064. + sWardCD +"▦"
  3065. + sRoomCD +"▦"
  3066. + sInstcd +"▦"
  3067. + sIOFlag +"▦"
  3068. + sItemCD +"▦"
  3069. + sItemSeqNO +"▦"
  3070. + sRecFlag +"▦"
  3071. + sSaveRecDt +"▦"
  3072. + sRecRslt +"▦"
  3073. + sCertKey +"▦"
  3074. + sCareRecSeqNo +"▩";
  3075. }
  3076. }
  3077. // 변경데이터 유뮤 체크
  3078. if(sChkChngData == false){
  3079. messageBox("저장 할 데이터", "I004");
  3080. model.removeNodeSet("/root/send");
  3081. return;
  3082. }
  3083. //**********************************************************************************************************************
  3084. // 인증 구현 부분 24시 화면
  3085. //**********************************************************************************************************************
  3086. model.makeValue("/root/send/clincobsreclist",sSaveDataHeader+sSaveData);
  3087. //return;
  3088. model.removenodeSet("/root/main/clincobsrecinfo/hoursclincobsrecinfo");
  3089. //submit("TXMNR00901", false); //2008-07-09
  3090. submit("TXMNR10101", false); //2008-07-09
  3091. break;
  3092. }
  3093. fSettingClincObsRec(pRecFlag);
  3094. }
  3095. /**
  3096. * @group :
  3097. * @ver : 2009.12.15
  3098. * @by : 양천덕
  3099. * @---------------------------------------------------
  3100. * @type : function
  3101. * @access : public
  3102. * @desc : 임상관찰 기록 저장(인증저장)
  3103. * @param :
  3104. * @return :
  3105. * @---------------------------------------------------
  3106. */
  3107. function fSaveClincObsRec(pRecFlag){
  3108. sViewerFunc = "sign"
  3109. var sSaveDataHeader = "status▦pid▦indd▦cretno▦wardcd▦roomcd▦instcd▦ioflag▦itemcd▦itemseqno▦recflag▦recdt▦recrslt▦certkey▦carerecseqno▩";
  3110. var sSaveData = ""; // 저장데이터
  3111. var sRowCnt = 0; // 전체 row 갯수
  3112. var sItemCD = ""; // 항목코드
  3113. var sItemSeqNO = ""; // 항목일련번호
  3114. var sRecRslt_BK = ""; // 기존 기록결과
  3115. var sRecRslt = ""; // 신규 기록결과
  3116. var sCertKey = ""; // 기존 인증키
  3117. var sStatus = ""; // 상태
  3118. var sStrTime = ""; // 각 컬럼의 시간
  3119. var sRecFlag = ""; // 기록구분
  3120. var sRecCharFlag = ""; // 기록성격구분
  3121. var sChkChngData = false;
  3122. var sBizLnkFlag = model.getValue(sCondPath+"/bizlnkflag");
  3123. var sTimeFlag = model.getValue(sCondPath+"/timeflag");
  3124. var sRecDd = model.getValue(sCondPath+"/recdd");
  3125. sFluidSumInfo = new Array();
  3126. model.removeNodeSet(xResultPath);
  3127. model.removenode("/root/send");
  3128. if(sPid == ""){
  3129. sPid = model.getValue("/root/main/patinfo/pid");
  3130. sIndd = model.getValue("/root/main/patinfo/indd");
  3131. sCretNo = model.getValue("/root/main/patinfo/cretno");
  3132. sIOFlag = model.getValue("/root/main/patinfo/ordtype");
  3133. }
  3134. model.makeValue("/root/send/pid", sPid);
  3135. model.makeValue("/root/send/indd", sIndd);
  3136. model.makeValue("/root/send/cretno", sCretNo);
  3137. model.makeValue("/root/send/instcd", sInstcd);
  3138. model.makeValue("/root/send/ioflag", sIOFlag);
  3139. model.makeValue("/root/send/timeflag",sTimeFlag );
  3140. model.makeValue("/root/send/srchdd",sRecDd );//20090730 김홍점 [임상관찰기록] 삽관, 기구 관련 그룹정보 연동 시 삽입(적용)일 및 적용일수 정보 조회를 위한 기준일자
  3141. model.makeValue("/root/send/fromdt",sHeader[1][1]+sHeader[3][1]+sHeader[4][1]+"00");
  3142. model.makeValue("/root/send/existsdelinfo", model.getValue("/root/main/cond/existsdelinfo"));
  3143. switch(pRecFlag){
  3144. case "24hours" :
  3145. if(sBizLnkFlag == "Y"){
  3146. model.makeValue("/root/send/bizdeptcd", sDutplcecd);
  3147. }
  3148. model.makeValue("/root/send/todt",sHeader[1][24]+sHeader[3][24]+sHeader[4][24]+"00");
  3149. model.makeValue("/root/send/recflag", "24hours");
  3150. model.makeValue("/root/send/clsinfo", model.getValue(sCondPath+"/hoursclsinfo") );
  3151. for(var i=1; i <= 25; i++){
  3152. if(sStrTime == ""){
  3153. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  3154. }else{
  3155. sStrTime += ","+sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  3156. }
  3157. }
  3158. model.makeValue("/root/send/strtime", sStrTime);
  3159. sRowCnt = grd_24hoursclincobsreclist.rows - grd_24hoursclincobsreclist.fixedrows;
  3160. for(var iRow = 1; iRow<=sRowCnt; iRow++){
  3161. sItemCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemcd" );
  3162. sItemSeqNO = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemseqno" );
  3163. sRecFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recflag" );
  3164. sRecCharFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/reccharflag" );
  3165. sCareRecSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/carerecseqno");
  3166. sItemNM = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemnm" );
  3167. sLnkBizCd = model.getValue(xHoursClincObsRecList+"["+iRow+"]/lnkbizcd" );
  3168. sStype = model.getValue(xHoursClincObsRecList+"["+iRow+"]/style" );
  3169. // 값조회, 추가행, Graph사용 수액의 경우는 저장이 필요없음.
  3170. if(sRecCharFlag == "C" || sRecCharFlag == "" || ( sLnkBizCd == "12" && sStype == "01") ) continue;
  3171. //인증키 확인 로직
  3172. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/recdt").split("^");
  3173. var sHistCertKey = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqNo+"']/certkey").split("^");
  3174. for(var iCol=1; iCol<= 24; iCol++){
  3175. sRecRslt_BK = model.getValue(xClincObsRecListPath+"[carerecseqno='"+sCareRecSeqNo+"']/recrslt"+iCol);
  3176. sRecRslt = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  3177. sCertKey = "";
  3178. if(sHistRecDT.length > 0){
  3179. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  3180. if(sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00" == sHistRecDT[histrow]){
  3181. sCertKey = sHistCertKey[histrow];
  3182. }
  3183. }
  3184. }
  3185. sStatus = "";
  3186. sResultPath = "";
  3187. //상태값 변경
  3188. if(sLnkBizCd == "99" || sLnkBizCd == "01" || sLnkBizCd == "02" || sLnkBizCd == "03" || sLnkBizCd == "04"){ //연계항목, 분류는 제외
  3189. sStatus = "";
  3190. }else if(sRecRslt_BK == "" && sRecRslt == ""){
  3191. sStatus = "";
  3192. }else if(sRecRslt_BK == sRecRslt && sCertKey == ""){
  3193. sStatus = "U";
  3194. }else if(sRecRslt_BK == "" && sRecRslt != ""){
  3195. sStatus = "U";
  3196. }else if(sRecRslt_BK != "" && sRecRslt == ""){
  3197. sStatus = "U";
  3198. }else if(sRecRslt_BK != "" && sRecRslt_BK != sRecRslt){
  3199. sStatus = "U";
  3200. }
  3201. if(sStatus == "") continue;
  3202. //sCertKey = model.getValue(xRecUserListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+ sItemSeqNO+"' and recflag ='"+sRecFlag+"' and recdt = '"+sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00']/certkey");
  3203. var sRsltNodeCnt = eval(getNodesetCount(xResultPath)) + 1;
  3204. var sSaveRecDt = "";
  3205. //간편 입력 저장 부분
  3206. var sArraySaveData = new Array();
  3207. if(isSearchString(sRecRslt, "'") == true){
  3208. sArraySaveData = sRecRslt.split("/");
  3209. for(var i = 0 ; i < sArraySaveData.length ; i++){
  3210. if(i == sArraySaveData.length -1 && isSearchString(sArraySaveData[i], "'") == true && sArraySaveData[i].replace("'", "").isNumber() == true && sArraySaveData[i].replace("'", "") < 60 && sArraySaveData[i].replace("'", "").length == 2){
  3211. sSaveRecDt = sHeader[1][iCol]+sHeader[3][iCol]+sArraySaveData[i].replace("'", "")+"00";
  3212. sRecRslt = sRecRslt.replace("/" + sArraySaveData[i], "" );
  3213. }
  3214. }
  3215. }
  3216. //if(sRecRslt.length < 1) return;
  3217. if(sSaveRecDt == "") sSaveRecDt = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00";
  3218. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3219. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/recdt" , sSaveRecDt );
  3220. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/attrcd" , model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") );
  3221. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3222. sChkChngData = true;
  3223. sSaveData += sStatus +"▦"
  3224. + sPid +"▦"
  3225. + sIndd +"▦"
  3226. + sCretNo +"▦"
  3227. + sWardCD +"▦"
  3228. + sRoomCD +"▦"
  3229. + sInstcd +"▦"
  3230. + sIOFlag +"▦"
  3231. + sItemCD +"▦"
  3232. + sItemSeqNO +"▦"
  3233. + sRecFlag +"▦"
  3234. + sSaveRecDt +"▦"
  3235. + sRecRslt +"▦"
  3236. + sCertKey +"▦"
  3237. + sCareRecSeqNo +"▩";
  3238. }
  3239. }
  3240. // 변경데이터 유뮤 체크
  3241. if(sChkChngData == false){
  3242. messageBox("저장 할 데이터", "I004");
  3243. model.removeNodeSet("/root/send");
  3244. return;
  3245. }
  3246. //**********************************************************************************************************************
  3247. // 인증 구현 부분 24시 화면
  3248. //************************************************ **********************************************************************
  3249. //Sign.CERT_YEAR = 1970;
  3250. if(Sign.signprocess() == true ){
  3251. //var sSignDataRowCnt = eval(getNodesetCount("/rot/send/signdata")) + 1;
  3252. model.makeValue("/root/send/signdata/pid", sPid);
  3253. model.makeValue("/root/send/signdata/orddd", sIndd);
  3254. model.makeValue("/root/send/signdata/signno", "" );
  3255. model.makeValue("/root/send/signdata/cretno", sCretNo);
  3256. model.makeValue("/root/send/signdata/recdd", getCurrentDate());
  3257. model.makeValue("/root/send/signdata/rectm", getCurrentTime());
  3258. model.makeValue("/root/send/signdata/recsaveflag", "Y");
  3259. model.makeValue("/root/send/signdata/signflag", "02");
  3260. model.makeValue("/root/send/signdata/signgenrflag", sIOFlag);
  3261. model.makeValue("/root/send/signdata/formcd", "0000002443");
  3262. model.makeValue("/root/send/signdata/orddeptcd", model.getValue("/root/main/paminfo/pamlist/orddeptcd"));
  3263. model.makeValue("/root/send/signdata/orddrid", model.getValue("/root/main/paminfo/pamlist/medispclid"));
  3264. model.makeValue("/root/send/signdata/carerecseqno", sCareRecSeqNo);
  3265. model.makeValue("/root/send/signdata/itemseqno", sItemSeqNO);
  3266. model.makeValue("/root/send/signdata/recflag", sRecFlag);
  3267. model.makeValue("/root/send/signdata/lnkrecdt", sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00");
  3268. model.makeValue("/root/send/signdata/dispyn", "N");
  3269. //alert( Sign.signedInfos[1]);
  3270. //alert( Sign.signedInfos[2]);
  3271. //alert( Sign.signedInfos[3]);
  3272. //alert( Sign.signedInfos[4]);
  3273. //alert( Sign.signedInfos[5]);
  3274. // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  3275. // ▶ 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  3276. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
  3277. //
  3278. // ▶ 공인인증 처리후 데이터
  3279. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  3280. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.09 Ahn)
  3281. if(eERFLAG == "Y"){
  3282. fgetSelectPid(cmb_erpat);
  3283. }else{
  3284. //-------(20110228) 경북대
  3285. //alert("0");
  3286. fgetSelectPid(cmb_mypatlist);
  3287. //alert("1");
  3288. //-------(20110228) 경북대
  3289. }
  3290. }else{
  3291. return false;
  3292. }
  3293. //**********************************************************************************************************************
  3294. model.makeValue("/root/send/clincobsreclist",sSaveDataHeader+sSaveData);
  3295. model.removenodeSet("/root/main/clincobsrecinfo/hoursclincobsrecinfo");
  3296. //submit("TXMNR00901", false); //2008-07-09
  3297. submit("TXMNR10101", false); //2008-07-09
  3298. model.removenodeSet("/root/certtemp");
  3299. model.removenodeSet("/root/certattrtemp");
  3300. fMakeViewData();
  3301. model.removenodeSet("/root/send");
  3302. model.removenodeSet("/root/temp/clincobsrecinfo/rtnsigndata");
  3303. model.removenodeSet("/root/temp/SignData");
  3304. //model.refresh();
  3305. // 응급실 여부에 따라 다음 내환자 동작 제어 (2011.03.08 Ahn)
  3306. if(eERFLAG == "Y"){
  3307. fGetCareComPatList(cmb_wardlist.value, cmb_roomlist.value, cmb_zone.value, eRECFLAG);
  3308. fNextSelectErPat(cmb_erpat);
  3309. cmb_erpat.refresh();
  3310. }else{
  3311. //-------(20110228) 경북대
  3312. //alert("3");
  3313. //내환자 조회-간호일지용
  3314. //debugger;
  3315. if (gcurrentpid != "") {
  3316. fGetSettingPatientList_type2(); //--테스트완료 , XRW를 변경하면됨
  3317. //alert("4");
  3318. var posi = fgetSelectPidNext();
  3319. //alert("5/"+ posi);
  3320. fsetSelectPidNext(cmb_mypatlist,posi);
  3321. //alert("6");
  3322. cmb_mypatlist.refresh();
  3323. }
  3324. //-------(20110228) 경북대
  3325. }
  3326. break;
  3327. /*
  3328. case "4days" :
  3329. model.makeValue("/root/send/todt",sHeader[1][16]+sHeader[3][16]+sHeader[4][16]+"00");
  3330. for(var i=1;i<= 16; i++){
  3331. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00"+",";
  3332. }
  3333. model.makeValue("/root/send/strtime", sStrTime);
  3334. model.makeValue("/root/send/recflag", "4days");
  3335. sRowCnt = grd_4daysclincobsreclist.rows - grd_4daysclincobsreclist.fixedrows;
  3336. for(var iRow = 1; iRow<=sRowCnt; iRow++){
  3337. sItemCD = model.getValue(xDaysClincObsRecList+"["+iRow+"]/itemcd");
  3338. sItemSeqNO = model.getValue(xDaysClincObsRecList+"["+iRow+"]/itemseqno");
  3339. sRecFlag = model.getValue(xDaysClincObsRecList+"["+iRow+"]/recflag");
  3340. sRecCharFlag = model.getValue(xDaysClincObsRecList+"["+iRow+"]/reccharflag");
  3341. sCareRecSeqNo = model.getValue(xDaysClincObsRecList+"["+iRow+"]/carerecseqno");
  3342. if(sRecCharFlag == "C" || sRecCharFlag == "") continue;
  3343. for(var iCol=1; iCol<= 16; iCol++){
  3344. sRecRslt_BK = model.getValue(xClincObsRecListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+sItemSeqNO+"' and recflag='"+sRecFlag+"']/recrslt"+iCol);
  3345. sRecRslt = model.getValue(xDaysClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  3346. sStatus = "";
  3347. if(sRecRslt_BK == "" && sRecRslt != ""){
  3348. sStatus = "I";
  3349. }else if(sRecRslt_BK != "" && sRecRslt == ""){
  3350. //sStatus = "D";
  3351. sStatus = "U";
  3352. }else if(sRecRslt_BK != "" && sRecRslt_BK != sRecRslt){
  3353. sStatus = "U";
  3354. }
  3355. if(sStatus == "") continue;
  3356. var sRsltNodeCnt = eval(getNodesetCount(xResultPath)) + 1;
  3357. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3358. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/recdt" , sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00" );
  3359. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/attrcd" , model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") );
  3360. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3361. sCertKey = model.getValue(xRecUserListPath+"[itemcd='"+sItemCD+"' and carerecseqno='"+ sCareRecSeqNo
  3362. +"' and recflag ='"+sRecFlag+"' and recdt = '"+sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00']/certkey");
  3363. sSaveData += sStatus +"▦"
  3364. + sPid +"▦"
  3365. + sIndd +"▦"
  3366. + sCretNo +"▦"
  3367. + sWardCD +"▦"
  3368. + sRoomCD +"▦"
  3369. + sInstcd +"▦"
  3370. + sIOFlag +"▦"
  3371. + sItemCD +"▦"
  3372. + sItemSeqNO +"▦"
  3373. + sRecFlag +"▦"
  3374. + sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00▦"
  3375. + sRecRslt +"▦"
  3376. + sCertKey +"▦"
  3377. + sCareRecSeqNo +"▩";
  3378. }
  3379. }
  3380. //**********************************************************************************************************************
  3381. // 인증 구현 부분 4일 화면
  3382. //**********************************************************************************************************************
  3383. if(Sign.signprocess() == true ){
  3384. //var sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  3385. model.makeValue("/root/send/signdata/pid", sPid);
  3386. model.makeValue("/root/send/signdata/orddd", sIndd);
  3387. model.makeValue("/root/send/signdata/signno", "" );
  3388. model.makeValue("/root/send/signdata/cretno", sCretNo);
  3389. model.makeValue("/root/send/signdata/recdd", getCurrentDate());
  3390. model.makeValue("/root/send/signdata/rectm", getCurrentTime());
  3391. model.makeValue("/root/send/signdata/recsaveflag", "Y");
  3392. model.makeValue("/root/send/signdata/signflag", "02");
  3393. model.makeValue("/root/send/signdata/signgenrflag", sIOFlag);
  3394. model.makeValue("/root/send/signdata/formcd", "0000002443");
  3395. model.makeValue("/root/send/signdata/orddeptcd", model.getValue("/root/main/paminfo/pamlist/orddeptcd"));
  3396. model.makeValue("/root/send/signdata/orddrid", model.getValue("/root/main/paminfo/pamlist/medispclid"));
  3397. model.makeValue("/root/send/signdata/carerecseqno", sCareRecSeqNo);
  3398. model.makeValue("/root/send/signdata/itemseqno", sItemSeqNO);
  3399. model.makeValue("/root/send/signdata/recflag", sRecFlag);
  3400. model.makeValue("/root/send/signdata/lnkrecdt", sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00");
  3401. model.makeValue("/root/send/signdata/dispyn", "N");
  3402. //alert( Sign.signedInfos[1]);
  3403. //alert( Sign.signedInfos[2]);
  3404. //alert( Sign.signedInfos[3]);
  3405. //alert( Sign.signedInfos[4]);
  3406. //alert( Sign.signedInfos[5]);
  3407. // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  3408. // ▶ 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  3409. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
  3410. //
  3411. // ▶ 공인인증 처리후 데이터
  3412. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  3413. }else{
  3414. return false;
  3415. }
  3416. //**********************************************************************************************************************
  3417. model.makeValue("/root/send/clincobsreclist",sSaveDataHeader+sSaveData);
  3418. submit("TXMNR00902", false); //2008-07-09
  3419. break;
  3420. case "formerday" :
  3421. model.makeValue("/root/send/todt",sHeader[1][24]+sHeader[3][24]+sHeader[4][24]+"00");
  3422. model.makeValue("/root/send/recflag", "formerday");
  3423. for(var i=1; i<=14; i++){
  3424. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00"+",";
  3425. }
  3426. model.makeValue("/root/send/strtime", sStrTime);
  3427. sRowCnt = grd_stndclincobsreclist.rows - grd_stndclincobsreclist.fixedrows;
  3428. for(var iRow = 1; iRow<=sRowCnt; iRow++){
  3429. sItemCD = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/itemcd");
  3430. sItemSeqNO = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/itemseqno");
  3431. sRecFlag = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recflag");
  3432. sRecCharFlag = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/reccharflag");
  3433. sCareRecSeqNo = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/carerecseqno");
  3434. if(sRecCharFlag == "C" || sRecCharFlag == "") continue;
  3435. for(var iCol=1; iCol<= 14; iCol++){
  3436. sRecRslt_BK = model.getValue(xClincObsRecListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+sItemSeqNO+"' and recflag='"+sRecFlag+"']/recrslt"+iCol);
  3437. sRecRslt = model.getValue(xStnddayClincObsRecListPath+"["+iRow+"]/recrslt"+iCol);
  3438. sStatus = "";
  3439. if(sRecRslt_BK == "" && sRecRslt != ""){
  3440. sStatus = "I";
  3441. }else if(sRecRslt_BK != "" && sRecRslt == ""){
  3442. sStatus = "D";
  3443. }else if(sRecRslt_BK != "" && sRecRslt_BK != sRecRslt){
  3444. sStatus = "U";
  3445. }
  3446. if(sStatus == "") continue;
  3447. var sRsltNodeCnt = eval(getNodesetCount(xResultPath)) + 1;
  3448. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3449. model.makeValue(xResultPath+"["+sRsltNodeCnt+"]/recdt" , sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00" );
  3450. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/attrcd" , model.getValue(xHoursClincObsRecList+"["+iRow+"]/attrcd") );
  3451. model.makeValue(xResultAttrPath+"["+sRsltNodeCnt+"]/reclist" , sRecRslt );
  3452. sCertKey = model.getValue(xRecUserListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+ sItemSeqNO
  3453. +"' and recflag ='"+sRecFlag+"' and recdt = '"+sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00']/certkey");
  3454. sSaveData += sStatus +"▦"
  3455. + sPid +"▦"
  3456. + sIndd +"▦"
  3457. + sCretNo +"▦"
  3458. + sWardCD +"▦"
  3459. + sRoomCD +"▦"
  3460. + sInstcd +"▦"
  3461. + sIOFlag +"▦"
  3462. + sItemCD +"▦"
  3463. + sItemSeqNO +"▦"
  3464. + sRecFlag +"▦"
  3465. + sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00▦"
  3466. + sRecRslt +"▦"
  3467. + sCertKey +"▦"
  3468. + sCareRecSeqNo +"▩";
  3469. }
  3470. }
  3471. //**********************************************************************************************************************
  3472. // 인증 구현 부분 전일 조회 화면
  3473. //**********************************************************************************************************************
  3474. if(Sign.signprocess() == true ){
  3475. //var sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  3476. model.makeValue("/root/send/signdata/pid" , sPid);
  3477. model.makeValue("/root/send/signdata/orddd" , sIndd);
  3478. model.makeValue("/root/send/signdata/signno" , "" );
  3479. model.makeValue("/root/send/signdata/cretno" , sCretNo);
  3480. model.makeValue("/root/send/signdata/recdd" , getCurrentDate());
  3481. model.makeValue("/root/send/signdata/rectm" , getCurrentTime());
  3482. model.makeValue("/root/send/signdata/recsaveflag" , "Y");
  3483. model.makeValue("/root/send/signdata/signflag" , "02");
  3484. model.makeValue("/root/send/signdata/signgenrflag" , sIOFlag);
  3485. model.makeValue("/root/send/signdata/formcd" , "0000002443");
  3486. model.makeValue("/root/send/signdata/orddeptcd" , model.getValue("/root/main/paminfo/pamlist/orddeptcd"));
  3487. model.makeValue("/root/send/signdata/orddrid" , model.getValue("/root/main/paminfo/pamlist/medispclid"));
  3488. model.makeValue("/root/send/signdata/carerecseqno" , sCareRecSeqNo);
  3489. model.makeValue("/root/send/signdata/itemseqno" , sItemSeqNO);
  3490. model.makeValue("/root/send/signdata/recflag" , sRecFlag);
  3491. model.makeValue("/root/send/signdata/lnkrecdt" , sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00");
  3492. model.makeValue("/root/send/signdata/dispyn" , "N");
  3493. //alert( Sign.signedInfos[1]);
  3494. //alert( Sign.signedInfos[2]);
  3495. //alert( Sign.signedInfos[3]);
  3496. //alert( Sign.signedInfos[4]);
  3497. //alert( Sign.signedInfos[5]);
  3498. // ▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  3499. // ▶ 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  3500. model.makeValue("/root/send/signdata/signbfcnts", Sign.signedInfos[1]);
  3501. //
  3502. // ▶ 공인인증 처리후 데이터
  3503. model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  3504. }else{
  3505. return false;
  3506. }
  3507. //**********************************************************************************************************************
  3508. model.makeValue("/root/send/clincobsreclist",sSaveDataHeader+sSaveData);
  3509. submit("TXMNR00903", false); //2008-07-09
  3510. model.setValue(sCondPath+"/vwctrl_formerday","stnd");
  3511. break;
  3512. */
  3513. }
  3514. fSettingClincObsRec(pRecFlag);
  3515. }
  3516. /* -----(20110228) 경북대 ------------------------ */
  3517. // 현재 위치 인지하기
  3518. function fgetSelectPid(sobj){
  3519. //현재위치찾기
  3520. //alert("sobj.value:" + sobj.value);
  3521. if (sobj.value != "") {
  3522. gcurrentpid = sobj.value;
  3523. } else {
  3524. gcurrentpid = "";
  3525. }
  3526. //alert("gcurrentpid:" + gcurrentpid);
  3527. }
  3528. // 이전 저장위치이전 다음으로 조회시키기
  3529. function fgetSelectPidNext(){
  3530. //var sPath = "/root/temp/mypatsettinginfo/settingpatient/settingpatientlist"
  3531. var tempPid = "";
  3532. var sposition = 0;
  3533. //alert("gcurrentpid:" + gcurrentpid + "/" + getNodesetCount(gpidPath));
  3534. if ( gcurrentpid != "") {
  3535. for(i = 1; i <= getNodesetCount(gpidPath); i++ ) {
  3536. tempPid = model.getValue(gpidPath + "["+ i +"]/pid");
  3537. //alert(gcurrentpid + "/" + tempPid);
  3538. //gcurrentpid 전역변수
  3539. if (gcurrentpid == tempPid) {
  3540. sposition = i;
  3541. //alert("pid찾음");
  3542. i = getNodesetCount(gpidPath) + 1;
  3543. }
  3544. }
  3545. }
  3546. return sposition;
  3547. }
  3548. // 재설정하기
  3549. function fsetSelectPidNext(sobj,sposition){
  3550. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  3551. // 중환자실 환자인 경우 저장 후 현재 환자 재선택 (2011.03.25 Ahn)
  3552. if(fIsICUPatient(sWardCD)){
  3553. if(nextyn == "Y") {
  3554. sobj.select(sposition);
  3555. } else {
  3556. sobj.select(parseInt(sposition)-1);
  3557. }
  3558. //sobj.select(parseInt(sposition)-1);
  3559. }else{
  3560. if ( getNodesetCount(gpidPath) > sposition ) {
  3561. if(nextyn == "Y") {
  3562. sobj.select(sposition);
  3563. } else {
  3564. sobj.select(parseInt(sposition)-1);
  3565. }
  3566. //alert("1");
  3567. }else {
  3568. //콤보믄 0부터시작
  3569. //instance는 1부터시작
  3570. if(nextyn == "Y") {
  3571. sobj.select(0);
  3572. } else {
  3573. sobj.select(parseInt(sposition)-1);
  3574. }
  3575. //alert("2");
  3576. }
  3577. }
  3578. }
  3579. /* -----(20110228) 경북대 ------------------------ */
  3580. /**
  3581. * @group :
  3582. * @ver : 2009.12.15
  3583. * @by : 양천덕
  3584. * @---------------------------------------------------
  3585. * @type : function
  3586. * @access : public
  3587. * @desc : FlowSheet 기록 Setting
  3588. * @param :
  3589. * @return :
  3590. * @---------------------------------------------------
  3591. */
  3592. function fSettingClincObsRec(pRecFlag){
  3593. var sCurDT = getCurrentDate() + getCurrentTime();
  3594. var sRecDT = ""; // 기록일시
  3595. var sRecFromDT = ""; // 기록시작일시
  3596. var sRecToDT = ""; // 기록종료일시
  3597. var sAttrCD = ""; // 속성코드
  3598. //var sUserID = getUserId();
  3599. var sRecRslt = "";
  3600. var sAnptTmSpec = "";
  3601. var sSupCD = "";
  3602. var sRecFlag = ""; // 기록구분
  3603. var sTotalSum = new Array();
  3604. var sSubTotalSum = new Array();
  3605. var sRunTotalSum = new Array();
  3606. var sRunTotalValue = "";
  3607. var sTotalSumRow = 0;
  3608. var sSubTotalSumRow = 0;
  3609. var sRunTotalSumRow = 0;
  3610. var sAttrCD = "";
  3611. var sAttrValue = "";
  3612. var sChkTotal = "N";
  3613. var sChkSubTotal = "N";
  3614. var sChkRunTotal = "N";
  3615. var sTotalNm = "";
  3616. var sStartOutput = "N";
  3617. var sRecAddRow = "";
  3618. var sReChartFlag = "";
  3619. var sFixRow = 0;
  3620. var sItemColRef = "";
  3621. var sChkFluidRow = 0;
  3622. var sChkDrugRow = 0;
  3623. var sChkTotalIdx = "";
  3624. var sChkSubTotalIdx = "";
  3625. var sChkRunTotalIdx = "";
  3626. var sRecFluidUnit = "";
  3627. sNowDate = getCurrentDate() + getCurrentTime();
  3628. switch(pRecFlag){
  3629. case "24hours" :
  3630. sCurDT = fCalcStartDate(sCurDT, eval(model.getValue(sCondPath+"/timeflag")));
  3631. grd_24hoursclincobsreclist.rebuildStyle();
  3632. grd_24hoursclincobsreclist.backcoloralternate = "transparent";
  3633. sRecCnt = getNodesetCnt(model, xClincObsRecListPath);
  3634. sItemColRef = grd_24hoursclincobsreclist.colRef("itemnm");
  3635. sFixRow = grd_24hoursclincobsreclist.fixedrows - 1 ;
  3636. for(var i=1; i<= 24; i++){
  3637. sTotalSum[i] = null;
  3638. sSubTotalSum[i] = null;
  3639. sRunTotalSum[i] = null;
  3640. }
  3641. for(var iRow=1; iRow <= sRecCnt; iRow++){
  3642. //그리드 합계 Row 설정 처리
  3643. var addRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
  3644. if( sTotalNm == "" ) sTotalNm = model.getValue( xClincObsRecListPath+"["+iRow+"]/totalnm" );
  3645. sTotalYn = model.getValue(xClincObsRecListPath+"["+iRow+"]/totalyn" );
  3646. sSubTotalYn = model.getValue(xClincObsRecListPath+"["+iRow+"]/subtotalyn" );
  3647. sSubTotalNm = model.getValue(xClincObsRecListPath+"["+iRow+"]/subtotalnm" );
  3648. sRunTotalYn = model.getValue(xClincObsRecListPath+"["+iRow+"]/runtotalyn" );
  3649. sRunTotalNm = model.getValue(xClincObsRecListPath+"["+iRow+"]/runtotalnm" );
  3650. sRecFlag = model.getValue(xClincObsRecListPath+"["+iRow+"]/recflag" );
  3651. sLnkBizCd = model.getValue(xClincObsRecListPath+"["+iRow+"]/lnkbizcd" );
  3652. sSupCD = model.getValue(xClincObsRecListPath+"["+iRow+"]/supcd" );
  3653. sStyle = model.getValue(xClincObsRecListPath+"["+iRow+"]/style" );
  3654. sItemNm = model.getValue(xClincObsRecListPath+"["+iRow+"]/itemnm" );
  3655. sCareRecSeqNo = model.getValue(xClincObsRecListPath+"["+iRow+"]/carerecseqno");
  3656. sRecFluidUnit = model.getValue(xClincObsRecListPath+"["+iRow+"]/recfluidunit");
  3657. //현재 행 다음의 기록구분을 조회
  3658. if(iRow == sRecCnt){
  3659. sNextRecFlag = "Last";
  3660. sNextSetnm = "";
  3661. sNextSupCD = "";
  3662. sNextSubTotalYn = "N";
  3663. sNextSubTotalNm = "";
  3664. sNextRunTotalYn = "N";
  3665. sNextRunTotalNm = "";
  3666. }else{
  3667. sNextRecFlag = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/recflag" );
  3668. sNextSetnm = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/totalnm" );
  3669. sNextSupCD = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/supcd" );
  3670. sNextSubTotalYn = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/subtotalyn" );
  3671. sNextSubTotalNm = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/subtotalnm" );
  3672. sNextRunTotalYn = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/runtotalyn" );
  3673. sNextRunTotalNm = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/runtotalnm" );
  3674. }
  3675. //전체합계 시작 여부
  3676. if(sChkTotal == "N" && sTotalYn == "Y"){
  3677. sChkTotal = sTotalYn;
  3678. }
  3679. //부분합계 시작 여부
  3680. if(sChkSubTotal == "N" && sSubTotalYn == "Y"){
  3681. sChkSubTotal = sSubTotalYn;
  3682. }
  3683. //누적합계 시작 여부
  3684. if(sChkRunTotal == "N" && sRunTotalYn == "Y"){
  3685. sChkRunTotal = sRunTotalYn;
  3686. }
  3687. //약,주사 행 추가 부분
  3688. if( (sLnkBizCd =="02" || sLnkBizCd =="12") && sStyle != "01" && sChkDrugRow == 0 ){
  3689. sChkDrugRow = addRow;
  3690. fMakeGridNode(pRecFlag, addRow, "약/주사", "B", 2, sLnkBizCd, "-", "", "Y", "");
  3691. addRow = addRow + 1;
  3692. }
  3693. //Fluid 행 추가 부분
  3694. if( (sLnkBizCd =="02" || sLnkBizCd =="12") && sStyle == "01" && sChkFluidRow == 0 ){
  3695. sChkFluidRow = addRow;
  3696. fMakeGridNode(pRecFlag, addRow, "지속적약물", "B", 2, sLnkBizCd, "-", "", "Y", "");
  3697. addRow = addRow + 1;
  3698. }
  3699. model.makeNode(xHoursClincObsRecList+"["+addRow+"]");
  3700. model.copyNode(xHoursClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  3701. //Graph 행 추가 부분
  3702. //var ChkFluidList = model.getValue(xFluidPath+"[carerecseqno ='" +sCareRecSeqNo+ "']/carerecseqno" );
  3703. //if( (sLnkBizCd =="02" || sLnkBizCd =="12") && sStyle == "01" && ChkFluidList != ""){
  3704. if( sStyle == "01" ){
  3705. if( sLnkBizCd =="02" || sLnkBizCd =="12" ){
  3706. var sRealFluidRow = addRow;
  3707. var sGraphRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
  3708. var sGraphNm = "Graph";
  3709. if( !isNull(sRecFluidUnit) ) sGraphNm = sRecFluidUnit;
  3710. fMakeGridNode(pRecFlag, sGraphRow, sGraphNm, "B", 4, sLnkBizCd, sStyle, "", "Y", sCareRecSeqNo);
  3711. fSettingFluidInfo("F", "Init", sRealFluidRow, sGraphRow, sCareRecSeqNo);
  3712. }else{
  3713. var sRealFluidRow = addRow;
  3714. fSettingFluidInfo("I", "Init", sRealFluidRow, sRealFluidRow, sCareRecSeqNo);
  3715. }
  3716. }
  3717. //부분합계 행 추가 부분
  3718. if( sSubTotaluseYn == "Y" && sChkSubTotal == "Y" ){
  3719. if( sChkSubTotalIdx != "" ) sChkSubTotalIdx += ",";
  3720. sChkSubTotalIdx += "/"+sCareRecSeqNo+"/";
  3721. if(( sRecFlag == "A" && ( sSupCD != sNextSupCD || sSubTotalNm != sNextSubTotalNm || sRecFlag != sNextRecFlag )) ||
  3722. ( sRecFlag == "B" && ( sSupCD != sNextSupCD || sSubTotalNm != sNextSubTotalNm || sRecFlag != sNextRecFlag )) ||
  3723. ( sRecFlag == "C" && ( sSupCD != sNextSupCD || sSubTotalNm != sNextSubTotalNm || sRecFlag != sNextRecFlag )) ){
  3724. var addSubTotalRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
  3725. fMakeGridNode(pRecFlag, addSubTotalRow, sSubTotalNm, "S", 2, "", "-", "#FFCC99", "Y", "", sChkSubTotalIdx);
  3726. sChkSubTotalIdx = "";
  3727. sChkSubTotal = "N";
  3728. sSubTotalNm = "";
  3729. }
  3730. }
  3731. //누적합계 행 추가 부분
  3732. if( sRunTotaluseYn == "Y" && sChkRunTotal == "Y" ){
  3733. if( sChkRunTotalIdx != "" ) sChkRunTotalIdx += ",";
  3734. sChkRunTotalIdx += "/"+sCareRecSeqNo+"/";
  3735. if(( sRecFlag == "A" && ( sSupCD != sNextSupCD || sRunTotalNm != sNextRunTotalNm || sRecFlag != sNextRecFlag )) ||
  3736. ( sRecFlag == "B" && ( sSupCD != sNextSupCD || sRunTotalNm != sNextRunTotalNm || sRecFlag != sNextRecFlag )) ||
  3737. ( sRecFlag == "C" && ( sSupCD != sNextSupCD || sRunTotalNm != sNextRunTotalNm || sRecFlag != sNextRecFlag )) ){
  3738. var addRunTotalRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
  3739. fMakeGridNode(pRecFlag, addRunTotalRow, sRunTotalNm, "R", 2, "", "-", "#FFFFCC", "Y", "", sChkRunTotalIdx);
  3740. sChkRunTotalIdx = "";
  3741. sChkRunTotal = "N";
  3742. sRunTotalNm = "";
  3743. }
  3744. }
  3745. //분류별 전체 합계 행 추가 부분(Total Intake, Total Output, GCS총점)
  3746. if( sTotaluseYn == "Y" && sChkTotal == "Y" ){
  3747. if( sChkTotalIdx != "" ) sChkTotalIdx += ",";
  3748. sChkTotalIdx += "/"+sCareRecSeqNo+"/";
  3749. if( ( sRecFlag == "A" && ( sSupCD != sNextSupCD || sTotalNm != sNextSetnm || sRecFlag != sNextRecFlag ) ) ||
  3750. ( sRecFlag == "B" && ( sSupCD != sNextSupCD || sRecFlag != sNextRecFlag ) ) ||
  3751. ( sRecFlag == "C" && ( sSupCD != sNextSupCD || sRecFlag != sNextRecFlag ) ) ) {
  3752. var addIntakeRow = eval(getNodesetCount(xHoursClincObsRecList)) + 1;
  3753. sSumRowColor = "#dbb7ff"; //연보라색
  3754. if( sRecFlag == "B" || sRecFlag == "C" ) sSumRowColor = "#FF7CFD"; //진분홍색
  3755. fMakeGridNode(pRecFlag, addIntakeRow, sTotalNm, "T", 2, "", "-", sSumRowColor, "Y", "", sChkTotalIdx);
  3756. sChkTotalIdx = "";
  3757. sChkTotal = "N";
  3758. sTotalNm = "";
  3759. }
  3760. }
  3761. // Intake/OutTake 변경시 초기화
  3762. if(sRecFlag != sNextRecFlag){
  3763. //sChkTotal = "N";
  3764. sStartOutput = "N";
  3765. }
  3766. }
  3767. grd_24hoursclincobsreclist.refresh();
  3768. grd_24hoursclincobsreclist.allStyle("data", "font-size") = sDataFontSize; //Grid 글씨 크기
  3769. sCurrentTMColInfo = 0;
  3770. sDutyTMColInfo1 = 0;
  3771. sDutyTMColInfo2 = 0;
  3772. sDutyTMColInfo3 = 0;
  3773. //그리드 스타일 설정
  3774. for(var iRow = grd_24hoursclincobsreclist.fixedRows ; iRow < grd_24hoursclincobsreclist.rows ; iRow++){
  3775. sCareRecSeqno = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("carerecseqno") );
  3776. sRecFromDT = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recfromdt") );
  3777. sRecToDT = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("rectodt") );
  3778. sDepth = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("depth") );
  3779. sAttrCD = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("attrcd") );
  3780. sReChartFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("reccharflag") );
  3781. sLnkBizCd = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("lnkbizcd") );
  3782. sTotalYn = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("totalyn") );
  3783. sSubTotalYn = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("subtotalyn") );
  3784. sRunTotalYn = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("runtotalyn") );
  3785. sRecFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recflag") );
  3786. sFontColor = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("color") );
  3787. sStyleValue = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("style") );
  3788. sFluidStatInfo = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("fluidstat") );
  3789. sReadOnlyYn = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("readonlyyn") );
  3790. //현재 행 다음의 기록구분을 조회
  3791. if(iRow == grd_24hoursclincobsreclist.rows){
  3792. sNextRecFlag = "Last";
  3793. }else{
  3794. sNextRecFlag = grd_24hoursclincobsreclist.valueMatrix((iRow+1), grd_24hoursclincobsreclist.colRef("recflag"));
  3795. }
  3796. if(sReadOnlyYn == "Y" || (sStyleValue == "01" && (sLnkBizCd == "02" || sLnkBizCd == "12"))) grd_24hoursclincobsreclist.isReadOnly(iRow,grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1) = true;
  3797. // 분류의 경우
  3798. if(eval(sDepth) == 1){
  3799. grd_24hoursclincobsreclist.mergeByFree(iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1);
  3800. grd_24hoursclincobsreclist.rowStyle(iRow,"data","background-color") = "#d0e7ff"; //하늘색
  3801. grd_24hoursclincobsreclist.rowStyle(iRow,"data","font-weight") = "bold";
  3802. }else{ //분류가 아닐 경우
  3803. //if(sRecFlag == "B") grd_24hoursclincobsreclist.cellStyle("color", iRow, sItemColRef, iRow, sItemColRef) = "#ff00ff";
  3804. //if(sRecFlag == "C") grd_24hoursclincobsreclist.cellStyle("color", iRow, sItemColRef, iRow, sItemColRef) = "#0000ff";
  3805. // SubTotal 항목 표시
  3806. if(sTotalYn == "Y"){
  3807. grd_24hoursclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb"; //연노란색
  3808. }
  3809. //20090209 khj hierarchies 자동세팅관련 임상관찰기록에서 작성대상이 아닌 상위아이템행은 읽기전용으로 세팅
  3810. if(sTotalYn == "H"){
  3811. grd_24hoursclincobsreclist.mergeByFree(iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1);
  3812. grd_24hoursclincobsreclist.isReadOnly(iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1) = true;
  3813. }
  3814. //연계업무항목 설정 추가
  3815. if( sLnkBizCd == "01" || sLnkBizCd == "04" || sLnkBizCd == "05" ){ //경구기록, 혈당기록, CAPD기록
  3816. grd_24hoursclincobsreclist.cellStyle("background-color", iRow, sItemColRef+1, iRow, grd_24hoursclincobsreclist.cols-1)= "#EAEAEA"; //추가, 회색
  3817. grd_24hoursclincobsreclist.cellStyle("color", iRow, sItemColRef+1, iRow, grd_24hoursclincobsreclist.cols-1) = "#FF0000"; //빨간색
  3818. }else if( sLnkBizCd == "02" || sLnkBizCd == "12" ){ //투약기록, 수액확장
  3819. if( sDepth == 2 ){
  3820. grd_24hoursclincobsreclist.mergeByFree(iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1);
  3821. grd_24hoursclincobsreclist.cellStyle("background-color", iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1)= "#ffffff"; //추가, 흰색
  3822. }
  3823. }else if( sLnkBizCd == "03" ){ //수혈간호기록
  3824. if( sDepth == 2 ){
  3825. grd_24hoursclincobsreclist.mergeByFree(iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1);
  3826. grd_24hoursclincobsreclist.cellStyle("background-color", iRow, grd_24hoursclincobsreclist.fixedCols, iRow, grd_24hoursclincobsreclist.cols-1)= "#ffffff"; //추가
  3827. }else{
  3828. grd_24hoursclincobsreclist.cellStyle("background-color", iRow, sItemColRef+1, iRow, grd_24hoursclincobsreclist.cols-1)= "#EAEAEA"; //추가
  3829. grd_24hoursclincobsreclist.cellStyle("color", iRow, sItemColRef+1, iRow, grd_24hoursclincobsreclist.cols-1) = "#FF0000";
  3830. }
  3831. }
  3832. // Total Intake, Total Output 색 및 글꼴 변경
  3833. if( sRecFlag == "T" || sRecFlag == "R" || sRecFlag == "S" ){
  3834. grd_24hoursclincobsreclist.rowStyle(iRow,"data","background-color") = sFontColor;
  3835. grd_24hoursclincobsreclist.cellStyle("font-weight", iRow, sItemColRef, iRow, sItemColRef) = "bold";
  3836. if(sRecFlag == "T") sTotalSumRow = iRow;
  3837. if(sRecFlag == "S") sSubTotalSumRow = iRow;
  3838. if(sRecFlag == "R") sRunTotalSumRow = iRow;
  3839. }else{
  3840. // 색상지정 항목 색상 변경 및 글자 강조
  3841. if( sFontColor != "" ){
  3842. grd_24hoursclincobsreclist.cellStyle("color", iRow, sItemColRef, iRow, grd_24hoursclincobsreclist.cols-1) = sFontColor;
  3843. grd_24hoursclincobsreclist.cellStyle("font-weight", iRow, sItemColRef, iRow, sItemColRef) = "bold";
  3844. }
  3845. }
  3846. //컬럼별 설정 부분
  3847. for(var iCol=1; iCol<= 24; iCol++){
  3848. sRecRslt = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recrslt"+iCol));
  3849. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  3850. sFluidRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00";
  3851. //Total Intake, Total Output 제외 대상 색 및 글꼴 변경
  3852. if(sRecFlag != "T"){
  3853. var sChkRecYn = model.getValue(xIntervalRecYNListPath+"[carerecseqno ='"+sCareRecSeqno+"']/recyn"+iCol);
  3854. if(sChkRecYn == "Y" ){ //인증저장
  3855. grd_24hoursclincobsreclist.cellStyle("background-image",iRow,iCol) = "../../../com/commonweb/images/input_s_essential.gif"; //노란별*
  3856. grd_24hoursclincobsreclist.cellStyle("background-position",iRow,iCol) = "top right";
  3857. }else if(sChkRecYn == "Z"){ //임시저장
  3858. grd_24hoursclincobsreclist.cellStyle("background-image",iRow,iCol) = "../../../com/commonweb/images/input_essential.gif"; //파란별*
  3859. grd_24hoursclincobsreclist.cellStyle("background-position",iRow,iCol) = "top right";
  3860. }
  3861. //Grid Graph 설정
  3862. if(sStyleValue == "01" && isSearchString(sFluidStatInfo, sFluidRecDT) == true){
  3863. grd_24hoursclincobsreclist.cellstyle("border-bottom-color",iRow,iCol) = "#0000ff"; //파란색
  3864. grd_24hoursclincobsreclist.cellstyle("border-bottom-width",iRow,iCol) = 2;
  3865. }
  3866. // 기록 가능 일시가 아닌 경우(20090512 김홍점 모든 아이템에 대해서 입실체크 이전의 blocking 해제 김영림 05-12 12:55)
  3867. if(sReadOnlyYn != "Y" && sRecDT > sRecToDT ){
  3868. grd_24hoursclincobsreclist.isReadOnly(iRow,iCol) = true;
  3869. grd_24hoursclincobsreclist.cellStyle("background-color",iRow,iCol,iRow,iCol)= "#ffeeee"; //추가, 연분홍색
  3870. }
  3871. // 속성 매핑 Item에 속성 정보 세팅
  3872. if(sReChartFlag == "A" && sAttrCD != "") {
  3873. if(sRecRslt != ""){
  3874. grd_24hoursclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath1+"[supcd='"+sAttrCD+"']";
  3875. }
  3876. }
  3877. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/recdt").split("^");
  3878. var sHistCertKey = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/certkey").split("^");
  3879. var sSettingRecDT = "";
  3880. var sSettingCertKey = "";
  3881. if(sHistRecDT.length > 0){
  3882. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  3883. if(sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00" == sHistRecDT[histrow]){
  3884. sSettingCertKey = sHistCertKey[histrow];
  3885. }
  3886. }
  3887. if(sSettingCertKey == "" && ( sLnkBizCd == "11" || ( sLnkBizCd == "12" && sStyleValue != "01" ) || sLnkBizCd == "-" || sLnkBizCd == "99" )){ //11:경구확장, 12:수액확장
  3888. grd_24hoursclincobsreclist.cellStyle("font-weight", iRow, iCol) = "bold";
  3889. if(sRecRslt != ""){
  3890. //임시저장 Cell Color
  3891. grd_24hoursclincobsreclist.cellStyle("color",iRow,iCol) = "#0000ff"; //파란색
  3892. }else{
  3893. //미저장 Cell Color
  3894. grd_24hoursclincobsreclist.cellStyle("color",iRow,iCol) = "#ff9900"; //주황색
  3895. }
  3896. }
  3897. }
  3898. //첫번째 Row 정보로 스타일 적용가능한 부분 처리
  3899. if(iRow == grd_24hoursclincobsreclist.fixedRows+1){
  3900. //현재시간 색 표시
  3901. if(sCurrentTMColInfo == 0){
  3902. if(getDateTime(sCurDT,'기본').substr(0,12) <= (sHeader[1][iCol]+ sHeader[3][iCol]+sHeader[4][iCol])){
  3903. if(iCol == 1){
  3904. grd_24hoursclincobsreclist.colstyle(iCol,"all","background-color") = "#ffe1fe";
  3905. sCurrentTMColInfo = iCol;
  3906. }else{
  3907. if(getDateTime(sCurDT,'기본').substr(0,12) > (sHeader[1][iCol-1]+ sHeader[3][iCol-1]+sHeader[4][iCol-1])){
  3908. grd_24hoursclincobsreclist.colstyle(iCol,"all","background-color") = "#ffe1fe"; //연분홍색
  3909. sCurrentTMColInfo = iCol;
  3910. }
  3911. }
  3912. }
  3913. }
  3914. //Duty 기준선 표시 설정
  3915. if( iCol > 0 ){
  3916. if( sHeader[3][iCol]+sHeader[4][iCol]+"00" == sDayStndTm ) sDutyTMColInfo1 = iCol;
  3917. if( sHeader[3][iCol]+sHeader[4][iCol]+"00" == sEvenStndTm ) sDutyTMColInfo2 = iCol;
  3918. if( sHeader[3][iCol]+sHeader[4][iCol]+"00" == sNightStndTm ) sDutyTMColInfo3 = iCol;
  3919. if(sDutyTMColInfo1 == iCol || sDutyTMColInfo2 == iCol || sDutyTMColInfo3 == iCol){
  3920. //Duty 기준선 해당시간 왼쪽으로 셋팅되도록 수정_20110210_SMY
  3921. //grd_24hoursclincobsreclist.colstyle(iCol,"all","border-right-color") = "#ff0000"; //빨간색
  3922. //grd_24hoursclincobsreclist.colstyle(iCol+1,"all","border-left-color") = "#ff0000";
  3923. grd_24hoursclincobsreclist.colstyle(iCol-1,"all","border-right-color") = "#ff0000"; //빨간색
  3924. grd_24hoursclincobsreclist.colstyle(iCol,"all","border-left-color") = "#ff0000";
  3925. }
  3926. }
  3927. }
  3928. }
  3929. //**************************** clear ********************************
  3930. //부분합계 계산 처리
  3931. if( sSubTotalYn == "Y" ){
  3932. sChkSubTotal = "Y";
  3933. if( sLnkBizCd == "12" && sStyleValue == "01" ){
  3934. for( var i = 0 ; i < sFluidSumInfo.length ; i++ ){
  3935. if( sFluidSumInfo[i][0] == sCareRecSeqno ){
  3936. if(sFluidSumInfo[i][iCol] > 0 ) sSubTotalSum[iCol] += eval(sFluidSumInfo[i][iCol]);
  3937. }
  3938. }
  3939. }else{
  3940. if(sRecRslt != ""){
  3941. if(sRecFlag == "A"){
  3942. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  3943. sSubTotalSum[iCol] += eval(sRecRslt);
  3944. }else{
  3945. if( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc")) && fIsNumber(sRecRslt) == true ){
  3946. sSubTotalSum[iCol] += eval(sRecRslt);
  3947. }else{
  3948. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  3949. ? sRecRslt.split(":")
  3950. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  3951. );
  3952. if(sAttrValue[0].getTrim().isNumber()){
  3953. sSubTotalSum[iCol] += eval(sAttrValue[0]);
  3954. }
  3955. }
  3956. }
  3957. }else if (sRecFlag == "B" || sRecFlag == "C"){
  3958. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  3959. sSubTotalSum[iCol] += eval(sRecRslt);
  3960. }else{
  3961. if(fIsNumber(sRecRslt) == true){
  3962. sSubTotalSum[iCol] += eval(sRecRslt);
  3963. }else{
  3964. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  3965. ? sRecRslt.split(":")
  3966. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  3967. );
  3968. if(sAttrValue[0].getTrim().isNumber()){
  3969. sSubTotalSum[iCol] += eval(sAttrValue[0]);
  3970. }
  3971. }
  3972. }
  3973. }
  3974. }
  3975. }
  3976. }
  3977. //누적합계 계산 처리
  3978. if(sRunTotalYn == "Y"){
  3979. sChkRunTotal = "Y";
  3980. if( sLnkBizCd == "12" && sStyleValue == "01" ){
  3981. for( var i = 0 ; i < sFluidSumInfo.length ; i++ ){
  3982. if( sFluidSumInfo[i][0] == sCareRecSeqno ){
  3983. if(sFluidSumInfo[i][iCol] > 0 ) sRunTotalSum[iCol] += eval(sFluidSumInfo[i][iCol]);
  3984. }
  3985. }
  3986. }else{
  3987. if(sRecRslt != ""){
  3988. if(sRecFlag == "A"){
  3989. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  3990. sRunTotalSum[iCol] += eval(sRecRslt);
  3991. }else{
  3992. if( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc")) && fIsNumber(sRecRslt) == true ){
  3993. sRunTotalSum[iCol] += eval(sRecRslt);
  3994. }else{
  3995. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  3996. ? sRecRslt.split(":")
  3997. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  3998. );
  3999. if(sAttrValue[0].getTrim().isNumber()){
  4000. sRunTotalSum[iCol] += eval(sAttrValue[0]);
  4001. }
  4002. }
  4003. }
  4004. }else if (sRecFlag == "B" || sRecFlag == "C"){
  4005. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4006. sRunTotalSum[iCol] += eval(sRecRslt);
  4007. }else{
  4008. if(fIsNumber(sRecRslt) == true){
  4009. sRunTotalSum[iCol] += eval(sRecRslt);
  4010. }else{
  4011. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4012. ? sRecRslt.split(":")
  4013. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4014. );
  4015. if(sAttrValue[0].getTrim().isNumber()){
  4016. sRunTotalSum[iCol] += eval(sAttrValue[0]);
  4017. }
  4018. }
  4019. }
  4020. }
  4021. }
  4022. }
  4023. }
  4024. // Intake/output 합계 계산
  4025. if(sTotalYn == "Y"){
  4026. sChkTotal = "Y";
  4027. if( sLnkBizCd == "12" && sStyleValue == "01" ){
  4028. for( var i = 0 ; i < sFluidSumInfo.length ; i++ ){
  4029. if( sFluidSumInfo[i][0] == sCareRecSeqno ){
  4030. if(sFluidSumInfo[i][iCol] > 0 ) sTotalSum[iCol] += eval(sFluidSumInfo[i][iCol]);
  4031. }
  4032. }
  4033. }else{
  4034. if(sRecRslt != ""){
  4035. if(sRecFlag == "A"){
  4036. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4037. sTotalSum[iCol] += eval(sRecRslt);
  4038. }else{
  4039. if( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc")) && fIsNumber(sRecRslt) == true ){
  4040. sTotalSum[iCol] += eval(sRecRslt);
  4041. }else{
  4042. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4043. ? sRecRslt.split(":")
  4044. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4045. );
  4046. if(sAttrValue[0].getTrim().isNumber()){
  4047. sTotalSum[iCol] += eval(sAttrValue[0]);
  4048. }
  4049. }
  4050. }
  4051. }else if (sRecFlag == "B" || sRecFlag == "C"){
  4052. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4053. sTotalSum[iCol] += eval(sRecRslt);
  4054. }else{
  4055. if(fIsNumber(sRecRslt) == true){
  4056. sTotalSum[iCol] += eval(sRecRslt);
  4057. }else{
  4058. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4059. ? sRecRslt.split(":")
  4060. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4061. );
  4062. if(sAttrValue[0].getTrim().isNumber()){
  4063. sTotalSum[iCol] += eval(sAttrValue[0]);
  4064. }
  4065. }
  4066. }
  4067. }
  4068. }
  4069. }
  4070. }
  4071. // 부분합계 계산목록 Setting
  4072. if( ( sRecFlag == "S" || sRecFlag != sNextRecFlag ) && sChkSubTotal == "Y" && sSubTotalSumRow != "" ){
  4073. if( sSubTotalSum[iCol] != null ){
  4074. grd_24hoursclincobsreclist.valueMatrix(sSubTotalSumRow, iCol) = sSubTotalSum[iCol] ;
  4075. }
  4076. if( iCol == 24 ){
  4077. sChkSubTotal = "C";
  4078. }
  4079. }
  4080. // 누적합계 계산목록 Setting
  4081. if( (sRecFlag == "S" || sRecFlag != sNextRecFlag ) && sChkRunTotal == "Y" && sRunTotalSumRow != "" ){
  4082. if( sDutyTMColInfo1+1 == iCol || sDutyTMColInfo2+1 == iCol || sDutyTMColInfo3+1 == iCol ) sRunTotalValue = "";
  4083. if( sRunTotalSum[iCol] != null ){
  4084. if( sRunTotalValue == "" ){
  4085. sRunTotalValue = sRunTotalSum[iCol];
  4086. }else{
  4087. sRunTotalValue += sRunTotalSum[iCol];
  4088. }
  4089. grd_24hoursclincobsreclist.valueMatrix(sRunTotalSumRow, iCol) = sRunTotalValue ;
  4090. }
  4091. if(iCol == 24){
  4092. sChkRunTotal = "C";
  4093. }
  4094. }
  4095. // 합계 계산목록 Intake/OutTake에 세팅
  4096. if( (sRecFlag == "T" || sRecFlag != sNextRecFlag ) && sChkTotal == "Y" && sTotalSumRow != "" ){
  4097. if( sTotalSum[iCol] != null ){
  4098. grd_24hoursclincobsreclist.valueMatrix(sTotalSumRow, iCol) = sTotalSum[iCol] ;
  4099. }
  4100. if(iCol == 24){
  4101. sChkTotal = "C";
  4102. }
  4103. }
  4104. }
  4105. //부분합계 관련 변수 초기화
  4106. if(sChkSubTotal == "C"){
  4107. for(var i = 1 ; i <25 ; i ++){
  4108. sSubTotalSum[i] = null;
  4109. }
  4110. sSubTotalSumRow = "";
  4111. sChkSubTotal = "N";
  4112. }
  4113. //누적합계 관련 변수 초기화
  4114. if(sChkRunTotal == "C"){
  4115. for(var i = 1 ; i <25 ; i ++){
  4116. sRunTotalSum[i] = null;
  4117. }
  4118. sRunTotalValue = "";
  4119. sRunTotalSumRow = "";
  4120. sChkRunTotal = "N";
  4121. }
  4122. //전체합계 관련 변수 초기화
  4123. if(sChkTotal == "C"){
  4124. for(var i = 1 ; i <25 ; i ++){
  4125. sTotalSum[i] = null;
  4126. }
  4127. sTotalSumRow = "";
  4128. sChkTotal = "N";
  4129. }
  4130. }
  4131. }
  4132. setTree(grd_24hoursclincobsreclist, grd_24hoursclincobsreclist.colRef("depth"), 0, false, 4); //변경
  4133. // 차트표시
  4134. fMakeChart(pRecFlag);
  4135. model.removenodeSet(xIntervalRecYNListPath);
  4136. break;
  4137. /*
  4138. case "4days" :
  4139. //grd_4daysclincobsreclist.refresh();
  4140. //grd_4daysclincobsreclist.initStyle("background-color");
  4141. //grd_4daysclincobsreclist.backcoloralternate = "transparent";
  4142. sRecCnt = getNodesetCnt(model, xClincObsRecListPath);
  4143. sItemColRef = grd_4daysclincobsreclist.colRef("itemnm");
  4144. sFixRow = grd_4daysclincobsreclist.fixedrows - 1 ;
  4145. for(var i=1; i<= 16; i++){
  4146. sTotalSum[i] = null;
  4147. }
  4148. for(var iRow=1; iRow <= sRecCnt; iRow++){
  4149. var addRow = eval(getNodesetCount(xDaysClincObsRecList)) + 1;
  4150. sSetnm = model.getValue(xClincObsRecListPath+"["+iRow+"]/totalnm");
  4151. sTotalYn = model.getValue(xClincObsRecListPath+"["+iRow+"]/totalyn");
  4152. sRecFlag = model.getValue(xClincObsRecListPath+"["+iRow+"]/recflag");
  4153. //현재 행 다음의 기록구분을 조회
  4154. if(iRow == sRecCnt){
  4155. sNextRecFlag = "Last";
  4156. }else{
  4157. sNextRecFlag = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/recflag");
  4158. }
  4159. if(sChkTotal == "N" && sTotalYn == "Y"){
  4160. sChkTotal = sTotalYn;
  4161. sTotalNm = sSetnm;
  4162. }
  4163. if(sChkTotal == "Y"){
  4164. if((sRecFlag == "A" || sRecFlag == "B" || sRecFlag == "C" ) && sRecFlag != sNextRecFlag){
  4165. model.makeNode(xDaysClincObsRecList+"["+addRow+"]");
  4166. model.copyNode(xDaysClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4167. iHoursRecRow = addRow;
  4168. var addIntakeRow = eval(getNodesetCount(xDaysClincObsRecList)) + 1;
  4169. model.makeNode(xDaysClincObsRecList+"["+addIntakeRow+"]");
  4170. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/itemnm", sTotalNm);
  4171. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt1", "");
  4172. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt2", "");
  4173. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt3", "");
  4174. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt4", "");
  4175. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt5", "");
  4176. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt6", "");
  4177. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt7", "");
  4178. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt8", "");
  4179. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt9", "");
  4180. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt10", "");
  4181. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt11", "");
  4182. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt12", "");
  4183. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt13", "");
  4184. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt14", "");
  4185. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt15", "");
  4186. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recrslt16", "");
  4187. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recflag", "T");
  4188. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/attrcd", "");
  4189. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/itemcd", "");
  4190. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/itemseqno", "");
  4191. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/depth", 2);
  4192. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/recfromdt", "");
  4193. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/reccharflag", "");
  4194. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/rectodt", "");
  4195. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/supcd", "");
  4196. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/carerecseqno", "");
  4197. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/leftaxis", "");
  4198. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/graphappyn", "");
  4199. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/totalyn", "");
  4200. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/totalnm", "");
  4201. model.makeValue(xDaysClincObsRecList+"["+addIntakeRow+"]/lnkbizcd", "");
  4202. }else if(sRecFlag == "C" && sStartOutput == "N"){
  4203. sStartOutput = "Y";
  4204. model.makeNode(xDaysClincObsRecList+"["+addRow+"]");
  4205. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/itemnm", sTotalNm);
  4206. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt1", "");
  4207. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt2", "");
  4208. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt3", "");
  4209. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt4", "");
  4210. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt5", "");
  4211. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt6", "");
  4212. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt7", "");
  4213. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt8", "");
  4214. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt9", "");
  4215. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt10", "");
  4216. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt11", "");
  4217. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt12", "");
  4218. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt13", "");
  4219. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt14", "");
  4220. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt15", "");
  4221. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recrslt16", "");
  4222. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recflag", "T");
  4223. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/attrcd", "");
  4224. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/itemcd", "");
  4225. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/itemseqno", "");
  4226. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/depth", 2);
  4227. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/recfromdt", "");
  4228. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/reccharflag", "");
  4229. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/rectodt", "");
  4230. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/supcd", "");
  4231. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/carerecseqno", "");
  4232. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/leftaxis", "");
  4233. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/graphappyn", "");
  4234. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/totalyn", "");
  4235. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/totalnm", "out");
  4236. model.makeValue(xDaysClincObsRecList+"["+addRow+"]/lnkbizcd", "");
  4237. var addOutputRow = eval(getNodesetCount(xDaysClincObsRecList)) + 1;
  4238. model.makeNode(xDaysClincObsRecList+"["+addOutputRow+"]");
  4239. model.copyNode(xDaysClincObsRecList+"["+addOutputRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4240. iHoursRecRow = addOutputRow;
  4241. //sChkTotal = "N";
  4242. }else{
  4243. model.makeNode(xDaysClincObsRecList+"["+addRow+"]");
  4244. model.copyNode(xDaysClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4245. }
  4246. }else{
  4247. model.makeNode(xDaysClincObsRecList+"["+addRow+"]");
  4248. model.copyNode(xDaysClincObsRecList+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4249. iHoursRecRow = addRow;
  4250. }
  4251. // Intake/OutTake 변경시 초기화
  4252. if(sRecFlag != sNextRecFlag){
  4253. sChkTotal = "N";
  4254. sStartOutput = "N";
  4255. }
  4256. }
  4257. grd_4daysclincobsreclist.refresh();
  4258. //그리드 스타일 설정
  4259. for(var iRow = grd_4daysclincobsreclist.fixedRows ; iRow < grd_4daysclincobsreclist.rows ; iRow++){
  4260. sCareRecSeqno = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("carerecseqno"));
  4261. sRecFromDT = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("recfromdt"));
  4262. sRecToDT = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("rectodt"));
  4263. sDepth = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("depth"));
  4264. sAttrCD = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("attrcd"));
  4265. sReChartFlag = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("reccharflag"));
  4266. sLnkBizCd = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("lnkbizcd"));
  4267. sTotalYn = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("totalyn"));
  4268. sRecFlag = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("recflag"));
  4269. //현재 행 다음의 기록구분을 조회
  4270. if(iRow == grd_4daysclincobsreclist.rows){
  4271. sNextRecFlag = "Last";
  4272. }else{
  4273. sNextRecFlag = grd_4daysclincobsreclist.valueMatrix((iRow+1), grd_4daysclincobsreclist.colRef("recflag"));
  4274. }
  4275. grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols, iRow, grd_4daysclincobsreclist.cols-1) = true;
  4276. // 분류의 경우
  4277. if(eval(sDepth) == 1){
  4278. grd_4daysclincobsreclist.mergeByFree(iRow, grd_4daysclincobsreclist.fixedCols, iRow, grd_4daysclincobsreclist.cols-1);
  4279. grd_4daysclincobsreclist.rowStyle(iRow,"data","background-color") = "#d0e7ff";
  4280. grd_4daysclincobsreclist.rowStyle(iRow,"data","font-weight") = "bold";
  4281. }else{ //분류가 아닐 경우
  4282. // SubTotal 항목 표시
  4283. // if(sTotalYn == "Y"){
  4284. // grd_4daysclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb";
  4285. // }
  4286. if(sTotalYn == "Y"){
  4287. grd_4daysclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb";
  4288. } else if(sTotalYn == "H"){//20090209 khj hierarchies 자동세팅관련 임상관찰기록에서 작성대상이 아닌 상위아이템행은 읽기전용으로 세팅
  4289. grd_4daysclincobsreclist.mergeByFree(iRow, grd_4daysclincobsreclist.fixedCols, iRow, grd_4daysclincobsreclist.cols-1);
  4290. grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols, iRow, grd_4daysclincobsreclist.cols-1) = true;
  4291. }
  4292. // Total Intake, Total Output 색 및 글꼴 변경
  4293. if(sRecFlag == "T"){
  4294. grd_4daysclincobsreclist.rowStyle(iRow,"data","background-color") = "#dbb7ff";
  4295. grd_4daysclincobsreclist.cellStyle("font-weight", iRow, sItemColRef, iRow, sItemColRef) = "bold";
  4296. sTotalSumRow = iRow;
  4297. }
  4298. for(var iCol=1; iCol<= 16; iCol++){
  4299. sRecRslt = grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("recrslt"+iCol));
  4300. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  4301. //Total Intake, Total Output 제외 대상 색 및 글꼴 변경
  4302. if(sRecFlag != "T"){
  4303. if(model.getValue(xIntervalRecYNListPath+"[carerecseqno ='"+sCareRecSeqno+"']/recyn"+iCol) == "Y" ){
  4304. grd_4daysclincobsreclist.cellStyle("background-image",iRow,iCol) = "../../../com/commonweb/images/input_essential.gif";
  4305. grd_4daysclincobsreclist.cellStyle("background-position",iRow,iCol) = "right";
  4306. }
  4307. //연계업무항목 설정 추가
  4308. if(sLnkBizCd != "-" && sLnkBizCd != "99" ){
  4309. //grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols,iRow, grd_4daysclincobsreclist.cols-1) = true;
  4310. grd_4daysclincobsreclist.cellStyle("background-color",iRow,iCol)= "#eaeaea"; //추가
  4311. grd_4daysclincobsreclist.cellStyle("color",iRow,iCol) = "#FF0000";
  4312. }else if(sRecDT < sRecFromDT || sRecDT > sRecToDT ){ // 기록 가능 일시가 아닌 경우
  4313. //grd_4daysclincobsreclist.isReadOnly(iRow,iCol) = true;
  4314. grd_4daysclincobsreclist.cellStyle("background-color",iRow,iCol,iRow,iCol)= "#ffeeee"; //추가
  4315. }
  4316. // 회복 임상관찰기록 시 임시저장 기록 표시
  4317. if(sSpParamInfo != ""){
  4318. // 다른 사용자의 기록은 수정 불가
  4319. //var sHistRecUserId = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/userid").split("^");
  4320. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/recdt").split("^");
  4321. var sHistCertKey = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/certkey").split("^");
  4322. //var sSettingUserId = "";
  4323. var sSettingRecDT = "";
  4324. var sSettingCertKey = "";
  4325. if(sHistRecDT.length > 0){
  4326. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  4327. if(sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00" == sHistRecDT[histrow]){
  4328. //sSettingUserId = sHistRecUserId[histrow];
  4329. sSettingCertKey = sHistCertKey[histrow];
  4330. }
  4331. }
  4332. //if(sRecRslt != "" && sSettingUserId != "" && sSettingCertKey == "" ){
  4333. if(sRecRslt != "" && sSettingCertKey == "" ){
  4334. grd_4daysclincobsreclist.cellStyle("color",iRow,iCol) = "#ff9900";
  4335. grd_4daysclincobsreclist.cellStyle("font-weight", iRow, iCol) = "bold";
  4336. }
  4337. }
  4338. }
  4339. //현재시간 색 표시
  4340. if(sCurDT.substr(0,12) <= (sHeader[1][iCol]+ sHeader[3][iCol]+sHeader[4][iCol]) && iRow == sRecCnt ){
  4341. if(iCol == 1){
  4342. grd_4daysclincobsreclist.colstyle(iCol,"all","background-color") = "#ffe1fe";
  4343. }else{
  4344. if(sCurDT.substr(0,12) > (sHeader[1][iCol-1]+ sHeader[3][iCol-1]+sHeader[4][iCol-1])){
  4345. grd_4daysclincobsreclist.colstyle(iCol-1,"all","background-color") = "#ffe1fe";
  4346. }
  4347. }
  4348. }
  4349. }
  4350. //**************************** clear ********************************
  4351. // Intake/output 합계 계산
  4352. if(sTotalYn == "Y"){
  4353. sChkTotal = "Y";
  4354. if(sRecRslt != ""){
  4355. if(sRecFlag == "A"){
  4356. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4357. sTotalSum[iCol] += eval(sRecRslt);
  4358. }else{
  4359. // sAttrValue = model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":");
  4360. // if(sAttrValue[0].getTrim().isNumber()){
  4361. // sTotalSum[iCol] += eval(sAttrValue[0]);
  4362. // }
  4363. if( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc")) && fIsNumber(sRecRslt) == true ){
  4364. sTotalSum[iCol] += eval(sRecRslt);
  4365. }else{
  4366. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4367. ? sRecRslt.split(":")
  4368. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4369. );
  4370. if(sAttrValue[0].getTrim().isNumber()){
  4371. sTotalSum[iCol] += eval(sAttrValue[0]);
  4372. }
  4373. }
  4374. }
  4375. }else if (sRecFlag == "B" || sRecFlag == "C"){
  4376. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4377. sTotalSum[iCol] += eval(sRecRslt);
  4378. }else{
  4379. if(fIsNumber(sRecRslt) == true){
  4380. sTotalSum[iCol] += eval(sRecRslt);
  4381. }else{
  4382. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4383. ? sRecRslt.split(":")
  4384. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4385. );
  4386. if(sAttrValue[0].getTrim().isNumber()){
  4387. sTotalSum[iCol] += eval(sAttrValue[0]);
  4388. }
  4389. }
  4390. }
  4391. }
  4392. }
  4393. }
  4394. // 합계 계산목록 Intake/OutTake에 세팅
  4395. if( (sRecFlag == "T" || sRecFlag != sNextRecFlag ) && sChkTotal == "Y" && sTotalSumRow != "" ){
  4396. if(sTotalSumRow != "" && sTotalSum[iCol] != null ){
  4397. grd_4daysclincobsreclist.valueMatrix(sTotalSumRow, iCol) = sTotalSum[iCol] ;
  4398. }
  4399. if(iCol == 16){
  4400. sChkTotal = "C";
  4401. }
  4402. }
  4403. }
  4404. if(sChkTotal == "C"){
  4405. for(var i = 1 ; i <= 16 ; i ++){
  4406. sTotalSum[i] = null;
  4407. }
  4408. sTotalSumRow = "";
  4409. sChkTotal = "N";
  4410. }
  4411. }
  4412. }
  4413. setTree(grd_4daysclincobsreclist,grd_4daysclincobsreclist.colRef("depth"),0,false);
  4414. // 차트표시
  4415. fMakeChart(pRecFlag);
  4416. model.removenodeSet(xIntervalRecYNListPath);
  4417. model.removenodeSet(xClincObsRecListPath);
  4418. break;
  4419. case "formerday":
  4420. var sVWCtrl_Formerday = model.getValue(sCondPath+"/vwctrl_formerday");
  4421. sCurDT = sCurDT.substr(0,10) + "00";
  4422. if(sVWCtrl_Formerday == "stnd" || sVWCtrl_Formerday == "all"){
  4423. //grd_stndclincobsreclist.refresh();
  4424. //grd_stndclincobsreclist.initStyle("background-color");
  4425. //grd_stndclincobsreclist.backcoloralternate = "transparent";
  4426. sRecCnt = getNodesetCnt(model, xClincObsRecListPath);
  4427. sItemColRef = grd_stndclincobsreclist.colRef("itemnm");
  4428. sFixRow = grd_stndclincobsreclist.fixedrows - 1 ;
  4429. for(var i=1; i<= 14; i++){
  4430. sTotalSum[i] = null;
  4431. }
  4432. for(var iRow=1; iRow <= sRecCnt; iRow++){
  4433. var addRow = eval(getNodesetCount(xStnddayClincObsRecListPath)) + 1;
  4434. sSetnm = model.getValue(xClincObsRecListPath+"["+iRow+"]/totalnm");
  4435. sTotalYn = model.getValue(xClincObsRecListPath+"["+iRow+"]/totalyn");
  4436. sRecFlag = model.getValue(xClincObsRecListPath+"["+iRow+"]/recflag");
  4437. //현재 행 다음의 기록구분을 조회
  4438. if(iRow == sRecCnt){
  4439. sNextRecFlag = "Last";
  4440. }else{
  4441. sNextRecFlag = model.getValue(xClincObsRecListPath+"["+(iRow+1)+"]/recflag");
  4442. }
  4443. if(sChkTotal == "N" && sTotalYn == "Y"){
  4444. sChkTotal = sTotalYn;
  4445. sTotalNm = sSetnm;
  4446. }
  4447. if(sChkTotal == "Y"){
  4448. if((sRecFlag == "A" || sRecFlag == "B") && sRecFlag != sNextRecFlag){
  4449. model.makeNode(xStnddayClincObsRecListPath+"["+addRow+"]");
  4450. model.copyNode(xStnddayClincObsRecListPath+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4451. iHoursRecRow = addRow;
  4452. var addIntakeRow = eval(getNodesetCount(xStnddayClincObsRecListPath)) + 1;
  4453. model.makeNode(xStnddayClincObsRecListPath+"["+addIntakeRow+"]");
  4454. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/itemnm", sTotalNm);
  4455. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt1", "");
  4456. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt2", "");
  4457. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt3", "");
  4458. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt4", "");
  4459. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt5", "");
  4460. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt6", "");
  4461. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt7", "");
  4462. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt8", "");
  4463. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt9", "");
  4464. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt10", "");
  4465. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt11", "");
  4466. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt12", "");
  4467. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt13", "");
  4468. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recrslt14", "");
  4469. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recflag", "T");
  4470. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/attrcd", "");
  4471. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/itemcd", "");
  4472. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/itemseqno", "");
  4473. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/depth", 2);
  4474. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/recfromdt", "");
  4475. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/reccharflag", "");
  4476. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/rectodt", "");
  4477. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/supcd", "");
  4478. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/carerecseqno", "");
  4479. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/leftaxis", "");
  4480. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/graphappyn", "");
  4481. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/totalyn", "");
  4482. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/totalnm", "");
  4483. model.makeValue(xStnddayClincObsRecListPath+"["+addIntakeRow+"]/lnkbizcd", "");
  4484. }else if(sRecFlag == "C" && sStartOutput == "N"){
  4485. sStartOutput = "Y";
  4486. model.makeNode(xStnddayClincObsRecListPath+"["+addRow+"]");
  4487. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/itemnm", sTotalNm);
  4488. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt1", "");
  4489. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt2", "");
  4490. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt3", "");
  4491. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt4", "");
  4492. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt5", "");
  4493. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt6", "");
  4494. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt7", "");
  4495. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt8", "");
  4496. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt9", "");
  4497. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt10", "");
  4498. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt11", "");
  4499. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt12", "");
  4500. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt13", "");
  4501. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recrslt14", "");
  4502. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recflag", "T");
  4503. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/attrcd", "");
  4504. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/itemcd", "");
  4505. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/itemseqno", "");
  4506. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/depth", 2);
  4507. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/recfromdt", "");
  4508. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/reccharflag", "");
  4509. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/rectodt", "");
  4510. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/supcd", "");
  4511. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/carerecseqno", "");
  4512. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/leftaxis", "");
  4513. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/graphappyn", "");
  4514. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/totalyn", "");
  4515. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/totalnm", "out");
  4516. model.makeValue(xStnddayClincObsRecListPath+"["+addRow+"]/lnkbizcd", "");
  4517. var addOutputRow = eval(getNodesetCount(xStnddayClincObsRecListPath)) + 1;
  4518. model.makeNode(xStnddayClincObsRecListPath+"["+addOutputRow+"]");
  4519. model.copyNode(xStnddayClincObsRecListPath+"["+addOutputRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4520. iHoursRecRow = addOutputRow;
  4521. //sChkTotal = "N";
  4522. }else{
  4523. model.makeNode(xStnddayClincObsRecListPath+"["+addRow+"]");
  4524. model.copyNode(xStnddayClincObsRecListPath+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4525. }
  4526. }else{
  4527. model.makeNode(xStnddayClincObsRecListPath+"["+addRow+"]");
  4528. model.copyNode(xStnddayClincObsRecListPath+"["+addRow+"]", xClincObsRecListPath+"["+iRow+"]");
  4529. iHoursRecRow = addRow;
  4530. }
  4531. // Intake/OutTake 변경시 초기화
  4532. if(sRecFlag != sNextRecFlag){
  4533. sChkTotal = "N";
  4534. sStartOutput = "N";
  4535. }
  4536. }
  4537. //grd_24hoursclincobsreclist.refresh();
  4538. grd_stndclincobsreclist.refresh();
  4539. //그리드 스타일 설정
  4540. for(var iRow = grd_stndclincobsreclist.fixedRows ; iRow < grd_stndclincobsreclist.rows ; iRow++){
  4541. sCareRecSeqno = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("carerecseqno"));
  4542. sRecFromDT = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("recfromdt"));
  4543. sRecToDT = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("rectodt"));
  4544. sDepth = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("depth"));
  4545. sAttrCD = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("attrcd"));
  4546. sReChartFlag = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("reccharflag"));
  4547. sLnkBizCd = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("lnkbizcd"));
  4548. sTotalYn = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("totalyn"));
  4549. sRecFlag = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("recflag"));
  4550. //현재 행 다음의 기록구분을 조회
  4551. if(iRow == grd_stndclincobsreclist.rows){
  4552. sNextRecFlag = "Last";
  4553. }else{
  4554. sNextRecFlag = grd_stndclincobsreclist.valueMatrix((iRow+1), grd_stndclincobsreclist.colRef("recflag"));
  4555. }
  4556. grd_stndclincobsreclist.isReadOnly(iRow,grd_stndclincobsreclist.fixedCols, iRow, grd_stndclincobsreclist.cols-1) = true;
  4557. // 분류의 경우
  4558. if(eval(sDepth) == 1){
  4559. grd_stndclincobsreclist.mergeByFree(iRow, grd_stndclincobsreclist.fixedCols, iRow, grd_stndclincobsreclist.cols-1);
  4560. grd_stndclincobsreclist.rowStyle(iRow,"data","background-color") = "#d0e7ff";
  4561. grd_stndclincobsreclist.rowStyle(iRow,"data","font-weight") = "bold";
  4562. }else{ //분류가 아닐 경우
  4563. // SubTotal 항목 표시
  4564. // if(sTotalYn == "Y"){
  4565. // grd_stndclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb";
  4566. // }
  4567. if(sTotalYn == "Y"){
  4568. grd_stndclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb";
  4569. } else if(sTotalYn == "H"){//20090209 khj hierarchies 자동세팅관련 임상관찰기록에서 작성대상이 아닌 상위아이템행은 읽기전용으로 세팅
  4570. grd_stndclincobsreclist.mergeByFree(iRow, grd_stndclincobsreclist.fixedCols, iRow, grd_stndclincobsreclist.cols-1);
  4571. grd_stndclincobsreclist.isReadOnly(iRow,grd_stndclincobsreclist.fixedCols, iRow, grd_stndclincobsreclist.cols-1) = true;
  4572. }
  4573. // Total Intake, Total Output 색 및 글꼴 변경
  4574. if(sRecFlag == "T"){
  4575. grd_stndclincobsreclist.rowStyle(iRow,"data","background-color") = "#dbb7ff";
  4576. grd_stndclincobsreclist.cellStyle("font-weight", iRow, sItemColRef, iRow, sItemColRef) = "bold";
  4577. sTotalSumRow = iRow;
  4578. }
  4579. for(var iCol=1; iCol<= 14; iCol++){
  4580. sRecRslt = grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("recrslt"+iCol));
  4581. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  4582. //Total Intake, Total Output 제외 대상 색 및 글꼴 변경
  4583. if(sRecFlag != "T"){
  4584. if(model.getValue(xIntervalRecYNListPath+"[carerecseqno ='"+sCareRecSeqno+"']/recyn"+iCol) == "Y" ){
  4585. grd_stndclincobsreclist.cellStyle("background-image",iRow,iCol) = "../../../com/commonweb/images/input_essential.gif";
  4586. grd_stndclincobsreclist.cellStyle("background-position",iRow,iCol) = "right";
  4587. }
  4588. //연계업무항목 설정 추가
  4589. if(sLnkBizCd != "-" && sLnkBizCd != "99" ){
  4590. //grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols,iRow, grd_4daysclincobsreclist.cols-1) = true;
  4591. grd_stndclincobsreclist.cellStyle("background-color",iRow,iCol)= "#eaeaea"; //추가
  4592. grd_stndclincobsreclist.cellStyle("color",iRow,iCol) = "#FF0000";
  4593. }else if(sRecDT < sRecFromDT || sRecDT > sRecToDT ){ // 기록 가능 일시가 아닌 경우
  4594. //grd_4daysclincobsreclist.isReadOnly(iRow,iCol) = true;
  4595. grd_stndclincobsreclist.cellStyle("background-color",iRow,iCol,iRow,iCol)= "#ffeeee"; //추가
  4596. }
  4597. // 회복 임상관찰기록 시 임시저장 기록 표시
  4598. if(sSpParamInfo != ""){
  4599. // 다른 사용자의 기록은 수정 불가
  4600. //var sHistRecUserId = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/userid").split("^");
  4601. var sHistRecDT = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/recdt").split("^");
  4602. var sHistCertKey = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/certkey").split("^");
  4603. //var sSettingUserId = "";
  4604. var sSettingRecDT = "";
  4605. var sSettingCertKey = "";
  4606. if(sHistRecDT.length > 0){
  4607. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  4608. if(sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00" == sHistRecDT[histrow]){
  4609. //sSettingUserId = sHistRecUserId[histrow];
  4610. sSettingCertKey = sHistCertKey[histrow];
  4611. }
  4612. }
  4613. if(sRecRslt != "" && sSettingCertKey == "" ){
  4614. grd_stndclincobsreclist.cellStyle("color",iRow,iCol) = "#ff9900";
  4615. grd_stndclincobsreclist.cellStyle("font-weight", iRow, iCol) = "bold";
  4616. }
  4617. }
  4618. }
  4619. //현재 시간 색 표시
  4620. if(sCurDT == (sHeader[1][iCol]+ sHeader[3][iCol]+sHeader[4][iCol]) && iRow == sRecCnt){
  4621. grd_stndclincobsreclist.colstyle(iCol,"all","background-color") = "#ffe1fe";
  4622. }
  4623. }
  4624. //**************************** clear ********************************
  4625. // Intake/output 합계 계산
  4626. if(sTotalYn == "Y"){
  4627. sChkTotal = "Y";
  4628. if(sRecRslt != ""){
  4629. if(sRecFlag == "A"){
  4630. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4631. sTotalSum[iCol] += eval(sRecRslt);
  4632. }else{
  4633. // sAttrValue = model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":");
  4634. // if(sAttrValue[0].getTrim().isNumber()){
  4635. // sTotalSum[iCol] += eval(sAttrValue[0]);
  4636. // }
  4637. if( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc")) && fIsNumber(sRecRslt) == true ){
  4638. sTotalSum[iCol] += eval(sRecRslt);
  4639. }else{
  4640. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4641. ? sRecRslt.split(":")
  4642. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4643. );
  4644. if(sAttrValue[0].getTrim().isNumber()){
  4645. sTotalSum[iCol] += eval(sAttrValue[0]);
  4646. }
  4647. }
  4648. }
  4649. }else if (sRecFlag == "B" || sRecFlag == "C"){
  4650. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4651. sTotalSum[iCol] += eval(sRecRslt);
  4652. }else{
  4653. if(fIsNumber(sRecRslt) == true){
  4654. sTotalSum[iCol] += eval(sRecRslt);
  4655. }else{
  4656. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4657. ? sRecRslt.split(":")
  4658. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4659. );
  4660. if(sAttrValue[0].getTrim().isNumber()){
  4661. sTotalSum[iCol] += eval(sAttrValue[0]);
  4662. }
  4663. }
  4664. }
  4665. }
  4666. }
  4667. }
  4668. // 합계 계산목록 Intake/OutTake에 세팅
  4669. if( (sRecFlag == "T" || sRecFlag != sNextRecFlag ) && sChkTotal == "Y" && sTotalSumRow != "" ){
  4670. if(sTotalSumRow != "" && sTotalSum[iCol] != null ){
  4671. grd_stndclincobsreclist.valueMatrix(sTotalSumRow, iCol) = sTotalSum[iCol] ;
  4672. }
  4673. if(iCol == 14){
  4674. sChkTotal = "C";
  4675. }
  4676. }
  4677. }
  4678. if(sChkTotal == "C"){
  4679. for(var i = 1 ; i <= 14 ; i ++){
  4680. sTotalSum[i] = null;
  4681. }
  4682. sTotalSumRow = "";
  4683. sChkTotal = "N";
  4684. }
  4685. }
  4686. }
  4687. setTree(grd_stndclincobsreclist,grd_stndclincobsreclist.colRef("depth"),0,false);
  4688. }
  4689. if(sVWCtrl_Formerday == "former" || sVWCtrl_Formerday == "all"){
  4690. // 전날 리스트 설정
  4691. //grd_formersclincobsreclist.refresh();
  4692. //grd_formersclincobsreclist.initStyle("background-color");
  4693. //grd_formersclincobsreclist.backcoloralternate = "transparent";
  4694. sRecCnt = getNodesetCnt(model, xFormerClincObsRecListPath);
  4695. sItemColRef = grd_formersclincobsreclist.colRef("itemnm");
  4696. sFixRow = grd_formersclincobsreclist.fixedrows - 1 ;
  4697. for(var i=1; i<= 6; i++){
  4698. sTotalSum[i] = null;
  4699. }
  4700. for(var iRow=1; iRow <= sRecCnt; iRow++){
  4701. var addRow = eval(getNodesetCount(xFormerdayClincObsRecListPath)) + 1;
  4702. sSetnm = model.getValue(xFormerClincObsRecListPath+"["+iRow+"]/totalnm");
  4703. sTotalYn = model.getValue(xFormerClincObsRecListPath+"["+iRow+"]/totalyn");
  4704. sRecFlag = model.getValue(xFormerClincObsRecListPath+"["+iRow+"]/recflag");
  4705. //현재 행 다음의 기록구분을 조회
  4706. if(iRow == sRecCnt){
  4707. sNextRecFlag = "Last";
  4708. }else{
  4709. sNextRecFlag = model.getValue(xFormerClincObsRecListPath+"["+(iRow+1)+"]/recflag");
  4710. }
  4711. if(sChkTotal == "N" && sTotalYn == "Y"){
  4712. sChkTotal = sTotalYn;
  4713. sTotalNm = sSetnm;
  4714. }
  4715. if(sChkTotal == "Y"){
  4716. if((sRecFlag == "A" || sRecFlag == "B") && sRecFlag != sNextRecFlag){
  4717. model.makeNode(xFormerdayClincObsRecListPath+"["+addRow+"]");
  4718. model.copyNode(xFormerdayClincObsRecListPath+"["+addRow+"]", xFormerClincObsRecListPath+"["+iRow+"]");
  4719. iHoursRecRow = addRow;
  4720. var addIntakeRow = eval(getNodesetCount(xFormerdayClincObsRecListPath)) + 1;
  4721. model.makeNode(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]");
  4722. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/itemnm", sTotalNm);
  4723. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recrslt1", "");
  4724. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recrslt2", "");
  4725. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recrslt3", "");
  4726. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recrslt4", "");
  4727. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recrslt5", "");
  4728. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recrslt6", "");
  4729. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recflag", "T");
  4730. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/attrcd", "");
  4731. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/itemcd", "");
  4732. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/itemseqno", "");
  4733. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/depth", 2);
  4734. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/recfromdt", "");
  4735. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/reccharflag", "");
  4736. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/rectodt", "");
  4737. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/supcd", "");
  4738. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/carerecseqno", "");
  4739. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/leftaxis", "");
  4740. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/graphappyn", "");
  4741. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/totalyn", "");
  4742. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/totalnm", "");
  4743. model.makeValue(xFormerdayClincObsRecListPath+"["+addIntakeRow+"]/lnkbizcd", "");
  4744. }else if(sRecFlag == "C" && sStartOutput == "N"){
  4745. sStartOutput = "Y";
  4746. model.makeNode(xFormerdayClincObsRecListPath+"["+addRow+"]");
  4747. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/itemnm", sTotalNm);
  4748. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recrslt1", "");
  4749. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recrslt2", "");
  4750. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recrslt3", "");
  4751. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recrslt4", "");
  4752. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recrslt5", "");
  4753. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recrslt6", "");
  4754. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recflag", "T");
  4755. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/attrcd", "");
  4756. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/itemcd", "");
  4757. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/itemseqno", "");
  4758. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/depth", 2);
  4759. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/recfromdt", "");
  4760. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/reccharflag", "");
  4761. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/rectodt", "");
  4762. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/supcd", "");
  4763. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/carerecseqno", "");
  4764. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/leftaxis", "");
  4765. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/graphappyn", "");
  4766. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/totalyn", "");
  4767. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/totalnm", "out");
  4768. model.makeValue(xFormerdayClincObsRecListPath+"["+addRow+"]/lnkbizcd", "");
  4769. var addOutputRow = eval(getNodesetCount(xFormerdayClincObsRecListPath)) + 1;
  4770. model.makeNode(xFormerdayClincObsRecListPath+"["+addOutputRow+"]");
  4771. model.copyNode(xFormerdayClincObsRecListPath+"["+addOutputRow+"]", xFormerClincObsRecListPath+"["+iRow+"]");
  4772. iHoursRecRow = addOutputRow;
  4773. //sChkTotal = "N";
  4774. }else{
  4775. model.makeNode(xFormerdayClincObsRecListPath+"["+addRow+"]");
  4776. model.copyNode(xFormerdayClincObsRecListPath+"["+addRow+"]", xFormerClincObsRecListPath+"["+iRow+"]");
  4777. }
  4778. }else{
  4779. model.makeNode(xFormerdayClincObsRecListPath+"["+addRow+"]");
  4780. model.copyNode(xFormerdayClincObsRecListPath+"["+addRow+"]", xFormerClincObsRecListPath+"["+iRow+"]");
  4781. iHoursRecRow = addRow;
  4782. }
  4783. // Intake/OutTake 변경시 초기화
  4784. if(sRecFlag != sNextRecFlag){
  4785. sChkTotal = "N";
  4786. sStartOutput = "N";
  4787. }
  4788. }
  4789. grd_formersclincobsreclist.refresh();
  4790. //그리드 스타일 설정
  4791. for(var iRow = grd_formersclincobsreclist.fixedRows ; iRow < grd_formersclincobsreclist.rows ; iRow++){
  4792. sCareRecSeqno = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("carerecseqno"));
  4793. sRecFromDT = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("recfromdt"));
  4794. sRecToDT = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("rectodt"));
  4795. sDepth = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("depth"));
  4796. sAttrCD = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("attrcd"));
  4797. sReChartFlag = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("reccharflag"));
  4798. sLnkBizCd = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("lnkbizcd"));
  4799. sTotalYn = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("totalyn"));
  4800. sRecFlag = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("recflag"));
  4801. //현재 행 다음의 기록구분을 조회
  4802. if(iRow == grd_formersclincobsreclist.rows){
  4803. sNextRecFlag = "Last";
  4804. }else{
  4805. sNextRecFlag = grd_formersclincobsreclist.valueMatrix((iRow+1), grd_formersclincobsreclist.colRef("recflag"));
  4806. }
  4807. grd_formersclincobsreclist.isReadOnly(iRow,grd_formersclincobsreclist.fixedCols, iRow, grd_formersclincobsreclist.cols-1) = true;
  4808. // 분류의 경우
  4809. if(eval(sDepth) == 1){
  4810. grd_formersclincobsreclist.mergeByFree(iRow, grd_formersclincobsreclist.fixedCols, iRow, grd_formersclincobsreclist.cols-1);
  4811. grd_formersclincobsreclist.rowStyle(iRow,"data","background-color") = "#d0e7ff";
  4812. grd_formersclincobsreclist.rowStyle(iRow,"data","font-weight") = "bold";
  4813. }else{ //분류가 아닐 경우
  4814. // SubTotal 항목 표시
  4815. // if(sTotalYn == "Y"){
  4816. // grd_formersclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb";
  4817. // }
  4818. if(sTotalYn == "Y"){
  4819. grd_formersclincobsreclist.cellStyle("background-color", iRow, sItemColRef, iRow, sItemColRef) = "#fffebb";
  4820. } else if(sTotalYn == "H"){//20090209 khj hierarchies 자동세팅관련 임상관찰기록에서 작성대상이 아닌 상위아이템행은 읽기전용으로 세팅
  4821. grd_formersclincobsreclist.mergeByFree(iRow, grd_formersclincobsreclist.fixedCols, iRow, grd_formersclincobsreclist.cols-1);
  4822. grd_formersclincobsreclist.isReadOnly(iRow,grd_formersclincobsreclist.fixedCols, iRow, grd_formersclincobsreclist.cols-1) = true;
  4823. }
  4824. // Total Intake, Total Output 색 및 글꼴 변경
  4825. if(sRecFlag == "T"){
  4826. grd_formersclincobsreclist.rowStyle(iRow,"data","background-color") = "#dbb7ff";
  4827. grd_formersclincobsreclist.cellStyle("font-weight", iRow, sItemColRef, iRow, sItemColRef) = "bold";
  4828. sTotalSumRow = iRow;
  4829. }
  4830. for(var iCol=1; iCol<= 6; iCol++){
  4831. sRecRslt = grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("recrslt"+iCol));
  4832. sRecDT = sFormerHeader[1][iCol]+sFormerHeader[3][iCol]+sFormerHeader[4][iCol]+"59";
  4833. //Total Intake, Total Output 제외 대상 색 및 글꼴 변경
  4834. if(sRecFlag != "T"){
  4835. if(model.getValue(xIntervalRecYNListPath+"[carerecseqno ='"+sCareRecSeqno+"']/recyn"+iCol) == "Y" ){
  4836. grd_formersclincobsreclist.cellStyle("background-image",iRow,iCol) = "../../../com/commonweb/images/input_essential.gif";
  4837. grd_formersclincobsreclist.cellStyle("background-position",iRow,iCol) = "right";
  4838. }
  4839. //연계업무항목 설정 추가
  4840. if(sLnkBizCd != "-" && sLnkBizCd != "99" ){
  4841. grd_formersclincobsreclist.cellStyle("background-color",iRow,iCol)= "#eaeaea"; //추가
  4842. grd_formersclincobsreclist.cellStyle("color",iRow,iCol) = "#FF0000";
  4843. }else if(sRecDT < sRecFromDT || sRecDT > sRecToDT ){ // 기록 가능 일시가 아닌 경우
  4844. grd_formersclincobsreclist.cellStyle("background-color",iRow,iCol,iRow,iCol)= "#ffeeee"; //추가
  4845. }
  4846. // 회복 임상관찰기록 시 임시저장 기록 표시
  4847. if(sSpParamInfo != ""){
  4848. //var sHistRecUserId = model.getValue(xRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/userid").split("^");
  4849. var sHistRecDT = model.getValue(xFormerRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/recdt").split("^");
  4850. var sHistCertKey = model.getValue(xFormerRecUserListPath+"[carerecseqno = '"+sCareRecSeqno+"']/certkey").split("^");
  4851. //var sSettingUserId = "";
  4852. var sSettingRecDT = "";
  4853. var sSettingCertKey = "";
  4854. if(sHistRecDT.length > 0){
  4855. for(var histrow = 0 ; histrow < sHistRecDT.length ; histrow++){
  4856. if(sFormerHeader[1][iCol]+sFormerHeader[3][iCol]+sFormerHeader[4][iCol]+"00" == sHistRecDT[histrow]){
  4857. //sSettingUserId = sHistRecUserId[histrow];
  4858. sSettingCertKey = sHistCertKey[histrow];
  4859. }
  4860. }
  4861. if(sRecRslt != "" && sSettingCertKey == "" ){
  4862. grd_formersclincobsreclist.cellStyle("color",iRow,iCol) = "#ff9900";
  4863. grd_formersclincobsreclist.cellStyle("font-weight", iRow, iCol) = "bold";
  4864. }
  4865. }
  4866. }
  4867. //현재 시간 색 표시
  4868. if(sCurDT == (sFormerHeader[1][iCol]+ sFormerHeader[3][iCol]+sFormerHeader[4][iCol]) && iRow == sRecCnt){
  4869. grd_formersclincobsreclist.colstyle(iCol,"all","background-color") = "#ffe1fe";
  4870. }
  4871. }
  4872. //**************************** clear ********************************
  4873. // Intake/output 합계 계산
  4874. if(sTotalYn == "Y"){
  4875. sChkTotal = "Y";
  4876. if(sRecRslt != ""){
  4877. if(sRecFlag == "A"){
  4878. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4879. sTotalSum[iCol] += eval(sRecRslt);
  4880. }else{
  4881. // sAttrValue = model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":");
  4882. // if(sAttrValue[0].getTrim().isNumber()){
  4883. // sTotalSum[iCol] += eval(sAttrValue[0]);
  4884. // }
  4885. if( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc")) && fIsNumber(sRecRslt) == true ){
  4886. sTotalSum[iCol] += eval(sRecRslt);
  4887. }else{
  4888. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4889. ? sRecRslt.split(":")
  4890. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4891. );
  4892. if(sAttrValue[0].getTrim().isNumber()){
  4893. sTotalSum[iCol] += eval(sAttrValue[0]);
  4894. }
  4895. }
  4896. }
  4897. }else if (sRecFlag == "B" || sRecFlag == "C"){
  4898. if(sAttrCD == "" && fIsNumber(sRecRslt) == true){
  4899. sTotalSum[iCol] += eval(sRecRslt);
  4900. }else{
  4901. if(fIsNumber(sRecRslt) == true){
  4902. sTotalSum[iCol] += eval(sRecRslt);
  4903. }else{
  4904. sAttrValue =( isNull(model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc"))
  4905. ? sRecRslt.split(":")
  4906. : model.getValue(sAttrListPath1+"[attrcd ='"+sRecRslt+"']/attrdesc").split(":")
  4907. );
  4908. if(sAttrValue[0].getTrim().isNumber()){
  4909. sTotalSum[iCol] += eval(sAttrValue[0]);
  4910. }
  4911. }
  4912. }
  4913. }
  4914. }
  4915. }
  4916. // 합계 계산목록 Intake/OutTake에 세팅
  4917. if( (sRecFlag == "T" || sRecFlag != sNextRecFlag ) && sChkTotal == "Y" && sTotalSumRow != "" ){
  4918. if(sTotalSumRow != "" && sTotalSum[iCol] != null ){
  4919. grd_formersclincobsreclist.valueMatrix(sTotalSumRow, iCol) = sTotalSum[iCol] ;
  4920. }
  4921. if(iCol == 6){
  4922. sChkTotal = "C";
  4923. }
  4924. }
  4925. }
  4926. if(sChkTotal == "C"){
  4927. for(var i = 1 ; i <= 6 ; i ++){
  4928. sTotalSum[i] = null;
  4929. }
  4930. sTotalSumRow = "";
  4931. sChkTotal = "N";
  4932. }
  4933. }
  4934. }
  4935. setTree(grd_formersclincobsreclist,grd_formersclincobsreclist.colRef("depth"),0,false);
  4936. }
  4937. model.removenodeSet(xIntervalRecYNListPath);
  4938. model.removenodeSet(xClincObsRecListPath);
  4939. model.removenodeSet(xFormerIntervalRecYNListPath);
  4940. model.removenodeSet(xFormerClincObsRecListPath);
  4941. break;
  4942. */
  4943. }
  4944. }
  4945. /**
  4946. * @group :
  4947. * @ver : 2009.12.15
  4948. * @by : 양천덕
  4949. * @---------------------------------------------------
  4950. * @type : function
  4951. * @access : public
  4952. * @desc : 그리드 팝업메뉴 SETTING
  4953. * @param : pFlag
  4954. * @return :
  4955. * @---------------------------------------------------
  4956. */
  4957. function fSettingPopUpMenu(pFlag, pGridFlag){
  4958. var iRow = 0;
  4959. var sX = 0;
  4960. var sY = 0;
  4961. var sPopupMenumNodeCnt = 0;
  4962. switch(pFlag){
  4963. case "24hours" :
  4964. iRow = grd_24hoursclincobsreclist.mouseRow;
  4965. iCol = grd_24hoursclincobsreclist.mouseCol;
  4966. if(event.button == 3){
  4967. model.removeNodeset(xItemPopupPath);
  4968. var sPopupCareRecSeqNo = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("carerecseqno"));
  4969. var sPopupLnkBizCd = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("lnkbizcd"));
  4970. var sPopupRecFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recflag"));
  4971. var SPopupRecCharFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("reccharflag"));
  4972. if(iRow < grd_24hoursclincobsreclist.fixedRows){
  4973. sPopupMenumNodeCnt = eval(getNodesetCount(xItemPopupPath))+1;
  4974. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/name" , model.getValue(xItemInitPopupPath+"[idx ='"+4+"']/name") );
  4975. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/func" , model.getValue(xItemInitPopupPath+"[idx ='"+4+"']/func") );
  4976. window.showPopupMenu(true);
  4977. window.setPopupMenu(true, xItemPopupPath, "name", "func", false);
  4978. }else{
  4979. if( iCol == grd_24hoursclincobsreclist.colRef("itemnm") ){
  4980. if( sPopupCareRecSeqNo != "" && sPopupCareRecSeqNo != 0 ){
  4981. if( SPopupRecCharFlag == "A" ){
  4982. //Item 시작/종료 시간 설정
  4983. sPopupMenumNodeCnt = eval(getNodesetCount(xItemPopupPath))+1;
  4984. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/name" , model.getValue(xItemInitPopupPath+"[idx ='"+2+"']/name") );
  4985. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/func" , model.getValue(xItemInitPopupPath+"[idx ='"+2+"']/func") );
  4986. }
  4987. //확장명 변경 popup메뉴 설정
  4988. if( sPopupLnkBizCd == "11" || sPopupLnkBizCd == "12" ){
  4989. sPopupMenumNodeCnt = eval(getNodesetCount(xItemPopupPath))+1;
  4990. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/name" , model.getValue(xItemInitPopupPath+"[idx ='"+1+"']/name") );
  4991. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/func" , model.getValue(xItemInitPopupPath+"[idx ='"+1+"']/func") );
  4992. }
  4993. }
  4994. }
  4995. if( sPopupCareRecSeqNo != "" && sPopupCareRecSeqNo != 0 || sPopupRecFlag == "T" || sPopupRecFlag == "S" || sPopupRecFlag == "R" ){
  4996. //부분합계 popup메뉴 설정
  4997. sPopupMenumNodeCnt = eval(getNodesetCount(xItemPopupPath))+1;
  4998. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/name" , model.getValue(xItemInitPopupPath+"[idx ='"+3+"']/name") );
  4999. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/func" , model.getValue(xItemInitPopupPath+"[idx ='"+3+"']/func") );
  5000. if( sPopupRecFlag != "T" && sPopupRecFlag != "S" && sPopupRecFlag != "R" ){
  5001. //입력값 복사 popup메뉴 설정
  5002. sPopupMenumNodeCnt = eval(getNodesetCount(xItemPopupPath))+1;
  5003. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/name" , model.getValue(xItemInitPopupPath+"[idx ='"+5+"']/name") );
  5004. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/func" , model.getValue(xItemInitPopupPath+"[idx ='"+5+"']/func") );
  5005. //입력값 삭제 popup메뉴 설정
  5006. sPopupMenumNodeCnt = eval(getNodesetCount(xItemPopupPath))+1;
  5007. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/name" , model.getValue(xItemInitPopupPath+"[idx ='"+6+"']/name") );
  5008. model.makeValue(xItemPopupPath+"["+sPopupMenumNodeCnt+"]/func" , model.getValue(xItemInitPopupPath+"[idx ='"+6+"']/func") );
  5009. }
  5010. }
  5011. setPopupMenu("grd_24hoursclincobsreclist", false, xItemPopupPath, "name", "func");
  5012. }
  5013. }
  5014. //grd_24hoursclincobsreclist.focusColor = "#ffe79d";
  5015. //grd_24hoursclincobsreclist.colStyle(iCol, "data", "background-color") = "#ffe79d";
  5016. break;
  5017. /*
  5018. case "4days" :
  5019. iRow = grd_4daysclincobsreclist.mouseRow;
  5020. iCol = grd_4daysclincobsreclist.mouseCol;
  5021. if(iRow < grd_4daysclincobsreclist.fixedrows){
  5022. // if(model.getValue(sCondPath+"/vwctrl_4days") == "I"){
  5023. if(event.button == 3 && iRow == 1) {
  5024. sX = event.clientX;
  5025. sY = event.clientY-50;
  5026. grp_daycountmenu.visible = true;
  5027. grp_daycountmenu.attribute("left") = sX;
  5028. grp_daycountmenu.attribute("top") = sY;
  5029. window.showPopupMenu(false);
  5030. sDayCountFlag = pFlag;
  5031. // }
  5032. }else{
  5033. window.showPopupMenu(true);
  5034. }
  5035. }else{
  5036. sPopUpMenuFlag = pFlag;
  5037. if(event.button == 3 && grd_4daysclincobsreclist.valueMatrix(iRow, grd_4daysclincobsreclist.colRef("depth")) != "1" ){
  5038. setPopupMenu("grd_4daysclincobsreclist",false, "/root/init/popmenu/valuemenu", "name", "func");
  5039. }
  5040. }
  5041. break;
  5042. case "stnd" :
  5043. iRow = grd_stndclincobsreclist.mouseRow;
  5044. iCol = grd_stndclincobsreclist.mouseCol;
  5045. if(iRow < grd_stndclincobsreclist.fixedrows){
  5046. if(event.button == 3 && iRow == 1) {
  5047. sX = event.clientX;
  5048. sY = event.clientY-50;
  5049. grp_daycountmenu.visible = true;
  5050. grp_daycountmenu.attribute("left") = sX;
  5051. grp_daycountmenu.attribute("top") = sY;
  5052. window.showPopupMenu(false);
  5053. sDayCountFlag = pFlag;
  5054. }else{
  5055. window.showPopupMenu(true);
  5056. }
  5057. }else{
  5058. sPopUpMenuFlag = pFlag;
  5059. if(event.button == 3 && grd_stndclincobsreclist.valueMatrix(iRow, grd_stndclincobsreclist.colRef("depth")) != "1" ){
  5060. setPopupMenu("grd_stndclincobsreclist",false, "/root/init/popmenu/valuemenu", "name", "func");
  5061. }
  5062. }
  5063. //grd_stndclincobsreclist.colStyle(iCol, "data", "background-color") = "#ffcc00";
  5064. break;
  5065. case "former" :
  5066. iRow = grd_formersclincobsreclist.mouseRow;
  5067. iCol = grd_formersclincobsreclist.mouseCol;
  5068. if(iRow < grd_formersclincobsreclist.fixedrows){
  5069. if(event.button == 3 && iRow == 1) {
  5070. sX = event.clientX;
  5071. sY = event.clientY-50;
  5072. grp_formerdaycountmenu.visible = true;
  5073. grp_formerdaycountmenu.attribute("left") = sX;
  5074. grp_formerdaycountmenu.attribute("top") = sY;
  5075. window.showPopupMenu(false);
  5076. sDayCountFlag = pFlag;
  5077. }else{
  5078. window.showPopupMenu(true);
  5079. }
  5080. }else{
  5081. sPopUpMenuFlag = pFlag;
  5082. if(event.button == 3 && grd_formersclincobsreclist.valueMatrix(iRow, grd_formersclincobsreclist.colRef("depth")) != "1" ){
  5083. setPopupMenu("grd_formersclincobsreclist",false, "/root/init/popmenu/valuemenu", "name", "func");
  5084. }
  5085. }
  5086. break;
  5087. case "DayCount" :
  5088. if(event.button == 3) {
  5089. switch(pGridFlag){
  5090. case "24HoursHeader" :
  5091. iRow = grd_24hoursheader.mouseRow;
  5092. sY = event.clientY-70;
  5093. break;
  5094. case "4DaysHeader" :
  5095. iRow = grd_4dayschartheader.mouseRow;
  5096. sY = 1;
  5097. break;
  5098. }
  5099. if(iRow == 0){
  5100. sDayCountFlag = pGridFlag;
  5101. sX = event.clientX;
  5102. grp_daycountmenu.visible = true;
  5103. grp_daycountmenu.attribute("left") = sX;
  5104. grp_daycountmenu.attribute("top") = sY;
  5105. window.showPopupMenu(false);
  5106. }
  5107. }else{
  5108. window.showPopupMenu(true);
  5109. }
  5110. break;
  5111. */
  5112. }
  5113. }
  5114. /**
  5115. * @group :
  5116. * @ver : 2009.12.15
  5117. * @by : 양천덕
  5118. * @---------------------------------------------------
  5119. * @type : function
  5120. * @access : public
  5121. * @desc : Day Count 설정
  5122. * @param :
  5123. * @return :
  5124. * @---------------------------------------------------
  5125. */
  5126. function fChangedDayCountInfo(){
  5127. var sDayCountInfo = "";
  5128. var sCapNm = "";
  5129. switch(sDayCountFlag){
  5130. case "24HoursHeader" :
  5131. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  5132. for(var i=1; i<=24; i++){
  5133. sHeader[2][i] = "";
  5134. for(var j=0; j<sDayCountInfo.length; j++){
  5135. if(sHeader[2][i] != "") sHeader[2][i] += ", ";
  5136. if(sDayCountInfo[j] == "1"){
  5137. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  5138. }else if(sDayCountInfo[j] == "2"){
  5139. sHeader[2][i] +="POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  5140. }else if(sDayCountInfo[j] == "3"){
  5141. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  5142. }else if(sDayCountInfo[j] == "4"){
  5143. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  5144. }else if(sDayCountInfo[j] == "5"){
  5145. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  5146. }else if(sDayCountInfo[j] == "6"){
  5147. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  5148. }
  5149. }
  5150. }
  5151. for(var iRow=1; iRow<=4; iRow++){
  5152. for(var iCol=0; iCol<=24; iCol++){
  5153. if(iRow == 1){
  5154. sCapNm += sHeader[iRow+1][iCol]; // day count
  5155. }else if(iRow == 3){ // 시
  5156. sCapNm += sHeader[iRow][iCol];
  5157. if(iCol != 0){ sCapNm += "시"; }
  5158. }else if(iRow == 4){ // 분
  5159. sCapNm += sHeader[iRow][iCol];
  5160. if(iCol != 0){ sCapNm += "분"; }
  5161. }
  5162. if(iCol != 24){
  5163. if(iRow != 2){ sCapNm += "^"; }
  5164. }
  5165. }
  5166. if(iRow != 4){
  5167. if((iRow%2)== 1){ sCapNm += "|"; }
  5168. }
  5169. }
  5170. grd_24hoursheader.caption = sCapNm;
  5171. break;
  5172. case "4DaysHeader" :
  5173. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  5174. for(var i=1; i<=16; i++){
  5175. sHeader[2][i] = "";
  5176. for(var j=0; j<sDayCountInfo.length; j++){
  5177. if(sHeader[2][i] != "") sHeader[2][i] += ", ";
  5178. if(sDayCountInfo[j] == "1"){
  5179. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  5180. }else if(sDayCountInfo[j] == "2"){
  5181. sHeader[2][i] +="POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  5182. }else if(sDayCountInfo[j] == "3"){
  5183. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  5184. }else if(sDayCountInfo[j] == "4"){
  5185. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  5186. }else if(sDayCountInfo[j] == "5"){
  5187. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  5188. }else if(sDayCountInfo[j] == "6"){
  5189. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  5190. }
  5191. }
  5192. }
  5193. for(var iRow=1; iRow<=3; iRow++){
  5194. for(var iCol=0; iCol<= 16; iCol++){
  5195. if(iRow == 1){
  5196. sCapNm += sHeader[iRow+1][iCol]; // day count
  5197. }else if(iRow == 3){ // 시
  5198. sCapNm += sHeader[iRow][iCol];
  5199. if(iCol != 0){ sCapNm += ":"+sHeader[4][iCol]; }
  5200. }
  5201. if(iCol != 16){
  5202. if(iRow != 2){ sCapNm += "^"; }
  5203. }
  5204. }
  5205. if(iRow != 3){
  5206. if(iRow == 1){ sCapNm += "|"; }
  5207. }
  5208. }
  5209. grd_4dayschartheader.caption = sCapNm;
  5210. break;
  5211. case "former" :
  5212. sDayCountInfo = model.getValue(sCondPath+"/formerdaycountinfo").split(" ");
  5213. for(var i=1; i<=6; i++){
  5214. sFormerHeader[2][i] = "";
  5215. for(var j=0; j<sDayCountInfo.length; j++){
  5216. if(sFormerHeader[2][i] != "") sFormerHeader[2][i] += ", ";
  5217. if(sDayCountInfo[j] == "1"){
  5218. sFormerHeader[2][i] += "HD:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/hd");
  5219. }else if(sDayCountInfo[j] == "2"){
  5220. sFormerHeader[2][i] +="POD:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/pod");
  5221. }else if(sDayCountInfo[j] == "3"){
  5222. sFormerHeader[2][i] += "ICU:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/icu");
  5223. }else if(sDayCountInfo[j] == "4"){
  5224. sFormerHeader[2][i] += "D:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/d");
  5225. }else if(sDayCountInfo[j] == "5"){
  5226. sFormerHeader[2][i] += "BMT:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/bmt");
  5227. }else if(sDayCountInfo[j] == "6"){
  5228. sFormerHeader[2][i] += "CP:"+model.getValue(xFormerDayCountListPath+"[recdd='"+sFormerHeader[1][i]+"']/cp");
  5229. }
  5230. }
  5231. }
  5232. for(var iRow=1; iRow<=4; iRow++){
  5233. for(var iCol=0; iCol<=6; iCol++){
  5234. if(iRow == 1){
  5235. if(iCol == 0){
  5236. sCapNm += sFormerHeader[iRow][iCol];
  5237. }else{
  5238. sCapNm += sFormerHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  5239. " ("+sFormerHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  5240. }
  5241. }else if(iRow == 2){ // day count
  5242. sCapNm += sFormerHeader[iRow][iCol];
  5243. }else if(iRow == 3){ // 시
  5244. sCapNm += sFormerHeader[iRow][iCol];
  5245. if(iCol != 0){ sCapNm += "시"; }
  5246. }else if(iRow == 4){ // 분
  5247. sCapNm += sFormerHeader[iRow][iCol];
  5248. if(iCol != 0){ sCapNm += "분"; }
  5249. }
  5250. if(iCol != 6){ sCapNm += "^"; }
  5251. }
  5252. if(iRow != 4){ sCapNm += "|";}
  5253. }
  5254. grd_formersclincobsreclist.caption = sCapNm;
  5255. break;
  5256. case "stnd" :
  5257. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  5258. for(var i=1; i<=14; i++){
  5259. sHeader[2][i] = "";
  5260. for(var j=0; j<sDayCountInfo.length; j++){
  5261. if(sHeader[2][i] != "") sHeader[2][i] += ", ";
  5262. if(sDayCountInfo[j] == "1"){
  5263. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  5264. }else if(sDayCountInfo[j] == "2"){
  5265. sHeader[2][i] +="POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  5266. }else if(sDayCountInfo[j] == "3"){
  5267. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  5268. }else if(sDayCountInfo[j] == "4"){
  5269. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  5270. }else if(sDayCountInfo[j] == "5"){
  5271. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  5272. }else if(sDayCountInfo[j] == "6"){
  5273. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  5274. }
  5275. }
  5276. }
  5277. for(var iRow=1; iRow<=4; iRow++){
  5278. for(var iCol=0; iCol<=14; iCol++){
  5279. if(iRow == 1){
  5280. if(iCol == 0){
  5281. sCapNm += sHeader[iRow][iCol]; // 년월일
  5282. }else{
  5283. sCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  5284. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  5285. }
  5286. }else if(iRow == 2){ // day count
  5287. sCapNm += sHeader[iRow][iCol];
  5288. }else if(iRow == 3){ // 시
  5289. sCapNm += sHeader[iRow][iCol];
  5290. if(iCol != 0){ sCapNm += "시"; }
  5291. }else if(iRow == 4){ // 분
  5292. sCapNm += sHeader[iRow][iCol];
  5293. if(iCol != 0){ sCapNm += "분"; }
  5294. }
  5295. if(iCol != 14){ sCapNm += "^"; }
  5296. }
  5297. if(iRow != 4){ sCapNm += "|";}
  5298. }
  5299. grd_stndclincobsreclist.caption = sCapNm;
  5300. break;
  5301. case "24hours" :
  5302. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  5303. for(var i=1; i<=24; i++){
  5304. sHeader[2][i] = "";
  5305. for(var j=0; j<sDayCountInfo.length; j++){
  5306. if(sHeader[2][i] != "") sHeader[2][i] += ", ";
  5307. if(sDayCountInfo[j] == "1"){
  5308. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  5309. }else if(sDayCountInfo[j] == "2"){
  5310. sHeader[2][i] +="POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  5311. }else if(sDayCountInfo[j] == "3"){
  5312. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  5313. }else if(sDayCountInfo[j] == "4"){
  5314. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  5315. }else if(sDayCountInfo[j] == "5"){
  5316. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  5317. }else if(sDayCountInfo[j] == "6"){
  5318. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  5319. }
  5320. }
  5321. }
  5322. for(var iRow=1; iRow<=4; iRow++){
  5323. for(var iCol=0; iCol<=24; iCol++){
  5324. if(iRow == 1){
  5325. if(iCol == 0){
  5326. sCapNm += sHeader[iRow][iCol]; // 년월일
  5327. }else{
  5328. sCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  5329. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  5330. }
  5331. }else if(iRow == 2){ // day count
  5332. sCapNm += sHeader[iRow][iCol];
  5333. }else if(iRow == 3){ // 시
  5334. sCapNm += sHeader[iRow][iCol];
  5335. if(iCol != 0){ sCapNm += "시"; }
  5336. }else if(iRow == 4){ // 분
  5337. sCapNm += sHeader[iRow][iCol];
  5338. if(iCol != 0){ sCapNm += "분"; }
  5339. }
  5340. if(iCol != 24){ sCapNm += "^"; }
  5341. }
  5342. if(iRow != 4){ sCapNm += "|"; }
  5343. }
  5344. grd_24hoursclincobsreclist.caption = sCapNm;
  5345. break;
  5346. /*
  5347. case "4days" :
  5348. sDayCountInfo = model.getValue(sCondPath+"/daycountinfo").split(" ");
  5349. for(var i=1; i<=16; i++){
  5350. sHeader[2][i] = "";
  5351. for(var j=0; j<sDayCountInfo.length; j++){
  5352. if(sHeader[2][i] != "") sHeader[2][i] += ", ";
  5353. if(sDayCountInfo[j] == "1"){
  5354. sHeader[2][i] += "HD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/hd");
  5355. }else if(sDayCountInfo[j] == "2"){
  5356. sHeader[2][i] +="POD:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/pod");
  5357. }else if(sDayCountInfo[j] == "3"){
  5358. sHeader[2][i] += "ICU:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/icu");
  5359. }else if(sDayCountInfo[j] == "4"){
  5360. sHeader[2][i] += "D:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/d");
  5361. }else if(sDayCountInfo[j] == "5"){
  5362. sHeader[2][i] += "BMT:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/bmt");
  5363. }else if(sDayCountInfo[j] == "6"){
  5364. sHeader[2][i] += "CP:"+model.getValue(xDayCountListPath+"[recdd='"+sHeader[1][i]+"']/cp");
  5365. }
  5366. }
  5367. }
  5368. for(var iRow=1; iRow<=3; iRow++){
  5369. for(var iCol=0; iCol<= 16; iCol++){
  5370. if(iRow == 1){
  5371. if(iCol == 0){
  5372. sCapNm += sHeader[iRow][iCol]; // 년월일
  5373. }else{
  5374. sCapNm += sHeader[iRow][iCol].toDate("YYYYMMDD").getDateFormat("YYYY년 MM월 DD일")+
  5375. " ("+sHeader[iRow][iCol].toDate("YYYYMMDD").getDayOfWeek("k")+")";
  5376. }
  5377. }else if(iRow == 2){ // day count
  5378. sCapNm += sHeader[iRow][iCol];
  5379. }else if(iRow == 3){ // 시
  5380. sCapNm += sHeader[iRow][iCol];
  5381. if(iCol != 0){ sCapNm += ":"+sHeader[4][iCol]; }
  5382. }
  5383. if(iCol != 16){ sCapNm += "^"; }
  5384. }
  5385. if(iRow != 3){ sCapNm += "|"; }
  5386. }
  5387. grd_4daysclincobsreclist.caption = sCapNm;
  5388. break;
  5389. */
  5390. }
  5391. }
  5392. /**
  5393. * @group :
  5394. * @ver : 2009.12.15
  5395. * @by : 양천덕
  5396. * @---------------------------------------------------
  5397. * @type : function
  5398. * @access : public
  5399. * @desc : 그리드 항목별 부분 합계 Setting
  5400. * @param :
  5401. * @return :
  5402. * @---------------------------------------------------
  5403. */
  5404. function fAddItemSubTotal(){
  5405. var iSelectedRow = 0;
  5406. switch(sPopUpMenuFlag){
  5407. case "24hours" :
  5408. var iRowCnt = grd_24hoursclincobsreclist.selectedCells.length-1;
  5409. //alert(iRowCnt);
  5410. iSelectedRow = grd_24hoursclincobsreclist.selectedCells.item(iRowCnt).row;
  5411. //alert(grd_24hoursclincobsreclist.selectedCells.length);
  5412. //alert(iSelectedRow);
  5413. // grd_24hoursclincobsreclist.insertRow(++iSelectedRow,"below");
  5414. // var iCol =
  5415. break;
  5416. case "4days" :
  5417. break;
  5418. case "stnd" :
  5419. break;
  5420. }
  5421. }
  5422. /**
  5423. * @group :
  5424. * @ver : 2009.12.15
  5425. * @by : 양천덕
  5426. * @---------------------------------------------------
  5427. * @type : function
  5428. * @access : public
  5429. * @desc : 그리드 값별 부분 합계 계산
  5430. * @param :
  5431. * @return :
  5432. * @---------------------------------------------------
  5433. */
  5434. function fCalcValueSubTotal(){
  5435. var sPopUpMenuFlag = model.getValue("/root/main/cond/vwctrl_button");
  5436. var sDataSum = 0;
  5437. switch(sPopUpMenuFlag){
  5438. case "24hours" :
  5439. var sCells = grd_24hoursclincobsreclist.selectedCells;
  5440. for(var i = 0 ; i < sCells.length ; i ++){
  5441. var col = sCells.item(i).col;
  5442. var row = sCells.item(i).row;
  5443. var subtotal = 0;
  5444. var sSubTotalRecFlag = grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("recflag"));
  5445. var sSubTotalAttrCd = grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("attrcd"));
  5446. if( sSubTotalAttrCd == "" || sSubTotalRecFlag == "B" || sSubTotalRecFlag == "C" || sSubTotalRecFlag == "T" ){
  5447. subtotal = grd_24hoursclincobsreclist.valueMatrix( row, col );
  5448. }
  5449. if( subtotal != "" && fIsNumber(subtotal) == true){
  5450. sDataSum += Number(subtotal) ;
  5451. }
  5452. }
  5453. alert( sDataSum );
  5454. break;
  5455. /*
  5456. case "4days" :
  5457. var sCells = grd_4daysclincobsreclist.selectedCells;
  5458. for(var i = 0 ; i < sCells.length ; i ++){
  5459. var col = sCells.item(i).col;
  5460. var row = sCells.item(i).row;
  5461. var subtotal = 0;
  5462. if(//grd_4daysclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5463. (grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("recflag")) == "B" ||
  5464. grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("recflag")) == "C" ||
  5465. grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("recflag")) == "T" ) &&
  5466. (grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("attrcd")) == "" ||
  5467. grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("totalyn"))== "Y")){
  5468. subtotal = grd_4daysclincobsreclist.valueMatrix( row, col );
  5469. }
  5470. if( subtotal != "" && fIsNumber(subtotal) == true){
  5471. sDataSum += Number(subtotal) ;
  5472. }
  5473. }
  5474. alert("SubTotal : " + sDataSum);
  5475. break;
  5476. case "stnd" :
  5477. var sCells = grd_stndclincobsreclist.selectedCells;
  5478. for(var i = 0 ; i < sCells.length ; i ++){
  5479. var col = sCells.item(i).col;
  5480. var row = sCells.item(i).row;
  5481. var subtotal = 0;
  5482. if(//grd_stndclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5483. (grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("recflag")) == "B" ||
  5484. grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("recflag")) == "C" ||
  5485. grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("recflag")) == "T" ) &&
  5486. (grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("attrcd")) == "" ||
  5487. grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("totalyn"))== "Y")){
  5488. subtotal = grd_stndclincobsreclist.valueMatrix( row, col );
  5489. }
  5490. if( subtotal != "" && fIsNumber(subtotal) == true){
  5491. sDataSum += Number(subtotal) ;
  5492. }
  5493. }
  5494. alert("SubTotal : " + sDataSum);
  5495. break;
  5496. case "former" :
  5497. var sCells = grd_formersclincobsreclist.selectedCells;
  5498. for(var i = 0 ; i < sCells.length ; i ++){
  5499. var col = sCells.item(i).col;
  5500. var row = sCells.item(i).row;
  5501. var subtotal = 0;
  5502. if(//grd_stndclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5503. (grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("recflag")) == "B" ||
  5504. grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("recflag")) == "C" ||
  5505. grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("recflag")) == "T" ) &&
  5506. (grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("attrcd")) == "" ||
  5507. grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("totalyn"))== "Y")){
  5508. subtotal = grd_formersclincobsreclist.valueMatrix( row, col );
  5509. }
  5510. if( subtotal != "" && fIsNumber(subtotal) == true){
  5511. sDataSum += Number(subtotal) ;
  5512. }
  5513. }
  5514. alert("SubTotal : " + sDataSum);
  5515. break;
  5516. */
  5517. }
  5518. sPopUpMenuFlag = "";
  5519. }
  5520. /**
  5521. * @group :
  5522. * @ver : 2009.12.15
  5523. * @by : 양천덕
  5524. * @---------------------------------------------------
  5525. * @type : function
  5526. * @access : public
  5527. * @desc : 환자 선택시 상단정보 변경
  5528. * @param :
  5529. * @return :
  5530. * @---------------------------------------------------
  5531. */
  5532. function fSetParam(pFlag, pIndex){
  5533. if(getNodesetCount("/root/main/paminfo/pamlist") > 0){
  5534. model.removenodeset("root/main/paminfo/pamlist");
  5535. }
  5536. var sOrdtype = "";
  5537. var sPid = "";
  5538. var sIndd = "";
  5539. var sCretno = "";
  5540. var sInstcd = "";
  5541. var param = "";
  5542. if(pFlag == "SrchPat"){
  5543. sOrdtype = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/ordtype" );
  5544. if(sOrdtype == "I" || sOrdtype == "D") {
  5545. sOrdtype = "I";
  5546. }
  5547. sPid = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/pid" );
  5548. sIndd = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/indd" );
  5549. sCretno = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/cretno" );
  5550. sInstcd = model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ pIndex +"]/instcd" );
  5551. cmb_mypatlist.value = "";
  5552. }else if(pFlag == "SettingPat"){
  5553. sOrdtype = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/ordtype" );
  5554. //20120207_KNUH_Start 환자선택시 DSC같은 경우에는 상단 parameter가 잘못되었습니다 오류뜸.(그래서 I로 넣어줌, 항암메인과 조건동일)
  5555. if(sOrdtype == "I" || sOrdtype == "D") {
  5556. sOrdtype = "I";
  5557. }
  5558. sPid = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/pid" );
  5559. sIndd = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/indd" );
  5560. sCretno = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/cretno" );
  5561. sInstcd = model.getValue("/root/temp/cond/settingpatient/settingpatientlist["+ pIndex +"]/instcd" );
  5562. }
  5563. if ( sJobkind != "03" ) {
  5564. param = sOrdtype + "▦"
  5565. + sPid + "▦"
  5566. + sIndd + "▦"
  5567. + sCretno + "▦"
  5568. + sInstcd + "▦"
  5569. + "▦" ;
  5570. setParameter("condparam", param);
  5571. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  5572. }
  5573. if(pFlag == "SrchPat"){
  5574. //fInitialize("patinit");
  5575. fSettingPat("patinit");
  5576. }else if(pFlag == "SettingPat"){
  5577. //fInitialize("reset");
  5578. fSettingPat("reset");
  5579. }
  5580. }
  5581. /**
  5582. * @group :
  5583. * @ver : 2009.12.15
  5584. * @by : 양천덕
  5585. * @---------------------------------------------------
  5586. * @type : function
  5587. * @access : public
  5588. * @desc : 환자 선택시 상단정보 변경
  5589. * @param :
  5590. * @return :
  5591. * @---------------------------------------------------
  5592. */
  5593. function fSettingPat(pFlag){
  5594. if(sSelectView == "24hours") fMakeChart("init24hours");
  5595. //if(sSelectView == "4days" ) fMakeChart("init4days" );
  5596. //환자정보 조회
  5597. sPamInfo = getGlobalVariable("paminfo");
  5598. model.removenodeset("/root/main/paminfo/pamlist");
  5599. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  5600. //이윤주 수정(20160111)
  5601. if ( sJobkind == "03") {
  5602. model.makeValue("/root/send/pid",cmb_patlist.value);
  5603. if (submit("TRMNR00911")) {
  5604. model.copyNode("/root/main/paminfo", "/root/tmp/paminfo");
  5605. sPamInfo = "-";
  5606. }
  5607. }
  5608. if(sPamInfo == ""){
  5609. fChkTgtPatInfo("disable");
  5610. fChangUserTypeSrch(sUserFlag);
  5611. model.refresh();
  5612. return;
  5613. }else{
  5614. fChkTgtPatInfo("able");
  5615. fSettingViewCtrl();
  5616. }
  5617. fSettingPatInfo(pFlag);
  5618. fSettingPatInfo2(pFlag);
  5619. }
  5620. function fSettingPatInfo(){
  5621. sPid = model.getValue(xPamInfoPath+"/pid"); // 환자번호
  5622. sCretNo = model.getValue(xPamInfoPath+"/cretno"); // 환자 일자별 일련번호
  5623. sInstcd = model.getValue(xPamInfoPath+"/instcd"); // 기관코드
  5624. sIOFlag = model.getValue(xPamInfoPath+"/ioflag"); // 입원/외래 구분
  5625. sWardCD = model.getValue(xPamInfoPath+"/wardcd"); // 병동코드
  5626. sRoomCD = model.getValue(xPamInfoPath+"/roomcd"); // 병실코드
  5627. sIndschacptstat = model.getValue(xPamInfoPath+"/indschacptstat"); //입퇴원구분코드
  5628. sDschdd = model.getValue(xPamInfoPath+"/dschdd"); // 퇴원일자
  5629. sPatNm = model.getValue(xPamInfoPath+"/hngnm"); // 환자명
  5630. sSexAge = model.getValue(xPamInfoPath+"/sex") +"/"+ model.getValue(xPamInfoPath+"/age"); // 성별
  5631. sOrdDeptcd = model.getValue(xPamInfoPath+"/orddeptcd");
  5632. sMedispclid = model.getValue(xPamInfoPath+"/medispclid");
  5633. var eSectionCD = model.getValue(xPamInfoPath+"/sectioncd"); // 구역코드 (2011.03.02 Ahn)
  5634. if(sIOFlag == "O"){
  5635. sIndd = model.getValue(xPamInfoPath+"/orddd"); // 진료일자
  5636. }else{
  5637. sIndd = model.getValue(xPamInfoPath+"/indd"); // 입원일자
  5638. }
  5639. model.setValue(sCondPath+"/pid", sPid);
  5640. model.setValue("/root/main/patinfo/pid", sPid);
  5641. model.setValue("/root/main/patinfo/indd", sIndd);
  5642. model.setValue("/root/main/patinfo/cretno", sCretNo);
  5643. model.setValue("/root/main/patinfo/ordtype", sIOFlag);
  5644. model.setValue("/root/main/patinfo/indschacptstat", sIndschacptstat);
  5645. model.setValue("/root/main/patinfo/dschdd", sDschdd);
  5646. model.setValue("/root/main/patinfo/wardcd", sWardCD);
  5647. model.setValue("/root/main/patinfo/roomcd", sRoomCD);
  5648. model.setValue("/root/main/patinfo/patnm", sPatNm);
  5649. model.setValue("/root/main/patinfo/sexage", sSexAge);
  5650. model.setValue("/root/main/patinfo/orddeptcd", sOrdDeptcd);
  5651. model.setValue("/root/main/patinfo/medispclid", sMedispclid);
  5652. model.makeValue("/root/main/patinfo/sectioncd", eSectionCD); // 구역코드 (2011.03.02 Ahn)
  5653. }
  5654. function fSettingPatInfo2(pFlag){
  5655. //외래 환자 임상관찰기록 화면 컨트롤 제어
  5656. if(sIOFlag == "O"){
  5657. fChkTgtPatInfo("disable");
  5658. messageBox("외래 환자는 임상관찰기록이 ","I004");
  5659. //model.toggle("case_24hoursstnd");
  5660. model.refresh();
  5661. return;
  5662. }
  5663. //퇴원/입원 환자 구분에 따른 화면 제어
  5664. if(sIndschacptstat == "D"){
  5665. rdo_srchflag.visible = false; //퇴원환자 조회구분 숨기기
  5666. grp_oderinpatinfo.visible = false;
  5667. grp_inpatinfo.visible = false;
  5668. grp_outpatinfo.visible = true;
  5669. model.setValue(sCondPath+"/recdd",sDschdd);
  5670. model.setValue(sCondPath+"/formerrecdd", getDateCalc(sDschdd,1));
  5671. }else{
  5672. if(pFlag == "init" || pFlag == "reset"){
  5673. fSettingUserTypeSrch(sUserFlag);
  5674. }
  5675. var sRecdate = "";
  5676. var sRectime = "";
  5677. if(sSpParamInfo == "" || sGbn == "dr"){
  5678. if(getCurrentTime().substr(0,4) < sStartTm.substr(0,4)){
  5679. sRecdate = getDateCalc(getCurrentDate(),1,"-");
  5680. }else{
  5681. sRecdate = getCurrentDate();
  5682. }
  5683. }else{
  5684. sRecdate = fGetArrayDataTPR(sSpParamInfo,1,4).substr(0,8);
  5685. sRectime = fGetArrayDataTPR(sSpParamInfo,1,4).substr(8,6);
  5686. model.setValue(sCondPath+"/rectm",sRectime);
  5687. }
  5688. model.setValue(sCondPath+"/recdd",sRecdate);
  5689. model.setValue(sCondPath+"/formerrecdd", getDateCalc(model.getValue(sCondPath+"/recdd"),1));
  5690. /*
  5691. if(pFlag == "init"){
  5692. //병동코드 조회
  5693. fGetCareComWardList("false");
  5694. //진료과 정보 조회(진료 제공 인터페이스)
  5695. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/temp/cond/deptgrup/deptgruplist" , "D"); //부서코드 콤보
  5696. //내환자 조회
  5697. fGetSettingPatientList("false");
  5698. }
  5699. */
  5700. if(pFlag == "reset" || pFlag == "init"){
  5701. if(sUserFlag == "2"){
  5702. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/cond/doctlist/medispcl" , sOrdDeptcd, "0330", "", "M");
  5703. mmbfGetUserComboList("/root/send/reqdata", "/root/temp/cond/doctlist/atdoct", sOrdDeptcd, "0330", "", "A");
  5704. addComboInstance("/root/temp/cond/doctlist/medispcl", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  5705. addComboInstance("/root/temp/cond/doctlist/atdoct", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
  5706. //model.setValue("/root/temp/cond/doctlist/atdoct", "-");
  5707. fGetCareComDeptPatList(sOrdDeptcd, sMedispclid , '-', model.getValue("/root/init/mypatsrchflag"));
  5708. cmb_deptlist.value = sOrdDeptcd;
  5709. cmb_medispcllist.value = sMedispclid;
  5710. cmb_atdoctlist.value = "-";
  5711. cmb_oderpatlist.value = sPid;
  5712. ipt_orderpid.value = sPid;
  5713. //model.setValue("/root/temp/cond/deptgrup/deptgruplist/dept", sOrdDeptcd);
  5714. //model.setValue("/root/temp/cond/doctlist/medispcl/usercombo", sMedispclid);
  5715. //model.setValue("/root/temp/cond/doctlist/atdoct/usercombo", "-");
  5716. //model.setValue("/root/temp/cond/patientgrup/patientgruplist", sPid);
  5717. //model.setValue("/root/main/cond/pid", sPid);
  5718. }else{
  5719. fGetCareComRoomList(sWardCD);
  5720. fGetCareComPatList(sWardCD, sRoomCD, cmb_zone.value, eRECFLAG); // 환자 조회시 구역코드 추가 (2011.03.02 Ahn)
  5721. cmb_wardlist.value = sWardCD;
  5722. cmb_roomlist.value = sRoomCD;
  5723. cmb_patlist.value = sPid;
  5724. ipt_pid.value = sPid;
  5725. cmb_mypatlist.value = sPid;
  5726. //model.setValue("/root/temp/cond/wardcdgrup/wardcdgruplist", sWardCD);
  5727. //model.setValue("/root/temp/cond/roomcdgrup/roomcdgruplist", sRoomCD);
  5728. //model.setValue("/root/temp/cond/patientgrup/patientgruplist", sPid);
  5729. //model.setValue("/root/main/cond/pid", sPid);
  5730. //model.setValue("/root/temp/cond/settingpatient/settingpatientlist", sPid);
  5731. }
  5732. }else if(pFlag == "patinit"){
  5733. cmb_mypatlist.value = sPid;
  5734. }
  5735. }
  5736. //*********************************************************************************
  5737. // 환자 조회 이후 처리 로직
  5738. //*********************************************************************************
  5739. //활력징후 대상 환자 환자 V/S 세팅
  5740. var vsinfo = "";
  5741. if(model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/unstableyn") == "Y"){
  5742. vsinfo = model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/chosdt").substr(0, 4) + "-"
  5743. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/chosdt").substr(4, 2) + "-"
  5744. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/chosdt").substr(6, 2) + " "
  5745. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/chosdt").substr(8, 2) + ":"
  5746. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/chosdt").substr(10, 2) + "\n"
  5747. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/highbp" ) + "/"
  5748. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/lowbp" ) + "-"
  5749. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/mntpulsecnt" ) + "-"
  5750. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/mntbrethcnt" ) + "-"
  5751. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/chosbdtp" ) + "-"
  5752. + model.getValue("/root/temp/cond/patientgrup/patientgruplist[pid = "+ sPid +"]/oxyconcen" ) ; //산소포화도 추가_20110207_SMY
  5753. }
  5754. model.setValue("/root/temp/vsinfo", vsinfo);
  5755. var sBizLnkFlag = model.getValue(sCondPath+"/bizlnkflag");
  5756. // 2008/04/21 추가
  5757. //model.copyNode("/root/send", xPamInfoPath);
  5758. model.copyNode("/root/send", "/root/main/patinfo");
  5759. chk_24hoursclslist.attribute("cols")= 0;
  5760. if(sBizLnkFlag == "Y"){
  5761. model.makeValue("/root/send/bizdeptcd", sDutplcecd);
  5762. }
  5763. /*
  5764. var sSrchClsInfoList = "";
  5765. if(submit("TRMNR00901_SJH", false)){
  5766. chk_24hoursclslist.attribute("cols") = getNodesetCnt(model, "/root/init/clsinfo/clslist");
  5767. if(sSrchTypeInfo == "ALL"){
  5768. for(var i = 0 ; i <= getNodesetCnt(model, "/root/init/clsinfo/clslist") ; i++){
  5769. if(sSrchClsInfoList == ""){
  5770. sSrchClsInfoList += model.getValue("/root/init/clsinfo/clslist["+i+"]/itemcd");
  5771. }else{
  5772. sSrchClsInfoList += " " + model.getValue("/root/init/clsinfo/clslist["+i+"]/itemcd");
  5773. }
  5774. }
  5775. model.setValue("/root/main/cond/hoursclsinfo", sSrchClsInfoList);
  5776. }else{
  5777. model.setValue("/root/main/cond/hoursclsinfo", sSrchTypeInfo);
  5778. }
  5779. chk_24hoursclslist.refresh();
  5780. }
  5781. */
  5782. //환자 기록 정보 조회
  5783. fSearchClincObsRec();
  5784. }
  5785. /**
  5786. * @group :
  5787. * @ver : 2009.12.15
  5788. * @by : 양천덕
  5789. * @---------------------------------------------------
  5790. * @type : function
  5791. * @access : public
  5792. * @desc : 셀 선택시 합계 계산
  5793. * @param :
  5794. * @return :
  5795. * @---------------------------------------------------
  5796. */
  5797. function fCalcDataSmmy(pFlag){
  5798. var sDataSum = 0;
  5799. var sStartDt = "";
  5800. var sEndDt = "";
  5801. switch(pFlag){
  5802. case "24hours" :
  5803. var sCells = grd_24hoursclincobsreclist.selectedCells;
  5804. for(var i = 0 ; i < sCells.length ; i ++){
  5805. var col = sCells.item(i).col;
  5806. var row = sCells.item(i).row;
  5807. var subtotal = 0;
  5808. if(//grd_24hoursclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5809. //grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("totalyn")) == "Y" &&
  5810. (grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("recflag")) == "B" ||
  5811. grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("recflag")) == "C" ||
  5812. grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("recflag")) == "T" )){
  5813. subtotal = grd_24hoursclincobsreclist.valueMatrix( row, col );
  5814. }
  5815. if( subtotal != "" && fIsNumber(subtotal) == true){
  5816. sDataSum += Number(subtotal) ;
  5817. }
  5818. if( sStartDt == "" || sStartDt > sHeader[1][col]+sHeader[3][col]+sHeader[4][col] ) sStartDt = sHeader[1][col].substr(4,2)+"/"+sHeader[1][col].substr(6,2)+" "+sHeader[3][col]+":"+sHeader[4][col];
  5819. if( sEndDt == "" || sEndDt < sHeader[1][col]+sHeader[3][col]+sHeader[4][col] ) sEndDt = sHeader[1][col].substr(4,2)+"/"+sHeader[1][col].substr(6,2)+" "+sHeader[3][col]+":"+sHeader[4][col];
  5820. }
  5821. if( sDataSum == 0 || sDataSum == ""){
  5822. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  5823. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", "");
  5824. }else{
  5825. model.setValue(sCondPath+"/detlrecinfo/subtotal", sDataSum);
  5826. model.setValue(sCondPath+"/detlrecinfo/subtotalarray", sStartDt + "~" + sEndDt);
  5827. }
  5828. opt_subtotalarray.refresh();
  5829. opt_subtotal.refresh();
  5830. break;
  5831. /*
  5832. case "4days" :
  5833. var sCells = grd_4daysclincobsreclist.selectedCells;
  5834. for(var i = 0 ; i < sCells.length ; i ++){
  5835. var col = sCells.item(i).col;
  5836. var row = sCells.item(i).row;
  5837. var subtotal = 0;
  5838. if(//grd_4daysclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5839. //grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("totalyn")) == "Y" &&
  5840. (grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("recflag")) == "B" ||
  5841. grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("recflag")) == "C" ||
  5842. grd_4daysclincobsreclist.valueMatrix(row, grd_4daysclincobsreclist.colRef("recflag")) == "T" )){
  5843. subtotal = grd_4daysclincobsreclist.valueMatrix( row, col );
  5844. }
  5845. if( subtotal != "" && fIsNumber(subtotal) == true){
  5846. sDataSum += Number(subtotal) ;
  5847. }
  5848. }
  5849. if( sDataSum == 0 ){
  5850. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  5851. }else{
  5852. model.setValue(sCondPath+"/detlrecinfo/subtotal", sDataSum);
  5853. }
  5854. opt_subtotal.refresh();
  5855. break;
  5856. case "stnd" :
  5857. var sCells = grd_stndclincobsreclist.selectedCells;
  5858. for(var i = 0 ; i < sCells.length ; i ++){
  5859. var col = sCells.item(i).col;
  5860. var row = sCells.item(i).row;
  5861. var subtotal = 0;
  5862. if(//grd_stndclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5863. //grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("totalyn")) == "Y" &&
  5864. (grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("recflag")) == "B" ||
  5865. grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("recflag")) == "C" ||
  5866. grd_stndclincobsreclist.valueMatrix(row, grd_stndclincobsreclist.colRef("recflag")) == "T" )){
  5867. subtotal = grd_stndclincobsreclist.valueMatrix( row, col );
  5868. }
  5869. if( subtotal != "" && fIsNumber(subtotal) == true){
  5870. sDataSum += Number(subtotal) ;
  5871. }
  5872. }
  5873. if( sDataSum == 0 ){
  5874. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  5875. }else{
  5876. model.setValue(sCondPath+"/detlrecinfo/subtotal", sDataSum);
  5877. }
  5878. opt_subtotal.refresh();
  5879. break;
  5880. case "former" :
  5881. var sCells = grd_formersclincobsreclist.selectedCells;
  5882. for(var i = 0 ; i < sCells.length ; i ++){
  5883. var col = sCells.item(i).col;
  5884. var row = sCells.item(i).row;
  5885. var subtotal = 0;
  5886. if(//grd_formersclincobsreclist.cellComboNodeset(row, col) == "/root/temp/attrinfo/attrlist" &&
  5887. //grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("totalyn")) == "Y" &&
  5888. (grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("recflag")) == "B" ||
  5889. grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("recflag")) == "C" ||
  5890. grd_formersclincobsreclist.valueMatrix(row, grd_formersclincobsreclist.colRef("recflag")) == "T" )){
  5891. subtotal = grd_formersclincobsreclist.valueMatrix( row, col );
  5892. }
  5893. if( subtotal != "" && fIsNumber(subtotal) == true){
  5894. sDataSum += Number(subtotal) ;
  5895. }
  5896. }
  5897. if( sDataSum == 0 ){
  5898. model.setValue(sCondPath+"/detlrecinfo/subtotal", "");
  5899. }else{
  5900. model.setValue(sCondPath+"/detlrecinfo/subtotal", sDataSum);
  5901. }
  5902. opt_subtotal.refresh();
  5903. break;
  5904. */
  5905. }
  5906. }
  5907. /**
  5908. * @group :
  5909. * @ver : 2009.12.15
  5910. * @by : 양천덕
  5911. * @---------------------------------------------------
  5912. * @type : function
  5913. * @access : public
  5914. * @desc : 그리드 선택시 선택 모드 변경 부분
  5915. * @param :
  5916. * @return :
  5917. * @---------------------------------------------------
  5918. */
  5919. function fChangeDataGridSelectionModeSet(pFlag){
  5920. if( sCells.item(0).col == sCells.item(sCells.length-1).lcol ){
  5921. grd_24hoursclincobsreclist.selectionmode = "bycol";
  5922. }else{
  5923. grd_24hoursclincobsreclist.selectionmode = "free";
  5924. }
  5925. }
  5926. /**
  5927. * @group :
  5928. * @ver : 2009.12.15
  5929. * @by : 양천덕
  5930. * @---------------------------------------------------
  5931. * @type : function
  5932. * @access : public
  5933. * @desc : 셀 입력 완료 후 포커스를 받았을 경우 발생
  5934. * @param :
  5935. * @return :
  5936. * @---------------------------------------------------
  5937. */
  5938. function fEnterKeyGridCell(pFlag){
  5939. var iRow = 0;
  5940. var iCol = 0;
  5941. var iRecRow = 0;
  5942. var sRecFromDT = "";
  5943. var sRecToDT = "";
  5944. var sRecDT = "";
  5945. var sAttrCD = "";
  5946. switch(pFlag){
  5947. case "24hours" :
  5948. iRecRow = grd_24hoursclincobsreclist.row - grd_24hoursclincobsreclist.fixedrows+1;
  5949. iRow = grd_24hoursclincobsreclist.row;
  5950. iCol = grd_24hoursclincobsreclist.col;
  5951. sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  5952. sRecFromDT = model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/recfromdt");
  5953. sRecToDT = model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/rectodt");
  5954. sAttrCD = model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/attrcd");
  5955. sReChartFlag = model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/reccharflag");
  5956. //alert("fEnterKeyGridCell" +" : " + iRow);
  5957. // 의사의 경우
  5958. //---------(20101204) 경북대
  5959. //추가
  5960. var ssflag = "";
  5961. if(getUserInfo("dutplceinstcd") != '032' && getUserInfo("dutplceinstcd") != '031') {
  5962. //경북대가 아니면
  5963. if( sJobKindCD == "0330" || sJobKindCD == "0310"){
  5964. ssflag = "Y";
  5965. }else{
  5966. ssflag = "N";
  5967. }
  5968. } else if(getUserInfo("dutplceinstcd") == '032' || getUserInfo("dutplceinstcd") == '031') {
  5969. //경북대이면 03%로 체크한다.
  5970. if( sJobKindCD.substring(0, 2) == "03"){
  5971. ssflag = "Y";
  5972. }else{
  5973. ssflag = "N";
  5974. }
  5975. }
  5976. //원본:의사의 경우만
  5977. //if(sJobKindCD == "30"){
  5978. if(ssflag=="Y") {
  5979. //---------(20101204) 경북대
  5980. grd_24hoursclincobsreclist.combo.button.visible = false;
  5981. grd_24hoursclincobsreclist.isReadOnly(iRow,grd_24hoursclincobsreclist.fixedCols,iRow, grd_24hoursclincobsreclist.cols-1) = true;
  5982. return;
  5983. }
  5984. // if(eval(model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/depth")) == 1){
  5985. // grd_24hoursclincobsreclist.combo.button.visible = false;
  5986. // grd_24hoursclincobsreclist.isReadOnly(iRow,grd_24hoursclincobsreclist.fixedCols,iRow, grd_24hoursclincobsreclist.cols-1) = true;
  5987. // }else{
  5988. // //2008-05-21 변경
  5989. // //if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/recyn") == "N"){
  5990. // if(sRecDT < sRecFromDT || sRecDT > sRecToDT ){
  5991. // if(model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/attrcd") == ""){
  5992. // grd_24hoursclincobsreclist.combo.button.visible = false;
  5993. // grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(grd_24hoursclincobsreclist.col);
  5994. // }
  5995. // grd_24hoursclincobsreclist.isReadOnly(iRow,iCol) = true;
  5996. //
  5997. // }else{
  5998. if(sReChartFlag =="A" && sAttrCD != ""){
  5999. grd_24hoursclincobsreclist.combo.button.visible = true;
  6000. grd_24hoursclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath1+"[supcd='"+sAttrCD+"']";
  6001. grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(grd_24hoursclincobsreclist.col)-20;
  6002. //model.setFocus("body");
  6003. //model.setFocus("grd_24hoursclincobsreclist");
  6004. }else{
  6005. grd_24hoursclincobsreclist.combo.button.visible = false;
  6006. grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(grd_24hoursclincobsreclist.col);
  6007. }
  6008. break;
  6009. // 2008-10-09 주석 추가
  6010. // case "4days" :
  6011. // iRecRow = grd_4daysclincobsreclist.row - grd_4daysclincobsreclist.fixedrows+1;
  6012. // iRow = grd_4daysclincobsreclist.row;
  6013. // iCol = grd_4daysclincobsreclist.col;
  6014. // sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  6015. // sRecFromDT = model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/recfromdt");
  6016. // sRecToDT = model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/rectodt");
  6017. // sAttrCD = model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/attrcd");
  6018. // sReChartFlag = model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/reccharflag");
  6019. //
  6020. // // 의사의 경우
  6021. // if(sJobKindCD == "30"){
  6022. // grd_4daysclincobsreclist.combo.button.visible = false;
  6023. // grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols,iRow, grd_4daysclincobsreclist.cols-1) = true;
  6024. // return;
  6025. // }
  6026. // if(eval(model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/depth")) == 1){
  6027. // grd_4daysclincobsreclist.combo.button.visible = false;
  6028. // grd_4daysclincobsreclist.isReadOnly(iRow,grd_4daysclincobsreclist.fixedCols,iRow, grd_4daysclincobsreclist.cols-1) = true;
  6029. // }else{
  6030. // //2008-05-21 변경
  6031. // //if(sRecDT < sRecFromDT || sRecDT > sRecToDT ){
  6032. // if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/reccharflag") == "C" ){
  6033. // if(model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/attrcd") == ""){
  6034. // grd_4daysclincobsreclist.combo.button.visible = false;
  6035. // grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col);
  6036. // }
  6037. // grd_4daysclincobsreclist.isReadOnly(iRow,iCol) = true;
  6038. // }else{
  6039. // if(sReChartFlag =="A" && sAttrCD != ""){
  6040. // grd_4daysclincobsreclist.combo.button.visible = true;
  6041. // grd_4daysclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath+"[supcd='"+sAttrCD+"']";
  6042. // grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col)-20;
  6043. // }else{
  6044. // grd_4daysclincobsreclist.combo.button.visible = false;
  6045. // grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(grd_4daysclincobsreclist.col);
  6046. // }
  6047. // }
  6048. // }
  6049. // model.setFocus("body");
  6050. // model.setFocus("grd_4daysclincobsreclist");
  6051. // break;
  6052. // case "stnd":
  6053. // iRecRow = grd_stndclincobsreclist.row - grd_stndclincobsreclist.fixedrows+1;
  6054. // iRow = grd_stndclincobsreclist.row;
  6055. // iCol = grd_stndclincobsreclist.col;
  6056. // sRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"59";
  6057. // sRecFromDT = model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/recfromdt");
  6058. // sRecToDT = model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/rectodt");
  6059. // // 의사의 경우
  6060. // if(sJobKindCD == "30"){
  6061. // grd_stndclincobsreclist.combo.button.visible = false;
  6062. // grd_stndclincobsreclist.isReadOnly(iRow,grd_stndclincobsreclist.fixedCols,iRow, grd_stndclincobsreclist.cols-1) = true;
  6063. // return;
  6064. // }
  6065. // if(eval(model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/depth")) == 1){
  6066. // grd_stndclincobsreclist.combo.button.visible = false;
  6067. // grd_stndclincobsreclist.isReadOnly(iRow,grd_stndclincobsreclist.fixedCols,iRow, grd_stndclincobsreclist.cols-1) = true;
  6068. // }else{
  6069. // //2008-05-21 변경
  6070. // //if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/recyn") == "N"){
  6071. // if(sRecDT < sRecFromDT || sRecDT > sRecToDT || model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/reccharflag") == "C"){
  6072. // if(model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/attrcd") == ""){
  6073. // grd_stndclincobsreclist.combo.button.visible = false;
  6074. // grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col);
  6075. // }
  6076. // grd_stndclincobsreclist.isReadOnly(iRow,iCol) = true;
  6077. // }else{
  6078. // sAttrCD = model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/attrcd");
  6079. // sReChartFlag = model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/reccharflag");
  6080. // if(sReChartFlag =="A" && sAttrCD != ""){
  6081. // grd_stndclincobsreclist.combo.button.visible = true;
  6082. // grd_stndclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath+"[supcd='"+sAttrCD+"']";
  6083. // grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col)-20;
  6084. // }else{
  6085. // grd_stndclincobsreclist.combo.button.visible = false;
  6086. // grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(grd_stndclincobsreclist.col);
  6087. // }
  6088. // }
  6089. // }
  6090. // model.setFocus("body");
  6091. // model.setFocus("grd_stndclincobsreclist");
  6092. // break;
  6093. }
  6094. }
  6095. function fChageComboSet(pFlag){
  6096. switch(pFlag){
  6097. case "24hours" :
  6098. iRecRow = grd_24hoursclincobsreclist.row - grd_24hoursclincobsreclist.fixedrows+1;
  6099. iRow = grd_24hoursclincobsreclist.row;
  6100. iCol = grd_24hoursclincobsreclist.col;
  6101. //sAttrCD = model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/attrcd");
  6102. //sReChartFlag = model.getValue(xHoursClincObsRecList+"["+iRecRow+"]/reccharflag");
  6103. sAttrCD = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("attrcd"));
  6104. sReChartFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("reccharflag"));
  6105. if(sReChartFlag =="A" && sAttrCD != ""){
  6106. grd_24hoursclincobsreclist.combo.button.visible = true;
  6107. grd_24hoursclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath1+"[supcd='"+sAttrCD+"']";
  6108. grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(iCol)-20;
  6109. //grd_24hoursclincobsreclist.select(iRow, iCol) = false;
  6110. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  6111. //model.setFocus("body");
  6112. //model.setFocus("grd_24hoursclincobsreclist");
  6113. var iDataRow = 0;
  6114. var sRecCharFlag = "";
  6115. for(var row = iRow+1; row <= grd_24hoursclincobsreclist.rows;row++){
  6116. iDataRow = row - grd_24hoursclincobsreclist.fixedrows+1;
  6117. sRecCharFlag = grd_24hoursclincobsreclist.valueMatrix(row, grd_24hoursclincobsreclist.colRef("reccharflag"));
  6118. if(sRecCharFlag == "A" || sRecCharFlag == "B"){
  6119. model.setFocus("body");
  6120. row = grd_24hoursclincobsreclist.rows + 1;
  6121. }
  6122. }
  6123. }
  6124. // else{
  6125. // grd_24hoursclincobsreclist.combo.button.visible = false;
  6126. // grd_24hoursclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(iCol);
  6127. // }
  6128. break;
  6129. /*
  6130. case "4days" :
  6131. iRecRow = grd_4daysclincobsreclist.row - grd_4daysclincobsreclist.fixedrows+1;
  6132. iRow = grd_4daysclincobsreclist.row;
  6133. iCol = grd_4daysclincobsreclist.col;
  6134. sAttrCD = model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/attrcd");
  6135. sReChartFlag = model.getValue(xDaysClincObsRecList+"["+iRecRow+"]/reccharflag");
  6136. if(sReChartFlag =="A" && sAttrCD != ""){
  6137. grd_4daysclincobsreclist.combo.button.visible = true;
  6138. grd_4daysclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath1+"[supcd='"+sAttrCD+"']";
  6139. grd_4daysclincobsreclist.combo.input.attribute("width") = grd_4daysclincobsreclist.colWidth(iCol)-20;
  6140. //grd_24hoursclincobsreclist.select(iRow, iCol) = false;
  6141. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  6142. //model.setFocus("body");
  6143. //model.setFocus("grd_24hoursclincobsreclist");
  6144. var iDataRow = 0;
  6145. var sRecCharFlag = "";
  6146. for(var row = iRow+1; row <= grd_4daysclincobsreclist.rows;row++){
  6147. iDataRow = row - grd_4daysclincobsreclist.fixedrows+1;
  6148. sRecCharFlag = model.getValue(xDaysClincObsRecList+"["+iDataRow+"]/reccharflag");
  6149. if(sRecCharFlag == "A" || sRecCharFlag == "B"){
  6150. model.setFocus("body");
  6151. row = grd_4daysclincobsreclist.rows + 1;
  6152. }
  6153. }
  6154. }else{
  6155. grd_4daysclincobsreclist.combo.button.visible = false;
  6156. grd_4daysclincobsreclist.combo.input.attribute("width") = grd_24hoursclincobsreclist.colWidth(iCol);
  6157. }
  6158. break;
  6159. case "stnd":
  6160. iRecRow = grd_stndclincobsreclist.row - grd_stndclincobsreclist.fixedrows+1;
  6161. iRow = grd_stndclincobsreclist.row;
  6162. iCol = grd_stndclincobsreclist.col;
  6163. sAttrCD = model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/attrcd");
  6164. sReChartFlag = model.getValue(xStnddayClincObsRecListPath+"["+iRecRow+"]/reccharflag");
  6165. if(sReChartFlag =="A" && sAttrCD != ""){
  6166. grd_stndclincobsreclist.combo.button.visible = true;
  6167. grd_stndclincobsreclist.cellComboNodeset(iRow,iCol) = sAttrListPath1+"[supcd='"+sAttrCD+"']";
  6168. grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(iCol)-20;
  6169. //grd_24hoursclincobsreclist.select(iRow, iCol) = false;
  6170. //2008-05-22 콤보 선택시 콤보노드 변경을 위해 추가
  6171. //model.setFocus("body");
  6172. //model.setFocus("grd_24hoursclincobsreclist");
  6173. var iDataRow = 0;
  6174. var sRecCharFlag = "";
  6175. for(var row = iRow+1; row <= grd_stndclincobsreclist.rows;row++){
  6176. iDataRow = row - grd_stndclincobsreclist.fixedrows+1;
  6177. sRecCharFlag = model.getValue(xStnddayClincObsRecListPath+"["+iDataRow+"]/reccharflag");
  6178. if(sRecCharFlag == "A" || sRecCharFlag == "B"){
  6179. model.setFocus("body");
  6180. row = grd_stndclincobsreclist.rows + 1;
  6181. }
  6182. }
  6183. }else{
  6184. grd_stndclincobsreclist.combo.button.visible = false;
  6185. grd_stndclincobsreclist.combo.input.attribute("width") = grd_stndclincobsreclist.colWidth(iCol);
  6186. }
  6187. break;
  6188. */
  6189. }
  6190. }
  6191. /**
  6192. * @group :
  6193. * @ver : 2009.12.15
  6194. * @by : 양천덕
  6195. * @---------------------------------------------------
  6196. * @type : function
  6197. * @access : public
  6198. * @desc :
  6199. * @param : 경구입력 팝업 제어부분
  6200. * @return :
  6201. * @---------------------------------------------------
  6202. */
  6203. function fPopupOralRec(){
  6204. //화면 재조회 popup호출을 할 경우 미기록 정보 체크 함수
  6205. //fSearchClincObsRec 함수를 호출하는 함수에 추가 필요
  6206. if( fChkSaveData() == false ) return;
  6207. var sIndex = cmb_patlist.focusIndex + 1
  6208. var sParam_Header = "pid▦orddd▦cretno▦wardcd▦recdd▩";
  6209. var sParam_Data = model.getValue(sCondPath+"/pid")+"▦"
  6210. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/indd" ) + "▦"
  6211. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/cretno" ) + "▦"
  6212. + cmb_wardlist.value + "▦"
  6213. + model.getValue(sCondPath+"/recdd")+"▩";
  6214. setParameter("SPMNR05700_Param",sParam_Header+sParam_Data);
  6215. modal("SPMNR05700", "1", event.clientX , event.clientY);
  6216. fSearchClincObsRec("24hours");
  6217. //parameter 정보 초기화
  6218. clearParameter("SPMNR05700_Param");
  6219. }
  6220. /**
  6221. * @group :
  6222. * @ver : 2009.12.15
  6223. * @by : 양천덕
  6224. * @---------------------------------------------------
  6225. * @type : function
  6226. * @access : public
  6227. * @desc :
  6228. * @param : CDIS 데이터 연동 팝업 제어부분
  6229. * @return :
  6230. * @---------------------------------------------------
  6231. */
  6232. function fPopupCDISRec(){
  6233. //화면 재조회 popup호출을 할 경우 미기록 정보 체크 함수
  6234. //fSearchClincObsRec 함수를 호출하는 함수에 추가 필요
  6235. if( fChkSaveData() == false ) return;
  6236. var sIndex = cmb_patlist.focusIndex + 1
  6237. var sParam_Header = "srchdd▦stndtm▦pid▦orddd▦cretno▦starttm▦ordtype▦wardcd▦roomcd▩";
  6238. var sParam_Data = getCurrentDate()+"▦"
  6239. + "01"+"▦"
  6240. + model.getValue(sCondPath+"/pid")+"▦"
  6241. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/indd" ) + "▦"
  6242. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/cretno" ) + "▦"
  6243. + getCurrentTime().substr(0,2) + "▦"
  6244. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/ordtype" ) + "▦"
  6245. + cmb_wardlist.value + "▦"
  6246. + cmb_roomlist.value + "▦"
  6247. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/instcd" ) + "▩";
  6248. setParameter("SPMNR06200_Param",sParam_Header+sParam_Data);
  6249. //modal("SPMNR06200", "1", event.clientX , event.clientY);
  6250. open("SPMNR06200", "1", event.clientX , event.clientY);
  6251. //fSearchClincObsRec("24hours");
  6252. //parameter 정보 초기화
  6253. //clearParameter("SPMNR06200_Param");
  6254. }
  6255. /**
  6256. * @group :
  6257. * @ver : 2009.12.15
  6258. * @by : 양천덕
  6259. * @---------------------------------------------------
  6260. * @type : function
  6261. * @access : public
  6262. * @desc :
  6263. * @param : 항목별 연계
  6264. * @return :
  6265. * @---------------------------------------------------
  6266. */
  6267. function fChkLnkBiz(pFlag){
  6268. var sLnkBizCd = "";
  6269. var sStyle = "";
  6270. var sCareRecSeqNo = "";
  6271. var sMessageSpec = "연동된 자료는 해당 기록지에서 직접 입력 및 수정하여야 합니다. ";
  6272. switch (pFlag){
  6273. case "24hours" :
  6274. sLnkBizCd = grd_24hoursclincobsreclist.valueMatrix(grd_24hoursclincobsreclist.row, grd_24hoursclincobsreclist.colRef("lnkbizcd"));
  6275. sStyle = grd_24hoursclincobsreclist.valueMatrix(grd_24hoursclincobsreclist.row, grd_24hoursclincobsreclist.colRef("style"));
  6276. sCareRecSeqNo = grd_24hoursclincobsreclist.valueMatrix(grd_24hoursclincobsreclist.row, grd_24hoursclincobsreclist.colRef("carerecseqno"));
  6277. break;
  6278. case "4days":
  6279. sLnkBizCd = grd_4daysclincobsreclist.valueMatrix(grd_4daysclincobsreclist.row, grd_4daysclincobsreclist.colRef("lnkbizcd"));
  6280. break;
  6281. case "stnd":
  6282. sLnkBizCd = grd_stndclincobsreclist.valueMatrix(grd_stndclincobsreclist.row, grd_stndclincobsreclist.colRef("lnkbizcd"));
  6283. break;
  6284. case "former":
  6285. sLnkBizCd = grd_formersclincobsreclist.valueMatrix(grd_formersclincobsreclist.row, grd_formersclincobsreclist.colRef("lnkbizcd"));
  6286. break;
  6287. }
  6288. switch (sLnkBizCd){
  6289. case "01" :
  6290. messageBox(sMessageSpec + "(경구입력)","I");
  6291. break;
  6292. case "02" :
  6293. messageBox(sMessageSpec + "(투약기록지)","I");
  6294. break;
  6295. case "03" :
  6296. messageBox(sMessageSpec + "(수혈간호기록지)","I");
  6297. break;
  6298. case "04" :
  6299. messageBox(sMessageSpec + "(혈당간호기록지)","I");
  6300. break;
  6301. case "05" :
  6302. messageBox(sMessageSpec + "(CAPD기록지)","I");
  6303. break;
  6304. case "06" :
  6305. messageBox(sMessageSpec + "(CRRT기록지)","I");
  6306. break;
  6307. case "06" :
  6308. messageBox(sMessageSpec + "(CPCR기록지)","I");
  6309. break;
  6310. case "12" :
  6311. var rtnmsg = "";
  6312. //if( sStyle == "01" && sCareRecSeqNo != "" && grd_24hoursclincobsreclist.col != grd_24hoursclincobsreclist.colRef("itemnm") ) rtnmsg = messageBox("Fluid 기록 입력 화면을 여시겠습니까?","Q");
  6313. //if( rtnmsg == "6" ) fPopupFluid();
  6314. if( sStyle == "01" && sCareRecSeqNo != "" && grd_24hoursclincobsreclist.col != grd_24hoursclincobsreclist.colRef("itemnm") ){
  6315. fPopupFluid();
  6316. }
  6317. break;
  6318. }
  6319. }
  6320. /**
  6321. * @group :
  6322. * @ver : 2009.12.15
  6323. * @by : 양천덕
  6324. * @---------------------------------------------------
  6325. * @type : function
  6326. * @access : public
  6327. * @desc : 문자여부 확인
  6328. * @param : str : 값
  6329. * @return : true / false
  6330. * @---------------------------------------------------
  6331. */
  6332. function fIsNumber(str) {
  6333. str += ''; // 문자열로 변환
  6334. str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
  6335. if (str == '' || isNaN(str)) return false;
  6336. return true;
  6337. }
  6338. /**
  6339. * @group :
  6340. * @ver : 2009.12.15
  6341. * @by : 양천덕
  6342. * @---------------------------------------------------
  6343. * @type : function
  6344. * @access : public
  6345. * @desc :
  6346. * @param : IO조회 Popup 호출
  6347. * @return :
  6348. * @---------------------------------------------------
  6349. */
  6350. function fPopupIOSearch(){
  6351. if(model.getValue("/root/main/patinfo/pid") == ""){
  6352. messageBox("환자를 선택하십시요","I");
  6353. return;
  6354. }
  6355. var sIndex = cmb_patlist.focusIndex + 1
  6356. var sParam_Header = "pid▦orddd▦cretno▦wardcd▦recdd▩";
  6357. var sParam_Data = model.getValue(sCondPath+"/pid")+"▦"
  6358. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/indd" ) + "▦"
  6359. + model.getValue("/root/temp/cond/patientgrup/patientgruplist["+ sIndex +"]/cretno" ) + "▦"
  6360. + cmb_wardlist.value + "▦"
  6361. + model.getValue(sCondPath+"/recdd")+"▩";
  6362. setParameter("SPMNR05800_Param",sParam_Header+sParam_Data);
  6363. open("SPMNR05800", "1", event.clientX , event.clientY);
  6364. //parameter 정보 초기화
  6365. //clearParameter("SPMNR05800_Param");
  6366. //fPopupIOSearchInitParam();
  6367. }
  6368. /**
  6369. * @group :
  6370. * @ver : 2009.12.15
  6371. * @by : 양천덕
  6372. * @---------------------------------------------------
  6373. * @type : function
  6374. * @access : public
  6375. * @desc : FlowSheet I/O 조회화면 Parameter 초기화 함수
  6376. * I/O 조회 화면에서 초기화함수 호출.
  6377. * @param :
  6378. * @return :
  6379. * @---------------------------------------------------
  6380. */
  6381. function fPopupIOSearchInitParam(){
  6382. //parameter 정보 초기화
  6383. clearParameter("SPMNR05800_Param");
  6384. }
  6385. /**
  6386. * @group :
  6387. * @ver : 2009.12.15
  6388. * @by : 양천덕
  6389. * @---------------------------------------------------
  6390. * @type : function
  6391. * @access : public
  6392. * @desc :
  6393. * @param : 간호관리ITEM 팝업 제어부분
  6394. * @return :
  6395. * @---------------------------------------------------
  6396. */
  6397. function fPopupItem(){
  6398. //화면 재조회 popup호출을 할 경우 미기록 정보 체크 함수
  6399. //fSearchClincObsRec 함수를 호출하는 함수에 추가 필요
  6400. if( fChkSaveData() == false ) return;
  6401. modal("SMMNR04100", "1", event.clientX , event.clientY);
  6402. fSearchClincObsRec("24hours");
  6403. }
  6404. /**
  6405. * @group :
  6406. * @ver : 2009.12.15
  6407. * @by : 양천덕
  6408. * @---------------------------------------------------
  6409. * @type : function
  6410. * @access : public
  6411. * @desc :
  6412. * @param : 환자 선택 여부확인
  6413. * @return :
  6414. * @---------------------------------------------------
  6415. */
  6416. function fChkTgtPatInfo(pFlag){
  6417. switch(pFlag){
  6418. case "disable":
  6419. grp_srchbaselist.visible = false;
  6420. grp_btnlist.visible = false;
  6421. btn_24hoursdetailbefore.visible = false;
  6422. btn_24hoursdetailafter.visible = false;
  6423. btn_24hoursup.disabled = true;
  6424. btn_24hoursdown.disabled = true;
  6425. break;
  6426. case "able":
  6427. grp_srchbaselist.visible = true;
  6428. grp_btnlist.visible = true;
  6429. btn_24hoursdetailbefore.visible = true;
  6430. btn_24hoursdetailafter.visible = true;
  6431. btn_24hoursup.disabled = false;
  6432. btn_24hoursdown.disabled = false;
  6433. break;
  6434. }
  6435. }
  6436. /**
  6437. * @group :
  6438. * @ver : 2009.12.15
  6439. * @by : 양천덕
  6440. * @---------------------------------------------------
  6441. * @type : function
  6442. * @access : public
  6443. * @desc :
  6444. * @param : 임상관찰기록 인증 데이터 생성
  6445. * @return :
  6446. * @---------------------------------------------------
  6447. */
  6448. function fMake_SignData(){
  6449. switch(sViewerFunc){
  6450. case "sign":
  6451. Sign.addnode("/root/certtemp");
  6452. var xPathSignData = Sign.XPATH_SIGNINFO+"/certtemp/recinfo";
  6453. for(var i = 0 ; i <= getNodesetCount(xPathSignData) ; i++){
  6454. var sRecRslt = model.getValue(xPathSignData+"["+i+"]/reclist");
  6455. var sCertAttrCd = model.getValue(xResultAttrPath+"["+i+"]/attrcd");
  6456. var sCertAttrNm = model.getValue(sAttrListPath1+"[attrcd='"+sRecRslt+"']/attrdesc");
  6457. if(sRecRslt != "" && sCertAttrCd != "" && sCertAttrNm != ""){
  6458. model.setValue(xPathSignData+"["+i+"]/reclist", sCertAttrNm);
  6459. }
  6460. }
  6461. break;
  6462. case "veiw":
  6463. Sign.addnode("/root/viewtemp/viewinfo");
  6464. break;
  6465. }
  6466. }
  6467. /**
  6468. * @group :
  6469. * @ver : 2009.12.15
  6470. * @by : 양천덕
  6471. * @---------------------------------------------------
  6472. * @type : function
  6473. * @access : public
  6474. * @desc :
  6475. * @param : 기록일별 기록 정보 view 생성
  6476. * @return :
  6477. * @---------------------------------------------------
  6478. */
  6479. function fMakeViewData(){
  6480. model.removenodeSet("/root/send");
  6481. model.removenodeSet("/root/viewtemp");
  6482. sViewerFunc = "veiw";
  6483. var sCntViewData = getNodesetCount(xPathViewData);
  6484. var sTopColInfo = "";
  6485. var sSrow = "";
  6486. var sErow = "";
  6487. sViewerRecDD = "";
  6488. sMakeChartInfo[1] = new Array(); //Y축명
  6489. sMakeChartInfo[2] = new Array(); //Y축정보
  6490. sMakeChartInfo[3] = new Array(); //기록시간
  6491. sMakeChartInfo[4] = new Array(); //기록값
  6492. if(sCntViewData > 0 ){
  6493. for(var i = 1 ; i <= eval(getNodesetCount(xPathViewData)) ; i++){
  6494. if(model.getValue(xPathViewData+"["+i+"]/leftaxis") != "" && model.getValue(xPathViewData+"["+i+"]/leftaxis") != "-" ){
  6495. var insIndex = sMakeChartInfo[1].length;
  6496. sMakeChartInfo[1][insIndex] = model.getValue(xPathViewData + "[" +i+ "]/captiony");
  6497. sMakeChartInfo[2][insIndex] = model.getValue(xPathViewData + "[" +i+ "]/leftaxis");
  6498. sMakeChartInfo[3][insIndex] = model.getValue(xPathViewData + "[" +i+ "]/recdtlist");
  6499. sMakeChartInfo[4][insIndex] = model.getValue(xPathViewData + "[" +i+ "]/recrsltlist");
  6500. }
  6501. //일자 정보 변경시 데이터 저장함수 호출
  6502. if(model.getValue(xPathViewData +"[" +i+ "]/itemcd") == "-" && sViewerRecDD != "") {
  6503. sTopColInfo = "";
  6504. //fChngViewNode();
  6505. //pErow = i -1;
  6506. fSaveViewData();
  6507. //fMakeViewChart(pSrow, pErow);
  6508. model.removenodeSet("/root/viewtemp/viewinfo");
  6509. //pSrow = "";
  6510. //pErow = "";
  6511. //pSrow = i;
  6512. }
  6513. if(model.getValue(xPathViewData +"[" +i+ "]/itemcd") == "-") {
  6514. //pSrow = i;
  6515. var sViewDate = model.getValue(xPathViewData+"["+i+"]/recdd");
  6516. var sEndRows = 0;
  6517. sViewerRecDD = sViewDate;
  6518. model.makeValue("/root/viewtemp/viewinfo/vierdate" , sViewDate.substr(0,4)+"-"+sViewDate.substr(4,2)+"-"+sViewDate.substr(6,4));
  6519. model.makeValue("/root/viewtemp/viewinfo/recdd" , sViewDate);
  6520. model.makeValue("/root/viewtemp/viewinfo/pid" , sPid);
  6521. model.makeValue("/root/viewtemp/viewinfo/orddd" , sIndd);
  6522. model.makeValue("/root/viewtemp/viewinfo/cretno" , sCretNo);
  6523. model.makeValue("/root/viewtemp/viewinfo/recflag" , "A");
  6524. model.makeValue("/root/viewtemp/viewinfo/server" , getDomain());
  6525. model.makeValue("/root/viewtemp/viewinfo/instcd" , sInstcd);
  6526. sTopColInfo = model.getValue(xPathViewData +"[" + i + "]/recdtlist").split("^");
  6527. var jrow = 0 ;
  6528. var insRow = 0;
  6529. for(var k = 0 ; k < sTopColInfo.length ; k++) {
  6530. var insCol = (k % 9) ;
  6531. //var tmpRow = (""+k / 9+"").getTruncate();
  6532. if(jrow == 0){
  6533. if(insRow != 0){
  6534. insRow = eval(getNodesetCount("/root/viewtemp/viewinfo/viewlist")) ;
  6535. }else{
  6536. insRow = eval(getNodesetCount("/root/viewtemp/viewinfo/viewlist")) + 1 ;
  6537. model.makeValue("/root/viewtemp/viewinfo/viewlist["+insRow+"]/itemnm", "기록시간");
  6538. }
  6539. }else{
  6540. insRow = eval(getNodesetCount("/root/viewtemp/viewinfo/viewlist")) + 1 ;
  6541. model.makeValue("/root/viewtemp/viewinfo/viewlist["+insRow+"]/itemnm", " ");
  6542. insRow++;
  6543. jrow = 0;
  6544. }
  6545. var sTempNode = "/root/viewtemp/viewinfo/viewlist["+insRow +"]/col"+insCol;
  6546. model.makeValue(sTempNode, sTopColInfo[k]);
  6547. if(insCol == 8 || k == sTopColInfo.length-1){
  6548. for(var j = i + 1 ; j <= eval(getNodesetCount(xPathViewData)) ; j++) {
  6549. if(sViewDate == model.getValue(xPathViewData+"["+j+"]/recdd")) {
  6550. var sColInfo = model.getValue(xPathViewData +"[" +j+ "]/recdtlist").split("^");
  6551. var sColrsltInfo = model.getValue(xPathViewData +"[" +j+ "]/recrsltlist").split("^");
  6552. var sColrecnm = model.getValue(xPathViewData +"[" +j+ "]/recnm").split("^");
  6553. for(var d = 0 ; d < sColInfo.length ; d++){
  6554. var insSubCol = (d % 9) ;
  6555. //var tmpSubRow = (""+d / 9+"").getTruncate();
  6556. var insSubRow = insRow + j;
  6557. model.makeValue("/root/viewtemp/viewinfo/viewlist["+insSubRow+"]/itemnm", model.getValue(xPathViewData+"["+j+"]/itemnm"));
  6558. for(var z = 0 ; z <= insCol ; z++){
  6559. if(model.getValue("/root/viewtemp/viewinfo/viewlist["+insRow+"]/col"+z) == sColInfo[d]){
  6560. var sTempNode = "/root/viewtemp/viewinfo/viewlist["+insSubRow+"]/col"+z;
  6561. var sTempNodeRow = "/root/viewtemp/viewinfo/viewlist["+insSubRow+"]/row"+z;
  6562. var sTempRecNM = "";
  6563. // if( model.getValue(xPathViewData+"["+j+"]/recnm") != "") {
  6564. // sTempRecNM = "\n" + "[" + model.getValue(xPathViewData+"["+j+"]/recnm") + "]"
  6565. // }
  6566. // model.makeValue(sTempNode, sColrsltInfo[d] + sTempRecNM);
  6567. model.makeValue(sTempNode, sColrsltInfo[d]);
  6568. if( sColrecnm[d] != "") {
  6569. sTempRecNM = "[" + sColrecnm[d] + "]";
  6570. model.makeValue(sTempNodeRow, sTempRecNM);
  6571. }
  6572. jrow = j;
  6573. }
  6574. }
  6575. }
  6576. }
  6577. }
  6578. }
  6579. }
  6580. i = jrow;
  6581. }
  6582. //데이터 생성 종료시 저장 함수 호출
  6583. if(i == getNodesetCount(xPathViewData)){
  6584. fSaveViewData();
  6585. }
  6586. }
  6587. submit("TXMNR00904", false);
  6588. fMakeViewChartImg();
  6589. }
  6590. //fMakeViewChart(pSrow, pErow);
  6591. //return;
  6592. }
  6593. /**
  6594. * @group :
  6595. * @ver : 2009.12.15
  6596. * @by : 양천덕
  6597. * @---------------------------------------------------
  6598. * @type : function
  6599. * @access : public
  6600. * @desc :
  6601. * @param : 기록일별 view 정보 저장
  6602. * @return :
  6603. * @---------------------------------------------------
  6604. */
  6605. function fSaveViewData(){
  6606. //**********************************************************************************************************************
  6607. // VIEWER 인증 구현 부분
  6608. //**********************************************************************************************************************
  6609. var today = new Date();
  6610. Sign.CERT_YEAR = today.getFullYear();
  6611. Sign.CERT_MONTH = today.getMonth() + 1;
  6612. Sign.CERT_DATE = today.getDate();
  6613. if(Sign.signprocess() == true ){
  6614. var sSignDataRowCnt = eval(getNodesetCount("/root/send/signdata")) + 1;
  6615. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/pid", sPid);
  6616. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddd", sIndd);
  6617. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signno", "" );
  6618. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/cretno", sCretNo);
  6619. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recdd", sViewerRecDD);
  6620. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/rectm", "000000");
  6621. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/recsaveflag", "Y");
  6622. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signflag", "02");
  6623. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signgenrflag", sIOFlag);
  6624. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/formcd", "0000002443");
  6625. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddeptcd", model.getValue("/root/main/paminfo/pamlist/orddeptcd"));
  6626. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/orddrid", model.getValue("/root/main/paminfo/pamlist/medispclid"));
  6627. //alert( Sign.signedInfos[1]);
  6628. //alert( Sign.signedInfos[2]);
  6629. //alert( Sign.signedInfos[3]);
  6630. //alert( Sign.signedInfos[4]);
  6631. //alert( Sign.signedInfos[5]);
  6632. //▶ 인증할 데이터 정보(미기록 노드 제거된 정보)
  6633. //▶ 미기록 노드 제거전 원본 노드 정보 : Sign.signedInfos[3]
  6634. model.makeValue("/root/send/signdata["+sSignDataRowCnt+"]/signbfcnts", Sign.signedInfos[1]);
  6635. //▶ 공인인증 처리후 데이터
  6636. //model.makeValue("/root/send/signdata/signaftcnts", Sign.signedInfos[2]);
  6637. }else{
  6638. return false;
  6639. }
  6640. model.removenodeSet("/root/viewtemp/viewinfo");
  6641. //return;
  6642. //**********************************************************************************************************************
  6643. }
  6644. /**
  6645. * @group :
  6646. * @ver : 2009.12.15
  6647. * @by : 양천덕
  6648. * @---------------------------------------------------
  6649. * @type : function
  6650. * @access : public
  6651. * @desc :
  6652. * @param : 기록일별 view Chart 생성
  6653. * @return :
  6654. * @---------------------------------------------------
  6655. */
  6656. function fMakeViewChart(pSrow, pErow){
  6657. var Obj_Chart;
  6658. var sColCnt = 0;
  6659. var sRecRslt = "";
  6660. var sRecRslt1 = "";
  6661. var sChartInfo = "";
  6662. var sRecDD = "";
  6663. var sRecTM = "";
  6664. //sChartInfo = model.getValue(sCondPath+"/hourschartinfo").split(" ");
  6665. obj_viewchart.ClearChart();
  6666. //obj_viewchart.RemoveAllSeries();
  6667. //obj_viewchart.Axis.RemoveAllCustom();
  6668. //margin 값 정하기
  6669. //obj_24hourschart.Panel.MarginTop = 1;
  6670. obj_viewchart.Panel.MarginTop = 2;
  6671. obj_viewchart.Panel.MarginLeft = 12;
  6672. obj_viewchart.Panel.MarginRight = 0;
  6673. obj_viewchart.Panel.MarginBottom = 0;
  6674. //하단축 칸 수 정하기와 눈금 없애기
  6675. obj_viewchart.Axis.Bottom.TickLength = 10;
  6676. obj_viewchart.Axis.Bottom.SetMinMax (0, 24); //하루 동안 좌표를 표현
  6677. obj_viewchart.Axis.Bottom.Increment = 1;
  6678. obj_viewchart.Axis.Bottom.MinorTickCount = 1;
  6679. obj_viewchart.Axis.Bottom.Labels.Visible = true;
  6680. obj_viewchart.Axis.Bottom.Labels.Font.Color = 0x000000;
  6681. for(var i = 0 ; i < 24 ; i ++){
  6682. obj_viewchart.Axis.Bottom.Labels.Add (i, i);
  6683. }
  6684. Obj_Chart = obj_viewchart;
  6685. sColCnt = 24*60;
  6686. Obj_Chart.Axis.Bottom.AxisPen.Color = 0x000000;
  6687. Obj_Chart.Axis.Bottom.Labels.Font.Color = 0xffffff; //Obj_Chart.Panel.Color; //하단 축 눈금 명칭 색을 바탕색으로 하여 보이지 않게 처리
  6688. //Obj_Chart.Axis.Bottom.Labels.Font.Color = 0x000000
  6689. Obj_Chart.Header.Visible = false;
  6690. Obj_Chart.Aspect.View3D = 0; //2d 로 표현하기
  6691. Obj_Chart.Zoom.Enable = false; // zoom 사용하지 않기
  6692. Obj_Chart.Scroll.Enable = false; // scroll 사용하지 않기
  6693. Obj_Chart.Legend.Visible = false; // 그래프 참조 박스 띄우지 않기
  6694. Obj_Chart.Panel.Gradient.Visible = true; // 페널에 그라디언트 적용
  6695. Obj_Chart.Panel.Gradient.StartColor = 0xffffff;
  6696. Obj_Chart.Panel.Gradient.EndColor=0xffffff;
  6697. Obj_Chart.Environment.MouseWheelScroll = false;
  6698. // 혈압을 나타내는 막대그래프를 먼저 그려야 맥박, 체온,호흡 점이 막대 그래프에 가려지지 않는다.
  6699. var cus_axis1 = Obj_Chart.Axis.AddCustom(false); // 혈압축
  6700. Obj_Chart.Axis.Custom(0).AxisPen.Color = 0x0000ff;
  6701. Obj_Chart.Axis.Custom(0).Title.Caption = "혈압/맥박"
  6702. Obj_Chart.Axis.Custom(0).Title.Font.Size = 8;
  6703. Obj_Chart.Axis.Custom(0).Title.Font.Bold = true;
  6704. Obj_Chart.Axis.Custom(0).Title.Angle = 90;
  6705. Obj_Chart.Axis.Custom(0).PositionPercent = 0;
  6706. Obj_Chart.Axis.Custom(0).StartPosition = 0;
  6707. Obj_Chart.Axis.Custom(0).EndPosition = 100;
  6708. Obj_Chart.Axis.Custom(0).Automatic = false;
  6709. Obj_Chart.Axis.Custom(0).Maximum = 200;
  6710. Obj_Chart.Axis.Custom(0).Minimum = 20;
  6711. Obj_Chart.Axis.Custom(0).Increment = 20;
  6712. var cus_axis2 = Obj_Chart.Axis.AddCustom(false); // 호흡축
  6713. Obj_Chart.Axis.Custom(1).AxisPen.Color = 0x00ff00;
  6714. Obj_Chart.Axis.Custom(1).Title.Caption = "호흡";
  6715. Obj_Chart.Axis.Custom(1).Title.Font.Size = 8;
  6716. Obj_Chart.Axis.Custom(1).Title.Font.Bold = true;
  6717. Obj_Chart.Axis.Custom(1).Title.Angle = 90;
  6718. Obj_Chart.Axis.Custom(1).PositionPercent = -10;
  6719. Obj_Chart.Axis.Custom(1).Automatic = false;
  6720. Obj_Chart.Axis.Custom(1).Maximum = 90;
  6721. Obj_Chart.Axis.Custom(1).Minimum = 0;
  6722. Obj_Chart.Axis.Custom(1).Increment = 10;
  6723. var cus_axis3 = Obj_Chart.Axis.AddCustom(false); // 체온축
  6724. Obj_Chart.Axis.Custom(2).AxisPen.Color = 0xff0000;
  6725. Obj_Chart.Axis.Custom(2).Title.Caption = "체온";
  6726. Obj_Chart.Axis.Custom(2).Title.Font.Size = 8;
  6727. Obj_Chart.Axis.Custom(2).Title.Font.Bold = true;
  6728. Obj_Chart.Axis.Custom(2).Title.Angle = 90;
  6729. Obj_Chart.Axis.Custom(2).PositionPercent = -5;
  6730. Obj_Chart.Axis.Custom(2).Automatic = false;
  6731. Obj_Chart.Axis.Custom(2).Maximum = 43;
  6732. Obj_Chart.Axis.Custom(2).Minimum = 34;
  6733. Obj_Chart.Axis.Custom(2).Increment = 1;
  6734. Obj_Chart.AddSeries (11); // 혈압
  6735. Obj_Chart.AddSeries (0); // 맥박
  6736. Obj_Chart.AddSeries (0); // 호흡
  6737. Obj_Chart.AddSeries (0); // 체온
  6738. Obj_Chart.AddSeries (0); // 38선
  6739. Obj_Chart.AddSeries (0); // BP(M)
  6740. //Obj_Chart.AddSeries (11); // OP
  6741. Obj_Chart.Series(0).VerticalAxisCustom = cus_axis1; // 혈압
  6742. Obj_Chart.Series(1).VerticalAxisCustom = cus_axis1; // 맥박
  6743. Obj_Chart.Series(2).VerticalAxisCustom = cus_axis2; // 호흡
  6744. Obj_Chart.Series(3).VerticalAxisCustom = cus_axis3; // 체온
  6745. Obj_Chart.Series(4).VerticalAxisCustom = cus_axis1; // BP(M)
  6746. Obj_Chart.Series(5).VerticalAxisCustom = cus_axis3; // 38선
  6747. //Obj_Chart.Series(5).VerticalAxisCustom = cus_axis1; // OP
  6748. //라인의 굵기를 정해준다.
  6749. Obj_Chart.Series(0).asCandle.CandleStyle = 2;
  6750. Obj_Chart.Series(0).asCandle.CandleWidth = 3;
  6751. Obj_Chart.Series(1).asLine.LinePen.Width = 1;
  6752. Obj_Chart.Series(2).asLine.LinePen.Width = 1;
  6753. Obj_Chart.Series(3).asLine.LinePen.Width = 1;
  6754. Obj_Chart.Series(4).asLine.LinePen.Width = 1;
  6755. Obj_Chart.Series(4).asLine.LinePen.style = 7;
  6756. Obj_Chart.Series(5).asLine.LinePen.Width = 1;
  6757. //Obj_Chart.Series(5).asCandle.CandleStyle = 2;
  6758. //Obj_Chart.Series(5).asCandle.CandleWidth = 4;
  6759. Obj_Chart.Series(0).Color = 0x000000; //black 혈압
  6760. Obj_Chart.Series(1).Color = 0x0000ff; //red 맥박
  6761. Obj_Chart.Series(2).Color = 0x00ff00; //green 호흡
  6762. Obj_Chart.Series(3).Color = 0xff0000; //blue 체온
  6763. Obj_Chart.Series(4).Color = 0x000000; //black BP(M)
  6764. Obj_Chart.Series(5).Color = 0x000000; //black 38선
  6765. //Obj_Chart.Series(5).Color = 0x000000; //black OP
  6766. Obj_Chart.Series(1).asLine.Pointer.Visible = true;
  6767. Obj_Chart.Series(1).asLine.Pointer.Style = 1;
  6768. Obj_Chart.Series(1).asLine.Pointer.VerticalSize = 3;
  6769. Obj_Chart.Series(1).asLine.Pointer.HorizontalSize = 3;
  6770. Obj_Chart.Series(2).asLine.Pointer.Visible = true;
  6771. Obj_Chart.Series(2).asLine.Pointer.Style = 0;
  6772. Obj_Chart.Series(2).asLine.Pointer.VerticalSize = 2;
  6773. Obj_Chart.Series(2).asLine.Pointer.HorizontalSize = 2;
  6774. Obj_Chart.Series(3).asLine.Pointer.Visible = true;
  6775. Obj_Chart.Series(3).asLine.Pointer.Style = 2;
  6776. Obj_Chart.Series(3).asLine.Pointer.VerticalSize = 2;
  6777. Obj_Chart.Series(3).asLine.Pointer.HorizontalSize = 2;
  6778. Obj_Chart.Series(4).asLine.Pointer.Visible = true;
  6779. Obj_Chart.Series(4).asLine.Pointer.Pen.color = 0x000000;
  6780. Obj_Chart.Series(4).asLine.Pointer.Style = 5;
  6781. Obj_Chart.Series(4).asLine.Pointer.VerticalSize = 2;
  6782. Obj_Chart.Series(4).asLine.Pointer.HorizontalSize = 2;
  6783. //depth 정하기
  6784. Obj_Chart.Series(1).Depth = 1;
  6785. Obj_Chart.Series(2).Depth = 1;
  6786. Obj_Chart.Series(3).Depth = 1;
  6787. Obj_Chart.Series(4).Depth = 1;
  6788. Obj_Chart.Series(5).Depth = 3;
  6789. //Obj_Chart.Series(5).Depth = 5;
  6790. //Obj_Chart.Series(6).Depth = 6;
  6791. //38선 그리기
  6792. //Obj_Chart.Series(5).AddXY (-5, 38.5, "", Obj_Chart.Series(5).Color );
  6793. //Obj_Chart.Series(5).AddXY (70, 38.5, "", Obj_Chart.Series(5).Color );
  6794. //혈압 Candle 색설정
  6795. Obj_Chart.Series(0).asCandle.UpCloseColor = 0xffffff;
  6796. Obj_Chart.Series(0).asCandle.DownCloseColor = 0x0000ff;
  6797. //그래프 표시
  6798. //Header Info
  6799. var sChartAllDateList = new Array();
  6800. //Date Info
  6801. var sChartDate1List = new Array();
  6802. var sChartDate2List = new Array();
  6803. var sChartDate3List = new Array();
  6804. var sChartDate4List = new Array();
  6805. var sChartDate5List = new Array();
  6806. var sChartDate6List = new Array();
  6807. //Result Info
  6808. var sChartRslt1List = new Array();
  6809. var sChartRslt2List = new Array();
  6810. var sChartRslt3List = new Array();
  6811. var sChartRslt4List = new Array();
  6812. var sChartRslt5List = new Array();
  6813. var sChartRslt6List = new Array();
  6814. var sRecData1 = "";
  6815. var sRecData2 = "";
  6816. var sRecData3 = "";
  6817. var sRecData4 = "";
  6818. var sRecData5 = "";
  6819. var sRecData6 = "";
  6820. //instance 에서 그래프에 표기할 시간, 기록값 추출
  6821. for(var i =pSrow ; i <= pErow ; i++){
  6822. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "-" &&
  6823. model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/itemcd") == "-" ){
  6824. sChartAllDateList = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6825. }
  6826. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "1"){
  6827. sChartDate1List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6828. sChartRslt1List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recrsltlist").split("^");
  6829. }
  6830. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "2"){
  6831. sChartDate2List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6832. sChartRslt2List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recrsltlist").split("^");
  6833. }
  6834. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "3"){
  6835. sChartDate3List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6836. sChartRslt3List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recrsltlist").split("^");
  6837. }
  6838. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "4"){
  6839. sChartDate4List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6840. sChartRslt4List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recrsltlist").split("^");
  6841. }
  6842. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "5"){
  6843. sChartDate5List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6844. sChartRslt5List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recrsltlist").split("^");
  6845. }
  6846. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/leftaxis") == "6"){
  6847. sChartDate6List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdtlist").split("^");
  6848. sChartRslt6List = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recrsltlist").split("^");
  6849. }
  6850. }
  6851. for(var i = 0 ; i < sChartAllDateList.length ; i++){
  6852. sRecData1 = "";
  6853. sRecData2 = "";
  6854. sRecData3 = "";
  6855. sRecData4 = "";
  6856. sRecData5 = "";
  6857. sRecData6 = "";
  6858. //if(sChartAllDateList[i].substr(3,2) == "00" || sChartAllDateList[i].substr(3,2) == "30"){
  6859. var sCoordinate = eval(sChartAllDateList[i].substr(0,2)) + eval(sChartAllDateList[i].substr(3,2) / 60) ;
  6860. //시간별 기록 데이터 추출
  6861. for(var list1 = 0 ; list1 < sChartDate1List.length ; list1++){
  6862. if(sChartAllDateList[i] == sChartDate1List[list1]){
  6863. sRecData1 = sChartRslt1List[list1];
  6864. }
  6865. }
  6866. for(var list2 = 0 ; list2 < sChartDate2List.length ; list2++){
  6867. if(sChartAllDateList[i] == sChartDate2List[list2]){
  6868. sRecData2 = sChartRslt2List[list2];
  6869. }
  6870. }
  6871. for(var list3 = 0 ; list3 < sChartDate3List.length ; list3++){
  6872. if(sChartAllDateList[i] == sChartDate3List[list3]){
  6873. sRecData3 = sChartRslt3List[list3];
  6874. }
  6875. }
  6876. for(var list4 = 0 ; list4 < sChartDate4List.length ; list4++){
  6877. if(sChartAllDateList[i] == sChartDate4List[list4]){
  6878. sRecData4 = sChartRslt4List[list4];
  6879. }
  6880. }
  6881. for(var list5 = 0 ; list5 < sChartDate5List.length ; list5++){
  6882. if(sChartAllDateList[i] == sChartDate5List[list5]){
  6883. sRecData5 = sChartRslt5List[list5];
  6884. }
  6885. }
  6886. for(var list6 = 0 ; list6 < sChartDate6List.length ; list6++){
  6887. if(sChartAllDateList[i] == sChartDate6List[list6]){
  6888. sRecData6 = sChartRslt6List[list6];
  6889. }
  6890. }
  6891. //그래프에 데이터 입력
  6892. if(sRecData1 != "" && sRecData2 != "" && fIsNumber(sRecData1) == true && fIsNumber(sRecData2) == true){
  6893. Obj_Chart.Series(0).asCandle.AddCandle (eval(sCoordinate), eval(sRecData2), 0, 0, eval(sRecData1));
  6894. }
  6895. if(sRecData3 != "" && fIsNumber(sRecData3) == true){
  6896. Obj_Chart.Series(1).AddXY (eval(sCoordinate), eval(sRecData3), "", Obj_Chart.Series(1).Color);
  6897. }
  6898. if(sRecData4 != "" && fIsNumber(sRecData4) == true){
  6899. Obj_Chart.Series(2).AddXY (eval(sCoordinate), eval(sRecData4), "", Obj_Chart.Series(2).Color);
  6900. }
  6901. if(sRecData5 != "" && fIsNumber(sRecData5) == true){
  6902. Obj_Chart.Series(3).AddXY (eval(sCoordinate), eval(sRecData5), "", Obj_Chart.Series(3).Color);
  6903. }
  6904. if(sRecData6 != "" && fIsNumber(sRecData6) == true){
  6905. Obj_Chart.Series(4).AddXY (eval(sCoordinate), eval(sRecData6), "", Obj_Chart.Series(4).Color);
  6906. }
  6907. //}
  6908. }
  6909. //그래프 이미지 특정 폴더에 저장
  6910. var fso, fldr;
  6911. fladr = "C:/Program Files/himed/vitaltempimage";
  6912. fso = new ActiveXObject("Scripting.FileSystemObject");
  6913. if (fso.FolderExists(fladr)) {
  6914. //IMAGE FILE 설정( PARAM : File Name ; Gray ; Performance ; Quality ; Width ; Height )
  6915. //File 크기 조절 : Quality 및 Width, Height 설정(Width, Height 변경시 그래프 설정도 변경해야 함.)
  6916. Obj_Chart.Export.SaveToJPEGFile(fladr+"/tchart.jpeg", false, 0, 30, 1155, 300 );
  6917. //sChartNum++;
  6918. } else {
  6919. fldr = fso.CreateFolder(fladr);
  6920. Obj_Chart.Export.SaveToJPEGFile(fladr+"/tchart.jpeg", false, 0, 30, 1155, 300 );
  6921. //sChartNum++;
  6922. }
  6923. var file = fladr+"/tchart.jpeg";
  6924. //var f = fso.GetFile(file);
  6925. //fChangeImage(file);
  6926. var pos = file.lastIndexOf("\\");
  6927. var localFileName= file.substring(pos+1, file.length);
  6928. img_tmp.src = "";
  6929. img_tmp.src = file;
  6930. var ldata = img_tmp.getbase64data();
  6931. //var data = file.getbase64data();
  6932. var sImgDataRowCnt = eval(getNodesetCount("/root/send/imginfo")) + 1;
  6933. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/pid", sPid);
  6934. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/orddd", sIndd);
  6935. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/cretno", sCretNo);
  6936. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/recdd", sImageRecDD);
  6937. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/recflag", "A");
  6938. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/imgrslt", ldata);
  6939. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/imght", "1155");
  6940. model.makeValue("/root/send/imginfo["+sImgDataRowCnt+"]/imgwidt", "300");
  6941. setImageRefInstance("/root/send/imginfo["+sImgDataRowCnt+"]/imgrslt");
  6942. //getDomain()
  6943. }
  6944. /**
  6945. * @group :
  6946. * @ver : 2009.12.15
  6947. * @by : 양천덕
  6948. * @---------------------------------------------------
  6949. * @type : function
  6950. * @access : public
  6951. * @desc :
  6952. * @param : 기록일별 view img 정보 생성 및 저장
  6953. * @return :
  6954. * @---------------------------------------------------
  6955. */
  6956. function fMakeViewChartImg(){
  6957. model.removenodeSet("/root/send");
  6958. sImageRecDD = "";
  6959. var sSrow = "";
  6960. var sErow = "";
  6961. //sChartNum = 1;
  6962. for(var i = 1 ; i <= eval(getNodesetCount("/root/temp/clincobsrecinfo/rtnsigndata")) ; i++){
  6963. if(model.getValue("/root/temp/clincobsrecinfo/rtnsigndata[" +i+ "]/itemcd") == "-"){
  6964. if(sImageRecDD != ""){
  6965. sErow = i -1;
  6966. fMakeViewChart(sSrow, sErow);
  6967. sImageRecDD = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdd");
  6968. sSrow = "";
  6969. sErow = "";
  6970. sSrow = i;
  6971. }else{
  6972. sImageRecDD = model.getValue("/root/temp/clincobsrecinfo/rtnsigndata["+i+"]/recdd");
  6973. sSrow = i;
  6974. }
  6975. }
  6976. //데이터 생성 종료시 저장 함수 호출
  6977. if(i == getNodesetCount("/root/temp/clincobsrecinfo/rtnsigndata")){
  6978. sErow = i;
  6979. fMakeViewChart(sSrow, sErow);
  6980. sSrow = "";
  6981. sErow = "";
  6982. }
  6983. }
  6984. submit("TXMNR00905", false);
  6985. model.removenodeSet("/root/send");
  6986. }
  6987. /**
  6988. * @group :
  6989. * @ver : 2009.12.15
  6990. * @by : 양천덕
  6991. * @---------------------------------------------------
  6992. * @type : function
  6993. * @access : public
  6994. * @desc :
  6995. * @param : 화면 초기화
  6996. * @return :
  6997. * @---------------------------------------------------
  6998. */
  6999. function fInitViewInfo(){
  7000. if(getNodesetCount("/root/temp/cond/patientgrup") < 1){
  7001. return;
  7002. }
  7003. fInitTopInfo();
  7004. model.removenodeset(xHoursClincObsRecList);
  7005. model.removenodeset(xDaysClincObsRecList);
  7006. model.removenodeset(xStnddayClincObsRecListPath);
  7007. model.removenodeset(xFormerdayClincObsRecListPath);
  7008. model.removenodeSet(xClincObsRecListPath);
  7009. model.removenodeset(xFormerRecPath);
  7010. model.removenodeset(xDayCountListPath);
  7011. model.removenodeset(xFormerDayCountListPath);
  7012. model.removenodeset(xPamInfoPath);
  7013. model.removenodeset(xRecUserListPath);
  7014. model.removenodeset(sAttrListPath1);
  7015. model.removenodeset(xFormerAttrListPath1);
  7016. model.removenodeset(xFormerRecUserListPath);
  7017. model.removenodeset("/root/init/clsinfo");
  7018. model.removeNode("/root/temp/cond/patientgrup");
  7019. model.removeNode("/root/main/patdetlinfo");
  7020. grd_24hoursclincobsreclist.caption = "";
  7021. //grd_4daysclincobsreclist.caption = "";
  7022. //grd_formersclincobsreclist.caption = "";
  7023. //grd_stndclincobsreclist.caption = "";
  7024. cpt_vsinfo.value = "";
  7025. cmb_mypatlist.value = "";
  7026. /*
  7027. model.setValue("/root/main/patdetlinfo/patdetllist/bapntnm", "");
  7028. model.setValue("/root/main/patdetlinfo/patdetllist/totpnt", "");
  7029. model.setValue("/root/main/patdetlinfo/patdetllist/apchscore", "");
  7030. model.setValue("/root/main/patdetlinfo/patdetllist/hd", "");
  7031. model.setValue("/root/main/patdetlinfo/patdetllist/icu", "");
  7032. model.setValue("/root/main/patdetlinfo/patdetllist/opdd", "");
  7033. model.setValue("/root/main/patdetlinfo/patdetllist/pod", "");
  7034. model.setValue("/root/main/patdetlinfo/patdetllist/bmt", "");
  7035. model.setValue("/root/main/patdetlinfo/patdetllist/cp", "");
  7036. model.setValue("/root/main/patdetlinfo/patdetllist/d", "");
  7037. model.setValue("/root/main/patdetlinfo/patdetllist/height", "");
  7038. model.setValue("/root/main/patdetlinfo/patdetllist/weight", "");
  7039. model.setValue("/root/main/patdetlinfo/patdetllist/blood", "");
  7040. model.setValue("/root/main/patdetlinfo/patdetllist/chngroom", "");
  7041. model.setValue("/root/main/patdetlinfo/patdetllist/brthdd", "");
  7042. model.setValue("/root/main/patdetlinfo/patdetllist/ammemo", "");
  7043. model.setValue("/root/main/patdetlinfo/patdetllist/pmmemo", "");
  7044. */
  7045. btn_24hoursdetailbefore.visible = false;
  7046. btn_24hoursdetailafter.visible = false;
  7047. fMakeChart("init24hours");
  7048. //fMakeChart("init4days");
  7049. if(getNodesetCount("/root/main/patinfo") > 0){
  7050. model.setValue("/root/main/patinfo/pid", "");
  7051. model.setValue("/root/main/patinfo/indd", "");
  7052. model.setValue("/root/main/patinfo/cretno", "");
  7053. model.setValue("/root/main/patinfo/ordtype", "");
  7054. model.setValue("/root/main/patinfo/indschacptstat", "");
  7055. model.setValue("/root/main/patinfo/dschdd", "");
  7056. model.setValue("/root/main/patinfo/eroutdd", "");
  7057. model.setValue("/root/main/patinfo/patnm", "");
  7058. model.setValue("/root/main/patinfo/sexage", "");
  7059. model.setValue("/root/main/patinfo/wardcd", "");
  7060. model.setValue("/root/main/patinfo/roomcd", "");
  7061. }
  7062. sPid == "";
  7063. sIndd == "";
  7064. sCretNo == "";
  7065. sInstcd == "";
  7066. sIOFlag == "";
  7067. sWardCD == "";
  7068. sRoomCD == "";
  7069. sIndschacptstat == "";
  7070. sDschdd == "";
  7071. sOrdDeptcd == "";
  7072. sMedispclid == "";
  7073. model.setValue(sCondPath+"/pid", "");
  7074. //fChkTgtPatInfo("disable");
  7075. }
  7076. /**
  7077. * @group :
  7078. * @ver : 2009.12.15
  7079. * @by : 양천덕
  7080. * @---------------------------------------------------
  7081. * @type : function
  7082. * @access : public
  7083. * @desc : 구분자로 분리된 특정자료를 Reading
  7084. * @param : pData : 원본데이터
  7085. * @param : pRow : 찾고자 하는 위치의 row
  7086. * @param : pCol : 찾고자 하는 위치의 column
  7087. * @return : 해당 row, column의 문자열
  7088. * @---------------------------------------------------
  7089. */
  7090. function fGetArrayDataTPR(pData, pRow, pCol){
  7091. var rowSep = "▩"; // row 구분자
  7092. var colSep = "▦"; // column 구분자;
  7093. var arrRow = pData.split(rowSep);
  7094. if(arrRow.length <= pRow) return "";
  7095. var arrCol = arrRow[pRow].split(colSep);
  7096. if(arrCol.length <= pCol) return "";
  7097. return arrCol[pCol];
  7098. }
  7099. /**
  7100. * @group :
  7101. * @ver : 2009.12.15
  7102. * @by : 양천덕
  7103. * @---------------------------------------------------
  7104. * @type : function
  7105. * @access : public
  7106. * @desc : 임상관찰기록 일별 전체 조회
  7107. * @param :
  7108. * @return :
  7109. * @---------------------------------------------------
  7110. */
  7111. function fPopupSearchRecData(){
  7112. var sIndex = cmb_patlist.focusIndex + 1
  7113. var sParam_Header = "pid▦srchdd▩";
  7114. var sParam_Data = model.getValue(sCondPath+"/pid") + "▦"
  7115. + model.getValue(sCondPath+"/recdd") + "▩";
  7116. setParameter("SPMNR06300_Param",sParam_Header+sParam_Data);
  7117. open("SPMNR06300", "1", event.clientX , event.clientY);
  7118. //parameter 정보 초기화
  7119. //clearParameter("SPMNR06300_Param");
  7120. }
  7121. /**
  7122. * @group :
  7123. * @ver : 2009.12.15
  7124. * @by : 양천덕
  7125. * @---------------------------------------------------
  7126. * @type : function
  7127. * @access : public
  7128. * @desc : 임상관찰기록 일별 전체 조회화면 Parameter 초기화 함수
  7129. * 일별 전체 조회 화면에서 초기화함수 호출.
  7130. * @param :
  7131. * @return :
  7132. * @---------------------------------------------------
  7133. */
  7134. function fPopupSearchRecDataInitParam(){
  7135. //parameter 정보 초기화
  7136. clearParameter("SPMNR06300_Param");
  7137. }
  7138. /**
  7139. * @group :
  7140. * @ver : 2009.12.22
  7141. * @by : 양천덕
  7142. * @---------------------------------------------------
  7143. * @type : function
  7144. * @access : public
  7145. * @desc : Flow Sheet 환경 설정 화면 Open
  7146. * @param :
  7147. * @return :
  7148. * @---------------------------------------------------
  7149. */
  7150. function fPopupFlowSheetSetting(){
  7151. modal("SMMNR10200", "1", event.clientX , event.clientY);
  7152. window.reload();
  7153. }
  7154. /**
  7155. * @group :
  7156. * @ver : 2010.01.20
  7157. * @by : 양천덕
  7158. * @---------------------------------------------------
  7159. * @type : function
  7160. * @access : public
  7161. * @desc : FlowSheet 그리드 행추가 로직
  7162. * @param :
  7163. * @return :
  7164. * @---------------------------------------------------
  7165. */
  7166. function fMakeGridNode(pFlag, pAddRow, pItemnm, pRecFlag, pDepth, pLnkBizCd, pStyle, pColor, pReadOnly, pCareRecSeqNo, pTotalIdx){
  7167. switch(pFlag){
  7168. case "24hours" :
  7169. model.makeNode(xHoursClincObsRecList+"["+pAddRow+"]");
  7170. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/itemnm" , pItemnm );
  7171. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt1" , "" );
  7172. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt2" , "" );
  7173. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt3" , "" );
  7174. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt4" , "" );
  7175. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt5" , "" );
  7176. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt6" , "" );
  7177. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt7" , "" );
  7178. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt8" , "" );
  7179. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt9" , "" );
  7180. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt10" , "" );
  7181. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt11" , "" );
  7182. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt12" , "" );
  7183. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt13" , "" );
  7184. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt14" , "" );
  7185. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt15" , "" );
  7186. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt16" , "" );
  7187. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt17" , "" );
  7188. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt18" , "" );
  7189. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt19" , "" );
  7190. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt20" , "" );
  7191. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt21" , "" );
  7192. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt22" , "" );
  7193. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt23" , "" );
  7194. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt24" , "" );
  7195. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recflag" , pRecFlag );
  7196. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/attrcd" , "" );
  7197. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/itemcd" , "" );
  7198. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/itemseqno" , "" );
  7199. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/depth" , pDepth );
  7200. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recfromdt" , "" );
  7201. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/reccharflag" , "" );
  7202. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/rectodt" , "" );
  7203. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/supcd" , "" );
  7204. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/carerecseqno" , "" );
  7205. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/leftaxis" , "" );
  7206. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/graphappyn" , "" );
  7207. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/color" , pColor );
  7208. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/totalyn" , "" );
  7209. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/totalnm" , "" );
  7210. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/lnkbizcd" , pLnkBizCd );
  7211. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/style" , pStyle );
  7212. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/subtotalyn" , "" );
  7213. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/subtotalnm" , "" );
  7214. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/runtotalyn" , "" );
  7215. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/runtotalnm" , "" );
  7216. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/fluidstat" , "" );
  7217. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/readonlyyn" , pReadOnly );
  7218. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/lnkcarerecseqno" , pCareRecSeqNo );
  7219. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/totalidx" , pTotalIdx );
  7220. model.makeValue(xHoursClincObsRecList+"["+pAddRow+"]/recfluidunit" , "" );
  7221. break;
  7222. case "24hours_Init" :
  7223. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt1" , "" );
  7224. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt2" , "" );
  7225. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt3" , "" );
  7226. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt4" , "" );
  7227. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt5" , "" );
  7228. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt6" , "" );
  7229. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt7" , "" );
  7230. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt8" , "" );
  7231. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt9" , "" );
  7232. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt10" , "" );
  7233. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt11" , "" );
  7234. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt12" , "" );
  7235. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt13" , "" );
  7236. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt14" , "" );
  7237. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt15" , "" );
  7238. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt16" , "" );
  7239. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt17" , "" );
  7240. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt18" , "" );
  7241. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt19" , "" );
  7242. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt20" , "" );
  7243. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt21" , "" );
  7244. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt22" , "" );
  7245. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt23" , "" );
  7246. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/recrslt24" , "" );
  7247. model.setValue(xHoursClincObsRecList+"["+pAddRow+"]/fluidstat" , "" );
  7248. break;
  7249. }
  7250. }
  7251. /**
  7252. * @group :
  7253. * @ver : 2010.01.26
  7254. * @by : 양천덕
  7255. * @---------------------------------------------------
  7256. * @type : function
  7257. * @access : public
  7258. * @desc :
  7259. * @param : 확장명/부위 정보 입력 popup 호출
  7260. * @return :
  7261. * @---------------------------------------------------
  7262. */
  7263. function fPopupInputExtNm(){
  7264. var iRow = grd_24hoursclincobsreclist.row;
  7265. var sCareRecSeqNo = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("carerecseqno"));
  7266. var sItemnm = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("itemnm"));
  7267. var sItemLnkBizCd = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("lnkbizcd"));
  7268. var sItemCd = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("itemcd"));
  7269. var sRecFluidUnit = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recfluidunit"));
  7270. var sItemOrigin = "00";
  7271. var sParamInfo = "";
  7272. var sRtnParamInfo = "";
  7273. if(sItemLnkBizCd == "11" || sItemLnkBizCd == "12" ) sItemOrigin = "04";
  7274. sParamInfo = "upd▦";
  7275. setParameter("SPMNR06100_Param",sParamInfo+sItemOrigin+"▦"+sCareRecSeqNo+"▦"+sPid+"▦"+sIndd+"▦"+sCretNo+"▦"+sItemnm+"▦"+sItemnm+"▦"+sItemCd+"▦"+sRecFluidUnit+"▩");
  7276. modal("SPMNR06100", "1", event.clientX , event.clientY);
  7277. sRtnParamInfo = getParameter("SPMNR06100_RtnParam");
  7278. if(sRtnParamInfo == "") return;
  7279. grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("itemnm")) = fGetArrayDataTPR(sRtnParamInfo, 0, 3);
  7280. grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recfluidunit")) = fGetArrayDataTPR(sRtnParamInfo, 0, 4);
  7281. grd_24hoursclincobsreclist.valueMatrix(grd_24hoursclincobsreclist.findRow(sCareRecSeqNo, iRow, grd_24hoursclincobsreclist.colRef("lnkcarerecseqno")), grd_24hoursclincobsreclist.colRef("itemnm")) = fGetArrayDataTPR(sRtnParamInfo, 0, 4);
  7282. //parameter 정보 초기화
  7283. clearParameter("SPMNR06100_Param");
  7284. clearParameter("SPMNR06100_RtnParam");
  7285. }
  7286. /**
  7287. * @group :
  7288. * @ver : 2010.01.26
  7289. * @by : 양천덕
  7290. * @---------------------------------------------------
  7291. * @type : function
  7292. * @access : public
  7293. * @desc :
  7294. * @param : 기타기록(면회정보, 출생일) 입력 Popup
  7295. * @return :
  7296. * @---------------------------------------------------
  7297. */
  7298. function fPopupEtcRec(pFlag){
  7299. var sRecDD = getCurrentDate();
  7300. var sViewFlag = pFlag;
  7301. var sParamInfo = "";
  7302. setParameter("SPMNR10300_Param", sRecDD+"▦"+sViewFlag+"▦"+sPid+"▦"+sIndd+"▦"+sCretNo+"▦"+sIOFlag+"▩");
  7303. modal("SPMNR10300","1", event.screenX, event.screenY);
  7304. clearParameter("SPMNR10300_Param");
  7305. model.removenode("/root/send");
  7306. model.makeValue("/root/send/pid", sPid);
  7307. model.makeValue("/root/send/indd", sIndd);
  7308. model.makeValue("/root/send/cretno", sCretNo);
  7309. model.makeValue("/root/send/instcd", sInstcd);
  7310. model.makeValue("/root/send/ioflag", sIOFlag);
  7311. model.makeValue("/root/send/dayinfo", ipt_24hoursrecdd.value);
  7312. submit("TRMNR10102");
  7313. fControlPatInfo();
  7314. }
  7315. /**
  7316. * @group :
  7317. * @ver : 2010.07.19
  7318. * @by : 양천덕
  7319. * @---------------------------------------------------
  7320. * @type : function
  7321. * @access : public
  7322. * @desc :
  7323. * @param : 환자 면회 정보 입력 / 조회 Popup
  7324. * @return :
  7325. * @---------------------------------------------------
  7326. */
  7327. function fPopupPatMeetRec(){
  7328. var sRecDD = ipt_24hoursrecdd.value;
  7329. var sViewFlag = "01";
  7330. var sParamInfo = "";
  7331. setParameter("SPMNR10800_Param", sRecDD.substr(0, 6)+"▦"+sViewFlag+"▦"+sPid+"▦"+sIndd+"▦"+sCretNo+"▦"+sIOFlag+"▦"+sRecDD+"▦"+sPatNm+"▩");
  7332. modal("SPMNR10800","1", event.screenX, event.screenY);
  7333. clearParameter("SPMNR10800_Param");
  7334. model.removenode("/root/send");
  7335. model.makeValue("/root/send/pid", sPid);
  7336. model.makeValue("/root/send/indd", sIndd);
  7337. model.makeValue("/root/send/cretno", sCretNo);
  7338. model.makeValue("/root/send/instcd", sInstcd);
  7339. model.makeValue("/root/send/ioflag", sIOFlag);
  7340. model.makeValue("/root/send/dayinfo", ipt_24hoursrecdd.value);
  7341. submit("TRMNR10102");
  7342. fControlPatInfo();
  7343. }
  7344. /**
  7345. * @group :
  7346. * @ver : 2010.07.19
  7347. * @by : 양천덕
  7348. * @---------------------------------------------------
  7349. * @type : function
  7350. * @access : public
  7351. * @desc :
  7352. * @param : 근무 담당자 정보 입력 / 조회 Popup
  7353. * @return :
  7354. * @---------------------------------------------------
  7355. */
  7356. function fPopupDutyUserRec(){
  7357. var sRecDD = ipt_24hoursrecdd.value;
  7358. var sViewFlag = "03";
  7359. var sParamInfo = "";
  7360. setParameter("SPMNR10700_Param", sRecDD.substr(0, 6)+"▦"+sViewFlag+"▦"+sPid+"▦"+sIndd+"▦"+sCretNo+"▦"+sIOFlag+"▦"+sRecDD+"▦"+sPatNm+"▩");
  7361. modal("SPMNR10700","1", event.screenX, event.screenY);
  7362. clearParameter("SPMNR10700_Param");
  7363. model.removenode("/root/send");
  7364. model.makeValue("/root/send/pid", sPid);
  7365. model.makeValue("/root/send/indd", sIndd);
  7366. model.makeValue("/root/send/cretno", sCretNo);
  7367. model.makeValue("/root/send/instcd", sInstcd);
  7368. model.makeValue("/root/send/ioflag", sIOFlag);
  7369. model.makeValue("/root/send/dayinfo", ipt_24hoursrecdd.value);
  7370. submit("TRMNR10102");
  7371. fControlPatInfo();
  7372. }
  7373. /**
  7374. * @group :
  7375. * @ver : 2010.01.26
  7376. * @by : 양천덕
  7377. * @---------------------------------------------------
  7378. * @type : function
  7379. * @access : public
  7380. * @desc :
  7381. * @param : Fluid기록 입력 화면 호출
  7382. * @return :
  7383. * @---------------------------------------------------
  7384. */
  7385. function fPopupFluid(){
  7386. //화면 재조회 popup호출을 할 경우 미기록 정보 체크 함수
  7387. //fSearchClincObsRec 함수를 호출하는 함수에 추가 필요
  7388. //해당 함수는 필요가 없으나 예외 처리로 넣어둠.
  7389. if( fChkSaveData() == false ) return;
  7390. var sSearchDataHeader = "carerecseqno▦fromdt▦todt▦pid▦indd▦cretno▦wardcd▦roomcd▦ioflag▦orddeptcd▦orddrid▦recfluidunit▩";
  7391. var sParamValue = "";
  7392. iRow = grd_24hoursclincobsreclist.row;
  7393. iCol = grd_24hoursclincobsreclist.col;
  7394. iNodeRowValue = iRow - grd_24hoursclincobsreclist.fixedRows + 1;
  7395. var sCareRecSeqNo = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("carerecseqno"));
  7396. var sBaseFromDt = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00";
  7397. var sBaseToDt = sHeader[1][iCol+1]+sHeader[3][iCol+1]+sHeader[4][iCol+1]+"00";
  7398. var sRecFluidUnit = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recfluidunit"));
  7399. sParamValue += sCareRecSeqNo +"▦"
  7400. + sBaseFromDt +"▦"
  7401. + sBaseToDt +"▦"
  7402. + sPid +"▦"
  7403. + sIndd +"▦"
  7404. + sCretNo +"▦"
  7405. + sWardCD +"▦"
  7406. + sRoomCD +"▦"
  7407. + sIOFlag +"▦"
  7408. + model.getValue("/root/main/paminfo/pamlist/orddeptcd" ) +"▦"
  7409. + model.getValue("/root/main/paminfo/pamlist/medispclid") +"▦"
  7410. + sRecFluidUnit +"▩";
  7411. setParameter("SPMNR10400_Param", sParamValue);
  7412. modal("SPMNR10400", "1", event.clientX , event.clientY);
  7413. //입력 및 정보 조회 Parameter 설정
  7414. model.makeValue("/root/send/clincobsfluidreclist", sSearchDataHeader + sParamValue);
  7415. //특정 Fluid 정보 재조회 후 처리
  7416. if(submit("TRMNR10104", false)){
  7417. if( getNodesetCount(xFluidTmpPath) > 0 ){
  7418. for( var i = 1 ; i <= getNodesetCount(xFluidTmpPath) ; i++ ){
  7419. InsFluidNo = model.getValue(xFluidTmpPath+"[" + i + "]/carerecseqno");
  7420. if(model.getValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/carerecseqno") != "" ){
  7421. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/recdt" , model.getValue(xFluidTmpPath+"[" + i + "]/recdt" ));
  7422. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/recrslt" , model.getValue(xFluidTmpPath+"[" + i + "]/recrslt" ));
  7423. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/fluidstat" , model.getValue(xFluidTmpPath+"[" + i + "]/fluidstat" ));
  7424. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/fluidetcinfo" , model.getValue(xFluidTmpPath+"[" + i + "]/fluidetcinfo" ));
  7425. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/usernm" , model.getValue(xFluidTmpPath+"[" + i + "]/usernm" ));
  7426. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/userid" , model.getValue(xFluidTmpPath+"[" + i + "]/userid" ));
  7427. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/certkey" , model.getValue(xFluidTmpPath+"[" + i + "]/certkey" ));
  7428. model.setValue(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']/clncobsseqno" , model.getValue(xFluidTmpPath+"[" + i + "]/clncobsseqno" ));
  7429. }else{
  7430. AddRow = eval(getNodesetCount(xFluidPath)) + 1;
  7431. model.makeValue(xFluidPath+"[" + AddRow + "]/carerecseqno" , InsFluidNo ) ;
  7432. model.makeValue(xFluidPath+"[" + AddRow + "]/recdt" , model.getValue(xFluidTmpPath+"[" + i + "]/recdt" ));
  7433. model.makeValue(xFluidPath+"[" + AddRow + "]/recrslt" , model.getValue(xFluidTmpPath+"[" + i + "]/recrslt" ));
  7434. model.makeValue(xFluidPath+"[" + AddRow + "]/fluidstat" , model.getValue(xFluidTmpPath+"[" + i + "]/fluidstat" ));
  7435. model.makeValue(xFluidPath+"[" + AddRow + "]/fluidetcinfo" , model.getValue(xFluidTmpPath+"[" + i + "]/fluidetcinfo" ));
  7436. model.makeValue(xFluidPath+"[" + AddRow + "]/usernm" , model.getValue(xFluidTmpPath+"[" + i + "]/usernm" ));
  7437. model.makeValue(xFluidPath+"[" + AddRow + "]/userid" , model.getValue(xFluidTmpPath+"[" + i + "]/userid" ));
  7438. model.makeValue(xFluidPath+"[" + AddRow + "]/certkey" , model.getValue(xFluidTmpPath+"[" + i + "]/certkey" ));
  7439. model.makeValue(xFluidPath+"[" + AddRow + "]/clncobsseqno" , model.getValue(xFluidTmpPath+"[" + i + "]/clncobsseqno" ));
  7440. }
  7441. }
  7442. }else{
  7443. model.removeNodeset(xFluidPath+"[carerecseqno ='" + sCareRecSeqNo + "']");
  7444. }
  7445. //재조회 Path 삭제
  7446. model.removenode("/root/temp/clincobsfluidrecinfo");
  7447. //Fluid 행 초기화
  7448. fMakeGridNode("24hours_Init", iNodeRowValue);
  7449. fMakeGridNode("24hours_Init", iNodeRowValue+1);
  7450. //Fluid 정보를 이용하여 화면 Style및 정보 Setting
  7451. fSettingFluidInfo("F", "Chng", iNodeRowValue, iNodeRowValue+1, sCareRecSeqNo);
  7452. sFluidStatInfo = grd_24hoursclincobsreclist.valueMatrix(iRow+1, grd_24hoursclincobsreclist.colRef("fluidstat"));
  7453. for(var iCol=1; iCol<= 24; iCol++){
  7454. sFluidRecDT = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00";
  7455. //Grid Graph 설정
  7456. if(isSearchString(sFluidStatInfo, sFluidRecDT) == true){
  7457. grd_24hoursclincobsreclist.cellstyle("border-bottom-color", iRow+1, iCol) = "#0000ff";
  7458. grd_24hoursclincobsreclist.cellstyle("border-bottom-width", iRow+1, iCol) = 2;
  7459. }else{
  7460. grd_24hoursclincobsreclist.cellstyle("border-bottom-color", iRow+1, iCol) = "#B0B0B0";
  7461. grd_24hoursclincobsreclist.cellstyle("border-bottom-width", iRow+1, iCol) = 1;
  7462. }
  7463. }
  7464. }
  7465. //Fluid 입력 화면에서 I/O처리 후 Param 정보가 있을 경우 처리
  7466. if( getParameter("SPMNR10400_ReturnSaveInfo") != "" ){
  7467. submit("TRMNR10105", false);
  7468. xPathViewData = "/root/temp/rtnsigndatainfo/rtnsigndata";
  7469. fMakeViewData();
  7470. model.removenodeSet(xPathViewData);
  7471. model.removenodeSet("/root/temp/SignData");
  7472. xPathViewData = "/root/temp/clincobsrecinfo/rtnsigndata";
  7473. }
  7474. //parameter 정보 초기화
  7475. clearParameter("SPMNR10400_Param");
  7476. clearParameter("SPMNR10400_ReturnSaveInfo");
  7477. }
  7478. /**
  7479. * @group :
  7480. * @ver : 2010.07.30
  7481. * @by : 양천덕
  7482. * @---------------------------------------------------
  7483. * @type : function
  7484. * @access : public
  7485. * @desc :
  7486. * @param : 체중누적조회 화면 호출
  7487. * @return :
  7488. * @---------------------------------------------------
  7489. */
  7490. function fPopupWeightList(){
  7491. var sParamValue = "pid▦indd▦cretno▦wardcd▦recdd▩" ;
  7492. sParamValue += sPid + "▦"
  7493. + sIndd + "▦"
  7494. + sCretNo + "▦"
  7495. + "" + "▦"
  7496. + model.getValue("/root/main/cond/seardd") + "▩";
  7497. setParameter("SPMNR11000_Param", sParamValue);
  7498. open("SPMNR11000", "1", event.clientX , event.clientY);
  7499. }
  7500. /**
  7501. * @group :
  7502. * @ver : 2010.01.26
  7503. * @by : 양천덕
  7504. * @---------------------------------------------------
  7505. * @type : function
  7506. * @access : public
  7507. * @desc : Fluid 정보 Setting
  7508. * @param : pFlag : 세팅 구분
  7509. * pRealFluidRow : Fluid Row 정보
  7510. * pGraphRow : Fluid Graph Row 정보
  7511. * pIndex : Fluid 간호일련번호 정보
  7512. * @return :
  7513. * @---------------------------------------------------
  7514. */
  7515. function fSettingFluidInfo(pFlag, pStat, pRealFluidRow, pGraphRow, pIndex){
  7516. if(pRealFluidRow < 1 || pGraphRow < 1) return;
  7517. var xRowGraphPath = "";
  7518. if( pFlag == "I" ){
  7519. xRowGraphPath = xInstrmtPath;
  7520. }else{
  7521. xRowGraphPath = xFluidPath;
  7522. }
  7523. var sFluidCareRecSeqNo = model.getValue(xRowGraphPath+"[carerecseqno ='" +pIndex+ "']/carerecseqno" );
  7524. var sFluidRecDt = model.getValue(xRowGraphPath+"[carerecseqno ='" +pIndex+ "']/recdt" );
  7525. var sFluidRslt = model.getValue(xRowGraphPath+"[carerecseqno ='" +pIndex+ "']/recrslt" );
  7526. var sFluidStat = model.getValue(xRowGraphPath+"[carerecseqno ='" +pIndex+ "']/fluidstat" );
  7527. var sFluidEtcInfo = model.getValue(xRowGraphPath+"[carerecseqno ='" +pIndex+ "']/fluidetcinfo" );
  7528. if( sFluidCareRecSeqNo == "" ) sFluidCareRecSeqNo = pIndex;
  7529. var sFluidRsltArray = new Array();
  7530. var sFluidStatArray = new Array();
  7531. var sFluidEtcInfoArray = new Array();
  7532. var sFluidRecDtArray = new Array();
  7533. sFluidRsltArray = sFluidRslt.split("^");
  7534. sFluidStatArray = sFluidStat.split("^");
  7535. sFluidEtcInfoArray = sFluidEtcInfo.split("^");
  7536. sFluidRecDtArray = sFluidRecDt.split("^");
  7537. var sFluidStatTmpInfo = ""; //Fluid 유지임시정보(시간정보)
  7538. var sFluidStartTm = "";
  7539. var sFluidChngTm = "";
  7540. var sFluidEndTm = "";
  7541. var sStayRsltValue = ""; //Fluid 결과값 유지 정보
  7542. var sStayEtcInfoValue = ""; //Fluid 투여속도 유지 정보
  7543. var sFluidStayFromdt = "";
  7544. var sFluidStayTodt = "";
  7545. var sFluidStayRslt = "";
  7546. var sFluidStayFlag = "";
  7547. var sFluidRunSumCalcValue = 0;
  7548. var sFluidInitStayRslt = "";
  7549. var sFluidInitStayEtcInfo = "";
  7550. var sFluidIndexValue = "";
  7551. if(pFlag == "F"){
  7552. //Fluid 합계 배열 생성 부분
  7553. for( var i=0 ; i < sFluidSumInfo.length ; i++ ){
  7554. if( sFluidSumInfo[i][0] == sFluidCareRecSeqNo ){
  7555. sFluidBfSumInfo[0] = sFluidCareRecSeqNo;
  7556. sFluidIndexValue = i;
  7557. }
  7558. }
  7559. if( fIsNumber(sFluidIndexValue) == false ){
  7560. sFluidIndexValue = sFluidSumInfo.length;
  7561. sFluidSumInfo[sFluidIndexValue] = new Array;
  7562. sFluidSumInfo[sFluidIndexValue][0] = sFluidCareRecSeqNo;
  7563. }
  7564. for( var iCol=1; iCol<= 24; iCol++ ){
  7565. sFluidBfSumInfo[iCol] = 0;
  7566. if( fIsNumber(sFluidSumInfo[sFluidIndexValue][iCol]) == true ){
  7567. sFluidBfSumInfo[iCol] = sFluidSumInfo[sFluidIndexValue][iCol]; //이전 합계 정보 저장
  7568. }
  7569. sFluidSumInfo[sFluidIndexValue][iCol] = 0; //합계 배열 초기화
  7570. sColDate = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00"; //현재 Col의 일시 정보
  7571. sAfterColDate = sHeader[1][iCol+1]+sHeader[3][iCol+1]+sHeader[4][iCol+1]+"00"; //다음 Col의 일시 정보
  7572. for( var i = 0 ; i < sFluidRsltArray.length ; i ++ ){
  7573. if( sFluidStatArray[i] == "S" ){
  7574. if( sFluidRecDtArray[i] < sColDate || ( sFluidRecDtArray[i] >= sColDate && sFluidRecDtArray[i] < sAfterColDate )){
  7575. if( isSearchString(sFluidStatTmpInfo, sColDate) == false ){
  7576. sFluidStatTmpInfo += sColDate+" ";
  7577. }
  7578. sStayRsltValue = sFluidRsltArray[i];
  7579. sStayEtcInfoValue = sFluidEtcInfoArray[i];
  7580. sFluidStartTm = sFluidRecDtArray[i];
  7581. sFluidEndTm = "-";
  7582. sFluidChngTm = "-";
  7583. }
  7584. }else if( sFluidStatArray[i] == "C" ){
  7585. sFluidChngTm = sFluidRecDtArray[i];
  7586. }else if( sFluidStatArray[i] == "E" ){
  7587. if( sFluidEndTm == "-" ) sFluidEndTm = sFluidRecDtArray[i];
  7588. if( sFluidRecDtArray[i] < sColDate ){
  7589. sFluidStatTmpInfo = sFluidStatTmpInfo.replace(sColDate+" ", "");
  7590. }
  7591. sStayRsltValue = "";
  7592. sStayEtcInfoValue = "";
  7593. sFluidEndTm = sFluidRecDtArray[i];
  7594. sFluidChngTm = "-";
  7595. }
  7596. //Graph & '단위' Row에 값 입력
  7597. if( sFluidRecDtArray[i] >= sColDate && sFluidRecDtArray[i] < sAfterColDate ){
  7598. var sGraphRowValue = model.getValue(xHoursClincObsRecList+"["+pGraphRow+"]/recrslt"+iCol);
  7599. var sFluidRowValue = model.getValue(xHoursClincObsRecList+"["+pRealFluidRow+"]/recrslt"+iCol);
  7600. if( sFluidStatArray[i] == "S" ){
  7601. sFluidStayFromdt = sFluidRecDtArray[i];
  7602. sFluidStayRslt = sFluidRsltArray[i];
  7603. }else if( sFluidStatArray[i] == "C" ){
  7604. if( sFluidStayFromdt != "" && sFluidStayRslt != "" && sColDate < sNowDate ){
  7605. sFluidCalcFromdt = "";
  7606. if( sFluidStayFromdt < sColDate ){
  7607. sFluidCalcFromdt = sColDate;
  7608. }else{
  7609. sFluidCalcFromdt = sFluidStayFromdt;
  7610. }
  7611. sFluidSumInfo[sFluidIndexValue][iCol] += fMakeFluidSumData(sFluidCalcFromdt, sFluidRecDtArray[i], sFluidStayRslt, "+", "+");
  7612. sFluidStayFromdt = sFluidRecDtArray[i];
  7613. sFluidStayRslt = sFluidRsltArray[i];
  7614. }
  7615. }else if( sFluidStatArray[i] == "E" ){
  7616. sFluidCalcFromdt = "";
  7617. sFluidCalcTodt = "";
  7618. //시작 및 변경 시간 체크
  7619. if( sFluidStayFromdt < sColDate ){
  7620. sFluidCalcFromdt = sColDate;
  7621. }else{
  7622. sFluidCalcFromdt = sFluidStayFromdt;
  7623. }
  7624. //종료시간 체크
  7625. if( sFluidRecDtArray[i] < sNowDate){
  7626. sFluidCalcTodt = sFluidRecDtArray[i];
  7627. }else{
  7628. sFluidCalcTodt = sNowDate;
  7629. }
  7630. if( sFluidCalcFromdt < sFluidCalcTodt ){
  7631. sFluidSumInfo[sFluidIndexValue][iCol] += fMakeFluidSumData(sFluidCalcFromdt, sFluidCalcTodt, sFluidStayRslt, "+", "+");
  7632. }
  7633. sFluidStayFromdt = "";
  7634. sFluidStayRslt = "";
  7635. }
  7636. //Event 표시 여부에 따른 Fluid 표시 설정
  7637. if( sEventItemUseYn == "Y" ){
  7638. if( sFluidStatArray[i] == "C" ){
  7639. //Graph Row Setting
  7640. if( sFluidEtcInfoArray[i] != "" && sStayEtcInfoValue != sFluidEtcInfoArray[i]){
  7641. if( sGraphRowValue != "" ) sGraphRowValue += ", ";
  7642. sGraphRowValue += "(" + sStayEtcInfoValue + "→" + sFluidEtcInfoArray[i] + ")";
  7643. sGraphRowValue += "/"+sFluidRecDtArray[i].substr(10,2)+"'";
  7644. sStayEtcInfoValue = sFluidEtcInfoArray[i];
  7645. }
  7646. //Fluid Row Setting
  7647. if( sFluidRsltArray[i] != "" && sStayRsltValue != sFluidRsltArray[i]){
  7648. if( sFluidRowValue != "" ) sFluidRowValue += ", ";
  7649. sFluidRowValue += sStayRsltValue + "→" + sFluidRsltArray[i];
  7650. sFluidRowValue += "/"+sFluidRecDtArray[i].substr(10,2)+"'";
  7651. sStayRsltValue = sFluidRsltArray[i];
  7652. }
  7653. }else{
  7654. //Graph Row Setting
  7655. if( sFluidStatArray[i] != "" ){
  7656. if( sGraphRowValue != "" ) sGraphRowValue += ", ";
  7657. sGraphRowValue += sFluidStatArray[i];
  7658. }
  7659. if( sFluidEtcInfoArray[i] != "" ){
  7660. sGraphRowValue += "/("+sFluidEtcInfoArray[i]+")";
  7661. sStayEtcInfoValue = sFluidEtcInfoArray[i];
  7662. }
  7663. if( sFluidRecDtArray[i] != "" ) sGraphRowValue += "/"+sFluidRecDtArray[i].substr(10,2)+"'";
  7664. //Fluid Row Setting
  7665. if( sFluidRsltArray[i] != "" ){
  7666. if( sFluidRowValue != "" ) sFluidRowValue += ", ";
  7667. sFluidRowValue += sFluidRsltArray[i];
  7668. sStayRsltValue = sFluidRsltArray[i];
  7669. }
  7670. }
  7671. }else{
  7672. //Graph Row Setting
  7673. if( sFluidStatArray[i] != "" ){
  7674. if( sGraphRowValue != "" ) sGraphRowValue += ", ";
  7675. sGraphRowValue += sFluidStatArray[i];
  7676. }
  7677. if( sFluidEtcInfoArray[i] != "" ){
  7678. sGraphRowValue += "/("+sFluidEtcInfoArray[i]+")";
  7679. }
  7680. if( sFluidRecDtArray[i] != "" ) sGraphRowValue += "/"+sFluidRecDtArray[i].substr(10,2)+"'";
  7681. //Fluid Row Setting
  7682. if( sFluidRsltArray[i] != "" ){
  7683. if( sFluidRowValue != "" ) sFluidRowValue += ", ";
  7684. sFluidRowValue += sFluidRsltArray[i];
  7685. }
  7686. }
  7687. model.setValue(xHoursClincObsRecList+"["+pRealFluidRow+"]/recrslt"+iCol, sFluidRowValue );
  7688. model.setValue(xHoursClincObsRecList+"["+pGraphRow+"]/recrslt"+iCol, sGraphRowValue );
  7689. }else if( sFluidRecDtArray[i] < sColDate ){
  7690. if( sFluidStatArray[i] != "E" ){
  7691. if( sFluidStayFromdt <= sFluidRecDtArray[i] ){
  7692. if( sFluidRsltArray[i] != "" ) sStayRsltValue = sFluidRsltArray[i];
  7693. if( sFluidEtcInfoArray[i] != "" ) sStayEtcInfoValue = sFluidEtcInfoArray[i];
  7694. sFluidStayFromdt = sFluidRecDtArray[i];
  7695. sFluidStayRslt = sFluidRsltArray[i];
  7696. sFluidInitStayRslt = sFluidRsltArray[i];
  7697. sFluidInitStayEtcInfo = sFluidEtcInfoArray[i];
  7698. }
  7699. }else{
  7700. sStayRsltValue = "";
  7701. sFluidStayFromdt = "";
  7702. sFluidStayRslt = "";
  7703. }
  7704. }
  7705. }
  7706. //Fluid 합계 처리 부분
  7707. if( sFluidStayRslt != "" ){
  7708. if( isSearchString( sFluidStatTmpInfo, sColDate ) == true ){
  7709. if( sFluidStayFromdt < sAfterColDate && sFluidStayFromdt < sNowDate ){
  7710. sFluidCalcFromdt = "";
  7711. if( sFluidStayFromdt < sColDate ){
  7712. sFluidCalcFromdt = sColDate;
  7713. }else{
  7714. sFluidCalcFromdt = sFluidStayFromdt;
  7715. }
  7716. if( sNowDate < sAfterColDate ){
  7717. if( sFluidCalcFromdt < sNowDate ) sFluidSumInfo[sFluidIndexValue][iCol] += fMakeFluidSumData(sFluidCalcFromdt, sNowDate, sFluidStayRslt, "+", "+");
  7718. }else{
  7719. if( sFluidCalcFromdt < sAfterColDate ) sFluidSumInfo[sFluidIndexValue][iCol] += fMakeFluidSumData(sFluidCalcFromdt, sAfterColDate, sFluidStayRslt, "+", "+");
  7720. }
  7721. }
  7722. }
  7723. }
  7724. sFluidSumInfo[sFluidIndexValue][iCol] = Math.round(sFluidSumInfo[sFluidIndexValue][iCol] * Math.pow(10, (-4)*(-1)-1)) / Math.pow(10, (-4)*(-1)-1);
  7725. //조회 시작시간에 정보가 없을 때 바로 전 데이터 표시
  7726. if( iCol == "1" && model.getValue(xHoursClincObsRecList+"["+pRealFluidRow+"]/recrslt"+iCol) == "" && isSearchString( sFluidStatTmpInfo, sColDate ) == true ){
  7727. if( sFluidInitStayRslt != "" ) model.setValue(xHoursClincObsRecList+"["+pRealFluidRow+"]/recrslt"+iCol, sFluidInitStayRslt+"→" );
  7728. }
  7729. if( iCol == "1" && model.getValue(xHoursClincObsRecList+"["+pGraphRow+"]/recrslt"+iCol) == "" && isSearchString( sFluidStatTmpInfo, sColDate ) == true ){
  7730. if( sFluidInitStayEtcInfo != "" ) model.setValue(xHoursClincObsRecList+"["+pGraphRow+"]/recrslt"+iCol, sFluidInitStayEtcInfo+"→" );
  7731. }
  7732. }
  7733. }else{
  7734. for( var iCol=1; iCol<= 24; iCol++ ){
  7735. sColDate = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00"; //현재 Col의 일시 정보
  7736. sAfterColDate = sHeader[1][iCol+1]+sHeader[3][iCol+1]+sHeader[4][iCol+1]+"00"; //다음 Col의 일시 정보
  7737. for( var i = 0 ; i < sFluidStatArray.length ; i ++ ){
  7738. if( sFluidRsltArray[i] == "S" || sFluidRsltArray[i].substr(0,2) == "S/" ){
  7739. if( sFluidRecDtArray[i] < sColDate || ( sFluidRecDtArray[i] >= sColDate && sFluidRecDtArray[i] < sAfterColDate )){
  7740. if( isSearchString(sFluidStatTmpInfo, sColDate) == false ){
  7741. sFluidStatTmpInfo += sColDate+" ";
  7742. }
  7743. sStayRsltValue = sFluidRsltArray[i];
  7744. sFluidStartTm = sFluidRecDtArray[i];
  7745. sFluidEndTm = "-";
  7746. sFluidChngTm = "-";
  7747. }
  7748. }else if( sFluidRsltArray[i] == "C" || sFluidStatArray[i].substr(0,2) == "C/" ){
  7749. sFluidChngTm = sFluidRecDtArray[i];
  7750. }else if( sFluidRsltArray[i] == "E" || sFluidStatArray[i].substr(0,2) == "E/" ){
  7751. if( sFluidEndTm == "-" ) sFluidEndTm = sFluidRecDtArray[i];
  7752. if( sFluidRecDtArray[i] < sColDate ){
  7753. sFluidStatTmpInfo = sFluidStatTmpInfo.replace(sColDate+" ", "");
  7754. }
  7755. sStayRsltValue = "";
  7756. sStayEtcInfoValue = "";
  7757. sFluidEndTm = sFluidRecDtArray[i];
  7758. sFluidChngTm = "-";
  7759. }
  7760. }
  7761. }
  7762. }
  7763. /*
  7764. var sfjklsdfjlksd = "";
  7765. for(var i = 1 ; i <= 24 ; i++){
  7766. sfjklsdfjlksd += "\n | " + i + " : " + sFluidBfSumInfo[i]
  7767. + " / " + i + " : " + sFluidSumInfo[sFluidIndexValue][i];
  7768. }
  7769. alert(sfjklsdfjlksd);
  7770. */
  7771. //Fluid 종료되지 않았을 경우 처리 로직
  7772. if( sFluidEndTm == "-" ){
  7773. if( sFluidChngTm != "-") sFluidStartTm = sFluidChngTm;
  7774. for( var iCol=1; iCol<= 24; iCol++ ){
  7775. sColDate = sHeader[1][iCol]+sHeader[3][iCol]+sHeader[4][iCol]+"00"; //현재 Col의 일시 정보
  7776. if( sFluidStartTm <= sNowDate ){
  7777. if( sNowDate < sColDate ){
  7778. sFluidStatTmpInfo = sFluidStatTmpInfo.replace(sColDate+" ", "");
  7779. }
  7780. }else{
  7781. if( sFluidStartTm < sColDate ){
  7782. sFluidStatTmpInfo = sFluidStatTmpInfo.replace(sColDate+" ", "");
  7783. }
  7784. }
  7785. }
  7786. }
  7787. //Fluid Row Event 발생시 별도 처리 부분(합계값 변경)
  7788. if( pFlag == "F" ){
  7789. if( pStat == "Chng" ){
  7790. for(var iRow = grd_24hoursclincobsreclist.fixedRows ; iRow < grd_24hoursclincobsreclist.rows ; iRow++){
  7791. sSrchStrValue = "/"+ sFluidCareRecSeqNo +"/";
  7792. for( var iCol=1; iCol<= 24; iCol++ ){
  7793. sTotalidx = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("totalidx"));
  7794. sRecFlag = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recflag"));
  7795. if( sTotalidx != "" && sSrchStrValue != "" && isSearchString(sTotalidx, sSrchStrValue) == true ){
  7796. sTotalValue = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef(("recrslt"+iCol)));
  7797. sFluidSumCalcValue = eval(sFluidSumInfo[sFluidIndexValue][iCol]) - eval(sFluidBfSumInfo[iCol]);
  7798. sChngFluidSumCalcValue = "";
  7799. if( fIsNumber(sFluidSumCalcValue) == true && sFluidSumCalcValue != 0 ){
  7800. if( sRecFlag == "R"){
  7801. if( sDutyTMColInfo1+1 != iCol && sDutyTMColInfo2+1 != iCol && sDutyTMColInfo3+1 != iCol ){
  7802. sFluidRunSumCalcValue += eval(sFluidSumCalcValue);
  7803. }else{
  7804. sFluidRunSumCalcValue = sFluidSumCalcValue;
  7805. }
  7806. if( fIsNumber(sTotalValue) == true ){
  7807. sChngFluidSumCalcValue = eval(sTotalValue) + eval(sFluidRunSumCalcValue);
  7808. }else{
  7809. sChngFluidSumCalcValue = eval(sFluidRunSumCalcValue);
  7810. }
  7811. }else if( sRecFlag == "T" || sRecFlag == "S" ){
  7812. if( fIsNumber(sTotalValue) == true ){
  7813. sChngFluidSumCalcValue = eval(sTotalValue) + eval(sFluidSumCalcValue);
  7814. }else{
  7815. sChngFluidSumCalcValue = eval(sFluidSumCalcValue);
  7816. }
  7817. }
  7818. //합계값이 숫자값이고 0이 아닐때 계산 값 입력
  7819. if( fIsNumber(sChngFluidSumCalcValue) == true && sChngFluidSumCalcValue != 0 ){
  7820. grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef(("recrslt"+iCol))) = sChngFluidSumCalcValue;
  7821. }else{
  7822. grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef(("recrslt"+iCol))) = "";
  7823. }
  7824. }
  7825. }
  7826. }
  7827. }
  7828. }
  7829. model.setValue(xHoursClincObsRecList+"["+pGraphRow+"]/readonlyyn", "Y");
  7830. }
  7831. model.setValue(xHoursClincObsRecList+"["+pGraphRow+"]/fluidstat", sFluidStatTmpInfo);
  7832. }
  7833. /**
  7834. * @group :
  7835. * @ver : 2010.02.23
  7836. * @by : 양천덕
  7837. * @---------------------------------------------------
  7838. * @type : function
  7839. * @access : public
  7840. * @desc : Fluid 합계 계산 로직
  7841. * @param : pFromdd : 계산시작일시
  7842. * pTodd : 계산종료일시
  7843. * pRslt : 계산수식
  7844. * pFromType : 계산시작일시 포함여부('+': 포함, '-': 제외)
  7845. * pToType : 계산종료일시 포함여부('+': 포함, '-': 제외)
  7846. * @return :
  7847. * @---------------------------------------------------
  7848. */
  7849. function fMakeFluidSumData(pFromdd, pTodd, pRslt, pFromType, pToType){
  7850. var sFromCalc = 0;
  7851. var sToCalc = 0;
  7852. if( pFromdd == pTodd ) return 0;
  7853. if(pFromType == "-") sFromCalc = -1;
  7854. if(pToType == "-") sToCalc = -1;
  7855. if( pRslt.isFloat() == false ) return;
  7856. var rstFromTime = new Date(eval(pFromdd.substr(0,4)), eval(pFromdd.substr(4,2))-1, eval(pFromdd.substr(6,2)), eval(pFromdd.substr(8,2)), eval(pFromdd.substr(10,2))+sFromCalc, eval(pFromdd.substr(12,2)) );
  7857. var rstEndTime = new Date(eval(pTodd.substr(0,4)), eval(pTodd.substr(4,2))-1, eval(pTodd.substr(6,2)), eval(pTodd.substr(8,2)), eval(pTodd.substr(10,2))+sToCalc, eval(pTodd.substr(12,2)) );
  7858. var diffTime = Math.ceil((rstEndTime - rstFromTime) / (60 * 1000)); //분단위로 반환
  7859. rtnValue = (eval(pRslt) / 60 * eval(diffTime));
  7860. if( rtnValue == "" ) return 0;
  7861. return rtnValue;
  7862. }
  7863. /**
  7864. * @group :
  7865. * @ver : 2010.03.08
  7866. * @by : 양천덕
  7867. * @---------------------------------------------------
  7868. * @type : function
  7869. * @access : public
  7870. * @desc : 기록항목 시작/종료 일시 설정 popup화면 호출
  7871. * @param :
  7872. * @return :
  7873. * @---------------------------------------------------
  7874. */
  7875. function fPopupChngTime(){
  7876. //화면 재조회 popup호출을 할 경우 미기록 정보 체크 함수
  7877. //fSearchClincObsRec 함수를 호출하는 함수에 추가 필요
  7878. if( fChkSaveData() == false ) return;
  7879. var iRow = grd_24hoursclincobsreclist.row;
  7880. var sCareRecSeqNo = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("carerecseqno"));
  7881. var sItemnm = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("itemnm"));
  7882. var sItemRecFromDt = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("recfromdt"));
  7883. var sItemRecToDt = grd_24hoursclincobsreclist.valueMatrix(iRow, grd_24hoursclincobsreclist.colRef("rectodt"));
  7884. setParameter("SPMNR10600_Param", sCareRecSeqNo+"▦"+sPid+"▦"+sIndd+"▦"+sCretNo+"▦"+sItemnm+"▦"+sItemRecFromDt+"▦"+sItemRecToDt+"▩");
  7885. modal("SPMNR10600", "1", event.clientX , event.clientY);
  7886. sRtnParamInfo = getParameter("SPMNR10600_RtnParam");
  7887. //SPMNR10600 화면에서 저장완료되면 fSearchClincObsRec("24hours") 호출
  7888. //fSearchClincObsRec("24hours");
  7889. clearParameter("SPMNR10600_Param");
  7890. clearParameter("SPMNR10600_RtnParam");
  7891. }
  7892. /**
  7893. * @group :
  7894. * @ver : 2010.03.09
  7895. * @by : 양천덕
  7896. * @---------------------------------------------------
  7897. * @type : function
  7898. * @access : public
  7899. * @desc : 화면 재조회 popup호출을 할 경우 미기록 정보 존재하는지 확인
  7900. * @param :
  7901. * @return :
  7902. * @---------------------------------------------------
  7903. */
  7904. function fChkSaveData(){
  7905. var sChkChngData = false;
  7906. var sBizLnkFlag = model.getValue(sCondPath+"/bizlnkflag");
  7907. var sTimeFlag = model.getValue(sCondPath+"/timeflag");
  7908. var sRecDd = model.getValue(sCondPath+"/recdd");
  7909. var sRtnMsg = "";
  7910. var sStrTime = "";
  7911. if( sHeader.length < 1 ) return;
  7912. for(var i=1; i <= 25; i++){
  7913. if(sStrTime == ""){
  7914. sStrTime += sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  7915. }else{
  7916. sStrTime += ","+sHeader[1][i]+sHeader[3][i]+sHeader[4][i]+"00";
  7917. }
  7918. }
  7919. sRowCnt = grd_24hoursclincobsreclist.rows - grd_24hoursclincobsreclist.fixedrows;
  7920. for(var iRow = 1; iRow<=sRowCnt; iRow++){
  7921. sItemCD = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemcd" );
  7922. sItemSeqNO = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemseqno" );
  7923. sRecFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recflag" );
  7924. sRecCharFlag = model.getValue(xHoursClincObsRecList+"["+iRow+"]/reccharflag" );
  7925. sCareRecSeqNo = model.getValue(xHoursClincObsRecList+"["+iRow+"]/carerecseqno");
  7926. sItemNM = model.getValue(xHoursClincObsRecList+"["+iRow+"]/itemnm" );
  7927. sLnkBizCd = model.getValue(xHoursClincObsRecList+"["+iRow+"]/lnkbizcd" );
  7928. sStype = model.getValue(xHoursClincObsRecList+"["+iRow+"]/style" );
  7929. // 값조회, 추가행, Graph사용 수액의 경우는 저장이 필요없음.
  7930. if(sRecCharFlag == "C" || sRecCharFlag == "" || ( sLnkBizCd == "12" && sStype == "01") ) continue;
  7931. for(var iCol=1; iCol<= 24; iCol++){
  7932. //sRecRslt_BK = model.getValue(xClincObsRecListPath+"[itemcd='"+sItemCD+"' and itemseqno='"+sItemSeqNO+"' and recflag='"+sRecFlag+"']/recrslt"+iCol);
  7933. sRecRslt_BK = model.getValue(xClincObsRecListPath+"[carerecseqno='"+sCareRecSeqNo+"']/recrslt"+iCol);
  7934. sRecRslt = model.getValue(xHoursClincObsRecList+"["+iRow+"]/recrslt"+iCol);
  7935. sStatus = "";
  7936. sResultPath = "";
  7937. //상태값 변경
  7938. if(sLnkBizCd == "99" || sLnkBizCd == "01" || sLnkBizCd == "02" || sLnkBizCd == "03" || sLnkBizCd == "04"){ //연계항목, 분류는 제외
  7939. sStatus = "";
  7940. }else if(sRecRslt_BK == "" && sRecRslt == ""){
  7941. sStatus = "";
  7942. }else if(sRecRslt_BK == "" && sRecRslt != ""){
  7943. sStatus = "U";
  7944. }else if(sRecRslt_BK != "" && sRecRslt == ""){
  7945. sStatus = "U";
  7946. }else if(sRecRslt_BK != "" && sRecRslt_BK != sRecRslt){
  7947. sStatus = "U";
  7948. }
  7949. if(sStatus == "") continue;
  7950. sChkChngData = true;
  7951. }
  7952. }
  7953. // 변경데이터 유뮤 체크
  7954. if(sChkChngData == true){
  7955. sRtnMsg = messageBox("저장하지 않은 데이터가 존재합니다.", "Q003");
  7956. if ( sRtnMsg == 6 ){
  7957. return true;
  7958. }else{
  7959. return false;
  7960. }
  7961. }
  7962. return true;
  7963. }
  7964. /**
  7965. * @group :
  7966. * @ver : 2010.03.15
  7967. * @by : 양천덕
  7968. * @---------------------------------------------------
  7969. * @type : function
  7970. * @access : public
  7971. * @desc : FlowSheet 화면 기록 목록 정리 함수
  7972. * @param :
  7973. * @return :
  7974. * @---------------------------------------------------
  7975. */
  7976. function fCleanPatItemList(pFlag){
  7977. if( fChkSaveData() == false ){
  7978. return;
  7979. }
  7980. var rtnmsg = messageBox("FlowSheet기록 항목을 부서기본 셋 정보로 정리하시겠습니까?\n\n(단, 지속적 물약 및 타기록이 주체인 기록항목은 정리하지 않습니다.)\n", "Q");
  7981. if( rtnmsg == "6" ){
  7982. model.removeNodeset("/root/send");
  7983. model.makeNode("/root/send");
  7984. model.makeValue("/root/send/pid", sPid );
  7985. model.makeValue("/root/send/indd", sIndd );
  7986. model.makeValue("/root/send/cretno", sCretNo );
  7987. model.makeValue("/root/send/deptcd", getUserInfo("dutplcecd") );
  7988. model.makeValue("/root/send/ordtype", sIOFlag );
  7989. model.makeValue("/root/send/inrmdt", getCurrentDate() + getCurrentTime().substr(0,4));
  7990. submit("TXMNR10102", false);
  7991. fSearchClincObsRec(pFlag);
  7992. }
  7993. }
  7994. /**
  7995. * @group :
  7996. * @ver : 2010.03.17
  7997. * @by : 양천덕
  7998. * @---------------------------------------------------
  7999. * @type : function
  8000. * @access : public
  8001. * @desc : 병동메인 Popup 호출
  8002. * @param :
  8003. * @return :
  8004. * @---------------------------------------------------
  8005. */
  8006. function fPopupNurseMain(pFlag){
  8007. if(pFlag == "N" ) pFlag = "";
  8008. model.setValue(gvMenuParamPath, pFlag);
  8009. open("SMMNW00100", "1", event.clientX , event.clientY);
  8010. //model.setValue(gvMenuParamPath, "");
  8011. }
  8012. /**
  8013. * @group :
  8014. * @ver : 2010.03.18
  8015. * @by : 양천덕
  8016. * @---------------------------------------------------
  8017. * @type : function
  8018. * @access : public
  8019. * @desc : 입원전과전실 조회 Popup 호출
  8020. * @param :
  8021. * @return :
  8022. * @---------------------------------------------------
  8023. */
  8024. function fPopupInOutInfo(){
  8025. var inout_orddd = model.getValue("/root/main/cond/recdd");
  8026. var inout_wardcd = model.getValue("/root/temp/cond/wardcdgrup/wardcdgruplist");
  8027. var param = inout_orddd + "▩" + inout_wardcd;
  8028. setParameter("SMMNW01100_PARAM1", param);
  8029. modal("SMMNW01100",1,50,250);
  8030. }
  8031. /**
  8032. * @group :
  8033. * @ver : 2010.03.18
  8034. * @by : 양천덕
  8035. * @---------------------------------------------------
  8036. * @type : function
  8037. * @access : public
  8038. * @desc : 통합검사결과 조회 Popup 호출
  8039. * @param :
  8040. * @return :
  8041. * @---------------------------------------------------
  8042. */
  8043. function fPopupProc(){
  8044. open("SMAER00800", "1", event.clientX , event.clientY);
  8045. }
  8046. /**
  8047. * @group :
  8048. * @ver : 2010.03.18
  8049. * @by : 양천덕
  8050. * @---------------------------------------------------
  8051. * @type : function
  8052. * @access : public
  8053. * @desc : 내환자세팅 Popup 호출
  8054. * @param :
  8055. * @return :
  8056. * @---------------------------------------------------
  8057. */
  8058. function fPopupMyPatSetting(){
  8059. setParameter("wardcd", sUserDeptCd);
  8060. setParameter("userid", sUserId );
  8061. setParameter("usernm", sUserNm);
  8062. modal("SMMNB00400","1" ,event.clientX , event.clientY);
  8063. //------------(20110209) 경북대
  8064. //내환자 조회
  8065. //fGetSettingPatientList("false");
  8066. //내환자 조회-임상관찰기록용
  8067. fGetSettingPatientList_type2();
  8068. //------------(20110209) 경북대
  8069. if( cmb_patlist.value == ""){
  8070. if( getNodesetCount("/root/temp/cond/settingpatient/settingpatientlist") > 0){
  8071. fSetParam("SettingPat", 1);
  8072. }
  8073. }else{
  8074. cmb_mypatlist.value = cmb_patlist.value;
  8075. }
  8076. }
  8077. //--------------(20110209) 경북대
  8078. /**
  8079. * @group :
  8080. * @ver : 2010.12.09
  8081. * @by : 양천덕
  8082. * @---------------------------------------------------
  8083. * @type : function
  8084. * @access : public
  8085. * @desc : 간호일지용 내환자 조회
  8086. * @param :
  8087. * @return :
  8088. * @---------------------------------------------------
  8089. */
  8090. function fGetSettingPatientList_type2(pFlag){
  8091. //model.removenode("/root/send");
  8092. var sRefresh = "true";
  8093. if( !isNull(pFlag)){
  8094. sRefresh = pFlag
  8095. }
  8096. if(submit("TRMNR00919", sRefresh)){
  8097. }
  8098. }
  8099. //--------------(20110209) 경북대
  8100. /**
  8101. * @group :
  8102. * @ver : 2010.03.24
  8103. * @by : 양천덕
  8104. * @---------------------------------------------------
  8105. * @type : function
  8106. * @access : public
  8107. * @desc : Fluid Item 추가 화면 호출
  8108. * @param :
  8109. * @return :
  8110. * @---------------------------------------------------
  8111. */
  8112. function fPopupAddFluid(){
  8113. //화면 재조회 popup호출을 할 경우 미기록 정보 체크 함수
  8114. //fSearchClincObsRec 함수를 호출하는 함수에 추가 필요
  8115. if( fChkSaveData() == false ) return;
  8116. var sParamValue = "flag▦itemcd▦itemnm▦pid▦orddd▦cretno▦ordtype▦lnkbizcd▩";
  8117. sParamValue += "Flow" +"▦"
  8118. + "" +"▦"
  8119. + "" +"▦"
  8120. + sPid +"▦"
  8121. + sIndd +"▦"
  8122. + sCretNo +"▦"
  8123. + sIOFlag +"▦"
  8124. + "12" +"▩";
  8125. setParameter("SPMNR06001_Param", sParamValue);
  8126. modal("SPMNR06001","1" ,event.clientX , event.clientY);
  8127. //약,주사 입력 화면에서 Item추가 후 Param 정보가 있을 경우 처리
  8128. if( getParameter("SPMNR06000_ReturnSaveInfo") != "" ){
  8129. fSearchClincObsRec("24hours");
  8130. }
  8131. //parameter 정보 초기화
  8132. clearParameter("SPMNR06001_Param");
  8133. clearParameter("SPMNR06000_ReturnSaveInfo");
  8134. }
  8135. /**
  8136. * @group :
  8137. * @ver : 2010.05.28
  8138. * @by : 양천덕
  8139. * @---------------------------------------------------
  8140. * @type : function
  8141. * @access : public
  8142. * @desc : FlowSheet 기능 구현(Copy)
  8143. * @param :
  8144. * @return :
  8145. * @---------------------------------------------------
  8146. */
  8147. function fControlGridCopy(){
  8148. var sCells = grd_24hoursclincobsreclist.selectedCells;
  8149. if( sCells.length < 2 ) return;
  8150. var sStartIdxCol = sCells.item(0).col;
  8151. var sStartIdxRow = sCells.item(0).row;
  8152. var sStartData = grd_24hoursclincobsreclist.valueMatrix(sStartIdxRow, sStartIdxCol);
  8153. var sCmbAttrCD = grd_24hoursclincobsreclist.valueMatrix(sStartIdxRow, grd_24hoursclincobsreclist.colRef("attrcd"));
  8154. if( sStartData == "" ) return;
  8155. for(var k = 1 ; k < sCells.length ; k ++){
  8156. var irow = sCells.item(k).row;
  8157. var icol = sCells.item(k).col;
  8158. if( sCmbAttrCD == "" ){
  8159. if( grd_24hoursclincobsreclist.isReadOnly(irow, icol) == false && icol != grd_24hoursclincobsreclist.colRef("itemnm") && grd_24hoursclincobsreclist.valueMatrix(irow, icol) == "" ){
  8160. if( grd_24hoursclincobsreclist.valueMatrix(irow, grd_24hoursclincobsreclist.colRef("attrcd")) == "" ){
  8161. grd_24hoursclincobsreclist.valueMatrix(irow, icol) = sStartData;
  8162. }else{
  8163. grd_24hoursclincobsreclist.valueMatrix(irow, icol) = sStartData;
  8164. grd_24hoursclincobsreclist.cellComboNodeset(irow, icol) = sAttrListPath1+"[supcd='"+sCmbAttrCD+"']";
  8165. }
  8166. }
  8167. }else{
  8168. if( sCmbAttrCD == grd_24hoursclincobsreclist.valueMatrix(irow, grd_24hoursclincobsreclist.colRef("attrcd")) ){
  8169. grd_24hoursclincobsreclist.valueMatrix(irow, icol) = sStartData;
  8170. grd_24hoursclincobsreclist.cellComboNodeset(irow, icol) = sAttrListPath1+"[supcd='"+sCmbAttrCD+"']";
  8171. }
  8172. }
  8173. }
  8174. }
  8175. /**
  8176. * @group :
  8177. * @ver : 2010.05.28
  8178. * @by : 양천덕
  8179. * @---------------------------------------------------
  8180. * @type : function
  8181. * @access : public
  8182. * @desc : FlowSheet 기능 구현(Clean)
  8183. * @param :
  8184. * @return :
  8185. * @---------------------------------------------------
  8186. */
  8187. function fControlGridClean(){
  8188. var sCells = grd_24hoursclincobsreclist.selectedCells;
  8189. if( sCells.length > 1){
  8190. var msg = messageBox("선택한 영역의 데이터를 삭제하시겠습니까?\n단 연동 항목 및 합계 부분 제외", "Q");
  8191. if( msg == "6" ){
  8192. for(var i = 0 ; i < sCells.length ; i ++){
  8193. var col = sCells.item(i).col;
  8194. var row = sCells.item(i).row;
  8195. if( grd_24hoursclincobsreclist.isReadOnly(row, col, row, col) == false && col != grd_24hoursclincobsreclist.colRef("itemnm") ){
  8196. grd_24hoursclincobsreclist.valueMatrix(row, col) = "";
  8197. }
  8198. }
  8199. }
  8200. }else{
  8201. for(var i = 0 ; i < sCells.length ; i ++){
  8202. var col = sCells.item(i).col;
  8203. var row = sCells.item(i).row;
  8204. if( grd_24hoursclincobsreclist.isReadOnly(row, col) == false && col != grd_24hoursclincobsreclist.colRef("itemnm") ){
  8205. grd_24hoursclincobsreclist.valueMatrix(row, col) = "";
  8206. }
  8207. }
  8208. }
  8209. }
  8210. /**
  8211. * @group :
  8212. * @ver : 2010.05.28
  8213. * @by : 양천덕
  8214. * @---------------------------------------------------
  8215. * @type : function
  8216. * @access : public
  8217. * @desc : FlowSheet 바코드 출력 기능 추가
  8218. * @param :
  8219. * @return :
  8220. * @---------------------------------------------------
  8221. */
  8222. function fPrintPatLabel(){
  8223. //설정된 상단정보를 불러옴
  8224. sPamInfo = getGlobalVariable("paminfo");
  8225. model.removenodeset(xPamInfoPath);
  8226. setCSVToNode("/root/main/paminfo",sPamInfo,"pamlist");
  8227. var xPathBarCdNode = "/root/barcdtemp/barcdprntsetup";
  8228. if (model.getValue(xPamInfoPath+"/pid") != "") { //상단정보에 환자가 셋팅되어 있을 경우
  8229. var pid, indd, cretno, mskind, histstat;
  8230. model.removenode("/root/send");
  8231. model.removenode(xPathBarCdNode);
  8232. model.makenode(xPathBarCdNode);
  8233. model.makeValue("/root/send/scrnid", "SMMNR00600");
  8234. var comport = "1";
  8235. if(submit("TRLLC90101")){
  8236. comport = model.getValue(xPathBarCdNode+"/prntsetupinfo/setupinfo[1]/comm02/comm");
  8237. }
  8238. // 바코드OCX 생성
  8239. //2. 바코드 라벨 환경설정
  8240. var barcdRef = xPathBarCdNode+"/prntsetupinfo/setupinfo";
  8241. lzzfMakeBrcdPrntObjHanDo("CommAX", barcdRef);
  8242. BarCdpid = model.getValue(xPamInfoPath+"/pid");
  8243. BarCdindd = model.getValue(xPamInfoPath+"/indd");
  8244. BarCdcretno = model.getValue(xPamInfoPath+"/cretno");
  8245. BarCdmskind = model.getValue(xPamInfoPath+"/mskind");
  8246. BarCdhiststat = model.getValue(xPamInfoPath+"/histstat");
  8247. model.makeNode("/root/send/data17");
  8248. model.makeNode("/root/hidden/h_receipt/receipt");
  8249. //원무 메소드 호출
  8250. //fInPatBarCodePrn(pid, indd, cretno, mskind, histstat, comport);
  8251. /* 삭제된 파라미터 : pPort - COM Port 지정값
  8252. * 추가된 파라미터 : pSetyn - 프린터설정정보 셋팅여부
  8253. * pScrid - 프린터설정정보 조회용 화면 아이디
  8254. * pBarcdRef - 설정정보 xpath
  8255. */
  8256. pmifPrintBarCode(BarCdpid, BarCdindd, BarCdcretno, BarCdmskind, BarCdhiststat, "N", "SMMNR00600", barcdRef); // 20090527 변경됨.
  8257. } else {
  8258. messageBox("환자를 선택 후 출력하십시오", "I");
  8259. }
  8260. }
  8261. /**
  8262. * @group :
  8263. * @ver : 2010.07.22
  8264. * @by : 양천덕
  8265. * @---------------------------------------------------
  8266. * @type : function
  8267. * @access : public
  8268. * @desc : FlowSheet 조회분류 전체 선택 / 취소 기능
  8269. * @param :
  8270. * @return :
  8271. * @---------------------------------------------------
  8272. */
  8273. function fControlChkClsInfo(){
  8274. if( sSclsChkFlag == "N" ){
  8275. var sSrchClsInfoList = "";
  8276. for( var i = 1 ; i <= getNodesetCount("/root/init/clsinfo/clslist") ; i ++ ){
  8277. if(sSrchClsInfoList == ""){
  8278. sSrchClsInfoList += model.getValue("/root/init/clsinfo/clslist["+i+"]/itemcd");
  8279. }else{
  8280. sSrchClsInfoList += " " + model.getValue("/root/init/clsinfo/clslist["+i+"]/itemcd");
  8281. }
  8282. }
  8283. model.setValue("/root/main/cond/hoursclsinfo", sSrchClsInfoList);
  8284. sSclsChkFlag = "Y";
  8285. }else{
  8286. model.setValue("/root/main/cond/hoursclsinfo", "");
  8287. sSclsChkFlag = "N";
  8288. }
  8289. chk_24hoursclslist.refresh();
  8290. }
  8291. /**
  8292. * @group :
  8293. * @ver : 2011.03.02
  8294. * @by : 안도영
  8295. * @---------------------------------------------------
  8296. * @type : function
  8297. * @access : public
  8298. * @desc : 구역정보 조회 및 내환자정보 숨기기 (응급실인 경우)
  8299. * @param :
  8300. * @param :
  8301. * @return :
  8302. * @---------------------------------------------------
  8303. */
  8304. function fGetWardChngInfo(initFlag, pFlag){
  8305. if(initFlag=="Y") {
  8306. var sWardCD = model.getValue(xPamInfoPath+"/wardcd");
  8307. }
  8308. else{
  8309. var sWardCD = model.getValue("/root/main/cond/wardcd");
  8310. }
  8311. if ( sWardCD == eERDEPTCD) {
  8312. eERFLAG = "Y";
  8313. }else{
  8314. eERFLAG = "";
  8315. }
  8316. //model.removeNodeset("/root/send/reqdata");
  8317. //model.makeNode("/root/send/reqdata");
  8318. //model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  8319. //submit("TRMNW00101");
  8320. //model.setValue("/root/main/cond/settingrnid", "");
  8321. //for(i=1; i <= getNodesetCount("/root/init/settingrn"); i++ ) {
  8322. // if (model.getValue("/root/main/cond/userid") == model.getValue("/root/init/settingrn["+ i +"]/settingrnid")) {
  8323. // model.setValue("/root/main/cond/settingrnid", model.getValue("/root/main/cond/userid"));
  8324. // }
  8325. //}
  8326. //응급실인 경우 구역정보 추가조회
  8327. if(eERFLAG == "Y"){ // 응급실
  8328. fGetZoneList();
  8329. cap_ward.attribute("text") = "구 역 :";
  8330. cmb_zone.visible = "true";
  8331. cmb_erpat.visible = "true";
  8332. cmb_roomlist.visible = "false";
  8333. cmb_patlist.visible = "false";
  8334. cmb_mypatlist.visible = "false";
  8335. cap_mypat.visible = "false";
  8336. ipt_pid.visible = "false";
  8337. cap_ward.attribute("left") = 177; // (기존위치 + 35)
  8338. cmb_zone.attribute("left") = 245;
  8339. cap_patnm_pid.attribute("left") = 340;
  8340. cmb_wardlist.attribute("width") = 97; // (기존 폭 + 30)
  8341. if(pFlag != "SrchPat"){ // 환자를 직접 선택한 경우엔 구역정보 보존
  8342. // 처음 상단 정보로 화면 열릴 때
  8343. if(initFlag=="Y"){
  8344. model.setValue("/root/main/cond/zonecd", (model.getValue(xPamInfoPath+"/sectioncd") == "") ? "-" : model.getValue(xPamInfoPath+"/sectioncd"));
  8345. }else{
  8346. model.setValue("/root/main/cond/zonecd", "-"); // 'All'로 default
  8347. }
  8348. }
  8349. }else{
  8350. cap_ward.attribute("text") = "병 실 :";
  8351. cmb_zone.visible = "false";
  8352. cmb_erpat.visible = "false";
  8353. cmb_roomlist.visible = "true";
  8354. cmb_patlist.visible = "true";
  8355. cmb_mypatlist.visible = "true";
  8356. cap_mypat.visible = "true";
  8357. ipt_pid.visible = "true";
  8358. cap_ward.attribute("left") = 142; // (기존위치)
  8359. cmb_zone.attribute("left") = 210;
  8360. cap_patnm_pid.attribute("left") = 305;
  8361. cmb_wardlist.attribute("width") = 67; // (기존 폭)
  8362. model.setValue("/root/main/cond/zonecd", "");
  8363. // 구분 조건 default
  8364. //model.setValue(xRecSrchCondPath+"/recsrchflag", "DR^ER"); // DR : 타기록지연계, ER : 응급실 간호일지만
  8365. }
  8366. cmb_zone.refresh();
  8367. cap_ward.refresh();
  8368. cmb_roomlist.refresh();
  8369. cap_mypat.refresh();
  8370. cmb_mypatlist.refresh();
  8371. }
  8372. /**
  8373. * @group :
  8374. * @ver : 2011.03.09
  8375. * @by : 안도영
  8376. * @---------------------------------------------------
  8377. * @type : function
  8378. * @access : public
  8379. * @desc : 현재 선택/저장한 환자의 combo 재선택 (응급실인 경우)
  8380. * @param :
  8381. * @param :
  8382. * @return :
  8383. * @---------------------------------------------------
  8384. */
  8385. function fNextSelectErPat(sobj){
  8386. var tempPid = "";
  8387. var sPosition = 0;
  8388. var nextyn = model.getValue(chk_nextyn.attribute("ref"));
  8389. if ( gcurrentpid != "") {
  8390. for(i = 1; i <= getNodesetCount(erPatPidPath); i++ ) {
  8391. tempPid = model.getValue(erPatPidPath + "["+ i +"]/pid");
  8392. if (gcurrentpid == tempPid) {
  8393. sPosition = i;
  8394. break;
  8395. }
  8396. }
  8397. }
  8398. if(nextyn == "Y") {
  8399. if(sPosition == getNodesetCount(erPatPidPath)){
  8400. sobj.select(0); // 마지막 환자인 경우 처음 환자로 재 선택
  8401. }else{
  8402. sobj.select(sPosition);
  8403. }
  8404. } else {
  8405. sobj.select(sPosition-1);
  8406. }
  8407. }
  8408. /**
  8409. * @author : dhkim
  8410. * @create : 20080827
  8411. * @desc : 해당환자가 중환자실 환자인가?
  8412. * @return : boolean (true/false)
  8413. */
  8414. function fIsICUPatient(wardcd){
  8415. var ret = false;//icu 환자인지 여부 디폴트
  8416. /*
  8417. for(var i = 0; i < icuArr.length ; i++){
  8418. if(wardcd == icuArr[i]){
  8419. ret = true;
  8420. return true;
  8421. }
  8422. }
  8423. */
  8424. //중증도 기록에서 사용하는 부서코드 조회_20090414_SMY추가
  8425. for(i = 1; i <= getNodesetCount("/root/init/icucdgrup/icucdgruplist"); i++){
  8426. if(wardcd == model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/wardcd")
  8427. && model.getValue("/root/init/icucdgrup/icucdgruplist[" + i + "]/clsflag") == '4'){
  8428. ret = true;
  8429. return true;
  8430. }
  8431. }
  8432. return ret;
  8433. }
  8434. function fPopupPainSearch(){
  8435. if(model.getValue("/root/main/patinfo/pid") == ""){
  8436. messageBox("환자를 선택하십시요","I");
  8437. return;
  8438. }
  8439. open("SMMNW04810", "1", event.clientX , event.clientY);
  8440. }