SMMNR00600.xjs 352 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 투약기록(SMMNR006_투약기록.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. var xCondPath = "/root/main/cond";
  8. var xWardPatListPath = "ds_main_wardpatinfo_wardpatlist";
  9. var xWardActListPath = "ds_main_wardactinfo_wardactlist";
  10. var xTempWardActListPath = "/root/temp/wardactinfo/wardactlist";
  11. var xWardDrugListPath = "ds_main_warddruginfo_warddruglist";
  12. var xHiddenWardDrugPath = "/root/hidden/warddruginfo/warddruglist";
  13. var xHiddenRtnMsgPath = "/root/hidden/rtnmsg";
  14. var xPatInfoPath = "/root/main/paminfo/pamlist";
  15. var xMediCard8 = "ds_send_medicard8_warddruglist";//수액라벨, 주사라벨용 데이타
  16. var xHiddenMediCard8 = "/root/hidden/medicard8/warddruglist";//수액라벨, 주사라벨용 데이타
  17. var barcdRef = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo";
  18. var sPathNarcResult = "/root/endsave/narcresult"; //마약잔량신청상태조회 확인 결과(결과)
  19. var sPathEndCond = ds_endsave_endcond; //enddd 확인 결과(조회)
  20. var xBarCordPath = "/root/main/barcdprntsetup/prntsetupinfo/setupinfo/pcl/pcllist";
  21. var xDrMode = "N";
  22. var xDrRec = "N";
  23. var xOpfromdt = "";
  24. var signtime = "";
  25. var vsettime = "";
  26. var signgbn = "A";
  27. //var grd_colcnt = 17+1;
  28. //-----------------(20081118)
  29. //var grd_colcnt = 18;
  30. //var grd_title1 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^ ^";
  31. //var grd_title2 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^ ^";
  32. //var grd_colcnt = 19;
  33. //var grd_title1 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^수액No\n적용^ ^";
  34. //var grd_title2 = " ^구분^Mix^처방코드^처방명\[* : 고주위/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방희망일^수액No\n적용^ ^";
  35. //var grd_colcnt = 21;
  36. //var grd_title1 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  37. //var grd_title2 = " ^구분^Mix^처방코드^처방명^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  38. //var grd_colcnt = 21;
  39. //var grd_title1 = "선택^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  40. //var grd_title2 = "^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  41. /** <addon>
  42. *개발일시: 2010.07.06
  43. *개발자: 양천덕
  44. *요청병원: 세종병원
  45. *요청파트: 병동간호
  46. *개발내용: 투약기록에 투약번호 필드 추가
  47. </addon>
  48. */
  49. // 2010-03-15 라벨출력여부 컬럼추가
  50. var grd_colcnt = 24;
  51. //20110107_KNUH_Start 컬럼 2개 변경.
  52. var grd_title1 = "선택^라벨^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^1회\n용량^단위^1일\n수량^1회\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  53. var grd_title2 = "^라벨^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^^1회\n용량단위^1일\n수량^1회\n수량^단위^1일\n횟수^경로^용법^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  54. //var grd_title1 = "선택^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^투약No^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  55. //var grd_title2 = "^구분^승인^Mix^처방코드^처방명\n[* : 혼동주의/고위험 약제]^1일\n용량^단위^1일\n수량^단위^1일\n횟수^경로^용법^투약No^기준시간Setting^처방Remark^처방의^처방시간^처방적용일^수액No\n적용^영문명^ ^";
  56. //-----------------(20081118)
  57. var addCol_Array = new Array;
  58. var baseCol_Array = new Array;
  59. var mixno_Array = new Array;
  60. var colIndex_Array = new Array;
  61. var addCol_Cnt = 0;
  62. var screen_mode = "pat";
  63. var gray = "#c0c0c0";
  64. var yellow = "#ffff00";
  65. var yellowishgreen = "#80ff00";
  66. var red = "#ff0000";
  67. var sky = "#00ffff";
  68. var blue = "#0000ff";
  69. var white = "#ffffff";
  70. //var yellowishgreen = "#80ff00"
  71. //-----------------(20081201)
  72. var orange = "#ff00ff";
  73. //-----------------(20081201)
  74. var top_pid = "";
  75. var sign_row = "";
  76. var sign_saverow = ""; //20081112
  77. var sign_savecol = ""; //20081112
  78. //-------------(20080831)
  79. var sSignRow = "";
  80. var gTimer = "";
  81. //-------------(20081121)
  82. var toprow = 0;
  83. var toprow2 = 0;
  84. var toprowflag = "N";
  85. var spcldept="";
  86. //-------------(20081121)
  87. var nfixedcols = 0;
  88. var sCaption = "";
  89. /**
  90. * @group :
  91. * @ver : 2007.06.23
  92. * @by : 최경용
  93. * @---------------------------------------------------
  94. * @type : function
  95. * @access : public
  96. * @desc : 투약기록 초기값 셋팅 및 초기조회
  97. * @param :
  98. * @param :
  99. * @return :
  100. * @---------------------------------------------------
  101. */
  102. function fInitialize(){
  103. xDrMode = "N";
  104. xDrRec = "N";
  105. //------------------------------
  106. // 수술기록지 제어를 위해 연동 2014.01.22 KJS
  107. var paraGbn = opener.frmf_getParameter("SMMNR00600_gbn");
  108. var paraPid = opener.frmf_getParameter("SMMNR00600_pid");
  109. var paraOpdate = opener.frmf_getParameter("SMMNR00600_opdate");
  110. var paraOprsrvno = opener.frmf_getParameter("SMMNR00600_oprsrvno");
  111. //------------------------------
  112. // 수술예방적 항생제 기준시간 및 액티시간 연동 '15.09.16 - AYS
  113. var paraCarebasedd = opener.frmf_getParameter("SMMNR00600_carebasedd");
  114. var paraCarebasetm = opener.frmf_getParameter("SMMNR00600_carebasetm");
  115. var paraCaregbn = opener.frmf_getParameter("SMMNR00600_caregbn");
  116. // 수술예방적 항생제 기준시간 및 액티시간 연동 '15.09.16 - AYS
  117. //alert("paraCarebasedd : " + paraCarebasedd + " paraCarebasetm : " + paraCarebasetm + " paraCaregbn : " + paraCaregbn);
  118. var instcd = sysf_getUserInfo("dutplceinstcd");
  119. var systemcd = sysf_getSystemCd();
  120. group3.btn_drugcard.visible = true;
  121. //-------------------(20080910)
  122. //로그인 간호사의 정보추출
  123. ds_main_cond.setColumn(0, "loguserid", sysf_getUserId());
  124. ds_main_cond.setColumn(0, "logdeptcd", sysf_getUserInfo("dutplcecd"));
  125. //model.resetInstanceNode("/root/send/reqdata");
  126. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  127. var oParam = {};
  128. oParam.id = "TRMNR00606";
  129. oParam.service = "caremedirecapp.CareMediRec";
  130. oParam.method = "reqGetLogUserInfo";
  131. oParam.inds = "reqcond=ds_send_reqdata";
  132. oParam.outds = "ds_main_loguserinfo_loguserlist=loguserlist";
  133. oParam.async = false;
  134. //oParam.callback = "cf_TRMNR00606";
  135. tranf_submit(oParam);
  136. if( ds_main_loguserinfo_loguserlist.rowcount > 0 ){
  137. ds_main_cond.setColumn(0, "opprcpcond", "2");
  138. }
  139. //-------------------
  140. //-------------(20080910)
  141. ds_main_cond.setColumn(0, "multicheck", "0");
  142. //-------------(20080910)
  143. ds_main_cond.setColumn(0, "orddd", utlf_getCurrentDate());
  144. ds_main_cond.setColumn(0, "opcnfmdd", utlf_getCurrentDate());
  145. //model.setValue("/root/main/cond/orddd", "20080124");
  146. ds_main_cond.setColumn(0, "yorddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),-1));
  147. ds_main_cond.setColumn(0, "torddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),+1));
  148. screen_mode = "pat";
  149. group3.swtpatList.tabindex = 0;
  150. radio_ColorChange();
  151. ds_main_warddruginfo_warddruglist.clearData();
  152. var sTemp = "";
  153. if( group3.bool1.value == "true" ){
  154. if( utlf_getDateInterval(utlf_getCurrentDate(), ds_main_cond.getColumn(0, "orddd")) < 3 && utlf_getDateInterval(utlf_getCurrentDate(), ds_main_cond.getColumn(0, "orddd")) > -3 ){
  155. ds_main_cond.setColumn(0, "currentday", utlf_getCurrentDate());
  156. ds_main_cond.setColumn(0, "currenttime", utlf_getCurrentTime().substr(0,4));
  157. group3.ipt_currentdd.enable = false; //(20080731)
  158. }else {
  159. group3.bool1.value = "false";
  160. }
  161. } else if( group3.bool1.value == "false"){
  162. ds_main_cond.setColumn(0, "currentday", "");
  163. ds_main_cond.setColumn(0, "currenttime", "");
  164. group3.ipt_currentdd.enable = true; //(20080731)
  165. } else {}
  166. //-----------------------------------
  167. //--------------------------------------
  168. // 바코드OCX 생성(출력시로 이동)(20080720)
  169. // 20080917 다시 open함
  170. if( utlf_isNull(this.objects["CommAX"]) ){
  171. //lzzfMakeBrcdPrntObj("CommAX"); //(20080721이전버젼)
  172. //0929
  173. var scrnid = "SMMNR00600";
  174. fGetBarCodeInfo(scrnid); // CareCom.js
  175. // fGetBarCodeInfo(getScreenID());
  176. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  177. //XML string 값을 파라미터로 넘김
  178. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  179. var sParamObj = new Object();
  180. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  181. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  182. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  183. sysf_trace(succYn);
  184. // => retrun DS
  185. // : ds_data_setupinfo(prntkind, commkind)
  186. // : ds_data_comm01(setupval)
  187. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  188. // : ds_data_comm03(setupval)
  189. // : ds_data_blank(left, top)
  190. // ------------------------------------------------------------------------------------------------------------
  191. lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721이후버젼) //0921임시로막음
  192. }
  193. //--------------------------------------
  194. ////////alert(getUserInfo("macaddr") + "/" + app.macaddress); app.macaddress성공
  195. //--------------------------(20080919)다시 살림
  196. //fGetBarCodeInfo(getScreenID());//바코드 라벨 초기 설정값 조회 //1024
  197. //fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //1024
  198. //--------------------------(20080919)
  199. fGetWardList();
  200. var arrParam = [{dsNm: "ds_init_M0381list_M0381", cdGrpId: "M0381"}];
  201. appf_getCodeList(arrParam);
  202. // 환자정보 조회
  203. ds_main_paminfo_pamlist.clearData();
  204. var sPamInfo = sysf_getGlobalVariable("paminfo");
  205. dsf_setCSVToDs("ds_main_paminfo_pamlist", sPamInfo); //환자정보내리기
  206. if( utlf_isNull(ds_main_paminfo_pamlist.getColumnInfo("sectioncd")) ){
  207. ds_main_paminfo_pamlist.addColumn("sectioncd", "string");
  208. ds_main_paminfo_pamlist.setColumn(0, "sectioncd", ds_main_paminfo_pamlist.getColumn(0, "basetypecd"));
  209. }
  210. var sPID = ds_main_paminfo_pamlist.getColumn(0, "pid");
  211. var sWardCd = ds_main_paminfo_pamlist.getColumn(0, "wardcd");
  212. var sRoomCd = ds_main_paminfo_pamlist.getColumn(0, "roomcd"); //병실정보(20080912)
  213. //var top_pid = sPID;
  214. var roomcd = "";
  215. var patnm = "";
  216. var sexage = "";
  217. if( utlf_isNull(sWardCd) ){
  218. ds_main_cond.setColumn(0, "wardcd", sysf_getUserInfo("dutplcecd"));
  219. }else{
  220. ds_main_cond.setColumn(0, "wardcd", sWardCd);
  221. }
  222. fGetRoomList();
  223. //-----------------------------(20080912)
  224. if( !utlf_isNull(sRoomCd) ){
  225. ds_main_cond.setColumn(0, "roomcd", sRoomCd);
  226. }
  227. //-----------------------------(20080912)
  228. //20140103 KJS 의사(수술예방적항생제)일 경우 default로 현재시간으로 기록하도록 설정
  229. if( frmf_getMenuParam() == "dr" || paraGbn == "dr" || paraCaregbn == "dr" ){
  230. group3.bool1.value = "true";
  231. ds_main_cond.setColumn(0, "currentday", utlf_getCurrentDate());
  232. ds_main_cond.setColumn(0, "currenttime", utlf_getCurrentTime().substr(0,4));
  233. ds_main_cond.setColumn(0, "chemoflag", "preanti");
  234. ds_main_cond.setColumn(0, "wardcd", "0000000000");
  235. if( paraGbn == "dr" ){
  236. //alert("paraGbn == dr");
  237. ds_main_cond.setColumn(0, "opcnfmdd", paraOpdate);
  238. ds_main_cond.setColumn(0, "orddd", paraOpdate);
  239. }
  240. if( paraCaregbn == "dr" ){
  241. if( !utlf_isNull(paraCarebasedd) && !utlf_isNull(paraCarebasetm) ){
  242. //alert("paraCaregbn == dr");
  243. //model.setValue("/root/main/cond/chemoflag", "ALL");
  244. //model.setValue("/root/main/cond/currentday", paraCarebasedd);
  245. ds_main_cond.setColumn(0, "orddd", paraCarebasedd);
  246. ds_main_cond.setColumn(0, "opcnfmdd", paraCarebasedd);
  247. //model.setValue("/root/main/cond/currenttime", paraCarebasetm);
  248. }
  249. }
  250. xDrMode = "Y";
  251. group3.group5.chk_oppatyn.value = "Y";
  252. group3.group5.chk_oppatyn.visible = true;
  253. fnClearGrid();
  254. if( screen_mode == "pat" ){
  255. if( paraGbn == "dr" ){
  256. //model.property("noactflag") = "";
  257. fGetPatList(paraPid);
  258. sysf_messageBox("분홍색 칸(예방적항생제)을 클릭한 후 인증저장 버튼을 누르세요", "I999");
  259. xDrRec = "Y";
  260. } else {
  261. fGetPatList();
  262. }
  263. } else if( screen_mode == "act" ){
  264. fGetActList();
  265. } else {
  266. }
  267. } else {
  268. group3.bool1.value = "false";
  269. }
  270. if( utlf_isNull(ds_init_ward.getColumn(ds_init_ward.findRow("wardcd", ds_main_cond.getColumn(0, "wardcd")), "wardnm")) ){
  271. return;
  272. }
  273. //fGetPatList(sPID);
  274. //-----------------------------(20080906)
  275. //fSetsettingrnid();
  276. //-----------------------------(20080906)
  277. // if(sPID != ""){
  278. // for(var i = 1; i <= getNodesetCount(xWardPatListPath); i++){
  279. // if(model.getValue(xWardPatListPath + "[" + i + "]/pid") == sPID){
  280. // roomcd = model.getValue(xWardPatListPath + "[" + i + "]/roomcd");
  281. // patnm = model.getValue(xWardPatListPath + "[" + i + "]/patnm");
  282. // sexage = model.getValue(xWardPatListPath + "[" + i + "]/sexage");
  283. //
  284. // model.setValue("/root/main/patinfo/roomcd", roomcd);
  285. // model.setValue("/root/main/patinfo/pid", sPID);
  286. // model.setValue("/root/main/patinfo/patnm", patnm);
  287. // model.setValue("/root/main/patinfo/sexage", sexage);
  288. //
  289. // model.setFocus("grd_patlist");
  290. // grd_patlist.row = i;
  291. // grd_patlist.dispatch("onentercell");
  292. //
  293. // fClickDrugListBefore(); //------------(20081031)
  294. // fClickDrugList("drg", i);
  295. // fClickDrugListAfter(); //------------(20081031)
  296. // return;
  297. // }
  298. // }
  299. // }
  300. }
  301. /**
  302. * @group :
  303. * @ver : 2008.09.06
  304. * @by :
  305. * @---------------------------------------------------
  306. * @type : function
  307. * @access : public
  308. * @desc : 내환자가 설정되어 있으면 자동으로 내환자설정시키기(성공)
  309. * @param :
  310. * @param :
  311. * @return :
  312. * @---------------------------------------------------
  313. */
  314. function fSetsettingrnid(){
  315. var sUserId = getUserId();
  316. var sUserIdFind = ""
  317. for(i = 1; i <= getNodesetCount("/root/main/wardpatinfo/settingrn"); i++ ) {
  318. sUserIdFind = model.getValue("/root/main/wardpatinfo/settingrn["+ i +"]/settingrnid");
  319. if (sUserId == sUserIdFind) {
  320. model.setValue("/root/main/cond/settingrnid", sUserIdFind);
  321. model.refresh();
  322. fGetPatList();
  323. return;
  324. }
  325. }
  326. }
  327. /**
  328. * @group :
  329. * @ver : 2007.06.23
  330. * @by : 최경용
  331. * @---------------------------------------------------
  332. * @type : function
  333. * @access : public
  334. * @desc : 병동 리스트 조회
  335. * @param :
  336. * @param :
  337. * @return :
  338. * @---------------------------------------------------
  339. */
  340. function fGetWardList(){
  341. var oParam = {};
  342. oParam.id = "TRMNR00601";
  343. oParam.service = "caremedirecapp.CareMediRec";
  344. oParam.method = "reqGetWMInitData";
  345. oParam.inds = "reqcond=ds_send_reqdata";
  346. oParam.outds = "ds_init_ward=ward ds_init_settingrn=settingrn ds_init_orddd=orddd";
  347. oParam.async = false;
  348. //oParam.callback = "cf_TRMNR00601";
  349. tranf_submit(oParam);
  350. }
  351. /**
  352. * @group :
  353. * @ver : 2007.06.23
  354. * @by : 최경용
  355. * @---------------------------------------------------
  356. * @type : function
  357. * @access : public
  358. * @desc : 투약기록 투약 상태 라디오 버튼 배경색 변경
  359. * @param :
  360. * @param :
  361. * @return :
  362. * @---------------------------------------------------
  363. */
  364. function radio_ColorChange(){
  365. //-------------(20081201)
  366. group3.rdo_drugstat.rdo_multi_0.style.background = gray;
  367. group3.rdo_drugstat.rdo_multi_1.style.background = yellow;
  368. group3.rdo_drugstat.rdo_multi_2.style.background = yellowishgreen;
  369. group3.rdo_drugstat.rdo_multi_3.style.background = red;
  370. group3.rdo_drugstat.rdo_multi_4.style.background = sky;
  371. //rdo_drugstat.item(0).attribute("background-color") = gray;
  372. //rdo_drugstat.item(1).attribute("background-color") = orange;
  373. //rdo_drugstat.item(2).attribute("background-color") = yellow;
  374. //rdo_drugstat.item(3).attribute("background-color") = yellowishgreen;
  375. //rdo_drugstat.item(4).attribute("background-color") = red;
  376. //rdo_drugstat.item(5).attribute("background-color") = sky;
  377. //-------------(20081201)
  378. }
  379. /**
  380. * @group :
  381. * @ver : 2007.06.23
  382. * @by : 최경용
  383. * @---------------------------------------------------
  384. * @type : function
  385. * @access : public
  386. * @desc : 투약기록 환자 리스트 조회
  387. * @param :
  388. * @param :
  389. * @return :
  390. * @---------------------------------------------------
  391. */
  392. function fGetPatList(pPid){
  393. var sPID = "";
  394. // model.resetInstanceNode("/root/send/reqdata");
  395. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  396. var oParam = {};
  397. oParam.id = "TRMNR00603";
  398. oParam.service = "caremedirecapp.CareMediRec";
  399. oParam.method = "reqGetWardPatList";
  400. oParam.inds = "reqcond=ds_send_reqdata";
  401. oParam.outds = "ds_main_wardpatinfo_wardpatlist=wardpatlist ds_main_wardpatinfo_settingrn=settingrn";
  402. oParam.async = false;
  403. //oParam.callback = "cf_TRMNR00603";
  404. tranf_submit(oParam);
  405. ds_main_wardpatinfo_wardpatlist.rowposition = -1;
  406. //var sPID = model.getValue("/root/main/patinfo/pid");
  407. if( utlf_isNull(pPid) ){
  408. sPID = top_pid;
  409. } else {
  410. top_pid = pPid
  411. sPID = top_pid;
  412. }
  413. if( !utlf_isNull(sPID) ){
  414. for( var i=0 ; i<ds_main_wardpatinfo_wardpatlist.rowcount ; i++ ){
  415. if( ds_main_wardpatinfo_wardpatlist.getColumn(i, "pid") == sPID ){
  416. group3.swtpatList.pat.grd_patlist.setFocus();
  417. ds_main_wardpatinfo_wardpatlist.rowposition = i;
  418. fClickDrugListBefore(); //------------(20081031)
  419. fClickDrugList("drg", i);
  420. fClickDrugListAfter(); //------------(20081031)
  421. return;
  422. }
  423. }
  424. }
  425. }
  426. /**
  427. * @group :
  428. * @ver : 2007.06.23
  429. * @by : 최경용
  430. * @---------------------------------------------------
  431. * @type : function
  432. * @access : public
  433. * @desc : 조회조건 변경시 환자정보및 투약정보 조회
  434. * @param :
  435. * @param :
  436. * @return :
  437. * @---------------------------------------------------
  438. */
  439. function fSearch(){
  440. fClickDrugListBefore(); //------------(20081031)
  441. var objGrid = null;
  442. var xPatPath = "";
  443. var pid = top_pid;
  444. var i =-1;
  445. if(screen_mode == "pat"){
  446. objGrid = group3.swtpatList.pat.grd_patlist;
  447. xPatPath = "/root/main/wardpatinfo/wardpatlist";
  448. i = ds_main_wardpatinfo_wardpatlist.findRow("pid", pid);
  449. ds_main_wardpatinfo_wardpatlist.rowposition = i;
  450. objGrid.setFocus();
  451. fClickDrugList("drg", objGrid.currentrow);
  452. }else if(screen_mode == "act"){
  453. objGrid = group3.swtpatList.act.grd_actlist;
  454. xPatPath = "/root/main/wardactinfo/wardactlist";
  455. i = ds_main_wardactinfo_wardactlist.findRow("pid", pid);
  456. ds_main_wardactinfo_wardactlist.rowposition = i;
  457. objGrid.setFocus();
  458. fClickDrugList("act", objGrid.currentrow);
  459. }else{}
  460. fClickDrugListAfter(); //------------(20081031)
  461. }
  462. /**
  463. * @group :
  464. * @ver : 2007.06.23
  465. * @by : 최경용
  466. * @---------------------------------------------------
  467. * @type : function
  468. * @access : public
  469. * @desc : 투약기록 병동별 병실 리스트 조회
  470. * @param :
  471. * @param :
  472. * @return :
  473. * @---------------------------------------------------
  474. */
  475. function fGetRoomList(){
  476. ds_main_cond.setColumn(0, "roomcd", "");
  477. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  478. var oParam = {};
  479. oParam.id = "TRMNR00602";
  480. oParam.service = "caremedirecapp.CareMediRec";
  481. oParam.method = "reqGetRoomInitData";
  482. oParam.inds = "reqcond=ds_send_reqdata";
  483. oParam.outds = "ds_init_room_room=room";
  484. oParam.async = false;
  485. //oParam.callback = "cf_TRMNR00602";
  486. tranf_submit(oParam);
  487. if( ds_init_room_room.rowcount > 0 && ds_init_room_room.getColumn(0, "roomnm") == "-" ){
  488. ds_init_room_room.setColumn(0, "roomcd", "");
  489. }
  490. group3.group5.cmb_room.index = 0;
  491. }
  492. /**
  493. * @group :
  494. * @ver : 2007.06.23
  495. * @by : 최경용
  496. * @---------------------------------------------------
  497. * @type : function
  498. * @access : public
  499. * @desc : 투약기록 환자별 투약 기록 리스트 조회
  500. * @param :
  501. * @param :
  502. * @return :
  503. * @---------------------------------------------------
  504. */
  505. function fClickDrugList(sParam, row){
  506. group3.btn_drugcard.enable = false;
  507. group3.btn_hydprint.enable = false;
  508. group3.btn_injprint.enable = false;
  509. ds_send_medicard_warddruglist.clearData();
  510. ds_send_medicard8_warddruglist.clearData();
  511. var pid = "";
  512. if(sParam == "drg"){
  513. ds_main_cond.setColumn(0, "pid", ds_main_wardpatinfo_wardpatlist.getColumn(row, "pid"));
  514. ds_main_cond.setColumn(0, "indd", ds_main_wardpatinfo_wardpatlist.getColumn(row, "indd"));
  515. ds_main_cond.setColumn(0, "cretno", ds_main_wardpatinfo_wardpatlist.getColumn(row, "cretno"));
  516. ds_main_patinfo.setColumn(0, "roomcd", ds_main_wardpatinfo_wardpatlist.getColumn(row, "roomcd"));
  517. ds_main_patinfo.setColumn(0, "pid", ds_main_wardpatinfo_wardpatlist.getColumn(row, "pid"));
  518. ds_main_patinfo.setColumn(0, "patnm", ds_main_wardpatinfo_wardpatlist.getColumn(row, "patnm"));
  519. ds_main_patinfo.setColumn(0, "sexage", ds_main_wardpatinfo_wardpatlist.getColumn(row, "sexage"));
  520. }else if(sParam == "act"){
  521. ds_main_cond.setColumn(0, "pid", ds_main_wardactinfo_wardactlist.getColumn(row, "pid"));
  522. ds_main_cond.setColumn(0, "indd", ds_main_wardactinfo_wardactlist.getColumn(row, "indd"));
  523. ds_main_cond.setColumn(0, "cretno", ds_main_wardactinfo_wardactlist.getColumn(row, "cretno"));
  524. if(row > -1) {
  525. ds_main_cond.setColumn(0, "orddd", ds_main_wardactinfo_wardactlist.getColumn(row, "prcpdd"));
  526. }
  527. ds_main_patinfo.setColumn(0, "roomcd", ds_main_wardactinfo_wardactlist.getColumn(row, "roomcd"));
  528. ds_main_patinfo.setColumn(0, "pid", ds_main_wardactinfo_wardactlist.getColumn(row, "pid"));
  529. ds_main_patinfo.setColumn(0, "patnm", ds_main_wardactinfo_wardactlist.getColumn(row, "patnm"));
  530. ds_main_patinfo.setColumn(0, "sexage", ds_main_wardactinfo_wardactlist.getColumn(row, "sexage"));
  531. } else {
  532. }
  533. if( ds_main_cond.getColumn(0, "wardcd") == "0000000000" ){
  534. xOpfromdt = ds_main_wardpatinfo_wardpatlist.getColumn(row, "opfromdt");
  535. var preantidt = utlf_transNullToEmpty(ds_main_wardpatinfo_wardpatlist.getColumn(row, "preantidt"));
  536. if (xDrMode = "dr") {
  537. //2017.10.27 요청번호 : 20170928026 수술예방적항생제 평가관련
  538. //수술기록 Freetext(JCI)에서 호출시(인증저장 시) 수술시작일시 or 환자입실시간으로 (emr.mnphopcr : OPFROMDT, PATINROOMDT)
  539. /**
  540. if( !utlf_isNull(preantidt) && preantidt != "-" ){
  541. ds_main_cond.setColumn(0, "currentday", preantidt.substr(0, 8));
  542. ds_main_cond.setColumn(0, "currenttime", preantidt.substr(8,4));
  543. }else {
  544. ds_main_cond.setColumn(0, "currentday", utlf_getCurrentDate());
  545. ds_main_cond.setColumn(0, "currenttime", utlf_getCurrentTime().substr(0,4));
  546. }
  547. **/
  548. var paraCarebasedd = opener.frmf_getParameter("SMMNR00600_carebasedd");
  549. var paraCarebasetm = opener.frmf_getParameter("SMMNR00600_carebasetm");
  550. if( (!utlf_isNull(paraCarebasedd) && paraCarebasedd != "-" ) && (!utlf_isNull(paraCarebasetm) && paraCarebasetm != "-")){
  551. ds_main_cond.setColumn(0, "currentday", paraCarebasedd);
  552. ds_main_cond.setColumn(0, "currenttime", paraCarebasetm);
  553. }else {
  554. ds_main_cond.setColumn(0, "currentday", utlf_getCurrentDate());
  555. ds_main_cond.setColumn(0, "currenttime", utlf_getCurrentTime().substr(0,4));
  556. }
  557. }
  558. }
  559. if( !utlf_isNull(xOpfromdt) && xOpfromdt != "-" ){
  560. ds_main_patinfo.setColumn(0, "opfromdt", xOpfromdt);
  561. }
  562. //model.resetInstanceNode("/root/send/reqdata");
  563. ds_main_cond.setColumn(0, "yorddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),-1));
  564. ds_main_cond.setColumn(0, "torddd", getDateAddc(ds_main_cond.getColumn(0, "orddd"),+1));
  565. //---------------------(20080721)
  566. //ER 환자에 대한 선처치기능을 처리하기 위해서 ORDTYPE을 넘긴다.
  567. var ordtype = ds_main_wardpatinfo_wardpatlist.getColumn(row, "ordtype");
  568. ds_main_cond.setColumn(0, "ordtype", ordtype);
  569. //----------------------
  570. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  571. for( var i=0 ; i<ds_hidden_warddruginfo_warddruglist.rowcount ; i++ ){
  572. if( !utlf_isNull(this.objects[xWardDrugListPath+i+"for"]) ){
  573. eval(xWardDrugListPath+i+"for").clearData();
  574. }
  575. }
  576. var oParam = {};
  577. oParam.id = "TRMNR00604";
  578. oParam.service = "caremedirecapp.CareMediRec";
  579. oParam.method = "reqGetWardDrugList";
  580. oParam.inds = "reqcond=ds_send_reqdata";
  581. oParam.outds = "ds_hidden_warddruginfo_warddruglist=warddruglist";
  582. oParam.async = false;
  583. //oParam.callback = "cf_TRMNR00604";
  584. tranf_submit(oParam);
  585. //----------(20081031)
  586. //alert("db통과_ok");성능좋음
  587. //----------(20080808)
  588. //아래의 정보를 기준으로 화면을 구성한다.
  589. //그러나 아래의 정보가 정확하지 않을수 있으므로 fndrugcalcBefore() 에서 정확한 정보를 만들고 fndrugcalc()를 호출한다.
  590. //1. fndrugcalcbefore : model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")에 값설정(예정)
  591. //2. fndrugcalc : model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")를 기준으로 화면구성
  592. //----------
  593. //------------------------------------
  594. //투약시간계산(20080808)
  595. //------------------------------------
  596. fndrugcalcbefore();
  597. //----------(20080808)
  598. //------------------------------------
  599. //투약시간계산(20080530)
  600. //------------------------------------
  601. fndrugcalc(); //조회여부구분
  602. //------------------------------------
  603. //-----------------------------------(20081014)
  604. // hidden의 instance에 있는 drugtmspec 의 항목의 split 수와 calctims수를 확인한다.
  605. fndrugcalcCheck();
  606. //-----------------------------------(20081014)
  607. var array_drugtmspec = "";
  608. var drugtmspec = "";
  609. var drugtmspeccal = "";
  610. var temp_drugtmspec = 0;
  611. /* --(20080530)
  612. //--------------------------------------------------------------------
  613. //drugtmspec에서 시간 추출해서 drugtmspeccal에 화면 표시 시간으로 변경
  614. // fndrugcalc에서 drugtmspeccal를 생성함
  615. //--------------------------------------------------------------------
  616. for(var i = 1; i<= getNodesetCount(xHiddenWardDrugPath); i++){
  617. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec"); //투여기준시간(1000 2200)
  618. if(drugtmspec != ""){
  619. array_drugtmspec = drugtmspec.split(" ");
  620. for(var j = 0; j < array_drugtmspec.length; j++){
  621. temp_drugtmspec = Number(array_drugtmspec[j]) % 2400;
  622. temp_drugtmspec = Math.abs(Number(temp_drugtmspec)).toString();
  623. drugtmspeccal += fCarec_GetFillZeno(temp_drugtmspec,4,0) + " ";
  624. }
  625. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", drugtmspeccal);
  626. drugtmspeccal = "";
  627. } else {
  628. model.makeValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspeccal", "");
  629. }
  630. }
  631. */
  632. ds_main_warddruginfo_warddruglist.filter("");
  633. ds_main_warddruginfo_warddruglist.clearData();
  634. var nodecnt = ds_hidden_warddruginfo_warddruglist.rowcount;
  635. if(nodecnt > 0){
  636. //수정(20080602)
  637. //dispflag 조건에 추가
  638. fSetDrugReBuild(nodecnt); //Hidden에 있는 인스턴스를 main으로 copy(처방별로 묶음)(임시row별 -> main컴럼설정)
  639. //막음(20080602)
  640. //Acting한 경우 Acting시간으로 컬럼 셋팅(OLD)(20080601이전)
  641. //fndrugcalc에서 ACTING 정보 반영(NEW)(20080601이후)작업중
  642. //fSetDrugExecDT(nodecnt);
  643. //그리드 시간 컬럼 삭제(시간 컬럼을 제외한 나머지 컬럼갯수 빼기(12))
  644. var sColCnt = group3.grd_druglist.getCellCount("Body") - nfixedcols - grd_colcnt;
  645. var nColCount = group3.grd_druglist.getCellCount("Body")-1;
  646. //grd_druglist.refresh();
  647. for(sColCnt; sColCnt > 0; sColCnt--){
  648. group3.grd_druglist.deleteContentsCol("body", nColCount--, false); //refresh 하지 않음(false)
  649. }
  650. ////////alert("test");
  651. //return;
  652. //----------(20081031)
  653. //alert("튜닝요구되는 모듈시작");
  654. //----(20080603) new버젼
  655. fAddBaseDrugTime(); //투약기록 처방 내역 기준시간 Setting작업
  656. //----------(20081031)
  657. //alert("튜닝요구되는 모듈종료");
  658. }
  659. //careSetTree(grd_druglist,17,2,false);
  660. //그리드 타이틀 부분 머지
  661. for(var k = 1; k < grd_colcnt; k++){
  662. group3.grd_druglist.mergeContentsCell("Head", 0, k, 1, k, k, false);
  663. }
  664. //DC는 CHECK불가
  665. for( var l=0 ; l<group3.grd_druglist.rowcount ; l++ ){
  666. if( ds_main_warddruginfo_warddruglist.getColumn(l, "dccomcountyn") == "Y" ){
  667. ds_main_warddruginfo_warddruglist.setColumn(l, "check", "0");
  668. }
  669. }
  670. //---------------------------(20080930)
  671. //기준시간setting를 sort한다.
  672. //시간대가-1이 되어 2200 1300 1800 -> 1300 1800 2200으로 변경
  673. var pGrd = group3.grd_druglist;
  674. var settingtime = "";
  675. for( var l=0 ; l<group3.grd_druglist.rowcount ; l++ ){
  676. settingtime = ds_main_warddruginfo_warddruglist.getColumn(l, "drugtmspec_recalc1");
  677. settingtime = sortHashKeysString(settingtime); //sort
  678. ds_main_warddruginfo_warddruglist.setColumn(l, "drugtmspec_recalc1", settingtime) //반영
  679. }
  680. //---------------------------(20080930)
  681. group3.btn_drugcard.enable = true;
  682. group3.btn_hydprint.enable = true;
  683. group3.btn_injprint.enable = true;
  684. //model.refresh();
  685. var fstrgstdt = "";
  686. var fstrgstdt2 = "";
  687. var reqflag ="";
  688. var sExprBack = "EXPR(";
  689. var sExprLine1 = "EXPR(";
  690. var sExprLine2 = "EXPR(";
  691. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  692. fstrgstdt2 = ds_main_warddruginfo_warddruglist.getColumn(i, "fstrgstdt");
  693. reqflag = ds_main_warddruginfo_warddruglist.getColumn(i, "reqflag");
  694. if( !utlf_isNull(reqflag) ){
  695. sExprBack += "currow == "+i+" ? '#11eeee' : ";
  696. } else {
  697. sExprBack += "currow == "+i+" ? '#ffffff' : ";
  698. }
  699. if( fstrgstdt != fstrgstdt2 ){
  700. fstrgstdt = fstrgstdt2;
  701. //20120413_KNUH_Start 처방시간별 구분선 추가(빨간색)
  702. if( i != 0 ){
  703. sExprLine1 += "currow == "+(i-1)+" ? '3 solid #B0B0B0ff,1 solid #B0B0B0ff,1 solid #009999,1 solid #B0B0B0ff' : ";
  704. sExprLine2 += "currow == "+(i-1)+" ? '3 solid #B0B0B0ff,0 none #B0B0B0ff,1 solid #009999,0 none #B0B0B0ff' : ";
  705. }
  706. }
  707. }
  708. sExprBack += "'')";
  709. group3.grd_druglist.setCellProperty("Body", group3.grd_druglist.getBindCellIndex("body", "prcpkindnm"), "background", "");
  710. group3.grd_druglist.setCellProperty("Body", group3.grd_druglist.getBindCellIndex("body", "prcpkindnm"), "background2", "");
  711. group3.grd_druglist.setCellProperty("Body", group3.grd_druglist.getBindCellIndex("body", "prcpkindnm"), "background", sExprBack);
  712. group3.grd_druglist.setCellProperty("Body", group3.grd_druglist.getBindCellIndex("body", "prcpkindnm"), "background2", sExprBack);
  713. for( var i=0 ; i<group3.grd_druglist.getCellCount("Body") ; i++ ){
  714. if( i>5 && i<15 ){
  715. group3.grd_druglist.setCellProperty("Body", i, "line", sExprLine2+"'1 solid #B0B0B0ff,0 none #B0B0B0ff')");
  716. group3.grd_druglist.setCellProperty("Body", i, "selectline", sExprLine2+"'1 solid #B0B0B0ff,0 none #B0B0B0ff')");
  717. }else{
  718. group3.grd_druglist.setCellProperty("Body", i, "line", sExprLine1+"'')");
  719. group3.grd_druglist.setCellProperty("Body", i, "selectline", sExprLine1+"'')");
  720. }
  721. }
  722. }
  723. /**
  724. * @group :
  725. * @ver : 2007.06.23
  726. * @by : 최경용
  727. * @---------------------------------------------------
  728. * @type : function
  729. * @access : public
  730. * @desc : Hidden에 있는 인스턴스를 main으로 copy(처방별로 묶음)(조회data -> 화면data로 이동)
  731. * @param :
  732. * @param :
  733. * @return :
  734. * @---------------------------------------------------
  735. */
  736. function fSetDrugReBuild(nodecnt){
  737. var inst_cnt = 0;
  738. var prev_prcpno = "";
  739. var execcarestatcd = ""; //시간컬럼에 추가 하는 instanceList
  740. var tims = "";
  741. var execdd = "";
  742. //---------------------------------------------------------------
  743. //조회대상이 되는 자료row만 화면으로 넘긴다.
  744. //nodecnt : xHiddenWardDrugPath 이다.
  745. //---------------------------------------------------------------
  746. for( var cnt=0 ; cnt<nodecnt ; cnt++ ){
  747. var prcpno1 = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpno"));
  748. var prcpcd1 = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpcd"));
  749. var copyflag = "N";
  750. //-------------------(20081014)
  751. var validateYN = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "validateyn1");
  752. if (validateYN == "N") continue;
  753. //-------------------(20081015)
  754. //-------------------(시간대정보가 없음을 알림)(20080620)
  755. var timeinfo = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "drugtmspec");
  756. var prcpinfo = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpcd");
  757. var drugmthdspccdinfo = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "drugmthdspccd");
  758. //인티팜 여부 추가 2018.11.28
  759. var medipharmflag = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "medipharmflag");
  760. var prcpnm = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpnm");
  761. if (medipharmflag == "M") {
  762. ds_hidden_warddruginfo_warddruglist.setColumn(cnt,"prcpnm","[인]"+prcpnm);
  763. }
  764. if( utlf_isNull(timeinfo) ){
  765. //--------------(20081014)fAddBaseDrugTime에서 메세지를 보낸다.
  766. //messageBox("처방(" + prcpinfo + ")에 대한 용법(" + drugmthdspccdinfo + ")의 " +
  767. // "투약기준시간정보가 존재하지 않습니다. " +
  768. // "투약기준시간정보를 확인하십시오.","E999");
  769. //--------------(20081014)
  770. continue;
  771. }
  772. //-----------------------------------------------------------------------
  773. //조회대상이 되는 자료를 찾는다.(의미없음)
  774. if( ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "dispflag") == "Y" ){
  775. var prcpno2 = "";
  776. var prcpcd2 = "";
  777. //이미 복사했는지 찾는다.(처방일자,처방번호 : pk의 성격과 유사하다)
  778. for( var i=0 ; i<=inst_cnt ; i++ ){
  779. prcpno2 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno"));
  780. prcpcd2 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  781. if (prcpno1 == prcpno2 && prcpcd1 == prcpcd2) {
  782. copyflag = "Y";
  783. break;
  784. }
  785. }
  786. if (copyflag != "Y") {
  787. ds_main_warddruginfo_warddruglist.addRow();
  788. ds_main_warddruginfo_warddruglist.copyRow(inst_cnt, ds_hidden_warddruginfo_warddruglist, cnt);
  789. prev_prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(cnt, "prcpno");
  790. inst_cnt++;
  791. }
  792. }
  793. }
  794. ds_main_warddruginfo_warddruglist.rowposition = nodecnt-1;
  795. group3.grd_druglist.setCellPos(1);
  796. //-----------(20080702)
  797. //막으면 오류발생함
  798. }
  799. /**
  800. * @group :
  801. * @ver : 2007.06.23
  802. * @by : 최경용
  803. * @---------------------------------------------------
  804. * @type : function
  805. * @access : public
  806. * @desc : Acting한 경우 Acting시간으로 컬럼 셋팅
  807. * 투약한경우:투약일과 ACTING일(원무시행일)은 다를수 있다
  808. * 투약일은 용법에 의해서 변경되고 ACTING일은 투약일(5/2)이라도 오늘(5/1)ACTING하면 서로 다를수 있다.
  809. * @param :
  810. * @param :
  811. * @return :
  812. * @---------------------------------------------------
  813. */
  814. function fSetDrugExecDT(nodecnt){
  815. var inst_cnt = 1;
  816. //시간컬럼에 추가 하는 instanceList
  817. var tims = "";
  818. var drugtms = "";
  819. var execdd = "";
  820. var exectm = "";
  821. var prcpdd = "";
  822. var intervaldd = "";
  823. var temp_drugtmspec = "";
  824. var inst_cnt = 1;
  825. var temp_cnt = 1;
  826. var tmcalculate = "";
  827. var drugdd = model.getValue("/root/main/cond/orddd"); //조회일
  828. for(var i = 1; i <= nodecnt; i){
  829. drugtmspec = model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec").split(" ");
  830. tims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/tims");
  831. //-------------(20080912)
  832. var calctims = model.getValue(xHiddenWardDrugPath + "[" + i + "]/calctims");
  833. //-------------(20080912)
  834. prcpdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcpdd");
  835. temp_drugtmspec = "";
  836. temp_cnt = i;
  837. if(drugtmspec != ""){
  838. //-------------(20080912)
  839. //for(var j = 1; j <= tims; j++){
  840. for(var j = 1; j <= calctims; j++){
  841. //-------------(20080912)
  842. execdd = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrexecdd"); //투약일
  843. exectm = model.getValue(xHiddenWardDrugPath + "[" + i + "]/medrexectm"); //투약시간
  844. //alert("fSetDrugExecDT:" + execdd + "/" + exectm);
  845. exectm = exectm.substr(0,4);
  846. if(j != 1){
  847. temp_drugtmspec += " ";
  848. }
  849. if(execdd != "00000000"){ //acting이면
  850. intervaldd = getDateInterval(drugdd, execdd); //조회일과 acting일자의 차이 일수
  851. if(intervaldd < 0){
  852. tmcalculate = (-Number(exectm) + (Number(intervaldd) * 2400)); //-0900 + -2400 = -3300
  853. }else{
  854. tmcalculate = (Number(exectm) + (Number(intervaldd) * 2400)); // 0900 + 2400 = 3300
  855. }
  856. }else{
  857. tmcalculate = drugtmspec[j-1];
  858. }
  859. temp_drugtmspec += fCarec_GetFillZeno(tmcalculate,4,0);
  860. i++;
  861. }
  862. model.setValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec", temp_drugtmspec);
  863. inst_cnt++;
  864. //-----------(20080912)
  865. //for(var j = 1; j <= tims; j++){
  866. for(var j = 1; j <= calctims; j++){
  867. //-----------(20080912)
  868. model.setValue(xHiddenWardDrugPath + "[" + (temp_cnt + j - 1) + "]/drugtmspec", temp_drugtmspec);
  869. }
  870. }else{
  871. //----------(20080912)
  872. //i = i + parseInt(tims);
  873. i = i + parseInt(calctims);
  874. //----------(20080912)
  875. inst_cnt++;
  876. }
  877. }
  878. model.refresh();
  879. }
  880. /**
  881. * @group :
  882. * @ver : 2007.06.23
  883. * @by : 최경용
  884. * @---------------------------------------------------
  885. * @type : function
  886. * @access : public
  887. * @desc : 투약기록 처방 내역 기준시간 Setting작업(화면에 표시)
  888. * @param :
  889. * @param :
  890. * @return :
  891. * @---------------------------------------------------
  892. */
  893. function fAddBaseDrugTime(){
  894. var rows = group3.grd_druglist.rowcount;
  895. var tims = 0;
  896. var drugtmspec = "";
  897. var drugtms = "";
  898. var sColCnt = group3.grd_druglist.getCellCount("Body") - nfixedcols - grd_colcnt;//시간 컬럼을 제외한 나머지 컬럼갯수 빼기(17)
  899. var sGrdCap = "";
  900. var prcpdd = ds_main_cond.getColumn(0, "orddd"); //처방일자(조회일)
  901. var meddays = "";
  902. var medtims = "";
  903. var cnt = 0;
  904. var sGrdCapDay = "";
  905. var sGrdCapTims = "";
  906. var execdd = "";
  907. var temp_drugtms = "";
  908. var temp_meddays = "";
  909. var timsYN = false;
  910. var daysYN = false;
  911. //그리드에 추가 할 컬럼 조사 및 정렬(화면구성)
  912. //그리드(grd_druglist)ROW만큼
  913. // for(var i = 1; i <= rows - 2; i++){
  914. //
  915. // drugtmspec= model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  916. // tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims"); //처방횟수
  917. // if(drugtmspec != ""){
  918. // for(var j = 1; j <= tims; j++){
  919. //
  920. // drugtms = drugtmspec.split(" ");
  921. // temp_drugtms = drugtms[j-1]; //0900
  922. // temp_meddays = getDateAddc(prcpdd, parseInt(drugtms[j-1] / 2400)); //20080425
  923. //
  924. // timsYN = careIsSearchString(medtims, temp_drugtms); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  925. // daysYN = careIsSearchString(meddays, temp_meddays); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  926. //
  927. // //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  928. // if(timsYN == false || daysYN == false){
  929. // medtims += temp_drugtms + "^"; //전체 시간대
  930. // meddays += temp_meddays + "^"; //전체 일자
  931. // cnt++;
  932. // }
  933. // }
  934. // }
  935. // }
  936. ////alert("2");
  937. //---------------------------------------------
  938. //xWardDrugListPath에 있는 모든정보를 반영한다.
  939. //화면에 보일계산된 시간으로 컬럼을 구성한다.
  940. //---------------------------------------------
  941. for( var i=0 ; i<rows ; i++ ){
  942. //--------------------------------------------------------------------------
  943. //fndrugcalc 함수에서 화면에 보일시간 계산되었음
  944. //drugtmspec= model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  945. //--------------------------------------------------------------------------
  946. drugtmspeccal = ds_main_warddruginfo_warddruglist.getColumn(i, "drugtmspeccal"); //상대시간대
  947. tims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims"); //처방횟수
  948. //-----------------------(20080912)
  949. var calctims = ds_main_warddruginfo_warddruglist.getColumn(i, "calctims");
  950. var tempprcpcd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  951. //-----------------------(20080912)
  952. if( !utlf_isNull(drugtmspeccal) ){
  953. //-----------------------(20080912)
  954. //for(var j = 1; j <= tims; j++){
  955. for( var j=1 ; j<=calctims ; j++ ){
  956. //-----------------------(20080912)
  957. drugtms = drugtmspeccal.split(" ");
  958. temp_drugtms = utlf_transNullToEmpty(drugtms[j-1]); //0900
  959. temp_meddays = getDateAddc(prcpdd, parseInt(utlf_transNullToEmpty(drugtms[j-1]) / 2400)); //20080425
  960. //0919: temp_drugtms가 없는 경우 오류이므로 원인을 찾아야 한다.
  961. //drugtmspeccal가 공백이 없이 들어온다. 0900공백2000 : 정상이나, 0900까지만 들어온다. 그래서 배열에서 오류발생
  962. //정렬이 잘못된경우임
  963. //timsYN = careIsSearchString(medtims, fCarec_GetFillZeno(temp_drugtms,4,0)); //중복시간대 찾기
  964. timsYN = careIsSearchString(medtims, temp_drugtms); //중복시간대 찾기
  965. daysYN = careIsSearchString(meddays, temp_meddays); //중복일자 찾기
  966. //-----------------------------------------------
  967. //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  968. //-----------------------------------------------
  969. if(timsYN == false || daysYN == false){
  970. ////alert("2-0:"+tempprcpcd + "/" + drugtmspeccal + "/" + temp_drugtms);
  971. medtims += fCarec_GetFillZeno(temp_drugtms,4,0) + "^"; //전체 시간대
  972. meddays += temp_meddays + "^"; //전체 일자
  973. cnt++;
  974. }
  975. }
  976. }
  977. }
  978. //---------------------------------------------(20081031)
  979. //alert("chk1_성능좋음");
  980. //---------------------------------------------
  981. //시간대 총컬럼 갯수를 정렬한다.
  982. //---------------------------------------------
  983. addCol_Cnt = cnt;
  984. ////////alert("변경전 sMeddays="+meddays+"/sMedtims="+medtims);
  985. var sMedtims = sortHashKeys2(medtims, cnt); //시간대 문자열 정렬(오름차순)
  986. var sMeddays = sortHashKeys(meddays, cnt); //일자 문자열 정렬(오름차순) //0918
  987. ////////alert("변경후 sMeddays="+sMeddays+"/sMedtims="+sMedtims);
  988. //--------------------------------------------
  989. //컬럼 숨김 계속 지정하기 위해...
  990. //투약기록 그리드 기본/펼치기 모드 이벤트(뒤의 마지막필드5개 숨기기)
  991. //--------------------------------------------
  992. fSelectOpenMoe();
  993. //--------------------------------------------
  994. //헤더시간대의 갯수만큼 컬럼추가
  995. //cnt : 추가해야할 총 컬럼수
  996. //--------------------------------------------
  997. var tempString = "";
  998. sGrdCap = (grd_title1+"|"+grd_title2).split("|");
  999. group3.grd_druglist.setCellProperty("Head", 20, "text", "처방적용일");
  1000. var temp_tims = 0;
  1001. for(var k = 1; k <= cnt; k++){
  1002. var nCol = group3.grd_druglist.appendContentsCol();
  1003. group3.grd_druglist.setCellProperty("Body", nCol, "text", "bind:carecfactnm"+nCol);
  1004. group3.grd_druglist.setCellProperty("Body", nCol, "tooltiptext", "bind:carecfactnm"+nCol);
  1005. group3.grd_druglist.setCellProperty("Body", nCol, "align", "left");
  1006. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("carecfactnm"+nCol)) ){
  1007. ds_main_warddruginfo_warddruglist.addColumn("carecfactnm"+nCol, "string");
  1008. }
  1009. group3.grd_druglist.setFormatColProperty(group3.grd_druglist.getCellCount("Body")-1, "size", 45);
  1010. //일자
  1011. tempString = utlf_transNullToEmpty(sMeddays[k-1]).toString();
  1012. addCol_Array[k-1] = sMedtims[k-1];
  1013. sGrdCapDay += tempString.substr(4,2) + "/" + tempString.substr(6,2) + "^";
  1014. //시각(0918)
  1015. temp_tims = sMedtims[k-1] % 2400;
  1016. temp_tims = Math.abs(Number(temp_tims)).toString();
  1017. temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  1018. sGrdCapTims += temp_tims + "^";
  1019. group3.grd_druglist.setCellProperty("Head", nCol, "text", tempString.substr(4,2) + "/" + tempString.substr(6,2));
  1020. group3.grd_druglist.setCellProperty("Head", group3.grd_druglist.getCellCount("Head")-1, "text", temp_tims);
  1021. }
  1022. for( var i=(group3.grd_druglist.getCellCount("Body")-1) ; i>=grd_colcnt ; i-- ){
  1023. if( group3.grd_druglist.getCellProperty("Head", i-1, "text") == group3.grd_druglist.getCellProperty("Head", i, "text") ){
  1024. group3.grd_druglist.mergeContentsCell("head", 0, i-1, 0, i, i-1, false);
  1025. }
  1026. }
  1027. //컬럼 타이틀 변경
  1028. sCaption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1029. var inst_cnt = 0;
  1030. var tims = "";
  1031. var drugtmspec = "";
  1032. var prcphistno = "";
  1033. var execprcpno = "";
  1034. var execcarestatcd = "";
  1035. var iudflag = "";
  1036. var carecfact = "";
  1037. var carecfactcd = "";
  1038. var carecfactnm = "";
  1039. var medrexistyn = "";
  1040. var execprcpuniqno = "";
  1041. var execdd = "";
  1042. var prcpdd = ""
  1043. var exectm = "";
  1044. var signno = "";
  1045. var signflag = "";
  1046. var col_index = 0;
  1047. var forarr = "";
  1048. var prcphistno_array = "";
  1049. var prcpuniqno_array = "";
  1050. var prcp_array = "";
  1051. var drugtmspeccal = "";
  1052. var timesch = "";
  1053. var drugdd = ds_main_cond.getColumn(0, "orddd");
  1054. var tdrugdd = getDateAddc(drugdd, 1);
  1055. var duty = ds_main_cond.getColumn(0, "duty");
  1056. var calcdd = "";
  1057. var medrexecdd = "";
  1058. var medrexectm = "";
  1059. var hiddenYN = new Array;
  1060. //------------------------------
  1061. //forarr : 자료존재 번호XML 태그
  1062. //
  1063. //추가 컬럼만큼 /forarr을 만든다.(컴럼의 상세정보를 반영하기 위해서)
  1064. //------------------------------
  1065. for( var x=0 ; x<ds_main_warddruginfo_warddruglist.rowcount ; x++ ){
  1066. for( var y=0 ; y<addCol_Array.length ; y++ ){
  1067. dsf_makeValue(ds_main_warddruginfo_warddruglist, "forarr"+(grd_colcnt+y), "string", "", x);
  1068. }
  1069. }
  1070. //------------------------------
  1071. //모든 필드숨김기
  1072. //------------------------------
  1073. //test
  1074. for( var z=0 ; z<=(grd_colcnt+addCol_Cnt) ; z++ ){
  1075. hiddenYN[z] = "true"; //0923
  1076. }
  1077. //------------------------------
  1078. //for : 자료존재 번호에 대한 상세 정보 XML 태그
  1079. //------------------------------
  1080. //조회data(xHiddenWardDrugPath) -> 화면data(xWardDrugListPath) -> xHiddenWardDrugPath 컬럼에 대한 상세정보를 반영(for)함
  1081. //인스턴스 맵핑
  1082. //------------------------------
  1083. var prcpnohidden = "";
  1084. var prcpnobefore = "";
  1085. var prcpnonow = "";
  1086. var prcpnosavecnt = 1; //컬럼위치를 잡기위해서
  1087. var execprcpqty =""; //(2008112)
  1088. var execprcpvol =""; //(2008112)
  1089. var preantiyn = ""; //(20081211) 예방적항생제여부
  1090. //alert("chk2_성능좋음");
  1091. //-------------------20080604
  1092. ////////////alert("전체row:" + getNodesetCount(xHiddenWardDrugPath));
  1093. for( var m=0 ; m<ds_hidden_warddruginfo_warddruglist.rowcount ; m ){
  1094. //------------------------(20081014)
  1095. if( ds_hidden_warddruginfo_warddruglist.getColumn(m, "validateyn1") != "Y" ){
  1096. m++;
  1097. continue;
  1098. }
  1099. //------------------------(20081014)
  1100. //DISPLAY 대상이 되는 자료만 화면을 만든다.(의미없음)
  1101. //전부보임
  1102. if( ds_hidden_warddruginfo_warddruglist.getColumn(m, "dispflaggroup") != "Y" ){
  1103. m++;
  1104. continue;
  1105. }
  1106. tims = ds_hidden_warddruginfo_warddruglist.getColumn(m, "tims");
  1107. //----------(20080912)
  1108. calctims = ds_hidden_warddruginfo_warddruglist.getColumn(m, "calctims");
  1109. //----------(20080912)
  1110. drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugtmspec").split(" ");
  1111. drugtmspeccal = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugbasetmspec").split(" ");
  1112. var drugtmspec_recalc1 = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugtmspec_recalc1").split(" "); //처방적용일기준으로
  1113. var drugtmspec_recalc2 = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "drugtmspec_recalc2").split(" "); //조회일자기준으로
  1114. var dispddarray = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "dispddarray").split(" "); //실질투약일
  1115. var disptmarray = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "disptmarray").split(" "); //실질투약시간대
  1116. var dispflagarray = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "dispflagarray").split("/"); //조회일자에 따른 투약여부(실패)
  1117. var todaydrugtimes = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "todaydrugtimes").split("/"); //---(20080920)당일투약대상자만 보이기 위해서
  1118. var antiastrids = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "antiastrids").split("/");
  1119. var antiastrnms = ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "antiastrnms").split("/");
  1120. //---------------(20080912)
  1121. //for(var n = 0; n < tims; n++){
  1122. for( var n=0 ; n<calctims ; n++ ){
  1123. //---------------(20080912)
  1124. if(n == 0){
  1125. prcp_array = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpno");
  1126. prcphistno_array = ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcphistno");
  1127. prcpuniqno_array = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpuniqno");
  1128. }else{
  1129. prcp_array += " " + ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpno");
  1130. prcphistno_array += " " + ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcphistno");
  1131. prcpuniqno_array += " " + ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpuniqno");
  1132. }
  1133. execprcpno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpno");
  1134. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcpdd");
  1135. execcarestatcd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execcarestatcd");
  1136. carecfact = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(m, "carecfact"));
  1137. carecfactcd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "carecfactcd");
  1138. execprcpuniqno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpuniqno");
  1139. medrexistyn = ds_hidden_warddruginfo_warddruglist.getColumn(m, "medrexistyn");
  1140. prcphistno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "prcphistno");
  1141. execdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execdd");
  1142. exectm = ds_hidden_warddruginfo_warddruglist.getColumn(m, "exectm");
  1143. signno = ds_hidden_warddruginfo_warddruglist.getColumn(m, "signno");
  1144. signflag = ds_hidden_warddruginfo_warddruglist.getColumn(m, "signflag");
  1145. medrexecdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "medrexecdd");
  1146. medrexectm = ds_hidden_warddruginfo_warddruglist.getColumn(m, "medrexectm");
  1147. execprcpvol = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpvol");
  1148. execprcpqty = ds_hidden_warddruginfo_warddruglist.getColumn(m, "execprcpqty");
  1149. preantiyn = ds_hidden_warddruginfo_warddruglist.getColumn(m, "preantiyn");
  1150. if(medrexistyn == "Y"){
  1151. iudflag = "-";
  1152. }else if(medrexistyn == "N"){
  1153. iudflag = "";
  1154. }
  1155. if(iudflag == "-" && signflag == "N"){
  1156. carecfactnm = utlf_transNullToEmpty(ds_init_M0381list_M0381.getColumn(ds_init_M0381list_M0381.findRow("cdid", carecfactcd), "cdnm")) + " " + carecfact;
  1157. }else{
  1158. carecfactnm = utlf_transNullToEmpty(ds_init_M0381list_M0381.getColumn(ds_init_M0381list_M0381.findRow("cdid", carecfactcd), "cdnm")) + " " + carecfact;
  1159. }
  1160. //인스턴스 정보 set
  1161. if( !utlf_isNull(drugtmspec[n]) && !utlf_isNull(drugtmspec) ){
  1162. if( utlf_isNull(this.objects[xWardDrugListPath+inst_cnt+"for"]) ){
  1163. dsf_createDs(xWardDrugListPath+inst_cnt+"for", [{col:"execprcpno"},
  1164. {col:"execcarestatcd"},
  1165. {col:"pastexeccarestatcd"},
  1166. {col:"iudflag"},
  1167. {col:"carecfactnm"},
  1168. {col:"carecfactcd"},
  1169. {col:"carecfact"},
  1170. {col:"execprcpuniqno"},
  1171. {col:"prcphistno"},
  1172. {col:"execdd"},
  1173. {col:"medrexecdd"},
  1174. {col:"medrexectm"},
  1175. {col:"medrexistyn"},
  1176. {col:"signno"},
  1177. {col:"signflag"},
  1178. {col:"drugtmspec"},
  1179. {col:"drugtmspeccal"},
  1180. {col:"drugtmspec_recalc1"},
  1181. {col:"drugtmspec_recalc2"},
  1182. {col:"dispdd"},
  1183. {col:"disptm"},
  1184. {col:"currentflag"},
  1185. {col:"currentdd"},
  1186. {col:"currenttm"},
  1187. {col:"execprcpvol"},
  1188. {col:"execprcpqty"},
  1189. {col:"preantiyn"},
  1190. {col:"dispflag"},
  1191. {col:"todaydrug"},
  1192. {col:"antiastrid"},
  1193. {col:"antiastrnm"}]);
  1194. }
  1195. var objDsxWardDrugListPath = eval(xWardDrugListPath+inst_cnt+"for");
  1196. for( var i=0 ; i<=n ; i++ ){
  1197. if( objDsxWardDrugListPath.rowcount <= i ){
  1198. objDsxWardDrugListPath.addRow();
  1199. }
  1200. }
  1201. dsf_makeValue(objDsxWardDrugListPath, "execprcpno", "string", execprcpno, n);
  1202. dsf_makeValue(objDsxWardDrugListPath, "execcarestatcd", "string", execcarestatcd, n);
  1203. dsf_makeValue(objDsxWardDrugListPath, "pastexeccarestatcd", "string", execcarestatcd, n);
  1204. dsf_makeValue(objDsxWardDrugListPath, "iudflag", "string", iudflag, n);
  1205. dsf_makeValue(objDsxWardDrugListPath, "carecfactnm", "string", carecfactnm, n);
  1206. dsf_makeValue(objDsxWardDrugListPath, "carecfactcd", "string", carecfactcd, n);
  1207. dsf_makeValue(objDsxWardDrugListPath, "carecfact", "string", carecfact, n);
  1208. dsf_makeValue(objDsxWardDrugListPath, "execprcpuniqno", "string", execprcpuniqno, n);
  1209. dsf_makeValue(objDsxWardDrugListPath, "prcphistno", "string", prcphistno, n);
  1210. dsf_makeValue(objDsxWardDrugListPath, "execdd", "string", execdd, n);
  1211. dsf_makeValue(objDsxWardDrugListPath, "medrexecdd", "string", medrexecdd, n);
  1212. dsf_makeValue(objDsxWardDrugListPath, "medrexectm", "string", medrexectm, n);
  1213. dsf_makeValue(objDsxWardDrugListPath, "medrexistyn", "string", medrexistyn, n);
  1214. dsf_makeValue(objDsxWardDrugListPath, "signno", "string", signno, n);
  1215. dsf_makeValue(objDsxWardDrugListPath, "signflag", "string", signflag, n);
  1216. dsf_makeValue(objDsxWardDrugListPath, "drugtmspec", "string", utlf_transNullToEmpty(drugtmspec[n]), n);
  1217. dsf_makeValue(objDsxWardDrugListPath, "drugtmspeccal", "string", utlf_transNullToEmpty(drugtmspeccal[n]), n);
  1218. //-----------------------------------(20080605추가)
  1219. dsf_makeValue(objDsxWardDrugListPath, "drugtmspec_recalc1", "string", utlf_transNullToEmpty(drugtmspec_recalc1[n]), n);
  1220. dsf_makeValue(objDsxWardDrugListPath, "drugtmspec_recalc2", "string", utlf_transNullToEmpty(drugtmspec_recalc2[n]), n);
  1221. dsf_makeValue(objDsxWardDrugListPath, "dispdd", "string", utlf_transNullToEmpty(dispddarray[n]), n);
  1222. dsf_makeValue(objDsxWardDrugListPath, "disptm", "string", utlf_transNullToEmpty(disptmarray[n]), n);
  1223. //-----------------------------------(20080802추가)
  1224. dsf_makeValue(objDsxWardDrugListPath, "currentflag", "string", "", n); //현재시간반영여부
  1225. dsf_makeValue(objDsxWardDrugListPath, "currentdd", "string", "", n); //현재시간체크후 설정된일자
  1226. dsf_makeValue(objDsxWardDrugListPath, "currenttm", "string", "", n); //현재시간체크후 설정된시간
  1227. //-----------------------------------
  1228. //-----------------------------------(20081112추가)
  1229. dsf_makeValue(objDsxWardDrugListPath, "execprcpvol", "string", execprcpvol, n); //exip의 용량
  1230. dsf_makeValue(objDsxWardDrugListPath, "execprcpqty", "string", execprcpqty, n); //exip의 수량
  1231. //-----------------------------------
  1232. //-----------------------------------(20081211추가)
  1233. dsf_makeValue(objDsxWardDrugListPath, "preantiyn", "string", preantiyn, n); //medr의 예방적항생제
  1234. //-----------------------------------
  1235. var querydd = ds_main_cond.getColumn(0, "orddd");
  1236. if (utlf_transNullToEmpty(dispddarray[n]) == querydd || utlf_transNullToEmpty(dispddarray[n]) == getDateAddc(querydd, 1) ) {
  1237. ////////////alert(dispddarray[n] + "/" + querydd + "/" + getDateAddc(querydd, 1));
  1238. dispflagarray[n] = "Y";
  1239. } else {
  1240. dispflagarray[n] = "N";
  1241. }
  1242. dsf_makeValue(objDsxWardDrugListPath, "dispflag", "string", dispflagarray[n], n);
  1243. //-----------------------------------(20080920)
  1244. dsf_makeValue(objDsxWardDrugListPath, "todaydrug", "string", utlf_transNullToEmpty(todaydrugtimes[n]), n); //현재시간체크후 설정된시간
  1245. //-----------------------------------
  1246. dsf_makeValue(objDsxWardDrugListPath, "antiastrid", "string", utlf_transNullToEmpty(antiastrids[n]), n);
  1247. dsf_makeValue(objDsxWardDrugListPath, "antiastrnm", "string", utlf_transNullToEmpty(antiastrnms[n]), n);
  1248. //-----------------------------------
  1249. //hidden자료->화면자료로 상세정보이동시 컬럼위치를 찾는 방법
  1250. //
  1251. //일자를 찾고, 시간대를 찾는다.
  1252. //-----------------------------------
  1253. //col_index = (grd_colcnt + isSearchArrayIndex(addCol_Array, drugtmspec[n]));
  1254. //row별로 반영되는 컬럼위치 찾기
  1255. var sGrdCap0 = sCaption.split("|");
  1256. var sGrdCap1 = sGrdCap0[0].split("^"); //첫줄: 일자
  1257. var sGrdCap2 = sGrdCap0[1].split("^"); //두번째줄: 시간대
  1258. var tdispdd = ds_hidden_warddruginfo_warddruglist.getColumn(m, "dispdd"); //절대일자
  1259. var tdisptm = ds_hidden_warddruginfo_warddruglist.getColumn(m, "disptm"); //절대시간대
  1260. // var tdispddyy = tdispdd.substring(0,4).toString();
  1261. //
  1262. // tdispdd = tdispdd.replace(tdispddyy,"").toString();
  1263. //
  1264. // var tdispddmm = tdispdd.substring(0,2).toString();
  1265. // var tdispdddd = tdispdd.replace(tdispddmm,"").toString();
  1266. var tdispddyy = utlf_transNullToEmpty(tdispdd).substr(0,4);
  1267. var tdispddmm = utlf_transNullToEmpty(tdispdd).substr(4,2);
  1268. var tdispdddd = utlf_transNullToEmpty(tdispdd).substr(6,2);
  1269. tdispdd = tdispddmm + "/" + tdispdddd;
  1270. for (var col1=0;col1<sGrdCap1.length;col1++) {
  1271. if (sGrdCap1[col1] == tdispdd) {
  1272. for (var col2=col1;col2<sGrdCap2.length;col2++) {
  1273. if (sGrdCap2[col2] == tdisptm) {
  1274. break;
  1275. }
  1276. }
  1277. break;
  1278. }
  1279. }
  1280. col_index = col2;
  1281. //-----------------------------------
  1282. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr" + col_index)) ){
  1283. ds_main_warddruginfo_warddruglist.addColumn("forarr" + col_index, "string");
  1284. }
  1285. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_cnt, "forarr" + col_index));
  1286. timesch = utlf_transNullToEmpty(fSetTimsSetting(forarr.split(" ").length));
  1287. dsf_makeValue(ds_main_warddruginfo_warddruglist, "carecfactnm" + col_index, "string", timesch + carecfactnm, inst_cnt); //이곳에서 발생
  1288. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "forarr" + col_index, forarr + (n+1) + " ");
  1289. //test
  1290. // calcdd = getDateAddc(drugdd, parseInt(drugtmspec[n] / 2400));
  1291. // if(calcdd == drugdd ||
  1292. // prcpdd == drugdd && calcdd == tdrugdd){
  1293. if( objDsxWardDrugListPath.getColumn(n, "dispflag") == "Y" ){
  1294. hiddenYN[col_index] = "false";
  1295. }
  1296. // }
  1297. }
  1298. m++;
  1299. }
  1300. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "execprcpnoarr", prcp_array);
  1301. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "prcphistnoarr", prcphistno_array);
  1302. ds_main_warddruginfo_warddruglist.setColumn(inst_cnt, "execuniqnoarr", prcpuniqno_array);
  1303. ////////////alert("inst_cnt:" + inst_cnt);
  1304. inst_cnt++;
  1305. }
  1306. //---------------------------------------
  1307. //조회조건의 (근무구분)에 대해서 자료 컬럼 중 근무시간에 해당하는 자료만 보이고 , 나머지는 숨김
  1308. //---------------------------------------
  1309. var nGrdColCnt = grd_colcnt+addCol_Cnt;
  1310. if( nGrdColCnt > group3.grd_druglist.getCellCount("Body")-1 ){
  1311. nGrdColCnt = group3.grd_druglist.getCellCount("Body")-1;
  1312. }
  1313. for( var a=grd_colcnt ; a<=nGrdColCnt ; a++ ){
  1314. if(duty != "All"){//근무조건
  1315. //dyty조건
  1316. if(fCarec_JobTimeYN(sMedtims[a-grd_colcnt], duty) == "Y"){ //기준시간에서 Interval 시간계산(근무시간(D/E/N)
  1317. group3.grd_druglist.setRealColSize(a, 45);
  1318. }else{
  1319. group3.grd_druglist.setRealColSize(a, 0);
  1320. }
  1321. }
  1322. if(hiddenYN[a] == "true"){//투약일 조건
  1323. group3.grd_druglist.setRealColSize(a, 0);
  1324. }
  1325. }
  1326. //--------------------(20081031)확인 결과 위에서 속도를 차지함
  1327. //컬럼 타이틀 변경
  1328. //grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1329. //투약 시간 셀 color 변경
  1330. fDrugCellColorChg();
  1331. //당일투약기준으로 화면의 자료 display를 재설정한다.(20080920)
  1332. fDrugCellDispChg();
  1333. }
  1334. //
  1335. //function fAddBaseDrugTime_OLD(){
  1336. //
  1337. // var rows = grd_druglist.rows;
  1338. // var tims = 0;
  1339. // var drugtmspec = "";
  1340. // var drugtms = "";
  1341. // var sColCnt = grd_druglist.cols - grd_druglist.fixedcols - grd_colcnt;//시간 컬럼을 제외한 나머지 컬럼갯수 빼기(17)
  1342. // var sGrdCap = "";
  1343. // var prcpdd = model.getValue("/root/main/cond/orddd"); //처방일자(조회일)
  1344. // var meddays = "";
  1345. // var medtims = "";
  1346. // var cnt = 0;
  1347. // var sGrdCapDay = "";
  1348. // var sGrdCapTims = "";
  1349. // var execdd = "";
  1350. // var temp_drugtms = "";
  1351. // var temp_meddays = "";
  1352. // var timsYN = false;
  1353. // var daysYN = false;
  1354. //
  1355. // //그리드에 추가 할 컬럼 조사 및 정렬
  1356. // for(var i = 1; i <= rows - 2; i++){
  1357. // drugtmspec = model.getValue(xWardDrugListPath + "[" + i + "]/drugtmspec");
  1358. // tims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  1359. // if(drugtmspec != ""){
  1360. // for(var j = 1; j <= tims; j++){
  1361. // drugtms = drugtmspec.split(" ");
  1362. // temp_drugtms = drugtms[j-1]; //0900
  1363. // temp_meddays = getDateAddc(prcpdd, parseInt(drugtms[j-1] / 2400)); //20080425
  1364. //
  1365. // timsYN = careIsSearchString(medtims, temp_drugtms); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  1366. // daysYN = careIsSearchString(meddays, temp_meddays); //전체 문장에서 특정 문장이 있는지를 검사하는 함수
  1367. //
  1368. // //총컬럼갯수를 알기 위해서 전체 시간대를 찾는다.
  1369. // if(timsYN == false || daysYN == false){
  1370. // medtims += temp_drugtms + "^"; //전체 시간대
  1371. // meddays += temp_meddays + "^"; //전체 일자
  1372. // cnt++;
  1373. // }
  1374. // }
  1375. // }
  1376. // }
  1377. //
  1378. // addCol_Cnt = cnt;
  1379. // var sMedtims = sortHashKeys(medtims, cnt); //시간대 문자열 정렬(오름차순)
  1380. // var sMeddays = sortHashKeys(meddays, cnt); //일자 문자열 정렬(오름차순)
  1381. //
  1382. // var tempString = "";
  1383. // sGrdCap = grd_druglist.caption.split("|");
  1384. // //컬럼 숨김 계속 지정하기 위해...
  1385. // fSelectOpenMoe(); //투약기록 그리드 기본/펼치기 모드 이벤트(뒤의 마지막필드5개 숨기기)
  1386. //
  1387. // var temp_tims = 0;
  1388. // //컬럼추가
  1389. // for(var k = 1; k <= cnt; k++){
  1390. // grd_druglist.addColumn("ref:carecfactnm" + grd_druglist.cols + "; type:output; ", false);
  1391. // grd_druglist.colWidth(grd_druglist.cols - 1) = 50;
  1392. // tempString = sMeddays[k-1].toString();
  1393. // addCol_Array[k-1] = sMedtims[k-1];
  1394. // sGrdCapDay += tempString.substr(4,2) + "/" + tempString.substr(6,2) + "^";
  1395. // temp_tims = sMedtims[k-1] % 2400;
  1396. // temp_tims = Math.abs(Number(temp_tims)).toString();
  1397. // temp_tims = fCarec_GetFillZeno(temp_tims, 4,0);
  1398. // sGrdCapTims += temp_tims + "^";
  1399. // }
  1400. //
  1401. // var inst_cnt = 1;
  1402. // var tims = "";
  1403. // var drugtmspec = "";
  1404. // var prcphistno = "";
  1405. // var execprcpno = "";
  1406. // var execcarestatcd = "";
  1407. // var iudflag = "";
  1408. // var carecfact = "";
  1409. // var carecfactcd = "";
  1410. // var carecfactnm = "";
  1411. // var medrexistyn = "";
  1412. // var execprcpuniqno = "";
  1413. // var execdd = "";
  1414. // var prcpdd = ""
  1415. // var exectm = "";
  1416. // var signno = "";
  1417. // var signflag = "";
  1418. // var col_index = 0;
  1419. // var forarr = "";
  1420. // var prcphistno_array = "";
  1421. // var prcpuniqno_array = "";
  1422. // var prcp_array = "";
  1423. // var drugtmspeccal = "";
  1424. // var timesch = "";
  1425. // var drugdd = model.getValue("/root/main/cond/orddd");
  1426. // var tdrugdd = getDateAddc(drugdd, 1);
  1427. // var duty = model.getValue("/root/main/cond/duty");
  1428. // var calcdd = "";
  1429. // var medrexecdd = "";
  1430. // var medrexectm = "";
  1431. // var hiddenYN = new Array;
  1432. //
  1433. // //------------------------------
  1434. // //forarr : 자료존재 번호XML 태그
  1435. // //------------------------------
  1436. //
  1437. // ////////////alert ("getNodesetCount(xWardDrugListPath):" + getNodesetCount(xWardDrugListPath) )
  1438. // for(var x = 1; x <= getNodesetCount(xWardDrugListPath); x++){
  1439. // ////////////alert("addCol_Array.length:" + addCol_Array.length);
  1440. // for(var y = 0; y < addCol_Array.length; y++){
  1441. // ////////////alert("y:" + xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y));
  1442. // model.makeValue(xWardDrugListPath + "[" + x + "]/forarr" + (grd_colcnt + y), "");
  1443. // }
  1444. // }
  1445. //
  1446. // //필드숨김기
  1447. // for(var z = 0; z <= grd_colcnt + addCol_Cnt; z++){
  1448. // hiddenYN[z] = "true";
  1449. // }
  1450. //
  1451. // //------------------------------
  1452. // //for : 자료존재 번호에 대한 상세 정보 XML 태그
  1453. // //------------------------------
  1454. // //인스턴스 맵핑
  1455. // for(var m = 1; m <= getNodesetCount(xHiddenWardDrugPath); m){
  1456. // tims = model.getValue(xHiddenWardDrugPath + "[" + m + "]/tims");
  1457. // drugtmspec = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugtmspec").split(" ");
  1458. // drugtmspeccal = model.getValue(xWardDrugListPath + "[" + inst_cnt + "]/drugbasetmspec").split(" ");
  1459. // for(var n = 0; n < tims; n++){
  1460. // if(n == 0){
  1461. // prcp_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1462. // prcphistno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1463. // prcpuniqno_array = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1464. // }else{
  1465. // prcp_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1466. // prcphistno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1467. // prcpuniqno_array += " " + model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1468. // }
  1469. // execprcpno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpno");
  1470. // prcpdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcpdd");
  1471. // execcarestatcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execcarestatcd");
  1472. // carecfact = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfact");
  1473. // carecfactcd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/carecfactcd");
  1474. // execprcpuniqno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execprcpuniqno");
  1475. // medrexistyn = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexistyn");
  1476. // prcphistno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/prcphistno");
  1477. // execdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/execdd");
  1478. // exectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/exectm");
  1479. // signno = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signno");
  1480. // signflag = model.getValue(xHiddenWardDrugPath + "[" + m + "]/signflag");
  1481. // medrexecdd = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexecdd");
  1482. // medrexectm = model.getValue(xHiddenWardDrugPath + "[" + m + "]/medrexectm");
  1483. // if(medrexistyn == "Y"){
  1484. // iudflag = "-";
  1485. // }else if(medrexistyn == "N"){
  1486. // iudflag = "";
  1487. // }
  1488. // if(iudflag == "-" && signflag == "N"){
  1489. // carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1490. // }else{
  1491. // carecfactnm = model.getValue("/root/init/M0381list/M0381[cdid ='" + carecfactcd + "']/cdnm") + " " + carecfact;
  1492. // }
  1493. // //인스턴스 정보 set
  1494. // if(drugtmspec[n] != "" && drugtmspec!= ""){
  1495. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]", "");
  1496. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpno", execprcpno);
  1497. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execcarestatcd", execcarestatcd);
  1498. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/pastexeccarestatcd", execcarestatcd);
  1499. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/iudflag", iudflag);
  1500. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactnm", carecfactnm);
  1501. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfactcd", carecfactcd);
  1502. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/carecfact", carecfact);
  1503. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execprcpuniqno", execprcpuniqno);
  1504. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/prcphistno", prcphistno);
  1505. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/execdd", execdd);
  1506. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexecdd", medrexecdd);
  1507. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexectm", medrexectm);
  1508. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/medrexistyn", medrexistyn);
  1509. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signno", signno);
  1510. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/signflag", signflag);
  1511. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspec", drugtmspec[n]);
  1512. // model.makeValue(xWardDrugListPath + "[" + inst_cnt+ "]/for[" + (n+1) + "]/drugtmspeccal", drugtmspeccal[n]);
  1513. //
  1514. // col_index = (grd_colcnt + isSearchArrayIndex(addCol_Array, drugtmspec[n]));
  1515. // forarr = model.getValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index);
  1516. //
  1517. // timesch = fSetTimsSetting(forarr.split(" ").length);
  1518. //
  1519. // model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/carecfactnm" + col_index, timesch + carecfactnm);
  1520. // model.setValue(xWardDrugListPath + "[" + inst_cnt+ "]/forarr" + col_index, forarr + (n+1) + " ");
  1521. //
  1522. // calcdd = getDateAddc(drugdd, parseInt(drugtmspec[n] / 2400));
  1523. // if(calcdd == drugdd ||
  1524. // prcpdd == drugdd && calcdd == tdrugdd){
  1525. // hiddenYN[col_index] = "false";
  1526. // }
  1527. // }
  1528. // m++;
  1529. // }
  1530. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execprcpnoarr", prcp_array);
  1531. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/prcphistnoarr", prcphistno_array);
  1532. // model.makeValue(xWardDrugListPath + "[" + inst_cnt + "]/execuniqnoarr", prcpuniqno_array);
  1533. // inst_cnt++;
  1534. // }
  1535. //
  1536. // //조회조건의 (근무구분)에 대해서 자료 컬럼 중 근무시간에 해당하는 자료만 보이고 , 나머지는 숨김
  1537. // for(var a = grd_colcnt; a <= grd_colcnt + addCol_Cnt; a++){
  1538. // if(duty != "All"){//근무조건
  1539. // //dyty조건
  1540. // if(fCarec_JobTimeYN(sMedtims[a-grd_colcnt], duty) == "Y"){ //기준시간에서 Interval 시간계산(근무시간(D/E/N)
  1541. // grd_druglist.colhidden(a) = false;
  1542. // }else{
  1543. // grd_druglist.colhidden(a) = true;
  1544. // }
  1545. // }
  1546. // if(hiddenYN[a] == "true"){//투약일 조건
  1547. // grd_druglist.colhidden(a) = true;
  1548. // }
  1549. // }
  1550. //
  1551. //// //컬럼 타이틀 변경
  1552. //// grd_druglist.caption = grd_title1 + sGrdCapDay + "|" + grd_title2 + sGrdCapTims;
  1553. //
  1554. // //투약 시간 셀 color 변경
  1555. // fDrugCellColorChg();
  1556. //}
  1557. function fSetTimsSetting(len){
  1558. if(len == 1){
  1559. //return ①;
  1560. return '';
  1561. }else if(len == 2){
  1562. return '②';
  1563. }else if(len == 3){
  1564. return '③';
  1565. }else if(len == 4){
  1566. return '④';
  1567. }else if(len == 5){
  1568. return '⑤';
  1569. }else if(len == 6){
  1570. return '⑥';
  1571. }else if(len == 7){
  1572. return '⑦';
  1573. }else if(len == 8){
  1574. return '⑧';
  1575. }else{}
  1576. return '';
  1577. }
  1578. /**
  1579. * @group :
  1580. * @ver : 2007.06.25
  1581. * @by : 최경용
  1582. * @---------------------------------------------------
  1583. * @type : function
  1584. * @access : public
  1585. * @desc : Mix선택 이벤트
  1586. * @param :
  1587. * @return :
  1588. * @---------------------------------------------------
  1589. */
  1590. function fSettingMix(){
  1591. var row = ds_main_warddruginfo_warddruglist.rowposition;
  1592. var col = "";
  1593. var tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  1594. var orgprcpclscd = ds_main_warddruginfo_warddruglist.getColumn(row, "orgprcpclscd");
  1595. var drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(row, "drugtmspec");
  1596. var prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpmixno");
  1597. var mixflag = true;
  1598. //-----------(20080924)
  1599. //mixno cancel은 fSettingMixCancle에서 처리한다.
  1600. if( utlf_isNull(prcpmixno) ) return;
  1601. //-----------(20080924)
  1602. if( utlf_isNull(drugtmspec) ){
  1603. sysf_messageBox("기준시간을 ","C001");
  1604. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1605. return;
  1606. }
  1607. if(orgprcpclscd != "A6"){
  1608. sysf_messageBox("주사/수액만 Mix 할 수 있습니다.","C999");
  1609. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1610. return;
  1611. }
  1612. for( var i=0 ; i<row ; i++ ){
  1613. if( ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno") == prcpmixno &&
  1614. ds_main_warddruginfo_warddruglist.getColumn(i, "tims") != tims ){
  1615. mixflag = false;
  1616. }
  1617. }
  1618. if(mixflag == true){
  1619. for( var j=0 ; j<eval(xWardDrugListPath+row+"for").rowcount ; j++ ){
  1620. //#n개가 있어도 처음exip에만 mixno를 넣고 있군.0925
  1621. fChangeValueStatus(row, j);
  1622. ds_main_warddruginfo_warddruglist.rowposition = ds_main_warddruginfo_warddruglist.rowposition+1;
  1623. group3.grd_druglist.setCellPos(4);
  1624. group3.grd_druglist.setFocus();
  1625. }
  1626. }else if(mixflag == false){
  1627. sysf_messageBox("횟수가 동일한 처방만 Mix 할 수 있습니다.","C999");
  1628. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1629. }else{}
  1630. //////alert("mixno기록");
  1631. }
  1632. /**
  1633. * @group :
  1634. * @ver : 2007.06.25
  1635. * @by : 최경용
  1636. * @---------------------------------------------------
  1637. * @type : function
  1638. * @access : public
  1639. * @desc : Mix취소 이벤트
  1640. * @param :
  1641. * @return :
  1642. * @---------------------------------------------------
  1643. */
  1644. function fSettingMixCancle(){
  1645. //////alert("mixno삭제1");
  1646. var row = group3.grd_druglist.currentrow;
  1647. var drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(row, "drugtmspec").split(" ");
  1648. var tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  1649. ds_main_warddruginfo_warddruglist.setColumn(row, "prcpmixno", "");
  1650. for( var i=0 ; i<eval(xWardDrugListPath+row+"for").rowcount ; i++ ){
  1651. fChangeValueStatus(row, i);
  1652. }
  1653. //////alert("mixno삭제2");
  1654. }
  1655. /**
  1656. * @group :
  1657. * @ver : 2007.06.25
  1658. * @by : 최경용
  1659. * @---------------------------------------------------
  1660. * @type : function
  1661. * @access : public
  1662. * @desc : Remark등록
  1663. * @param :
  1664. * @return :
  1665. * @---------------------------------------------------
  1666. */
  1667. //변경없음
  1668. function fSetRemarkReg(){
  1669. var rows = group3.grd_druglist.rowcount;
  1670. var drugtmspec = "";
  1671. var tims = "";
  1672. var col = "";
  1673. var row = "";
  1674. var cnt = 0;
  1675. var execcarestatcd = "";
  1676. var forarr = "";
  1677. var timesch = "";
  1678. for( var i=0 ; i<group3.grd_druglist.selectcount ; i++ ){
  1679. for( var j=group3.grd_druglist.selectstartrow[i] ; j<=group3.grd_druglist.selectendrow[i] ; j++ ){
  1680. for( var k=group3.grd_druglist.selectstartcol[i] ; k<=group3.grd_druglist.selectendcol[i] ; k++ ){
  1681. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr" + col)) ){
  1682. ds_main_warddruginfo_warddruglist.addColumn("forarr" + col, "string");
  1683. }
  1684. col = k;
  1685. row = j;
  1686. drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(row, "drugtmspec").split(" ");
  1687. tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  1688. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(row, "forarr" + col)).split(" ");
  1689. if( !utlf_isNull(forarr) ){
  1690. for( var l=0 ; l<forarr.length-1 ; l++ ){
  1691. execcarestatcd = eval(xWardDrugListPath+row+"for").getColumn(forarr[l]-1, "execcarestatcd");
  1692. if( utlf_isNull(execcarestatcd) || execcarestatcd == "N" ){
  1693. sysf_messageBox("미확인 상태에서는 Remark등록을 ","E001");
  1694. return;
  1695. }else{
  1696. cnt++;
  1697. }
  1698. }
  1699. }
  1700. }
  1701. }
  1702. }
  1703. if(cnt == 0){
  1704. sysf_messageBox("Remark등록할 범위를 정확히","C002");
  1705. return;
  1706. }
  1707. var inst_row = group3.grd_druglist.currentrow;
  1708. var grd_row = group3.grd_druglist.currentrow;
  1709. var grd_col = group3.grd_druglist.currentcol;
  1710. var setRemarkInfo = "";
  1711. if(cnt == 1){
  1712. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr" + grd_col)) ){
  1713. ds_main_warddruginfo_warddruglist.addColumn("forarr" + grd_col, "string");
  1714. }
  1715. sRemarkIndex = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(inst_row, "forarr" + grd_col));
  1716. setRemarkInfo = dsf_getDsCSV(eval(xWardDrugListPath+inst_row+"for"), sRemarkIndex-1);
  1717. frmf_setParameter("SPMNR03400_param", setRemarkInfo);
  1718. }else{
  1719. frmf_setParameter("SPMNR03400_param1", "");
  1720. frmf_setParameter("SPMNR03400_param2", "");
  1721. frmf_setParameter("SPMNR03400_param4", "");
  1722. frmf_setParameter("SPMNR03400_param5", "");
  1723. }
  1724. frmf_modal("SPMNR03400","SPMNR03400",null,"","","","","","","","","","M"); //yjh : 커밋
  1725. var carecfactcd = frmf_getParameter("SPMNR03400_RtnParam1"); //간호사REMARK(상용REMARK코드)
  1726. var carecfact = frmf_getParameter("SPMNR03400_RtnParam2"); //간호전달사항(REMARK직접입력)
  1727. var carecfactnm = frmf_getParameter("SPMNR03400_RtnParam3"); //상용REMARK코드의 명칭+REMARK직접입력사항
  1728. var antiastrid = frmf_getParameter("SPMNR03400_RtnParam4");
  1729. var antiastrnm = frmf_getParameter("SPMNR03400_RtnParam5");
  1730. var paramYN = frmf_getParameter("SPMNR03400_RtnParamYN"); //리턴 여부
  1731. //alert(antiastrid);
  1732. frmf_setParameter("SPMNR03400_RtnParam1", "");
  1733. frmf_setParameter("SPMNR03400_RtnParam2", "");
  1734. frmf_setParameter("SPMNR03400_RtnParam3", "");
  1735. frmf_setParameter("SPMNR03400_RtnParam4", "");
  1736. frmf_setParameter("SPMNR03400_RtnParam5", "");
  1737. frmf_setParameter("SPMNR03400_RtnParamYN", "");
  1738. if(paramYN == "Y"){
  1739. //------------(20081205)
  1740. toprow = group3.grd_druglist.vscrollbar.max;
  1741. toprowflag = "Y";
  1742. //------------(20081205)
  1743. for( var i=0 ; i<group3.grd_druglist.selectcount ; i++ ){
  1744. for( var j=group3.grd_druglist.selectstartrow[i] ; j<=group3.grd_druglist.selectendrow[i] ; j++ ){
  1745. for( var k=group3.grd_druglist.selectstartcol[i] ; k<=group3.grd_druglist.selectendcol[i] ; k++ ){
  1746. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr" + col)) ){
  1747. ds_main_warddruginfo_warddruglist.addColumn("forarr" + col, "string");
  1748. }
  1749. col = k;
  1750. row = j;
  1751. drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(row, "drugtmspec").split(" ");
  1752. tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  1753. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(row, "forarr" + col)).split(" ");
  1754. timesch = fSetTimsSetting(forarr.length-1); //????
  1755. if( !utlf_isNull(forarr) ){
  1756. for( var l=0 ; l<forarr.length-1 ; l++ ){
  1757. //---------------(20081211)
  1758. //예방적항생제
  1759. var objDsxWardDrugListPath = eval(xWardDrugListPath+row+"for");
  1760. var preantiyn = objDsxWardDrugListPath.getColumn(forarr[l]-1, "preantiyn");
  1761. var preantimsg = "예방적항생제";
  1762. objDsxWardDrugListPath.setColumn(forarr[l]-1, "carecfactcd", carecfactcd);
  1763. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("carecfactnm" + col)) ){
  1764. ds_main_warddruginfo_warddruglist.addColumn("carecfactnm" + col, "string");
  1765. }
  1766. if (preantiyn == "Y") { //예방적항생제인경우
  1767. carecfactnm = fnReplace(carecfactnm,preantimsg,'');
  1768. carecfact = fnReplace(carecfact,preantimsg,'');
  1769. objDsxWardDrugListPath.setColumn(forarr[l]-1, "carecfactnm", carecfactnm + " " + preantimsg);
  1770. objDsxWardDrugListPath.setColumn(forarr[l]-1, "carecfact", carecfact + " " + preantimsg);
  1771. ds_main_warddruginfo_warddruglist.setColumn(row, "carecfactnm" + col, timesch + carecfactnm + " " + preantimsg);
  1772. objDsxWardDrugListPath.setColumn(forarr[l]-1, "antiastrid", antiastrid);
  1773. objDsxWardDrugListPath.setColumn(forarr[l]-1, "antiastrnm", antiastrnm);
  1774. } else {
  1775. objDsxWardDrugListPath.setColumn(forarr[l]-1, "carecfactnm", carecfactnm);
  1776. objDsxWardDrugListPath.setColumn(forarr[l]-1, "carecfact", carecfact);
  1777. ds_main_warddruginfo_warddruglist.setColumn(row, "carecfactnm" + col, timesch + carecfactnm);
  1778. objDsxWardDrugListPath.setColumn(forarr[l]-1, "antiastrid", antiastrid);
  1779. objDsxWardDrugListPath.setColumn(forarr[l]-1, "antiastrnm", antiastrnm);
  1780. }
  1781. //---------------(20081211)
  1782. //입력/수정 상태값 변경
  1783. fChangeValueStatus(row, forarr[l]-1);
  1784. }
  1785. }
  1786. }
  1787. }
  1788. }
  1789. }
  1790. ds_main_warddruginfo_warddruglist.rowposition = 0;
  1791. //------------------(20081205)
  1792. if (toprowflag == "Y") {
  1793. if( group3.grd_druglist.vscrollbar.max > toprow ){trace("1111");
  1794. group3.grd_druglist.vscrollbar.pos = toprow;
  1795. }
  1796. toprowflag = "N";
  1797. }
  1798. //------------------(20081205)
  1799. }
  1800. //function fSetRemarkReg_OLD(){
  1801. // var rows = grd_druglist.rows;
  1802. // var drugtmspec = "";
  1803. // var tims = "";
  1804. // var col = "";
  1805. // var row = "";
  1806. // var cnt = 0;
  1807. // var execcarestatcd = "";
  1808. // var forarr = "";
  1809. // var timesch = "";
  1810. // for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  1811. // col = grd_druglist.selectedCells.item(i).col;
  1812. // row = grd_druglist.selectedCells.item(i).row -1;
  1813. // drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1814. // tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1815. // forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1816. // if(forarr != ""){
  1817. // for(var j = 0; j < forarr.length-1; j++){
  1818. // execcarestatcd = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd");
  1819. // if(execcarestatcd == "" || execcarestatcd == "N"){
  1820. // messageBox("미확인 상태에서는 Remark등록을 ","E001");
  1821. // return;
  1822. // }else{
  1823. // cnt++;
  1824. // }
  1825. // }
  1826. // }
  1827. // }
  1828. // if(cnt == 0){
  1829. // messageBox("Remark등록할 범위를 정확히","C002");
  1830. // return;
  1831. // }
  1832. // var inst_row = grd_druglist.row - 1;
  1833. // var grd_row = grd_druglist.row;
  1834. // var grd_col = grd_druglist.col;
  1835. // var setRemarkInfo = "";
  1836. // if(cnt == 1){
  1837. // sRemarkIndex = model.getValue(xWardDrugListPath +"[" + inst_row + "]/forarr" + grd_col);
  1838. // setRemarkInfo = model.instances(0).selectNodes(xWardDrugListPath + "[" + inst_row + "]/for[" + sRemarkIndex + "]");
  1839. // setParameter("SPMNR03400_param", getNodeListCSV(setRemarkInfo));
  1840. // }else{
  1841. // setParameter("SPMNR03400_param1", "");
  1842. // setParameter("SPMNR03400_param2", "");
  1843. // }
  1844. // modal("SPMNR03400");
  1845. // var carecfactcd = getParameter("SPMNR03400_RtnParam1");
  1846. // var carecfact = getParameter("SPMNR03400_RtnParam2");
  1847. // var carecfactnm = getParameter("SPMNR03400_RtnParam3");
  1848. // var paramYN = getParameter("SPMNR03400_RtnParamYN");
  1849. // setParameter("SPMNR03400_RtnParam1", "");
  1850. // setParameter("SPMNR03400_RtnParam2", "");
  1851. // setParameter("SPMNR03400_RtnParam3", "");
  1852. // setParameter("SPMNR03400_RtnParamYN", "");
  1853. //
  1854. // if(paramYN == "Y"){
  1855. // for(var k = 0; k < grd_druglist.selectedCells.length; k++){
  1856. // col = grd_druglist.selectedCells.item(k).col;
  1857. // row = grd_druglist.selectedCells.item(k).row -1;
  1858. // drugtmspec = model.getValue(xWardDrugListPath + "[" + row + "]/drugtmspec").split(" ");
  1859. // tims = model.getValue(xWardDrugListPath + "[" + row + "]/tims");
  1860. // forarr = model.getValue(xWardDrugListPath + "[" + row + "]/forarr" + col).split(" ");
  1861. // timesch = fSetTimsSetting(forarr.length-1);
  1862. // if(forarr != ""){
  1863. // for(var l = 0; l < forarr.length-1; l++){
  1864. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactcd", carecfactcd);
  1865. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfactnm", carecfactnm);
  1866. // model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[l] + "]/carecfact", carecfact);
  1867. // model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, timesch + carecfactnm);
  1868. //
  1869. // //입력/수정 상태값 변경
  1870. // fChangeValueStatus(row, forarr[l]);
  1871. // }
  1872. // }
  1873. // }
  1874. // }
  1875. // grd_druglist.row = 1;
  1876. // model.refresh();
  1877. //}
  1878. /**
  1879. * @group :
  1880. * @ver : 2007.06.25
  1881. * @by : 최경용
  1882. * @---------------------------------------------------
  1883. * @type : function
  1884. * @access : public
  1885. * @desc : 기준시간 변경
  1886. * @param :
  1887. * @return :
  1888. * @---------------------------------------------------
  1889. */
  1890. //warddruginfo에는 정보가 부분만 있음(마스타정보와,상세중1첫번째 자료만 넘긴다)
  1891. function fSetDrugBaseTime(){
  1892. var inst_row= group3.grd_druglist.currentrow;
  1893. var rows = group3.grd_druglist.rowcount;
  1894. var cols = group3.grd_druglist.getCellCount("Body");
  1895. var tims = 0;
  1896. var count = 0;
  1897. //---------------(20080912)
  1898. var calctims = 0;
  1899. //---------------(20080912)
  1900. //임시INSTANCE제거
  1901. ds_temp_warddruginfo_warddruglist.clearData();
  1902. baseCol_Array = new Array;
  1903. if( group3.grd_druglist.selectcount > 0 ){
  1904. tims = ds_main_warddruginfo_warddruglist.getColumn(group3.grd_druglist.selectstartrow[0], "tims");
  1905. //---------------(20080912)
  1906. calctims = ds_main_warddruginfo_warddruglist.getColumn(group3.grd_druglist.selectstartrow[0], "calctims");
  1907. //---------------(20080912)
  1908. ds_temp_warddruginfo_warddruglist_for.clearData();
  1909. //횟수가 동일한 처방만 추출
  1910. for( var i=0 ; i<group3.grd_druglist.selectcount ; i++ ){
  1911. for( var j=group3.grd_druglist.selectstartrow[i] ; j<=group3.grd_druglist.selectendrow[i] ; j++ ){
  1912. row = j;
  1913. if( tims == ds_main_warddruginfo_warddruglist.getColumn(row, "tims") ){
  1914. //-----------------(20080912)
  1915. if(calctims == ds_main_warddruginfo_warddruglist.getColumn(row, "calctims") ){
  1916. if(!isSearchArrayString(baseCol_Array, row)){
  1917. baseCol_Array[baseCol_Array.length] = row;
  1918. //xWardDrugListPath +"[" + row + "]" ==> "/root/temp/warddruginfo"
  1919. var nRow = ds_temp_warddruginfo_warddruglist.addRow();
  1920. ds_temp_warddruginfo_warddruglist.copyRow(nRow, ds_main_warddruginfo_warddruglist, row);
  1921. for( var k=0 ; k<eval(xWardDrugListPath+row+"for").rowcount ; k++ ){
  1922. var nRow2 = ds_temp_warddruginfo_warddruglist_for.addRow();
  1923. ds_temp_warddruginfo_warddruglist_for.copyRow(nRow2, eval(xWardDrugListPath+row+"for"), k);
  1924. }
  1925. }
  1926. } else {
  1927. sysf_messageBox("외용제끼리 별도로 처리하십시오","I9999");
  1928. return;
  1929. }
  1930. //-----------------(20080912)
  1931. }else{
  1932. sysf_messageBox("횟수가 동일한 처방만 동시에 기준시간을 변경할 수 있습니다.","I9999");
  1933. return;
  1934. }
  1935. var objDsxWardDrugListPath = eval(xWardDrugListPath+row+"for");
  1936. for( var k=0 ; k<objDsxWardDrugListPath.rowcount ; k++ ){
  1937. //---------(20081211)
  1938. //예방적항생제인 경우를 생각해봐야 할것 같음(미확인이나 저장을 해야하는 경우가 있는것임)
  1939. if( objDsxWardDrugListPath.getColumn(k, "medrexecdd") != "00000000"){
  1940. count++;
  1941. }
  1942. //---------(20081211)
  1943. }
  1944. }
  1945. }
  1946. }
  1947. if( ds_temp_warddruginfo_warddruglist.rowcount == 1 ){
  1948. //-----------------(20080912)
  1949. if( count == ds_temp_warddruginfo_warddruglist.getColumn(0, "tims") ){
  1950. sysf_messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1951. return;
  1952. } else if(count == ds_temp_warddruginfo_warddruglist.getColumn(0, "calctims") ){
  1953. //외용제는 caletims가 무조건 1이고 , tims은 1회이상일수 있다.
  1954. sysf_messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  1955. return;
  1956. }
  1957. //-----------------(20080912)
  1958. }else if( ds_temp_warddruginfo_warddruglist.rowcount > 1 ){
  1959. if(count > 0){
  1960. sysf_messageBox("선택한 처방 중 이미 기록된 내용이 있어 함께 변경할 수","I004");
  1961. return;
  1962. }
  1963. }
  1964. //기준시간 변경하기 전 변경된 내용을 저장
  1965. if(fChangeDrugInfo() == "true"){
  1966. sysf_messageBox("변경된 내용을 저장 후 진행하세요.","I9999");
  1967. return;
  1968. }
  1969. //변경된 시간은 넘어가지 않음(문제점)
  1970. //warddruginfo에는 화면에 보여줄 자료만 있으므
  1971. //var setDrugBaseTimeList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist");
  1972. //var setDrugBaseTimeDetlList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist/for");
  1973. frmf_setParameter("SPMNR03300_param1", dsf_getDsCSV(ds_temp_warddruginfo_warddruglist));
  1974. frmf_setParameter("SPMNR03300_param2", dsf_getDsCSV(ds_temp_warddruginfo_warddruglist_for));
  1975. //------------(20081205)
  1976. //toprow = grd_druglist.toprow;
  1977. toprowflag = "Y";
  1978. //------------(20081205)
  1979. frmf_modal("SPMNR03300","SPMNR03300",null,"","","","","","","","","","M"); //yjh : 커밋
  1980. var RtnParamYN = frmf_getParameter("SPMNR03300_RtnParamYN");
  1981. fClickDrugListBefore(); //------------(20081031)
  1982. if(RtnParamYN == "Y"){
  1983. if(screen_mode == "pat"){
  1984. fClickDrugList(screen_mode, group3.swtpatList.pat.grd_patlist.currentrow);
  1985. }else if(screen_mode == "act"){
  1986. fClickDrugList(screen_mode, group3.swtpatList.act.grd_actlist.currentrow);
  1987. }
  1988. }
  1989. fClickDrugListAfter(); //------------(20081031)
  1990. //------------------(20081205)test중
  1991. //fClickDrugListAfter 모듈안에 아래의 기능이 있음
  1992. //if (toprowflag == "Y") {
  1993. // if (grd_druglist.rows > toprow) {
  1994. // grd_druglist.toprow = toprow;
  1995. // }
  1996. // toprowflag = "N";
  1997. //}
  1998. //model.refresh();
  1999. //------------------(20081205)
  2000. frmf_setParameter("SPMNR03300_param", "");
  2001. frmf_setParameter("SPMNR03300_RtnParamYN", "");
  2002. }
  2003. //function fSetDrugBaseTime_OLD(){
  2004. //
  2005. // var inst_row = grd_druglist.row - 1;
  2006. // var rows = grd_druglist.rows;
  2007. // var cols = grd_druglist.cols;
  2008. // var tims = 0;
  2009. // var count = 0;
  2010. //
  2011. // model.removeNodeSet("/root/temp/warddruginfo/warddruglist");
  2012. // baseCol_Array = new Array;
  2013. //
  2014. // if(grd_druglist.selectedCells.length > 0){
  2015. // tims = model.getValue(xWardDrugListPath + "[" + (grd_druglist.selectedCells.item(0).row -1) + "]/tims");
  2016. // for(var i = 0; i < grd_druglist.selectedCells.length; i++){
  2017. // row = grd_druglist.selectedCells.item(i).row -1;
  2018. // if(tims == model.getValue(xWardDrugListPath +"[" + row + "]/tims")){
  2019. // if(!isSearchArrayString(baseCol_Array, row)){
  2020. // baseCol_Array[baseCol_Array.length] = row;
  2021. // model.duplicate("/root/temp/warddruginfo", xWardDrugListPath +"[" + row + "]");
  2022. // }
  2023. // }else{
  2024. // messageBox("횟수가 동일한 처방만 동시에 기준시간을 변경할 수 있습니다.","I9999");
  2025. // return;
  2026. // }
  2027. // for(var j = 1; j <= getNodesetCount(xWardDrugListPath + "[" + row + "]/for"); j++){
  2028. // if(model.getValue(xWardDrugListPath + "[" + row + "]/for[" + j + "]/medrexecdd") != "00000000"){
  2029. // count++;
  2030. // }
  2031. // }
  2032. // }
  2033. // }
  2034. // if(getNodesetCount("/root/temp/warddruginfo/warddruglist") == 1){
  2035. // if(count == model.getValue("/root/temp/warddruginfo/warddruglist/tims")){
  2036. // messageBox("실시가 마무리 된 처방은 기준시간을 변경할 수","I004");
  2037. // return;
  2038. // }
  2039. // }else if(getNodesetCount("/root/temp/warddruginfo/warddruglist") > 1){
  2040. // if(count > 0){
  2041. // messageBox("선택한 처방 중 이미 기록된 내용이 있어 함께 변경할 수","I004");
  2042. // return;
  2043. // }
  2044. // }
  2045. // //기준시간 변경하기 전 변경된 내용을 저장
  2046. // if(fChangeDrugInfo() == "true"){
  2047. // messageBox("변경된 내용을 저장 후 진행하세요.","I9999");
  2048. // return;
  2049. // }
  2050. // var setDrugBaseTimeList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist");
  2051. // var setDrugBaseTimeDetlList = model.instances(0).selectNodes("/root/temp/warddruginfo/warddruglist/for");
  2052. // setParameter("SPMNR03300_param1", getNodeListCSV(setDrugBaseTimeList));
  2053. // setParameter("SPMNR03300_param2", getNodeListCSV(setDrugBaseTimeDetlList));
  2054. // modal("SPMNR03300");
  2055. // var RtnParamYN = getParameter("SPMNR03300_RtnParamYN");
  2056. // if(RtnParamYN == "Y"){
  2057. // if(screen_mode == "pat"){
  2058. // fClickDrugList(screen_mode, grd_patlist.row);
  2059. // }else if(screen_mode == "act"){
  2060. // fClickDrugList(screen_mode, grd_actlist.row);
  2061. // }
  2062. // }
  2063. // setParameter("SPMNR03300_param", "");
  2064. // setParameter("SPMNR03300_RtnParamYN", "");
  2065. //}
  2066. /**
  2067. * @group :
  2068. * @ver : 2007.06.25
  2069. * @by : 최경용
  2070. * @---------------------------------------------------
  2071. * @type : function
  2072. * @access : public
  2073. * @desc : 미확인(Acting 취소)
  2074. * @param :
  2075. * @return :
  2076. * @---------------------------------------------------
  2077. */
  2078. function fSetNurseConfrim(){
  2079. fSetDrug("N");
  2080. }
  2081. /**
  2082. * @group :
  2083. * @ver : 2008.12.01
  2084. * @by : 김보성
  2085. * @---------------------------------------------------
  2086. * @type : function
  2087. * @access : public
  2088. * @desc : 미확인(예방적항생제)(Acting 취소)
  2089. * @param :
  2090. * @return :
  2091. * @---------------------------------------------------
  2092. */
  2093. //20081201
  2094. function fSetNurseConfrimPreAnti(){
  2095. fSetDrug("M");
  2096. }
  2097. /**
  2098. * @group :
  2099. * @ver : 2007.06.25
  2100. * @by : 최경용
  2101. * @---------------------------------------------------
  2102. * @type : function
  2103. * @access : public
  2104. * @desc : 투약 이벤트
  2105. * @param :
  2106. * @return :
  2107. * @---------------------------------------------------
  2108. */
  2109. function fSetDrugActing(){
  2110. fSetDrug("R");
  2111. }
  2112. /**
  2113. * @group :
  2114. * @ver : 2007.06.25
  2115. * @by : 최경용
  2116. * @---------------------------------------------------
  2117. * @type : function
  2118. * @access : public
  2119. * @desc : 투약X 반환가능
  2120. * @param :
  2121. * @return :
  2122. * @---------------------------------------------------
  2123. */
  2124. function fSetRtnPosActing(){
  2125. fSetDrug("P");
  2126. }
  2127. /**
  2128. * @group :
  2129. * @ver : 2007.06.25
  2130. * @by : 최경용
  2131. * @---------------------------------------------------
  2132. * @type : function
  2133. * @access : public
  2134. * @desc : 투약X 반환불가
  2135. * @param :
  2136. * @return :
  2137. * @---------------------------------------------------
  2138. */
  2139. function fSetRtnImposActing(){
  2140. fSetDrug("I");
  2141. }
  2142. /**
  2143. * @group :
  2144. * @ver : 2007.06.25
  2145. * @by : 최경용
  2146. * @---------------------------------------------------
  2147. * @type : function
  2148. * @access : public
  2149. * @desc : 퇴원당일 남은약
  2150. * @param :
  2151. * @return :
  2152. * @---------------------------------------------------
  2153. */
  2154. function fSetLeaveRemain(){
  2155. fSetDrug("L");
  2156. }
  2157. /**
  2158. * @group :
  2159. * @ver : 2007.06.25
  2160. * @by : 최경용
  2161. * @---------------------------------------------------
  2162. * @type : function
  2163. * @access : public
  2164. * @desc : Acting이벤트시 공통 함수
  2165. * @param :
  2166. * @return :
  2167. * @---------------------------------------------------
  2168. */
  2169. function fSetDrug(actingflag, nCol){
  2170. var rows = group3.grd_druglist.rowcount;
  2171. var tims = "";
  2172. var drugtmspec = "";
  2173. var col = "";
  2174. var row = "";
  2175. var dccomcountyn = "";
  2176. var messageyn = "N";
  2177. var messageactyn = "N";
  2178. var messagenarcyn = "N";
  2179. var messagenarccnfmyn = "N";
  2180. var messagenarcstat1yn = "N";
  2181. var messagenarcstat5yn = "N";
  2182. var prnmessageyn = "N";
  2183. var medrexecdd = "";
  2184. var medrexectm = "";
  2185. var prcpdd = "";
  2186. var prcpno = "";
  2187. var issdeptcd = ""; //2011.10.20 KJS 추가
  2188. var psydept = ""; //2011.10.20 KJS 추가
  2189. var for_arr = "";
  2190. var cell_color = "";
  2191. var careprnexecflag = "";
  2192. var spcldrug = "";
  2193. var sprcphistno = "";
  2194. var sexecprcpno = "";
  2195. var sexecprcpuniqno = "";
  2196. var sinstcd = sysf_getUserInfo("dutplceinstcd");
  2197. var rtnmsg = "";
  2198. var rtnstat = "";
  2199. var rtnprcpcd = "";
  2200. var prcpkindnm = "";
  2201. var careinrmdd = utlf_transNullToEmpty(ds_main_paminfo_pamlist.getColumn(0, "careinrmdd"));
  2202. var careinrmtm = utlf_transNullToEmpty(ds_main_paminfo_pamlist.getColumn(0, "careinrmtm"));
  2203. var careinrmdd2 = "";
  2204. var careinrmtm2 = "";
  2205. var acttimeflag = ds_main_cond.getColumn(0, "acttimeflag");
  2206. var medrexecdd = ds_main_cond.getColumn(0, "currentday");
  2207. var medrexectm = ds_main_cond.getColumn(0, "currenttime");
  2208. var calcdd = utlf_transNullToEmpty(ds_main_paminfo_pamlist.getColumn(0, "calcdd"));
  2209. var calctm = utlf_transNullToEmpty(ds_main_paminfo_pamlist.getColumn(0, "calctm"));
  2210. var calcdd2 = "";
  2211. var calctm2 = "";
  2212. var anticheck = "";
  2213. //if( !utlf_isNull(careinrmdd) ){
  2214. if( careinrmdd != null || careinrmdd != "" ){
  2215. careinrmdd2 = careinrmdd.substr(4,2)+"/"+careinrmdd.substr(6,2);
  2216. }
  2217. //if( !utlf_isNull(careinrmtm) ){
  2218. if( careinrmtm != null || careinrmtm != "" ){
  2219. careinrmtm2 = careinrmtm.substr(0,2)+":"+careinrmtm.substr(2,2);
  2220. }
  2221. //if( !utlf_isNull(calcdd2) ){
  2222. if( calcdd2 != null || calcdd2 != "" ){
  2223. calcdd2 = calcdd.substr(4,2)+"/"+calcdd.substr(6,2);
  2224. }
  2225. //if( !utlf_isNull(calctm2) ){
  2226. if( calctm2 != null || calctm2 != "" ){
  2227. calctm2 = calctm.substr(0,2)+":"+calctm.substr(2,2);
  2228. }
  2229. var nSelectcount = 0;
  2230. if( utlf_isNull(nCol) ){
  2231. nSelectcount = group3.grd_druglist.selectcount;
  2232. }else{
  2233. nSelectcount = 1;
  2234. }
  2235. //그리드에서 선택상태인 셀들의 collection 객체를 반환하는 속성이다
  2236. for( var i=0 ; i<nSelectcount ; i++ ){
  2237. var nSelectstartrow = -1;
  2238. var nSelectendrow = -1;
  2239. var nSelectstartcol = -1;
  2240. var nSelectendcol = -1;
  2241. if( utlf_isNull(nCol) ){
  2242. nSelectstartrow = group3.grd_druglist.selectstartrow[i];
  2243. nSelectendrow = group3.grd_druglist.selectendrow[i];
  2244. nSelectstartcol = group3.grd_druglist.selectstartcol[i];
  2245. nSelectendcol = group3.grd_druglist.selectendcol[i];
  2246. }else{
  2247. nSelectstartrow = 0;
  2248. nSelectendrow = ds_main_warddruginfo_warddruglist.rowcount-1;
  2249. nSelectstartcol = nCol;
  2250. nSelectendcol = nCol;
  2251. }
  2252. var bFor = false;
  2253. for( var l=nSelectstartrow ; l<=nSelectendrow ; l++ ){
  2254. if( bFor ){
  2255. break;
  2256. }
  2257. for( var k=nSelectstartcol ; k<=nSelectendcol ; k++ ){
  2258. if( 23 < k ){ //yjh : 그리드 동적컬럼 이외 컬럼들이 에러발생으로 추가
  2259. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr" + col)) ){
  2260. ds_main_warddruginfo_warddruglist.addColumn("forarr" + col, "string");
  2261. }
  2262. col = k;
  2263. row = l;
  2264. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+col)) ){
  2265. cell_color = "";
  2266. }else{
  2267. cell_color = ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col);
  2268. }
  2269. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(row, "forarr" + col)).split(" ");
  2270. tims = ds_main_warddruginfo_warddruglist.getColumn(row, "tims");
  2271. dccomcountyn = ds_main_warddruginfo_warddruglist.getColumn(row, "dccomcountyn");
  2272. prcpdd = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpdd");
  2273. prcpno = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpno");
  2274. issdeptcd = ds_main_warddruginfo_warddruglist.getColumn(row, "issdeptcd");
  2275. psydept = ds_main_warddruginfo_warddruglist.getColumn(row, "psydept");
  2276. prcpkindnm = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpkindnm");
  2277. prcpgenrflag = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpgenrflag");
  2278. anticheck = ds_main_warddruginfo_warddruglist.getColumn(row, "anticheck");
  2279. var pid = ds_main_warddruginfo_warddruglist.getColumn(row, "pid");
  2280. var indd = ds_main_warddruginfo_warddruglist.getColumn(row, "indd");
  2281. var cretno = ds_main_warddruginfo_warddruglist.getColumn(row, "cretno");
  2282. var prcpcd = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpcd");
  2283. var dispdd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(row, "dispddarray"));
  2284. var disptm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(row, "disptmarray"));
  2285. var idx = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(row, "forarr" + col)).replace(/^\s*/,'').replace(/\s*$/, '');
  2286. var arr = dispdd.split(' ');
  2287. var selectdd = arr[idx-1];
  2288. var arr2 = disptm.split(' ');
  2289. var selecttm = arr2[idx-1];
  2290. //----------------------------------------------- 투약기록일시 제어
  2291. // 병동 투약기록은 입실시간 이후
  2292. if(prcpgenrflag == 'I'){
  2293. if (acttimeflag == "true") {
  2294. if(careinrmdd > medrexecdd) {
  2295. sysf_messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2296. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2297. bFor = true;
  2298. break;
  2299. } else if (careinrmdd == medrexecdd) {
  2300. if(careinrmtm > medrexectm){
  2301. sysf_messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2302. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2303. bFor = true;
  2304. break;
  2305. }
  2306. }
  2307. } else {
  2308. if(careinrmdd > selectdd) {
  2309. sysf_messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2310. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2311. bFor = true;
  2312. break;
  2313. } else if(careinrmdd == selectdd){
  2314. if (careinrmtm > selecttm) {
  2315. sysf_messageBox("입실시간은 "+careinrmdd2+"일 "+careinrmtm2+"시 입니다.\n입실시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2316. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2317. bFor = true;
  2318. break;
  2319. }
  2320. }
  2321. }
  2322. } else {trace(calcdd2+"<>"+calctm2);
  2323. // 병동 외 투약기록은 내원시간 이후
  2324. if(acttimeflag == "true") {
  2325. if(calcdd > medrexecdd) {
  2326. sysf_messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2327. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2328. bFor = true;
  2329. break;
  2330. } else if(calcdd == medrexecdd) {
  2331. if(calctm > medrexectm) {
  2332. sysf_messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2333. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2334. bFor = true;
  2335. break;
  2336. }
  2337. }
  2338. } else {
  2339. if(calcdd > selectdd) {
  2340. sysf_messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2341. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2342. bFor = true;
  2343. break;
  2344. } else if (calcdd == selectdd) {
  2345. if (calctm > selecttm) {
  2346. sysf_messageBox("내원시간은 "+calcdd2+"일 "+calctm2+"시 입니다.\n내원시간 이전 시간으로 투약기록이 불가합니다.\n기준시간을 변경하세요.", "I");
  2347. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2348. bFor = true;
  2349. break;
  2350. }
  2351. }
  2352. }
  2353. }
  2354. //----------------------------------------------- 투약기록일시 제어
  2355. //-----------(20081011)
  2356. //prcpdd = model.getValue(xWardDrugListPath + "[" + row + "]/prcpdd");
  2357. var prcphopedd = ds_main_warddruginfo_warddruglist.getColumn(row, "prcphopedd");
  2358. //-----------(20081011)
  2359. careprnexecflag = ds_main_warddruginfo_warddruglist.getColumn(row, "careprnexecflag");
  2360. spcldrug = ds_main_warddruginfo_warddruglist.getColumn(row, "spcldrug");
  2361. //--------------------------------------------------------------------------(20080913)
  2362. var sdrughang = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpkindnm");
  2363. var prcphistcd = ds_main_warddruginfo_warddruglist.getColumn(row, "prcphistcd");
  2364. var sdrughangflag = "";
  2365. if ( sdrughang.indexOf('항암') != -1 ) {
  2366. sdrughangflag = "Y"; //항암
  2367. } else {
  2368. sdrughangflag = "N";
  2369. }
  2370. ////////////alert(actingflag + ":" + sdrughang + ":" + sdrughangflag + ":" +prcphistcd);
  2371. //항암프로토콜로 발생된 것은 검정색 D/C인 경우만 반환가능을 지정할수 있다.
  2372. if(sdrughangflag == "Y" && actingflag == "P" && prcphistcd != "D" && prcphistcd != "E" ){
  2373. if(messageyn == "N"){
  2374. sysf_messageBox("항암 처방은 의사D/C이전에는 투약X 반환가능을 지정 할 수","I004");
  2375. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2376. messageyn = "Y";
  2377. }
  2378. } else if( actingflag == "P" && (prcpkindnm == "PW" || prcpkindnm == " PW" || prcpkindnm == "P+S" || prcpkindnm ==" P+S") ) {
  2379. //20120413_KNUH_Start 파우더일경우 반환가능 입력하지 못하도록 수정.
  2380. if(messageyn == "N") {
  2381. sysf_messageBox("Powder 처방은 투약X 반환가능을 지정 할 수", "I004");
  2382. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2383. messageyn = "Y";
  2384. }
  2385. } else if(careprnexecflag == "P" && (actingflag == "P" || actingflag == "L")) { //prn처방에 대한 action시
  2386. //if(careprnexecflag == "P" && (actingflag == "P" || actingflag == "L")){ //prn처방에 대한 action시
  2387. //--------------------------------------------------------------------------(20080913)
  2388. if(prnmessageyn == "N"){
  2389. sysf_messageBox("PRN 처방은 투약X 반환가능, 퇴원당일 남은약을 지정 할 수","I004");
  2390. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2391. prnmessageyn = "Y";
  2392. }
  2393. } else if(dccomcountyn == "Y" && !utlf_isNull(cell_color) && cell_color != "white") {
  2394. if(messageyn == "N"){
  2395. sysf_messageBox("D/C확정된 처방은 변경 할 수","I004");
  2396. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2397. messageyn = "Y";
  2398. }
  2399. // } else if( narcrtnstat == "2" && (actingflag == "N" || actingflag == "P")){ //마약반납확인 후 액팅수정(미확인/투약X-반환가능)불가 정상투약/투약X-반환불가는 잔량이 수정되지 않으므로 기록수정가능
  2400. // //--------------------------------------------------------------------------(20090507)
  2401. // if(messageyn == "N"){
  2402. // messageBox("마약 잔량반납이 이루어진 처방은 미확인, 투약X 반환가능으로 수정 할 수","I004");
  2403. // messageyn = "Y";
  2404. // }
  2405. } else if (anticheck == "N") {
  2406. // 승인 상태가 아닌 제한항생제 투약기록 제어 2012.12.10 KJS
  2407. /* [anticheck] Y: 승인, N: 미승인, Normal: 제한항생제 아님 */
  2408. sysf_messageBox("승인이나 차용불출 상태가 아닌 제한항생제는 투약기록 할 수","I004");
  2409. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2410. messageyn = "Y";
  2411. } else if(dccomcountyn == "N" && !utlf_isNull(cell_color) && cell_color != "white") {
  2412. for(var j = 0; j < forarr.length-1; j++){
  2413. rtnstat = "";
  2414. var objDsxWardDrugListPath = eval(xWardDrugListPath+row+"for");
  2415. var execprcpno = objDsxWardDrugListPath.getColumn(forarr[j]-1, "execprcpno");
  2416. var execdd = objDsxWardDrugListPath.getColumn(forarr[j]-1, "execdd");
  2417. var execcarestatcd = objDsxWardDrugListPath.getColumn(forarr[j]-1, "execcarestatcd");
  2418. if( !utlf_isNull(forarr[j]) ){
  2419. if( actingflag == objDsxWardDrugListPath.getColumn(forarr[j]-1, "execcarestatcd") ){
  2420. if(messageactyn == "N"){
  2421. sysf_messageBox("동일한 투약기록을 할 수","I004");
  2422. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2423. messageactyn = "Y";
  2424. }
  2425. }
  2426. /*
  2427. else if((execcarestatcd=="N")&&(execdd!="00000000"&&execdd!=""&&execdd!="-")){
  2428. // 간호사가 발행한 시행부서 처방의 prcpauthflag가 '0'으로 발행되어 임시로 메세지처리로 사용자오류 막기위함(김숙인ITC와 이야기함)_20090630(ByJA)
  2429. messageBox("이미 투약이 된 시행부서처방입니다.\n정보지원팀으로 연락하여 처방내역을 삭제하시기바랍니다.","I");
  2430. }
  2431. */
  2432. else {
  2433. fJudgCheck(pid, indd, cretno, prcpcd, prcpno, execprcpno, execdd, actingflag);
  2434. if (spcldrug == "M" ) {
  2435. sprcphistno = objDsxWardDrugListPath.getColumn(forarr[j]-1, "prcphistno");
  2436. sexecprcpno = objDsxWardDrugListPath.getColumn(forarr[j]-1, "execprcpno");
  2437. sexecprcpuniqno = objDsxWardDrugListPath.getColumn(forarr[j]-1, "execprcpuniqno");
  2438. ds_endsave_endcond.setColumn(0, "prcpdd", prcpdd);
  2439. ds_endsave_endcond.setColumn(0, "prcpno", prcpno);
  2440. ds_endsave_endcond.setColumn(0, "prcphistno", sprcphistno);
  2441. ds_endsave_endcond.setColumn(0, "execprcpno", sexecprcpno);
  2442. ds_endsave_endcond.setColumn(0, "execprcpuniqno", sexecprcpuniqno);
  2443. ds_endsave_endcond.setColumn(0, "instcd", sinstcd);
  2444. ds_endsave_endcond.setColumn(0, "srchflag", "narc");
  2445. //--------(20101105) 경북대 s1
  2446. var sPathEndCond2 = "/root/endsave2/endcond2"; //enddd 확인 결과(조회)
  2447. ds_endsave2_endcond2.setColumn(0, "prcpdd", ds_endsave_endcond.getColumn(0, "prcpdd"));
  2448. ds_endsave2_endcond2.setColumn(0, "prcpno", ds_endsave_endcond.getColumn(0, "prcpno"));
  2449. ds_endsave2_endcond2.setColumn(0, "prcphistno", ds_endsave_endcond.getColumn(0, "prcphistno"));
  2450. ds_endsave2_endcond2.setColumn(0, "execprcpno", ds_endsave_endcond.getColumn(0, "execprcpno"));
  2451. ds_endsave2_endcond2.setColumn(0, "execprcpuniqno", ds_endsave_endcond.getColumn(0, "execprcpuniqno"));
  2452. ds_endsave2_endcond2.setColumn(0, "instcd", ds_endsave_endcond.getColumn(0, "instcd"));
  2453. ds_endsave2_endcond2.setColumn(0, "srchflag", ds_endsave_endcond.getColumn(0, "srchflag"));
  2454. //--------(20101105) 경북대 e1
  2455. var oParam = {};
  2456. oParam.id = "TRMNR00610";
  2457. oParam.service = "caremedirecapp.CareMediRec";
  2458. oParam.method = "reqGetEndddList";
  2459. oParam.inds = "endcond=ds_endsave_endcond";
  2460. oParam.outds = "ds_endsave_endresult=endresult ds_endsave_narcresult=narcresult";
  2461. oParam.async = false;
  2462. //oParam.callback = "cf_TRMNR00610";
  2463. tranf_submit(oParam);
  2464. //--------(20101105) 경북대 s2
  2465. var oParam = {};
  2466. oParam.id = "TRMNR00611";
  2467. oParam.service = "caremedirecapp.CareMediRec";
  2468. oParam.method = "reqGetEndddList2";
  2469. oParam.inds = "endcond2=ds_endsave2_endcond2";
  2470. oParam.outds = "ds_endsave2_narcresult2=narcresult2";
  2471. oParam.async = false;
  2472. //oParam.callback = "cf_TRMNR00611";
  2473. tranf_submit(oParam);
  2474. var snarcstat = ds_endsave2_narcresult2.getColumn(0, "narcstat");
  2475. //--------(20101105) 경북대 e2
  2476. if ( ds_endsave_narcresult.rowcount > 0 ){
  2477. rtnstat = ds_endsave_narcresult.getColumn(0, "rtnstat");
  2478. rtnprcpcd = ds_endsave_narcresult.getColumn(0, "prcpcd");
  2479. }
  2480. }
  2481. var sExprBack = group3.grd_druglist.getCellProperty("Body", col, "background").replace("'')", "");
  2482. if ( !utlf_isNull(rtnstat)
  2483. && ( rtnstat == "1" && (actingflag == "N" || actingflag == "P" || actingflag == "I" || objDsxWardDrugListPath.getColumn(forarr[j]-1, "execcarestatcd") == "I")
  2484. || rtnstat == "2" && (actingflag == "N" || actingflag == "P" || actingflag == "I" || objDsxWardDrugListPath.getColumn(forarr[j]-1, "execcarestatcd") == "I"))
  2485. ) {////마약반납확인 후 액팅수정(미확인/투약X-반환가능/투약X-반환불가)불가 정상투약/퇴원당일남은약는 잔량이 수정되지 않으므로 기록수정가능
  2486. // if ( spcldrug == "M" && (actingflag == "N" || actingflag == "P") ){////마약반납확인 후 액팅수정(미확인/투약X-반환가능)불가 정상투약/투약X-반환불가는 잔량이 수정되지 않으므로 기록수정가능
  2487. if ( rtnstat == "1" || utlf_isNull(rtnstat)){
  2488. if (rtnstat == "1" && messagenarcyn == "N"){
  2489. rtnmsg = sysf_messageBox("잔량이 신청된 마약처방이 존재합니다. \n 투약기록 수정시 잔량신청이 취소됩니다. \n 투약기록 ","Q003");
  2490. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2491. messagenarcyn = "Y";
  2492. }
  2493. if ( (messagenarcyn == "Y" && rtnmsg == "6") ){
  2494. if(actingflag == "P"){
  2495. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2496. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2497. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2498. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2499. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2500. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2501. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ";
  2502. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", yellowishgreen, row);
  2503. } else if(actingflag == "I"){
  2504. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2505. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2506. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2507. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2508. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2509. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2510. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+red+"' : ";
  2511. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", red, row);
  2512. } else if(actingflag == "R"){
  2513. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2514. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2515. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2516. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2517. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2518. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2519. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ";
  2520. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", yellow, row);
  2521. } else if(actingflag == "L"){
  2522. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2523. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2524. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2525. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2526. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2527. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2528. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ";
  2529. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", sky, row);
  2530. }else if(actingflag == "N"){
  2531. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2532. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2533. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2534. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2535. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2536. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2537. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ";
  2538. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", gray, row);
  2539. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("carecfactnm" + col)) ){
  2540. ds_main_warddruginfo_warddruglist.addColumn("carecfactnm" + col, "string");
  2541. }
  2542. //주석
  2543. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfactnm", "");
  2544. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfactcd", "");
  2545. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfact", "");
  2546. ds_main_warddruginfo_warddruglist.setColumn(row, "carecfactnm" + col, "");
  2547. //flag
  2548. objDsxWardDrugListPath.setColumn(forarr[j]-1, "preantiyn", "N");
  2549. }
  2550. //입력/수정 상태값 변경
  2551. fChangeValueStatus(row, forarr[j]-1);
  2552. objDsxWardDrugListPath.setColumn(forarr[j]-1, "execcarestatcd", actingflag);
  2553. //----------(20081211)확인중
  2554. //미확인 또는 예방적항생제(미확인) : 둘다 미확인임으로 투약기록일자/시간정보 clear
  2555. if(actingflag == "N" || actingflag == "M" ){
  2556. //----------(20081211)
  2557. medrexecdd = "00000000";
  2558. medrexectm = "0000";
  2559. } else {
  2560. if( ds_main_cond.getColumn(0, "acttimeflag") == "true" ){
  2561. medrexecdd = ds_main_cond.getColumn(0, "currentday");
  2562. medrexectm = ds_main_cond.getColumn(0, "currenttime");
  2563. //-------------------------------(20080802)
  2564. ////////////alert(medrexectm);
  2565. objDsxWardDrugListPath.setColumn(forarr[j]-1, "currentflag", "Y");
  2566. objDsxWardDrugListPath.setColumn(forarr[j]-1, "currentdd", medrexecdd);
  2567. objDsxWardDrugListPath.setColumn(forarr[j]-1, "currenttm", medrexectm);
  2568. //model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, medrexectm); //현재시간설정여부알림(화면상만)
  2569. //-------------------------------
  2570. } else {
  2571. drugtmspec = objDsxWardDrugListPath.getColumn(forarr[j]-1, "drugtmspeccal");
  2572. //alert("drugtmspec:" + drugtmspec);
  2573. //-------------(20081011)
  2574. //medrexecdd = getDateAddc(prcpdd, parseInt(drugtmspec / 2400)); //처방발생일
  2575. medrexecdd = getDateAddc(prcphopedd, parseInt(drugtmspec / 2400)); //처방희망일
  2576. //-------------(20081011)
  2577. medrexectm = Number(drugtmspec) % 2400;
  2578. medrexectm = fCarec_GetFillZeno(Math.abs(Number(medrexectm)), 4,0);
  2579. //alert("medrexecdd:" + medrexecdd + "/" + medrexectm);
  2580. }
  2581. }
  2582. objDsxWardDrugListPath.setColumn(forarr[j]-1, "medrexecdd", medrexecdd);
  2583. if( !utlf_isNull(medrexectm) ){
  2584. objDsxWardDrugListPath.setColumn(forarr[j]-1, "medrexectm", medrexectm + "00");
  2585. }
  2586. }
  2587. } else if (rtnstat == "2") {
  2588. if(messagenarccnfmyn == "N"){
  2589. sysf_messageBox("마약잔량반납이 완료된 처방이 존재합니다. 약제팀 연락하여 반납확인 취소 후 투약기록 수정","I008");//하십시오
  2590. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2591. messagenarccnfmyn = "Y";
  2592. }
  2593. }
  2594. //---------------(20101105) 경북대
  2595. // 원본
  2596. // rtnstat = 3 : 미신청
  2597. // rtnstat = 4 : 불출
  2598. // } else if ( (rtnstat == "3" && actingflag != "P") || rtnstat == "4" ){
  2599. // if((rtnstat == "3" && actingflag != "P") && messagenarcstat1yn == "N" ){
  2600. // messageBox(rtnprcpcd + " 마약은 불출신청 후 투약기록을 ","C003");//진행하십시오
  2601. // messagenarcstat1yn = "Y";
  2602. //
  2603. // model.setAttribute("Narc_Menu_Param", "");
  2604. // var sParam = sParam = "I,op";
  2605. // model.setAttribute("Narc_Menu_Param", sParam);
  2606. // model.setAttribute("SMADT30400_Fromdd", model.getValue(sPathNarcResult+"/rtnmsgprcpdd"));
  2607. // modal("SMADT30400","1","15","128");
  2608. // model.setAttribute("SMADT30400_Fromdd", "");
  2609. // }
  2610. // if(rtnstat == "4" && messagenarcstat5yn == "N" ){
  2611. // messageBox(rtnprcpcd + " 마약은 부서확인 후 투약기록을 ","C003");//진행하십시오
  2612. // messagenarcstat5yn = "Y";
  2613. //
  2614. // model.setAttribute("Narc_Menu_Param", "");
  2615. // var sParam = sParam = "I,op";
  2616. // model.setAttribute("Narc_Menu_Param", sParam);
  2617. // model.setAttribute("SMADT30400_Fromdd", model.getValue(sPathNarcResult+"/rtnmsgprcpdd"));
  2618. // modal("SMADT30400","1","15","128");
  2619. // model.setAttribute("SMADT30400_Fromdd", "");
  2620. // }
  2621. //20110108_KNUH_Start 셀프마약은 제외하도록한다. + 셀프마약과 파우더 처방인 'P+S' 처방일때도 부서확인 없이 .._ 손성훈.
  2622. } else if ( psydept == "N" && spcldrug == "M" /*&& actingflag == "R"*/ && actingflag != "P" && snarcstat != "6" && sdrughang.indexOf('self') == -1 && sdrughang.indexOf('P+S') == -1 ) {
  2623. // 투약기록은 부서확인이후에 가능하도록 한다.
  2624. // 마약 보유하는 특수부서(수술실, 일일수술실, 마취회복실)은 부서확인 없이 투약기록 가능하도록
  2625. // [투약X 반환가능]일 경우 부서확인 없이 투약기록 가능하도록 수정 2012.12.06 KJS
  2626. if ( sysf_messageBox(" "
  2627. + rtnprcpcd
  2628. + "\n\n 마약은 부서확인 이후 투약기록이 가능합니다."
  2629. + "\n 부서확인을 시행하시겠습니까?"
  2630. + "\n\n※ [정상투약], [투약X-반환불가], [퇴원당일 남은약] : 부서확인 이후 투약 기록 가능 "
  2631. + "\n※ [투약X-반환가능] : 불출되기 전이거나 부서확인 이후 투약 기록 가능", "Q999") == 6 ) {
  2632. messagenarcstat5yn = "Y";
  2633. sysf_setModelAttribute("Narc_Menu_Param", "");
  2634. var sParam = sParam = "I,op";
  2635. sysf_setModelAttribute("Narc_Menu_Param", sParam);
  2636. sysf_setModelAttribute("SMADT30400_Fromdd", ds_endsave_narcresult.getColumn(0, "rtnmsgprcpdd"));
  2637. frmf_modal("SMADT30400","SMADT30400",null,null,1,15,128,"","","","","","M");
  2638. sysf_setModelAttribute("SMADT30400_Fromdd", "");
  2639. }
  2640. //---------------(20101105) 경북대
  2641. } else if ( psydept == "N" && actingflag == "P" && snarcstat != "1" && snarcstat != "2" && snarcstat != "6" && !utlf_isNull(snarcstat) && sdrughang.indexOf('self') == -1 && sdrughang.indexOf('P+S') == -1 ) {
  2642. if ( sysf_messageBox(" "
  2643. + rtnprcpcd
  2644. + "\n\n 마약이 불출된 이후에는 부서확인을 해야 기록이 가능합니다. "
  2645. + "\n 부서확인을 시행하시겠습니까?"
  2646. + "\n\n※ [정상투약], [투약X-반환불가], [퇴원당일 남은약] : 부서확인 이후 투약 기록 가능 "
  2647. + "\n※ [투약X-반환가능] : 불출되기 전이거나 부서확인 이후 투약 기록 가능", "Q999") == 6 ) {
  2648. messagenarcstat5yn = "Y";
  2649. sysf_setModelAttribute("Narc_Menu_Param", "");
  2650. var sParam = sParam = "I,op";
  2651. sysf_setModelAttribute("Narc_Menu_Param", sParam);
  2652. sysf_setModelAttribute("SMADT30400_Fromdd", ds_endsave_narcresult.getColumn(0, "rtnmsgprcpdd"));
  2653. frmf_modal("SMADT30400","SMADT30400",null,null,1,15,128,"","","","","","M");
  2654. sysf_setModelAttribute("SMADT30400_Fromdd", "");
  2655. }
  2656. } else {
  2657. if(actingflag == "R"){
  2658. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2659. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2660. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2661. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2662. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2663. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2664. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ";
  2665. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", yellow, row);
  2666. } else if(actingflag == "P") {
  2667. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2668. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2669. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2670. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2671. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2672. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2673. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ";
  2674. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", yellowishgreen, row);
  2675. } else if(actingflag == "I") {
  2676. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2677. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2678. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2679. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2680. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2681. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2682. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+red+"' : ";
  2683. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", red, row);
  2684. } else if(actingflag == "L") {
  2685. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2686. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2687. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2688. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2689. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2690. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2691. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ";
  2692. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", sky, row);
  2693. //-------------(20081211)
  2694. } else if(actingflag == "N") {
  2695. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2696. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2697. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2698. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2699. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2700. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2701. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ";
  2702. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", gray, row);
  2703. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("carecfactnm" + col)) ){
  2704. ds_main_warddruginfo_warddruglist.addColumn("carecfactnm" + col, "string");
  2705. }
  2706. //주석
  2707. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfactnm", "");
  2708. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfactcd", "");
  2709. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfact", "");
  2710. ds_main_warddruginfo_warddruglist.setColumn(row, "carecfactnm" + col, "");
  2711. //flag
  2712. objDsxWardDrugListPath.setColumn(forarr[j]-1, "preantiyn", "N");
  2713. } else if(actingflag == "M") {
  2714. var preantimsg = "예방적항생제";
  2715. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+gray+"' : ", "");
  2716. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellow+"' : ", "");
  2717. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+yellowishgreen+"' : ", "");
  2718. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+red+"' : ", "");
  2719. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+sky+"' : ", "");
  2720. sExprBack = sExprBack.replace("currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ", "");
  2721. sExprBack += "currow == "+row+" && self.col == "+col+" ? '"+orange+"' : ";
  2722. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+col, "string", orange, row);
  2723. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("carecfactnm" + col)) ){
  2724. ds_main_warddruginfo_warddruglist.addColumn("carecfactnm" + col, "string");
  2725. }
  2726. //주석
  2727. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfactnm", preantimsg);
  2728. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfactcd", "");
  2729. objDsxWardDrugListPath.setColumn(forarr[j]-1, "carecfact", preantimsg);
  2730. ds_main_warddruginfo_warddruglist.setColumn(row, "carecfactnm" + col, preantimsg);
  2731. //flag
  2732. objDsxWardDrugListPath.setColumn(forarr[j]-1, "preantiyn", "Y");
  2733. //-------------(20081211)
  2734. } else {
  2735. }
  2736. //입력/수정 상태값 변경
  2737. fChangeValueStatus(row, forarr[j]-1);
  2738. objDsxWardDrugListPath.setColumn(forarr[j]-1, "execcarestatcd", actingflag);
  2739. //----------(20081211)확인중
  2740. //미확인 또는 예방적항생제(미확인) : 둘다 미확인임으로 투약기록일자/시간정보 clear
  2741. if(actingflag == "N" || actingflag == "M" ){
  2742. //----------(20081211)
  2743. medrexecdd = "00000000";
  2744. medrexectm = "0000";
  2745. } else {
  2746. if(ds_main_cond.getColumn(0, "acttimeflag") == "true"){
  2747. medrexecdd = ds_main_cond.getColumn(0, "currentday");
  2748. medrexectm = ds_main_cond.getColumn(0, "currenttime");
  2749. //-------------------------------(20080802)
  2750. ////////////alert(medrexectm);
  2751. objDsxWardDrugListPath.setColumn(forarr[j]-1, "currentflag", "Y");
  2752. objDsxWardDrugListPath.setColumn(forarr[j]-1, "currentdd", medrexecdd);
  2753. objDsxWardDrugListPath.setColumn(forarr[j]-1, "currenttm", medrexectm);
  2754. //model.setValue(xWardDrugListPath + "[" + row + "]/carecfactnm" + col, medrexectm); //현재시간설정여부알림(화면상만)
  2755. //-------------------------------
  2756. } else {
  2757. drugtmspec = objDsxWardDrugListPath.getColumn(forarr[j]-1, "drugtmspeccal");
  2758. //alert("drugtmspec:" + drugtmspec);
  2759. //-------------(20081011)
  2760. //medrexecdd = getDateAddc(prcpdd, parseInt(drugtmspec / 2400)); //처방발생일
  2761. medrexecdd = getDateAddc(prcphopedd, parseInt(drugtmspec / 2400)); //처방희망일
  2762. //-------------(20081011)
  2763. medrexectm = Number(drugtmspec) % 2400;
  2764. medrexectm = fCarec_GetFillZeno(Math.abs(Number(medrexectm)), 4,0);
  2765. //alert("medrexecdd:" + medrexecdd + "/" + medrexectm);
  2766. }
  2767. }
  2768. //-------------(20080731)test:정상
  2769. ////////////alert("일자----------:" + medrexecdd + "/ 시간:" + medrexectm);
  2770. //-------------(20080731)
  2771. //--------------------------(20080731)TEST중
  2772. //미투약리스트에서 과거를 선택하고 현재시각으로 하면 어떻게 되야 하는건가요?
  2773. //시간대를 읽어서 다시 생성하는 로직
  2774. //--------------------------
  2775. /*
  2776. var tempTimet = "";
  2777. var tempTimej = "";
  2778. if (actingflag == "N") {
  2779. } else {
  2780. if(model.getValue("/root/main/cond/acttimeflag") == "true"){
  2781. //-----------
  2782. var tempforarr = getNodesetCount(xWardDrugListPath + "[" + row + "]/for");
  2783. //////////alert("1:"+ tempforarr+ "/" + forarr[j]);
  2784. model.setValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/drugtmspeccal",medrexectm);
  2785. for(var t = 1; t <= tempforarr; t++){
  2786. //////////alert("2:"+t);
  2787. tempTimej = model.getValue(xWardDrugListPath + "[" + row + "]/for[" + t + "]/drugtmspeccal");
  2788. if (t == tempforarr) {
  2789. tempTimet += tempTimej
  2790. } else {
  2791. tempTimet += tempTimej + " ";
  2792. }
  2793. //////////alert("3:"+tempTimet);
  2794. }
  2795. //////////alert ("시간대:" + tempTimet);
  2796. //-----------
  2797. } else {
  2798. }
  2799. }
  2800. }
  2801. */
  2802. //--------------------------
  2803. objDsxWardDrugListPath.setColumn(forarr[j]-1, "medrexecdd", medrexecdd);
  2804. if( !utlf_isNull(medrexectm) ){
  2805. objDsxWardDrugListPath.setColumn(forarr[j]-1, "medrexectm", medrexectm + "00");
  2806. }
  2807. }//if ( spcldrug == "M" && (actingflag == "N" || actingflag == "P") )
  2808. sExprBack += "'')";
  2809. for( var m=grd_colcnt ; m<group3.grd_druglist.getCellCount("Body") ; m++ ){
  2810. group3.grd_druglist.setCellProperty("Body", m, "background", "BIND(color"+m+")");//sExprBack);
  2811. group3.grd_druglist.setCellProperty("Body", m, "background2", "BIND(color"+m+")");//sExprBack);
  2812. group3.grd_druglist.setCellProperty("Body", m, "selectbackground", "BIND(color"+m+")");//sExprBack);
  2813. }
  2814. }//end if( actingflag == model.getValue(xWardDrugListPath + "[" + row + "]/for[" + forarr[j] + "]/execcarestatcd") )
  2815. }//if(forarr[j] != "")
  2816. }//for(var j = 0; j < forarr.length-1; j++)
  2817. } else {
  2818. }//else if(dccomcountyn == "N" && cell_color != "white")
  2819. }
  2820. }
  2821. }
  2822. } //for(var i = 0; i < grd_druglist.selectedCells.length; i++)
  2823. ds_main_warddruginfo_warddruglist.rowposition = -1;
  2824. //-----------(20081121:test) grd_druglist.row = 1;가 있는데, 막고 테스트 진행함)
  2825. //grd_druglist.row = 1;
  2826. //숨겨진필드로 이동한다.
  2827. //grd_druglist.select(grd_druglist.row,grd_druglist.colref("engnm")) = true;
  2828. //grd_druglist.col = grd_druglist.colref("engnm");
  2829. //grd_druglist.select(1,col) = true;
  2830. //-----------(20081121)
  2831. }
  2832. /**
  2833. * @group :
  2834. * @ver : 2007.06.25
  2835. * @by : 최경용
  2836. * @---------------------------------------------------
  2837. * @type : function
  2838. * @access : public
  2839. * @desc : 시간별 일괄 투약(기존Acting이 없을 경우만...)
  2840. * @param :
  2841. * @return :
  2842. * @---------------------------------------------------
  2843. */
  2844. function fSetDrugAllActing(drugstat, pCol){
  2845. var rows = group3.grd_druglist.rowcount;
  2846. var col = pCol;
  2847. //for(var i = 2; i <= rows-1; i++ ){
  2848. //grd_druglist.select(2, col, rows-1, col) = true; //XP에서 구현 불가능
  2849. //}
  2850. //ds_main_warddruginfo_warddruglist.rowposition = 3;
  2851. group3.grd_druglist.setCellPos(pCol);
  2852. group3.grd_druglist.setFocus();
  2853. fSetDrug(drugstat, col);
  2854. }
  2855. /**
  2856. * @group :
  2857. * @ver : 2007.06.25
  2858. * @by : 최경용
  2859. * @---------------------------------------------------
  2860. * @type : function
  2861. * @access : public
  2862. * @desc : 투약기록 내용 저장
  2863. * @param :
  2864. * @return :
  2865. * @---------------------------------------------------
  2866. */
  2867. function fClickSave(signflagyn){
  2868. //-------------(20081121)
  2869. toprow = group3.grd_druglist.vscrollbar.pos;
  2870. if( group3.swtpatList.tabindex == 0 ){
  2871. toprow2 = group3.swtpatList.pat.grd_patlist.vscrollbar.pos;
  2872. }else{
  2873. toprow2 = group3.swtpatList.act.grd_actlist.vscrollbar.pos;
  2874. }
  2875. toprowflag = "Y";
  2876. //-------------(20081121)
  2877. //--------------------------(20080627)
  2878. //상단에 정보가 없이 투약기록을 연다.
  2879. //그러면 투약기록에서 환자선택시 상단으로 올리고
  2880. //저장전에 다시 한번 내린다.
  2881. //-------------------------------------
  2882. //상단정보가 없을경우 인증저장시 오류
  2883. //var signgenrflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2884. //java.sql.SQLException: ORA-01400: NULL을 ("EMR"."MRIMESPI"."SIGNGENRFLAG") 안에 삽입할 수 없습니다
  2885. //himed.his.emr.emrreclib.elctcert.dao.ElctCertMngtDAOImpl.insElctCertInfo() at line 128 in ElctCertMngtDAOImpl.java
  2886. /*
  2887. var tempioflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2888. if ( tempioflag == "" ) {
  2889. // 환자정보 조회
  2890. var tempPamInfo = getGlobalVariable("paminfo");
  2891. setCSVToNode("/root/main/paminfo",tempPamInfo,"pamlist"); //환자정보내리기
  2892. //messageBox("상단정보가 존재하지 않습니다.저장할 수 없습니다.","E999");
  2893. //return;
  2894. }
  2895. tempioflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2896. */
  2897. //------------------(20080917)
  2898. //상단정보를 이용하지 않고, 환자리스트에서 ordtype를 이용한다.(20080721)
  2899. /*
  2900. if ( grd_patlist.row <= 0 ) {
  2901. messageBox("환자를 선택하십시오 ","E999");
  2902. return;
  2903. }
  2904. var tempioflag = model.getValue(xWardPatListPath + "[" + grd_patlist.row + "]/ordtype");
  2905. if ( tempioflag == "" ) {
  2906. messageBox("원무정보를 확인하십시오 ","E999");
  2907. return;
  2908. }
  2909. */
  2910. var pGrdTemp = "";
  2911. var temppatlistPath = ""; //0929
  2912. //var xWardPatListPath = "/root/main/wardpatinfo/wardpatlist";
  2913. //var xWardActListPath = "/root/main/wardactinfo/wardactlist";
  2914. if(screen_mode == "pat"){
  2915. pGrdTemp = group3.swtpatList.pat.grd_patlist;
  2916. temppatlistPath = eval(xWardPatListPath); //0929
  2917. }else if(screen_mode == "act"){
  2918. pGrdTemp = group3.swtpatList.act.grd_actlist;
  2919. temppatlistPath = eval(xWardActListPath); //0929
  2920. }
  2921. if ( pGrdTemp.currentrow < 0 ) {
  2922. sysf_messageBox("환자를 선택하십시오 ","E999");
  2923. return;
  2924. }
  2925. var tempioflag = temppatlistPath.getColumn(pGrdTemp.currentrow, "ordtype"); //0929
  2926. if( ds_main_cond.getColumn(0, "wardcd") == "0000000000" ){
  2927. xOpfromdt = temppatlistPath.getColumn(pGrdTemp.currentrow, "opfromdt");
  2928. }
  2929. //////alert( pGrdTemp.caption +"/"+ pGrdTemp.row +"/"+tempioflag ) ; //0924
  2930. if( utlf_isNull(tempioflag) ){
  2931. sysf_messageBox("원무정보를 확인하십시오 ","E999");
  2932. return;
  2933. }
  2934. //------------------(20080917)
  2935. var rows = group3.grd_druglist.rowcount;
  2936. var drugtmspec = "";
  2937. var carebasetmspec = "";
  2938. var tims = "";
  2939. var iudflag = "";
  2940. var inst_cnt = 0;
  2941. var prcpdd = "";
  2942. var prcpno = "";
  2943. var issdeptcd = "";
  2944. var psydept = "";
  2945. var prcphistno = "";
  2946. var execprcpno = "";
  2947. var carertnyn = "";
  2948. var execprcptims = "";
  2949. var pid = "";
  2950. var indd = "";
  2951. var cretno = "";
  2952. var prcpvol = "";
  2953. //20110107_KNUH_Start 김병국
  2954. var drprcpetc7 = "";
  2955. var drprcpetc8 = "";
  2956. //20110107_KNUH_End
  2957. var fluidflag = "";
  2958. var mixno = "";
  2959. var mixyn = "";
  2960. var carecfact = "";
  2961. var carecfactcd = "";
  2962. var carecfactnm = "";
  2963. var carebasedd = "";
  2964. var carebasetm = "";
  2965. var execcarestatcd = "";
  2966. var pastexeccarestatcd = "";
  2967. var prcpcd = "";
  2968. var carebasetmspec = "";
  2969. var execprcpuniqno = "";
  2970. var acttimeflag = ds_main_cond.getColumn(0, "acttimeflag");
  2971. var currentday = ds_main_cond.getColumn(0, "currentday");
  2972. var currenttime = ds_main_cond.getColumn(0, "currenttime");
  2973. var execdd = "";
  2974. var exectm = "";
  2975. var prcpclscd = "";
  2976. var drugrateqty = "";
  2977. var spcldrug = "";
  2978. var signno = "";
  2979. var recdd = utlf_getCurrentDate();
  2980. var rectm = utlf_getCurrentTime();
  2981. var recsaveflag = "N";
  2982. var signflag = "02";
  2983. //---------------------------(20080721)
  2984. //상단정보를 이용하지 않고 환자리스트정보를 이용한다.
  2985. //var signgenrflag = model.getValue("/root/main/paminfo/pamlist/ioflag");
  2986. var signgenrflag = tempioflag;
  2987. //---------------------------
  2988. var formcd = "0000002476";
  2989. var orddeptcd = "";
  2990. var orddrid = "";
  2991. var patnm = "";
  2992. var medrexecdd = "";
  2993. var medrexectm = "";
  2994. var prcpkindnm = "";
  2995. var orddrnm = "";
  2996. var prcpnm = "";
  2997. var narcrtnstat = "";
  2998. var narcrtnyn = "N";
  2999. var narcprcpnm = "";
  3000. //-----------------(20080802)
  3001. var currentflag = "";
  3002. var currentdd = "";
  3003. var currenttm = "";
  3004. //-----------------(20080802)
  3005. //-----------------(20081211)
  3006. var preantiyn = "";
  3007. //-----------------(20081211)
  3008. var antiastrid = "";
  3009. //-------------------(20080820)
  3010. //저장전 사전 체크기능
  3011. ds_send_savedata_drugreportinfo.clearData();
  3012. //xOpfromdt = "201401061700";
  3013. if( !utlf_isNull(xOpfromdt) ){
  3014. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  3015. preantiyn = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "preantiyn"));
  3016. //if (xDrMode == "Y" && preantiyn == "Y") {
  3017. if (preantiyn == "Y") {
  3018. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  3019. for( var j=0 ; j<objDsxWardDrugListPath.rowcount ; j++ ){
  3020. iudflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "iudflag"));
  3021. signflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "signflag"));
  3022. medrexecdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "medrexecdd"));
  3023. medrexectm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "medrexectm")).substr(0, 4);
  3024. if((iudflag == "I") ||
  3025. (iudflag == "U") ||
  3026. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  3027. // 수술예방적항생제 투여시간 확인 2014.01.06 KJS
  3028. xOpfromdt = utlf_transNullToEmpty(xOpfromdt);
  3029. var opfromdd = xOpfromdt.substr(0, 8);
  3030. var opfromtm = xOpfromdt.substr(8, 4);
  3031. var strOpfromdt = opfromdd.substr(0, 4) + "-" + opfromdd.substr(4, 2) + "-" + opfromdd.substr(6, 2) + " "+
  3032. opfromtm.substr(0, 2) + ":" + opfromtm.substr(2, 2);
  3033. var strMedrexecdt = medrexecdd.substr(0, 4) + "-" + medrexecdd.substr(4, 2) + "-" + medrexecdd.substr(6, 2) + " "+
  3034. medrexectm.substr(0, 2) + ":" + medrexectm.substr(2, 2);
  3035. if (opfromdd == medrexecdd) {
  3036. var timedif = eval(utlf_getTimeInterval(medrexectm, opfromtm)) / 60;
  3037. if (timedif > 60 || timedif < 0) {
  3038. rtnmsg = sysf_messageBox( "수술예방적 항생제 투여시간은 수술시작(절개)시간 전 1시간 이내 투약이 요구됩니다.\r\n\r\n" +
  3039. "수술시작(절개)시간: " + strOpfromdt + "\r\n" +
  3040. "투약기록시간 : " + strMedrexecdt + "\r\n\r\n" +
  3041. "이 시간으로 투약기록을 진행하시겠습니까?", "Q999");
  3042. if (rtnmsg != "6") {
  3043. return;
  3044. }
  3045. }
  3046. } else {
  3047. rtnmsg = sysf_messageBox( "수술예방적 항생제 투여일자가 수술일과 상이합니다.\r\n" +
  3048. "수술예방적 항생제 투여시간은 수술시작(절개)시간 전 1시간 이내 투약이 요구됩니다.\r\n\r\n" +
  3049. "수술시작(절개)시간: " + strOpfromdt + "\r\n" +
  3050. "투약기록시간 : " + strMedrexecdt + "\r\n\r\n" +
  3051. "이 시간으로 투약기록을 진행하시겠습니까?", "Q999");
  3052. if (rtnmsg != "6") {
  3053. return;
  3054. }
  3055. }
  3056. }
  3057. }
  3058. }
  3059. }
  3060. }
  3061. //return;
  3062. //---------(20081203)
  3063. //for(var i = 1; i < rows; i++){
  3064. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  3065. //---------
  3066. narcrtnstat = "";
  3067. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  3068. for( var j=0 ; j<objDsxWardDrugListPath.rowcount ; j++ ){
  3069. iudflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "iudflag"));
  3070. signflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "signflag"));
  3071. if((iudflag == "I") ||
  3072. (iudflag == "U") ||
  3073. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  3074. //--------------------
  3075. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  3076. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  3077. //노드 하나만 남기고 다른 노드들을 삭제하지만,
  3078. //남겨진 하나의 노드에 설정되었던 값들도 삭제되므로 주의해서 사용해야 한다.
  3079. //변수로
  3080. carebasetmspec = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec"));
  3081. drugtmspec = carebasetmspec.split(" ");
  3082. prcpdd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpdd"));
  3083. prcpcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  3084. prcpno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno"));
  3085. issdept = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "issdept"));
  3086. psydept = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "psydept"));
  3087. carertnyn = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "carertnyn"));
  3088. execprcptims = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "tims"));
  3089. pid = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "pid"));
  3090. indd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "indd"));
  3091. cretno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "cretno"));
  3092. prcpvol = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpvol"));
  3093. drprcpetc7 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drprcpetc7"));
  3094. drprcpetc8 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drprcpetc8"));
  3095. mixno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno"));
  3096. prcpclscd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orgprcpclscd"));
  3097. drugrateqty = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drugrateqty"));
  3098. spcldrug = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "spcldrug"));
  3099. orddeptcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orddeptcd"));
  3100. orddrid = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orddrid"));
  3101. patnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "patnm"));
  3102. prcpkindnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpkindnm"));
  3103. orddrnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orddrnm"));
  3104. prcpnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpnm"));
  3105. prcpcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  3106. narcrtnstat = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "rtnstat"));//마약잔량신청상태
  3107. if ( narcrtnstat == "1" ){
  3108. if ( narcrtnyn == "N" ) {
  3109. narcrtnyn = "Y"
  3110. }
  3111. }
  3112. if( utlf_isNull(mixno) ){
  3113. mixyn = "N";
  3114. }else{
  3115. mixyn = "Y";
  3116. }
  3117. prcphistno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "prcphistno"));
  3118. execprcpno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execprcpno"));
  3119. carecfact = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "carecfact"));
  3120. carecfactcd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "carecfactcd"));
  3121. carecfactnm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "carecfactnm"));
  3122. carebasedd = getDateAddc(prcpdd, drugtmspec[j] / 2400);
  3123. carebasetm = fCarec_GetFillZeno(Math.abs(Number(drugtmspec[j]) % 2400), 4,0) + "00";
  3124. execcarestatcd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execcarestatcd"));
  3125. pastexeccarestatcd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "pastexeccarestatcd"));
  3126. execprcpuniqno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execprcpuniqno"));
  3127. signno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "signno"));
  3128. execdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execdd")); //과거실행일자(exip.execdd)
  3129. medrexecdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "medrexecdd")); //투약일자
  3130. medrexectm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "medrexectm"));
  3131. //alert(medrexecdd + "/" + medrexectm);
  3132. //---------------------------(20080802)
  3133. // 현재시간설정정보
  3134. currentflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "currentflag")); //현재시간설정flag
  3135. currentdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "currentdd")); //현재시간설정시일자
  3136. currenttm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "currenttm")); //현재시간설정시시간
  3137. //---------------------------(20080802)
  3138. //---------------------------(20081211)
  3139. preantiyn = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "preantiyn")); //예방적항생제
  3140. //---------------------------(20081211)
  3141. antiastrid = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "antiastrid")); //예방적항생제 AST 확인자
  3142. // 심사기준 점검 2013.09.04 KJS
  3143. //fJudgCheck(pid, indd, cretno, prcpcd, prcpno, execprcpno, execdd, execcarestatcd);
  3144. //값 반영
  3145. ds_hidden_drugreportinfo.setColumn(0, "wardcd", ds_main_cond.getColumn(0, "wardcd"));
  3146. ds_hidden_drugreportinfo.setColumn(0, "prcpdd", prcpdd);
  3147. ds_hidden_drugreportinfo.setColumn(0, "prcpno", prcpno);
  3148. ds_hidden_drugreportinfo.setColumn(0, "issdeptcd", issdeptcd);
  3149. ds_hidden_drugreportinfo.setColumn(0, "psydept", psydept);
  3150. ds_hidden_drugreportinfo.setColumn(0, "prcphistno", prcphistno);
  3151. ds_hidden_drugreportinfo.setColumn(0, "execprcpno", execprcpno);
  3152. //20110107_KNUH_Start 일회용량, 일회수량 추가.
  3153. ds_hidden_drugreportinfo.setColumn(0, "drprcpetc7", drprcpetc7);
  3154. ds_hidden_drugreportinfo.setColumn(0, "drprcpetc8", drprcpetc8);
  3155. //20110107_KNUH_End
  3156. if( utlf_isNull(carertnyn) ){
  3157. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", "N");
  3158. }else{
  3159. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", carertnyn);
  3160. }
  3161. ds_hidden_drugreportinfo.setColumn(0, "execprcptims", execprcptims);
  3162. ds_hidden_drugreportinfo.setColumn(0, "pid", pid);
  3163. ds_hidden_drugreportinfo.setColumn(0, "indd", indd);
  3164. ds_hidden_drugreportinfo.setColumn(0, "orddd", indd);
  3165. ds_hidden_drugreportinfo.setColumn(0, "signno", signno);
  3166. ds_hidden_drugreportinfo.setColumn(0, "recdd", recdd);
  3167. ds_hidden_drugreportinfo.setColumn(0, "rectm", rectm);
  3168. ds_hidden_drugreportinfo.setColumn(0, "recsaveflag", recsaveflag);
  3169. ds_hidden_drugreportinfo.setColumn(0, "signflag", "02");
  3170. ds_hidden_drugreportinfo.setColumn(0, "signgenrflag", signgenrflag);
  3171. ds_hidden_drugreportinfo.setColumn(0, "formcd", formcd);
  3172. ds_hidden_drugreportinfo.setColumn(0, "orddeptcd", orddeptcd);
  3173. ds_hidden_drugreportinfo.setColumn(0, "orddrid", orddrid);
  3174. ds_hidden_drugreportinfo.setColumn(0, "cretno", cretno);
  3175. ds_hidden_drugreportinfo.setColumn(0, "prcpvol", prcpvol);
  3176. ds_hidden_drugreportinfo.setColumn(0, "patnm", patnm);
  3177. ds_hidden_drugreportinfo.setColumn(0, "fluidflag", fluidflag);
  3178. ds_hidden_drugreportinfo.setColumn(0, "mixno", mixno);
  3179. ds_hidden_drugreportinfo.setColumn(0, "mixyn", mixyn);
  3180. ds_hidden_drugreportinfo.setColumn(0, "carecfact", carecfact);
  3181. ds_hidden_drugreportinfo.setColumn(0, "carecfactcd", carecfactcd);
  3182. ds_hidden_drugreportinfo.setColumn(0, "carecfactnm", carecfactnm);
  3183. ds_hidden_drugreportinfo.setColumn(0, "carebasedd", carebasedd);
  3184. ds_hidden_drugreportinfo.setColumn(0, "carebasetm", carebasetm);
  3185. if(execcarestatcd == "N" && pastexeccarestatcd == "N"){
  3186. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", "-");
  3187. }else{
  3188. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", execcarestatcd);
  3189. }
  3190. ds_hidden_drugreportinfo.setColumn(0, "prcpcd", prcpcd);
  3191. ds_hidden_drugreportinfo.setColumn(0, "carebasetmspec", carebasetmspec);
  3192. ds_hidden_drugreportinfo.setColumn(0, "acttimeflag", acttimeflag);
  3193. ds_hidden_drugreportinfo.setColumn(0, "execprcpuniqno", execprcpuniqno);
  3194. //-------------------------------------------
  3195. //현재일자(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  3196. ds_hidden_drugreportinfo.setColumn(0, "currentday", currentday);
  3197. //현재시간(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  3198. ds_hidden_drugreportinfo.setColumn(0, "currenttime", currenttime);
  3199. //-------------------------------------------
  3200. ds_hidden_drugreportinfo.setColumn(0, "iudflag", iudflag);
  3201. ds_hidden_drugreportinfo.setColumn(0, "pastexecdd", execdd);
  3202. ds_hidden_drugreportinfo.setColumn(0, "medrexecdd", medrexecdd);
  3203. ds_hidden_drugreportinfo.setColumn(0, "medrexectm", medrexectm);
  3204. ds_hidden_drugreportinfo.setColumn(0, "prcpclscd", prcpclscd);
  3205. ds_hidden_drugreportinfo.setColumn(0, "drugrateqty", drugrateqty);
  3206. ds_hidden_drugreportinfo.setColumn(0, "spcldrug", spcldrug);
  3207. ds_hidden_drugreportinfo.setColumn(0, "prcpkindnm", prcpkindnm);
  3208. ds_hidden_drugreportinfo.setColumn(0, "orddrnm", orddrnm);
  3209. ds_hidden_drugreportinfo.setColumn(0, "prcpnm", prcpnm);
  3210. ds_hidden_drugreportinfo.setColumn(0, "signflagyn", signflagyn);
  3211. ds_hidden_drugreportinfo.setColumn(0, "rtnstat", narcrtnstat);
  3212. if(iudflag == "-" && signflagyn == "Y" && signflag == "N"){
  3213. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "1");//임시저장 후 인증저장
  3214. }else if(signflagyn == "N"){
  3215. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "0");//임시저장
  3216. }else if(signflagyn == "Y"){
  3217. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "2");//인증저장
  3218. }else{}
  3219. //--------------------------(20081203)
  3220. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  3221. //건별인증은 dispyn ='N'
  3222. //하단의 일자별인 경우만 보임
  3223. //20081204 APP에서 인증저장시에도 다시 한번 더 반영함
  3224. ds_hidden_drugreportinfo.setColumn(0, "dispyn", "N");
  3225. //--------------------------(20081203)
  3226. ds_hidden_drugreportinfo.setColumn(0, "signbfcnts", ""); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  3227. ds_hidden_drugreportinfo.setColumn(0, "signaftcnts", ""); // 공인인증 처리후 데이터
  3228. //---------------------------(20080802)
  3229. // 현재시간설정정보
  3230. ds_hidden_drugreportinfo.setColumn(0, "currentflag", currentflag); //현재시간설정flag
  3231. ds_hidden_drugreportinfo.setColumn(0, "currentdd", currentdd); //현재시간설정시일자
  3232. ds_hidden_drugreportinfo.setColumn(0, "currenttm", currenttm); //현재시간설정시시간
  3233. //---------------------------(20080802)
  3234. //---------------------------(20081211)
  3235. ds_hidden_drugreportinfo.setColumn(0, "preantiyn", preantiyn); //예방적항생제추가
  3236. //---------------------------(20081211)
  3237. ds_hidden_drugreportinfo.setColumn(0, "antiastrid", antiastrid);
  3238. ds_send_savedata_drugreportinfo.addRow();
  3239. ds_send_savedata_drugreportinfo.copyRow(inst_cnt, ds_hidden_drugreportinfo, 0);
  3240. inst_cnt++;
  3241. }
  3242. }
  3243. // if ( narcrtnstat == "1" ){
  3244. // narcprcpnm += "["+ prcpcd +"]"
  3245. // }
  3246. }
  3247. if(inst_cnt > 0){
  3248. //------------------------------------
  3249. //반환사유확인 후 진행여부 결과 받음
  3250. var endflag = fnEndddSave();
  3251. if ( endflag == false) return;
  3252. //------------------------------------
  3253. }else{
  3254. sysf_messageBox("저장 할 내용이","I004");
  3255. return;
  3256. }
  3257. //------------------------(20080820)
  3258. //------------------------(20080820)
  3259. //다시 초기화
  3260. currentflag = "";
  3261. currentdd = "";
  3262. currenttm = "";
  3263. inst_cnt = 0;
  3264. //------------------------(20080820)
  3265. //------------------------(20081211)
  3266. preantiyn = "N";
  3267. //------------------------(20081211)
  3268. //------------------------(20080902)
  3269. var signDates = new Array;
  3270. var signDateCnt = 0;
  3271. var signdispdd = "";
  3272. //------------------------(20080902)
  3273. //--------------------------(20080917)
  3274. Sign.certreload = true ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  3275. //--------------------------(20080917)
  3276. ds_send_savedata_drugreportinfo.clearData();
  3277. //--------------------------(20081203)테스트해야함
  3278. //for(var i = 1; i < rows; i++){
  3279. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  3280. //--------------------------
  3281. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  3282. for( var j=0 ; j<objDsxWardDrugListPath.rowcount ; j++ ){
  3283. iudflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "iudflag"));
  3284. signflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "signflag"));
  3285. if((iudflag == "I") ||
  3286. (iudflag == "U") ||
  3287. (iudflag == "-" && signflagyn == "Y" && signflag == "N")){//임시저장한 상태에서 수정없이 인증저장하는 경우
  3288. //--------------------
  3289. //node에 해당하는 노드 하나만 남기고, 같은 node Name 을 갖는 노드들은 삭제시켜준다.
  3290. //다른 노드들을 삭제시키고 남겨진 노드의 속성이나 value 값은공백으로 세팅이 된다.
  3291. //노드 하나만 남기고 다른 노드들을 삭제하지만,
  3292. //남겨진 하나의 노드에 설정되었던 값들도 삭제되므로 주의해서 사용해야 한다.
  3293. //변수로
  3294. carebasetmspec = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec"));
  3295. drugtmspec = carebasetmspec.split(" ");
  3296. prcpdd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpdd"));
  3297. prcpcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  3298. prcpno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno"));
  3299. issdeptcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "issdeptcd"));
  3300. psydept = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "psydept"));
  3301. carertnyn = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "carertnyn"));
  3302. execprcptims = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "tims"));
  3303. pid = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "pid"));
  3304. indd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "indd"));
  3305. cretno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "cretno"));
  3306. prcpvol = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpvol"));
  3307. //20110107_KNUH_Start 일회용량, 일회수량추가.
  3308. drprcpetc7 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drprcpetc7"));
  3309. drprcpetc8 = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drprcpetc8"));
  3310. //20110107_KNUH_End
  3311. mixno = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno"));
  3312. prcpclscd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orgprcpclscd"));
  3313. drugrateqty = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "drugrateqty"));
  3314. spcldrug = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "spcldrug"));
  3315. orddeptcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orddeptcd"));
  3316. orddrid = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orddrid"));
  3317. patnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "patnm"));
  3318. prcpkindnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpkindnm"));
  3319. orddrnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "orddrnm"));
  3320. prcpnm = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpnm"));
  3321. prcpcd = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  3322. narcrtnstat = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "rtnstat"));//마약잔량신청상태
  3323. if( utlf_isNull(mixno) ){
  3324. mixyn = "N";
  3325. }else{
  3326. mixyn = "Y";
  3327. }
  3328. prcphistno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "prcphistno"));
  3329. execprcpno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execprcpno"));
  3330. carecfact = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "carecfact"));
  3331. carecfactcd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "carecfactcd"));
  3332. carecfactnm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "carecfactnm"));
  3333. carebasedd = getDateAddc(prcpdd, drugtmspec[j] / 2400);
  3334. carebasetm = fCarec_GetFillZeno(Math.abs(Number(drugtmspec[j]) % 2400), 4,0) + "00";
  3335. execcarestatcd= utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execcarestatcd"));
  3336. pastexeccarestatcd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "pastexeccarestatcd"));
  3337. execprcpuniqno= utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execprcpuniqno"));
  3338. signno = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "signno"));
  3339. execdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "execdd")); //과거실행일자(exip.execdd)
  3340. medrexecdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "medrexecdd")); //투약일자
  3341. medrexectm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "medrexectm"));
  3342. //alert(medrexecdd + "/" + medrexectm); //-----1011
  3343. //---------------------------(20080802)
  3344. // 현재시간설정정보
  3345. currentflag = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "currentflag")); //현재시간설정flag
  3346. currentdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "currentdd")); //현재시간설정시일자
  3347. currenttm = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "currenttm")); //현재시간설정시시간
  3348. //---------------------------(20080802)
  3349. //---------------------------(20081211)
  3350. preantiyn = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "preantiyn")); //예방적항생제
  3351. //---------------------------(20081211)
  3352. antiastrid = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "antiastrid")); //예방적항생제 AST 확인자
  3353. //--------------------------(20080902)
  3354. signdispdd = utlf_transNullToEmpty(objDsxWardDrugListPath.getColumn(j, "dispdd")); //화면상의 일자
  3355. ////////////alert( "전체loop:" + signdispdd + "/"+ medrexecdd + "/" + currentdd);
  3356. if ( signDates.length == 0) {
  3357. signDateCnt =0;
  3358. signDates[signDateCnt] = "";
  3359. }
  3360. // if (signdayFind(signDates,medrexecdd) == true ) { //------(투약일자)
  3361. // signDateCnt ++;
  3362. // signDates[signDateCnt] = medrexecdd;
  3363. // //////////alert("b:" + signDates[signDateCnt] +"/" + medrexecdd);
  3364. // }
  3365. if (signdayFind(signDates,signdispdd) == true ) { //------(투약일자)
  3366. signDateCnt ++;
  3367. signDates[signDateCnt] = signdispdd;
  3368. ////////////alert("b:" + signDates[signDateCnt] +"/" + signdispdd);
  3369. }
  3370. if (signdayFind(signDates,currentdd) == true ) { //------(현재일자)
  3371. signDateCnt ++;
  3372. signDates[signDateCnt] = currentdd;
  3373. ////////////alert("c:" + signDates[signDateCnt] +"/" + currentdd);
  3374. }
  3375. //--------------------------(20080902)
  3376. //값 반영
  3377. ds_hidden_drugreportinfo.setColumn(0, "wardcd", ds_main_cond.getColumn(0, "wardcd"));
  3378. ds_hidden_drugreportinfo.setColumn(0, "rtnstat", narcrtnstat);
  3379. ds_hidden_drugreportinfo.setColumn(0, "prcpdd", prcpdd);
  3380. ds_hidden_drugreportinfo.setColumn(0, "prcpno", prcpno);
  3381. ds_hidden_drugreportinfo.setColumn(0, "issdeptcd", issdeptcd);
  3382. ds_hidden_drugreportinfo.setColumn(0, "psydept", psydept);
  3383. ds_hidden_drugreportinfo.setColumn(0, "prcphistno", prcphistno);
  3384. ds_hidden_drugreportinfo.setColumn(0, "execprcpno", execprcpno);
  3385. if( utlf_isNull(carertnyn) ){
  3386. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", "N");
  3387. }else{
  3388. ds_hidden_drugreportinfo.setColumn(0, "carertnyn", carertnyn);
  3389. }
  3390. ds_hidden_drugreportinfo.setColumn(0, "execprcptims", execprcptims);
  3391. ds_hidden_drugreportinfo.setColumn(0, "pid", pid);
  3392. ds_hidden_drugreportinfo.setColumn(0, "indd", indd);
  3393. ds_hidden_drugreportinfo.setColumn(0, "orddd", indd);
  3394. ds_hidden_drugreportinfo.setColumn(0, "signno", signno);
  3395. ds_hidden_drugreportinfo.setColumn(0, "recdd", recdd);
  3396. ds_hidden_drugreportinfo.setColumn(0, "rectm", rectm);
  3397. ds_hidden_drugreportinfo.setColumn(0, "recsaveflag", recsaveflag);
  3398. ds_hidden_drugreportinfo.setColumn(0, "signflag", "02");
  3399. ds_hidden_drugreportinfo.setColumn(0, "signgenrflag", signgenrflag);
  3400. ds_hidden_drugreportinfo.setColumn(0, "formcd", formcd);
  3401. ds_hidden_drugreportinfo.setColumn(0, "orddeptcd", orddeptcd);
  3402. ds_hidden_drugreportinfo.setColumn(0, "orddrid", orddrid);
  3403. ds_hidden_drugreportinfo.setColumn(0, "cretno", cretno);
  3404. ds_hidden_drugreportinfo.setColumn(0, "prcpvol", prcpvol);
  3405. ds_hidden_drugreportinfo.setColumn(0, "patnm", patnm);
  3406. ds_hidden_drugreportinfo.setColumn(0, "fluidflag", fluidflag);
  3407. ds_hidden_drugreportinfo.setColumn(0, "mixno", mixno);
  3408. ds_hidden_drugreportinfo.setColumn(0, "mixyn", mixyn);
  3409. ds_hidden_drugreportinfo.setColumn(0, "carecfact", carecfact);
  3410. ds_hidden_drugreportinfo.setColumn(0, "carecfactcd", carecfactcd);
  3411. ds_hidden_drugreportinfo.setColumn(0, "carecfactnm", carecfactnm);
  3412. ds_hidden_drugreportinfo.setColumn(0, "carebasedd", carebasedd);
  3413. ds_hidden_drugreportinfo.setColumn(0, "carebasetm", carebasetm);
  3414. //20110107_KNUH_Start 일회용량, 일회수량추가.
  3415. ds_hidden_drugreportinfo.setColumn(0, "drprcpetc7", drprcpetc7);
  3416. ds_hidden_drugreportinfo.setColumn(0, "drprcpetc8", drprcpetc8);
  3417. //20110107_KNUH_End 일회용량, 일회수량추가.
  3418. if(execcarestatcd == "N" && pastexeccarestatcd == "N"){
  3419. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", "-");
  3420. }else{
  3421. ds_hidden_drugreportinfo.setColumn(0, "execcarestatcd", execcarestatcd);
  3422. }
  3423. ds_hidden_drugreportinfo.setColumn(0, "prcpcd", prcpcd);
  3424. ds_hidden_drugreportinfo.setColumn(0, "carebasetmspec", carebasetmspec);
  3425. ds_hidden_drugreportinfo.setColumn(0, "acttimeflag", acttimeflag);
  3426. ds_hidden_drugreportinfo.setColumn(0, "execprcpuniqno", execprcpuniqno);
  3427. //-------------------------------------------
  3428. //현재일자(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  3429. ds_hidden_drugreportinfo.setColumn(0, "currentday", currentday);
  3430. //현재시간(현재시간클릭시)APP에서사용하지않는것 같음확인요구됨(20080802)
  3431. ds_hidden_drugreportinfo.setColumn(0, "currenttime", currenttime);
  3432. //-------------------------------------------
  3433. ds_hidden_drugreportinfo.setColumn(0, "iudflag", iudflag);
  3434. ds_hidden_drugreportinfo.setColumn(0, "pastexecdd", execdd);
  3435. ds_hidden_drugreportinfo.setColumn(0, "medrexecdd", medrexecdd);
  3436. ds_hidden_drugreportinfo.setColumn(0, "medrexectm", medrexectm);
  3437. ds_hidden_drugreportinfo.setColumn(0, "prcpclscd", prcpclscd);
  3438. ds_hidden_drugreportinfo.setColumn(0, "drugrateqty", drugrateqty);
  3439. ds_hidden_drugreportinfo.setColumn(0, "spcldrug", spcldrug);
  3440. ds_hidden_drugreportinfo.setColumn(0, "prcpkindnm", prcpkindnm);
  3441. ds_hidden_drugreportinfo.setColumn(0, "orddrnm", orddrnm);
  3442. ds_hidden_drugreportinfo.setColumn(0, "prcpnm", prcpnm);
  3443. ds_hidden_drugreportinfo.setColumn(0, "signflagyn", signflagyn);
  3444. if(iudflag == "-" && signflagyn == "Y" && signflag == "N"){
  3445. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "1");//임시저장 후 인증저장
  3446. }else if(signflagyn == "N"){
  3447. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "0");//임시저장
  3448. }else if(signflagyn == "Y"){
  3449. ds_hidden_drugreportinfo.setColumn(0, "saveflag", "2");//인증저장
  3450. }else{}
  3451. //--------------------------(20080921)
  3452. //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  3453. //건별인증은 dispyn ='N'
  3454. //하단의 일자별인 경우만 보임
  3455. //20081204 APP에서 인증저장시에도 다시 한번 더 반영함
  3456. ds_hidden_drugreportinfo.setColumn(0, "dispyn", "N");
  3457. //--------------------------(20080921)
  3458. if(signflagyn == "Y"){
  3459. //----------------(20081112)
  3460. //sign_row = inst_cnt; //저장대상으므로 inst_cnt를 사용하면 안됨
  3461. sign_row = i; //row
  3462. sign_saverow = i;
  3463. sign_savecol = j;
  3464. //signdispdd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + j + "]/dispdd"); //화면상의 일자
  3465. //----------------(20081112)
  3466. if( utlf_isNull(vsettime) ){
  3467. Sign.certchkflag = "Y";
  3468. } else {
  3469. var res2 = utlf_getTimeInterval(vsettime, utlf_getCurrentTime(), 'hhmmss');
  3470. if(res2 > signtime* 60 || res2 < 0) {
  3471. Sign.certchkflag = "Y";
  3472. } else {
  3473. Sign.certchkflag = "N";
  3474. }
  3475. }
  3476. //-------------(20080924)
  3477. if(Sign.signprocess() == false){//인증저장 데이터 생성
  3478. return;
  3479. }
  3480. //------------(20080924)
  3481. Sign.certreload = false;
  3482. ds_hidden_drugreportinfo.setColumn(0, "signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  3483. ds_hidden_drugreportinfo.setColumn(0, "signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  3484. }else{
  3485. ds_hidden_drugreportinfo.setColumn(0, "signbfcnts", ""); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  3486. ds_hidden_drugreportinfo.setColumn(0, "signaftcnts", ""); // 공인인증 처리후 데이터
  3487. }
  3488. //---------------------------(20080802)
  3489. // 현재시간설정정보
  3490. ds_hidden_drugreportinfo.setColumn(0, "currentflag", currentflag); //현재시간설정flag
  3491. ds_hidden_drugreportinfo.setColumn(0, "currentdd", currentdd); //현재시간설정시일자
  3492. ds_hidden_drugreportinfo.setColumn(0, "currenttm", currenttm); //현재시간설정시시간
  3493. //---------------------------(20080802)
  3494. //---------------------------(20081211)
  3495. ds_hidden_drugreportinfo.setColumn(0, "preantiyn", preantiyn); //예방적항생제
  3496. //---------------------------(20081211)
  3497. ds_hidden_drugreportinfo.setColumn(0, "antiastrid", antiastrid); //예방적항생제 AST확인자
  3498. ds_send_savedata_drugreportinfo.addRow();
  3499. ds_send_savedata_drugreportinfo.copyRow(inst_cnt, ds_hidden_drugreportinfo, 0);
  3500. inst_cnt++;
  3501. }
  3502. }
  3503. }
  3504. // //alert("중지"); //-----1011
  3505. // return;
  3506. //-----------------------(20080820)
  3507. //return;
  3508. //-----------------------(20080820)
  3509. if(inst_cnt > 0){
  3510. ds_hidden_rtnmsg.clearData();
  3511. frmf_setFocus();
  3512. vsettime = utlf_getCurrentTime();
  3513. dsf_setDefaultVal(ds_send_savedata_drugreportinfo, "all");
  3514. dsf_createDsRow("ds_tempuserInfo", [{col: "uiUserId", val:sysf_getUserId() }]);
  3515. var oParam = {};
  3516. oParam.id = "TXMNR00601";
  3517. oParam.service = "caremedirecapp.CareMediRec";
  3518. oParam.method = "reqExeDrugActingInfo";
  3519. oParam.inds = "reqcond=ds_send_savedata_drugreportinfo tempUserInfo=ds_tempuserInfo";
  3520. oParam.outds = "ds_hidden_rtnmsg=rtnmsg";
  3521. oParam.async = false;
  3522. oParam.callback = "cf_TXMNR00601";
  3523. tranf_submit(oParam);
  3524. if( arErrorCode.pop("TXMNR00601") > -1 ){
  3525. var sRtnMsgStat = utlf_transNullToEmpty(ds_hidden_rtnmsg.getColumn(0, "rtnmsgstat"));
  3526. if( sRtnMsgStat == "0" || sRtnMsgStat == "5" ){
  3527. sysf_messageBox(ds_hidden_rtnmsg.getColumn(0, "rtnmsg"), "C003");//마약 및 향정약은 불출신청 후 투약기록을 , 마약 및 향정약은 부서확인 후 투약기록을
  3528. sysf_setModelAttribute("Narc_Menu_Param", "");
  3529. var sParam = sParam = "I,op";
  3530. sysf_setModelAttribute("Narc_Menu_Param", sParam);
  3531. sysf_setModelAttribute("SMADT30400_Fromdd", ds_hidden_rtnmsg.getColumn(0, "rtnmsgprcpdd"));
  3532. frmf_modal("SMADT30400","SMADT30400",null,"",1,15,128,"","","","","","M");
  3533. sysf_setModelAttribute("SMADT30400_Fromdd", "");
  3534. }else if ( sRtnMsgStat.substring(0,3) == "emc" ){
  3535. sysf_messageBox(ds_hidden_rtnmsg.getColumn(0, "rtnmsg"),"C003");//경구,외용은 투약신청이나 선처치지정후 투약기록을
  3536. var sPatInfo = ds_main_paminfo_pamlist.getColumn(0, "pid")+"▦"
  3537. + ds_main_paminfo_pamlist.getColumn(0, "indd")+"▦"
  3538. + ds_main_paminfo_pamlist.getColumn(0, "cretno")+"▦"
  3539. + "om▦"
  3540. + sRtnMsgStat.substring(3)+"▩";
  3541. frmf_setParameter("SMMNE001_Param",sPatInfo);
  3542. frmf_modal("SMMNE00100","SMMNE00100",null,"","","","","","","","","","M");
  3543. }else {
  3544. //-----------------------------------------------(20080901)
  3545. // 투약기록을 일자별로 XLST를 만들기 위해서
  3546. //java.sql.SQLException: ORA-01400: NULL을 ("EMR"."MRIMESPI"."SIGNGENRFLAG") 안에 삽입할 수 없습니다
  3547. //himed.his.emr.emrreclib.elctcert.dao.ElctCertMngtDAOImpl.insElctCertInfo() at line 128 in ElctCertMngtDAOImpl.java
  3548. //오류로 임시로막음
  3549. //-----------------------------------------------
  3550. ////////alert("test");
  3551. //--------------------------(20080917)
  3552. //Sign.certreload = false ; // 전자서명 호출시 인증저장 버튼을 누늘때마다 인증서가 뜨도록 처리
  3553. //--------------------------(20080917)
  3554. fnWorkddSign(signDates);
  3555. //-----------------------------------------------(20080901)
  3556. // messageBox("성공적으로","I001"); // [TASK번호:37895, 요청번호:8895] 투약기록후 저장완료 메시지 삭제_20091027(ByJA)
  3557. }
  3558. }
  3559. fClickDrugListBefore(); //------------(20081031)
  3560. if(screen_mode == "pat"){
  3561. fClickDrugList(screen_mode, group3.swtpatList.pat.grd_patlist.currentrow);
  3562. }else if(screen_mode == "act"){
  3563. fClickDrugList(screen_mode, group3.swtpatList.act.grd_actlist.currentrow);
  3564. fGetActList();
  3565. fSetActTopInfo();
  3566. }else{}
  3567. fClickDrugListAfter(); //------------(20081031)
  3568. }else{
  3569. sysf_messageBox("저장 할 내용이","I004");
  3570. return;
  3571. }
  3572. //-----------------------(20080819)
  3573. //저장한후 현재시각을 초기화 한다.
  3574. ds_main_cond.setColumn(0, "acttimeflag", "");
  3575. ds_main_cond.setColumn(0, "currentday", "");
  3576. ds_main_cond.setColumn(0, "currenttime", "");
  3577. //-----------------------(20080819)
  3578. if( group3.swtpatList.tabindex == 0 ){
  3579. group3.swtpatList.pat.grd_patlist.vscrollbar.pos = toprow2;
  3580. }else{
  3581. group3.swtpatList.act.grd_actlist.vscrollbar.pos = toprow2;
  3582. }
  3583. }
  3584. function cf_TXMNR00601(sSvcId, nErrorCode, sErrorMsg) {
  3585. arErrorCode.push(sSvcId, nErrorCode);
  3586. }
  3587. //------------------------------------------(20080902)
  3588. function fnWorkddSign(signDates) {
  3589. //-----------------------------------------------(20080901)
  3590. // 투약기록을 일자별로 XLST를 만들기 위해서
  3591. //-----------------------------------------------
  3592. var sPathSign = ds_signinfo_reqsigncond;
  3593. //----------------------(20081012)
  3594. var pGrd = group3.swtpatList.pat.grd_patlist;
  3595. var pPath = ds_main_wardpatinfo_wardpatlist;
  3596. if(screen_mode == "act"){
  3597. pGrd = group3.swtpatList.act.grd_actlist;
  3598. pPath = ds_main_wardactinfo_wardactlist;
  3599. }
  3600. //----------------------(20081012)
  3601. var signDate = "";
  3602. for( var i=0 ; i<signDates.length ; i++ ){
  3603. signDate = "" + signDates[i];
  3604. if( !utlf_isNull(signDate) ){
  3605. signDate = signDate.replace("-","");
  3606. var spid = pPath.getColumn(pGrd.currentrow, "pid"); //등록번호 (필수)
  3607. var sinstcd = "";//model.getValue("/root/main/wardpatinfo/wardpatlist/instcd"); //기관코드 (사용X)
  3608. var sindd = pPath.getColumn(pGrd.currentrow, "indd"); //입원일자 (필수)
  3609. var scretno = pPath.getColumn(pGrd.currentrow, "cretno");//생성번호 (사용X)
  3610. var sprcpdd = ""; //처방일자 (PRN시 필수)
  3611. var sprcpno = ""; //처방번호 (확인사항)
  3612. var sworkdd = signDate; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  3613. var slistflag = "90"; //작업구분 (필수)
  3614. var snursnm = sysf_getUserName(); //간호사명추가 (필수)
  3615. var shngnm = pPath.getColumn(pGrd.currentrow, "patnm"); //환자명추가 (필수)
  3616. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  3617. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  3618. sPathSign.setColumn(0, "pid", spid); //desc="등록번호"
  3619. sPathSign.setColumn(0, "instcd", sinstcd); //desc="기관코드"
  3620. sPathSign.setColumn(0, "indd", sindd); //desc="입원일자"
  3621. sPathSign.setColumn(0, "cretno", scretno); //desc="생성번호"
  3622. sPathSign.setColumn(0, "prcpdd", sprcpdd); //desc="처방일자"
  3623. sPathSign.setColumn(0, "prcpno", sprcpno); //desc="처방번호"
  3624. sPathSign.setColumn(0, "workdd", sworkdd); //desc="투약일"
  3625. sPathSign.setColumn(0, "listflag", slistflag); //desc="작업구분"
  3626. sPathSign.setColumn(0, "nursnm", snursnm); //desc="간호사명추가"
  3627. sPathSign.setColumn(0, "hngnm", shngnm); //desc="환자명추가"
  3628. sPathSign.setColumn(0, "medrexecdd", smedrexecdd); //desc="화면에서저장할투약일자"
  3629. sPathSign.setColumn(0, "medrexectm", smedrexectm); //desc="화면에서저장할투약시간"
  3630. var pFlag = "Drug"; //저장구분 (Drug : 투약기록)
  3631. var pNode1 = "ds_signinfo_reqsigncond"; //조회할 조건 PATH(의미없음)
  3632. var pNode2 = "ds_signinfo_signdruginfo_signdruglist"; //Return 리스트 PATH
  3633. var pIoflag = pPath.getColumn(pGrd.currentrow, "ordtype"); //---(20080917)
  3634. fCare_SignNode(pFlag, pNode1, pNode2,spid,sindd,scretno,pIoflag);
  3635. //fCare_SignNode(pFlag, pNode1, pNode2, pPid, pIndd, pCretno, pIoflag){
  3636. }
  3637. }
  3638. }
  3639. //------------------------------------------(20080902)
  3640. /**
  3641. * @group :
  3642. * @ver : 2007.12.15
  3643. * @by : 최경용
  3644. * @---------------------------------------------------
  3645. * @type : function
  3646. * @access : public
  3647. * @desc : 투약기록 인증데이터 생성 함수
  3648. * @param :
  3649. * @param :
  3650. * @return :
  3651. * @---------------------------------------------------
  3652. */
  3653. //------투약기록용
  3654. function fMake_SignData(){
  3655. /*
  3656. <signinfo>
  3657. <signdata>
  3658. <pid>29953</pid>
  3659. <hngnm>T입0820</hngnm>
  3660. <prcpdd>20080821</prcpdd>
  3661. <execdd>20080821</execdd>
  3662. <prcpkindnm/>
  3663. <prcpmixno/>
  3664. <prcpcd>DSSL500</prcpcd>
  3665. <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  3666. <prcpvolnm>1500mg</prcpvolnm>
  3667. <prcpqtynm>3T</prcpqtynm>
  3668. <abbrnm>PO</abbrnm>
  3669. <exectm>130000</exectm>
  3670. <nursnm>김보성</nursnm>
  3671. <execcarestatnm>정상투약</execcarestatnm>
  3672. <carecfactnm> </carecfactnm>
  3673. <orddrnm>김만수</orddrnm>
  3674. </signdata>
  3675. </signinfo>
  3676. */
  3677. var execcarestatcd = ds_hidden_drugreportinfo.getColumn(0, "execcarestatcd");
  3678. var medrexecdd = ds_hidden_drugreportinfo.getColumn(0, "medrexecdd");
  3679. var medrexectm = ds_hidden_drugreportinfo.getColumn(0, "medrexectm");
  3680. //이윤주 수정
  3681. if (signgbn == "Z") {
  3682. //테스트
  3683. }
  3684. else {
  3685. //----------------------(20081112)
  3686. //var prcpvol = grd_druglist.labelMatrix((sign_row+1), 5);
  3687. //var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), 6);
  3688. //var prcpqty = grd_druglist.labelMatrix((sign_row+1), 7);
  3689. //var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), 8);
  3690. //var prcpvol = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvol"));
  3691. //var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpvolunitflag"));
  3692. //var prcpqty = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqty"));
  3693. //var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcpqtyunitflag"));
  3694. //var prcptims = grd_druglist.labelMatrix((sign_row+1), grd_druglist.colref("prcptims"));
  3695. //소숫점3자리에서 반올림
  3696. //prcptims = prcptims.replace("#","");
  3697. //prcpvol = fnRound(prcpvol/prcptims,3);
  3698. //prcpqty = fnRound(prcpqty/prcptims,3);
  3699. var objDsxWardDrugListPath = eval(xWardDrugListPath+sign_saverow+"for");
  3700. var prcpvol = objDsxWardDrugListPath.getColumn(sign_savecol, "execprcpvol");
  3701. //var drprcpetc7 = model.getValue(xWardDrugListPath + "[" + sign_saverow + "]/for[" + sign_savecol + "]/drprcpetc7");
  3702. var prcpvolunitflag = group3.grd_druglist.getCellText(sign_row, group3.grd_druglist.getBindCellIndex("body", "prcpvolunitflag"));
  3703. var prcpqty = objDsxWardDrugListPath.getColumn(sign_savecol, "execprcpqty");
  3704. //var drprcpetc8 = model.getValue(xWardDrugListPath + "[" + sign_saverow + "]/for[" + sign_savecol + "]/drprcpetc8");
  3705. var prcpqtyunitflag = group3.grd_druglist.getCellText(sign_row, group3.grd_druglist.getBindCellIndex("body", "prcpqtyunitflag"));
  3706. //alert( prcpvol + "/" + prcpvolunitflag + "/" + prcpqty + "/" +prcpqtyunitflag);
  3707. //----------------------(20081112)
  3708. ds_send_signinfo_signdata.setColumn(0, "pid", ds_hidden_drugreportinfo.getColumn(0, "pid"));
  3709. ds_send_signinfo_signdata.setColumn(0, "hngnm", ds_hidden_drugreportinfo.getColumn(0, "patnm"));
  3710. ds_send_signinfo_signdata.setColumn(0, "prcpdd", ds_hidden_drugreportinfo.getColumn(0, "prcpdd")); //처방일자
  3711. if(medrexecdd == "00000000"){ //투약일자
  3712. ds_send_signinfo_signdata.setColumn(0, "execdd", "");
  3713. }else{
  3714. ds_send_signinfo_signdata.setColumn(0, "execdd", medrexecdd);
  3715. }
  3716. /*
  3717. ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  3718. CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  3719. CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  3720. WHEN a.dccountyn = 'Y' then 'D/C'
  3721. WHEN a.selfdrugflag = 'Y' then 'self'
  3722. END prcpkindnm
  3723. //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  3724. */
  3725. ds_send_signinfo_signdata.setColumn(0, "prcpkindnm", ds_hidden_drugreportinfo.getColumn(0, "prcpkindnm"));
  3726. ds_send_signinfo_signdata.setColumn(0, "prcpmixno", ds_hidden_drugreportinfo.getColumn(0, "mixno")); //MIXNO
  3727. ds_send_signinfo_signdata.setColumn(0, "prcpcd", ds_hidden_drugreportinfo.getColumn(0, "prcpcd")); //처방코드
  3728. ds_send_signinfo_signdata.setColumn(0, "prcpnm", ds_hidden_drugreportinfo.getColumn(0, "prcpnm")); //처방명
  3729. //20110107_KNUH_Start김병국
  3730. //model.makeValue("/root/send/signinfo/signdata/prcpvolnm", drprcpetc7 + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  3731. //model.makeValue("/root/send/signinfo/signdata/prcpqtynm", drprcpetc8 + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  3732. //20110107_KNUH_End김병국
  3733. ds_send_signinfo_signdata.setColumn(0, "prcpvolnm", prcpvol + prcpvolunitflag); //용량단위명칭(용량+용량단위명칭)
  3734. ds_send_signinfo_signdata.setColumn(0, "prcpqtynm", prcpqty + prcpqtyunitflag); //수량단위명칭(수량+수량단위명칭)
  3735. //투여방법약어명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3736. //-----------------(20081112)
  3737. //model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), 10));
  3738. ds_send_signinfo_signdata.setColumn(0, "abbrnm", group3.grd_druglist.getCellText(sign_row, group3.grd_druglist.getBindCellIndex("body", "abbrnm")));
  3739. //-----------------
  3740. if(medrexectm == "000000"){ //투약시간
  3741. ds_send_signinfo_signdata.setColumn(0, "exectm", "");
  3742. }else{
  3743. ds_send_signinfo_signdata.setColumn(0, "exectm", medrexectm);
  3744. }
  3745. ds_send_signinfo_signdata.setColumn(0, "nursnm", sysf_getUserName()); //간호사명칭
  3746. if( utlf_isNull(execcarestatcd) ){
  3747. execcarestatcd = "N";
  3748. }
  3749. //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  3750. //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  3751. ds_send_signinfo_signdata.setColumn(0, "execcarestatnm", ds_hidden_actmenu_menu.getColumn(ds_hidden_actmenu_menu.findRow("cd", execcarestatcd), "nm"));
  3752. //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  3753. ds_send_signinfo_signdata.setColumn(0, "carecfactnm", ds_hidden_drugreportinfo.getColumn(0, "carecfactnm"));
  3754. //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3755. ds_send_signinfo_signdata.setColumn(0, "orddrnm", ds_hidden_drugreportinfo.getColumn(0, "orddrnm"));
  3756. Sign.addnode("/signdata", ds_send_signinfo_signdata.saveXML());
  3757. //Sign.signedInfos[1] 는 없음
  3758. ////////////alert("fmake_signdata"+ Sign.signedInfos[1] );
  3759. }
  3760. }
  3761. //----------투약기록-INTERFACE용 (test완료)
  3762. //TEST용
  3763. //function fMake_SignData_interface(){
  3764. //
  3765. // //////////alert("fMake_SignData---------시작");
  3766. // /*
  3767. // <signinfo>
  3768. // <signdata>
  3769. // <pid>29953</pid>
  3770. // <hngnm>T입0820</hngnm>
  3771. // <prcpdd>20080821</prcpdd>
  3772. // <execdd>20080821</execdd>
  3773. // <prcpkindnm/>
  3774. // <prcpmixno/>
  3775. // <prcpcd>DSSL500</prcpcd>
  3776. // <prcpnm>Disal tab. 500mg (Salsalate)</prcpnm>
  3777. // <prcpvolnm>1500mg</prcpvolnm>
  3778. // <prcpqtynm>3T</prcpqtynm>
  3779. // <abbrnm>PO</abbrnm>
  3780. // <exectm>130000</exectm>
  3781. // <nursnm>김보성</nursnm>
  3782. // <execcarestatnm>정상투약</execcarestatnm>
  3783. // <carecfactnm> </carecfactnm>
  3784. // <orddrnm>김만수</orddrnm>
  3785. // </signdata>
  3786. // </signinfo>
  3787. // */
  3788. //
  3789. // var ssigndruglist = "/root/signinfo/signdruginfo/signdruglist";
  3790. //
  3791. // var spid = model.getValue(ssigndruglist + "[" + sSignRow + "]/pid");
  3792. // var shngnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/hngnm");
  3793. // var sprcpdd = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpdd");
  3794. // var sexecdd = model.getValue(ssigndruglist + "[" + sSignRow + "]/execdd");
  3795. // /*
  3796. // ,CASE WHEN a.careprnexecflag = 'P' THEN 'PRN' ELSE '' END || ' ' ||
  3797. // CASE WHEN a.anticncrprtlno <> 0 THEN '항암' ELSE '' END || ' ' ||
  3798. // CASE WHEN a.dccountyn = 'Y' AND a.selfdrugflag = 'Y' THEN 'self D/C'
  3799. // WHEN a.dccountyn = 'Y' then 'D/C'
  3800. // WHEN a.selfdrugflag = 'Y' then 'self'
  3801. // END prcpkindnm
  3802. // //처방종류명 (다른업무에서 투약기록관련인증정보를 생성시 어려운 항목
  3803. // */
  3804. // var sprcpkindnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpkindnm");
  3805. // var sprcpmixno = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpmixno");
  3806. // var sprcpcd = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpcd");
  3807. // var sprcpnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpnm");
  3808. // var sprcpvolnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpvolnm");
  3809. // var sprcpqtynm = model.getValue(ssigndruglist + "[" + sSignRow + "]/prcpqtynm");
  3810. // var sabbrnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/abbrnm");
  3811. // var sexectm = model.getValue(ssigndruglist + "[" + sSignRow + "]/exectm");
  3812. // var snursnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/nursnm");
  3813. // var sexeccarestatnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/execcarestatnm");
  3814. // var scarecfactnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/carecfactnm");
  3815. // var sorddrnm = model.getValue(ssigndruglist + "[" + sSignRow + "]/orddrnm");
  3816. //
  3817. // model.resetInstanceNode("/root/send/signinfo/signdata");
  3818. // model.makeValue("/root/send/signinfo/signdata/pid", spid );
  3819. // model.makeValue("/root/send/signinfo/signdata/hngnm", shngnm );
  3820. // model.makeValue("/root/send/signinfo/signdata/prcpdd", sprcpdd ); //처방일자
  3821. //
  3822. // if(sexecdd == "00000000"){ //투약일자
  3823. // model.makeValue("/root/send/signinfo/signdata/execdd", "");
  3824. // }else{
  3825. // model.makeValue("/root/send/signinfo/signdata/execdd", sexecdd);
  3826. // }
  3827. //
  3828. // model.makeValue("/root/send/signinfo/signdata/prcpkindnm", sprcpkindnm );
  3829. // model.makeValue("/root/send/signinfo/signdata/prcpmixno", sprcpmixno ); //MIXNO
  3830. //
  3831. // model.makeValue("/root/send/signinfo/signdata/prcpcd", sprcpcd ); //처방코드
  3832. // model.makeValue("/root/send/signinfo/signdata/prcpnm", sprcpnm ); //처방명
  3833. // model.makeValue("/root/send/signinfo/signdata/prcpvolnm", sprcpvolnm ); //용량단위명칭(용량+용량단위명칭)
  3834. // model.makeValue("/root/send/signinfo/signdata/prcpqtynm", sprcpqtynm ); //수량단위명칭(수량+수량단위명칭)
  3835. // //투여방법약어명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3836. // model.makeValue("/root/send/signinfo/signdata/abbrnm", sabbrnm );
  3837. //
  3838. // if(sexectm == "000000"){ //투약시간
  3839. // model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3840. // }else{
  3841. // model.makeValue("/root/send/signinfo/signdata/exectm", sexectm);
  3842. // }
  3843. // model.makeValue("/root/send/signinfo/signdata/nursnm", snursnm); //간호사명칭
  3844. // if(sexeccarestatnm == "") sexeccarestatnm = "N";
  3845. //
  3846. // //미확인,정상투약,투약X-반환가능,투약X-반환불가,퇴원당일남은약
  3847. // //(다른업무에서 투약기록관련인증정보를 생성시 정상투약,)
  3848. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", sexeccarestatnm);
  3849. // //간호사REMARK CODE에 대한 REMARK 명칭((다른업무에서 투약기록관련인증정보를 생성시 공백)
  3850. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", scarecfactnm);
  3851. // //진료의명(다른업무에서 투약기록관련인증정보를 생성시 어려운 항목)
  3852. // model.makeValue("/root/send/signinfo/signdata/orddrnm", sorddrnm);
  3853. // //--------------------------(20080902)
  3854. // //건별인증은 통합기록조회에서 보이지 않고 일자별을 보이기 위해서
  3855. // //건별인증은 dispyn ='N'
  3856. // model.makeValue("/root/send/signinfo/signdata/dispyn", "N");
  3857. // //--------------------------(20080902)
  3858. //
  3859. // Sign.addnode("/root/send/signinfo/signdata");
  3860. // //////////alert("fMake_SignData---------종료");
  3861. // //Sign.signedInfos[1] 는 없음
  3862. // ////////////alert("fmake_signdata"+ Sign.signedInfos[1] );
  3863. //}
  3864. //원본(20080825)
  3865. //function fMake_SignData_OLD(){
  3866. //
  3867. // var execcarestatcd = model.getValue("/root/hidden/drugreportinfo/execcarestatcd");
  3868. // var medrexecdd = model.getValue("/root/hidden/drugreportinfo/medrexecdd");
  3869. // var medrexectm = model.getValue("/root/hidden/drugreportinfo/medrexectm");
  3870. // var prcpvol = grd_druglist.labelMatrix((sign_row+1), 5);
  3871. // var prcpvolunitflag = grd_druglist.labelMatrix((sign_row+1), 6);
  3872. // var prcpqty = grd_druglist.labelMatrix((sign_row+1), 7);
  3873. // var prcpqtyunitflag = grd_druglist.labelMatrix((sign_row+1), 8);
  3874. // model.resetInstanceNode("/root/send/signinfo/signdata");
  3875. // model.makeValue("/root/send/signinfo/signdata/pid", model.getValue("/root/hidden/drugreportinfo/pid"));
  3876. // model.makeValue("/root/send/signinfo/signdata/hngnm", model.getValue("/root/hidden/drugreportinfo/patnm"));
  3877. // model.makeValue("/root/send/signinfo/signdata/prcpdd", model.getValue("/root/hidden/drugreportinfo/prcpdd"));
  3878. // if(medrexecdd == "00000000"){
  3879. // model.makeValue("/root/send/signinfo/signdata/execdd", "");
  3880. // }else{
  3881. // model.makeValue("/root/send/signinfo/signdata/execdd", medrexecdd);
  3882. // }
  3883. // model.makeValue("/root/send/signinfo/signdata/prcpkindnm", model.getValue("/root/hidden/drugreportinfo/prcpkindnm"));
  3884. // model.makeValue("/root/send/signinfo/signdata/prcpmixno", model.getValue("/root/hidden/drugreportinfo/mixno"));
  3885. // model.makeValue("/root/send/signinfo/signdata/prcpcd", model.getValue("/root/hidden/drugreportinfo/prcpcd"));
  3886. // model.makeValue("/root/send/signinfo/signdata/prcpnm", model.getValue("/root/hidden/drugreportinfo/prcpnm"));
  3887. // model.makeValue("/root/send/signinfo/signdata/prcpvolnm", prcpvol + prcpvolunitflag);
  3888. // model.makeValue("/root/send/signinfo/signdata/prcpqtynm", prcpqty + prcpqtyunitflag);
  3889. // model.makeValue("/root/send/signinfo/signdata/abbrnm", grd_druglist.labelMatrix((sign_row+1), 10));
  3890. // if(medrexectm == "000000"){
  3891. // model.makeValue("/root/send/signinfo/signdata/exectm", "");
  3892. // }else{
  3893. // model.makeValue("/root/send/signinfo/signdata/exectm", medrexectm);
  3894. // }
  3895. // model.makeValue("/root/send/signinfo/signdata/nursnm", getUserName());
  3896. // if(execcarestatcd == ""){
  3897. // execcarestatcd = "N";
  3898. // }
  3899. // model.makeValue("/root/send/signinfo/signdata/execcarestatnm", model.getValue("/root/hidden/actmenu/menu[cd ='" + execcarestatcd + "']/nm"));
  3900. // model.makeValue("/root/send/signinfo/signdata/carecfactnm", model.getValue("/root/hidden/drugreportinfo/carecfactnm"));
  3901. // model.makeValue("/root/send/signinfo/signdata/orddrnm", model.getValue("/root/hidden/drugreportinfo/orddrnm"));
  3902. // Sign.addnode("/root/send/signinfo/signdata");
  3903. //}
  3904. /**
  3905. * @group :
  3906. * @ver : 2007.06.25
  3907. * @by : 최경용
  3908. * @---------------------------------------------------
  3909. * @type : function
  3910. * @access : public
  3911. * @desc : 미투약 환자 리스트 조회
  3912. * @param :
  3913. * @return :
  3914. * @---------------------------------------------------
  3915. */
  3916. function fGetActList(){
  3917. var pid = "";
  3918. var indd = "";
  3919. var cretno = "";
  3920. var comppid = "";
  3921. var compprcpdd = "";
  3922. var prcptims = "";
  3923. var prcpdd = "";
  3924. var row = -1;
  3925. var drugtmspec = "";
  3926. var calcdate = "";
  3927. var prcpdd_Array = new Array;
  3928. var pid_Array = new Array;
  3929. var cnt = 1;
  3930. if( group3.swtpatList.act.grd_actlist.currentrow > -1 ){
  3931. pid = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "pid");
  3932. indd = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "indd");
  3933. cretno = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "cretno");
  3934. prcpdd = ds_main_wardactinfo_wardactlist.getColumn(ds_main_wardactinfo_wardactlist.rowposition, "prcpdd");
  3935. }
  3936. // model.resetInstanceNode("/root/send/reqdata");
  3937. ds_send_reqdata.copyRow(0, ds_main_cond, 0);
  3938. if( ds_main_cond.getColumn(0, "wardcd") == spcldept ){
  3939. ds_send_reqdata.setColumn(0, "spclyn", "Y");
  3940. group3.swtpatList.act.grd_actlist.setFormatColProperty(group3.swtpatList.act.grd_actlist.getBindCellIndex("body", "existyn"), "size", 20);
  3941. } else {
  3942. group3.swtpatList.act.grd_actlist.setFormatColProperty(group3.swtpatList.act.grd_actlist.getBindCellIndex("body", "existyn"), "size", 0);
  3943. }
  3944. ds_main_warddruginfo_warddruglist.clearData();
  3945. var oParam = {};
  3946. oParam.id = "TRMNR00605";
  3947. oParam.service = "caremedirecapp.CareMediRec";
  3948. oParam.method = "reqGetWardActList";
  3949. oParam.inds = "reqcond=ds_send_reqdata";
  3950. oParam.outds = "ds_main_wardactinfo_wardactlist=wardactlist";
  3951. oParam.async = false;
  3952. //oParam.callback = "cf_TRMNR00605";
  3953. tranf_submit(oParam);
  3954. for( var i=0 ; i<ds_main_wardactinfo_wardactlist.rowcount ; i++ ){
  3955. if( pid == ds_main_wardactinfo_wardactlist.getColumn(i, "pid") &&
  3956. indd == ds_main_wardactinfo_wardactlist.getColumn(i, "indd") &&
  3957. cretno == ds_main_wardactinfo_wardactlist.getColumn(i, "cretno") &&
  3958. prcpdd == ds_main_wardactinfo_wardactlist.getColumn(i, "prcpdd") ){
  3959. row = i;
  3960. }
  3961. }
  3962. ds_main_wardactinfo_wardactlist.rowposition = row;
  3963. }
  3964. /**
  3965. * @group :
  3966. * @ver : 2007.06.25
  3967. * @by : 최경용
  3968. * @---------------------------------------------------
  3969. * @type : function
  3970. * @access : public
  3971. * @desc : 투약카드 출력(A2:경구, A4:외용, A61:주사, A60:수액)
  3972. * @param : sLineFlag : "Y" - 투약worklist에서 호출 시 투약카드에 점선기능 추가
  3973. * @return :
  3974. * @---------------------------------------------------
  3975. */
  3976. function fClickDrugPrint(sLineFlag){
  3977. ds_send_medicard_warddruglist.clearData();
  3978. //model.makeNode("/root/send/medicard");
  3979. var prt_row = ds_temp.getColumn(0, "row");
  3980. var prt_col = ds_temp.getColumn(0, "col");
  3981. if( utlf_isNull(prt_row) || prt_row > 4){
  3982. sysf_messageBox("1 ~ 4줄만 입력할수 있습니다.","I999");
  3983. return;
  3984. }
  3985. if( utlf_isNull(prt_col) || prt_col > 4 ){
  3986. sysf_messageBox("1 ~ 4 칸만 입력할수 있습니다.","I999");
  3987. return;
  3988. }
  3989. var rows = group3.grd_druglist.rowcount;
  3990. var prcpclscd = "";
  3991. var prcptims = "";
  3992. var mthdcd = "";
  3993. var prcpmixno = "";
  3994. var drugbasetmspec = "";
  3995. var viewroomcd = ""; //20090629
  3996. var todaydrug = ""; //20090629
  3997. var medicardcnt = 1;//경구
  3998. //var medicardcnt5 = 1;//주사
  3999. //var medicardcnt7 = 1;//외용
  4000. var prtTims_Array = new Array;
  4001. var prtMthd_Array = new Array;
  4002. var prtBaseTims_Array = new Array;
  4003. var prtMix_Array = new Array;
  4004. var k=0;
  4005. //model.removeNodeSet("/root/send/medicard");
  4006. //model.makeNode("/root/send/medicard/warddruglist");
  4007. for( var i=0 ; i<rows ; i++ ){
  4008. if( ds_main_warddruginfo_warddruglist.getColumn(i, "check") == "1" ){
  4009. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  4010. tims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  4011. mthdcd = ds_main_warddruginfo_warddruglist.getColumn(i, "mthdcd");
  4012. prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  4013. drugbasetmspec = ds_main_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec");
  4014. viewroomcd = group3.caption57.value; //20090629
  4015. todaydrug = ds_main_warddruginfo_warddruglist.getColumn(i, "todaydrug"); //20090629
  4016. if(todaydrug == "Y"){ // 조회당일 화면에 표시된것만_20090629
  4017. if(prcpclscd == "A2"){//경구
  4018. if(isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd) == -1){
  4019. prtBaseTims_Array[medicardcnt] = drugbasetmspec;
  4020. prtMthd_Array[medicardcnt] = mthdcd;
  4021. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", medicardcnt);
  4022. medicardcnt++;
  4023. }else{
  4024. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", isSearchArrayIndex2(prtBaseTims_Array, drugbasetmspec, prtMthd_Array, mthdcd));
  4025. }
  4026. }
  4027. //if(prcpclscd == "A60" || prcpclscd == "A61"){//주사
  4028. if(prcpclscd == "A60"){//주사_의정부간호사 이언희선생님 요청으로 수액제외함_20090529(ByJA)
  4029. if( utlf_isNull(prcpmixno) || isSearchArrayIndex(prtMix_Array, prcpmixno) == -1){
  4030. prtMix_Array[medicardcnt] = prcpmixno;
  4031. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", medicardcnt);
  4032. medicardcnt++;
  4033. }else{
  4034. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", isSearchArrayIndex(prtMix_Array, prcpmixno));
  4035. }
  4036. }
  4037. if(prcpclscd == "A4"){//외용
  4038. ds_main_warddruginfo_warddruglist.setColumn(i, "soding", medicardcnt);
  4039. medicardcnt++;
  4040. }
  4041. }
  4042. // 투약카드 출력 시 사용
  4043. var drugtmspect = "";
  4044. var drugtmspectime = "";
  4045. var tmpdrugtmspect = "";
  4046. var drugtmspectlist = "";
  4047. var tims = "";
  4048. var space;
  4049. drugtmspect = ds_main_warddruginfo_warddruglist.getColumn(i, "drugtmspec_recalc1"); // drugbasetmspec
  4050. drugtmspect = drugtmspect.split(" ");
  4051. tims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  4052. // 횟수별 시간공백지정
  4053. if(tims < 4){
  4054. space = " ";
  4055. }else{
  4056. space = " ";
  4057. }
  4058. // Sort기능
  4059. var tempmin=0, tempmax=0;
  4060. for( var j=1 ; j<drugtmspect.length ; j++ ){
  4061. if(Number(drugtmspect[j-1]) > Number(drugtmspect[j])){
  4062. tempmin = drugtmspect[j];
  4063. drugtmspect[j] = drugtmspect[j-1];
  4064. drugtmspect[j-1] = tempmin;
  4065. }
  4066. }
  4067. for( var j=0 ; j<drugtmspect.length ; j++ ){
  4068. if(Number(drugtmspect[j]) > Number(drugtmspect[j+1])){
  4069. tempmax = drugtmspect[j];
  4070. drugtmspect[j] = drugtmspect[j+1];
  4071. drugtmspect[j+1] = tempmax;
  4072. }
  4073. }
  4074. for( var j=0 ; j<drugtmspect.length ; j++ ){
  4075. if( !utlf_isNull(drugtmspect[j]) ){
  4076. tmpdrugtmspect = Number(drugtmspect[j]);
  4077. if(tmpdrugtmspect > 1200){
  4078. if(tmpdrugtmspect >= 1300){
  4079. tmpdrugtmspect = tmpdrugtmspect - 1200;
  4080. }
  4081. if(tmpdrugtmspect < 1000){
  4082. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  4083. }
  4084. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  4085. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "P" + space;
  4086. }else{
  4087. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "P" + space;
  4088. }
  4089. }else if(tmpdrugtmspect <= 1200){
  4090. if(tmpdrugtmspect < 1000){
  4091. tmpdrugtmspect = "0"+ String(tmpdrugtmspect);
  4092. }
  4093. if(String(tmpdrugtmspect).substr(2,2) == "00"){
  4094. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + "A" + space;
  4095. }else{
  4096. drugtmspectime += String(tmpdrugtmspect).substr(0,2) + ":" + String(tmpdrugtmspect).substr(2,2) + "A" + space;
  4097. }
  4098. }
  4099. }
  4100. ds_main_warddruginfo_warddruglist.setColumn(i, "tempdrugtmspeccal", drugtmspectime);
  4101. } // end for 투약카드
  4102. /*
  4103. grd_drugprt.addRow();
  4104. model.makeValue("/root/send/medicard/warddruglist["+k+"]/last" , medicardcnt-1);
  4105. model.makeValue("/root/send/medicard/warddruglist["+k+"]/row" , model.getValue("/root/temp/row"));
  4106. model.makeValue("/root/send/medicard/warddruglist["+k+"]/col" , model.getValue("/root/temp/col"));
  4107. model.makeValue("/root/send/medicard/warddruglist["+k+"]/roomcd" , model.getValue(xWardDrugListPath+"["+i+"]/roomcd"));
  4108. model.makeValue("/root/send/medicard/warddruglist["+k+"]/pid" , model.getValue(xWardDrugListPath+"["+i+"]/pid"));
  4109. model.makeValue("/root/send/medicard/warddruglist["+k+"]/patnm" , model.getValue(xWardDrugListPath+"["+i+"]/patnm"));
  4110. model.makeValue("/root/send/medicard/warddruglist["+k+"]/sexage" , model.getValue(xWardDrugListPath+"["+i+"]/sexage"));
  4111. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpcd" , model.getValue(xWardDrugListPath+"["+i+"]/prcpcd"));
  4112. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpvol" , model.getValue(xWardDrugListPath+"["+i+"]/prcpvol"));
  4113. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpvolunitflag" , model.getValue(xWardDrugListPath+"["+i+"]/prcpvolunitflag"));
  4114. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpqty" , model.getValue(xWardDrugListPath+"["+i+"]/prcpqty"));
  4115. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcpqtyunitflag" , model.getValue(xWardDrugListPath+"["+i+"]/prcpqtyunitflag"));
  4116. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prcptims" , model.getValue(xWardDrugListPath+"["+i+"]/prcptims"));
  4117. model.makeValue("/root/send/medicard/warddruglist["+k+"]/tempdrugtmspeccal", model.getValue(xWardDrugListPath+"["+i+"]/tempdrugtmspeccal"));
  4118. model.makeValue("/root/send/medicard/warddruglist["+k+"]/abbrnm" , model.getValue(xWardDrugListPath+"["+i+"]/abbrnm"));
  4119. model.makeValue("/root/send/medicard/warddruglist["+k+"]/prtabbrnm" , model.getValue(xWardDrugListPath+"["+i+"]/prtabbrnm"));
  4120. model.makeValue("/root/send/medicard/warddruglist["+k+"]/soding" , model.getValue(xWardDrugListPath+"["+i+"]/soding"));
  4121. model.makeValue("/root/send/medicard/warddruglist["+k+"]/astyn" , model.getValue(xWardDrugListPath+"["+i+"]/astyn"));
  4122. k++;
  4123. */
  4124. } // end if check
  4125. } // end for
  4126. // 원본
  4127. /*
  4128. for(var j = 1; j < rows; j++){
  4129. model.makeValue(xWardDrugListPath + "[" + j + "]/last" , medicardcnt-1);
  4130. model.makeValue(xWardDrugListPath + "[" + j + "]/row" , model.getValue("/root/temp/row"));
  4131. model.makeValue(xWardDrugListPath + "[" + j + "]/col" , model.getValue("/root/temp/col"));
  4132. model.makeValue(xWardDrugListPath + "[" + j + "]/sLineFlag" , sLineFlag); // 20090629
  4133. //model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , model.getValue("/root/main/cond/roomcd")); // 원본_20090629
  4134. model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , viewroomcd); // 20090629
  4135. model.makeNode("/root/send/medicard");
  4136. if(model.getValue("/root/main/warddruginfo/warddruglist[" + j + "]/check") =="true") {
  4137. model.duplicate("/root/send/medicard", "/root/main/warddruginfo/warddruglist[" + j + "]");
  4138. }
  4139. }
  4140. */
  4141. /** <addon>
  4142. *개발일시: 2010.05.28
  4143. *개발자: 양천덕
  4144. *요청병원: 세종병원
  4145. *요청파트: 간호
  4146. *개발내용: 투약라벨 출력형식 변경 및 오류 수정 처리
  4147. </addon>
  4148. */
  4149. for( var InsSoding=0 ; InsSoding<=medicardcnt ; InsSoding++ ){
  4150. for( var j=0 ; j<rows ; j++ ){
  4151. if(InsSoding == ds_main_warddruginfo_warddruglist.getColumn(j, "soding") ){
  4152. ds_main_warddruginfo_warddruglist.setColumn(j, "last", medicardcnt-1);
  4153. ds_main_warddruginfo_warddruglist.setColumn(j, "row", ds_temp.getColumn(0, "row"));
  4154. ds_main_warddruginfo_warddruglist.setColumn(j, "col", ds_temp.getColumn(0, "col"));
  4155. ds_main_warddruginfo_warddruglist.setColumn(j, "sLineFlag", sLineFlag); // 20090629
  4156. //model.makeValue(xWardDrugListPath + "[" + j + "]/viewroomcd" , model.getValue("/root/main/cond/roomcd")); // 원본_20090629
  4157. ds_main_warddruginfo_warddruglist.setColumn(j, "viewroomcd", viewroomcd); // 20090629
  4158. if( ds_main_warddruginfo_warddruglist.getColumn(j, "check") == "1" ){
  4159. var nRow = ds_send_medicard_warddruglist.addRow();
  4160. ds_send_medicard_warddruglist.copyRow(nRow, ds_main_warddruginfo_warddruglist, j);
  4161. ds_send_medicard_warddruglist.setColumn(nRow, "viewroomcd", ds_send_medicard_warddruglist.getColumn(nRow, "roomcd"));
  4162. //alert(instance1.selectNodesXml("/root/send/medicard"));
  4163. }
  4164. }
  4165. }
  4166. }
  4167. if(medicardcnt > 1){
  4168. // exeReportPreview("RPMNR00600", "XMLSTR" , "" , "" , "true" , "", "", "", "", "true"); // 미리보기 기능 없음
  4169. var objDOM = rptf_createDOM(); // DOM 객체 설정
  4170. rptf_setNodeListToDOM(objDOM, "root/send/medicard/warddruglist", ds_send_medicard_warddruglist); // 데이터셋
  4171. rptf_setNodeListToDOM(objDOM, "root/send/medicard5/warddruglist", ds_send_medicard_warddruglist); // 데이터셋
  4172. var objParam = new Object();
  4173. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  4174. objParam.xml_data_XML2 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  4175. objParam.xml_data_XML3 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  4176. var option = "open=1;save=1;directprint=0;printdialog=0;print=1;zoom=0;";
  4177. rptf_exeReportPreview30(["RPMNR00600"],[objParam], option); // 미리보기 기능 있음 TEST용
  4178. } else{
  4179. if(prcpclscd == "A61"){
  4180. sysf_messageBox("수액은 출력되지 않습니다.","I");
  4181. }else{
  4182. //2010.11.16_KNUH_수정
  4183. //messageBox("투약카드 출력항목이 아닙니다","I");
  4184. sysf_messageBox("출력할 내용이","I004");
  4185. }
  4186. }
  4187. }
  4188. /**
  4189. * @group :
  4190. * @ver : 2007.06.25
  4191. * @by : 최경용
  4192. * @---------------------------------------------------
  4193. * @type : function
  4194. * @access : public
  4195. * @desc : 문자열 검색(배열)
  4196. * @param :
  4197. * @return :
  4198. * @---------------------------------------------------
  4199. */
  4200. function isSearchArrayIndex2(baseCol_Array1, sData1, baseCol_Array2, sData2){
  4201. for(var i = 0; i <= baseCol_Array1.length; i++){
  4202. if(baseCol_Array1[i] == sData1 && baseCol_Array2[i] == sData2){
  4203. return i;
  4204. }
  4205. }
  4206. return -1;
  4207. }
  4208. /**
  4209. * @group :
  4210. * @ver : 2007.06.25
  4211. * @by : 최경용
  4212. * @---------------------------------------------------
  4213. * @type : function
  4214. * @access : public
  4215. * @desc : 주사라벨 출력
  4216. * @param :
  4217. * @return :
  4218. * @---------------------------------------------------
  4219. */
  4220. //------------(20080929로직변경됨)
  4221. function fClickInjPrint(){
  4222. ds_hidden_medicard8_warddruglist.clearData();
  4223. //2. 바코드 라벨 환경설정
  4224. var barcdRef = "ds_data_setupinfo";
  4225. var portOpenTF = fSetNursBarcdInfo(barcdRef); // CareCom.js
  4226. var pid = ds_main_patinfo.getColumn(0, "pid");
  4227. var patnm = ds_main_patinfo.getColumn(0, "patnm");
  4228. var sexage = ds_main_patinfo.getColumn(0, "sexage");
  4229. var roomcd = ds_main_patinfo.getColumn(0, "roomcd");
  4230. var prcpcd = "";
  4231. var prcptims = "";
  4232. var prcpvol = "";
  4233. var prcpqty = "";
  4234. var execprcpvol = "";
  4235. var execprcpqty = "";
  4236. var prcpvolunitflag = "";
  4237. var prcpqtyunitflag = "";
  4238. var abbrnm = "";
  4239. var ast = "";
  4240. var prcpdelivefact = "";
  4241. var prcpdd = "";
  4242. var medirectm = "";
  4243. var totalmedirectm = "";
  4244. var prcpclscd = "";
  4245. var drugtmspec;
  4246. var disp1 = ""; //주사기(체액주의)
  4247. var disp2 = ""; //손모양(접촉주의)
  4248. var disp3 = ""; //마스크(공기주의)
  4249. var infcinfo = "";
  4250. var preanti = ""; //수술예방적항생제 ast 결과 표시 위해
  4251. var preantiast = ""; //수술예방적항생제 ast 결과 라벨 출력 parameter
  4252. //var labelyn = "FALSE"; //20101116_주석처리
  4253. ds_codelist.filter("");
  4254. if( !utlf_isNull(ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid=='002' && cdid=='"+group3.group5.cmb_ward.value+"'"), "cdid")) ){
  4255. roomcd = ds_main_wardpatinfo_wardpatlist.getColumn(ds_main_wardpatinfo_wardpatlist.rowposition, "typedetl");
  4256. }
  4257. ds_codelist.filter("cdgrupid=='U29'");
  4258. for( var idx=0 ; idx<group3.grd_druglist.rowcount ; idx++ ){
  4259. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(idx, "prtprcpclscd");
  4260. if ( prcpclscd != "A60" && prcpclscd != "A62" && prcpclscd != "A6" && ds_main_warddruginfo_warddruglist.getColumn(idx, "check") == "1" ){ //수액믹스 주사제 제외.
  4261. ds_main_warddruginfo_warddruglist.setColumn(idx, "check", "0"); //1001
  4262. }
  4263. }
  4264. for( var i=0 ; i<ds_main_warddruginfo_warddruglist.rowcount ; i++ ){
  4265. if( ds_main_warddruginfo_warddruglist.getColumn(i, "check") == "1" &&
  4266. (ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd") == "A60" || ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd") == "A62" ||
  4267. ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd") == "A6") ){
  4268. var nRow = ds_hidden_medicard8_warddruglist.addRow();
  4269. ds_hidden_medicard8_warddruglist.copyRow(nRow, ds_main_warddruginfo_warddruglist, i);
  4270. dsf_createDs("ds_hidden_medicard8_warddruglist"+nRow+"for");
  4271. eval("ds_hidden_medicard8_warddruglist"+nRow+"for").assign(eval(xWardDrugListPath+i+"for"));
  4272. }
  4273. }
  4274. if( ds_hidden_medicard8_warddruglist.rowcount <= 1 && utlf_isNull(ds_hidden_medicard8_warddruglist.getColumn(0, "prcpcd")) ){
  4275. sysf_messageBox("선택된 믹스주사를 제외한 주사제가 존재하지 않습니다.","I007");
  4276. return;
  4277. }
  4278. for( var jdx=0 ; jdx<ds_hidden_medicard8_warddruglist.rowcount && !utlf_isNull(ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpcd")) ; jdx++ ){
  4279. var objDsxHiddenMediCard8 = eval("ds_hidden_medicard8_warddruglist"+jdx+"for");
  4280. medirectm = "";
  4281. //prcpcd = model.getValue(xHiddenMediCard8 + "["+jdx+"]/prcpcdprt"); //20101116_KNUH
  4282. prcpcd = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpnm");
  4283. prcptims = ds_hidden_medicard8_warddruglist.getColumn(jdx, "tims");
  4284. prcpvol = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpvol");
  4285. prcpqty = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpqty");
  4286. execprcpvol = objDsxHiddenMediCard8.getColumn(0, "execprcpvol");//1회별 용량 20091120 김홍점
  4287. execprcpqty = objDsxHiddenMediCard8.getColumn(0, "execprcpqty");//1회별 수량 20091120 김홍점
  4288. prcpvolunitflag = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpvolunitflag");
  4289. prcpqtyunitflag = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpqtyunitflag");
  4290. abbrnm = ds_hidden_medicard8_warddruglist.getColumn(jdx, "abbrnm");
  4291. ast = ds_hidden_medicard8_warddruglist.getColumn(jdx, "ast");
  4292. prcpdelivefact = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpdelivefact");
  4293. prcpdd = ds_hidden_medicard8_warddruglist.getColumn(jdx, "prcpdd");
  4294. //drugtmspec = (model.getValue(xHiddenMediCard8 + "["+jdx+"]/drugtmspec_recalc1")).split(" ");
  4295. drugtmspec = utlf_transNullToEmpty(ds_hidden_medicard8_warddruglist.getColumn(jdx, "disptmarray")).split(" ");
  4296. execprcptims = ds_hidden_medicard8_warddruglist.getColumn(jdx, "tims")/drugtmspec.length;//회수 20091120 김홍점
  4297. totalmedirectm = "";
  4298. disp1 = ds_hidden_medicard8_warddruglist.getColumn(jdx, "disp1");
  4299. disp2 = ds_hidden_medicard8_warddruglist.getColumn(jdx, "disp2");
  4300. disp3 = ds_hidden_medicard8_warddruglist.getColumn(jdx, "disp3");
  4301. disp4 = ds_hidden_medicard8_warddruglist.getColumn(jdx, "disp4");
  4302. //KJS 2014.01.05 수술예방적항생제
  4303. preanti = ds_hidden_medicard8_warddruglist.getColumn(jdx, "execcarestatcd");
  4304. if(disp1 == "Y" || disp2 == "Y" || disp3 == "Y") {
  4305. infcinfo ="";
  4306. if(disp3 == "Y") {
  4307. infcinfo += "[ A ]";
  4308. }
  4309. if(disp1 == "Y") {
  4310. infcinfo += "[ B ]";
  4311. }
  4312. if(disp2 == "Y") {
  4313. infcinfo += "[ C ]";
  4314. }
  4315. if(disp4 == "Y") {
  4316. infcinfo += "[ D ]";
  4317. }
  4318. }
  4319. // ER과 병동과 동일하므로 분기문 주석처리함 2014.01.05 KJS
  4320. // // 응급의료센터와 일반병동 구분하여 주사라벨출력_20090602
  4321. // if ( !isNull(model.getValue("/root/code/codeinfo/codelist/cdid"))
  4322. // && model.getValue("/root/code/codeinfo/codelist/cdid") == model.getValue("/root/main/cond/wardcd") ) {
  4323. //
  4324. //// // 응급의료센터의 경우 1회용량으로 출력
  4325. //// 20110128_KNUH_Start
  4326. //// prcpvol = (prcpvol/prcptims);
  4327. //// prcpqty = (prcpqty/prcptims);
  4328. ////
  4329. //// // 소수점 셋째자리까지 ---------------------------------(20091020)
  4330. //// // 소수점 첫째자리까지 ------------(신미진ITC재변경 요청_20091027)
  4331. //// var prcpvollist = String(prcpvol).split(".");
  4332. //// var prcpqtylist = String(prcpqty).split(".");
  4333. //// if(prcpvollist.length > 1){
  4334. //// prcpvol = prcpvollist[0] + "." + prcpvollist[1].substr(0,1);
  4335. //// }
  4336. //// if(prcpqtylist.length > 1){
  4337. //// prcpqty = prcpqtylist[0] + "." + prcpqtylist[1].substr(0,1);
  4338. //// }
  4339. //// //20101116_KNUH 수정
  4340. //// //labelyn = fPrtCareInjLabel("ermedirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), "ED "+roomcd, medirectm, totalmedirectm, portOpenTF);
  4341. //// //20110128_KNUH_Start
  4342. //// //fPrtCareInjLabel("ermedirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), "ED "+roomcd, medirectm, totalmedirectm, portOpenTF);
  4343. //// fPrtCareInjLabel("ermedirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), "ED "+roomcd, medirectm, totalmedirectm, portOpenTF);
  4344. ////
  4345. //
  4346. // // 총 투약시간 응급실도 1회용량에 횟수별로 조회되도록 변경함.
  4347. // for (var kdx = 0 ; kdx < drugtmspec.length ; kdx++) {
  4348. // if (kdx == 0 ){
  4349. // totalmedirectm += drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4350. // } else {
  4351. // totalmedirectm += " " + drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4352. // }
  4353. // }
  4354. //
  4355. // // 횟수별로 출력되도록 , 회수는 안보이도록
  4356. // for (var kdx = 0 ; kdx < drugtmspec.length ; kdx++) {
  4357. // medirectm = drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4358. // //20101116_KNUH 수정
  4359. // //labelyn = fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  4360. // fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF, infcinfo);
  4361. // //fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag +"/#"+ prcptims, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  4362. // }
  4363. // } else {
  4364. // 총 투약시간
  4365. for( var kdx=0 ; kdx<drugtmspec.length ; kdx++ ){
  4366. if( kdx == 0 ){
  4367. totalmedirectm += drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4368. } else {
  4369. totalmedirectm += " " + drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4370. }
  4371. }
  4372. // 횟수별로 출력되도록 , 회수는 안보이도록
  4373. for( var kdx=0 ; kdx<drugtmspec.length ; kdx++ ){
  4374. medirectm = drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2,4);
  4375. var i = kdx;
  4376. var carecfactcd = objDsxHiddenMediCard8.getColumn(i, "carecfactcd");
  4377. var antiastrnm = objDsxHiddenMediCard8.getColumn(i, "antiastrnm");
  4378. var preantiast = "";
  4379. //alert(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='W17']/cdid"));
  4380. ds_codelist.filter("");
  4381. if ( preanti == "M" //예방적항생제일 경우 AST 결과 표기 2014.01.05 KJS
  4382. && ds_codelist.getColumn(ds_codelist.findRow("cdgrupid", "W17"), "cdid") == "Y" ){
  4383. if (carecfactcd < '21' || carecfactcd > '32') { //171129_AYS_칠곡 AST 결과양성/음성 기준자료 추가에 따른 수정(주사라벨정상출력)
  4384. sysf_messageBox("수술 예방적항생제의 경우\r\nCefa계 혹은 Pc계 AST 결과를 Remark로 반드시 등록하세요", "E999");
  4385. return;
  4386. }
  4387. }
  4388. ds_codelist.filter("cdgrupid=='U29'");
  4389. if (carecfactcd == "21") {
  4390. preantiast = "Cefa AST(+) ";
  4391. }
  4392. if (carecfactcd == "22") {
  4393. preantiast = "Cefa AST(-) ";
  4394. }
  4395. if (carecfactcd == "23") {
  4396. preantiast = "Pc AST(+) ";
  4397. }
  4398. if (carecfactcd == "24") {
  4399. preantiast = "Pc AST(-) ";
  4400. }
  4401. if (carecfactcd == "25") {
  4402. preantiast = "SM AST(+) ";
  4403. }
  4404. if (carecfactcd == "26") {
  4405. preantiast = "SM AST(-) ";
  4406. }
  4407. if (carecfactcd == "27") {
  4408. preantiast = "기타 AST(+) ";
  4409. }
  4410. if (carecfactcd == "28") {
  4411. preantiast = "기타 AST(-) ";
  4412. }
  4413. //171129_AYS_칠곡 AST 결과양성/음성 기준자료 추가에 따른 수정(주사라벨정상출력)
  4414. if (carecfactcd == "30") {
  4415. preantiast = "AST 결과 양성 ";
  4416. }
  4417. if (carecfactcd == "31") {
  4418. preantiast = "AST 결과 음성 ";
  4419. }
  4420. //171129_AYS_칠곡 AST 결과양성/음성 기준자료 추가에 따른 수정(주사라벨정상출력)
  4421. if( !utlf_isNull(preantiast) ){
  4422. preantiast += "확인:" + antiastrnm;
  4423. }
  4424. //20101116_KNUH 수정
  4425. //labelyn = fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  4426. fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, execprcpvol+prcpvolunitflag, execprcpqty+prcpqtyunitflag , abbrnm, ast, prcpdelivefact, prcpdd, "", utlf_getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF, infcinfo, preantiast);
  4427. //fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol+prcpvolunitflag, prcpqty+prcpqtyunitflag +"/#"+ prcptims, abbrnm, ast, prcpdelivefact, prcpdd, "", getCurrentTime(), roomcd, medirectm, totalmedirectm, portOpenTF);
  4428. }
  4429. // }
  4430. /*
  4431. for( var kdx = 0 ; kdx < drugtmspec.length ; kdx++){
  4432. if (kdx == 0 ){
  4433. medirectm += drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4434. } else {
  4435. medirectm += "," + drugtmspec[kdx].substring(0,2) + ":" + drugtmspec[kdx].substring(2);
  4436. }
  4437. }
  4438. fPrtCareInjLabel("medirec", barcdRef, pid, patnm, sexage, prcpcd, prcpvol, prcpqty, abbrnm, ast, prcpdelivefact, prcpdd,"", getCurrentTime(), roomcd, medirectm, portOpenTF);
  4439. */
  4440. }
  4441. /* 20101116_KNUH
  4442. if(labelyn == "TRUE"){
  4443. fsetLabelPrntInfo("injlabel", grd_patlist.row, grd_actlist.row); // 라벨출력정보 저장_20100319
  4444. }
  4445. */
  4446. }
  4447. /**
  4448. * @group :
  4449. * @ver : 2007.06.25
  4450. * @by : 최경용
  4451. * @---------------------------------------------------
  4452. * @type : function
  4453. * @access : public
  4454. * @desc : 수액라벨 출력
  4455. * @param :
  4456. * @return :
  4457. * @---------------------------------------------------
  4458. */
  4459. //------------(20080929로직변경됨)
  4460. function fClickHydPrint(){
  4461. ds_send_medicard8_warddruglist.clearData();
  4462. var rows = group3.grd_druglist.rowcount;
  4463. var prcpclscd = "";
  4464. var prcpmixno = "";
  4465. var prcptims = "";
  4466. var medicardcnt8 = 0;//라벨 출력 총 건수
  4467. var prtMix_Array = new Array;
  4468. var acctims = 0;
  4469. //-----------------(20080927)
  4470. var totcnt = "";
  4471. //-----------------(20080927)
  4472. //----------------------
  4473. //1-1. 자동체크하기1: 동일MIXNO가 체크되어 있으면 자동 체크하기
  4474. //----------------------
  4475. var chkMixnoi = "";
  4476. var chkMixnoj = "";
  4477. var chkflag = "";
  4478. var chkcnt = 0;
  4479. for( var i=0 ; i<rows ; i++ ){
  4480. chkflag = ds_main_warddruginfo_warddruglist.getColumn(i, "check");
  4481. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  4482. if(prcpclscd != "A61") continue;
  4483. if (chkflag != "1" ) { //체크가 안되어있는것 중에서
  4484. chkMixnoi = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  4485. if ( !utlf_isNull(chkMixnoi) ){ //mixno가 있는경우
  4486. for( var j=0 ; j<rows ; j++ ){ //동일mix가 체크되어 있으면
  4487. chkMixnoj = ds_main_warddruginfo_warddruglist.getColumn(j, "prcpmixno");
  4488. chkflag = ds_main_warddruginfo_warddruglist.getColumn(j, "check");
  4489. if ( i != j && chkMixnoi == chkMixnoj && chkflag == "1") {
  4490. ds_main_warddruginfo_warddruglist.setColumn(i, "check", "1"); //체크자신의 체크로 변경함
  4491. j=rows;
  4492. chkcnt ++;
  4493. }
  4494. }
  4495. }
  4496. }
  4497. }
  4498. if (chkcnt >0) {
  4499. sysf_messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n동일mixno의 다른 항목도 자동출력 선택 되었습니다. ","E999");
  4500. }
  4501. //----------------------
  4502. //1-2. 자동체크하기1: 출력대상아닌것은 체크풀기
  4503. //----------------------
  4504. chkMixnoi = "";
  4505. chkMixnoj = "";
  4506. chkflag = "";
  4507. chkcnt = 0;
  4508. var sapnoyndept = "";
  4509. var sapnoynall = "";
  4510. var sapnoyn = "";
  4511. var sapnoprtyn = "true";
  4512. var disp1 = "";
  4513. var disp2 = "";
  4514. var disp3 = "";
  4515. var infcinfo ="";
  4516. var abbrnm = "";
  4517. for( var i=0 ; i<rows ; i++ ){
  4518. chkflag = ds_main_warddruginfo_warddruglist.getColumn(i, "check");
  4519. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  4520. disp1 = ds_main_warddruginfo_warddruglist.getColumn(i, "disp1");
  4521. disp2 = ds_main_warddruginfo_warddruglist.getColumn(i, "disp2");
  4522. disp3 = ds_main_warddruginfo_warddruglist.getColumn(i, "disp3");
  4523. disp4 = ds_main_warddruginfo_warddruglist.getColumn(i, "disp4");
  4524. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  4525. if(disp1 == "Y" || disp2 == "Y" || disp3 == "Y") {
  4526. infcinfo ="";
  4527. if(disp3 == "Y") {
  4528. infcinfo += "[ A ]";
  4529. }
  4530. if(disp1 == "Y") {
  4531. infcinfo += "[ B ]";
  4532. }
  4533. if(disp2 == "Y") {
  4534. infcinfo += "[ C ]";
  4535. }
  4536. if(disp4 == "Y") {
  4537. infcinfo += "[ D ]";
  4538. }
  4539. }
  4540. if(prcpclscd != "A61") continue;
  4541. sapnoprtyn = "true"; //수액라벨출력 가능
  4542. if (chkflag == "1" ) { //체크되어있는것 중에서
  4543. sapnoyn = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "sapnoyn"));
  4544. sapnoyndept = sapnoyn.substr(1,1); //수액기준정보자료에 수액 & 부서로 자료가 있는지 여부(0이면 없는경우)
  4545. sapnoynall = sapnoyn.substr(2,1); //수액기준정보자료에 수액 & 공통로 자료가 있는지 여부(0이면 없는경우)
  4546. if (sapnoyndept == "N") { //부서에 자료가 있는데 수액라벨출력 불가로 들어가 있는경우
  4547. sapnoprtyn = "false";
  4548. } else if (sapnoyndept == "0" && sapnoynall == "N") {//부서에 자료가 없고, 공통에 수액라벨출력 불가로 들어가 있는경우
  4549. sapnoprtyn = "false"; //수액라벨출력 불가
  4550. }
  4551. if (sapnoprtyn == "false") {
  4552. chkMixnoi = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno");
  4553. if ( !utlf_isNull(chkMixnoi) ){ //mixno가 있으면서
  4554. for( var j=0 ; j<rows ; j++ ){
  4555. chkMixnoj = ds_main_warddruginfo_warddruglist.getColumn(j, "prcpmixno");
  4556. if ( chkMixnoi == chkMixnoj ) { //같은 mixno이면 출력을 해제한다.
  4557. //model.setValue(xWardDrugListPath + "[" + j + "]/check","true");
  4558. ds_main_warddruginfo_warddruglist.setColumn(j, "check", "0"); //1001
  4559. chkcnt++;
  4560. }
  4561. }
  4562. }
  4563. }
  4564. }
  4565. }
  4566. if (chkcnt >0) {
  4567. sysf_messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n수액기준정보에 수액no적용정보가 'N'로 설정된 자료가 있습니다. \n수액라벨출력을 해제합니다.","E999");
  4568. }
  4569. //----------------------
  4570. //3. 출력내역정리하기
  4571. //---------------------- 작업중...........
  4572. var subcnt = 0; //해당번호
  4573. var prcptimscalc ="";
  4574. var mainpre_prcpmixno = "999999999"; //main이전mixno
  4575. var subnow_prcpmixno = ""; //sub현재mixno
  4576. var startrow = "";
  4577. //전체
  4578. // 원본_20090601
  4579. for( var i=0 ; i<rows ; i++ ){
  4580. prcpclscd = ds_main_warddruginfo_warddruglist.getColumn(i, "prtprcpclscd");
  4581. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  4582. // 수술예방적 항생제 AST 결과 필수 입력
  4583. var execcarestatcd = objDsxWardDrugListPath.getColumn(0, "execcarestatcd");
  4584. var preantiast = "";
  4585. if (execcarestatcd == "M") {
  4586. var carecfactcd = objDsxWardDrugListPath.getColumn(0, "carecfactcd");
  4587. var antiastrnm = objDsxWardDrugListPath.getColumn(0, "antiastrnm");
  4588. ds_codelist.filter("");
  4589. if ((carecfactcd < '21' || carecfactcd > '32') //171129_AYS_칠곡 AST 결과양성/음성 기준자료 추가에 따른 수정(주사라벨정상출력)
  4590. && ds_codelist.getColumn(ds_codelist.findRow("cdgrupid", "W17"), "cdid") == "Y") {
  4591. sysf_messageBox("수술 예방적항생제의 경우\r\nCefa계 혹은 Pc계 AST 결과를 Remark로 반드시 등록하세요", "E999");
  4592. return;
  4593. }
  4594. ds_codelist.filter("cdgrupid=='U29'");
  4595. if (carecfactcd == "21") {
  4596. preantiast = "Cefa AST(+) ";
  4597. }
  4598. if (carecfactcd == "22") {
  4599. preantiast = "Cefa AST(-) ";
  4600. }
  4601. if (carecfactcd == "23") {
  4602. preantiast = "Pc AST(+) ";
  4603. }
  4604. if (carecfactcd == "24") {
  4605. preantiast = "Pc AST(-) ";
  4606. }
  4607. if (carecfactcd == "25") {
  4608. preantiast = "SM AST(+) ";
  4609. }
  4610. if (carecfactcd == "26") {
  4611. preantiast = "SM AST(-) ";
  4612. }
  4613. if (carecfactcd == "27") {
  4614. preantiast = "기타 AST(+) ";
  4615. }
  4616. if (carecfactcd == "28") {
  4617. preantiast = "기타 AST(-) ";
  4618. }
  4619. //171129_AYS_칠곡 AST 결과양성/음성 기준자료 추가에 따른 수정(주사라벨정상출력)
  4620. if (carecfactcd == "30") {
  4621. preantiast = "AST 결과 양성 ";
  4622. }
  4623. if (carecfactcd == "31") {
  4624. preantiast = "AST 결과 음성 ";
  4625. }
  4626. //171129_AYS_칠곡 AST 결과양성/음성 기준자료 추가에 따른 수정(주사라벨정상출력)
  4627. if ( !utlf_isNull(preantiast) ) {
  4628. preantiast += "확인:" + antiastrnm;
  4629. }
  4630. }
  4631. var todaydrug = ds_main_warddruginfo_warddruglist.getColumn(i, "todaydrug");
  4632. if(prcpclscd == "A61" && todaydrug == "Y"){ // 체크된 것 &&수액 && 조회당일 화면에 표시된것만
  4633. if( ds_main_warddruginfo_warddruglist.getColumn(i, "check") == "1" ){
  4634. prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpmixno"); //현재mixno
  4635. prcptims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  4636. prcptimscalc = ds_main_warddruginfo_warddruglist.getColumn(i, "calctims"); //------------(20080912)
  4637. abbrnm = ds_main_warddruginfo_warddruglist.getColumn(i, "abbrnm"); //------------(20120608 투여경로 추가 삽입)
  4638. startrow = i;
  4639. if (mainpre_prcpmixno != prcpmixno) { //main 이전mixno가 다른경우
  4640. //횟수만큼
  4641. for( var j=0 ; j<prcptimscalc ; j++ ){ //for(var j = 0; j < prcptims; j++){ //--------(20080912)
  4642. subcnt ++;
  4643. //startrow부터 같은 mixno를 찾는다.
  4644. for( var k=startrow ; k<rows ; k++ ){
  4645. subnow_prcpmixno = ds_main_warddruginfo_warddruglist.getColumn(k, "prcpmixno"); //현재mixno
  4646. if (prcpmixno != subnow_prcpmixno) {
  4647. // i = k; //main첨자를 sub에서 증가한 것 만큼 더한다.
  4648. // i--; //i가 전체 main loop로 돌아가면 자동 증가되므로 -1를 해준다.
  4649. k = rows; //k loop를 벗어남
  4650. } else {
  4651. //mixno가 연속해서 없는 경우에는 다른것으로 인식하기 위해서 구분한다.
  4652. if ( k > startrow && utlf_isNull(prcpmixno) && utlf_isNull(subnow_prcpmixno) ){
  4653. k=rows;
  4654. } else {
  4655. ds_main_warddruginfo_warddruglist.setColumn(k, "soding", subcnt);
  4656. var nRow = ds_send_medicard8_warddruglist.addRow();
  4657. ds_send_medicard8_warddruglist.copyRow(nRow, ds_main_warddruginfo_warddruglist, k);
  4658. }
  4659. }
  4660. }
  4661. }
  4662. mainpre_prcpmixno = prcpmixno;
  4663. if( utlf_isNull(prcpmixno) ) mainpre_prcpmixno = "999999999"; //mix no가 지정되지 않은것이 연속으로 되어 있는경우, 구분하기 위해서
  4664. }
  4665. }
  4666. }
  4667. } // end for(i)
  4668. // 횟수적용안됨_20090601
  4669. /*
  4670. var calctims = model.getValue(xMediCard8 + "[" + j + "]/soding");
  4671. for(var i=1; i<rows; i++){
  4672. var check = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  4673. var todaydrug = model.getValue(xWardDrugListPath + "[" + i + "]/todaydrug");
  4674. var prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims"); // 횟수
  4675. if(check == "true" && todaydrug == "Y"){ // 체크된 것 && 조회당일 화면에 표시된것만
  4676. for(var j=0; j<prcptimscalc; j++){ // 횟수만큼
  4677. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  4678. }
  4679. }
  4680. }
  4681. for(var i=1; i<=getNodesetCount(xMediCard8); i++){
  4682. var check = model.getValue(xMediCard8 + "[" + i + "]/check");
  4683. var prcpclscd = model.getValue(xMediCard8 + "[" + i + "]/prtprcpclscd");
  4684. var todaydrug = model.getValue(xMediCard8 + "[" + i + "]/todaydrug");
  4685. if(check == "true" && prcpclscd == "A61" && todaydrug == "Y"){ // 체크된 것 &&수액 && 조회당일 화면에 표시된것만
  4686. var soding = model.getValue(xMediCard8 + "[" + i + "]/soding"); // 출력지정번호(동일mixno끼리는 동일한 soding번호 가지고 있다.)
  4687. var mixno = model.getValue(xMediCard8 + "[" + i + "]/prcpmixno");
  4688. var prcpno = model.getValue(xMediCard8 + "[" + i + "]/prcpno");
  4689. if(soding == "-" || soding == ""){ // 출력지정 안되어 있는 경우
  4690. subcnt++;
  4691. model.makeValue(xMediCard8 + "[" + i + "]/soding", subcnt);
  4692. if(mixno != ""){
  4693. //같은 mixno찾기
  4694. for(var j=1; j<=getNodesetCount(xMediCard8); j++){
  4695. if(mixno == model.getValue(xMediCard8 + "[" + j + "]/prcpmixno")){
  4696. if((prcpno == model.getValue(xMediCard8 + "[" + j + "]/prcpno"))){
  4697. model.makeValue(xMediCard8 + "[" + j + "]/soding", subcnt);
  4698. subcnt++;
  4699. }
  4700. model.makeValue(xMediCard8 + "[" + j + "]/soding", subcnt);
  4701. }
  4702. }
  4703. }
  4704. }
  4705. }
  4706. }// end for(i)
  4707. // 총 출력매수 구하기(soding의 최대값)
  4708. for(var i=1; i<=getNodesetCount(xMediCard8); i++){
  4709. var maxcnt=0;
  4710. var soding = Number(model.getValue(xMediCard8 + "[" + i + "]/soding")); // 출력지정번호
  4711. if(maxcnt<soding){
  4712. maxcnt = soding;
  4713. }
  4714. subcnt = maxcnt;
  4715. }
  4716. */
  4717. //수액
  4718. if (subcnt > 0) {
  4719. //if(medicardcnt8 >0){
  4720. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  4721. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  4722. // 바코드OCX 생성(20080720)
  4723. // if(document.all("CommAX") == null){
  4724. // //lzzfMakeBrcdPrntObj("CommAX");
  4725. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  4726. // }
  4727. //------------------(20081024)
  4728. if ( ds_data_setupinfo.rowcount <=0 ){
  4729. //messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  4730. //return;
  4731. //1. 바코드 라벨 설정값 조회
  4732. fGetBarCodeInfo(frmf_getScreenID());
  4733. // 노드값을 컬럼 값으로 가져옴에 따라 DS 로 변환 처리 ---------------------------------------------------
  4734. //XML string 값을 파라미터로 넘김
  4735. //성공시 : 'success' 실패시 : 'error' 값을 리턴함
  4736. var sParamObj = new Object();
  4737. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  4738. var pXmlStr = ds_barcdprntsetup.getColumn(0, "prntsetupinfo");
  4739. var succYn = lf_convertXmlToDs(pXmlStr, sParamObj);
  4740. sysf_trace(succYn);
  4741. // => retrun DS
  4742. // : ds_data_setupinfo(prntkind, commkind)
  4743. // : ds_data_comm01(setupval)
  4744. // : ds_data_comm02(comm, databit, stopbit, baudrate, parity, setupval)
  4745. // : ds_data_comm03(setupval)
  4746. // : ds_data_blank(left, top)
  4747. // ------------------------------------------------------------------------------------------------------------
  4748. }
  4749. //------------------(20081024)
  4750. // LLZ001.JS참고
  4751. // messageBox("아래 사항을 확인후 재출력해주십시오."
  4752. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  4753. // + " \n 2.케이블 확인"
  4754. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  4755. //--------------------------------
  4756. //fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음(20081024)
  4757. //2. 바코드 라벨 환경설정
  4758. lzzfMakeBrcdPrntObjHanDo("CommAX"); // 추가_20090522(ByJA)
  4759. var portOpenTF = fSetNursBarcdInfo("ds_data_setupinfo"); //CommAX.PortOpen(true)이 있음20090522 김홍점 사토 추가 carecom.js
  4760. //CommAX.CommPort = "7"; // 출력 Port
  4761. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  4762. /** <addon>
  4763. *개발일시: 2010.05.13
  4764. *개발자: 양천덕
  4765. *요청병원: 세종병원
  4766. *요청파트: 간호
  4767. *개발내용: 바코드 출력 형식 변경으로 수정 처리(수액라벨)
  4768. </addon>
  4769. */
  4770. barcdRef = "/root/main/barcdprntsetup/prntsetupinfo";
  4771. pid = ds_main_patinfo.getColumn(0, "pid");
  4772. roomcd = ds_main_patinfo.getColumn(0, "roomcd");
  4773. patnm = ds_main_patinfo.getColumn(0, "patnm");
  4774. sexage = ds_main_patinfo.getColumn(0, "sexage");
  4775. orddd = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "orddd")).substr(4,2) + "/" + utlf_transNullToEmpty(ds_main_cond.getColumn(0, "orddd")).substr(6,2);
  4776. rntnode = xMediCard8;
  4777. prncnt = 1;
  4778. ds_codelist.filter("");
  4779. if ( !utlf_isNull(ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid=='002' && cdid=='"+group3.group5.cmb_ward.value+"'"), "cdid")) ){
  4780. roomcd = ds_main_wardpatinfo_wardpatlist.getColumn(ds_main_wardpatinfo_wardpatlist.rowposition, "typedetl");
  4781. }
  4782. ds_codelist.filter("cdgrupid=='U29'");
  4783. var barcdRefcnt = 0;//getNodesetCount(xBarCordPath);
  4784. if( !utlf_isNull(this.objects["ds_data_pcllist"]) ){
  4785. barcdRefcnt = ds_data_pcllist.rowcount;
  4786. }
  4787. var barcdMode = "" ;
  4788. for( var i=0 ; i<barcdRefcnt ; i++ ){
  4789. var barCord = ds_data_pcllist.getColumn(i, "barnm");
  4790. if(barCord == "RPMNZ00006"){
  4791. barcdMode = "1";
  4792. break;
  4793. }else if(barCord == "RPMNZ00008"){
  4794. barcdMode = "2";
  4795. break;
  4796. }
  4797. }
  4798. if( utlf_isNull(barcdMode) ){
  4799. barcdMode = "1";
  4800. }
  4801. if(barcdMode == "2"){
  4802. fPrtFluidLabel2(barcdRef, pid, roomcd, patnm, sexage, orddd, rntnode, subcnt, infcinfo, abbrnm, preantiast);
  4803. return;
  4804. }else{
  4805. fPrtFluidLabel(barcdRef, pid, roomcd, patnm, sexage, orddd, rntnode, subcnt, infcinfo, abbrnm, preantiast);
  4806. }
  4807. // var nodecnt = getNodesetCount(xMediCard8);
  4808. // var prev_soding = "";
  4809. // var prcpvol = "";
  4810. // var prcpvolunitflag = "";
  4811. // var prcpqty = "";
  4812. // var prcpqtyunitflag = "";
  4813. // var drugspdunitflag = "";
  4814. // var labelcnt = 0;
  4815. // var labelindex = 0;
  4816. // var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  4817. // var soding = "";
  4818. // var last = "";
  4819. // var overcnt = 1;
  4820. // var iHeight = 0;
  4821. // var sTempData = "";
  4822. // var sLabelData_Array = new Array;
  4823. // var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  4824. // var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  4825. // if(iLeft == "" || iLeft == "-"){
  4826. // iLeft = 0;
  4827. // }
  4828. // if(iTop == "" || iTop == "-"){
  4829. // iTop = 0;
  4830. // }
  4831. //
  4832. // var esc = String.fromCharCode(27); // 추가_20090522(ByJA)
  4833. // var sPrntKind = model.getvalue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/prntkind"); // 추가_20090522(ByJA)
  4834. // var sLabelSndMsg;
  4835. //
  4836. // var pageno = 1;
  4837. //
  4838. // //20101116_KNUH
  4839. // //var labelyn = "FALSE";
  4840. //
  4841. // /*수액 라벨 출력*/
  4842. // for(var j = 1; j <= nodecnt; j++){
  4843. // if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  4844. // /*환자정보 라벨 출력*/
  4845. // prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  4846. // // SATO일 경우
  4847. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4848. // // 시작위치 셋팅 (A1aaaabbbb:출력 용지 규격(aaaa:세로크기_최대 2848, bbbb:가로크기_최대 832))
  4849. // sLabelSndMsg = "";
  4850. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4851. //
  4852. // // 출력할 데이터 생성
  4853. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10 , iLeft+50, "(" + model.getValue("/root/main/patinfo/pid") + ")", 1, 1);
  4854. // sLabelSndMsg += CommAX.PrtImgOut(iTop+60 , iLeft+50, model.getValue("/root/main/patinfo/roomcd"), 2, 2);
  4855. // sLabelSndMsg += CommAX.PrtImgOut(iTop+160, iLeft+50, model.getValue("/root/main/patinfo/patnm") , 2, 2);
  4856. //
  4857. // // 종료 및 출력물 출력수량
  4858. // sLabelSndMsg += esc + "Q1" + esc + "Z";
  4859. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4860. // CommAX.SendMsg(sLabelSndMsg);
  4861. //
  4862. // labelindex = labelindex + 1;
  4863. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4864. //
  4865. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+50 , model.getValue("/root/main/patinfo/roomcd"), 1, 1);
  4866. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+130, model.getValue("/root/main/patinfo/patnm") , 1, 1);
  4867. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+250, model.getValue("/root/main/patinfo/sexage") , 1, 1);
  4868. // sLabelSndMsg += CommAX.PrtImgOut(iTop+10, iLeft+350, sDate , 1, 1);
  4869. // }
  4870. // // SATO가 아닐 경우(기존)
  4871. // else{
  4872. // sLabelSndMsg = "";
  4873. // sLabelSndMsg = BP_StartFormat;
  4874. // //-----------------------------(20080917)
  4875. // //이름과 등록번호 크게 출력하기
  4876. // //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4877. // //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4878. // //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4879. //
  4880. // sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  4881. // sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  4882. // sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4883. // sLabelSndMsg += fCareBP_EndFormat(1);
  4884. // //-----------------------------(20080917)
  4885. //
  4886. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4887. //
  4888. // CommAX.SendMessage(sLabelSndMsg);
  4889. // //////alert(sLabelSndMsg);
  4890. //
  4891. // labelindex = labelindex + 1;
  4892. // sLabelSndMsg = BP_StartFormat;
  4893. //
  4894. // sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  4895. // sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  4896. // sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  4897. // sLabelSndMsg += fCarePrintOutA(iLeft + 345, iTop + 10, 4, "N", sDate,"");
  4898. // }
  4899. // } // end if 환자정보 라벨 출력
  4900. //
  4901. // prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  4902. // prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  4903. //
  4904. // prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  4905. // prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  4906. //
  4907. // drugspdunitflag = model.getValue(xMediCard8 + "[" + j + "]/drugspdunitflag");
  4908. //
  4909. // //---------------(20080927)
  4910. // //1일횟수로 나눈다.
  4911. // var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  4912. // if (tims > 0 ) {
  4913. // //prcpvol = prcpvol / tims;
  4914. // //prcpqty = prcpqty / tims;
  4915. // prcpvol = (prcpvol / tims);
  4916. // prcpqty = (prcpqty / tims);
  4917. //
  4918. // // 소수점 셋째자리까지 ------------(20091020)
  4919. // var prcpvollist = String(prcpvol).split(".");
  4920. // var prcpqtylist = String(prcpqty).split(".");
  4921. // if(prcpvollist.length > 1){
  4922. // prcpvol = prcpvollist[0] + "." + prcpvollist[1].substr(0,3);
  4923. // }
  4924. // if(prcpqtylist.length > 1){
  4925. // prcpqty = prcpqtylist[0] + "." + prcpqtylist[1].substr(0,3);
  4926. // }
  4927. // }
  4928. // //---------------(20080927)
  4929. //
  4930. // sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag + ( isNull(drugspdunitflag) ? "" : "/" + drugspdunitflag);
  4931. // iHeight = ((labelcnt + overcnt) * 30) + 30;
  4932. //
  4933. // if(model.getValue(xMediCard8 + "[" + j + "]/todaydrug")=="Y"){
  4934. // // SATO일 경우
  4935. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4936. // sLabelSndMsg += CommAX.PrtImgOut(iTop+iHeight, iLeft+30 , model.getValue(xMediCard8 + "[" + j + "]/prcpcdprt"), 1, 1);
  4937. // sLabelSndMsg += CommAX.PrtImgOut(iTop+iHeight, iLeft+205, sTempData, 1, 1);
  4938. // }
  4939. // // SATO가 아닐 경우(기존)
  4940. // else{
  4941. // //--------------------(20081118):원래대로
  4942. // sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcdprt"), ""); //원본
  4943. //
  4944. // ////처방 영문명, 폰트 축소(안됨)
  4945. // //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 0, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  4946. // //--------------------(20081118)
  4947. //
  4948. // sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + iHeight, 3, "N", sTempData, "");
  4949. // }
  4950. // }
  4951. // labelcnt++;
  4952. //
  4953. // soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  4954. // last = model.getValue(xMediCard8 + "[" + j + "]/last");
  4955. //
  4956. // /*수액정보 라벨 출력*/
  4957. // if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  4958. // // SATO일 경우
  4959. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4960. // sLabelSndMsg += CommAX.PrtImgOut(iTop+220, iLeft+230 , subcnt + " - " + soding, 1, 1);
  4961. //
  4962. // // 종료 및 출력물 출력수량
  4963. // sLabelSndMsg += esc + "Q1" + esc + "Z";
  4964. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4965. // CommAX.SendMsg(sLabelSndMsg);
  4966. //
  4967. // labelindex = labelindex + 1;
  4968. // overcnt = 1;
  4969. // labelcnt = 0;
  4970. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  4971. // }
  4972. // // SATO가 아닐 경우(기존)
  4973. // else{
  4974. // // 총수 - 현위치
  4975. //
  4976. // //----------(20080927)
  4977. // //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  4978. // sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", subcnt + " - " + soding, "");
  4979. // //----------(20080927)
  4980. // sLabelSndMsg += fCareBP_EndFormat(1);
  4981. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4982. //
  4983. // CommAX.SendMessage(sLabelSndMsg);
  4984. // //////alert(sLabelSndMsg);
  4985. //
  4986. // labelindex = labelindex + 1;
  4987. // overcnt = 1;
  4988. // labelcnt = 0;
  4989. // sLabelSndMsg = BP_StartFormat;
  4990. // }
  4991. // }else if((labelcnt + overcnt) == 5){
  4992. // // SATO일 경우
  4993. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){
  4994. // // 종료 및 출력물 출력수량
  4995. // sLabelSndMsg += esc + "Q1" + esc + "Z";
  4996. //
  4997. // sLabelData_Array[labelindex] = sLabelSndMsg;
  4998. //
  4999. // CommAX.SendMsg(sLabelSndMsg);
  5000. //
  5001. // labelindex = labelindex + 1;
  5002. // overcnt = 0;
  5003. // labelcnt = 0;
  5004. // sLabelSndMsg = esc + "A" + esc + "A103500500";
  5005. // }
  5006. // // SATO가 아닐 경우(기존)
  5007. // else{
  5008. // sLabelSndMsg += fCareBP_EndFormat(1);
  5009. // sLabelData_Array[labelindex] = sLabelSndMsg;
  5010. //
  5011. // CommAX.SendMessage(sLabelSndMsg);
  5012. // //////alert(sLabelSndMsg);
  5013. //
  5014. // labelindex = labelindex + 1;
  5015. // overcnt = 0;
  5016. // labelcnt = 0;
  5017. // sLabelSndMsg = BP_StartFormat;
  5018. // }
  5019. // }else{} // end if 수액정보 라벨 출력
  5020. //
  5021. // } // end for
  5022. // /*순서 뒤집기*/
  5023. // /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  5024. // CommAX.SendMessage(sLabelData_Array[k]);
  5025. // }*/
  5026. //
  5027. // /* 20101116_KNUH주석처리.start
  5028. // // 20100322
  5029. // if(sPrntKind == "2" || sPrntKind == "6" || sPrntKind == "7"){ // SATO일 경우
  5030. // var Message = "";
  5031. // Message = CommAX.Message;
  5032. // if(Message == null || Message == ""){
  5033. // labelyn = "TRUE";
  5034. // }
  5035. // }else{ // SATO가 아닐 경우(기존)
  5036. // labelyn = portOpenTF;
  5037. // }
  5038. // if(labelyn == "TRUE"){
  5039. // fsetLabelPrntInfo("hydlabel", grd_patlist.row, grd_actlist.row); // 라벨출력정보 저장_20100319
  5040. // }
  5041. // 20101116_KNUH주석처리.end */
  5042. //
  5043. // //-----------(20081031)
  5044. // CommAX.PortOpen(false);
  5045. // //CommAX.PortClose();
  5046. // //-----------(20081031)
  5047. }else{
  5048. sysf_messageBox("수액이 존재하지","E007");
  5049. }
  5050. }
  5051. ///-----------------(20081210)
  5052. //약그리드 확대/축소 기능
  5053. function fDruglist_Extend(workflag){
  5054. switch (workflag) {
  5055. case "pat":
  5056. if( group3.btnExtend.text == "축소" ){
  5057. group3.btnExtend.text = "확대"; //축소되었으므로 확대시켜야한다.
  5058. //group3.swtpatList.visible = true ;
  5059. //linpatListRight.visible = true ; // 오류수정
  5060. group3.grd_druglist.position.left = 220;
  5061. group3.grd_druglist.position.width = 970;
  5062. group3.bolall.position.left = 227; //--(20081216)
  5063. }
  5064. break;
  5065. case "drug":
  5066. if( group3.btnExtend.text == "축소" ){
  5067. group3.btnExtend.text = "확대"; //축소되었으므로 확대시켜야한다.
  5068. //group3.swtpatList.visible = true ;
  5069. //linpatListRight.visible = true ;
  5070. group3.grd_druglist.position.left = 220;
  5071. group3.grd_druglist.position.width = 970;
  5072. group3.bolall.position.left = 227; //--(20081216)
  5073. } else {
  5074. group3.btnExtend.text = "축소"; //확대되었으므로 축소시켜야한다.
  5075. //group3.swtpatList.visible = false ;
  5076. //linpatListRight.visible = false ;
  5077. group3.grd_druglist.position.left = 0;
  5078. group3.grd_druglist.position.width = 1185;
  5079. group3.bolall.position.left = 7; //--(20081216)
  5080. }
  5081. break;
  5082. }
  5083. }
  5084. ///-----------------(20081210)
  5085. ///-----------------(20081208 임시작업분)
  5086. function fClickHydPrint_TEMP(){
  5087. return;
  5088. //수액라벨 간호itc에서 임시테스트용으로 작성한 소스임(20081209)
  5089. model.removeNodeSet("/root/send/medicard8/warddruglist");
  5090. var rows = grd_druglist.rows-1;
  5091. var prcpclscd = "";
  5092. var prcpmixno = "";
  5093. var prcptims = "";
  5094. var medicardcnt8 = 0;//라벨 출력 총 건수
  5095. var prtMix_Array = new Array;
  5096. var acctims = 0;
  5097. //-----------------(20080927)
  5098. var totcnt = "";
  5099. //-----------------(20080927)
  5100. //----------------------
  5101. //1-1. 자동체크하기1: 동일MIXNO가 체크되어 있으면 자동 체크하기
  5102. //----------------------
  5103. var chkMixnoi = "";
  5104. var chkMixnoj = "";
  5105. var chkflag = "";
  5106. var chkcnt = 0;
  5107. for(var i = 1; i < rows; i++){
  5108. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  5109. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  5110. if(prcpclscd != "A61") continue;
  5111. if (chkflag != "true" ) { //체크가 안되어있는것 중에서
  5112. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  5113. if ( chkMixnoi != "") { //mixno가 있는경우
  5114. for (var j=1;j<rows;j++) { //동일mix가 체크되어 있으면
  5115. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  5116. chkflag = model.getValue(xWardDrugListPath + "[" + j + "]/check");
  5117. if ( i != j && chkMixnoi == chkMixnoj && chkflag == "true") {
  5118. model.setValue(xWardDrugListPath + "[" + i + "]/check","true"); //체크자신의 체크로 변경함
  5119. j=rows;
  5120. chkcnt ++;
  5121. }
  5122. }
  5123. }
  5124. }
  5125. }
  5126. if (chkcnt >0) {
  5127. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n동일mixno의 다른 항목도 자동출력 선택 되었습니다. ","E999");
  5128. }
  5129. //----------------------
  5130. //1-2. 자동체크하기1: 출력대상아닌것은 체크풀기
  5131. //----------------------
  5132. chkMixnoi = "";
  5133. chkMixnoj = "";
  5134. chkflag = "";
  5135. chkcnt = 0;
  5136. var sapnoyndept = "";
  5137. var sapnoynall = "";
  5138. var sapnoyn = "";
  5139. var sapnoprtyn = "true";
  5140. for(var i = 1; i < rows; i++){
  5141. chkflag = model.getValue(xWardDrugListPath + "[" + i + "]/check");
  5142. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  5143. if(prcpclscd != "A61") continue;
  5144. sapnoprtyn = "true"; //수액라벨출력 가능
  5145. if (chkflag == "true" ) { //체크되어있는것 중에서
  5146. sapnoyn = model.getValue(xWardDrugListPath + "[" + i + "]/sapnoyn");
  5147. sapnoyndept = sapnoyn.substr(1,1); //수액기준정보자료에 수액 & 부서로 자료가 있는지 여부(0이면 없는경우)
  5148. sapnoynall = sapnoyn.substr(2,1); //수액기준정보자료에 수액 & 공통로 자료가 있는지 여부(0이면 없는경우)
  5149. if (sapnoyndept == "N") { //부서에 자료가 있는데 수액라벨출력 불가로 들어가 있는경우
  5150. sapnoprtyn = "false";
  5151. } else if (sapnoyndept == "0" && sapnoynall == "N") {//부서에 자료가 없고, 공통에 수액라벨출력 불가로 들어가 있는경우
  5152. sapnoprtyn = "false"; //수액라벨출력 불가
  5153. }
  5154. if (sapnoprtyn == "false") {
  5155. chkMixnoi = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  5156. if ( chkMixnoi != "") { //mixno가 있으면서
  5157. for (var j=1;j<rows;j++) {
  5158. chkMixnoj = model.getValue(xWardDrugListPath + "[" + j + "]/prcpmixno");
  5159. if ( chkMixnoi == chkMixnoj ) { //같은 mixno이면 출력을 해제한다.
  5160. //model.setValue(xWardDrugListPath + "[" + j + "]/check","true");
  5161. model.setValue(xWardDrugListPath + "[" + j + "]/check","false"); //1001
  5162. chkcnt++;
  5163. }
  5164. }
  5165. }
  5166. }
  5167. }
  5168. }
  5169. if (chkcnt >0) {
  5170. messageBox("Mixno가 수액라벨 체크 되어 있는 경우 \n수액기준정보에 수액no적용정보가 'N'로 설정된 자료가 있습니다. \n수액라벨출력을 해제합니다.","E999");
  5171. }
  5172. //----------------------
  5173. //3. 출력내역정리하기
  5174. //---------------------- 작업중...........
  5175. var subcnt = 0; //해당번호
  5176. var prcptimscalc ="";
  5177. var mainpre_prcpmixno = "999999999"; //main이전mixno
  5178. var subnow_prcpmixno = ""; //sub현재mixno
  5179. var startrow = "";
  5180. //전체
  5181. for(var i = 1; i < rows; i++){
  5182. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  5183. if(prcpclscd == "A61"){//수액
  5184. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  5185. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno"); //현재mixno
  5186. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  5187. prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims"); //------------(20080912)
  5188. startrow = i;
  5189. if (mainpre_prcpmixno != prcpmixno) { //main 이전mixno가 다른경우
  5190. //횟수만큼
  5191. for(var j = 0; j < prcptimscalc; j++){ //for(var j = 0; j < prcptims; j++){ //--------(20080912)
  5192. subcnt ++;
  5193. //startrow부터 같은 mixno를 찾는다.
  5194. for(var k = startrow; k < rows; k++){
  5195. subnow_prcpmixno = model.getValue(xWardDrugListPath + "[" + k + "]/prcpmixno"); //현재mixno
  5196. if (prcpmixno != subnow_prcpmixno) {
  5197. // i = k; //main첨자를 sub에서 증가한 것 만큼 더한다.
  5198. // i--; //i가 전체 main loop로 돌아가면 자동 증가되므로 -1를 해준다.
  5199. k = rows; //k loop를 벗어남
  5200. } else {
  5201. //mixno가 연속해서 없는 경우에는 다른것으로 인식하기 위해서 구분한다.
  5202. if ( k > startrow && prcpmixno =="" && subnow_prcpmixno == "") {
  5203. k=rows;
  5204. } else {
  5205. model.setValue("/root/main/warddruginfo/warddruglist[" + k + "]/soding", subcnt);
  5206. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + k + "]");
  5207. }
  5208. }
  5209. }
  5210. }
  5211. mainpre_prcpmixno = prcpmixno;
  5212. if (prcpmixno == "") mainpre_prcpmixno = "999999999"; //mix no가 지정되지 않은것이 연속으로 되어 있는경우, 구분하기 위해서
  5213. }
  5214. }
  5215. }
  5216. }
  5217. //수액
  5218. if (subcnt > 0) {
  5219. //if(medicardcnt8 >0){
  5220. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  5221. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  5222. // 바코드OCX 생성(20080720)
  5223. // if(document.all("CommAX") == null){
  5224. // //lzzfMakeBrcdPrntObj("CommAX");
  5225. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  5226. // }
  5227. //------------------(20081024)
  5228. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  5229. //messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  5230. //return;
  5231. fGetBarCodeInfo(getScreenID());
  5232. }
  5233. //------------------(20081024)
  5234. // LLZ001.JS참고
  5235. // messageBox("아래 사항을 확인후 재출력해주십시오."
  5236. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5237. // + " \n 2.케이블 확인"
  5238. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5239. //--------------------------------
  5240. fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo"); //CommAX.PortOpen(true)이 있음(20081024)
  5241. //CommAX.CommPort = "7"; // 출력 Port
  5242. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  5243. var nodecnt = getNodesetCount(xMediCard8);
  5244. var prev_soding = "";
  5245. var prcpvol = "";
  5246. var prcpvolunitflag = "";
  5247. var prcpqty = "";
  5248. var prcpqtyunitflag = "";
  5249. var labelcnt = 0;
  5250. var labelindex = 0;
  5251. var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  5252. var soding = "";
  5253. var last = "";
  5254. var overcnt = 1;
  5255. var iHeight = 0;
  5256. var sTempData = "";
  5257. var sLabelData_Array = new Array;
  5258. var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  5259. var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  5260. if(iLeft == "" || iLeft == "-"){
  5261. iLeft = 0;
  5262. }
  5263. if(iTop == "" || iTop == "-"){
  5264. iTop = 0;
  5265. }
  5266. /*수액 라벨 출력*/
  5267. var sLabelSndMsg = BP_StartFormat;
  5268. for(var j = 1; j <= nodecnt; j++){
  5269. //하단
  5270. if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  5271. /*환자정보 라벨 출력*/
  5272. prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  5273. //-----------------------------(20080917)
  5274. //이름과 등록번호 크게 출력하기
  5275. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  5276. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  5277. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5278. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  5279. //-----------하단의 성별/나이(20081208)
  5280. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  5281. //-----------
  5282. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  5283. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5284. sLabelSndMsg += fCareBP_EndFormat(1);
  5285. //-----------------------------(20080917)
  5286. sLabelData_Array[labelindex] = sLabelSndMsg;
  5287. CommAX.SendMessage(sLabelSndMsg);
  5288. //////alert(sLabelSndMsg);
  5289. labelindex = labelindex + 1;
  5290. sLabelSndMsg = BP_StartFormat;
  5291. //-----------상단의 등록번호(20081208)
  5292. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  5293. //sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5294. //sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  5295. //sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  5296. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  5297. sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5298. sLabelSndMsg += fCarePrintOutH(iLeft + 180, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/pid"),"");
  5299. sLabelSndMsg += fCarePrintOutA(iLeft + 280, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  5300. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  5301. //-----------
  5302. }
  5303. prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  5304. prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  5305. prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  5306. prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  5307. //---------------(20080927)
  5308. //1일횟수로 나눈다.
  5309. var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  5310. if (tims > 0 ) {
  5311. prcpvol = prcpvol / tims;
  5312. prcpqty = prcpqty / tims;
  5313. }
  5314. //---------------(20080927)
  5315. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag;
  5316. iHeight = ((labelcnt + overcnt) * 30) + 30;
  5317. //--------------------(20081208)
  5318. //sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcd"), ""); //원본
  5319. //sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  5320. ////처방 영문명, 폰트 축소(안됨)
  5321. //1. 한글,특수문자(이미지)과 영문(텍스트)을 분리해서 보냄 ===> //이미지로 보내서 속도가 아주 떨어짐
  5322. //2. 한번에 보내는 버퍼용량이 제한이 있음
  5323. //대한5%포도당가생리식염액 1000ml (Dextrose, Electrolytes)
  5324. //sLabelSndMsg += fCarePrintOutH(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  5325. CommAX.SendMessage(sLabelSndMsg);
  5326. sLabelSndMsg = "";
  5327. sLabelSndMsg += fCarePrintOutH(iLeft + 10, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/engnm"), "");
  5328. CommAX.SendMessage(sLabelSndMsg);
  5329. sLabelSndMsg = "";
  5330. sLabelSndMsg += fCarePrintOutA(iLeft + 230, iTop + iHeight, 3, "N", sTempData, "");
  5331. //--------------------(20081208)
  5332. labelcnt++;
  5333. soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  5334. last = model.getValue(xMediCard8 + "[" + j + "]/last");
  5335. /*수액정보 라벨 출력*/
  5336. if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  5337. // 총수 - 현위치
  5338. //----------(20080927)
  5339. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  5340. //------------------(20081208)
  5341. var Mixno = "mixno";
  5342. var DrugTime = "10:00";
  5343. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 180, 1, "N", Mixno, "");
  5344. sLabelSndMsg += fCarePrintOutA(iLeft + 10, iTop + 210, 1, "N", DrugTime, "");
  5345. //------------------(20081208)
  5346. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", subcnt + " - " + soding, "");
  5347. //----------(20080927)
  5348. sLabelSndMsg += fCareBP_EndFormat(1);
  5349. sLabelData_Array[labelindex] = sLabelSndMsg;
  5350. CommAX.SendMessage(sLabelSndMsg);
  5351. //////alert(sLabelSndMsg);
  5352. labelindex = labelindex + 1;
  5353. overcnt = 1;
  5354. labelcnt = 0;
  5355. sLabelSndMsg = BP_StartFormat;
  5356. }else if((labelcnt + overcnt) == 5){
  5357. sLabelSndMsg += fCareBP_EndFormat(1);
  5358. sLabelData_Array[labelindex] = sLabelSndMsg;
  5359. CommAX.SendMessage(sLabelSndMsg);
  5360. //////alert(sLabelSndMsg);
  5361. labelindex = labelindex + 1;
  5362. overcnt = 0;
  5363. labelcnt = 0;
  5364. sLabelSndMsg = BP_StartFormat;
  5365. }else{}
  5366. }
  5367. /*순서 뒤집기*/
  5368. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  5369. CommAX.SendMessage(sLabelData_Array[k]);
  5370. }*/
  5371. //-----------(20081031)
  5372. CommAX.PortOpen(false);
  5373. //CommAX.PortClose();
  5374. //-----------(20081031)
  5375. }else{
  5376. messageBox("수액이 존재하지","E007");
  5377. }
  5378. }
  5379. //----------(20080929이전버젼)
  5380. function fClickHydPrint_OLD(){
  5381. model.removeNodeSet("/root/send/medicard8/warddruglist");
  5382. var rows = grd_druglist.rows-1;
  5383. var prcpclscd = "";
  5384. var prcpmixno = "";
  5385. var prcptims = "";
  5386. var medicardcnt8 = 0;//라벨 출력 총 건수
  5387. var prtMix_Array = new Array;
  5388. var acctims = 0;
  5389. //-----------------(20080927)
  5390. var totcnt = "";
  5391. //-----------------(20080927)
  5392. for(var i = 1; i < rows; i++){
  5393. prcpclscd = model.getValue(xWardDrugListPath + "[" + i + "]/prtprcpclscd");
  5394. prcpmixno = model.getValue(xWardDrugListPath + "[" + i + "]/prcpmixno");
  5395. prcptims = model.getValue(xWardDrugListPath + "[" + i + "]/tims");
  5396. //------------(20080912)
  5397. var prcptimscalc = model.getValue(xWardDrugListPath + "[" + i + "]/calctims");
  5398. //------------(20080912)
  5399. if(prcpclscd == "A61"){//수액
  5400. if(model.getValue(xWardDrugListPath + "[" + i + "]/check") == "true"){
  5401. //--------(20080912)
  5402. //for(var j = 0; j < prcptims; j++){
  5403. for(var j = 0; j < prcptimscalc; j++){
  5404. //--------(20080912)
  5405. if((prcpmixno == "" || isSearchArrayIndex(prtMix_Array, prcpmixno) == -1) && j == 0){
  5406. medicardcnt8++;
  5407. prtMix_Array[medicardcnt8] = prcpmixno;
  5408. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", medicardcnt8 + acctims);
  5409. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  5410. //-----------------(20080927)
  5411. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  5412. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  5413. }
  5414. //-----------------(20080927)
  5415. }else if(j > 0){
  5416. acctims++;
  5417. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", Number(isSearchArrayIndex(prtMix_Array, prcpmixno)) + Number(acctims));
  5418. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  5419. //-----------------(20080927)
  5420. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  5421. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  5422. }
  5423. //-----------------(20080927)
  5424. }else{
  5425. model.setValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding", Number(isSearchArrayIndex(prtMix_Array, prcpmixno)) + Number(acctims));
  5426. model.duplicate("/root/send/medicard8", "/root/main/warddruginfo/warddruglist[" + i + "]");
  5427. //-----------------(20080927)
  5428. if ( model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding") != "-") {
  5429. totcnt = model.getValue("/root/main/warddruginfo/warddruglist[" + i + "]/soding");
  5430. }
  5431. //-----------------(20080927)
  5432. }
  5433. }
  5434. }
  5435. }
  5436. }
  5437. //수액
  5438. if(medicardcnt8 >0){
  5439. //exeReportPreview("RPMNW01000", "XMLSTR" , "" , "" , "ZDesigner S4M ZPL 203DPI" , "", "", "", "", "true");
  5440. //----------------------------(20080917) 다시 막고 화면 초기화시 open함
  5441. // 바코드OCX 생성(20080720)
  5442. // if(document.all("CommAX") == null){
  5443. // //lzzfMakeBrcdPrntObj("CommAX");
  5444. // lzzfMakeBrcdPrntObjHanDo("CommAX"); //(20080721)
  5445. // }
  5446. if ( getNodesetCount("/root/main/barcdprntsetup/prntsetupinfo/setupinfo") <=0 ) {
  5447. messageBox("바코드 환경정보가 없습니다. \n프린터 설정을 클릭하여 환경정보를 설정하십시오.","E999");
  5448. return;
  5449. }
  5450. // LLZ001.JS참고
  5451. // messageBox("아래 사항을 확인후 재출력해주십시오."
  5452. // + " \n 1.프린트설정 화면에서 통신유형을 com 으로 선택한 경우 port 번호 확인"
  5453. // + " \n 2.케이블 확인"
  5454. // + " \n 3.먼저 출력중인 바코드 확인(모두 출력된 후 재출력하십시오.)", "I", "");
  5455. //--------------------------------
  5456. fSettingBarCode("/root/main/barcdprntsetup/prntsetupinfo/setupinfo");
  5457. //CommAX.CommPort = "7"; // 출력 Port
  5458. //CommAX.Settings = "9600,n,8,1"; // Comm 설정
  5459. var nodecnt = getNodesetCount(xMediCard8);
  5460. var prev_soding = "";
  5461. var prcpvol = "";
  5462. var prcpvolunitflag = "";
  5463. var prcpqty = "";
  5464. var prcpqtyunitflag = "";
  5465. var labelcnt = 0;
  5466. var labelindex = 0;
  5467. var sDate = model.getValue("/root/main/cond/orddd").substr(4,2) + "/" + model.getValue("/root/main/cond/orddd").substr(6,2);
  5468. var soding = "";
  5469. var last = "";
  5470. var overcnt = 1;
  5471. var iHeight = 0;
  5472. var sTempData = "";
  5473. var sLabelData_Array = new Array;
  5474. var iLeft = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/left"));
  5475. var iTop = Number(model.getValue("/root/main/barcdprntsetup/prntsetupinfo/setupinfo/blank/top"));
  5476. if(iLeft == "" || iLeft == "-"){
  5477. iLeft = 0;
  5478. }
  5479. if(iTop == "" || iTop == "-"){
  5480. iTop = 0;
  5481. }
  5482. /*수액 라벨 출력*/
  5483. var sLabelSndMsg = BP_StartFormat;
  5484. for(var j = 1; j <= nodecnt; j++){
  5485. if(j == 1 || prev_soding != model.getValue(xMediCard8 + "[" + j + "]/soding")){
  5486. /*환자정보 라벨 출력*/
  5487. prev_soding = model.getValue(xMediCard8 + "[" + j + "]/soding");
  5488. //-----------------------------(20080917)
  5489. //이름과 등록번호 크게 출력하기
  5490. //sLabelSndMsg += fCarePrintOutA(iLeft + 100, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  5491. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 60, 3, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  5492. //sLabelSndMsg += fCarePrintOutH(iLeft + 100, iTop + 160, 3, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5493. sLabelSndMsg += fCarePrintOutA(iLeft + 50, iTop + 10, 3, "N", "(" + model.getValue("/root/main/patinfo/pid") + ")","");
  5494. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 60, 9, "Y", model.getValue("/root/main/patinfo/roomcd"),"");
  5495. sLabelSndMsg += fCarePrintOutH2(iLeft + 50, iTop + 160, 9, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5496. sLabelSndMsg += fCareBP_EndFormat(1);
  5497. //-----------------------------(20080917)
  5498. sLabelData_Array[labelindex] = sLabelSndMsg;
  5499. CommAX.SendMessage(sLabelSndMsg);
  5500. //////alert(sLabelSndMsg);
  5501. labelindex = labelindex + 1;
  5502. sLabelSndMsg = BP_StartFormat;
  5503. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + 10, 4, "N", model.getValue("/root/main/patinfo/roomcd"),"");
  5504. sLabelSndMsg += fCarePrintOutH(iLeft + 150, iTop + 10, 1, "Y", model.getValue("/root/main/patinfo/patnm"),"");
  5505. sLabelSndMsg += fCarePrintOutA(iLeft + 250, iTop + 10, 3, "N", model.getValue("/root/main/patinfo/sexage"),"");
  5506. sLabelSndMsg += fCarePrintOutA(iLeft + 350, iTop + 10, 4, "N", sDate,"");
  5507. }
  5508. prcpvol = model.getValue(xMediCard8 + "[" + j + "]/prcpvol");
  5509. prcpvolunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpvolunitflag");
  5510. prcpqty = model.getValue(xMediCard8 + "[" + j + "]/prcpqty");
  5511. prcpqtyunitflag = model.getValue(xMediCard8 + "[" + j + "]/prcpqtyunitflag");
  5512. //---------------(20080927)
  5513. //1일횟수로 나눈다.
  5514. var tims = model.getValue(xMediCard8 + "[" + j + "]/tims");
  5515. if (tims > 0 ) {
  5516. prcpvol = prcpvol / tims;
  5517. prcpqty = prcpqty / tims;
  5518. }
  5519. //---------------(20080927)
  5520. sTempData = prcpvol + prcpvolunitflag + "/" + prcpqty + prcpqtyunitflag;
  5521. iHeight = ((labelcnt + overcnt) * 30) + 30;
  5522. sLabelSndMsg += fCarePrintOutA(iLeft + 20, iTop + iHeight, 3, "N", model.getValue(xMediCard8 + "[" + j + "]/prcpcd"), "");
  5523. sLabelSndMsg += fCarePrintOutA(iLeft + 220, iTop + iHeight, 3, "N", sTempData, "");
  5524. labelcnt++;
  5525. soding = Number(model.getValue(xMediCard8 + "[" + j + "]/soding"));
  5526. last = model.getValue(xMediCard8 + "[" + j + "]/last");
  5527. /*수액정보 라벨 출력*/
  5528. if(j == nodecnt || prev_soding != model.getValue(xMediCard8 + "[" + (j+1) + "]/soding")){
  5529. // 총수 - 현위치
  5530. //----------(20080927)
  5531. //sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", (Number(medicardcnt8) + Number(acctims)) + " - " + soding, "");
  5532. sLabelSndMsg += fCarePrintOutA(iLeft + 200, iTop + 220, 1, "N", totcnt + " - " + soding, "");
  5533. //----------(20080927)
  5534. sLabelSndMsg += fCareBP_EndFormat(1);
  5535. sLabelData_Array[labelindex] = sLabelSndMsg;
  5536. CommAX.SendMessage(sLabelSndMsg);
  5537. //////alert(sLabelSndMsg);
  5538. labelindex = labelindex + 1;
  5539. overcnt = 1;
  5540. labelcnt = 0;
  5541. sLabelSndMsg = BP_StartFormat;
  5542. }else if((labelcnt + overcnt) == 5){
  5543. sLabelSndMsg += fCareBP_EndFormat(1);
  5544. sLabelData_Array[labelindex] = sLabelSndMsg;
  5545. CommAX.SendMessage(sLabelSndMsg);
  5546. //////alert(sLabelSndMsg);
  5547. labelindex = labelindex + 1;
  5548. overcnt = 0;
  5549. labelcnt = 0;
  5550. sLabelSndMsg = BP_StartFormat;
  5551. }else{}
  5552. }
  5553. /*순서 뒤집기*/
  5554. /*for(var k = sLabelData_Array.length-1; k >= 0; k--){
  5555. CommAX.SendMessage(sLabelData_Array[k]);
  5556. }*/
  5557. }else{
  5558. messageBox("수액이 존재하지","E007");
  5559. }
  5560. }
  5561. /**
  5562. * @group :
  5563. * @ver : 2007.06.25
  5564. * @by : 최경용
  5565. * @---------------------------------------------------
  5566. * @type : function
  5567. * @access : public
  5568. * @desc : 환자정보 라벨 출력
  5569. * @param :
  5570. * @return :
  5571. * @---------------------------------------------------
  5572. */
  5573. function fPatLabelPrint(sSndMsg){
  5574. //출력매수
  5575. //sSndMsg = sSndMsg + "^PQ1";
  5576. //끝
  5577. sSndMsg = sSndMsg + "^XZ";
  5578. CommAX.SendMessage(sSndMsg);
  5579. }
  5580. /**
  5581. * @group :
  5582. * @ver : 2007.06.25
  5583. * @by : 최경용
  5584. * @---------------------------------------------------
  5585. * @type : function
  5586. * @access : public
  5587. * @desc : 상단정보 셋팅
  5588. * @param :
  5589. * @return :
  5590. * @---------------------------------------------------
  5591. */
  5592. function fSetPatInfo(pid, indd, cretno, instcd, orddd, ordtype){
  5593. var row = group3.grd_druglist.currentrow;
  5594. if(top_pid != pid){
  5595. if(ordtype == "I" || ordtype == "D"){
  5596. // 상단 세팅을 위한 파라미터
  5597. condparam = "I" + "▦" + pid
  5598. + "▦" + indd
  5599. + "▦" + cretno
  5600. + "▦" + instcd
  5601. + "▦" + orddd;
  5602. }else if(ordtype == "E"){
  5603. // 상단 세팅을 위한 파라미터
  5604. condparam = "E" + "▦" + pid
  5605. + "▦" + indd
  5606. + "▦" + cretno
  5607. + "▦" + instcd
  5608. + "▦";
  5609. }else{}
  5610. if(ordtype == "I" || ordtype == "E" || ordtype == "D"){
  5611. //frmf_setParameter("condparam", condparam);
  5612. //상단 세팅 화면 사이즈 작게 띄움
  5613. //----------------------(20080618이전버젼)
  5614. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  5615. //top_pid = pid;
  5616. //----------------------(20080618이후버젼)
  5617. //modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  5618. var useyn = appf_initPatientInfo(condparam);
  5619. //var useyn = frmf_getParameter("SPMMO08900_rtn_useyn"); // 입원,외래 원무환자정보 존재 "Y" / 존재하지 않을 경우 "N"
  5620. if(useyn == true) { // 원무환자정보 있을 경우만 다음 단계 진행
  5621. top_pid = pid;
  5622. group3.btn_save.enable = true;
  5623. group3.btn_tempsave.enable = true;
  5624. } else {
  5625. sysf_messageBox("원무정보가 없습니다. 투약기록일 할 수 업습니다.","E999");
  5626. group3.btn_save.enable = false;
  5627. group3.btn_tempsave.enable = false;
  5628. }
  5629. //---------------------
  5630. }
  5631. }
  5632. }
  5633. /**
  5634. * @group :
  5635. * @ver : 2007.06.25
  5636. * @by : 최경용
  5637. * @---------------------------------------------------
  5638. * @type : function
  5639. * @access : public
  5640. * @desc : 투약기록 리스트 클릭시
  5641. * @param :
  5642. * @return :
  5643. * @---------------------------------------------------
  5644. */
  5645. function fDrugListClick(){
  5646. var row = group3.grd_druglist.currentrow;
  5647. var col = group3.grd_druglist.currentcol;
  5648. var drugstat = ds_main_cond.getColumn(0, "drugstat"); //ACTING구분
  5649. //데이터 컬럼을 클릭시
  5650. if( col >= grd_colcnt){ //해당 셀을 누를 경우 해당하는 자료만
  5651. if(fChkPrcpStat()) {
  5652. var nRowPos = ds_main_warddruginfo_warddruglist.rowposition;
  5653. var nColPos = group3.grd_druglist.currentcell;
  5654. ds_main_warddruginfo_warddruglist.enableevent = false;
  5655. fSetDrug(drugstat); //Acting이벤트시 공통 함수(ACTING구분 파라미터)상단으로 올라감
  5656. ds_main_warddruginfo_warddruglist.enableevent = true;
  5657. ds_main_warddruginfo_warddruglist.rowposition = nRowPos;
  5658. group3.grd_druglist.setCellPos(nColPos);
  5659. group3.grd_druglist.setFocus();
  5660. if(grd_colcnt <= col){
  5661. //-----------(20081121:test) grd_druglist.row = 1;가 있는데, 막고 테스트 진행함)
  5662. //grd_druglist.row = 1;
  5663. //숨겨진필드로 이동한다.
  5664. // grd_druglist.select(grd_druglist.row,grd_druglist.colref("engnm")) = true;
  5665. // grd_druglist.col = grd_druglist.colref("engnm");
  5666. //-----------(20081121)
  5667. }
  5668. }
  5669. }else{}
  5670. }
  5671. /**
  5672. * @group :
  5673. * @ver : 2007.06.25
  5674. * @by : 최경용
  5675. * @---------------------------------------------------
  5676. * @type : function
  5677. * @access : public
  5678. * @desc : 환자정보 디스플레이(환자리스트)
  5679. * @param :
  5680. * @return :
  5681. * @---------------------------------------------------
  5682. */
  5683. function fSetPatTopInfo(){
  5684. var mouserow = group3.swtpatList.pat.grd_patlist.currentrow;
  5685. var patcnt = ds_main_wardpatinfo_wardpatlist.rowcount;
  5686. var row = group3.swtpatList.pat.grd_patlist.currentrow;
  5687. var pid = ds_main_wardpatinfo_wardpatlist.getColumn(row, "pid");
  5688. var indd = ds_main_wardpatinfo_wardpatlist.getColumn(row, "indd");
  5689. var cretno = ds_main_wardpatinfo_wardpatlist.getColumn(row, "cretno");
  5690. var instcd = ds_main_wardpatinfo_wardpatlist.getColumn(row, "instcd");
  5691. var ordtype = ds_main_wardpatinfo_wardpatlist.getColumn(row, "ordtype");
  5692. var orddd = ds_main_cond.getColumn(0, "orddd");
  5693. var roomcd = ds_main_wardpatinfo_wardpatlist.getColumn(row, "roomcd");
  5694. var patnm = ds_main_wardpatinfo_wardpatlist.getColumn(row, "patnm");
  5695. var sexage = ds_main_wardpatinfo_wardpatlist.getColumn(row, "sexage");
  5696. if( ds_main_cond.getColumn(0, "wardcd") == "0000000000" ){
  5697. xOpfromdt = ds_main_wardpatinfo_wardpatlist.getColumn(row, "opfromdt");
  5698. var preantidt = utlf_transNullToEmpty(ds_main_wardpatinfo_wardpatlist.getColumn(row, "preantidt"));
  5699. if (xDrMode = "dr") {
  5700. if( !utlf_isNull(preantidt) && preantidt != "-" ){
  5701. ds_main_cond.setColumn(0, "currentday", preantidt.substr(0, 8));
  5702. ds_main_cond.setColumn(0, "currenttime", preantidt.substr(8,4));
  5703. }
  5704. else {
  5705. ds_main_cond.setColumn(0, "currentday", utlf_getCurrentDate());
  5706. ds_main_cond.setColumn(0, "currenttime", utlf_getCurrentTime().substr(0,4));
  5707. }
  5708. }
  5709. }
  5710. ds_main_patinfo.setColumn(0, "roomcd", roomcd);
  5711. ds_main_patinfo.setColumn(0, "pid", pid);
  5712. ds_main_patinfo.setColumn(0, "patnm", patnm);
  5713. ds_main_patinfo.setColumn(0, "sexage", sexage);
  5714. ds_main_patinfo.setColumn(0, "opfromdt", xOpfromdt);
  5715. //-----------------(20080912) 응급의료센터는 병실정보가 배드정보이므로 병실세팅하면 안�.20090601 김홍점
  5716. if( !utlf_isNull(ds_codelist.getColumn(0, "cdid") ) && ds_codelist.getColumn(0, "cdid") != ds_main_cond.getColumn(0, "wardcd") ){
  5717. ds_main_cond.setColumn(0, "roomcd", roomcd);
  5718. }
  5719. //-----------------(20080912)
  5720. if(mouserow > -1 && mouserow < patcnt){
  5721. fSetPatInfo(pid,indd,cretno,instcd,orddd,ordtype);
  5722. }
  5723. if(mouserow > -1 && mouserow < patcnt){
  5724. fClickDrugListBefore(); //------------(20081031)
  5725. fClickDrugList("drg", row);
  5726. fClickDrugListAfter(); //------------(20081031)
  5727. }
  5728. ds_main_paminfo_pamlist.clearData();
  5729. var sPamInfo = sysf_getGlobalVariable("paminfo");
  5730. dsf_setCSVToDs("ds_main_paminfo_pamlist", sPamInfo); //환자정보내리기
  5731. if( utlf_isNull(ds_main_paminfo_pamlist.getColumnInfo("sectioncd")) ){
  5732. ds_main_paminfo_pamlist.addColumn("sectioncd", "string");
  5733. ds_main_paminfo_pamlist.setColumn(0, "sectioncd", ds_main_paminfo_pamlist.getColumn(0, "basetypecd"));
  5734. }
  5735. }
  5736. /**
  5737. * @group :
  5738. * @ver : 2007.06.25
  5739. * @by : 최경용
  5740. * @-------------------------------------------------
  5741. * @type : function
  5742. * @access : public
  5743. * @desc : 환자정보 디스플레이(미투약리스트)
  5744. * @param :
  5745. * @return :
  5746. * @---------------------------------------------------
  5747. */
  5748. function fSetActTopInfo(){
  5749. var mouserow = group3.swtpatList.act.grd_actlist.currentrow;
  5750. var patcnt = ds_main_wardactinfo_wardactlist.rowcount;
  5751. var row = group3.swtpatList.act.grd_actlist.currentrow;
  5752. var pid = ds_main_wardactinfo_wardactlist.getColumn(row, "pid");
  5753. var indd = ds_main_wardactinfo_wardactlist.getColumn(row, "indd");
  5754. var cretno = ds_main_wardactinfo_wardactlist.getColumn(row, "cretno");
  5755. var instcd = ds_main_wardactinfo_wardactlist.getColumn(row, "instcd");
  5756. var ordtype = ds_main_wardactinfo_wardactlist.getColumn(row, "ordtype");
  5757. var orddd = "";//ds_main_wardactinfo_wardactlist.getColumn(row, "prcpdd");
  5758. var roomcd = ds_main_wardactinfo_wardactlist.getColumn(row, "roomcd");
  5759. var patnm = ds_main_wardactinfo_wardactlist.getColumn(row, "patnm");
  5760. var sexage = ds_main_wardactinfo_wardactlist.getColumn(row, "sexage");
  5761. ds_main_patinfo.setColumn(0, "roomcd", roomcd);
  5762. ds_main_patinfo.setColumn(0, "pid", pid);
  5763. ds_main_patinfo.setColumn(0, "patnm", patnm);
  5764. ds_main_patinfo.setColumn(0, "sexage", sexage);
  5765. if(mouserow > -1 && mouserow < patcnt){
  5766. fSetPatInfo(pid,indd,cretno,instcd,orddd,ordtype);
  5767. }
  5768. if(mouserow > -1 && mouserow < patcnt){
  5769. fClickDrugListBefore(); //------------(20081031)
  5770. fClickDrugList("act", row);
  5771. fClickDrugListAfter(); //------------(20081031)
  5772. }
  5773. ds_main_paminfo_pamlist.clearData();
  5774. var sPamInfo = sysf_getGlobalVariable("paminfo");
  5775. dsf_setCSVToDs("ds_main_paminfo_pamlist", sPamInfo); //환자정보내리기
  5776. if( utlf_isNull(ds_main_paminfo_pamlist.getColumnInfo("sectioncd")) ){
  5777. ds_main_paminfo_pamlist.addColumn("sectioncd", "string");
  5778. ds_main_paminfo_pamlist.setColumn(0, "sectioncd", ds_main_paminfo_pamlist.getColumn(0, "basetypecd"));
  5779. }
  5780. }
  5781. /**
  5782. * @group :
  5783. * @ver : 2007.06.25
  5784. * @by : 최경용
  5785. * @---------------------------------------------------
  5786. * @type : function
  5787. * @access : public
  5788. * @desc : 상태값 변경 체크
  5789. * @param :
  5790. * @return :
  5791. * @---------------------------------------------------
  5792. */
  5793. function fChangeValueStatus(row, forarr){
  5794. var objDsxWardDrugListPath = eval(xWardDrugListPath+row+"for");
  5795. var iudflag = objDsxWardDrugListPath.getColumn(forarr, "iudflag");
  5796. if(iudflag == "-"){
  5797. objDsxWardDrugListPath.setColumn(forarr, "iudflag", "U");
  5798. }else if( utlf_isNull(iudflag) ){
  5799. objDsxWardDrugListPath.setColumn(forarr, "iudflag", "I");
  5800. }else{}
  5801. }
  5802. /**
  5803. * @group :
  5804. * @ver : 2007.06.23
  5805. * @by : 최경용
  5806. * @---------------------------------------------------
  5807. * @type : function
  5808. * @access : public
  5809. * @desc : 투약 시간 셀 color 변경
  5810. * @param :
  5811. * @param :
  5812. * @return :
  5813. * @---------------------------------------------------
  5814. */
  5815. function fDrugCellColorChg(){
  5816. var rows = group3.grd_druglist.rowcount;
  5817. var execcarestatcd = "";
  5818. var spcldrug = "";
  5819. var dccomcountyn = "";
  5820. var forarr = "";
  5821. var todaydrugflag = ""; //---(20080920)
  5822. var sExprBack = "EXPR(";
  5823. for( var i=0 ; i<rows ; i++ ){
  5824. //AST.ADBMDRUG(약품기본정보)spcldrug(특별약품구분(코드군 A0006 참조))
  5825. spcldrug = ds_main_warddruginfo_warddruglist.getColumn(i, "spcldrug");
  5826. //D/C확정여부
  5827. dccomcountyn = ds_main_warddruginfo_warddruglist.getColumn(i, "dccomcountyn");
  5828. for( var j=0 ; j<addCol_Array.length ; j++ ){
  5829. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("forarr"+(grd_colcnt+j))) ){
  5830. ds_main_warddruginfo_warddruglist.addColumn("forarr"+(grd_colcnt+j), "string");
  5831. }
  5832. forarr = utlf_transNullToEmpty(ds_main_warddruginfo_warddruglist.getColumn(i, "forarr"+(grd_colcnt+j))).split(" ");
  5833. if( !utlf_isNull(forarr) ){
  5834. for( var k=0 ; k<forarr.length-1 ; k++ ){
  5835. //간호Acting진행상태(N(미확인)/R(정상투약)/P(투약X-반환가능)/I(투약X-반환불가)/L(퇴원당일 남은약)
  5836. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  5837. execcarestatcd = objDsxWardDrugListPath.getColumn(forarr[k]-1, "execcarestatcd");
  5838. //--------------------------------------
  5839. //원본:조건체크없이 설정했음
  5840. //수정:조회일 기준으로 투약대상이 아니면 색상을 표시하지 않는다.
  5841. todaydrugflag = objDsxWardDrugListPath.getColumn(forarr[k]-1, "todaydrug"); //--(0920)
  5842. if (todaydrugflag == "Y") { //--(0920)
  5843. if(execcarestatcd == "N" ||execcarestatcd == "-"){
  5844. sExprBack += "currow == "+i+" && self.col == "+(j+grd_colcnt)+" ? '"+gray+"' : ";
  5845. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+(j+grd_colcnt))) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+(j+grd_colcnt))) ){
  5846. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+(j+grd_colcnt), "string", gray, i);
  5847. }
  5848. }else if(execcarestatcd == "R"){
  5849. sExprBack += "currow == "+i+" && self.col == "+(j+grd_colcnt)+" ? '"+yellow+"' : ";
  5850. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+(j+grd_colcnt))) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+(j+grd_colcnt))) ){
  5851. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+(j+grd_colcnt), "string", yellow, i);
  5852. }
  5853. }else if(execcarestatcd == "P"){
  5854. sExprBack += "currow == "+i+" && self.col == "+(j+grd_colcnt)+" ? '"+yellowishgreen+"' : ";
  5855. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+(j+grd_colcnt))) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+(j+grd_colcnt))) ){
  5856. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+(j+grd_colcnt), "string", yellowishgreen, i);
  5857. }
  5858. }else if(execcarestatcd == "I"){
  5859. sExprBack += "currow == "+i+" && self.col == "+(j+grd_colcnt)+" ? '"+red+"' : ";
  5860. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+(j+grd_colcnt))) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+(j+grd_colcnt))) ){
  5861. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+(j+grd_colcnt), "string", red, i);
  5862. }
  5863. }else if(execcarestatcd == "L"){
  5864. sExprBack += "currow == "+i+" && self.col == "+(j+grd_colcnt)+" ? '"+sky+"' : ";
  5865. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+(j+grd_colcnt))) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+(j+grd_colcnt))) ){
  5866. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+(j+grd_colcnt), "string", sky, i);
  5867. }
  5868. //-------------(20081201)
  5869. }else if(execcarestatcd == "M"){
  5870. sExprBack += "currow == "+i+" && self.col == "+(j+grd_colcnt)+" ? '"+orange+"' : ";
  5871. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+(j+grd_colcnt))) || utlf_isNull(ds_main_warddruginfo_warddruglist.getColumn(i, "color"+(j+grd_colcnt))) ){
  5872. dsf_makeValue(ds_main_warddruginfo_warddruglist, "color"+(j+grd_colcnt), "string", orange, i);
  5873. }
  5874. //-------------(20081201)
  5875. }else{}
  5876. }
  5877. //--------------------------------------
  5878. }
  5879. }
  5880. }
  5881. }
  5882. sExprBack += "'')";
  5883. for( var i=grd_colcnt ; i<group3.grd_druglist.getCellCount("Body") ; i++ ){
  5884. group3.grd_druglist.setCellProperty("Body", i, "background", "BIND(color"+i+")");//sExprBack);
  5885. group3.grd_druglist.setCellProperty("Body", i, "background2", "BIND(color"+i+")");//sExprBack);
  5886. group3.grd_druglist.setCellProperty("Body", i, "selectbackground", "BIND(color"+i+")");//sExprBack);
  5887. }
  5888. //bfprcpequalyn : 전일처방 비교 getbfprcpequalyninfo 추가 김홍점 'N'일때 색깔표현
  5889. for( var i=4 ; i<16 ; i++ ){
  5890. group3.grd_druglist.setCellProperty("Body", i, "background", "EXPR(bfprcpequalyn == 'N' ? '#cceeee' : '')");
  5891. group3.grd_druglist.setCellProperty("Body", i, "background2", "EXPR(bfprcpequalyn == 'N' ? '#cceeee' : '')");
  5892. }
  5893. for( var i=1 ; i<group3.grd_druglist.getCellCount("Body") ; i++ ){
  5894. if( i<=grd_colcnt-3 || i==grd_colcnt-1 ){
  5895. //-----------------------------(20080731)
  5896. //마약,향정신성인 경우
  5897. //if(spcldrug == "M"){
  5898. group3.grd_druglist.setCellProperty("Body", i, "font", "EXPR(spcldrug == 'M' || spcldrug == 'H' ? 'Dotum,9,bold' : 'Dotum,9')");
  5899. group3.grd_druglist.setCellProperty("Body", i, "selectfont", "EXPR(spcldrug == 'M' || spcldrug == 'H' ? 'Dotum,9,bold' : 'Dotum,9')");
  5900. //D/C확정여부
  5901. group3.grd_druglist.setCellProperty("Body", i, "color", "EXPR(dccomcountyn == 'Y' ? 'red' : '')");
  5902. group3.grd_druglist.setCellProperty("Body", i, "color2", "EXPR(dccomcountyn == 'Y' ? 'red' : '')");
  5903. group3.grd_druglist.setCellProperty("Body", i, "selectcolor", "EXPR(dccomcountyn == 'Y' ? 'red' : '')");
  5904. }
  5905. }
  5906. //-----------------------------
  5907. }
  5908. //-------------------------------------(20080920)
  5909. // todaydrug 을 기준으로 화면에 보이는 것을 재 설정한다.
  5910. function fDrugCellDispChg(){
  5911. var pGrd = group3.grd_druglist;
  5912. var rows = pGrd.rowcount;
  5913. var cols = pGrd.getCellCount("Body");
  5914. var execcarestatcd = "";
  5915. var spcldrug = "";
  5916. var dccomcountyn = "";
  5917. var forarr = "";
  5918. var todaydrugflag = "";
  5919. //-----------------------------
  5920. //column 설정
  5921. //화면에 보이는 자료에 대해서 색상이 없는경우는 colwidth = 0으로 설정한다.
  5922. //-----------------------------
  5923. for( var col=grd_colcnt ; col<cols ; col++ ){
  5924. var dispyn = false; //보이지 않아야 하는 컬럼
  5925. for( var row=0 ; row<rows ; row++ ){
  5926. //if (pGrd.rowheight(row) != 0) { //----(20080923)
  5927. if ( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+col)) &&
  5928. (ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == gray ||
  5929. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == yellow ||
  5930. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == yellowishgreen ||
  5931. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == red ||
  5932. //-------------(20081201)
  5933. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == orange ||
  5934. //-------------(20081201)
  5935. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == sky) ){
  5936. dispyn = true;
  5937. }
  5938. //}
  5939. }
  5940. if (dispyn == false) {
  5941. pGrd.setRealColSize(col, 0);
  5942. pGrd.setFormatColProperty(col, "size", 0);
  5943. }
  5944. }
  5945. //-----------------------------
  5946. //row 설정
  5947. //화면에 보이는 자료에 대해서 색상이 없는경우는 rowheight = 0으로 설정한다.
  5948. //-----------------------------
  5949. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("flagRowHidden")) ){
  5950. ds_main_warddruginfo_warddruglist.addColumn("flagRowHidden", "string");
  5951. }
  5952. for( var ii=0 ; ii<ds_main_warddruginfo_warddruglist.rowcount ; ii++ ){
  5953. ds_main_warddruginfo_warddruglist.setColumn(ii, "flagRowHidden", "0");
  5954. }
  5955. for( var row=0 ; row<rows ; row++ ){
  5956. var dispyn = false; //보이지 않아야 하는 컬럼
  5957. for( var col=grd_colcnt ; col<cols ; col++ ){
  5958. if( pGrd.getRealColSize(col) != 0 ){ //----(20080925)
  5959. if ( !utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("color"+col)) &&
  5960. (ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == gray ||
  5961. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == yellow ||
  5962. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == yellowishgreen ||
  5963. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == red ||
  5964. //-----------(20081201)
  5965. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == orange ||
  5966. //-----------(20081201)
  5967. ds_main_warddruginfo_warddruglist.getColumn(row, "color"+col) == sky) ){
  5968. dispyn = true;
  5969. }
  5970. }
  5971. }
  5972. if (dispyn == false) {
  5973. ds_main_warddruginfo_warddruglist.setColumn(row, "flagRowHidden", "1");
  5974. //pGrd.setRealRowSize(row, 0);
  5975. }
  5976. }
  5977. for( var i=0 ; i<ds_main_warddruginfo_warddruglist.rowcount ; i++ ){
  5978. if( ds_main_warddruginfo_warddruglist.getColumn(i, "flagRowHidden") == "1" && !utlf_isNull(this.objects[xWardDrugListPath+i+"for"]) ){
  5979. var objDs = this.removeChild(xWardDrugListPath+i+"for");
  5980. delete objDs;
  5981. objDs = null;
  5982. }
  5983. }
  5984. for( var i=0 ; i<ds_main_warddruginfo_warddruglist.rowcount ; i++ ){
  5985. if( utlf_isNull(this.objects[xWardDrugListPath+i+"for"]) ){
  5986. for( var j=(i+1) ; j<ds_main_warddruginfo_warddruglist.rowcount ; j++ ){
  5987. if( ds_main_warddruginfo_warddruglist.getColumn(j, "flagRowHidden") != "1" && !utlf_isNull(this.objects[xWardDrugListPath+j+"for"]) ){
  5988. dsf_createDs(xWardDrugListPath+i+"for");
  5989. eval(xWardDrugListPath+i+"for").copyData(eval(xWardDrugListPath+j+"for"));
  5990. var objDs = this.removeChild(xWardDrugListPath+j+"for");
  5991. delete objDs;
  5992. objDs = null;
  5993. break;
  5994. }
  5995. }
  5996. }
  5997. }
  5998. ds_main_warddruginfo_warddruglist.filter("flagRowHidden!='1'");
  5999. }
  6000. //-------------------------------------(20080920)
  6001. /**
  6002. * @group :
  6003. * @ver : 2007.06.25
  6004. * @by : 최경용
  6005. * @---------------------------------------------------
  6006. * @type : function
  6007. * @access : public
  6008. * @desc : Tree 셋팅
  6009. * @param : Object gridObj - 그리드 오브텍트
  6010. Integer levelcol - Depth 컬럼 위치
  6011. Integer targetcol - 아웃라인 생성 컬럼 위치
  6012. Boolean collapsed - Expand 설정
  6013. * @return :
  6014. * @---------------------------------------------------
  6015. */
  6016. function careSetTree( gridObj, levelcol, targetcol, collapsed ) {
  6017. // 그리드 아웃라이바 초기화
  6018. gridObj.outlinebar=0;
  6019. var prcpmixno = "0";
  6020. var prcpclscd = "";
  6021. //tree 및 레벨설정
  6022. for(var j = gridObj.fixedRows; j < gridObj.rows; j++)
  6023. {
  6024. gridObj.IsSubtotal(j) = false;
  6025. }
  6026. gridObj.refresh();
  6027. mixno_Array = new Array;
  6028. //tree 및 레벨설정
  6029. for(var i = gridObj.fixedRows; i < gridObj.rows; i++)
  6030. {
  6031. prcpmixno = model.getValue(xWardDrugListPath + "[" + (i-1) + "]/prcpmixno");
  6032. prcpclscd = model.getValue(xWardDrugListPath + "[" + (i-1) + "]/prcpclscd");
  6033. if(prcpmixno != ""){
  6034. try {
  6035. if(mixno_Array[parseInt(prcpmixno)] == null){
  6036. gridObj.IsSubtotal(i) = true;
  6037. gridObj.outlinelevel(i) = 1; //인스턴스 levl 값임
  6038. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "1");
  6039. mixno_Array[parseInt(prcpmixno)] = "Y";
  6040. }else if(mixno_Array[parseInt(prcpmixno)] == "Y"){
  6041. gridObj.IsSubtotal(i) = true;
  6042. gridObj.outlinelevel(i) = 2; //인스턴스 levl 값임
  6043. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "2");
  6044. }else{}
  6045. } catch(e) {
  6046. ////////////alert("i:"+i+",levelcol:"+levelcol);
  6047. }
  6048. }else{
  6049. model.setValue(xWardDrugListPath + "[" + (i-1) + "]/depth", "0");
  6050. }
  6051. }
  6052. // tree 대상 컬럼 및 형태 설정
  6053. gridObj.outlinecol=targetcol; //연결선이 표현되는 컬럼
  6054. gridObj.outlinebar=2; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  6055. gridObj.treecolor="#948777"
  6056. // 자식 트리 접기
  6057. if(collapsed != null) {
  6058. setCollapsed(gridObj, collapsed);
  6059. }
  6060. }
  6061. /**
  6062. * @group :
  6063. * @ver : 2007.06.25
  6064. * @by : 최경용
  6065. * @---------------------------------------------------
  6066. * @type : function
  6067. * @access : public
  6068. * @desc : 문자열 검색(배열)
  6069. * @param :
  6070. * @return :
  6071. * @---------------------------------------------------
  6072. */
  6073. function isSearchArrayString(baseCol_Array, row){
  6074. for(var i = 0; i <= baseCol_Array.length; i++){
  6075. if((baseCol_Array[i]) == row){
  6076. return true;
  6077. }
  6078. }
  6079. return false;
  6080. }
  6081. /**
  6082. * @group :
  6083. * @ver : 2007.06.25
  6084. * @by : 최경용
  6085. * @---------------------------------------------------
  6086. * @type : function
  6087. * @access : public
  6088. * @desc : 문자열 검색(배열)
  6089. * @param :
  6090. * @return :
  6091. * @---------------------------------------------------
  6092. */
  6093. function isSearchArrayIndex(baseCol_Array, sData){
  6094. for(var i = 0; i <= baseCol_Array.length; i++){
  6095. if((baseCol_Array[i]) == sData){
  6096. return i;
  6097. }
  6098. }
  6099. return -1;
  6100. }
  6101. /**
  6102. * @group :
  6103. * @ver : 2007.06.25
  6104. * @by : 최경용
  6105. * @---------------------------------------------------
  6106. * @type : function
  6107. * @access : public
  6108. * @desc : 기준시간 변경전 변경된 내용이 있는지 체크
  6109. * @param :
  6110. * @return :
  6111. * @---------------------------------------------------
  6112. */
  6113. function fChangeDrugInfo(){
  6114. var rows = group3.grd_druglist.rowcount;
  6115. var drugtmspec = "";
  6116. var tims = "";
  6117. var stat = "false";
  6118. var iudflag = "";
  6119. for( var i=0 ; i<rows ; i++ ){
  6120. drugtmspec = ds_main_warddruginfo_warddruglist.getColumn(i, "drugtmspec").split(" ");
  6121. tims = ds_main_warddruginfo_warddruglist.getColumn(i, "tims");
  6122. for( var j=0 ; j<rows ; j++ ){
  6123. if( utlf_isNull(ds_main_warddruginfo_warddruglist.getColumnInfo("iudflag" + utlf_transNullToEmpty(drugtmspec[j]))) ){
  6124. iudflag = "";
  6125. }else{
  6126. iudflag = ds_main_warddruginfo_warddruglist.getColumn(i, "iudflag" + utlf_transNullToEmpty(drugtmspec[j]));
  6127. }
  6128. if(iudflag != "-" && !utlf_isNull(iudflag) ){
  6129. return "true";
  6130. }
  6131. }
  6132. }
  6133. return "false";
  6134. }
  6135. /**
  6136. * @group :
  6137. * @ver : 2007.06.25
  6138. * @by : 최경용
  6139. * @---------------------------------------------------
  6140. * @type : function
  6141. * @access : public
  6142. * @desc : 투약기록 그리드 기본/펼치기 모드 이벤트
  6143. * @param :
  6144. * @return :
  6145. * @---------------------------------------------------
  6146. */
  6147. function fSelectOpenMoe(){
  6148. if( group3.rdo_openmode.value == "O" ){ //펼치기
  6149. group3.grd_druglist.setFormatColProperty(grd_colcnt-8, "size", 100); //기준시간setting(drugtmspeccal)
  6150. group3.grd_druglist.setFormatColProperty(grd_colcnt-7, "size", 80); //처방remark(prcpdelivefact)
  6151. group3.grd_druglist.setFormatColProperty(grd_colcnt-6, "size", 55); //처방의(orddrnm)
  6152. group3.grd_druglist.setFormatColProperty(grd_colcnt-5, "size", 100); //처방시간(fstrgstdt)
  6153. group3.grd_druglist.setFormatColProperty(grd_colcnt-4, "size", 70); //처방적용일(prcphopedd)
  6154. //grd_druglist.colHidden(grd_colcnt - 2) = false; //수액라벨출력여부(sapnoyn)(20080929)
  6155. group3.grd_druglist.setFormatColProperty(grd_colcnt-3, "size", 0); //수액라벨출력여부(sapnoyn)(20081114)
  6156. group3.grd_druglist.setFormatColProperty(grd_colcnt-2, "size", 70); //처방영문명(20081118)
  6157. group3.grd_druglist.setFormatColProperty(grd_colcnt-1, "size", 0); //depth(depth)
  6158. }else if( group3.rdo_openmode.value == "B" ){ //기본
  6159. group3.grd_druglist.setFormatColProperty(grd_colcnt-8, "size", 0);
  6160. group3.grd_druglist.setFormatColProperty(grd_colcnt-7, "size", 0);
  6161. group3.grd_druglist.setFormatColProperty(grd_colcnt-6, "size", 0);
  6162. group3.grd_druglist.setFormatColProperty(grd_colcnt-5, "size", 0);
  6163. group3.grd_druglist.setFormatColProperty(grd_colcnt-4, "size", 0);
  6164. group3.grd_druglist.setFormatColProperty(grd_colcnt-3, "size", 0); //수액라벨출력여부(sapnoyn)(20080929)
  6165. group3.grd_druglist.setFormatColProperty(grd_colcnt-2, "size", 0); //처방영문명(20081118)
  6166. group3.grd_druglist.setFormatColProperty(grd_colcnt-1, "size", 0);
  6167. }else {}
  6168. }
  6169. /**
  6170. * @group :
  6171. * @ver : 2007.06.23
  6172. * @by : 최경용
  6173. * @---------------------------------------------------
  6174. * @type : function
  6175. * @access : public
  6176. * @desc : 투약기록 문자열 정렬
  6177. * @param :
  6178. * @param :
  6179. * @return :
  6180. * @---------------------------------------------------
  6181. */
  6182. //일자별정렬
  6183. function sortHashKeys(col, cnt){
  6184. var sColArray = new Array; //파라미터를 배열 구조로 변경 저장
  6185. var sCol = col.split("^");
  6186. var temp = "";
  6187. for(var i = 0; i < cnt; i++){
  6188. sColArray[i] = Number(sCol[i]);
  6189. }
  6190. //sColArray.sort();
  6191. for(i = 0; i < sColArray.length; i++){
  6192. for(j = 0; j < sColArray.length; j++){
  6193. if(sort2(sColArray[i],sColArray[j]) == false){
  6194. temp = sColArray[i];
  6195. sColArray[i] = sColArray[j];
  6196. sColArray[j] = temp;
  6197. }
  6198. }
  6199. }
  6200. return sColArray;
  6201. }
  6202. //시간대정렬(20080918)
  6203. function sortHashKeys2(col, cnt){
  6204. var sColArray = new Array; //파라미터를 배열 구조로 변경 저장
  6205. var sCol = col.split("^");
  6206. var temp = "";
  6207. for(var i = 0; i < cnt; i++){
  6208. sColArray[i] = Number(sCol[i]);
  6209. }
  6210. //sColArray.sort();
  6211. for(i = 0; i < sColArray.length; i++){
  6212. for(j = 0; j < sColArray.length; j++){
  6213. if(sort2(sColArray[i],sColArray[j]) == false){
  6214. temp = sColArray[i];
  6215. sColArray[i] = sColArray[j];
  6216. sColArray[j] = temp;
  6217. }
  6218. }
  6219. }
  6220. ////////alert("1");
  6221. //가공
  6222. var sColArraytemp0 = new Array;
  6223. var sColArraytemp1 = new Array;
  6224. var sColArraytemp2 = new Array;
  6225. var sColArraytemp3 = new Array;
  6226. var sColArraytemp4 = new Array;
  6227. var cnt0 = -1;
  6228. var cnt1 = -1;
  6229. var cnt2 = -1;
  6230. var cnt3 = -1;
  6231. var cnt4 = -1;
  6232. ////////alert("2");
  6233. for(i = 0; i < sColArray.length; i++){
  6234. var tempv = parseInt(sColArray[i]);
  6235. //////////alert(tempv);
  6236. if (tempv < 0) {
  6237. ////////alert("나누기전:" +tempv);
  6238. tempv = tempv / 2400 ;
  6239. ////////alert("나누기후:" +tempv.toString().getTruncate());
  6240. if (tempv.toString().getTruncate() == 0) {
  6241. cnt0++;
  6242. sColArraytemp0[cnt0] = sColArray[i];
  6243. ////////alert(sColArraytemp0[cnt0]);
  6244. }else if(tempv.toString().getTruncate() == -1) {
  6245. cnt1++;
  6246. sColArraytemp1[cnt1] = sColArray[i];
  6247. }else if(tempv.toString().getTruncate() == -2) {
  6248. cnt2++;
  6249. sColArraytemp2[cnt2] = sColArray[i];
  6250. }else if (tempv.toString().getTruncate() == -3) {
  6251. cnt3++;
  6252. sColArraytemp3[cnt3] = sColArray[i];
  6253. }else if (tempv.toString().getTruncate() == -4) {
  6254. cnt4++;
  6255. sColArraytemp4[cnt4] = sColArray[i];
  6256. }
  6257. }
  6258. }
  6259. ////////alert("3");
  6260. var totcnt = -1;
  6261. for (i=0;i<sColArraytemp4.length;i++) {
  6262. totcnt ++;
  6263. sColArray[totcnt]=sColArraytemp4[i];
  6264. ////////alert(sColArray[totcnt]);
  6265. }
  6266. for (i=0;i<sColArraytemp3.length;i++) {
  6267. totcnt ++;
  6268. sColArray[totcnt]=sColArraytemp3[i];
  6269. ////////alert(sColArray[totcnt]);
  6270. }
  6271. for (i=0;i<sColArraytemp2.length;i++) {
  6272. totcnt ++;
  6273. sColArray[totcnt]=sColArraytemp2[i];
  6274. ////////alert(sColArray[totcnt]);
  6275. }
  6276. for (i=0;i<sColArraytemp1.length;i++) {
  6277. totcnt ++;
  6278. sColArray[totcnt]=sColArraytemp1[i];
  6279. ////////alert(sColArray[totcnt]);
  6280. }
  6281. for (i=0;i<sColArraytemp0.length;i++) {
  6282. totcnt ++;
  6283. sColArray[totcnt]=sColArraytemp0[i];
  6284. ////////alert(sColArray[totcnt]);
  6285. }
  6286. ////////alert("4");
  6287. return sColArray;
  6288. }
  6289. //기준시간setting정렬(0930)
  6290. function sortHashKeysString(sColString){
  6291. var sColArray = new Array;
  6292. //string -> 배열로
  6293. var sCol = sColString.split(" ");
  6294. var temp = "";
  6295. for(var i = 0; i < sCol.length; i++){
  6296. //sColArray[i] = Number(sCol[i]);
  6297. sColArray[i] = fCarec_GetFillZeno(sCol[i],4,0);
  6298. sColArray[i] = sColArray[i].toString().replace(":",""); //-----(20080919)
  6299. }
  6300. //배열 정렬
  6301. for(var i = 0; i < sColArray.length; i++){
  6302. for(var j = 0; j < sColArray.length; j++){
  6303. if(sort2(sColArray[i],sColArray[j]) == false){
  6304. temp = fCarec_GetFillZeno(sColArray[i],4,0);
  6305. sColArray[i] = fCarec_GetFillZeno(sColArray[j],4,0);
  6306. sColArray[j] = fCarec_GetFillZeno(temp,4,0);
  6307. }
  6308. }
  6309. }
  6310. //중복제거
  6311. // sColString = "";
  6312. // for(var i = 0; i < sColArray.length; i++){
  6313. // if ( sColArray[i] == "") continue;
  6314. //
  6315. // for(var j = i+1; j < sColArray.length; j++){
  6316. // if ( sColArray[i] == sColArray[j]) sColArray[j] = "";
  6317. // }
  6318. // }
  6319. //배열 -> string
  6320. sColString = "";
  6321. for(var i = 0; i < sColArray.length; i++){
  6322. //if (sColArray[i] == "0000") continue; //---0919
  6323. sColString += sColArray[i] + " ";
  6324. }
  6325. //마지막 " " 제거
  6326. sColString = utlf_transNullToEmpty(sColString).substr(0,sColString.length-1);
  6327. //string 리턴
  6328. return sColString;
  6329. }
  6330. //--------------------(20080605)
  6331. // 음수끼리의 정렬은 반대임(기능추가)
  6332. // -1800 < -2000 임 시간이므로(오류가 있음) -1800 -2000 이 되어야함
  6333. // -1800 < -4000 인 경우는 날짜가 달라짐(0918) -4000 -1800 이 되어야함
  6334. // return false를 리터하면 change하라
  6335. //--------------------
  6336. function sort2(a,b){
  6337. var temp1,temp2;
  6338. var temp1mok,temp2mok;
  6339. // 두변수가 전부 음수인 경우(음수,음수) -1800 < -2000
  6340. // a을 비교한다.
  6341. //////////alert("비교:" + parseInt(a) + "/" + parseInt(b))
  6342. if ( parseInt(a) < 0 && parseInt(b) < 0 ) { //: 작은순정렬(큰순<작은순)
  6343. if(parseInt(a) < parseInt(b)){
  6344. return true; //no change
  6345. }else if(parseInt(a) > parseInt(b)){
  6346. return false; //change
  6347. }else{
  6348. var sort = new Array(a,b);
  6349. sort.sort();
  6350. return (sort[0] == a)? false:true;
  6351. }
  6352. } else {
  6353. //그외경우 (음수,양수/양수,음수/양수,양수) //: 큰순정렬(작은순->큰순)
  6354. if(parseInt(a) > parseInt(b)){
  6355. return true; //no change
  6356. }else if(parseInt(a) < parseInt(b)){
  6357. return false; //change
  6358. }else{
  6359. var sort = new Array(a,b);
  6360. sort.sort();
  6361. return (sort[0] == a)? false:true;
  6362. }
  6363. }
  6364. }
  6365. //function sort2_OLD(a,b){
  6366. // if(parseInt(a) > parseInt(b)){
  6367. // return true;
  6368. // }else if(parseInt(a) < parseInt(b)){
  6369. // return false;
  6370. // }else{
  6371. // var sort = new Array(a,b);
  6372. // sort.sort();
  6373. // return (sort[0] == a)? false:true;
  6374. // }
  6375. //}
  6376. /**
  6377. * @group :
  6378. * @ver : 2007.06.25
  6379. * @by : 최경용
  6380. * @---------------------------------------------------
  6381. * @type : function
  6382. * @access : public
  6383. * @desc : grid mouse down
  6384. * @param :
  6385. * @return :
  6386. * @---------------------------------------------------
  6387. */
  6388. // function fMouseDownGridRow(){
  6389. // var rows = group3.grd_druglist.rowcount;
  6390. // var row = group3.grd_druglist.currentrow;
  6391. // var col = group3.grd_druglist.currentcol;
  6392. //
  6393. // if( row <= rows && rows > 0 && row > -1 ){
  6394. // if(col >= grd_colcnt){
  6395. // window.setPopupMenu(true, "/root/hidden/drg_popmenu1/menu", "name", "func", false);
  6396. // }else{
  6397. // window.setPopupMenu(true, "/root/hidden/drg_popmenu2/menu", "name", "func", false);
  6398. // }
  6399. // }
  6400. // }
  6401. /**
  6402. * @---------------------------------------------------
  6403. * @desc : 전체 문장에서 특정 문장이 있는지를 검사하는 함수
  6404. * @param : strSrc - 전체 문장
  6405. * @param : strFind - 찾을 문장
  6406. * @return : boolean
  6407. * @---------------------------------------------------
  6408. */
  6409. function careIsSearchString(strSrc, strFind){
  6410. strSrc = strSrc.split("^");
  6411. for(var i = 0; i < strSrc.length; i++){
  6412. if(strFind == strSrc[i]){
  6413. return true;
  6414. }
  6415. }
  6416. return false;
  6417. }
  6418. /*
  6419. 20080809
  6420. prcpno별로 drugbasetmspec_TM를 기준으로
  6421. model.getValue(xHiddenWardDrugPath + "[" + i + "]/drugtmspec")에 값설정 한다.
  6422. */
  6423. function fndrugcalcbefore() {
  6424. var querydrugddfr = ds_main_cond.getColumn(0, "orddd"); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  6425. var querydrugddto = getDateAddc(querydrugddfr, 1); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  6426. var prcpdd = "";
  6427. var prcpno = "";
  6428. var prcphistno = "";
  6429. var drugbasetmspec_tm = "";
  6430. var fridx = 0;
  6431. var toidx = 0;
  6432. var rows = ds_hidden_warddruginfo_warddruglist.rowcount;
  6433. for( var i=0 ; i<rows ; i++ ){
  6434. ////////////alert( "읽기:" +prcpdd + "/" + prcpno + "/" + prcphistno );
  6435. if( i == 0 ){
  6436. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  6437. prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno");
  6438. //prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  6439. fridx = 0;
  6440. toidx = 0;
  6441. ////////////alert("시작:"+ i + "/" + drugbasetmspec_tm+ "/");
  6442. }
  6443. if (
  6444. prcpdd == ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd") &&
  6445. prcpno == ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno") //&&
  6446. //prcphistno == model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno")
  6447. ) {
  6448. drugbasetmspec_tm += utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec_tm")) + " ";
  6449. ////////////alert("같음:"+ i + "/" + drugbasetmspec_tm+ "/");
  6450. } else {
  6451. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  6452. prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno");
  6453. //prcphistno = model.getValue(xHiddenWardDrugPath + "[" + i + "]/prcphistno");
  6454. //반영을 위한 값설정
  6455. toidx = i-1;
  6456. drugbasetmspec_tm = drugbasetmspec_tm.substring(0,drugbasetmspec_tm.length-1);
  6457. ////////////alert("다름1:" + i + "/" + drugbasetmspec_tm+ "/");
  6458. //반영
  6459. for( var j=fridx ; j<=toidx ; j++ ){
  6460. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugtmspec", drugbasetmspec_tm);
  6461. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugbasetmspec", drugbasetmspec_tm);
  6462. }
  6463. ////////////alert("다름2:" + i + "/" + drugbasetmspec_tm+ "/");
  6464. //초기화
  6465. fridx = i;
  6466. drugbasetmspec_tm = "";
  6467. drugbasetmspec_tm += ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugbasetmspec_tm") + " ";
  6468. ////////////alert("다름3:" + i + "/" + drugbasetmspec_tm+ "/");
  6469. }
  6470. if( i == (rows-1) ){
  6471. //반영을 위한 값설정
  6472. toidx = i;
  6473. drugbasetmspec_tm = drugbasetmspec_tm.substring(0,drugbasetmspec_tm.length-1);
  6474. ////////////alert("종료1:" + i + "/" + drugbasetmspec_tm+ "/");
  6475. //반영
  6476. for( var j=fridx ; j<=toidx ; j++ ){
  6477. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugtmspec", drugbasetmspec_tm);
  6478. ds_hidden_warddruginfo_warddruglist.setColumn(j, "drugbasetmspec", drugbasetmspec_tm);
  6479. }
  6480. ////////////alert("종료2:" + i + "/" + drugbasetmspec_tm+ "/");
  6481. }
  6482. }
  6483. }
  6484. /*
  6485. 20080529
  6486. 조회자료에서 기준시간setting을 편집한다.
  6487. 시간대를 row별로 반영한다.
  6488. */
  6489. function fndrugcalc() {
  6490. var querydrugddfr = utlf_transNullToEmpty(ds_main_cond.getColumn(0, "orddd")); //조회일(투약(예정)일 (화면에 나와야하는 일자)
  6491. var querydrugddto = utlf_transNullToEmpty(getDateAddc(utlf_transNullToEmpty(querydrugddfr), 1)); //조회일(투약(예정)일+1 (화면에 나와야하는 일자)
  6492. for( var i=0 ; i<ds_hidden_warddruginfo_warddruglist.rowcount ; i++ ){
  6493. //------------------------------------------------------------------------------------------
  6494. //drugtmspec : 조회해온 표준시간대(표준시간대+변경된시간대, 단 투약시간대는 반영되지 않았음)
  6495. // 변경하지 않는다.
  6496. //------------------------------------------------------------------------------------------
  6497. var drugtmspec = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugtmspec")); //1 부터임(질의문에서 받아온 시간 그대로)
  6498. var prcphopedd = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphopedd"));
  6499. var prcpcd = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpcd"));
  6500. var drugdd = "";
  6501. var drugtm = "";
  6502. var i_init = i
  6503. var drugtmspeccal1 = ""; //조회자료에 대한 DRUGDD,DRUGTM
  6504. var drugtmspeccal2 = ""; //조회기간에 대한(조회일~조회일+1) 을 연산한것으로 변경한 것
  6505. var dispddarray = ""; //투약(예정)일
  6506. var disptmarray = ""; //투약(예정)시간
  6507. var dispflagarray = ""; //조회기간안의 투약(예정)일 여부 flag(화면상계산의미없음)전부보임
  6508. var todaydrugtimes = ""; //질의문을 기준으로 화면에 보일자료 (20080920)
  6509. var antiastrids = "";
  6510. var antiastrnms = "";
  6511. if( !utlf_isNull(drugtmspec) ){
  6512. array_drugtmspec = drugtmspec.split(" ");
  6513. for( var j=0 ; j<array_drugtmspec.length ; j++ ){
  6514. //------------------------------------------------------------
  6515. //처방적용일기준으로 표준 시간대를 계산한다.[절대시간대]
  6516. //------------------------------------------------------------
  6517. //처방적용희망일+설정된시간(표준시간대또는 변경된시간대):실질적인 투약일/투약시간을 찾는다.
  6518. //------------------------------------------------------------
  6519. drugdd = getDateAddc(prcphopedd, parseInt(utlf_transNullToEmpty(array_drugtmspec[j]) / 2400));
  6520. drugtm = Number(utlf_transNullToEmpty(array_drugtmspec[j])) % 2400;
  6521. drugtm = Math.abs(Number(drugtm)).toString();
  6522. //------------------------------------------------------------
  6523. //투약된일자가 있으면
  6524. //투약된일자와 투약된시간대를 반영한다.
  6525. //
  6526. //변경시간은 반영된 상태이고,
  6527. //투약일(medr.execdd)이 있으면 투약일로 설정한다.
  6528. //------------------------------------------------------------
  6529. var execdrugdd = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "execdd"));
  6530. var execdrugtm = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "exectm"));
  6531. //------------(20080710) 투약기록과 시행일자가 분리되었음
  6532. // if (execdrugdd != "" && execdrugdd != "00000000") drugdd = execdrugdd;
  6533. // if (execdrugtm != "" && execdrugtm != "000000") drugtm = execdrugtm.substring(0,4);
  6534. ////////////alert("drugtmspeccal1:" + drugtmspeccal1);
  6535. drugtmspeccal1 += fCarec_GetFillZeno(drugtm,4,0) + " ";
  6536. drugtm = fCarec_GetFillZeno(drugtm,4,0);
  6537. //투약(예정)일을 찾는다.
  6538. ds_hidden_warddruginfo_warddruglist.setColumn(i, "dispdd", drugdd);
  6539. ds_hidden_warddruginfo_warddruglist.setColumn(i, "disptm", drugtm);
  6540. //투약(예정)일을 string형태로 생성한다.
  6541. dispddarray += drugdd + " ";
  6542. disptmarray += drugtm + " ";
  6543. //------------------------------------------------------------
  6544. //화면에 표시하기 위하여 조회일자를 기준으로 시간대를 다시 계산한다.[24시간 기준대로]//[상대시간대]
  6545. //------------------------------------------------------------
  6546. //실질적인 투약일을 구한것을 기준으로
  6547. //조회일과의 일수차를 계산하여
  6548. //투약시간대와 일수를 감안하여 재계산한다.
  6549. //------------------------------------------------------------
  6550. var dispdd2 = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "dispdd")); //의미없음(dispdd와 동일)
  6551. var disptm2 = utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "disptm"));
  6552. var intervaldd = utlf_getDateInterval(querydrugddfr,dispdd2); //투약(예정)일-조회일 일수
  6553. if (intervaldd >= 0 ) {
  6554. disptm2 = Number(disptm2) + (Number(intervaldd) * 2400); //일수 반영한 시간대
  6555. } else {
  6556. disptm2 = (-Number(disptm2) + (Number(intervaldd) * 2400))
  6557. }
  6558. drugtmspeccal2 += fCarec_GetFillZeno(disptm2,4,0) + " "; //drugtmspeccal 만든다.
  6559. //------------------------------------------------------------
  6560. //자료들 중 화면에 표시해야 하는 것들을 표시한다.:
  6561. //
  6562. //조회일<= 투약(예정)일 and 투약(예정)일 <= 조회일+1
  6563. //------------------------------------------------------------
  6564. //test
  6565. if (querydrugddfr <= dispdd2 && dispdd2 <= querydrugddto) {
  6566. ////////////alert(querydrugddfr + "/" +drugdd +"/" + dispdd2 + "/" + querydrugddto);
  6567. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispflag", "string", "Y", i); //화면에 표시대상FLAG
  6568. dispflagarray += "Y" + "/";
  6569. } else {
  6570. dispflagarray += "" + "/";
  6571. }
  6572. todaydrugtimes += utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "todaydrug")) + "/"; //-----(20080920)
  6573. antiastrids += utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "antiastrid")) + "/";
  6574. antiastrnms += utlf_transNullToEmpty(ds_hidden_warddruginfo_warddruglist.getColumn(i, "antiastrnm")) + "/";
  6575. ////////alert(todaydrugtimes);
  6576. i++;
  6577. }
  6578. //------------------------------------------------------------
  6579. //위에서 계산대 정보를 각 row에 반영한다.
  6580. //------------------------------------------------------------
  6581. drugtmspeccal1 = drugtmspeccal1.substring(0,drugtmspeccal1.length-1);
  6582. drugtmspeccal2 = drugtmspeccal2.substring(0,drugtmspeccal2.length-1);
  6583. dispddarray = dispddarray.substring(0,dispddarray.length-1);
  6584. disptmarray = disptmarray.substring(0,disptmarray.length-1);
  6585. dispflagarray = dispflagarray.substring(0,dispflagarray.length-1);
  6586. todaydrugtimes = utlf_transNullToEmpty(todaydrugtimes.substring(0,todaydrugtimes.length-1)); //(20080920)
  6587. antiastrids = utlf_transNullToEmpty(antiastrids.substring(0,antiastrids.length-1));
  6588. antiastrnms = utlf_transNullToEmpty(antiastrnms.substring(0,antiastrnms.length-1));
  6589. i=i_init; //시작첨자
  6590. for( var j=0 ; j<array_drugtmspec.length ; j++ ){
  6591. if( ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpcd") == "DTMD100J" ){
  6592. //////////alert("DTMD100J:" +drugtmspeccal2);
  6593. }
  6594. //처방적용일기준으로 표준 시간대를 계산한다.
  6595. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "drugtmspec_recalc1", "string", drugtmspeccal1, i);
  6596. //조회일자를 기준으로 시간대를 다시 계산한다(화면표시용)
  6597. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "drugtmspec_recalc2", "string", drugtmspeccal2, i);
  6598. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "drugtmspeccal", "string", drugtmspeccal2, i);
  6599. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispddarray", "string", dispddarray, i);
  6600. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "disptmarray", "string", disptmarray, i);
  6601. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispflagarray", "string", dispflagarray, i);
  6602. dispflagarray = dispflagarray.replace("/","");
  6603. if ( dispflagarray.length > 0) {
  6604. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "dispflaggroup", "string", "Y", i);
  6605. }
  6606. //실질적인 당일투약대상또는 투약한 대상
  6607. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "todaydrugtimes", "string", todaydrugtimes, i);
  6608. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "antiastrids", "string", antiastrids, i);
  6609. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "antiastrnms", "string", antiastrnms, i);
  6610. i++;
  6611. }
  6612. i--;
  6613. drugtmspeccal1 = "";
  6614. drugtmspeccal2 = "";
  6615. dispddarray = "";
  6616. disptmarray = "";
  6617. dispflagarray = "";
  6618. } else {
  6619. ds_hidden_warddruginfo_warddruglist.setColumn(i, "drugtmspec_recalc1", "");
  6620. ds_hidden_warddruginfo_warddruglist.setColumn(i, "drugtmspec_recalc2", "");
  6621. ds_hidden_warddruginfo_warddruglist.setColumn(i, "drugtmspeccal", "");
  6622. ds_hidden_warddruginfo_warddruglist.setColumn(i, "dispddarray", "");
  6623. ds_hidden_warddruginfo_warddruglist.setColumn(i, "disptmarray", "");
  6624. ds_hidden_warddruginfo_warddruglist.setColumn(i, "dispflagarray", "");
  6625. ds_hidden_warddruginfo_warddruglist.setColumn(i, "todaydrugtimes", "");
  6626. ds_hidden_warddruginfo_warddruglist.setColumn(i, "antiastrids", "");
  6627. ds_hidden_warddruginfo_warddruglist.setColumn(i, "antiastrnms", "");
  6628. }
  6629. }
  6630. }
  6631. /**
  6632. * @group :
  6633. * @ver : 2008.06.19
  6634. * @by : 김보성
  6635. * @---------------------------------------------------
  6636. * @type : function
  6637. * @access : public
  6638. * @desc : 반환사유내역등록기능
  6639. * @param :
  6640. * @param :
  6641. * @return :
  6642. * @---------------------------------------------------
  6643. */
  6644. function fnEndddSave() {
  6645. var sPathSave = ds_send_savedata_drugreportinfo; //저장원본
  6646. var sPathEndResult = ds_endsave_endresult; //enddd 확인 결과(결과)
  6647. var sPathEndSave = ds_endsave_endinfo_list; //반환사유정보생성path
  6648. var sRows = sPathSave.rowcount; //저장원본총갯수
  6649. var sRowsEnd = 0;
  6650. var sTempExecdd = "";
  6651. var sinstcd = sysf_getUserInfo("dutplceinstcd");
  6652. var sEndFlag = false;
  6653. var sprcpdd = "";
  6654. var sprcpno = "";
  6655. var sprcphistno = "";
  6656. var sexecprcpno = "";
  6657. var sexecprcpuniqno = "";
  6658. var sinstcd = "";
  6659. var sioflag = "";
  6660. var enddd = ""; //(20080731)
  6661. var endddflag = true; //(20080820) 처음만 물어본다.
  6662. var rtnstat = "";
  6663. for( var row=0 ; row<sRows ; row++ ){
  6664. ////////////alert (sRows + "/" + row);
  6665. sTempExecdd = sPathSave.getColumn(row, "execcarestatcd");
  6666. sEndFlag = false;
  6667. //간호Acting진행상태(N(미확인)/R(정상투약)/P(투약X-반환가능)/I(투약X-반환불가)/L(퇴원당일 남은약)
  6668. //Execcarestatcd = model.getValue(xWardDrugListPath + "[" + i + "]/for[" + forarr[k] + "]/execcarestatcd");
  6669. //-------------------------------------------------------------------------
  6670. //ACTING된후 미확인으로 전환되거나, 투약X-반환가능인경우 ACTING이 취소된다
  6671. //마감이 되어 있으면 사유팝업을 이용한다.
  6672. //-------------------------------------------------------------------------
  6673. ////////////alert(sTempExecdd);
  6674. if ( sTempExecdd == "N" || sTempExecdd == "P") {
  6675. // <pastexecdd>20080618</pastexecdd> //exip의 실시일자
  6676. // <medrexecdd>20080617</medrexecdd> //medr의 투약일자(현재시점:20080619에서는 투약일자=실시일자이다.
  6677. sprcpdd = sPathSave.getColumn(row, "prcpdd");
  6678. sprcpno = sPathSave.getColumn(row, "prcpno");
  6679. sprcphistno = sPathSave.getColumn(row, "prcphistno");
  6680. sexecprcpno = sPathSave.getColumn(row, "execprcpno");
  6681. sinstcd = sysf_getUserInfo("dutplceinstcd");
  6682. sioflag = "I";
  6683. sTempExecdd = sPathSave.getColumn(row, "pastexecdd"); //---------(20080820)
  6684. ////////////alert(sTempExecdd);
  6685. //acting된것
  6686. if (sTempExecdd != "00000000" ) {
  6687. //현재시점의 마감을 확인한다.
  6688. //model.removeNodeset(sPathEndResult+"/enddd");
  6689. //model.makeNode(sPathEndResult+"/enddd");
  6690. sPathEndCond.setColumn(0, "prcpdd", sprcpdd);
  6691. sPathEndCond.setColumn(0, "prcpno", sprcpno);
  6692. sPathEndCond.setColumn(0, "prcphistno", sprcphistno);
  6693. sPathEndCond.setColumn(0, "execprcpno", sexecprcpno);
  6694. sPathEndCond.setColumn(0, "instcd", sinstcd);
  6695. sPathEndCond.setColumn(0, "ioflag", sioflag);
  6696. sPathEndCond.setColumn(0, "srchflag", "");
  6697. sPathEndCond.setColumn(0, "execprcpuniqno", "");
  6698. var oParam = {};
  6699. oParam.id = "TRMNR00610";
  6700. oParam.service = "caremedirecapp.CareMediRec";
  6701. oParam.method = "reqGetEndddList";
  6702. oParam.inds = "endcond=ds_endsave_endcond";
  6703. oParam.outds = "ds_endsave_endresult=endresult ds_endsave_narcresult=narcresult";
  6704. oParam.async = false;
  6705. //oParam.callback = "cf_TRMNR00610";
  6706. tranf_submit(oParam);
  6707. ////////////alert(model.getValue(sPathEndResult + "/enddd"));
  6708. /*
  6709. if ((model.getValue(sPathEndResult + "/enddd") == "00000000") ||
  6710. (model.getValue(sPathEndResult + "/enddd") == "") ||
  6711. (model.getValue(sPathEndResult + "/enddd") == "-")) {
  6712. */
  6713. //--------test(20080731)
  6714. enddd = utlf_transNullToEmpty(ds_endsave_endresult.getColumn(0, "enddd"));
  6715. enddd = enddd.substr(0,8);
  6716. ////////////alert("마감일자:" + enddd);
  6717. //return
  6718. //----------------------
  6719. if ( enddd == "99991231") {
  6720. sEndFlag = false;
  6721. } else {
  6722. sEndFlag = true;
  6723. }
  6724. }
  6725. if ( sEndFlag ) {
  6726. //check: acting된것인데, enddd가 있는경우에 미확인으로 처리할경우인지를 확인해야함
  6727. sRowsEnd++;
  6728. ds_endsave_endinfo_list.setColumn(0, "prcpdd", sprcpdd);
  6729. ds_endsave_endinfo_list.setColumn(0, "prcpno", sprcpno);
  6730. ds_endsave_endinfo_list.setColumn(0, "prcphistno", sprcphistno);
  6731. ds_endsave_endinfo_list.setColumn(0, "execprcpno", sexecprcpno);
  6732. ds_endsave_endinfo_list.setColumn(0, "instcd", sinstcd);
  6733. ds_endsave_endinfo_list.setColumn(0, "ioflag", sioflag);
  6734. ////////////alert("반환사유 테스트");
  6735. if( ds_endsave_endinfo_list.rowcount > 0 ){
  6736. //-------------------------
  6737. //처음만 물어본다.
  6738. if ( endddflag == true) {
  6739. //if (messageBox("이미 마감된 투약처방입니다. 정말 취소 ","Q003","") != 6) {
  6740. if (sysf_messageBox("저장대상 자료중 이미 마감된 투약처방이 존재합니다. 정말 취소작업을 ","Q003","") != 6) {
  6741. return false;
  6742. } else {
  6743. endddflag = false;
  6744. }
  6745. }
  6746. //-------------------------
  6747. var objArg = new Object();
  6748. objArg.arg_ds_endinfo_result_list = ds_endsave_endinfo_list;
  6749. frmf_modal("SPPAS03000","SPPAS03000",objArg,"",2,100,100,"","","","","","M");
  6750. }
  6751. }
  6752. }
  6753. }
  6754. return true;
  6755. }
  6756. /**
  6757. * @group :
  6758. * @ver : 2008.08.01
  6759. * @by : 김보성
  6760. * @---------------------------------------------------
  6761. * @type : function
  6762. * @access : public
  6763. * @desc : worklist 호출
  6764. * @param :
  6765. * @param :
  6766. * @return :
  6767. * @---------------------------------------------------
  6768. */
  6769. //------------------(20080801)
  6770. function fnWorkListCall() {
  6771. var sWardCd = ds_main_cond.getColumn(0, "wardcd");
  6772. //응급실 환자 투약기록 화면을 통해서 투약워크리스트 띄울 경우 roomcd에 베드 정보를 가져가는 오류사항 수정_20091109_SMY
  6773. //var sRoomCd = model.getValue("/root/main/patinfo/roomcd");
  6774. var sRoomCd = ds_main_cond.getColumn(0, "roomcd");
  6775. var sPid = ds_main_patinfo.getColumn(0, "pid");
  6776. var sPatNm = ds_main_patinfo.getColumn(0, "patnm");
  6777. var sDd = ds_main_cond.getColumn(0, "orddd");
  6778. if( utlf_isNull(sPid) ){
  6779. sysf_messageBox("환자가 선택되지 않았습니다.","E999");
  6780. return;
  6781. }
  6782. frmf_setParameter("SMMNR06300_Param", sWardCd);
  6783. frmf_setParameter("SMMNR06300_Param1", sRoomCd);
  6784. frmf_setParameter("SMMNR06300_Param2", sPid);
  6785. frmf_setParameter("SMMNR06300_Param3", sPatNm);
  6786. frmf_setParameter("SMMNR06300_Param4", sDd);
  6787. //20110209 경북대 : 구역정보추가
  6788. frmf_setParameter("SMMNR06300_Zonecd", ds_main_cond.getColumn(0, "zonecd"));
  6789. ////////////alert(sPid);
  6790. //------------------------(20080910)
  6791. //그리드를 선택한 자료를 worklist에 전달한다.
  6792. var sCnt = 5;
  6793. var sParamNm = "";
  6794. var sParamValue = "";
  6795. //var sPath = "/root/main/warddruginfo/warddruglist";
  6796. frmf_setParameter("SMMNR06300_Param5", "N0");
  6797. for( var row=0 ; row<group3.grd_druglist.rowcount ; row++ ){
  6798. sParamValue = "";
  6799. if( ds_main_warddruginfo_warddruglist.getColumn(row, "check") == "1" ){
  6800. sParamValue = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpdd");
  6801. sParamValue += "/" + ds_main_warddruginfo_warddruglist.getColumn(row, "prcpno");
  6802. sCnt ++;
  6803. frmf_setParameter("SMMNR06300_Param5", "Y"+sCnt);
  6804. sParamNm = "SMMNR06300_Param" + sCnt;
  6805. frmf_setParameter(sParamNm, sParamValue);
  6806. }
  6807. }
  6808. //------------------------(20080910)
  6809. //modal("SMMNR06300");
  6810. frmf_modal("SMMNR06300","SMMNR06300",null,"",1,"","","","","","","","M");
  6811. }
  6812. //------------------(20080801)
  6813. //------------------(20080829)
  6814. //TEST
  6815. // 투약기록 통합기록을 위한 자료 추출질의문 -- 작업 중(LOOP만큼 호출할것)
  6816. function fnSignSaveCall(workflag) {
  6817. var spid = "13573600"; //desc="등록번호"(필수)
  6818. var sinstcd = "012"; //desc="기관코드"(사용X)
  6819. var sindd = "20081003"; //desc="입원일자"(필수)
  6820. var scretno = "1"; //desc="생성번호"(사용X)
  6821. var sprcpdd = ""; //desc="처방일자"(PRN시 필수아닌것 같음)
  6822. var sprcpno = ""; //desc="처방번호"(확인사항)
  6823. var sworkdd = "20081215"; //desc="투약일" (일자그룹일때만 (필수))
  6824. var slistflag = "90"; //desc="작업구분"(필수)
  6825. var snursnm = "간호사명"; //desc="간호사명추가"(필수)
  6826. var shngnm = "환자명"; //desc="환자명추가" (필수)
  6827. var smedrexecdd = ""; //desc="화면에서저장할투약일자"(사용X)
  6828. var smedrexectm = ""; //desc="화면에서저장할투약시간"(사용X)
  6829. ds_signinfo_reqsigncond.setColumn(0, "pid", spid); //desc="등록번호"
  6830. ds_signinfo_reqsigncond.setColumn(0, "instcd", sinstcd); //desc="기관코드"
  6831. ds_signinfo_reqsigncond.setColumn(0, "indd", sindd); //desc="입원일자"
  6832. ds_signinfo_reqsigncond.setColumn(0, "cretno", scretno); //desc="생성번호"
  6833. ds_signinfo_reqsigncond.setColumn(0, "prcpdd", sprcpdd); //desc="처방일자"
  6834. ds_signinfo_reqsigncond.setColumn(0, "prcpno", sprcpno); //desc="처방번호"
  6835. ds_signinfo_reqsigncond.setColumn(0, "workdd", sworkdd); //desc="투약일"
  6836. ds_signinfo_reqsigncond.setColumn(0, "listflag", slistflag); //desc="작업구분"
  6837. ds_signinfo_reqsigncond.setColumn(0, "nursnm", snursnm); //desc="간호사명추가"
  6838. ds_signinfo_reqsigncond.setColumn(0, "hngnm", shngnm); //desc="환자명추가"
  6839. ds_signinfo_reqsigncond.setColumn(0, "medrexecdd", smedrexecdd); //desc="화면에서저장할투약일자"
  6840. ds_signinfo_reqsigncond.setColumn(0, "medrexectm", smedrexectm); //desc="화면에서저장할투약시간"
  6841. ds_signinfo_signdruginfo_signdruglist.clearData();
  6842. var oParam = {};
  6843. oParam.id = "TRMNR00609";
  6844. oParam.service = "caremedirecapp.CareMediRec";
  6845. oParam.method = "reqGetSignDrugList";
  6846. oParam.inds = "reqsigncond=ds_signinfo_reqsigncond";
  6847. oParam.outds = "ds_signinfo_signdruginfo_signdruglist=signdruglist";
  6848. oParam.async = false;
  6849. //oParam.callback = "cf_TRMNR00609";
  6850. tranf_submit(oParam);
  6851. }
  6852. //------------------(20080829)
  6853. /**
  6854. * @group :
  6855. * @ver : 2008.08.31
  6856. * @by : 김보성
  6857. * @---------------------------------------------------
  6858. * @type : function
  6859. * @access : public
  6860. * @desc : 투약기록 관련 인증저장(interface제공한 web에서 사용)(iprc단위 1개 처리용)
  6861. * : 따라서 여러개의 iprc이면 n번 호출해야한다.
  6862. * @param :
  6863. * @return :
  6864. * @---------------------------------------------------
  6865. */
  6866. /* // TEST용
  6867. function fnSignSaveWork() {
  6868. var sSignPath = "/root/signinfo/signdruginfo/signdruglist";
  6869. var sSignPathCount = getNodesetCount(sSignPath);
  6870. var sPathSignSave = "/root/signinfo/signsave/signdata";
  6871. if ( sSignPathCount <= 0 ) {
  6872. messageBox("자료가 존재하지 않습니다. ","E999");
  6873. return;
  6874. }
  6875. model.removenode("/root/send/savedata");
  6876. for(var j = 1; j <= getNodesetCount(sSignPath); j++){
  6877. sSignRow= j; //전역변수(프로그램내)
  6878. if(Sign.signprocess() == false){//인증저장 데이터 생성fMake_SignData 호출
  6879. return;
  6880. }
  6881. ////////////alert("j=" + j);
  6882. var temppid = model.getValue(sSignPath + "[j]/pid"); //pid
  6883. var temporddd = model.getValue(sSignPath + "[j]/orddd"); //입원일자
  6884. var tempsignno = ""; //서명번호
  6885. var tempcretno = model.getValue(sSignPath + "[j]/cretno"); //생성번호
  6886. var temporddeptcd = model.getValue(sSignPath + "[j]/orddeptcd"); //진료부서코드
  6887. var temporddrid = model.getValue(sSignPath + "[j]/orddrid"); //진료의사id
  6888. model.makeValue(sPathSignSave + "[j-1]/pid", temppid); //pid
  6889. model.makeValue(sPathSignSave + "[j-1]/orddd", temporddd); //입원일자
  6890. model.makeValue(sPathSignSave + "[j-1]/signno", tempsignno); //서명번호
  6891. model.makeValue(sPathSignSave + "[j-1]/cretno", tempcretno); //생성번호
  6892. model.makeValue(sPathSignSave + "[j-1]/recdd", getCurrentDate()); //실제기록이 이루어진 기록일자
  6893. model.makeValue(sPathSignSave + "[j-1]/rectm", getCurrentTime()); //실제기록이 이루어진 기록시간
  6894. model.makeValue(sPathSignSave + "[j-1]/recsaveflag", "Y"); //전자서명인적정보변경여부
  6895. model.makeValue(sPathSignSave + "[j-1]/signflag", "02"); //서명자료구분(02:간호)
  6896. model.makeValue(sPathSignSave + "[j-1]/signgenrflag", "I"); //외래/입원구분
  6897. model.makeValue(sPathSignSave + "[j-1]/formcd", "0000002476"); //투약기록 서식번호
  6898. model.makeValue(sPathSignSave + "[j-1]/orddeptcd", temporddeptcd); //진료부서코드
  6899. model.makeValue(sPathSignSave + "[j-1]/orddrid", temporddrid); //진료부서ID
  6900. model.makeValue(sPathSignSave + "[j-1]/signbfcnts", Sign.signedInfos[1]); // 인증할 데이터 정보(미기록 노드 제거된 정보)
  6901. model.makeValue(sPathSignSave + "[j-1]/signaftcnts", Sign.signedInfos[2]); // 공인인증 처리후 데이터
  6902. }
  6903. }
  6904. */
  6905. //-----------------------------
  6906. //TEST 일자별 인증정보 생성하기
  6907. //-----------------------------
  6908. function fnSignSaveWork() {
  6909. var signDate = "20081212"
  6910. var sPathSign = "/root/signinfo";
  6911. var spid = "13573600"; //등록번호 (필수)
  6912. var sinstcd = "";//model.getValue("/root/main/wardpatinfo/wardpatlist/instcd"); //기관코드
  6913. var sindd = "20081003"; //입원일자 (필수)
  6914. var scretno = "2"; //생성번호
  6915. var sprcpdd = ""; //처방일자 (PRN시 필수)
  6916. var sprcpno = ""; //처방번호 (확인사항)
  6917. var sworkdd = "20081215"; //model.getValue("/root/main/cond/orddd"); //투약일(일자그룹일때만 (필수)
  6918. var slistflag = "90"; //고정 //작업구분 (필수)
  6919. var snursnm = "간호사명"; //간호사명추가 (필수)
  6920. var shngnm = "이정희" //환자명추가 (필수)
  6921. var smedrexecdd = ""; //화면에서저장할투약일자(사용X)
  6922. var smedrexectm = ""; //화면에서저장할투약시간(사용X)
  6923. ds_signinfo_reqsigncond.setColumn(0, "pid", spid); //desc="등록번호"
  6924. ds_signinfo_reqsigncond.setColumn(0, "instcd", sinstcd); //desc="기관코드"
  6925. ds_signinfo_reqsigncond.setColumn(0, "indd", sindd); //desc="입원일자"
  6926. ds_signinfo_reqsigncond.setColumn(0, "cretno", scretno); //desc="생성번호"
  6927. ds_signinfo_reqsigncond.setColumn(0, "prcpdd", sprcpdd); //desc="처방일자"
  6928. ds_signinfo_reqsigncond.setColumn(0, "prcpno", sprcpno); //desc="처방번호"
  6929. ds_signinfo_reqsigncond.setColumn(0, "workdd", sworkdd); //desc="투약일"
  6930. ds_signinfo_reqsigncond.setColumn(0, "listflag", slistflag); //desc="작업구분"
  6931. ds_signinfo_reqsigncond.setColumn(0, "nursnm", snursnm); //desc="간호사명추가"
  6932. ds_signinfo_reqsigncond.setColumn(0, "hngnm", shngnm); //desc="환자명추가"
  6933. ds_signinfo_reqsigncond.setColumn(0, "medrexecdd", smedrexecdd); //desc="화면에서저장할투약일자"
  6934. ds_signinfo_reqsigncond.setColumn(0, "medrexectm", smedrexectm); //desc="화면에서저장할투약시간"
  6935. var pFlag = "Drug"; //저장구분 (Drug : 투약기록)
  6936. var pNode1 = "ds_signinfo_reqsigncond"; //조회할 조건 PATH(의미없음)
  6937. var pNode2 = "ds_signinfo_signdruginfo_signdruglist"; //Return 리스트 PATH
  6938. var pIoflag = "I"; //---(20080917)
  6939. fCare_SignNode(pFlag, pNode1, pNode2,spid,sindd,scretno,pIoflag);
  6940. }
  6941. //------------------------(20080902)
  6942. //일자별 인증정보를 묶을 일자를 찾는다
  6943. //넣어야 할지는 판단한다.
  6944. function signdayFind(signDates,findDate) {
  6945. var sreturn = false;
  6946. if (findDate == "00000000" || utlf_isNull(findDate) ){
  6947. } else {
  6948. ////////////alert("signDates.length:"+ signDates.length);
  6949. for (var i=0;i<signDates.length;i++) {
  6950. ////////////alert("비교:" + signDates[i] + "/" + findDate);
  6951. sreturn = true;
  6952. if ( signDates[i] == findDate) {
  6953. sreturn = false;
  6954. break;
  6955. }
  6956. }
  6957. }
  6958. return sreturn;
  6959. }
  6960. //------------------------(20080902)
  6961. /**
  6962. * @group :
  6963. * @ver : 2008.10.10
  6964. * @by : 김보성
  6965. * @---------------------------------------------------
  6966. * @type : function
  6967. * @access : public
  6968. * @desc : 투약내역 리스트 정리
  6969. * @param :
  6970. * @param :
  6971. * @return :
  6972. * @---------------------------------------------------
  6973. */
  6974. //---------------(20081015)진행중 사용하지말것
  6975. function fnClearGrid() {
  6976. ds_main_patinfo.setColumn(0, "roomcd", "");
  6977. ds_main_patinfo.setColumn(0, "pid", "");
  6978. ds_main_patinfo.setColumn(0, "patnm", "");
  6979. ds_main_patinfo.setColumn(0, "sexage", "");
  6980. if( screen_mode == "pat" ){
  6981. fClickDrugList("drg", -1);
  6982. }else if( screen_mode == "act" ){
  6983. fClickDrugList("act", -1);
  6984. }else{}
  6985. }
  6986. //---------------(20081010)
  6987. //---------------(20081014)
  6988. /*
  6989. 20081014
  6990. validate
  6991. hidden의 instance에 있는 drugtmspec 의 항목의 split 수와 calctims수를 확인한다.
  6992. */
  6993. function fndrugcalcCheck() {
  6994. var drugtmspec = "";
  6995. var calctims = "";
  6996. var validateYN = "";
  6997. var prcpdd = "";
  6998. var prcpno = "";
  6999. var prcphistno = "";
  7000. var execprcpno = "";
  7001. var spid = "";
  7002. var prcpcd = "";
  7003. var mthdcd = "";
  7004. var execprcpuniqno = "";
  7005. var timscnt = 0;
  7006. var prcptimscalc= "";
  7007. var drugerrmsg = "";
  7008. var drugerrPath = "/root/drugerrinfo";
  7009. ds_drugerrinfo_drugerrlist.clearData();
  7010. var drugerrcnt = -1;
  7011. for( var i=0 ; i<ds_hidden_warddruginfo_warddruglist.rowcount ; i++ ){
  7012. drugtmspec = ds_hidden_warddruginfo_warddruglist.getColumn(i, "drugtmspec");
  7013. calctims = ds_hidden_warddruginfo_warddruglist.getColumn(i, "calctims");
  7014. prcpdd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  7015. prcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpno");
  7016. prcphistno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphistno");
  7017. execprcpno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execprcpno");
  7018. execprcpuniqno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execprcpuniqno");
  7019. spid = ds_hidden_warddruginfo_warddruglist.getColumn(i, "pid");
  7020. prcpcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  7021. mthdcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "mthdcd");
  7022. prcptims = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcptims");
  7023. var execcarestatcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "execcarestatcd");
  7024. var prcphistcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcphistcd");
  7025. var fstrgstdt = ds_hidden_warddruginfo_warddruglist.getColumn(i, "fstrgstdt");
  7026. var orddrnm = ds_hidden_warddruginfo_warddruglist.getColumn(i, "orddrnm");
  7027. var indd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "indd");
  7028. var cretno = ds_hidden_warddruginfo_warddruglist.getColumn(i, "cretno");
  7029. var prcpclscd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "prcpclscd");
  7030. var wardcd = ds_hidden_warddruginfo_warddruglist.getColumn(i, "wardcd");
  7031. validateYN = "Y"; //정상자료
  7032. timscnt = drugtmspec.split(" ").length;
  7033. //-------------------(20081105)
  7034. drugtmspec = fntrim(drugtmspec);
  7035. if( utlf_isNull(drugtmspec) ){
  7036. //-------------------(20081105)
  7037. validateYN = "N"; //이상자료
  7038. timscnt = 0;
  7039. }
  7040. if( timscnt != calctims ) validateYN = "N"; //이상자료
  7041. //alert( timscnt + "/" + calctims + "/" +validateYN + "/" + drugtmspec + "/");
  7042. if (validateYN == "N") {
  7043. if( utlf_isNull(drugtmspec) ){
  7044. drugerrmsg += "용법(" + mthdcd + ")의 횟수에 대한 시간대정보(" + drugtmspec + "없음)가 존재하지 않습니다("+ prcpcd +") \n"
  7045. } else {
  7046. drugerrmsg += "용법(" + mthdcd + ")의 횟수에 대한 시간대정보갯수(" + timscnt + ")와 " +
  7047. " 처방("+ prcpcd + ")에 대한 횟수(" + prcptims + ")가 다릅니다. \n"
  7048. }
  7049. drugerrcnt ++;
  7050. ds_drugerrinfo_drugerrlist.addRow();
  7051. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "prcpdd", prcpdd);
  7052. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "prcpno", prcpno);
  7053. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "prcphistno", prcphistno);
  7054. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "execprcpno", execprcpno);
  7055. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "execprcpuniqno", execprcpuniqno);
  7056. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "prcpcd", prcpcd);
  7057. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "drugtmspec", drugtmspec);
  7058. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "execcarestatcd", execcarestatcd);
  7059. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "prcphistcd", prcphistcd);
  7060. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "exipfstrgstdt", fstrgstdt);
  7061. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "orrdnm", orddrnm);
  7062. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "prcpclscd", prcpclscd);
  7063. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "pid", spid);
  7064. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "indd", indd);
  7065. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "cretno", cretno);
  7066. ds_drugerrinfo_drugerrlist.setColumn(drugerrcnt, "wardcd", wardcd);
  7067. }
  7068. dsf_makeValue(ds_hidden_warddruginfo_warddruglist, "validateyn1", "string", validateYN, i);
  7069. }
  7070. if( !utlf_isNull(drugerrmsg) ){
  7071. drugerrmsg += "" +
  7072. " \n" +
  7073. " 투약기준시간관리에서 용법에 대한 자료를 확인하십시오( " + (drugerrcnt+1) +" 건 )";
  7074. sysf_messageBox( "투약기준시간관리에 등록된 \n\n" + drugerrmsg ,"E999");
  7075. }
  7076. }
  7077. //---------------(20081014)
  7078. //fClickDrugListBefore(); //------------(20081031)
  7079. //fClickDrugListAfter(); //------------(20081031)
  7080. //-------------------(20081031)
  7081. function fClickDrugListBefore() {
  7082. group3.grd_druglist.visible = false;
  7083. group3.bolall.visible = false;
  7084. //grpalert.visible = true;
  7085. callLoadingWindow("");
  7086. }
  7087. function fClickDrugListAfter() {
  7088. group3.grd_druglist.visible = true;
  7089. group3.bolall.visible = true;
  7090. removeLoadingWindow();
  7091. //--------------(20081121)
  7092. //숨겨진 상태에서는 포커스가 설정되지 않는다.
  7093. //저장전 위치로 저장이후 재조회시 위치이동시킴
  7094. if( toprowflag == "Y" ){
  7095. if( group3.grd_druglist.vscrollbar.max > toprow ){
  7096. group3.grd_druglist.vscrollbar.pos = toprow;
  7097. }
  7098. toprowflag = "N";
  7099. }
  7100. //--------------(20081121)
  7101. }
  7102. //--------원무팀의 입원등록에서 사용하는 것 이용함
  7103. function callLoadingWindow(msg){
  7104. //20080703 이동식 추가
  7105. //환자정보 조회 중 상태 표시
  7106. // body.createChild("xforms:iviewer", "id:ivr_progress; src:../../../com/commonweb/xrw/SPZZZ00400_로딩중화면.xrw; left:435px; top:339px; width:330px; height:120px;");
  7107. // var ivrObjt = document.all("ivr_progress");
  7108. // if( msg == '' || msg == '-' ){
  7109. // msg = "투약기록 조회 중 입니다...";
  7110. // }
  7111. // ivrObjt.model.setValue("/root/main/msg", msg);
  7112. // ivrObjt.model.refresh();
  7113. this.setWaitCursor(true);
  7114. }
  7115. function removeLoadingWindow(){
  7116. //20080703 이동식 추가
  7117. //환자정보 조회 중 상태 표시 지우기
  7118. //body.removeChild("ivr_progress");
  7119. this.setWaitCursor(false);
  7120. }
  7121. function WaitLoadingWindow(idx) {
  7122. // var msg = "투약기록 조회 중 입니다...";
  7123. // //var msg = "투약기록 조회(" + idx + ") 중 입니다...";
  7124. // var ivrObjt = document.all("ivr_progress");
  7125. // model.setFocus("ivr_progress");
  7126. // ivrObjt.model.setFocus("caption75");
  7127. //
  7128. // ivrObjt.model.setValue("/root/main/msg", msg);
  7129. // ivrObjt.model.refresh();
  7130. // //model.setFocus("output33");
  7131. // model.refresh();
  7132. this.setWaitCursor(true);
  7133. }
  7134. //-------------------(20081031)
  7135. //-------------------(20081105)
  7136. function fntrim(tmpValue) {
  7137. for(;tmpValue.indexOf(" ")!= -1;) {
  7138. tmpValue = tmpValue.replace(" ","");
  7139. }
  7140. return tmpValue;
  7141. }
  7142. //-------------------(20081105)
  7143. //-------------------(20081211)
  7144. // tmpvalue : 원본 문자열
  7145. // str1 : 찾고자 하는 문자열
  7146. // str2 : 바꾸고자 문자열
  7147. function fnReplace(tmpValue,str1,str2) {
  7148. for(;tmpValue.indexOf(str1)!= -1;) {
  7149. tmpValue = tmpValue.replace(str1,str2);
  7150. }
  7151. return tmpValue;
  7152. }
  7153. //-------------------(20081211)
  7154. //--------------------(20081112)
  7155. //sDigit 에서 반올림
  7156. function fnRound(sValue,sDigit) {
  7157. var rtnValue ;
  7158. var stemp = Math.pow(10,sDigit);
  7159. rtnValue = sValue;
  7160. rtnValue = rtnValue * stemp;
  7161. rtnValue = rtnValue / stemp;
  7162. rtnValue = Math.round(rtnValue);
  7163. return rtnValue;
  7164. }
  7165. //--------------------(20081112)
  7166. /**
  7167. * @group :
  7168. * @ver : 2010.03.16
  7169. * @by : 김진아
  7170. * @-----------------------------------------------------------------
  7171. * @type : function
  7172. * @access : public
  7173. * @desc : 라벨출력정보 저장(수액,주사라벨 출력시 호출한다.)
  7174. * @param : labelflag 라벨구분자(injlabel:주사라벨/)
  7175. patgrdrow 환자리스트 그리드에서 선택된 로우
  7176. actgrdrow 미투약리스트 그리드에서 선택된 로우
  7177. * @return :
  7178. * @-----------------------------------------------------------------
  7179. */
  7180. function fsetLabelPrntInfo(labelflag, patgrdrow, actgrdrow) {
  7181. switch (labelflag) {
  7182. case "injlabel":
  7183. model.removeNodeset("/root/send/savedata/labelprntinfo");
  7184. model.makeNode("/root/send/savedata/labelprntinfo");
  7185. model.copyNode("/root/send/savedata/labelprntinfo", "/root/hidden/medicard8");
  7186. break;
  7187. case "hydlabel":
  7188. model.removeNodeset("/root/send/savedata/labelprntinfo");
  7189. model.makeNode("/root/send/savedata/labelprntinfo");
  7190. model.copyNode("/root/send/savedata/labelprntinfo", "/root/send/medicard8");
  7191. break;
  7192. }
  7193. submit("TXMNR00602");
  7194. fClickDrugListBefore(); //------------(20081031)
  7195. if(screen_mode == "pat"){
  7196. grd_patlist.row = patgrdrow;
  7197. fClickDrugList(screen_mode, grd_patlist.row);
  7198. }else if(screen_mode == "act"){
  7199. grd_actlist.row = actgrdrow;
  7200. fClickDrugList(screen_mode, grd_actlist.row);
  7201. fGetActList();
  7202. }else{}
  7203. fClickDrugListAfter(); //------------(20081031)
  7204. }
  7205. /**
  7206. * @group :
  7207. * @ver : 2007.06.08
  7208. * @by : 김보성
  7209. * @---------------------------------------------------
  7210. * @type : function
  7211. * @access : public
  7212. * @desc : ER의 응급 리스트 조회 CareCom.js로 빼냄
  7213. * @param :
  7214. * @param :
  7215. * @return :
  7216. * @---------------------------------------------------
  7217. */
  7218. /*function fGetZoneList(){
  7219. model.removeNodeset("/root/send/reqdata");
  7220. model.makeNode("/root/send/reqdata");
  7221. model.copynode("/root/send/reqdata", xCondPath);
  7222. submit("TRMNR06302");
  7223. }*/
  7224. function fnZoneDisp(pFlag) {
  7225. //응급의료센터(2280200000)인 경우
  7226. //병동정보대신에 구역정보가 보임)(20080620)
  7227. if ( !utlf_isNull(ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid=='002' && cdid=='"+group3.group5.cmb_ward.value+"'"), "cdid")) ){
  7228. group3.group5.caption18.visible = false;
  7229. group3.group5.cmb_room.visible = false;
  7230. group3.group5.cap_Zone.visible = true;
  7231. group3.group5.cmb_Zone.visible = true;
  7232. var zonecd = ds_main_paminfo_pamlist.getColumn(0, "sectioncd");
  7233. if( !utlf_isNull(zonecd) && zonecd != "-" ){
  7234. group3.group5.cmb_Zone.value = ds_main_paminfo_pamlist.getColumn(0, "sectioncd");
  7235. } else {
  7236. group3.group5.cmb_Zone.value = "-";
  7237. }
  7238. } else {
  7239. group3.group5.caption18.visible = true;
  7240. group3.group5.cmb_room.visible = true;
  7241. group3.group5.cap_Zone.visible = false;
  7242. group3.group5.cmb_Zone.visible = false;
  7243. if ( pFlag != "init"){
  7244. fGetRoomList();
  7245. ds_main_cond.setColumn(0, "pid", "");
  7246. ds_main_cond.setColumn(0, "hngnm", "");
  7247. ds_main_cond.setColumn(0, "indd", "");
  7248. ds_main_cond.setColumn(0, "cretno", "");
  7249. ds_main_cond.setColumn(0, "roomcd", "");
  7250. ds_main_cond.setColumn(0, "settingrnid", "");
  7251. ds_main_cond.setColumn(0, "zonecd", "");
  7252. ds_main_warddruginfo_warddruglist.clearData();
  7253. ds_hidden_warddruginfo_warddruglist.clearData();
  7254. }
  7255. }
  7256. }
  7257. function fmisetting(){
  7258. var setid = sysf_getUserId();
  7259. var setdeptcd = sysf_getUserInfo("dutplcecd");
  7260. //model.removeNodeset("/root/send");
  7261. //model.removeNodeset("/root/hidden/setting/settingrn");
  7262. ds_temp_send_reqdata.setColumn(0, "wardcd", ds_main_cond.getColumn(0, "wardcd"));
  7263. //내환자세팅한 간호사 조회
  7264. var oParam = {};
  7265. oParam.id = "TRMNW10910";
  7266. oParam.service = "wardcareapp.WardCareMngt";
  7267. oParam.method = "reqGetSettingRnList";
  7268. oParam.inds = "req=ds_temp_send_reqdata";
  7269. oParam.outds = "ds_init_settinginfo_settingrn=settingrn";
  7270. oParam.async = false;
  7271. oParam.callback = "cf_TRMNW10910";
  7272. tranf_submit(oParam);
  7273. if( arErrorCode.pop("TRMNW10910") > -1 ){
  7274. ds_main_cond.setColumn(0, "settingrnid", "");
  7275. if( ds_init_settinginfo_settingrn.rowcount > 0 && ds_init_settinginfo_settingrn.getColumn(0, "settingrnnm") == "-" ){
  7276. ds_init_settinginfo_settingrn.setColumn(0, "settingrnid", "");
  7277. }
  7278. group3.group5.cmb_settingrn.index = 0;
  7279. for( var i=0 ; i<ds_init_settinginfo_settingrn.rowcount ; i++ ){
  7280. if( ds_init_settinginfo_settingrn.getColumn(i, "settingrnid") == setid ){
  7281. ds_main_cond.setColumn(0, "settingrnid", setid);
  7282. }
  7283. }
  7284. }
  7285. return;
  7286. }
  7287. function cf_TRMNW10910(sSvcId, nErrorCode, sErrorMsg) {
  7288. arErrorCode.push(sSvcId, nErrorCode);
  7289. }
  7290. // 액팅 심사기준 점검
  7291. function fJudgCheck(pid, indd, cretno, prcpcd, prcpno, execprcpno, execdd, execcarestatcd) {
  7292. // 투약상태가 '미확인', '투약X-반환가능'일 경우 pass
  7293. if (execcarestatcd == "N" || execcarestatcd == "P") {
  7294. } else {
  7295. //저장된 acting 갯수
  7296. var curdate = utlf_getCurrentDate();
  7297. ds_send_judginfo.setColumn(0, "pid", pid);
  7298. ds_send_judginfo.setColumn(0, "indd", indd);
  7299. ds_send_judginfo.setColumn(0, "cretno", cretno);
  7300. ds_send_judginfo.setColumn(0, "prcpcd", prcpcd);
  7301. ds_send_judginfo.setColumn(0, "prcpno", prcpno);
  7302. ds_send_judginfo.setColumn(0, "execprcpno", execprcpno);
  7303. ds_send_judginfo.setColumn(0, "execdd", execdd);
  7304. ds_send_judginfo.setColumn(0, "workdd", curdate);
  7305. ds_send_judginfo.setColumn(0, "sdate", curdate);
  7306. ds_send_judginfo.setColumn(0, "edate", curdate);
  7307. var oParam = {};
  7308. oParam.id = "TRMNR00612";
  7309. oParam.service = "caremedirecapp.CareMediRec";
  7310. oParam.method = "reqGetActingCount";
  7311. oParam.inds = "req=ds_send_judginfo";
  7312. oParam.outds = "ds_main_judginfo_judglist=judglist";
  7313. oParam.async = false;
  7314. //oParam.callback = "cf_TRMNR00612";
  7315. tranf_submit(oParam);
  7316. var rsltCalcCD = ds_main_judginfo_judglist.getColumn(0, "calcscorcd");
  7317. var rsltPrcpnm = ds_main_judginfo_judglist.getColumn(0, "prcpnm");
  7318. var rsltDayno = ds_main_judginfo_judglist.getColumn(0, "drugdayno");
  7319. var rsltTims = eval(ds_main_judginfo_judglist.getColumn(0, "drugtims"));
  7320. var rsltActcnt = eval(ds_main_judginfo_judglist.getColumn(0, "actcnt"));
  7321. //화면 상 지정된 acting 갯수
  7322. for( var i=0 ; i<ds_main_warddruginfo_warddruglist.rowcount ; i++ ){
  7323. //점검하려는 처방코드 검색
  7324. var chk_prcpcd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpcd");
  7325. var chk_prcpno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno");
  7326. if (chk_prcpcd == prcpcd) {
  7327. var objDsxWardDrugListPath = eval(xWardDrugListPath+i+"for");
  7328. var cnt = objDsxWardDrugListPath.rowcount;
  7329. for( var j=0 ; j<cnt ; j++ ){
  7330. chk_iudflag = objDsxWardDrugListPath.getColumn(j, "iudflag");
  7331. chk_execcarestatcd = objDsxWardDrugListPath.getColumn(j, "execcarestatcd");
  7332. chk_execprcpno = objDsxWardDrugListPath.getColumn(j, "execprcpno");
  7333. if (prcpno == chk_prcpno && execprcpno == chk_execprcpno) {
  7334. //점검할 대상은 제외
  7335. } else {
  7336. //변화가 있는 값이랑 비교
  7337. if (chk_iudflag != '-') {
  7338. //바꾸려는 값이 계산되는 값인 경우
  7339. if (chk_execcarestatcd == "N" || chk_execcarestatcd == "P") {
  7340. } else {
  7341. rsltActcnt ++;
  7342. }
  7343. }
  7344. }
  7345. }
  7346. }
  7347. }
  7348. if (rsltTims <= rsltActcnt) {
  7349. sysf_messageBox("Acting 횟수가 심사 기준을 초과하였습니다.\r\n\r\n" +
  7350. "* 처방명: " + rsltPrcpnm + " [" + rsltCalcCD + "]\r\n" +
  7351. "* 심사 기준 횟수: " + rsltTims + "회/" + rsltDayno + "일\r\n" +
  7352. "* 기 Acting 횟수: " + rsltActcnt + "회/" + curdate.substr(0, 4) + "-" + curdate.substr(4, 2) + "-" + curdate.substr(6, 2) + " (투약기록 실제시간 기준)\r\n\r\n" +
  7353. "※ Acting 심사 기준을 확인하시려면 '심사기준' 버튼을 클릭하세요.", "I999");
  7354. }
  7355. }
  7356. }
  7357. function fChkPrcpStat() {
  7358. var row = group3.grd_druglist.currentrow;
  7359. var prcpno = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpno");
  7360. var prcpdd = ds_main_warddruginfo_warddruglist.getColumn(row, "prcpdd");
  7361. var dccountyn = ds_main_warddruginfo_warddruglist.getColumn(row, "dccountyn");
  7362. if( utlf_isNull(dccountyn) ){
  7363. dccountyn = "N"
  7364. }
  7365. ds_send_req.setColumn(0, "prcpno", prcpno);
  7366. ds_send_req.setColumn(0, "prcpdd", prcpdd);
  7367. var oParam = {};
  7368. oParam.id = "TRMNR00613";
  7369. oParam.service = "caremedirecapp.CareMediRec";
  7370. oParam.method = "reqGetPrcpStatInfo";
  7371. oParam.inds = "req=ds_send_req";
  7372. oParam.outds = "ds_temp_prcpinfo_prcplist=prcplist";
  7373. oParam.async = false;
  7374. //oParam.callback = "cf_TRMNR00613";
  7375. tranf_submit(oParam);
  7376. var dccoutnyn2 = ds_temp_prcpinfo_prcplist.getColumn(0, "dccountyn");
  7377. if( utlf_isNull(dccoutnyn2) ){
  7378. dccoutnyn2 = "N"
  7379. }
  7380. if(dccountyn != dccoutnyn2) {
  7381. sysf_messageBox("처방 상태가 변경되어 재조회됩니다.", "I");
  7382. fSearch();
  7383. return false;
  7384. }
  7385. return true;
  7386. }
  7387. function fChkPrcpStatAll() {
  7388. var prcpno;
  7389. var prcpdd;
  7390. var dccountyn;
  7391. var dccountyn2;
  7392. var prcpHeader = "prcpdd▦prcpno▩";
  7393. var prcpData = "";
  7394. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  7395. prcpdd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  7396. prcpno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno");
  7397. prcpData += prcpdd + "▦"
  7398. + prcpno + "▩";
  7399. }
  7400. if( utlf_isNull(prcpData) ){
  7401. return false;
  7402. }
  7403. dsf_setCSVToDs("ds_send_req_prcplist", prcpHeader + prcpData);
  7404. var oParam = {};
  7405. oParam.id = "TRMNR00614";
  7406. oParam.service = "caremedirecapp.CareMediRec";
  7407. oParam.method = "reqGetPrcpStatInfoAll";
  7408. oParam.inds = "req=ds_send_req_prcplist";
  7409. oParam.outds = "ds_temp_prcpinfo_prcplist=prcplist";
  7410. oParam.async = false;
  7411. //oParam.callback = "cf_TRMNR00614";
  7412. tranf_submit(oParam);
  7413. var prcpdd2;
  7414. var prcpno2;
  7415. for( var i=0 ; i<group3.grd_druglist.rowcount ; i++ ){
  7416. prcpdd = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpdd");
  7417. prcpno = ds_main_warddruginfo_warddruglist.getColumn(i, "prcpno");
  7418. prcpData += prcpdd + "▦"
  7419. + prcpno + "▩";
  7420. dccountyn = ds_main_warddruginfo_warddruglist.getColumn(i, "dccountyn");
  7421. dccountyn2 = ds_temp_prcpinfo_prcplist.getColumn(ds_temp_prcpinfo_prcplist.findRowExpr("prcpdd=='"+prcpdd+"' && prcpno=='"+prcpno+"'"), "dccountyn");
  7422. if(dccountyn != dccountyn2) {
  7423. sysf_messageBox("처방 상태가 변경되어 재조회됩니다.", "I");
  7424. fSearch();
  7425. return false;
  7426. }
  7427. }
  7428. return true;
  7429. }
  7430. ]]></Script>