EMRCommon.js 417 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141
  1. /**
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료 - emrcommon - JScript
  4. * Version :
  5. - Ver.1.00.01
  6. * 최초작성일:
  7. * 수정이력:
  8. 2008-11-24
  9. - getImgeData() 함수 수정(로컬이미지는 공통서식, 과별서식 구분 없이 무조건 저장.
  10. 편집가능 DB이미지는 공통서식의 경우 편집을 하지 않으면 Pass
  11. 과별서식의 경우 편집을 하지 않아도 저장하도록 수정)
  12. 2008-11-21
  13. - removeGridRowEx(degnitemno, type) 함수 수정(오지훈)
  14. 기존 함수는 old로 함수명 변경처리
  15. * 기타:
  16. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  17. */
  18. var INFO_CSV_DEL = "▦▩*^^*▩▦";
  19. var gPageInfo_EMR = new PAGEINFO();
  20. var gPrePath_recItemRef = gPageInfo_EMR.recItemRef + "[";
  21. var gPrePath_formdegnRef = gPageInfo_EMR.formdegnRef + "[";
  22. var gPrePath_formdegnRef_degnitemno = gPageInfo_EMR.formdegnRef + "[degnitemno = '";
  23. var gPrePath_recItemGridRef = gPageInfo_EMR.RecinfoGridrecItemRef + "[";
  24. var gPrePath_recInfoGridRef = gPageInfo_EMR.RecinfoGridRef + "[";
  25. // 그리드 컬럼 구분자
  26. // 예) ctrl.colwidth:23^23^23
  27. //var GRD_COL_DELIMETER = "^";
  28. var GRD_COL_DELIMETER = ",";
  29. /**
  30. * @desc : page info 설정
  31. * @id :
  32. * @event :
  33. * @return :
  34. * @authur : 이상현
  35. */
  36. function PAGEINFO(viewerobj)
  37. {
  38. /*this.g_viewcnt = 0;
  39. this.g_viewarr = new Array();
  40. this.g_curviewname = "";
  41. this.g_taskbtnx = 26;
  42. this.g_taskbtny = 22;
  43. this.g_taskbtncx = 8;
  44. this.g_taskbtncurxpos = 0;
  45. this.g_taskbtncurypos = 0; */
  46. if(viewerobj == null)
  47. viewerobj = window;
  48. //this.paperwidth = 775;
  49. this.paperwidth = 680;
  50. this.paperheight = 1000;
  51. this.pagewidth = viewerobj.attribute("width");
  52. this.pageheight = viewerobj.attribute("height");
  53. this.rowheight = 20;
  54. this.curxpos = 20;
  55. this.curypos = 10;
  56. this.ctrlwidth = 100;
  57. this.ctrlheight = 20;
  58. this.offsetx = 5;
  59. this.offsety = 5;
  60. this.fontengwidth = 8;
  61. this.fonthngwidth = 12;
  62. this.indentwidth = 15;
  63. //this.leftmargin = 30;
  64. this.leftmargin = 10;
  65. this.forminfoRef = "/root/main/forminfo";
  66. this.formmastRef = "/root/main/forminfo/formmast";
  67. this.formdegnRef = "/root/main/forminfo/formdegn";
  68. this.vallistRef = "/root/main/forminfo/vallist";
  69. this.imgelistRef = "/root/main/forminfo/imgelist";
  70. this.recRef = "/root/main/recinfo";
  71. this.recRef2 = "/root/hidden/recinfo";
  72. this.initrecRef = "/root/temp/recinfo";
  73. this.extnrecRef = "/root/hidden/extnformrec/recinfo";
  74. this.recMastRef = "/root/main/recinfo/formrec";
  75. this.recItemRef = "/root/main/recinfo/recitem";
  76. this.recItemRef2 = "/root/hidden/recinfo/recitem";
  77. this.initrecItemRef = "/root/temp/recinfo/recitem";
  78. this.extnrecItemRef = "/root/hidden/extnformrec/recinfo/recitem";
  79. this.savedInfoRef = "/root/main/savedinfo/";
  80. this.savedInfoRef2 = "/root/hidden/savedinfo";
  81. this.savedInfoItemRef2 = "/root/hidden/savedinfo/recitem";
  82. //this.recDataRef = "/root/main/recinfo/items";
  83. //this.grdNodeset = "/root/main/recinfo/grds";
  84. this.grdNodeset = "/root/main/recinfo/recitem";
  85. this.grdCapRef = "/root/main/forminfo/GrdList";
  86. this.imgerecItemRef = "/root/temp/imgerec/recinfo/recitem";
  87. //가계도 처리를 위하여 추가(2008-09-25) 박종훈
  88. this.fmyrecItemRef = "/root/temp/fmyrec/recinfo";
  89. //추가기록 처리를 위하여 추가(2008-09-25) 박종훈
  90. this.etcrecItemRef = "/root/temp/etcrec/recinfo";
  91. //누적데이터 조회를 위하여 추가(2008-09-30) 박종훈
  92. this.acmlrecItemRef = "/root/acmltmp/recinfo/recitem";
  93. this.sortItemRef = "/root/temp/sort/recinfo/recitem";
  94. this.popForminfoRef = "/root/temp/pop/forminfo";
  95. this.popRecinfoRef = "/root/temp2/getrecinfo/recinfo";
  96. this.RecinfoGridRef = "/root/main/recinfo/grid";
  97. this.initRecinfoGridRef = "/root/temp/recinfo/grid";
  98. this.RecinfoGridrecItemRef = "/root/main/recinfo/grid/recitem";
  99. this.initRecinfoGridrecItemRef = "/root/temp/recinfo/grid/recitem";
  100. this.xsltRecinfoRecitemRef = "/recinfo/recitem";
  101. this.xsltRecinfoGridRef = "/recinfo/grid";
  102. //20080818 박종훈 추가(특수서식 로딩관련)
  103. this.initforminfoRef = "/root/temp/forminfo";
  104. this.initformmastRef = "/root/temp/forminfo/formmast";
  105. //2010-03-31 오전 9:33:12 강지훈 추가(최종진단명)
  106. this.lastdiagItemRef = "/root/temp/lastdiag/recinfo";
  107. this.formCd = "";
  108. this.srcFormCd = "";
  109. this.formDegnSeq = "";
  110. this.degnItemNo = "";
  111. this.degnItemCd = "";
  112. this.degnItemLevlCd = "";
  113. this.fstLevlItemCd = "";
  114. this.degnitemkind = "";
  115. this.degnitemlevlno = "";
  116. this.degnitemnm = "";
  117. this.rectermnm = "";
  118. this.comuseyn = "";
  119. this.fontFamily = "돋움, Arial";
  120. this.fontSize = 11;
  121. this.align = "";
  122. this.valign = "";
  123. }
  124. function ITEMVAL()
  125. {
  126. this.rectermcd = "";
  127. this.rectermnm = "";
  128. this.reccnts = "";
  129. this.recimge = "";
  130. }
  131. function PARAM(name, value)
  132. {
  133. this.name = name;
  134. this.value = value;
  135. }
  136. /**
  137. * @desc : 노드셋 카피
  138. * @id :
  139. * @event :
  140. * @return :
  141. * @authur : 이상현
  142. */
  143. function copyNodeset(strDest, strSrc, mode, destModel, srcModel)
  144. {
  145. if(mode == null)
  146. mode = "replace";
  147. if(destModel == null)
  148. destModel = model;
  149. if(srcModel == null)
  150. srcModel = model;
  151. if(mode == "replace")
  152. destModel.removeNodeset(strDest);// 대상 노드를 삭제한다.
  153. //var destListLen = 0;
  154. var destNodeList = destModel.instances(0).selectNodes(strDest);
  155. //if(destNodeList != null)
  156. var destListLen = destNodeList.length;
  157. var srcNodeList = srcModel.instances(0).selectNodes(strSrc);
  158. var prepath_strDest = strDest + "[";
  159. var idx;
  160. for(var i = 0; i < srcNodeList.length; i++)
  161. {
  162. idx = i + 1 + destListLen;
  163. var strDest1 = prepath_strDest + idx + "]";
  164. destModel.makeNode(strDest1);
  165. var destNode = destModel.instances(0).selectSingleNode(strDest1);
  166. var srcNode = srcNodeList.item(i);
  167. var srcChildList = srcNode.childNodes;
  168. for(var j = 0; j < srcChildList.length; j++)
  169. destNode.appendChild(srcChildList.item(j).cloneNode(true));
  170. }
  171. }
  172. /**
  173. * @desc : 노드 카피
  174. * @id :
  175. * @event :
  176. * @return :
  177. * @authur : 이상현
  178. */
  179. function copyNode(destModel, srcModel, strDest, strSrc)
  180. {
  181. if(findNode(srcModel, strSrc) == null)
  182. {
  183. alert("카피할 원본노드(" + strSrc + ")가 존재하지 않습니다..");
  184. return;
  185. }
  186. var destNode = findNode(destModel, strDest);
  187. if(destNode == null)
  188. destModel.makeNode(strDest);
  189. else
  190. {
  191. var childList = destNode.childNodes;
  192. for(var idx = 0; idx < childList.length; idx++)
  193. {
  194. var childNode = childList.item(idx);
  195. destModel.removenode(childNode);
  196. }
  197. }
  198. var destXml = destModel.instances(0);
  199. var destNode = destXml.selectSingleNode(strDest);
  200. var nodeList2 = destNode.childNodes;
  201. var temp_count = 0;
  202. var total_count = nodeList2.length;
  203. for (; temp_count<total_count; temp_count++)
  204. {
  205. destNode.removeChild( nodeList2.item(0) );
  206. }
  207. var srcXml = srcModel.instances(0);
  208. var srcNode = srcXml.selectSingleNode(strSrc);
  209. nodeList2 = srcNode.childNodes;
  210. var clone_node = null;
  211. temp_count = 0;
  212. total_count = nodeList2.length;
  213. for (; temp_count<total_count; temp_count++)
  214. {
  215. var node = nodeList2.item(temp_count);
  216. clone_node = node.cloneNode(true);
  217. destNode.appendChild( clone_node );
  218. }
  219. }
  220. /**
  221. * @desc : 노드 찾기
  222. * @id :
  223. * @event :
  224. * @return :
  225. * @authur : 이상현
  226. */
  227. function findNode(srchModel, strPath)
  228. {
  229. var insXml = srchModel.instances(0);
  230. var destNode = insXml.selectSingleNode(strPath);
  231. return destNode;
  232. }
  233. /**
  234. * @desc : 노드셋 찾기
  235. * @id :
  236. * @event :
  237. * @return :
  238. * @authur : 이상현
  239. */
  240. function findNodeset(srchModel, strPath)
  241. {
  242. var insXml = srchModel.instances(0);
  243. var destNodeList = insXml.selectNodes(strPath);
  244. return destNodeList;
  245. }
  246. /**
  247. * @desc : 노드셋 갯수 카운트
  248. * @id :
  249. * @event :
  250. * @return :
  251. * @authur : 이상현
  252. */
  253. function getNodesetCnt(srchModel, path)
  254. {
  255. var insXml = srchModel.instances(0);
  256. var nodeList = insXml.selectNodes(path);
  257. return nodeList.length;
  258. }
  259. /**
  260. * @desc : 그리드 트리 설정
  261. * @id :
  262. * @event :
  263. * @return :
  264. * @authur : 이상현
  265. */
  266. function setGridTree( gridObj, levelcol, targetcol, collapsed) {
  267. //tree 및 레벨설정
  268. for(var i = gridObj.fixedRows; i < gridObj.rows; i++)
  269. {
  270. //gridObj.issubtotal(i) = true;
  271. gridObj.outlinelevel(i)=gridObj.valuematrix(i, levelcol); //인스턴스 levl 값임
  272. }
  273. // tree 대상 컬럼 및 형태 설정
  274. gridObj.outlinecol=targetcol; //연결선이 표현되는 컬럼
  275. gridObj.outlinebar=2; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  276. gridObj.treecolor="#948777"
  277. // 자식 트리 접기
  278. if (collapsed)
  279. {
  280. for(var i = gridObj.fixedrows; i <gridObj.rows; i++)
  281. {
  282. gridObj.isCollapsed(i) = collapsed; //자식 트리 접기
  283. }
  284. }
  285. }
  286. function POSITION(x, y)
  287. {
  288. this.x = x;
  289. this.y = y;
  290. }
  291. function TABLE(rows, cols)
  292. {
  293. this.rows = rows;
  294. this.cols = cols;
  295. }
  296. function SIZE(cx, cy)
  297. {
  298. this.cx = cx;
  299. this.cy = cy;
  300. }
  301. /**
  302. * @desc : 컨트롤의 스타일 값 가져오기
  303. * @id :
  304. * @event :
  305. * @return :
  306. * @authur : 이상현
  307. */
  308. function getStyleValue(attrs, attrNm, ctrltype)
  309. {
  310. if(ctrltype != null)
  311. attrNm = ctrltype + "." + attrNm;
  312. var arrAttrs = attrs.split(";");
  313. for(var i = 0; i < arrAttrs.length; i++)
  314. {
  315. var arrAttr = arrAttrs[i].split(":");
  316. if(arrAttr.length == 0)
  317. continue;
  318. if(arrAttr[0] == attrNm)
  319. {
  320. //return arrAttr[1].setReplaceWord("|", ":");
  321. return arrAttr[1];
  322. }
  323. }
  324. return "";
  325. }
  326. /**
  327. * @desc : 컨트롤의 포맷 값 가져오기
  328. * @id :
  329. * @event :
  330. * @return :
  331. * @authur : 이경희
  332. */
  333. function getFormatStyleValue(attrs, attrNm, ctrltype)
  334. {
  335. if(attrs == null || attrs == "")
  336. return "";
  337. if(ctrltype != null)
  338. attrNm = ctrltype + "." + attrNm;
  339. // "label.left:0;label.top:-1;label.width:50;label.height:20;ctrl.left:65;left:40;top:1127;border-style:none;
  340. // ctrl.border-style:sunken;format:99;ctrl.format:hh|nn;"
  341. var arrAttrs = attrs.split(";");
  342. var arrAttr = "";
  343. for(var i = 0; i < arrAttrs.length; i++)
  344. {
  345. if(isSearchString(arrAttrs[i], attrNm))
  346. {
  347. arrAttr = arrAttrs[i].setReplaceWord("ctrl.format:", "");
  348. arrAttr = arrAttr.setReplaceWord("|", ":");
  349. break;
  350. }
  351. }
  352. return arrAttr;
  353. }
  354. /**
  355. * @desc : 컨트롤의 스타일 값 셋팅
  356. * @id :
  357. * @event :
  358. * @return :
  359. * @authur : 이상현
  360. */
  361. function setStyleValue(attrs, attrNm, attrVal)
  362. {
  363. var arrAttrs = attrs.split(";");
  364. attrs = "";
  365. var bFind = false;
  366. for(var i = 0; i < arrAttrs.length; i++)
  367. {
  368. var arrAttr = arrAttrs[i].split(":");
  369. if(arrAttr.length < 2)
  370. continue;
  371. if(arrAttr[0] == attrNm)
  372. {
  373. arrAttr[1] = attrVal;
  374. bFind = true;
  375. if(attrVal == "")
  376. continue;
  377. }
  378. attrs += arrAttr[0] + ":" + arrAttr[1] + ";";
  379. }
  380. if(!bFind)
  381. attrs += attrNm + ":" + attrVal + ";";
  382. return attrs;
  383. }
  384. /**
  385. * @group :
  386. * @ver : 2007.05.15
  387. * @by :
  388. * @---------------------------------------------------
  389. * @type : function
  390. * @access : public
  391. * @desc : 구분자로 분리된 특정자료를 Reading
  392. * @param : pData : 원본데이터
  393. * @param : pRow : 찾고자 하는 위치의 row
  394. * @param : pCol : 찾고자 하는 위치의 column
  395. * @return : 해당 row, column의 문자열
  396. * @---------------------------------------------------
  397. */
  398. function getArrayData(pData, pRow, pCol, pRowSep, pColSep){
  399. var rowSep = "▩"; // row 구분자
  400. var colSep = "▦"; // column 구분자
  401. if(pRowSep != null && pRowSep != "undefined")
  402. rowSep = pRowSep;
  403. if(pColSep != null && pColSep != "undefined")
  404. colSep = pColSep;
  405. var arrRow = pData.split(rowSep);
  406. if(arrRow.length <= pRow) return "";
  407. var arrCol = arrRow[pRow].split(colSep);
  408. if(arrCol.length <= pCol) return "";
  409. return arrCol[pCol];
  410. }
  411. /**
  412. * @group :
  413. * @ver : 2007.06.13
  414. * @by :
  415. * @---------------------------------------------------
  416. * @type : function
  417. * @access : public
  418. * @desc : 두개의 노드셋을 비교한다.
  419. * @param : originalNode :
  420. * @param : copyNode :
  421. * @return : true, false
  422. * @---------------------------------------------------
  423. */
  424. function fCompareNodes(originalNode, copyNode){
  425. var ins = document.models( 0 ).instances( 0 );
  426. var original = ins.selectSingleNode(originalNode).xml;
  427. var copy = ins.selectSingleNode(copyNode).xml;
  428. if(original == null || copy == null){
  429. return false;
  430. }else if (original == copy){
  431. return true;
  432. }else{
  433. return false;
  434. }
  435. }
  436. /**
  437. * @desc : 조회해온 기록 값을 셋팅
  438. * @id :
  439. * @event :
  440. * @return :
  441. * @authur : 이상현 (2008-07-15)
  442. */
  443. function setSrchData(srcPath, viewobj)
  444. {
  445. model.addLog("[DEBUG] setSrchData srcPath::"+srcPath);
  446. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  447. var pageInfo = new PAGEINFO(viewobj);
  448. var nodeList = model.instances(0).selectNodes(srcPath);
  449. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");//"/root/main/recinfo/recitem";
  450. var initRowno = 0;
  451. var prevColno = 0;
  452. var cntGSL = 0;
  453. var prev_Grddegnitemlevlcd = "";
  454. var prev_Grddegnitemno = "";
  455. var prev_degnitemlevlcd = "";
  456. var prev_degnitemno = "";
  457. var prev_MSLdegnitemno = ""; //2010-03-16 오전 9:17:25 강지훈 : MSL타입 수정모드시 값설정이 제대로 되지않는 오류 수정
  458. //2010-02-08 오후 1:28:25 강지훈 수정 : default 값이 설정되어있을경우 default값을 빼기위해서 destNode의 값을 일괄삭제
  459. var delNodes = viewobj.model.instance1.selectNodes("/root/main/recinfo/recitem[rectermcd != '' or rectermnm != '' or reccnts != '']");
  460. for(var a = 0; a < delNodes.length; a++){
  461. var trgNode = delNodes.item(a);
  462. if(trgNode.selectSingleNode("rectermcd") != null){
  463. trgNode.selectSingleNode("rectermcd").text = "";
  464. }
  465. if(trgNode.selectSingleNode("rectermnm") != null){
  466. trgNode.selectSingleNode("rectermnm").text = "";
  467. }
  468. if(trgNode.selectSingleNode("reccnts") != null){
  469. trgNode.selectSingleNode("reccnts").text = "";
  470. }
  471. }
  472. model.addLog("[DEBUG] setSrchData nodeList.length::"+nodeList.length);
  473. for(var i = 0; i < nodeList.length; i++)
  474. {
  475. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  476. var srcCopyNode = srcNode.cloneNode(true);
  477. var formcdNode = srcNode.selectSingleNode("formcd");
  478. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  479. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  480. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  481. model.addLog("[DEBUG] setSrchData degnitemnmNode::"+degnitemnmNode.text);
  482. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  483. model.addLog("[DEBUG] setSrchData degnitemnoNode::"+degnitemnoNode.text);
  484. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  485. var degnitemlevlcdNode = srcNode.selectSingleNode("degnitemlevlcd");
  486. model.addLog("[DEBUG] setSrchData degnitemkindNode::"+degnitemkindNode.text);
  487. model.addLog("[DEBUG] setSrchData reccnts::"+srcNode.selectSingleNode("reccnts").text);
  488. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  489. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  490. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  491. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  492. var reccntsNode = srcNode.selectSingleNode("reccnts");
  493. var rownoNode = srcNode.selectSingleNode("rowno");
  494. var colnoNode = srcNode.selectSingleNode("colno");
  495. //"/root/main/forminfo/formdegn";
  496. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  497. var itemattrvalNode = null;
  498. if(supdegnitemnoNode != null)
  499. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  500. var grdtype = "";
  501. if(itemattrvalNode != null)
  502. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  503. //"/root/main/forminfo/formmast";
  504. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  505. if(formcdNode.text != destformcdNode.text)
  506. continue;
  507. var condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "'";
  508. var destNode = null;
  509. if(degnitemkindNode.text == "GSU")
  510. {
  511. // debugger;
  512. // GSU의 그리드가 어떤 타입인지 확인한다.
  513. //// 1. root/temp/recinfo 의 노드를 찾는다.
  514. var tempRecinfoNode = findNode(viewobj.model, pageInfo.initrecRef);
  515. //"/root/temp/recinfo/grid/recitem";
  516. var tmpRecitemNode = viewobj.instance1.selectSingleNode(pageInfo.initRecinfoGridrecItemRef + "[degnitemlevlcd = '" + degnitemlevlcdNode.text + "']");
  517. var tempParentNode = null;
  518. var mainGrdType = "";
  519. if(tmpRecitemNode != null)
  520. {
  521. tempParentNode = tmpRecitemNode.parentNode;
  522. var fst_recitemNode = tempParentNode.selectSingleNode("recitem");
  523. var top_degnitemnoNode = tempParentNode.selectSingleNode("degnitemno");
  524. var top_degnitemlevlcdNode = tempParentNode.selectSingleNode("degnitemlevlcd");
  525. var fst_degnitemkindNode = fst_recitemNode.selectSingleNode("degnitemkind");
  526. var fst_orgdegnitemkindNode = fst_recitemNode.selectSingleNode("orgdegnitemkind");
  527. var rootCond = "degnitemno = '" + top_degnitemnoNode.text + "' and degnitemlevlcd = '" + top_degnitemlevlcdNode.text + "'";
  528. if(top_degnitemnoNode !=null && top_degnitemlevlcdNode != null)
  529. {
  530. if(prev_Grddegnitemno == "" && prev_Grddegnitemlevlcd == "")
  531. {
  532. prev_Grddegnitemno = top_degnitemnoNode.text;
  533. prev_Grddegnitemlevlcd = top_degnitemlevlcdNode.text;
  534. }
  535. else
  536. {
  537. // Grid의 degnitemno와 degnitemlevlcd가 다르면 다른 그리드이므로 값을 초기화한다.
  538. if(prev_Grddegnitemno != top_degnitemnoNode.text && prev_Grddegnitemlevlcd != top_degnitemlevlcdNode.text)
  539. {
  540. prev_Grddegnitemno = top_degnitemnoNode.text;
  541. prev_Grddegnitemlevlcd = top_degnitemlevlcdNode.text;
  542. initRowno = 0;
  543. prevColno = -1;
  544. prev_degnitemlevlcd = "";
  545. prev_degnitemno = "";
  546. prev_row = -1;
  547. }
  548. }
  549. }
  550. if(fst_orgdegnitemkindNode == null)
  551. {
  552. // X축, Y축, G축, T축
  553. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemlevlcd = '" + top_degnitemlevlcdNode.text + "']/itemattrval");
  554. if(itemattrvalNode != null)
  555. mainGrdType = getStyleValue(itemattrvalNode.text, "gridtype");
  556. //// 2. 찾을 조건을 정의한다.
  557. if(mainGrdType == "X")
  558. {
  559. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  560. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  561. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  562. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  563. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  564. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  565. if(destNode == null)
  566. {
  567. // X축 그리드의 빈 컬럼을 추가한다.
  568. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + top_degnitemlevlcdNode.text + "']");
  569. var tmpgrdList = viewobj.instance1.selectNodes("/root/temp/recinfo/grid[degnitemlevlcd='" + top_degnitemlevlcdNode.text + "']");
  570. var len = grdList.length;
  571. var grdNode = "";
  572. var subRecitemNodeList = "";
  573. var sublength = 0;
  574. var subNode = "";
  575. var tmpNode = "";
  576. for(var x = 0; x < len; x++)
  577. {
  578. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  579. subRecitemNodeList = grdNode.selectNodes("recitem");
  580. sublength = subRecitemNodeList.length;
  581. // recitem의 마지막 컬럼을 복사.
  582. subNode = subRecitemNodeList.item(sublength-1);
  583. tmpNode = subNode.cloneNode(true);
  584. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  585. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  586. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  587. else
  588. tmpNode.selectSingleNode("reccnts").text = "";
  589. tmpNode.selectSingleNode("rectermcd").text = "";
  590. tmpNode.selectSingleNode("rectermnm").text = "";
  591. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  592. grdNode.appendChild(tmpNode);
  593. }
  594. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  595. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  596. var grd = viewobj.document.controls("GRD_" + top_degnitemnoNode.text);
  597. if(grd == null)
  598. continue;
  599. var cols = grd.cols;
  600. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  601. grd.rebuild();
  602. model.refresh();
  603. }
  604. else
  605. {
  606. // 복사할 대상 노드를 찾은 경우
  607. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  608. destNode.parentNode.replaceChild(srcCopyNode, destNode);
  609. }
  610. continue;
  611. }
  612. /*
  613. else if(mainGrdType == "Y")
  614. {
  615. // 이전 Colno 보다 colnoNode가 큰 경우
  616. if(prev_degnitemlevlcd == "")
  617. {
  618. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  619. prev_degnitemno = degnitemnoNode.text;
  620. }
  621. else
  622. {
  623. if(prev_degnitemno != degnitemnoNode.text && prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) < parseInt(colnoNode.text)))
  624. {
  625. prevColno =colnoNode.text;
  626. }
  627. // 이전 Colno 와 colnoNode가 같은 경우
  628. else if(prev_degnitemno != degnitemnoNode.text && prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) >= parseInt(colnoNode.text)))
  629. {
  630. initRowno++;
  631. }
  632. else // 이전 Colno 보다 colnoNode가 작은 경우 다음 row로 넘어간다.
  633. {
  634. initRowno++;
  635. prevColno =colnoNode.text;
  636. }
  637. }
  638. //condition = condition + " and rowno = '" + initRowno + "' and colno = '" + colnoNode.text + "'";
  639. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  640. }
  641. */
  642. else // Y축, G축, T축
  643. {
  644. // G축, T축 그리드
  645. // 행추가/삭제, 열추가/삭제가 없으므로 DB에 저장된 rowno, colno 그대로 맵핑한다.
  646. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  647. }
  648. ///////////////////////////////////////////////////////////////////
  649. //// 3. root/main/recinfo 에서 Grid를 찾는다.
  650. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + rootCond + "]");
  651. var tmpdestNode = null;
  652. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  653. {
  654. var subgrdNode = tmpDestNodeList.item(idx);
  655. tmpdestNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  656. if(tmpdestNode != null)
  657. {
  658. break;
  659. }
  660. }
  661. //// 4. root/main/recinfo 노드에 해당 GRD기 없으면 temp/recinfo 에서 찾은 grid 노드를 main으로 복사한다.
  662. // rowno 를 initRowno로 수정한 후 복사한다.
  663. if(tmpdestNode == null)
  664. {
  665. var mainParentNode = tempParentNode.cloneNode(true);
  666. var recitemList = mainParentNode.selectNodes("recitem");
  667. for(var tmpidx = 0; tmpidx < recitemList.length; tmpidx++)
  668. {
  669. var tmpSubRecNode = recitemList.item(tmpidx);
  670. tmpSubRecNode.selectSingleNode("rowno").text = rownoNode.text;
  671. }
  672. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  673. if(recinfoNode == null)
  674. {
  675. viewobj.document.models(0).makeNode(pageInfo.recRef);
  676. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  677. }
  678. recinfoNode.appendChild(mainParentNode);
  679. }
  680. }
  681. else
  682. {
  683. // DGN, OPN, CCN
  684. mainGrdType = fst_orgdegnitemkindNode.text;
  685. //// 2. 찾을 조건을 정의한다.
  686. // 이전 Colno 보다 colnoNode가 큰 경우
  687. if(prev_degnitemlevlcd == "")
  688. {
  689. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  690. }
  691. else
  692. {
  693. // rowno는 같고 이전 Colno 보다 현재 colnoNode가 큰 경우
  694. if(prev_degnitemlevlcd != degnitemlevlcdNode.text && (parseInt(prevColno) < parseInt(colnoNode.text)))
  695. {
  696. prevColno =colnoNode.text;
  697. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  698. }
  699. // 이전 Colno 와 colnoNode가 같은 경우 rowno를 증가시킴
  700. else if(prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) == parseInt(colnoNode.text)))
  701. {
  702. initRowno++;
  703. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  704. }
  705. else // 이전 Colno 보다 colnoNode가 작은 경우 다음 row로 넘어간다.
  706. {
  707. initRowno++;
  708. prevColno =colnoNode.text;
  709. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  710. }
  711. }
  712. condition = condition + " and rowno = '" + initRowno + "' and colno = '" + colnoNode.text + "'";
  713. //// 3. root/main/recinfo 항목을 찾는다.
  714. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + rootCond + "]");
  715. var tmpdestNode = null;
  716. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  717. {
  718. var subgrdNode = tmpDestNodeList.item(idx);
  719. tmpdestNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  720. if(tmpdestNode != null)
  721. {
  722. break;
  723. }
  724. }
  725. //// 4. root/main/recinfo 노드에 해당 GRD가 없으면 temp/recinfo 에서 찾은 grid 노드를 main으로 복사한다.
  726. //// rowno 를 initRowno로 수정한 후 복사한다.
  727. if(tmpdestNode == null)
  728. {
  729. var mainParentNode = tempParentNode.cloneNode(true);
  730. var recitemList = mainParentNode.selectNodes("recitem");
  731. for(var tmpidx = 0; tmpidx < recitemList.length; tmpidx++)
  732. {
  733. var tmpSubRecNode = recitemList.item(tmpidx);
  734. tmpSubRecNode.selectSingleNode("rowno").text = initRowno;
  735. }
  736. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  737. if(recinfoNode == null)
  738. {
  739. viewobj.document.models(0).makeNode(pageInfo.recRef);
  740. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  741. }
  742. recinfoNode.appendChild(mainParentNode);
  743. }
  744. srcCopyNode.selectSingleNode("rowno").text = initRowno;
  745. }
  746. }
  747. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  748. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  749. //// 5. main/recinfo 노드에서 해당 노드를 찾지 못하면 다시한번 temp 에서 찾아 main으로 복사한다.
  750. if(destNode == null)
  751. {
  752. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  753. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  754. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  755. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  756. if(grdNode != null)
  757. {
  758. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  759. var grdCloneNode = grdNode.cloneNode(true);
  760. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  761. for(var idx = 0; idx < recitemNodeList.length; idx++)
  762. {
  763. // recitem
  764. var recitemNode = recitemNodeList.item(idx);
  765. recitemNode.selectSingleNode("rowno").text = initRowno; //rownoNode.text;
  766. }
  767. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  768. // 5. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  769. if(orgdegnitemkindNode != null)
  770. {
  771. if(orgdegnitemkindNode.text == "DGN" // 진단명
  772. || orgdegnitemkindNode.text == "OPN" // 수술
  773. || orgdegnitemkindNode.text == "CCN") // 주호소
  774. {
  775. recinfoNode.appendChild(grdCloneNode);
  776. }
  777. }
  778. else
  779. {
  780. // 현재 grdNode는 root/temp/recinfo의 그리드노드이므로, root/main/recinfo의 그리드노드를 찾는다.
  781. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  782. // rowno 순서를 맞추기 위해 srcNode의 rowno 이전의 GRD를 찾는다.
  783. for(var idx = 0; idx < grdNodeList.length; idx++)
  784. {
  785. var subgrdNode = grdNodeList.item(idx);
  786. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  787. {
  788. grdNode = subgrdNode;
  789. break;
  790. }
  791. }
  792. recinfoNode.insertAfter(grdCloneNode, grdNode);
  793. }
  794. grdNode = grdCloneNode;
  795. }
  796. //2010.06.08 김달현 수정. grdNode null 처리
  797. if(grdNode == null){
  798. continue;
  799. }
  800. //교체할 대상 gsu를 구한다.
  801. //var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  802. var gsucond = "degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and colno = '" + colnoNode.text + "'";
  803. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  804. if(destNode == null)
  805. {
  806. addGridCol(supdegnitemnoNode.text, viewobj);
  807. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  808. if(destNode == null)
  809. continue;
  810. }
  811. // 기록된 grid의 recitem(srcNode)를 main/recinfo/grid의 recitem(destNode)로 교환한다.
  812. //replaceChild(node newChild, node oldChild)
  813. srcCopyNode.selectSingleNode("rowno").text = initRowno; // 저장된 rowno는 순서가 뒤바뀌어 있으므로 initRowno를 대입한다.
  814. grdNode.replaceChild(srcCopyNode, destNode);
  815. continue;
  816. }
  817. destNode.parentNode.replaceChild(srcCopyNode, destNode);
  818. }
  819. else if(degnitemkindNode.text == "CHK")
  820. {
  821. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  822. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  823. if(destNode == null)
  824. continue;
  825. /*
  826. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  827. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  828. var rectermcd = "";
  829. for(var idx = 0; idx < srcNodeList.length; idx++)
  830. {
  831. var node = srcNodeList.item(idx);
  832. if(idx == 0)
  833. rectermcd += node.selectSingleNode("rectermcd").text;
  834. else
  835. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  836. }
  837. destNode.selectSingleNode("rectermcd").text = rectermcd;
  838. */
  839. // CHK 아이템 정렬 문제 수정 setsrchdata, getCheckSaveData
  840. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  841. /* 2010.01.27 안치원 - 수정모드시 degnitemno가 같은 item에 값이 설정되는 오류수정
  842. * 아래 srcPath + "[degnitemno = '" + srcdegnitemno + "']" 의 값이
  843. * "/root/hidden/recinfo/recitem[fstlevlitemcd='0000098001' and formcd = '0900004557'][degnitemno = '11']"
  844. * 으로 나옴으로 해서, 앞의 조건은 무시되고 degnitemno = '11'인 값을 가져와 설정하는 문제가 발생했음.
  845. * 그래서 path의 값이
  846. * "/root/hidden/recinfo/recitem[fstlevlitemcd='0000098001' and formcd = '0900004557' and degnitemno = '11']"
  847. * 로 나오도록 수정함.
  848. */
  849. //srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  850. var l_srcPath = srcPath + "[degnitemno = '" + srcdegnitemno + "']";
  851. l_srcPath = l_srcPath.replace("][", " and ");
  852. srcNodeList = findNodeset(model, l_srcPath);
  853. var rectermcd = "";
  854. var rectermnm = "";
  855. var reccnts = "";
  856. for(var idx = 0; idx < srcNodeList.length; idx++)
  857. {
  858. var node = srcNodeList.item(idx);
  859. reccnts = node.selectSingleNode("reccnts").text;
  860. var tmpRectermnm = node.selectSingleNode("rectermnm").text;
  861. if(tmpRectermnm == "")
  862. {
  863. tmpRectermnm = model.getValue(pageInfo.vallistRef + "[valcd='" + node.selectSingleNode("rectermcd").text + "']/valitemnm");
  864. }
  865. if(idx == 0)
  866. {
  867. rectermcd += node.selectSingleNode("rectermcd").text;
  868. rectermnm += tmpRectermnm; //node.selectSingleNode("rectermnm").text;
  869. }
  870. else
  871. {
  872. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  873. rectermnm += "▦" + tmpRectermnm; //node.selectSingleNode("rectermnm").text;
  874. }
  875. }
  876. destNode.selectSingleNode("rectermcd").text = rectermcd;
  877. destNode.selectSingleNode("rectermnm").text = rectermnm;
  878. destNode.selectSingleNode("reccnts").text = reccnts;
  879. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text; //2010.04.29, 주희경, 기록 수정 시 수식 계산을 위해 기록시 저장한 rowno셋팅
  880. }
  881. else if(degnitemkindNode.text == "MSL")
  882. {
  883. condition = condition + " and degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  884. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  885. if(destNode == null)
  886. continue;
  887. //2010-03-16 오전 9:18:31 강지훈 : MSL 합계가 colno = 0 에 setting된다.
  888. if(prev_MSLdegnitemno != degnitemnoNode.text){
  889. //debugger;
  890. //colno 가 0인 targetNode를 찾는다.
  891. var zeroNodeSrchCond = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text ;
  892. zeroNodeSrchCond += "' and degnitemno = '" + degnitemnoNode.text + "' and colno = '0'";
  893. var prev_recMSLSumNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + zeroNodeSrchCond + "]");
  894. //targetNode가 존재한다면 기록된 동일degnitemno 값들을 sum하여 targetNode의 0번째 colno에 setting
  895. if(prev_recMSLSumNode != null){
  896. var recMSLSrchCond = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and degnitemno = "+ degnitemnoNode.text;
  897. var recMSLSum = model.instances(0).getXPathString("sum("+ pageInfo.recRef + "/recitem[" + recMSLSrchCond +"]/rowno)") ;
  898. prev_recMSLSumNode.selectSingleNode("rowno").text = recMSLSum;
  899. }
  900. }
  901. //pointer 복사에서 값 복사로 변경
  902. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  903. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  904. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  905. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  906. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  907. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  908. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  909. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  910. prev_MSLdegnitemno = degnitemnoNode.text;
  911. }
  912. else
  913. {
  914. //20100624-kys-연령감정서의 경우 로딩시 디폴트값으로 degnitemlevlcd의 값이 같은 STX가 존재하여 저정후 값셋팅이 되지 않음.
  915. //이러한 경우 condition에 degnitemno를 추가함.
  916. if(degnitemkindNode.text == "STX"){
  917. condition = condition + " and degnitemno = '" + degnitemnoNode.text + "'";
  918. }
  919. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  920. if(destNode == null)
  921. continue;
  922. //pointer 복사에서 값 복사로 변경
  923. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  924. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  925. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  926. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  927. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  928. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  929. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  930. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  931. //이미지 OCX처리
  932. if(degnitemkindNode.text == "IMG")
  933. {
  934. var degnitemno = degnitemnoNode.text;
  935. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  936. if(imgedit == "Y")
  937. {
  938. var ctrlid = "IMG_" + degnitemno;
  939. eval(ctrlid).SetShapeString(reccntsNode.text);
  940. }
  941. }
  942. }
  943. }
  944. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  945. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  946. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  947. model.addLog("[DEBUG] setSrchData refresh");
  948. //viewobj.model.refresh();
  949. model.addLog("[DEBUG] setSrchData dispatch");
  950. viewobj.body.dispatch("onsubformdataloadcomp");
  951. }
  952. function setSrchData_Old3(srcPath, viewobj)
  953. {
  954. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  955. var pageInfo = new PAGEINFO(viewobj);
  956. var nodeList = model.instances(0).selectNodes(srcPath);
  957. var dgndegnitemno = "";
  958. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");
  959. for(var i = 0; i < nodeList.length; i++)
  960. {
  961. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  962. var formcdNode = srcNode.selectSingleNode("formcd");
  963. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  964. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  965. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  966. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  967. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  968. var degnitemlevlcdNode = srcNode.selectSingleNode("degnitemlevlcd");
  969. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  970. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  971. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  972. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  973. var reccntsNode = srcNode.selectSingleNode("reccnts");
  974. var rownoNode = srcNode.selectSingleNode("rowno");
  975. var colnoNode = srcNode.selectSingleNode("colno");
  976. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  977. var itemattrvalNode = null;
  978. if(supdegnitemnoNode != null)
  979. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  980. var grdtype = "";
  981. if(itemattrvalNode != null)
  982. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  983. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  984. if(formcdNode.text != destformcdNode.text)
  985. continue;
  986. var condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "'";
  987. var destNode = null;
  988. if(degnitemkindNode.text == "GSU")
  989. {
  990. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  991. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  992. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  993. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  994. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  995. {
  996. var subgrdNode = tmpDestNodeList.item(idx);
  997. destNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  998. if(destNode != null)
  999. {
  1000. // 현재 destNode가 빈 row 인지 데이터가 이미 매핑된 row인지 확인한다.
  1001. var tmpCondition = "formcd = '" + formcdNode.text + "' and rowno = '" + rownoNode.text + "' and colno = '-1'";
  1002. var tmpHeaderNode = subgrdNode.selectSingleNode("recitem[" + tmpCondition + "]/orgdegnitemkind");
  1003. if(tmpHeaderNode != null)
  1004. {
  1005. if(tmpHeaderNode.text == "DGN")
  1006. {
  1007. var tmpdegnitemlevlcd = subgrdNode.selectSingleNode("recitem[colno = '-1']/degnitemlevlcd");
  1008. // 진단 내역을 확인
  1009. tmpCondition = "degnitemlevlcd = '" + tmpdegnitemlevlcd.text + "'";
  1010. tmpNodelist = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + tmpCondition + "]");
  1011. for(var tmpidx = 0; tmpidx < tmpNodelist.length; tmpidx++)
  1012. {
  1013. var tmpNode = tmpNodelist.item(tmpidx);
  1014. var DiagNode = tmpNode.selectSingleNode("recitem[colno='2']");
  1015. if(DiagNode.selectSingleNode("rectermcd").text != "" && DiagNode.selectSingleNode("rectermnm").text != "")
  1016. {
  1017. //rownoNode.text = parseInt(rownoNode.text )+1;
  1018. rownoNode.text = parseInt(DiagNode.selectSingleNode("rowno").text )+1;
  1019. condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and rowno = '" + rownoNode.text + "'";
  1020. }
  1021. else
  1022. {
  1023. var tmpRownoNode = DiagNode.selectSingleNode("rowno");
  1024. condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and rowno = '" + tmpRownoNode.text + "'";
  1025. break;
  1026. }
  1027. }
  1028. }
  1029. else
  1030. {
  1031. break;
  1032. }
  1033. }
  1034. else
  1035. {
  1036. break;
  1037. }
  1038. }
  1039. }
  1040. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  1041. // 저장된 인스턴스를 매핑하기 위해 빈 row를 추가한다.
  1042. if(destNode == null)
  1043. {
  1044. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1045. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  1046. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  1047. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1048. // 3. 그리드 타입별로 구분한다.
  1049. //var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  1050. var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemkind='GRD' and degnitemlevlcd='" + supdegnitemlevlcd + "']/itemattrval");
  1051. if(grdtypeNode != null)
  1052. grdtype = getStyleValue(grdtypeNode.text, "gridtype");
  1053. if(grdtype == "X")
  1054. {
  1055. // X축 그리드의 빈 컬럼을 추가한다.
  1056. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1057. var len = grdList.length;
  1058. var grdNode = "";
  1059. var subRecitemNodeList = "";
  1060. var sublength = 0;
  1061. var subNode = "";
  1062. var tmpNode = "";
  1063. for(var x = 0; x < len; x++)
  1064. {
  1065. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  1066. subRecitemNodeList = grdNode.selectNodes("recitem");
  1067. sublength = subRecitemNodeList.length;
  1068. //var subRecitemNodeList.item(i).selectSingleNode("degnitemnm");
  1069. // recitem의 마지막 컬럼을 복사.
  1070. subNode = subRecitemNodeList.item(sublength-1);
  1071. //var subNode = grdNode.selectSingleNode("recitem");
  1072. tmpNode = subNode.cloneNode(true);
  1073. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  1074. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  1075. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  1076. else
  1077. tmpNode.selectSingleNode("reccnts").text = "";
  1078. tmpNode.selectSingleNode("rectermcd").text = "";
  1079. tmpNode.selectSingleNode("rectermnm").text = "";
  1080. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  1081. grdNode.appendChild(tmpNode);
  1082. }
  1083. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  1084. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  1085. var grd = viewobj.document.controls("GRD_" + supdegnitemnoNode.text);
  1086. var cols = grd.cols;
  1087. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  1088. //grd.colAttribute( cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1089. grd.rebuild();
  1090. model.refresh();
  1091. continue;
  1092. }
  1093. else // GridType이 X축이 아닌 경우
  1094. {
  1095. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  1096. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1097. if(grdNode != null)
  1098. {
  1099. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  1100. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1101. // 4. temp에서 찾은 grid 노드를 복사할 root/main/recinfo 노드에서 구하기
  1102. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  1103. if(recinfoNode == null)
  1104. {
  1105. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1106. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1107. }
  1108. var grdCloneNode = grdNode.cloneNode(true);
  1109. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  1110. for(var idx = 0; idx < recitemNodeList.length; idx++)
  1111. {
  1112. // recitem
  1113. var recitemNode = recitemNodeList.item(idx);
  1114. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1115. }
  1116. if(rownoNode.text >= 1)
  1117. {
  1118. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  1119. for(var idx = 0; idx < grdNodeList.length; idx++)
  1120. {
  1121. var subgrdNode = grdNodeList.item(idx);
  1122. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  1123. {
  1124. grdNode = subgrdNode;
  1125. break;
  1126. }
  1127. }
  1128. }
  1129. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1130. // 5. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  1131. if(orgdegnitemkindNode != null)
  1132. {
  1133. if(orgdegnitemkindNode.text == "DGN" // 진단명
  1134. || orgdegnitemkindNode.text == "OPN" // 수술
  1135. || orgdegnitemkindNode.text == "CCN") // 주호소
  1136. {
  1137. recinfoNode.appendChild(grdCloneNode);
  1138. }
  1139. }
  1140. else
  1141. {
  1142. recinfoNode.insertAfter(grdCloneNode, grdNode);
  1143. }
  1144. grdNode = grdCloneNode;
  1145. }
  1146. if(grdNode == null)
  1147. {
  1148. //grdNode = model.instances(0).selectSingleNode(srcPath + "[degnitemno='" + supdegnitemno + "' and rowno='" + rownoNode.text + "']");
  1149. //hidden에 있는 skeleton을 복사한다
  1150. //grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1151. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1152. if(grdNode == null)
  1153. continue;
  1154. var CopygrdNode = grdNode.cloneNode(true);
  1155. //로직 분리 (TF버그로 인해 부모에 append하기전에 값을 변경한다.)
  1156. // GRD 인스턴스의 row 갱신
  1157. var subRecitemList = CopygrdNode.selectNodes("recitem");
  1158. for(var idx = 0; idx < subRecitemList.length; idx++)
  1159. {
  1160. var recitemNode = subRecitemList.item(idx);
  1161. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1162. }
  1163. //교체할 대상 gsu를 구한다.
  1164. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1165. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1166. if(destNode == null)
  1167. {
  1168. if(grdtype != "X")
  1169. continue;
  1170. addGridCol(supdegnitemnoNode.text);
  1171. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1172. if(destNode == null)
  1173. continue;
  1174. }
  1175. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1176. CopygrdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1177. var recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1178. if(recNode == null)
  1179. {
  1180. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1181. recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1182. }
  1183. recNode.appendChild(CopygrdNode);
  1184. continue;
  1185. }
  1186. }
  1187. //교체할 대상 gsu를 구한다.
  1188. //var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1189. var gsucond = "degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and colno = '" + colnoNode.text + "'";
  1190. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1191. if(destNode == null)
  1192. {
  1193. addGridCol(supdegnitemnoNode.text, viewobj);
  1194. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1195. if(destNode == null)
  1196. continue;
  1197. }
  1198. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1199. grdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1200. continue;
  1201. }
  1202. // 복사할 대상 노드를 찾은 경우 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  1203. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1204. }
  1205. else if(degnitemkindNode.text == "CHK")
  1206. {
  1207. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1208. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1209. if(destNode == null)
  1210. continue;
  1211. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  1212. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  1213. var rectermcd = "";
  1214. for(var idx = 0; idx < srcNodeList.length; idx++)
  1215. {
  1216. var node = srcNodeList.item(idx);
  1217. if(idx == 0)
  1218. rectermcd += node.selectSingleNode("rectermcd").text;
  1219. else
  1220. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  1221. }
  1222. destNode.selectSingleNode("rectermcd").text = rectermcd;
  1223. }
  1224. else if(degnitemkindNode.text == "MSL")
  1225. {
  1226. condition = condition + " and degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1227. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1228. if(destNode == null)
  1229. continue;
  1230. //pointer 복사에서 값 복사로 변경
  1231. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1232. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  1233. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  1234. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  1235. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  1236. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  1237. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  1238. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  1239. }
  1240. else
  1241. {
  1242. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  1243. if(destNode == null)
  1244. continue;
  1245. //pointer 복사에서 값 복사로 변경
  1246. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1247. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  1248. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  1249. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  1250. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  1251. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  1252. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  1253. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  1254. //이미지 OCX처리
  1255. if(degnitemkindNode.text == "IMG")
  1256. {
  1257. var degnitemno = degnitemnoNode.text;
  1258. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  1259. if(imgedit == "Y")
  1260. {
  1261. var ctrlid = "IMG_" + degnitemno;
  1262. eval(ctrlid).SetShapeString(reccntsNode.text);
  1263. }
  1264. }
  1265. }
  1266. }
  1267. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  1268. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  1269. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  1270. viewobj.model.refresh();
  1271. viewobj.body.dispatch("onsubformdataloadcomp");
  1272. }
  1273. /**
  1274. * @desc : 조회해온 기록 값을 셋팅
  1275. * @id :
  1276. * @event :
  1277. * @return :
  1278. * @authur : 이상현
  1279. */
  1280. function setSrchData_Old1(srcPath, viewobj)
  1281. {
  1282. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  1283. var pageInfo = new PAGEINFO(viewobj);
  1284. var nodeList = model.instances(0).selectNodes(srcPath);
  1285. var dgndegnitemno = "";
  1286. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");
  1287. for(var i = 0; i < nodeList.length; i++)
  1288. {
  1289. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  1290. var formcdNode = srcNode.selectSingleNode("formcd");
  1291. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  1292. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  1293. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  1294. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  1295. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  1296. var degnitemlevlcdNode = srcNode.selectSingleNode("degnitemlevlcd");
  1297. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  1298. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  1299. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  1300. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  1301. var reccntsNode = srcNode.selectSingleNode("reccnts");
  1302. var rownoNode = srcNode.selectSingleNode("rowno");
  1303. var colnoNode = srcNode.selectSingleNode("colno");
  1304. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  1305. var itemattrvalNode = null;
  1306. if(supdegnitemnoNode != null)
  1307. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  1308. var grdtype = "";
  1309. if(itemattrvalNode != null)
  1310. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  1311. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  1312. if(formcdNode.text != destformcdNode.text)
  1313. continue;
  1314. /*if(degnitemkindNode.text == "GRD")
  1315. {
  1316. var degnitemkind = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemkind");
  1317. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  1318. dgndegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemno");
  1319. continue;
  1320. }*/
  1321. //var condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + degnitemnoNode.text + "'";
  1322. var condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "'";
  1323. var destNode = null;
  1324. if(degnitemkindNode.text == "GSU")
  1325. {
  1326. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1327. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1328. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  1329. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  1330. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  1331. {
  1332. var subgrdNode = tmpDestNodeList.item(idx);
  1333. destNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  1334. if(destNode != null)
  1335. break;
  1336. }
  1337. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  1338. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  1339. if(destNode == null)
  1340. {
  1341. //var supdegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  1342. /*if(supdegnitemno == "")
  1343. //DGN, OCN, CCN의 경우 대표 아이템번호를 가지고 부모를 찾는다.(snoweye : 2008-07-15)
  1344. //supdegnitemno = dgndegnitemno;
  1345. supdegnitemno = degnitemnoNode.text;
  1346. else
  1347. condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + supdegnitemno + "' and rowno = '" + rownoNode.text +"' and colno = '" + colnoNode.text + "'";*/
  1348. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1349. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  1350. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  1351. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  1352. //grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1353. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1354. if(grdNode != null)
  1355. {
  1356. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1357. // 3. temp에서 찾은 grid 노드를 복사할 root/main/recinfo 노드 구하기
  1358. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  1359. if(recinfoNode == null)
  1360. {
  1361. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1362. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1363. }
  1364. var grdCloneNode = grdNode.cloneNode(true);
  1365. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  1366. for(var idx = 0; idx < recitemNodeList.length; idx++)
  1367. {
  1368. var recitemNode = recitemNodeList.item(idx);
  1369. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1370. }
  1371. if(rownoNode.text >= 1)
  1372. {
  1373. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  1374. for(var idx = 0; idx < grdNodeList.length; idx++)
  1375. {
  1376. var subgrdNode = grdNodeList.item(idx);
  1377. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  1378. {
  1379. grdNode = subgrdNode;
  1380. break;
  1381. }
  1382. }
  1383. }
  1384. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1385. // 4. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  1386. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  1387. if(orgdegnitemkindNode != null)
  1388. {
  1389. if(orgdegnitemkindNode.text == "DGN" // 진단명
  1390. || orgdegnitemkindNode.text == "OPN" // 수술
  1391. || orgdegnitemkindNode.text == "CCN") // 주호소
  1392. {
  1393. recinfoNode.appendChild(grdCloneNode);
  1394. }
  1395. }
  1396. else
  1397. {
  1398. recinfoNode.insertAfter(grdCloneNode, grdNode);
  1399. }
  1400. grdNode = grdCloneNode;
  1401. }
  1402. //var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  1403. var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']/itemattrval");
  1404. if(grdtypeNode != null)
  1405. grdtype = getStyleValue(grdtypeNode.text, "gridtype");
  1406. if(grdtype == "X")
  1407. {
  1408. // X축 그리드의 빈 컬럼을 추가한다.
  1409. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1410. var tmpgrdList = viewobj.instance1.selectNodes("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1411. var len = grdList.length;
  1412. var grdNode = "";
  1413. var subRecitemNodeList = "";
  1414. var sublength = 0;
  1415. var subNode = "";
  1416. var tmpNode = "";
  1417. for(var x = 0; x < len; x++)
  1418. {
  1419. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  1420. subRecitemNodeList = grdNode.selectNodes("recitem");
  1421. sublength = subRecitemNodeList.length;
  1422. //var subRecitemNodeList.item(i).selectSingleNode("degnitemnm");
  1423. // recitem의 마지막 컬럼을 복사.
  1424. subNode = subRecitemNodeList.item(sublength-1);
  1425. //var subNode = grdNode.selectSingleNode("recitem");
  1426. tmpNode = subNode.cloneNode(true);
  1427. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  1428. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  1429. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  1430. else
  1431. tmpNode.selectSingleNode("reccnts").text = "";
  1432. tmpNode.selectSingleNode("rectermcd").text = "";
  1433. tmpNode.selectSingleNode("rectermnm").text = "";
  1434. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  1435. // supdegnitemno를 supdegnitemlevlcd 로 변경됨에 따라 삭제
  1436. /*
  1437. if(tmpNode.selectSingleNode("supdegnitemno") == null)
  1438. {
  1439. var supdegnitemnoNode = instance1.createElement("supdegnitemno");
  1440. tmpNode.appendChild(supdegnitemnoNode);
  1441. }
  1442. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  1443. */
  1444. grdNode.appendChild(tmpNode);
  1445. }
  1446. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  1447. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  1448. var grd = viewobj.document.controls("GRD_" + supdegnitemlevlcd);
  1449. var cols = grd.cols;
  1450. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  1451. //grd.colAttribute( cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1452. grd.rebuild();
  1453. model.refresh();
  1454. //grd.addColumn("type:input; ref:test_col;");
  1455. //grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1456. continue;
  1457. }
  1458. if(grdNode == null)
  1459. {
  1460. //grdNode = model.instances(0).selectSingleNode(srcPath + "[degnitemno='" + supdegnitemno + "' and rowno='" + rownoNode.text + "']");
  1461. //hidden에 있는 skeleton을 복사한다
  1462. //grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1463. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1464. var CopygrdNode = grdNode.cloneNode(true);
  1465. //로직 분리 (TF버그로 인해 부모에 append하기전에 값을 변경한다.)
  1466. // GRD 인스턴스의 row 갱신
  1467. var subRecitemList = CopygrdNode.selectNodes("recitem");
  1468. for(var idx = 0; idx < subRecitemList.length; idx++)
  1469. {
  1470. var recitemNode = subRecitemList.item(idx);
  1471. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1472. }
  1473. //교체할 대상 gsu를 구한다.
  1474. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1475. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1476. if(destNode == null)
  1477. {
  1478. if(grdtype != "X")
  1479. continue;
  1480. addGridCol(supdegnitemnoNode.text);
  1481. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1482. if(destNode == null)
  1483. continue;
  1484. }
  1485. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1486. CopygrdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1487. var recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1488. if(recNode == null)
  1489. {
  1490. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1491. recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1492. }
  1493. recNode.appendChild(CopygrdNode);
  1494. continue;
  1495. }
  1496. //grd rowno를 갱신한다.
  1497. //grdNode.selectSingleNode("recitem/rowno").text = rownoNode.text;
  1498. //교체할 대상 gsu를 구한다.
  1499. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1500. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1501. if(destNode == null)
  1502. {
  1503. if(grdtype != "X")
  1504. continue;
  1505. addGridCol(supdegnitemnoNode.text, viewobj);
  1506. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1507. if(destNode == null)
  1508. continue;
  1509. }
  1510. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1511. grdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1512. continue;
  1513. }
  1514. // 복사할 대상 노드를 찾은 경우
  1515. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  1516. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1517. }
  1518. else if(degnitemkindNode.text == "CHK")
  1519. {
  1520. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1521. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1522. if(destNode == null)
  1523. continue;
  1524. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  1525. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  1526. var rectermcd = "";
  1527. for(var idx = 0; idx < srcNodeList.length; idx++)
  1528. {
  1529. var node = srcNodeList.item(idx);
  1530. if(idx == 0)
  1531. rectermcd += node.selectSingleNode("rectermcd").text;
  1532. else
  1533. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  1534. }
  1535. destNode.selectSingleNode("rectermcd").text = rectermcd;
  1536. }
  1537. else if(degnitemkindNode.text == "MSL")
  1538. {
  1539. condition = condition + " and colno = '" + colnoNode.text + "'";
  1540. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1541. if(destNode == null)
  1542. continue;
  1543. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1544. }
  1545. else
  1546. {
  1547. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  1548. if(destNode == null)
  1549. continue;
  1550. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1551. //이미지 OCX처리
  1552. if(degnitemkindNode.text == "IMG")
  1553. {
  1554. var degnitemno = degnitemnoNode.text;
  1555. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  1556. if(imgedit == "Y")
  1557. {
  1558. var ctrlid = "IMG_" + degnitemno;
  1559. eval(ctrlid).SetShapeString(reccntsNode.text);
  1560. }
  1561. }
  1562. }
  1563. }
  1564. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  1565. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  1566. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  1567. viewobj.model.refresh();
  1568. }
  1569. /**
  1570. * @desc : 조회해온 기록 값을 셋팅
  1571. * @id :
  1572. * @event :
  1573. * @return :
  1574. * @authur : 이상현
  1575. */
  1576. function setSrchData_Old2(srcPath, viewobj)
  1577. {
  1578. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  1579. var pageInfo = new PAGEINFO(viewobj);
  1580. var nodeList = model.instances(0).selectNodes(srcPath);
  1581. var dgndegnitemno = "";
  1582. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");
  1583. for(var i = 0; i < nodeList.length; i++)
  1584. {
  1585. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  1586. var formcdNode = srcNode.selectSingleNode("formcd");
  1587. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  1588. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  1589. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  1590. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  1591. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  1592. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  1593. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  1594. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  1595. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  1596. var reccntsNode = srcNode.selectSingleNode("reccnts");
  1597. var rownoNode = srcNode.selectSingleNode("rowno");
  1598. var colnoNode = srcNode.selectSingleNode("colno");
  1599. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  1600. var itemattrvalNode = null;
  1601. if(supdegnitemnoNode != null)
  1602. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  1603. var grdtype = "";
  1604. if(itemattrvalNode != null)
  1605. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  1606. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  1607. if(formcdNode.text != destformcdNode.text)
  1608. continue;
  1609. if(degnitemkindNode.text == "GRD")
  1610. {
  1611. var degnitemkind = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemkind");
  1612. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  1613. dgndegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemno");
  1614. continue;
  1615. }
  1616. var condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + degnitemnoNode.text + "'";
  1617. var destNode = null;
  1618. if(degnitemkindNode.text == "GSU")
  1619. {
  1620. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1621. // root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  1622. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  1623. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  1624. {
  1625. var subgrdNode = tmpDestNodeList.item(idx);
  1626. destNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  1627. if(destNode != null)
  1628. break;
  1629. }
  1630. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  1631. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  1632. if(destNode == null)
  1633. {
  1634. var supdegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  1635. if(supdegnitemno == "")
  1636. supdegnitemno = dgndegnitemno;
  1637. else
  1638. condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + supdegnitemno + "' and rowno = '" + rownoNode.text +"' and colno = '" + colnoNode.text + "'";
  1639. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  1640. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1641. if(grdNode != null)
  1642. {
  1643. // 1. root/main/recinfo 노드 구하기
  1644. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  1645. if(recinfoNode == null)
  1646. {
  1647. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1648. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1649. }
  1650. var grdCloneNode = grdNode.cloneNode(true);
  1651. grdCloneNode.selectSingleNode("degnitemno").text = supdegnitemno;
  1652. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  1653. for(var idx = 0; idx < recitemNodeList.length; idx++)
  1654. {
  1655. var recitemNode = recitemNodeList.item(idx);
  1656. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1657. }
  1658. if(rownoNode.text >= 1)
  1659. {
  1660. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + supdegnitemno + "']");
  1661. for(var idx = 0; idx < grdNodeList.length; idx++)
  1662. {
  1663. var subgrdNode = grdNodeList.item(idx);
  1664. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  1665. {
  1666. grdNode = subgrdNode;
  1667. break;
  1668. }
  1669. }
  1670. }
  1671. // 2. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술 인지 여부를 판단한다.
  1672. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  1673. if(orgdegnitemkindNode != null)
  1674. {
  1675. if(orgdegnitemkindNode.text == "DGN" || orgdegnitemkindNode.text == "OPN")
  1676. {
  1677. recinfoNode.appendChild(grdCloneNode);
  1678. }
  1679. }
  1680. else
  1681. {
  1682. recinfoNode.insertAfter(grdCloneNode, grdNode);
  1683. }
  1684. grdNode = grdCloneNode;
  1685. }
  1686. var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  1687. if(grdtypeNode != null)
  1688. grdtype = getStyleValue(grdtypeNode.text, "gridtype");
  1689. if(grdtype == "X")
  1690. {
  1691. // X축 그리드의 빈 컬럼을 추가한다.
  1692. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1693. var len = grdList.length;
  1694. var grdNode = "";
  1695. var subRecitemNodeList = "";
  1696. var sublength = 0;
  1697. var subNode = "";
  1698. var tmpNode = "";
  1699. for(var x = 0; x < len; x++)
  1700. {
  1701. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  1702. subRecitemNodeList = grdNode.selectNodes("recitem");
  1703. sublength = subRecitemNodeList.length;
  1704. //var subRecitemNodeList.item(i).selectSingleNode("degnitemnm");
  1705. // recitem의 마지막 컬럼을 복사.
  1706. subNode = subRecitemNodeList.item(sublength-1);
  1707. //var subNode = grdNode.selectSingleNode("recitem");
  1708. tmpNode = subNode.cloneNode(true);
  1709. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  1710. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  1711. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  1712. else
  1713. tmpNode.selectSingleNode("reccnts").text = "";
  1714. tmpNode.selectSingleNode("rectermcd").text = "";
  1715. tmpNode.selectSingleNode("rectermnm").text = "";
  1716. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  1717. if(tmpNode.selectSingleNode("supdegnitemno") == null)
  1718. {
  1719. var supdegnitemnoNode = instance1.createElement("supdegnitemno");
  1720. tmpNode.appendChild(supdegnitemnoNode);
  1721. }
  1722. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  1723. grdNode.appendChild(tmpNode);
  1724. }
  1725. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  1726. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  1727. var grd = viewobj.document.controls("GRD_" + supdegnitemno);
  1728. var cols = grd.cols;
  1729. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  1730. //grd.colAttribute( cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1731. grd.rebuild();
  1732. model.refresh();
  1733. //grd.addColumn("type:input; ref:test_col;");
  1734. //grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1735. continue;
  1736. }
  1737. if(grdNode == null)
  1738. {
  1739. //grdNode = model.instances(0).selectSingleNode(srcPath + "[degnitemno='" + supdegnitemno + "' and rowno='" + rownoNode.text + "']");
  1740. //hidden에 있는 skeleton을 복사한다
  1741. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1742. var CopygrdNode = grdNode.cloneNode(true);
  1743. //로직 분리 (TF버그로 인해 부모에 append하기전에 값을 변경한다.)
  1744. // GRD 인스턴스의 row 갱신
  1745. var subRecitemList = CopygrdNode.selectNodes("recitem");
  1746. for(var idx = 0; idx < subRecitemList.length; idx++)
  1747. {
  1748. var recitemNode = subRecitemList.item(idx);
  1749. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1750. }
  1751. //교체할 대상 gsu를 구한다.
  1752. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1753. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1754. if(destNode == null)
  1755. {
  1756. if(grdtype != "X")
  1757. continue;
  1758. addGridCol(supdegnitemnoNode.text);
  1759. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1760. if(destNode == null)
  1761. continue;
  1762. }
  1763. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1764. CopygrdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1765. var recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1766. if(recNode == null)
  1767. {
  1768. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1769. recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1770. }
  1771. recNode.appendChild(CopygrdNode);
  1772. continue;
  1773. }
  1774. //grd rowno를 갱신한다.
  1775. //grdNode.selectSingleNode("recitem/rowno").text = rownoNode.text;
  1776. //교체할 대상 gsu를 구한다.
  1777. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1778. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1779. if(destNode == null)
  1780. {
  1781. if(grdtype != "X")
  1782. continue;
  1783. addGridCol(supdegnitemnoNode.text, viewobj);
  1784. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1785. if(destNode == null)
  1786. continue;
  1787. }
  1788. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1789. grdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1790. continue;
  1791. }
  1792. // 복사할 대상 노드를 찾은 경우
  1793. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  1794. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1795. }
  1796. else if(degnitemkindNode.text == "CHK")
  1797. {
  1798. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1799. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1800. if(destNode == null)
  1801. continue;
  1802. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  1803. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  1804. var rectermcd = "";
  1805. for(var idx = 0; idx < srcNodeList.length; idx++)
  1806. {
  1807. var node = srcNodeList.item(idx);
  1808. if(idx == 0)
  1809. rectermcd += node.selectSingleNode("rectermcd").text;
  1810. else
  1811. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  1812. }
  1813. destNode.selectSingleNode("rectermcd").text = rectermcd;
  1814. }
  1815. else if(degnitemkindNode.text == "MSL")
  1816. {
  1817. condition = condition + " and colno = '" + colnoNode.text + "'";
  1818. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1819. if(destNode == null)
  1820. continue;
  1821. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1822. }
  1823. else
  1824. {
  1825. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  1826. if(destNode == null)
  1827. continue;
  1828. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1829. //이미지 OCX처리
  1830. if(degnitemkindNode.text == "IMG")
  1831. {
  1832. var degnitemno = degnitemnoNode.text;
  1833. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  1834. if(imgedit == "Y")
  1835. {
  1836. var ctrlid = "IMG_" + degnitemno;
  1837. eval(ctrlid).SetShapeString(reccntsNode.text);
  1838. }
  1839. }
  1840. }
  1841. }
  1842. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  1843. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  1844. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  1845. viewobj.model.refresh();
  1846. }
  1847. /**
  1848. * @desc : Data Clear
  1849. * @id :
  1850. * @event :
  1851. * @return :
  1852. * @authur : 이상현
  1853. */
  1854. function clearData()
  1855. {
  1856. //alert("clear");
  1857. var pageInfo = new PAGEINFO();
  1858. copyNodeset(pageInfo.recRef, pageInfo.initrecRef, "replace");
  1859. //model.removeNodeset(pageInfo.recinfoRef);
  1860. //model.removeNodeset("/root/hidden/recitems/recitem");
  1861. model.removeNodeset(pageInfo.extnrecRef);
  1862. model.removeNodeset(pageInfo.recItemRef2);
  1863. clearImgeData();
  1864. model.refresh();
  1865. }
  1866. function GetImgUrl(imgecd)
  1867. {
  1868. return getActionURI("TRMRF01212") + getUserSessionString() + "&imgecd=" + imgecd;
  1869. //return getActionURL("TRMRF01212") + "&imgecd=" + imgecd;
  1870. }
  1871. /**
  1872. * @desc : 이미지데이터를 clear한다
  1873. * @id :
  1874. * @event :
  1875. * @return :
  1876. * @authur : 박종훈
  1877. * @history:
  1878. 2008-12-02 : 신규생성
  1879. */
  1880. function clearImgeData()
  1881. {
  1882. var pageInfo = new PAGEINFO();
  1883. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  1884. // 공통서식인지 과별서식인지 구분
  1885. var FormInfoNode = instance1.selectNodes(pageInfo.formmastRef);
  1886. var isFormMain = "";
  1887. if(FormInfoNode.length > 0)
  1888. {
  1889. var formmastInfoNode = FormInfoNode.item(0);
  1890. var formprogflag = formmastInfoNode.selectSingleNode("formprogflag").text;
  1891. var formprognm = formmastInfoNode.selectSingleNode("formprognm").text;
  1892. var formkind = formmastInfoNode.selectSingleNode("formkind").text;
  1893. if(formprognm != "-" && formkind == "C" && formprogflag != "-")
  1894. {
  1895. isFormMain = true;
  1896. }
  1897. else
  1898. {
  1899. isFormMain = false;
  1900. }
  1901. }
  1902. for(var i = 0; i < nodeList.length; i++)
  1903. {
  1904. var itemNode = nodeList.item(i);
  1905. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  1906. var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  1907. var degnitemlevlcd = itemNode.selectSingleNode("degnitemlevlcd").text;
  1908. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/itemattrval"), "imgedit");
  1909. if(imgedit != "Y")
  1910. continue;
  1911. var degnattrval = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnattrval");
  1912. var ctrlwidth = getStyleValue(degnattrval, "ctrl.width");
  1913. var ctrlheight = getStyleValue(degnattrval, "ctrl.height");
  1914. var ctrlid = "IMG_" + degnitemno;
  1915. var strShape = eval("IMG_" + degnitemno).DeleteAllShape();
  1916. var Viewmode = eval("IMG_" + degnitemno).GetViewMode();
  1917. if(Viewmode != "1")
  1918. {
  1919. eval("IMG_" + degnitemno).SetViewMode(1);
  1920. }
  1921. if (ctrlwidth != "") // 2011-01-17 경북대 최원돈 예외사항 오류수정
  1922. {
  1923. eval("IMG_" + degnitemno).width = ctrlwidth;
  1924. }
  1925. if (ctrlheight != "") // 2011-01-17 경북대 최원돈 예외사항 오류수정
  1926. {
  1927. eval("IMG_" + degnitemno).height = ctrlheight;
  1928. }
  1929. var domain = getMainDomain();
  1930. var imgurl = GetImgUrl(degnitemcd);
  1931. var imgsrc = domain + imgurl;
  1932. eval("IMG_" + degnitemno).LoadImage(imgsrc);
  1933. }
  1934. }
  1935. /**
  1936. * @desc : 이미지데이터를 가져온다
  1937. * @id :
  1938. * @event :
  1939. * @return :
  1940. * @authur : 이상현
  1941. * @history:
  1942. 2008-11-24
  1943. - 로컬이미지는 공통서식, 과별서식 구분 없이 무조건 저장.
  1944. - 편집가능 DB이미지는 공통서식의 경우 편집을 하지 않으면 Pass
  1945. 과별서식의 경우 편집을 하지 않아도 저장하도록 수정
  1946. */
  1947. var BASE_SHAPE = "<Xvg viewMode='1' zoom='0' width='300' height='300'></Xvg>";
  1948. function getImgeData()
  1949. {
  1950. var pageInfo = new PAGEINFO();
  1951. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  1952. // 공통서식인지 과별서식인지 구분
  1953. var FormInfoNode = instance1.selectNodes(pageInfo.formmastRef);
  1954. var isFormMain = "";
  1955. var formkind = "";
  1956. var formprognm = "";
  1957. var formprogflag = "";
  1958. if(FormInfoNode.length > 0)
  1959. {
  1960. var formmastInfoNode = FormInfoNode.item(0);
  1961. formprogflag = formmastInfoNode.selectSingleNode("formprogflag").text;
  1962. formprognm = formmastInfoNode.selectSingleNode("formprognm").text;
  1963. formkind = formmastInfoNode.selectSingleNode("formkind").text;
  1964. if(formprognm != "-" && formkind == "C" && formprogflag != "-")
  1965. {
  1966. isFormMain = true;
  1967. }
  1968. else if(formkind == "U")
  1969. {
  1970. isFormMain = true; // 공통서식내의 부분 서식.
  1971. }
  1972. else
  1973. {
  1974. isFormMain = false;
  1975. }
  1976. }
  1977. for(var i = 0; i < nodeList.length; i++)
  1978. {
  1979. var itemNode = nodeList.item(i);
  1980. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  1981. var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  1982. var degnitemlevlcd = itemNode.selectSingleNode("degnitemlevlcd").text;
  1983. var degnitemnm = itemNode.selectSingleNode("degnitemnm").text;
  1984. var fstlevlitemcd = itemNode.selectSingleNode("fstlevlitemcd").text;
  1985. var reccnts = itemNode.selectSingleNode("reccnts").text;
  1986. var imgedit = "";
  1987. if(formkind == "U")
  1988. {
  1989. var Tmpdegnitemlevlcd = degnitemlevlcd;
  1990. var Tmpfstlevlitemcd = "";
  1991. if(fstlevlitemcd != "")
  1992. {
  1993. Tmpfstlevlitemcd = fstlevlitemcd.substr(0, 7) + ".";
  1994. Tmpdegnitemlevlcd = Tmpdegnitemlevlcd.setReplaceWord(Tmpfstlevlitemcd, "");
  1995. }
  1996. imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd = '" + Tmpdegnitemlevlcd + "']/itemattrval"), "imgedit");
  1997. }
  1998. else
  1999. imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/itemattrval"), "imgedit");
  2000. if(imgedit != "Y")
  2001. continue;
  2002. var ctrlid = "IMG_" + degnitemno;
  2003. var strShape = eval("IMG_" + degnitemno).GetShapeString();
  2004. var strRecImge = eval("IMG_" + degnitemno).SaveImageBase64();
  2005. var strImgSize = eval("IMG_" + degnitemno).GetImageSizeEx(false); // 이미지의 크기
  2006. var LocalImgNode = "/root/temp2/localimage/" + ctrlid + "/srcimge";
  2007. var LocalYNNode = "/root/temp2/localimage/" + ctrlid + "/LocalYN";
  2008. var LocalDegnitemlevlCDNode = "/root/temp2/localimage/" + ctrlid + "/degnitemlevlcd";
  2009. //var isLocalImge = model.getValue("/root/temp2/localimage");
  2010. var strSrcImge = model.getValue(LocalImgNode);
  2011. var strLocalYN = model.getValue(LocalYNNode);
  2012. var strLocalImgDegnitemlevlcd = model.getValue(LocalDegnitemlevlCDNode);
  2013. /*
  2014. if(degnitemnm == "빈이미지" && reccnts != "")
  2015. {
  2016. // MetaData
  2017. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2018. // recimage
  2019. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2020. }
  2021. */
  2022. if(strLocalYN == "Y") // 로컬이미지 저장 루틴
  2023. {
  2024. if(degnitemlevlcd == strLocalImgDegnitemlevlcd)
  2025. {
  2026. // Image Size
  2027. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/unitnm", strImgSize);
  2028. // MetaData
  2029. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2030. // recimage
  2031. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2032. // srcimage
  2033. var newNode = model.instance1.selectSingleNode(LocalImgNode);
  2034. var srcimgNode = itemNode.selectSingleNode("srcimge");
  2035. if(newNode != null && srcimgNode != null)
  2036. {
  2037. itemNode.replaceChild(newNode, srcimgNode);
  2038. }
  2039. // srcimage
  2040. /*
  2041. var newNode = model.instance1.selectSingleNode(LocalImgNode);
  2042. var srcimgNode = "";
  2043. srcimgNode = itemNode.selectSingleNode("srcimge");
  2044. if(srcimgNode != null) {
  2045. itemNode.replaceChild(newNode, srcimgNode);
  2046. }
  2047. else {
  2048. itemNode.appendChild(newNode);
  2049. }
  2050. */
  2051. // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  2052. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/colno", "FILE");
  2053. // 미리보기시 로컬이미지와 DB이미지를 구분하기 위해 설정
  2054. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/degnitemnm", "LOCALIMG");
  2055. }
  2056. }
  2057. else // DB 이미지 저장 루틴
  2058. {
  2059. /*
  2060. // xvg패턴 제거
  2061. // 편집가능인 이미지에서 편집을 안했을 경우의 메타데이터가 들어가는 경우를 방지하기 위해서임.
  2062. var tmpShape = removeXvgTag(strShape);
  2063. if(tmpShape != "")
  2064. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2065. */
  2066. if(isFormMain == true) // 공통서식은 수정하지 않은 편집가능 이미지인 경우 저장하지 않음.
  2067. {
  2068. var tmpShape = removeXvgTag(strShape);
  2069. if(tmpShape != "")
  2070. {
  2071. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", strShape, true);
  2072. // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  2073. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/colno", "MAST", true);
  2074. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2075. }
  2076. }
  2077. else // 과별서식
  2078. {
  2079. if(degnitemnm == "빈이미지" && strShape == "")
  2080. {
  2081. //itemNode.parentNode.removeChild(itemNode);
  2082. }
  2083. else
  2084. {
  2085. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", strShape, true);
  2086. // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  2087. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/colno", "MAST", true);
  2088. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2089. }
  2090. }
  2091. }
  2092. }
  2093. model.refresh();
  2094. }
  2095. function getImgeData_old2()
  2096. {
  2097. var pageInfo = new PAGEINFO();
  2098. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  2099. for(var i = 0; i < nodeList.length; i++)
  2100. {
  2101. var itemNode = nodeList.item(i);
  2102. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  2103. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/itemattrval"), "imgedit");
  2104. if(imgedit != "Y")
  2105. continue;
  2106. var strShape = eval("IMG_" + degnitemno).GetShapeString();
  2107. var strRecImge = eval("IMG_" + degnitemno).SaveImageBase64();
  2108. // xvg패턴 제거
  2109. var tmpShape = removeXvgTag(strShape);
  2110. var isLocalImge = model.getValue("/root/temp2/localimage");
  2111. if(isLocalImge == "true")
  2112. {
  2113. if(tmpShape != "")
  2114. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2115. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge", strRecImge, true);
  2116. // 로컬이미지 저장
  2117. var newNode = model.instance1.selectSingleNode("/root/rectemp/srcimge");
  2118. var srcimgNode = "";
  2119. srcimgNode = itemNode.selectSingleNode("srcimge");
  2120. if(srcimgNode != null)
  2121. {
  2122. itemNode.replaceChild(newNode, srcimgNode);
  2123. }
  2124. else
  2125. {
  2126. itemNode.appendChild(newNode);
  2127. }
  2128. }
  2129. else
  2130. {
  2131. if(tmpShape != "")
  2132. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2133. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge", strRecImge, true);
  2134. }
  2135. /*
  2136. if(tmpShape != "")
  2137. {
  2138. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2139. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge", strRecImge, true);
  2140. if(isLocalImge == "true")
  2141. {
  2142. //model.makeValue("/root/rectemp/srcimge", strBase64, true);
  2143. var newNode = model.instance1.selectSingleNode("/root/rectemp/srcimge");
  2144. var srcimgNode = "";
  2145. srcimgNode = itemNode.selectSingleNode("srcimge");
  2146. if(srcimgNode != null)
  2147. {
  2148. itemNode.replaceChild(newNode, srcimgNode);
  2149. }
  2150. else
  2151. {
  2152. itemNode.appendChild(newNode);
  2153. }
  2154. //model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/srcimge", strRecImge, true);
  2155. }
  2156. }
  2157. */
  2158. }
  2159. }
  2160. function getImgeData_old()
  2161. {
  2162. var pageInfo = new PAGEINFO();
  2163. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  2164. for(var i = 0; i < nodeList.length; i++)
  2165. {
  2166. var itemNode = nodeList.item(i);
  2167. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  2168. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/itemattrval"), "imgedit");
  2169. if(imgedit != "Y")
  2170. continue;
  2171. var strShape = eval("IMG_" + degnitemno).GetShapeString();
  2172. if(strShape != BASE_SHAPE)
  2173. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape);
  2174. }
  2175. }
  2176. /**
  2177. * @desc : 메타데이터에서 <xvg> 태그를 삭제한다.
  2178. * @id :
  2179. * @event :
  2180. * @return :
  2181. * @authur : 이경희
  2182. */
  2183. function removeXvgTag(metadata)
  2184. {
  2185. var strMeta = metadata;
  2186. var grpexpSt = new RegExp('(<xvg[^<>]+>)', 'igm');
  2187. var grpexpEd = new RegExp('(</xvg>)', 'igm');
  2188. if (grpexpSt.test(strMeta) == true)
  2189. {
  2190. strMeta = strMeta.replace(grpexpSt, '');
  2191. }
  2192. if (grpexpEd.test(strMeta) == true)
  2193. {
  2194. strMeta = strMeta.replace(grpexpEd, '');
  2195. }
  2196. return strMeta;
  2197. }
  2198. /**
  2199. * @desc : 저장할 기록정보를 가져온다
  2200. * @id :
  2201. * @event :
  2202. * @return :
  2203. * @authur : 이상현
  2204. */
  2205. function getSaveData(targetPath, appendMode, pmodel, pageInfo, mode)
  2206. {
  2207. if(mode == null)
  2208. mode = "";
  2209. if(mode == "all")
  2210. getSaveDataAll(targetPath, appendMode, pmodel, pageInfo);
  2211. else
  2212. getSaveDataVal(targetPath, appendMode, pmodel, pageInfo);
  2213. }
  2214. /**
  2215. * @desc : 저장할 기록정보를 모두 가져온다
  2216. * @id :
  2217. * @event :
  2218. * @return :
  2219. * @authur : 이상현
  2220. */
  2221. function getSaveDataAll(targetPath, appendMode, pmodel, pageInfo)
  2222. {
  2223. if(pageInfo == null)
  2224. pageInfo = new PAGEINFO();
  2225. if(pmodel == null)
  2226. pmodel == model;
  2227. //이미지ocx에 있는 annotation 정보 grep
  2228. //getImgeData();
  2229. model.removeNodeset(pageInfo.savedInfoRef2);
  2230. model.makeValue(pageInfo.savedInfoRef2, "");
  2231. //getGridSaveData(pageInfo);
  2232. var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[degnitemkind != 'GRD' and degnitemkind != 'IMG']");
  2233. //var condition = "";
  2234. for(var i = 0; i < nodeList.length; i++)
  2235. {
  2236. var condition = "";
  2237. var itemsNode = nodeList.item(i);
  2238. var degnitemnoNode = itemsNode.selectSingleNode("degnitemno");
  2239. if(degnitemnoNode == null)
  2240. continue;
  2241. var rowCondition = "";
  2242. if(condition == "")
  2243. condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2244. else
  2245. condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2246. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2247. if(supdegnitemno != "")
  2248. condition = getSaveDataParent(supdegnitemno, condition);
  2249. if(condition != "")
  2250. copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2251. condAll += condition;
  2252. }
  2253. //if(condition != "")
  2254. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2255. getCheckSaveData(pageInfo);
  2256. if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2257. {
  2258. if(pageInfo.formCd != "")
  2259. {
  2260. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2261. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2262. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2263. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2264. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2265. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2266. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2267. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2268. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2269. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2270. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2271. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2272. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2273. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2274. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2275. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2276. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2277. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2278. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2279. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2280. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2281. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2282. }
  2283. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2284. }
  2285. }
  2286. /**
  2287. * @desc : 저장할 기록정보 값을 가져온다
  2288. * @id :
  2289. * @event :
  2290. * @return :
  2291. * @authur : 이상현, 20100209, 주희경 수정
  2292. */
  2293. function getSaveDataVal(targetPath, appendMode, pmodel, pageInfo)
  2294. {
  2295. if(pageInfo == null)
  2296. pageInfo = new PAGEINFO();
  2297. if(pmodel == null)
  2298. pmodel == model;
  2299. //이미지ocx에 있는 annotation 정보 grep
  2300. getImgeData();
  2301. //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  2302. model.removeNodeset(pageInfo.savedInfoRef2);
  2303. model.makeValue(pageInfo.savedInfoRef2, "");
  2304. getGridSaveData(pageInfo);
  2305. /////////////////////////////
  2306. // 2010.02.08, 주희경 수정
  2307. // 기본서식 기록 데이터가 없고 [추가기록, 이미지, 가계도, 확장서식]의 데이터가 있는경우 부분서식 타이틀 저장을 위해 체크 및 데이터 셋팅
  2308. var etcrecNodeList = model.instances(0).selectNodes(pageInfo.etcrecItemRef+ "/recitem[rectermcd != '' or reccnts != '']");
  2309. //추가기록이 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2310. if ( etcrecNodeList.length > 0 )
  2311. {
  2312. fSetFormRecItemHeader(pageInfo, etcrecNodeList, false);
  2313. }
  2314. var imgrecNodeList = model.instances(0).selectNodes(pageInfo.imgerecItemRef+ "[rectermcd != '' or reccnts != '']");
  2315. //이미지가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2316. if ( imgrecNodeList.length > 0 )
  2317. {
  2318. fSetFormRecItemHeader(pageInfo, imgrecNodeList, false);
  2319. }
  2320. var fmyrecNodeList = model.instances(0).selectNodes(pageInfo.fmyrecItemRef+ "/recitem[rectermcd != '' or reccnts != '']");
  2321. //가계도가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2322. if ( fmyrecNodeList.length > 0 )
  2323. {
  2324. fSetFormRecItemHeader(pageInfo, fmyrecNodeList, false);
  2325. }
  2326. var extnecNodeList = model.instances(0).selectNodes(pageInfo.extnrecRef+ "/recitem[rectermcd != '' or reccnts != '']");
  2327. //확장서식 데이터가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2328. if ( extnecNodeList.length > 0 )
  2329. {
  2330. fSetFormRecItemHeader(pageInfo, extnecNodeList, false);
  2331. }
  2332. //
  2333. /////////////////////////////////////////////
  2334. // 그리드 이외의 아이템 노드리스트를 가져온다.
  2335. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '' or srcimge != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2336. var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2337. //////////////////////////
  2338. // 2010.02.08, 주희경 수정
  2339. // 기본 서식의 타이틀에 셋팅한 데이터 원복
  2340. //추가기록, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2341. if ( etcrecNodeList.length > 0 )
  2342. fSetFormRecItemHeader(pageInfo, etcrecNodeList, true);
  2343. //이미지, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2344. if ( imgrecNodeList.length > 0 )
  2345. fSetFormRecItemHeader(pageInfo, imgrecNodeList, true);
  2346. //가계도, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2347. if ( fmyrecNodeList.length > 0 )
  2348. fSetFormRecItemHeader(pageInfo, fmyrecNodeList, true);
  2349. //확장서식, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2350. if ( extnecNodeList.length > 0 )
  2351. fSetFormRecItemHeader(pageInfo, extnecNodeList, true);
  2352. //
  2353. //////////////////////////////
  2354. // grdClone은 <grid> 의 row 하나를 뜻함.
  2355. for(var i = 0; i < nodeList.length; i++)
  2356. {
  2357. var condition = "";
  2358. var itemsNode = nodeList.item(i); // 값이 있는 단일 노드
  2359. var degnitemnoNode = itemsNode.selectSingleNode("degnitemno"); // itemsNode의 degnitemno값
  2360. var degnitemnmNode = itemsNode.selectSingleNode("degnitemnm"); // itemsNode의 degnitemnm값
  2361. var degnitemkindNode = itemsNode.selectSingleNode("degnitemkind"); // itemsNode의 degnitemkind값
  2362. var RecCntsNode = itemsNode.selectSingleNode("reccnts"); // itemsNode의 reccnts값
  2363. var recimgeNode = itemsNode.selectSingleNode("recimge"); // itemsNode의 reccnts값
  2364. var subrecrefcdNode = itemsNode.selectSingleNode("recrefcd");
  2365. var subrecitemnmNode = itemsNode.selectSingleNode("recitemnm");
  2366. var subtermcdNode = itemsNode.selectSingleNode("rectermcd");
  2367. var subfstlevlcdNode = itemsNode.selectSingleNode("fstlevlitemcd");
  2368. var sublevlcdNode = itemsNode.selectSingleNode("degnitemlevlcd");
  2369. var sublevlnoNode = itemsNode.selectSingleNode("degnitemlevlno");
  2370. if(degnitemnoNode == null)
  2371. continue;
  2372. if(degnitemkindNode.text == "IMG" && degnitemnmNode.text == "빈이미지" && RecCntsNode.text != "")
  2373. {
  2374. var tmpMeta = removeXvgTag(RecCntsNode.text);
  2375. if( tmpMeta == "")
  2376. continue;
  2377. }
  2378. var rowCondition = "";
  2379. var srchno = "'" + degnitemnoNode.text + "'";
  2380. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  2381. {
  2382. if(condition == "")
  2383. condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2384. else
  2385. condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2386. }
  2387. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2388. if(supdegnitemno != "" && supdegnitemno != "0")
  2389. condition = getSaveDataParent(supdegnitemno, condition);
  2390. if(condition != "")
  2391. {
  2392. copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2393. // MSL-SSU 데이터 체크
  2394. //var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind != 'IMG' and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2395. var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind = 'MSL']");
  2396. for(var idx = 0; idx < nodelist.length; idx++)
  2397. {
  2398. var recitemNode = nodelist.item(idx);
  2399. var degnitemnm = recitemNode.selectSingleNode("degnitemnm").text;
  2400. var degnitemno = recitemNode.selectSingleNode("degnitemno").text;
  2401. var degnitemkind = recitemNode.selectSingleNode("degnitemkind").text;
  2402. var degnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text;
  2403. var rectermcd = recitemNode.selectSingleNode("rectermcd").text;
  2404. var rectermnm = recitemNode.selectSingleNode("rectermnm").text;
  2405. var reccnts = recitemNode.selectSingleNode("reccnts").text;
  2406. var rowno = recitemNode.selectSingleNode("rowno").text;
  2407. var colno = recitemNode.selectSingleNode("colno").text;
  2408. /*
  2409. var degncntrviewflag = model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/degncntrviewflag");
  2410. if(degncntrviewflag == "L") // 라벨은 삭제대상에서 제외
  2411. continue;
  2412. */
  2413. //if( rectermcd != "" && rectermnm != "")
  2414. if( rectermcd != "")
  2415. continue;
  2416. else if(reccnts != "")
  2417. continue;
  2418. recitemNode.parentNode.removeChild(recitemNode);
  2419. }
  2420. }
  2421. if(condAll == "")
  2422. condAll = condition;
  2423. else
  2424. {
  2425. if(condition != "")
  2426. condAll += " or " + condition;
  2427. }
  2428. }
  2429. condAll = "";
  2430. // 기존 코드
  2431. // grid 이외의 아이템을 pageInfo.savedInfoItemRef2 의 recitem노드 뒤에 이어서 복사한다.
  2432. //if(condition != "")
  2433. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2434. getCheckSaveData(pageInfo);
  2435. if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2436. {
  2437. if(pageInfo.formCd != "")
  2438. {
  2439. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2440. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2441. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2442. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2443. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2444. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2445. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2446. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2447. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2448. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2449. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2450. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2451. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2452. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2453. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2454. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2455. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2456. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2457. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2458. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2459. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2460. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2461. pmodel.makeValue(targetPath + "[" + idx + "]/degnunitcd", "");
  2462. }
  2463. // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  2464. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2465. }
  2466. }
  2467. /**
  2468. * @desc : 기본서식 기록 데이터가 없고 [추가기록, 이미지, 가계도, 확장서식]의 데이터가 있는경우 부분서식 타이틀 저장을 위해 체크 및 데이터 셋팅
  2469. * @id :
  2470. * @event :
  2471. * @return :
  2472. * @authur : 주희경
  2473. */
  2474. function fSetFormRecItemHeader(pageInfo, etcNodeList, resetDataFlag)
  2475. {
  2476. var tmpivwObj = "";
  2477. for(var i = 0; i < etcNodeList.length; i++)
  2478. {
  2479. var etcitemsNode = etcNodeList.item(i); // 값이 있는 단일 노드
  2480. var etcfstlevlitemcd = etcitemsNode.selectSingleNode("fstlevlitemcd").text;
  2481. var etcreccnts = etcitemsNode.selectSingleNode("reccnts").text;
  2482. var orgreccnts = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcfstlevlitemcd + "']/reccnts");
  2483. if (etcreccnts == "")
  2484. etcreccnts = etcitemsNode.selectSingleNode("rectermcd").text;
  2485. tmpivwObj = document.controls("ivw_" + etcfstlevlitemcd);
  2486. if (!resetDataFlag)
  2487. {
  2488. if(tmpivwObj != null && tmpivwObj.src != "")
  2489. {
  2490. var cnt = tmpivwObj.window.javascript.getFormRecItemExist();
  2491. if (cnt < 1 && orgreccnts == "" && etcreccnts != "")
  2492. {
  2493. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcfstlevlitemcd + "']/reccnts", etcreccnts);
  2494. }
  2495. }
  2496. else
  2497. {
  2498. if (orgreccnts == "")
  2499. {
  2500. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcfstlevlitemcd + "']/reccnts", etcreccnts);
  2501. }
  2502. }
  2503. }
  2504. else
  2505. {
  2506. if(tmpivwObj != null && tmpivwObj.src != "")
  2507. {
  2508. var cnt = tmpivwObj.window.javascript.getFormRecItemExist();
  2509. if (cnt < 1 && orgreccnts == etcreccnts && etcreccnts != "")
  2510. {
  2511. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcfstlevlitemcd + "']/reccnts", "");
  2512. }
  2513. }
  2514. else
  2515. {
  2516. if (orgreccnts == etcreccnts)
  2517. {
  2518. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcfstlevlitemcd + "']/reccnts", "");
  2519. }
  2520. }
  2521. }
  2522. }
  2523. }
  2524. /**
  2525. * @desc : 저장할 기록정보 값을 가져온다
  2526. * @id :
  2527. * @event :
  2528. * @return :
  2529. * @authur : 이상현
  2530. */
  2531. function getSaveDataVal_20100211(targetPath, appendMode, pmodel, pageInfo)
  2532. {
  2533. if(pageInfo == null)
  2534. pageInfo = new PAGEINFO();
  2535. if(pmodel == null)
  2536. pmodel == model;
  2537. //이미지ocx에 있는 annotation 정보 grep
  2538. getImgeData();
  2539. //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  2540. model.removeNodeset(pageInfo.savedInfoRef2);
  2541. model.makeValue(pageInfo.savedInfoRef2, "");
  2542. getGridSaveData(pageInfo);
  2543. var etcrecNodeList = model.instances(0).selectNodes(pageInfo.etcrecItemRef+ "/recitem[rectermcd != '' or reccnts != '']");
  2544. var tmpivwObj = "";
  2545. for(var i = 0; i < etcrecNodeList.length; i++)
  2546. {
  2547. var etcrecitemsNode = etcrecNodeList.item(i); // 값이 있는 단일 노드
  2548. var etcrecfstlevlitemcd = etcrecitemsNode.selectSingleNode("fstlevlitemcd").text;
  2549. var etcrecreccnts = etcrecitemsNode.selectSingleNode("reccnts").text;
  2550. var orgreccnts = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts");
  2551. tmpivwObj = document.controls("ivw_" + etcrecfstlevlitemcd);
  2552. if(tmpivwObj != null && tmpivwObj.src != "")
  2553. {
  2554. var cnt = tmpivwObj.window.javascript.getFormRecItemExist();
  2555. if (cnt < 1 && orgreccnts == "" && etcrecreccnts != "")
  2556. {
  2557. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", etcrecreccnts);
  2558. }
  2559. }
  2560. else
  2561. {
  2562. if (orgreccnts == "")
  2563. {
  2564. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", etcrecreccnts);
  2565. }
  2566. }
  2567. }
  2568. // 그리드 이외의 아이템 노드리스트를 가져온다.
  2569. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '' or srcimge != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2570. var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2571. for(var i = 0; i < etcrecNodeList.length; i++)
  2572. {
  2573. var etcrecitemsNode = etcrecNodeList.item(i); // 값이 있는 단일 노드
  2574. var etcrecfstlevlitemcd = etcrecitemsNode.selectSingleNode("fstlevlitemcd").text;
  2575. var etcrecreccnts = etcrecitemsNode.selectSingleNode("reccnts").text;
  2576. var orgreccnts = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts");
  2577. tmpivwObj = document.controls("ivw_" + etcrecfstlevlitemcd);
  2578. if(tmpivwObj != null && tmpivwObj.src != "")
  2579. {
  2580. var cnt = tmpivwObj.window.javascript.getFormRecItemExist();
  2581. if (cnt < 1 && orgreccnts == etcrecreccnts && etcrecreccnts != "")
  2582. {
  2583. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", "");
  2584. }
  2585. }
  2586. else
  2587. {
  2588. if (orgreccnts == etcrecreccnts)
  2589. {
  2590. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", "");
  2591. }
  2592. }
  2593. }
  2594. // grdClone은 <grid> 의 row 하나를 뜻함.
  2595. for(var i = 0; i < nodeList.length; i++)
  2596. {
  2597. var condition = "";
  2598. var itemsNode = nodeList.item(i); // 값이 있는 단일 노드
  2599. var degnitemnoNode = itemsNode.selectSingleNode("degnitemno"); // itemsNode의 degnitemno값
  2600. var degnitemnmNode = itemsNode.selectSingleNode("degnitemnm"); // itemsNode의 degnitemnm값
  2601. var degnitemkindNode = itemsNode.selectSingleNode("degnitemkind"); // itemsNode의 degnitemkind값
  2602. var RecCntsNode = itemsNode.selectSingleNode("reccnts"); // itemsNode의 reccnts값
  2603. var recimgeNode = itemsNode.selectSingleNode("recimge"); // itemsNode의 reccnts값
  2604. var subrecrefcdNode = itemsNode.selectSingleNode("recrefcd");
  2605. var subrecitemnmNode = itemsNode.selectSingleNode("recitemnm");
  2606. var subtermcdNode = itemsNode.selectSingleNode("rectermcd");
  2607. var subfstlevlcdNode = itemsNode.selectSingleNode("fstlevlitemcd");
  2608. var sublevlcdNode = itemsNode.selectSingleNode("degnitemlevlcd");
  2609. var sublevlnoNode = itemsNode.selectSingleNode("degnitemlevlno");
  2610. if(degnitemnoNode == null)
  2611. continue;
  2612. if(degnitemkindNode.text == "IMG" && degnitemnmNode.text == "빈이미지" && RecCntsNode.text != "")
  2613. {
  2614. var tmpMeta = removeXvgTag(RecCntsNode.text);
  2615. if( tmpMeta == "")
  2616. continue;
  2617. }
  2618. var rowCondition = "";
  2619. var srchno = "'" + degnitemnoNode.text + "'";
  2620. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  2621. {
  2622. if(condition == "")
  2623. condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2624. else
  2625. condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2626. }
  2627. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2628. if(supdegnitemno != "" && supdegnitemno != "0")
  2629. condition = getSaveDataParent(supdegnitemno, condition);
  2630. if(condition != "")
  2631. {
  2632. copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2633. // MSL-SSU 데이터 체크
  2634. //var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind != 'IMG' and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2635. var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind = 'MSL']");
  2636. for(var idx = 0; idx < nodelist.length; idx++)
  2637. {
  2638. var recitemNode = nodelist.item(idx);
  2639. var degnitemnm = recitemNode.selectSingleNode("degnitemnm").text;
  2640. var degnitemno = recitemNode.selectSingleNode("degnitemno").text;
  2641. var degnitemkind = recitemNode.selectSingleNode("degnitemkind").text;
  2642. var degnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text;
  2643. var rectermcd = recitemNode.selectSingleNode("rectermcd").text;
  2644. var rectermnm = recitemNode.selectSingleNode("rectermnm").text;
  2645. var reccnts = recitemNode.selectSingleNode("reccnts").text;
  2646. var rowno = recitemNode.selectSingleNode("rowno").text;
  2647. var colno = recitemNode.selectSingleNode("colno").text;
  2648. /*
  2649. var degncntrviewflag = model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/degncntrviewflag");
  2650. if(degncntrviewflag == "L") // 라벨은 삭제대상에서 제외
  2651. continue;
  2652. */
  2653. //if( rectermcd != "" && rectermnm != "")
  2654. if( rectermcd != "")
  2655. continue;
  2656. else if(reccnts != "")
  2657. continue;
  2658. recitemNode.parentNode.removeChild(recitemNode);
  2659. }
  2660. }
  2661. if(condAll == "")
  2662. condAll = condition;
  2663. else
  2664. {
  2665. if(condition != "")
  2666. condAll += " or " + condition;
  2667. }
  2668. }
  2669. condAll = "";
  2670. // 기존 코드
  2671. // grid 이외의 아이템을 pageInfo.savedInfoItemRef2 의 recitem노드 뒤에 이어서 복사한다.
  2672. //if(condition != "")
  2673. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2674. getCheckSaveData(pageInfo);
  2675. if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2676. {
  2677. if(pageInfo.formCd != "")
  2678. {
  2679. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2680. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2681. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2682. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2683. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2684. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2685. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2686. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2687. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2688. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2689. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2690. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2691. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2692. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2693. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2694. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2695. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2696. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2697. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2698. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2699. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2700. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2701. pmodel.makeValue(targetPath + "[" + idx + "]/degnunitcd", "");
  2702. }
  2703. // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  2704. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2705. }
  2706. }
  2707. // MSL-SSU 아이템 저장문제로 백업 2008-12-02
  2708. function getSaveDataVal_old(targetPath, appendMode, pmodel, pageInfo)
  2709. {
  2710. if(pageInfo == null)
  2711. pageInfo = new PAGEINFO();
  2712. if(pmodel == null)
  2713. pmodel == model;
  2714. //이미지ocx에 있는 annotation 정보 grep
  2715. getImgeData();
  2716. //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  2717. model.removeNodeset(pageInfo.savedInfoRef2);
  2718. model.makeValue(pageInfo.savedInfoRef2, "");
  2719. getGridSaveData(pageInfo);
  2720. // 그리드 이외의 아이템 노드리스트를 가져온다.
  2721. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '' or srcimge != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2722. var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2723. // grdClone은 <grid> 의 row 하나를 뜻함.
  2724. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2725. // 2008-07-16 이경희
  2726. // fstLevlItemCd 문제로 인하여 삭제
  2727. /*
  2728. if(nodeList.length >= 1)
  2729. {
  2730. var subNode = nodeList.item(0);
  2731. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  2732. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  2733. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  2734. if(pageInfo.fstLevlItemCd != "")
  2735. {
  2736. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  2737. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  2738. }
  2739. if(pageInfo.fstLevlItemCd != "")
  2740. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2741. }
  2742. */
  2743. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2744. for(var i = 0; i < nodeList.length; i++)
  2745. {
  2746. var condition = "";
  2747. var itemsNode = nodeList.item(i); // 값이 있는 단일 노드
  2748. var degnitemnoNode = itemsNode.selectSingleNode("degnitemno"); // itemsNode의 degnitemno값
  2749. var RecCntsNode = itemsNode.selectSingleNode("reccnts"); // itemsNode의 reccnts값
  2750. var subrecrefcdNode = itemsNode.selectSingleNode("recrefcd");
  2751. var subrecitemnmNode = itemsNode.selectSingleNode("recitemnm");
  2752. var subtermcdNode = itemsNode.selectSingleNode("rectermcd");
  2753. var subfstlevlcdNode = itemsNode.selectSingleNode("fstlevlitemcd");
  2754. var sublevlcdNode = itemsNode.selectSingleNode("degnitemlevlcd");
  2755. var sublevlnoNode = itemsNode.selectSingleNode("degnitemlevlno");
  2756. if(degnitemnoNode == null)
  2757. continue;
  2758. var rowCondition = "";
  2759. var srchno = "'" + degnitemnoNode.text + "'";
  2760. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  2761. {
  2762. if(condition == "")
  2763. condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2764. else
  2765. condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2766. }
  2767. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2768. // 2008-07-16 이경희
  2769. // fstLevlItemCd 문제로 인하여 삭제
  2770. /*
  2771. if(pageInfo.fstLevlItemCd != "")
  2772. {
  2773. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  2774. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  2775. }
  2776. if(pageInfo.fstLevlItemCd != "")
  2777. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2778. */
  2779. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2780. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2781. if(supdegnitemno != "" && supdegnitemno != "0")
  2782. condition = getSaveDataParent(supdegnitemno, condition);
  2783. if(condition != "")
  2784. copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2785. if(condAll == "")
  2786. condAll = condition;
  2787. else
  2788. {
  2789. if(condition != "")
  2790. condAll += " or " + condition;
  2791. }
  2792. }
  2793. condAll = "";
  2794. // 기존 코드
  2795. // grid 이외의 아이템을 pageInfo.savedInfoItemRef2 의 recitem노드 뒤에 이어서 복사한다.
  2796. //if(condition != "")
  2797. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2798. getCheckSaveData(pageInfo);
  2799. if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2800. {
  2801. if(pageInfo.formCd != "")
  2802. {
  2803. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2804. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2805. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2806. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2807. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2808. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2809. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2810. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2811. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2812. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2813. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2814. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2815. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2816. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2817. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2818. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2819. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2820. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2821. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2822. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2823. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2824. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2825. }
  2826. // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  2827. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2828. }
  2829. }
  2830. /**
  2831. * @desc : 그리드의 저장할 기록정보를 가져온다
  2832. * @id :
  2833. * @event :
  2834. * @return :
  2835. * @authur : 이상현
  2836. */
  2837. function getGridSaveData_Old(pageInfo)
  2838. {
  2839. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // + "[degnitemkind = 'GRD']");
  2840. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  2841. {
  2842. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  2843. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  2844. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  2845. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  2846. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  2847. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  2848. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  2849. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  2850. gridtype = "Y";
  2851. if(gridtype == "X")
  2852. {
  2853. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  2854. if(len == 0)
  2855. {
  2856. continue;
  2857. }
  2858. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  2859. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  2860. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  2861. // grdNode는 grid 컨트롤의 한 row 임.
  2862. colCnt = grdNode.selectNodes("recitem").length;
  2863. var grdClone = grdNode.cloneNode(true);
  2864. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  2865. var subNode = subNodeList.item(0);
  2866. var degnitemnm = "";
  2867. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  2868. {
  2869. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  2870. var colno = subNode.selectSingleNode("colno").text;
  2871. if(colno == "-1") {
  2872. model.duplicate(pageInfo.savedInfoRef2, subNode);
  2873. continue;
  2874. }
  2875. if(colno == "0") {
  2876. degnitemnm = subNode.selectSingleNode("reccnts").text;
  2877. continue;
  2878. }
  2879. var reccnts = subNode.selectSingleNode("reccnts").text;
  2880. if(reccnts != "")
  2881. {
  2882. subNode.selectSingleNode("degnitemnm").text = degnitemnm;
  2883. model.duplicate(pageInfo.savedInfoRef2, subNode);
  2884. }
  2885. }
  2886. }
  2887. else if(gridtype == "Y" || gridtype == "G")
  2888. {
  2889. // 그리드 개수
  2890. var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  2891. if(len == 0)
  2892. {
  2893. continue;
  2894. }
  2895. // grdClone은 <grid> 의 row 하나를 뜻함.
  2896. var grdClone = grdNode.cloneNode(true);
  2897. var subNodeList = grdClone.selectNodes("recitem");
  2898. var subNode = subNodeList.item(0);
  2899. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  2900. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  2901. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  2902. if(pageInfo.fstLevlItemCd != "")
  2903. {
  2904. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  2905. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  2906. }
  2907. if(pageInfo.fstLevlItemCd != "")
  2908. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2909. for(var subIdx = 1 ; subIdx < subNodeList.length; subIdx++)
  2910. {
  2911. var subNode = subNodeList.item(subIdx);
  2912. var subkindNode = subNode.selectSingleNode("degnitemkind");
  2913. var subcntsNode = subNode.selectSingleNode("reccnts");
  2914. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  2915. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  2916. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  2917. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  2918. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  2919. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  2920. if(subkindNode.text == "GSL")
  2921. {
  2922. grdClone.removeChild(subNode);
  2923. continue;
  2924. }
  2925. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  2926. {
  2927. grdClone.removeChild(subNode);
  2928. continue;
  2929. }
  2930. if(pageInfo.fstLevlItemCd != "")
  2931. {
  2932. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  2933. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  2934. }
  2935. if(pageInfo.fstLevlItemCd != "")
  2936. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2937. model.duplicate(pageInfo.savedInfoRef2, subNode);
  2938. }
  2939. }
  2940. else if(gridtype == "T")
  2941. {
  2942. //값을 갖지 않는 grid row는 제거한다.
  2943. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  2944. if(len == 0)
  2945. {
  2946. continue;
  2947. }
  2948. var grdClone = grdNode.cloneNode(true);
  2949. var subNodeList = grdClone.selectNodes("recitem");
  2950. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2951. // 공통서식에서 최상위아이템을 찾도록 fstlevlitemcd를 설정한다.
  2952. var subNode = subNodeList.item(0);
  2953. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  2954. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  2955. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  2956. if(pageInfo.fstLevlItemCd != "")
  2957. {
  2958. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  2959. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  2960. }
  2961. if(pageInfo.fstLevlItemCd != "")
  2962. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2963. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2964. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  2965. {
  2966. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  2967. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  2968. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  2969. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  2970. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  2971. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  2972. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  2973. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  2974. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  2975. if(subkindNode.text == "GSL")
  2976. {
  2977. grdClone.removeChild(subNode);
  2978. continue;
  2979. }
  2980. if(gridtype == "T")
  2981. {
  2982. //축에 있는 값은 제거한다.
  2983. //var subKindNode = subNode.selectSingleNode("degnitemkind");
  2984. if(subkindNode.text == "GXB" || subkindNode.text == "GYB")
  2985. {
  2986. subReccntsNode = subNode.selectSingleNode("reccnts");
  2987. subReccntsNode.text = "";
  2988. subRectermcdNode = subNode.selectSingleNode("rectermcd");
  2989. subRectermcdNode.text = "";
  2990. }
  2991. }
  2992. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  2993. {
  2994. grdClone.removeChild(subNode); // 값이 없는 노드는 삭제함.
  2995. continue;
  2996. }
  2997. if(pageInfo.fstLevlItemCd != "")
  2998. {
  2999. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3000. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3001. }
  3002. if(pageInfo.fstLevlItemCd != "")
  3003. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3004. // this.savedInfoRef2 = "/root/hidden/savedinfo";
  3005. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3006. }
  3007. }
  3008. }
  3009. }
  3010. /**
  3011. * @desc : 그리드의 저장할 기록정보를 가져온다
  3012. * @id :
  3013. * @event :
  3014. * @return :
  3015. * @authur : 이상현
  3016. * @history:
  3017. 2008-11-28 이경희
  3018. -그리드 저장시 셀에 입력된 값이 있으면 그리드 구조 통채로 저장하며, 입력된 값이 없으면 저장하지 않는다.
  3019. - Y, G축 DGN, OPN, CCN 저장시 그리드 제목은 처음 하나만 저장되는 기존 구조를 따르면서 내용은 모두 저장하도록 수정
  3020. 2010-03-24 주희경
  3021. - 그리드 저장 시 값을 select 할 때 그리드 기록 데이터의 순서가 꼬인 구조로 되어 있어 그룹별로 기록 데이터를 copy하도록 수정
  3022. 2010-04-14 김달현
  3023. - 그리드의 degnitemno별로 모으는 작업 할 때에 indexOf제외조건 오류 수정
  3024. */
  3025. function getGridSaveData(pageInfo)
  3026. {
  3027. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // "/root/main/recinfo/grid";
  3028. var groupKeys = "";
  3029. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3030. {
  3031. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3032. var degnitemno = grdNode.selectSingleNode("degnitemno").text;
  3033. //2010.04.14 dhkim indexOf제외로 인한 오류 주석처리
  3034. /*
  3035. if(groupKeys.indexOf(degnitemno) == -1)
  3036. {
  3037. groupKeys = groupKeys + degnitemno + ",";
  3038. }
  3039. */
  3040. groupKeys = groupKeys + degnitemno + ",";
  3041. }
  3042. var arrGroupKey = groupKeys.split(",");
  3043. //2010.04.22 dhkim 배열을 순서대로 정렬한다.(순서대로 정렬되어있지 않은 경우는 skip시키지 않아 정렬 로직 추가)
  3044. if(arrGroupKey.length > 0){
  3045. var tmp;
  3046. for(var i = arrGroupKey.length; i >= 0; i--){
  3047. for(var j = 0; j < i; j++){
  3048. if(Number(arrGroupKey[j]) > Number(arrGroupKey[j+1])){
  3049. tmp = arrGroupKey[j];
  3050. arrGroupKey[j] = arrGroupKey[j+1];
  3051. arrGroupKey[j+1] = tmp;
  3052. }
  3053. }
  3054. }
  3055. groupKeys = "";
  3056. for(var i = 0; i < arrGroupKey.length; i++){
  3057. if(arrGroupKey.length -1 == i){
  3058. groupKeys += arrGroupKey[i];
  3059. }else{
  3060. groupKeys += arrGroupKey[i] + ",";
  3061. }
  3062. }
  3063. }
  3064. //2010.04.14 dhkim
  3065. //(기존의 indexOf로 string을 검색했을 때 degnitemno가 중복된 경우의 처리가 불가능함)
  3066. //ex) degnitemno가 7, 17, 27 등으로 들어가 있는 경우 indexOf에서 제외되어 7값만 가져가게됨.
  3067. //루프를 돌면서 key값이 같은게 있으면 skip시키면서 새로운 array를 만들어준다.
  3068. var tmpKey = ""; var _tmpKey;
  3069. groupKeys = "";
  3070. for(var x = 0; x < arrGroupKey.length ; x++){
  3071. _tmpKey = arrGroupKey[x];
  3072. if(tmpKey != _tmpKey){
  3073. groupKeys = groupKeys + _tmpKey + ",";
  3074. }
  3075. tmpKey = _tmpKey;
  3076. }
  3077. //if(groupKeys != null && groupKeys.length != 0 && groupKeys.indexOf(",") != -1){
  3078. // groupKeys = groupKeys.substring(0, groupKeys.length-1);
  3079. //}
  3080. arrGroupKey = groupKeys.split(",");
  3081. for (i=0; i<arrGroupKey.length-1; i++)
  3082. {
  3083. tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef+"[degnitemno='"+arrGroupKey[i]+"']"); // "/root/main/recinfo/grid";
  3084. getGridData(pageInfo, tmpGrdList);
  3085. }
  3086. }
  3087. /**
  3088. * @desc : 그리드의 저장할 기록정보를 가져온다
  3089. * @id :
  3090. * @event :
  3091. * @return :
  3092. * @authur : 주희경
  3093. * @history:
  3094. 2010-03-24 주희경
  3095. - 그리드 저장 시 값을 select 할 때 그리드 기록 데이터의 순서가 꼬인 구조로 되어 있어 그룹별로 기록 데이터를 copy하도록 함수 분리
  3096. */
  3097. function getGridData(pageInfo, tmpGrdList)
  3098. {
  3099. var isGrd = false;
  3100. var tmpfstlevlitemcd = "";
  3101. var tmpdegnitemlevlcd = "";
  3102. var copycnt = 0;
  3103. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3104. {
  3105. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3106. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3107. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3108. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3109. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3110. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3111. var orgdegnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/orgdegnitemkind");
  3112. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3113. var fstlevlitemcd = grdNode.selectSingleNode("recitem/fstlevlitemcd").text;
  3114. if(tmpdegnitemlevlcd != degnitemlevlcd)
  3115. {
  3116. tmpdegnitemlevlcd = degnitemlevlcd;
  3117. isGrd = false;
  3118. }
  3119. // 진단명, 수술명, 주호소인 경우 그리드 타입은 Y축 누적
  3120. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3121. gridtype = "Y";
  3122. if(gridtype == "X")
  3123. {
  3124. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3125. if(len == 0)
  3126. {
  3127. continue;
  3128. }
  3129. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3130. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3131. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3132. // grdNode는 grid 컨트롤의 한 row 임.
  3133. colCnt = grdNode.selectNodes("recitem").length;
  3134. var grdClone = grdNode.cloneNode(true);
  3135. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3136. var subNode = subNodeList.item(0);
  3137. var degnitemnm = "";
  3138. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3139. {
  3140. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3141. // 2009.05.04 이경희
  3142. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3143. //
  3144. if(subNode.selectSingleNode("degnunitcd") == null)
  3145. {
  3146. var degnunitcdNode = instance1.createElement("degnunitcd");
  3147. subNode.appendChild(degnunitcdNode);
  3148. }
  3149. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3150. copycnt++;
  3151. }
  3152. }
  3153. else if(gridtype == "Y" || gridtype == "G")
  3154. {
  3155. // 입력된 그리드 개수가 있는지 체크
  3156. //var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3157. var len = 0;
  3158. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN" ||
  3159. orgdegnitemkind == "DGN" || orgdegnitemkind == "OPN" || orgdegnitemkind == "CCN")
  3160. {
  3161. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' or rectermnm != '') or reccnts != '')]").length;
  3162. }
  3163. else
  3164. {
  3165. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' and rectermnm != '') or reccnts != '')]").length;
  3166. }
  3167. var tmllen = grdNode.selectNodes("recitem[degnitemkind != 'GRD' and degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' and rectermnm == '') or (rectermcd == '' and rectermnm == '' and reccnts == ''))]").length;
  3168. if(len == 0 && tmllen > 0)
  3169. {
  3170. continue;
  3171. }
  3172. // grdClone은 <grid> 의 row 하나를 뜻함.
  3173. var grdClone = grdNode.cloneNode(true);
  3174. var subNodeList = grdClone.selectNodes("recitem[orgdegnitemkind != 'CCN' and orgdegnitemkind != 'DGN' and orgdegnitemkind != 'OPN'");
  3175. var subNode = subNodeList.item(0);
  3176. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3177. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3178. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3179. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3180. //2008-07-28 박종훈 (그리드의 GRD이름이 한번만 저장되게하기 위함, 처음 한번만 저장되고 그다음 row부터는 저장되지 않도록..)
  3181. var subIdx = 0;
  3182. if (isGrd)
  3183. {
  3184. subIdx = 1;
  3185. }
  3186. //for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3187. for(subIdx; subIdx < subNodeList.length; subIdx++)
  3188. {
  3189. var subNode = subNodeList.item(subIdx);
  3190. if (subNode.selectSingleNode("degnitemkind").text != "GRD" && subNode.selectSingleNode("rectermcd").text == "" && subNode.selectSingleNode("rectermnm").text == "" && subNode.selectSingleNode("reccnts").text == "")
  3191. {
  3192. }
  3193. else
  3194. {
  3195. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3196. var subcntsNode = subNode.selectSingleNode("reccnts");
  3197. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3198. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3199. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3200. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3201. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3202. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3203. var orgdegnitemkind = subNode.selectSingleNode("orgdegnitemkind");
  3204. var rownoNode = subNode.selectSingleNode("rowno");
  3205. var colnoNode = subNode.selectSingleNode("colno");
  3206. //다음 노드의 colno를 알기 위한 임시 노드 리스트(2008-07-28 박종훈)
  3207. //colno가 -1일 경우에만 GRD요소
  3208. var subNodeTmp = subNodeList.item(subIdx + 1);
  3209. if(subNodeTmp != null)
  3210. {
  3211. var tmpcolno = parseInt(subNodeTmp.selectSingleNode("colno").text);
  3212. var tmprowno = parseInt(subNodeTmp.selectSingleNode("rowno").text);
  3213. }
  3214. //////////////////////////////////////////////////////////////////
  3215. // 2009.05.04 이경희
  3216. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3217. //
  3218. if(subNode.selectSingleNode("degnunitcd") == null)
  3219. {
  3220. var degnunitcdNode = instance1.createElement("degnunitcd");
  3221. subNode.appendChild(degnunitcdNode);
  3222. }
  3223. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3224. copycnt++;
  3225. if(tmpcolno == -1 && tmprowno == 0)
  3226. {
  3227. isGrd = false;
  3228. }
  3229. else
  3230. {
  3231. isGrd = true;
  3232. }
  3233. }
  3234. }
  3235. }
  3236. else if(gridtype == "T")
  3237. {
  3238. //값을 갖지 않는 grid row는 제거한다.
  3239. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3240. if(len == 0)
  3241. {
  3242. continue;
  3243. }
  3244. var grdClone = grdNode.cloneNode(true);
  3245. var subNodeList = grdClone.selectNodes("recitem");
  3246. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3247. {
  3248. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3249. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3250. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3251. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3252. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3253. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3254. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3255. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3256. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3257. if(subkindNode.text == "GSL")
  3258. {
  3259. grdClone.removeChild(subNode);
  3260. continue;
  3261. }
  3262. // 2009.05.04 이경희
  3263. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3264. //
  3265. if(subNode.selectSingleNode("degnunitcd") == null)
  3266. {
  3267. var degnunitcdNode = instance1.createElement("degnunitcd");
  3268. subNode.appendChild(degnunitcdNode);
  3269. }
  3270. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3271. copycnt++;
  3272. }
  3273. }
  3274. }
  3275. return copycnt;
  3276. }
  3277. /**
  3278. * @desc : 그리드의 저장할 기록정보를 가져온다
  3279. * @id :
  3280. * @event :
  3281. * @return :
  3282. * @authur : 이상현
  3283. * @history:
  3284. 2008-11-28 이경희
  3285. -그리드 저장시 셀에 입력된 값이 있으면 그리드 구조 통채로 저장하며, 입력된 값이 없으면 저장하지 않는다.
  3286. - Y, G축 DGN, OPN, CCN 저장시 그리드 제목은 처음 하나만 저장되는 기존 구조를 따르면서 내용은 모두 저장하도록 수정
  3287. */
  3288. function getGridSaveData_old_20100324(pageInfo)
  3289. {
  3290. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // "/root/main/recinfo/grid";
  3291. var isGrd = false;
  3292. var tmpfstlevlitemcd = "";
  3293. var tmpdegnitemlevlcd = "";
  3294. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3295. {
  3296. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3297. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3298. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3299. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3300. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3301. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3302. var orgdegnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/orgdegnitemkind");
  3303. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3304. var fstlevlitemcd = grdNode.selectSingleNode("recitem/fstlevlitemcd").text;
  3305. if(tmpdegnitemlevlcd != degnitemlevlcd)
  3306. {
  3307. tmpdegnitemlevlcd = degnitemlevlcd;
  3308. isGrd = false;
  3309. }
  3310. // 진단명, 수술명, 주호소인 경우 그리드 타입은 Y축 누적
  3311. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3312. gridtype = "Y";
  3313. if(gridtype == "X")
  3314. {
  3315. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3316. if(len == 0)
  3317. {
  3318. continue;
  3319. }
  3320. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3321. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3322. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3323. // grdNode는 grid 컨트롤의 한 row 임.
  3324. colCnt = grdNode.selectNodes("recitem").length;
  3325. var grdClone = grdNode.cloneNode(true);
  3326. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3327. var subNode = subNodeList.item(0);
  3328. var degnitemnm = "";
  3329. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3330. {
  3331. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3332. // 2009.05.04 이경희
  3333. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3334. //
  3335. if(subNode.selectSingleNode("degnunitcd") == null)
  3336. {
  3337. var degnunitcdNode = instance1.createElement("degnunitcd");
  3338. subNode.appendChild(degnunitcdNode);
  3339. }
  3340. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3341. }
  3342. }
  3343. else if(gridtype == "Y" || gridtype == "G")
  3344. {
  3345. // 입력된 그리드 개수가 있는지 체크
  3346. //var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3347. var len = 0;
  3348. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN" ||
  3349. orgdegnitemkind == "DGN" || orgdegnitemkind == "OPN" || orgdegnitemkind == "CCN")
  3350. {
  3351. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' or rectermnm != '') or reccnts != '')]").length;
  3352. }
  3353. else
  3354. {
  3355. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' and rectermnm != '') or reccnts != '')]").length;
  3356. }
  3357. var tmllen = grdNode.selectNodes("recitem[degnitemkind != 'GRD' and degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' and rectermnm == '') or (rectermcd == '' and rectermnm == '' and reccnts == ''))]").length;
  3358. if(len == 0 && tmllen > 0)
  3359. {
  3360. continue;
  3361. }
  3362. // grdClone은 <grid> 의 row 하나를 뜻함.
  3363. var grdClone = grdNode.cloneNode(true);
  3364. var subNodeList = grdClone.selectNodes("recitem[orgdegnitemkind != 'CCN' and orgdegnitemkind != 'DGN' and orgdegnitemkind != 'OPN'");
  3365. var subNode = subNodeList.item(0);
  3366. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3367. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3368. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3369. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3370. //2008-07-28 박종훈 (그리드의 GRD이름이 한번만 저장되게하기 위함, 처음 한번만 저장되고 그다음 row부터는 저장되지 않도록..)
  3371. var subIdx = 0;
  3372. if (isGrd)
  3373. {
  3374. subIdx = 1;
  3375. }
  3376. //for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3377. for(subIdx; subIdx < subNodeList.length; subIdx++)
  3378. {
  3379. var subNode = subNodeList.item(subIdx);
  3380. if (subNode.selectSingleNode("degnitemkind").text != "GRD" && subNode.selectSingleNode("rectermcd").text == "" && subNode.selectSingleNode("rectermnm").text == "" && subNode.selectSingleNode("reccnts").text == "")
  3381. {
  3382. }
  3383. else
  3384. {
  3385. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3386. var subcntsNode = subNode.selectSingleNode("reccnts");
  3387. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3388. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3389. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3390. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3391. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3392. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3393. var orgdegnitemkind = subNode.selectSingleNode("orgdegnitemkind");
  3394. var rownoNode = subNode.selectSingleNode("rowno");
  3395. var colnoNode = subNode.selectSingleNode("colno");
  3396. //다음 노드의 colno를 알기 위한 임시 노드 리스트(2008-07-28 박종훈)
  3397. //colno가 -1일 경우에만 GRD요소
  3398. var subNodeTmp = subNodeList.item(subIdx + 1);
  3399. if(subNodeTmp != null)
  3400. {
  3401. var tmpcolno = parseInt(subNodeTmp.selectSingleNode("colno").text);
  3402. var tmprowno = parseInt(subNodeTmp.selectSingleNode("rowno").text);
  3403. }
  3404. //////////////////////////////////////////////////////////////////
  3405. // 2009.05.04 이경희
  3406. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3407. //
  3408. if(subNode.selectSingleNode("degnunitcd") == null)
  3409. {
  3410. var degnunitcdNode = instance1.createElement("degnunitcd");
  3411. subNode.appendChild(degnunitcdNode);
  3412. }
  3413. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3414. if(tmpcolno == -1 && tmprowno == 0)
  3415. {
  3416. isGrd = false;
  3417. }
  3418. else
  3419. {
  3420. isGrd = true;
  3421. }
  3422. }
  3423. }
  3424. }
  3425. else if(gridtype == "T")
  3426. {
  3427. //값을 갖지 않는 grid row는 제거한다.
  3428. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3429. if(len == 0)
  3430. {
  3431. continue;
  3432. }
  3433. var grdClone = grdNode.cloneNode(true);
  3434. var subNodeList = grdClone.selectNodes("recitem");
  3435. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3436. {
  3437. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3438. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3439. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3440. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3441. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3442. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3443. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3444. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3445. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3446. if(subkindNode.text == "GSL")
  3447. {
  3448. grdClone.removeChild(subNode);
  3449. continue;
  3450. }
  3451. // 2009.05.04 이경희
  3452. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3453. //
  3454. if(subNode.selectSingleNode("degnunitcd") == null)
  3455. {
  3456. var degnunitcdNode = instance1.createElement("degnunitcd");
  3457. subNode.appendChild(degnunitcdNode);
  3458. }
  3459. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3460. }
  3461. }
  3462. }
  3463. }
  3464. function getGridSaveData_old(pageInfo)
  3465. {
  3466. // "/root/main/recinfo/grid";
  3467. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // + "[degnitemkind = 'GRD']");
  3468. var isGrd = false;
  3469. var tmpfstlevlitemcd = "";
  3470. var tmpdegnitemlevlcd = "";
  3471. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3472. {
  3473. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3474. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3475. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3476. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3477. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3478. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3479. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3480. var fstlevlitemcd = grdNode.selectSingleNode("recitem/fstlevlitemcd").text;
  3481. //그리드가 바뀔때 첫번째 GRD항목의 명칭을 저장하기 위한 처리
  3482. /*
  3483. if(tmpfstlevlitemcd != fstlevlitemcd)
  3484. {
  3485. tmpfstlevlitemcd = fstlevlitemcd;
  3486. isGrd = false;
  3487. }
  3488. */
  3489. if(tmpdegnitemlevlcd != degnitemlevlcd)
  3490. {
  3491. tmpdegnitemlevlcd = degnitemlevlcd;
  3492. isGrd = false;
  3493. }
  3494. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3495. gridtype = "Y";
  3496. if(gridtype == "X")
  3497. {
  3498. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3499. if(len == 0)
  3500. {
  3501. continue;
  3502. }
  3503. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3504. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3505. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3506. // grdNode는 grid 컨트롤의 한 row 임.
  3507. colCnt = grdNode.selectNodes("recitem").length;
  3508. var grdClone = grdNode.cloneNode(true);
  3509. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3510. var subNode = subNodeList.item(0);
  3511. var degnitemnm = "";
  3512. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3513. {
  3514. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3515. var colno = subNode.selectSingleNode("colno").text;
  3516. if(colno == "-1") {
  3517. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3518. continue;
  3519. }
  3520. if(colno == "0") {
  3521. degnitemnm = subNode.selectSingleNode("reccnts").text;
  3522. continue;
  3523. }
  3524. var reccnts = subNode.selectSingleNode("reccnts").text;
  3525. if(reccnts != "")
  3526. {
  3527. subNode.selectSingleNode("degnitemnm").text = degnitemnm;
  3528. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3529. }
  3530. }
  3531. }
  3532. else if(gridtype == "Y" || gridtype == "G")
  3533. {
  3534. // 그리드 개수
  3535. var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3536. if(len == 0)
  3537. {
  3538. continue;
  3539. }
  3540. // grdClone은 <grid> 의 row 하나를 뜻함.
  3541. var grdClone = grdNode.cloneNode(true);
  3542. var subNodeList = grdClone.selectNodes("recitem[orgdegnitemkind != 'CCN' and orgdegnitemkind != 'DGN' and orgdegnitemkind != 'OPN'");
  3543. var subNode = subNodeList.item(0);
  3544. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3545. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3546. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3547. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3548. // 2008-007-16 이경희
  3549. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3550. /*
  3551. if(pageInfo.fstLevlItemCd != "")
  3552. {
  3553. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  3554. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  3555. }
  3556. if(pageInfo.fstLevlItemCd != "")
  3557. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3558. */
  3559. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3560. //2008-07-28 박종훈 (그리드의 GRD이름이 한번만 저장되게하기 위함, 처음 한번만 저장되고 그다음 row부터는 저장되지 않도록..)
  3561. var subIdx = 0;
  3562. if (isGrd)
  3563. {
  3564. subIdx = 1;
  3565. }
  3566. //for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3567. for(subIdx; subIdx < subNodeList.length; subIdx++)
  3568. {
  3569. var subNode = subNodeList.item(subIdx);
  3570. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3571. var subcntsNode = subNode.selectSingleNode("reccnts");
  3572. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3573. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3574. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3575. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3576. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3577. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3578. var orgdegnitemkind = subNode.selectSingleNode("orgdegnitemkind");
  3579. var rownoNode = subNode.selectSingleNode("rowno");
  3580. var colnoNode = subNode.selectSingleNode("colno");
  3581. //다음 노드의 colno를 알기 위한 임시 노드 리스트(2008-07-28 박종훈)
  3582. //colno가 -1일 경우에만 GRD요소
  3583. var subNodeTmp = subNodeList.item(subIdx + 1);
  3584. if(subNodeTmp != null)
  3585. {
  3586. var tmpcolno = parseInt(subNodeTmp.selectSingleNode("colno").text);
  3587. var tmprowno = parseInt(subNodeTmp.selectSingleNode("rowno").text);
  3588. }
  3589. //////////////////////////////////////////////////////////////////
  3590. if(subkindNode.text == "GSL")
  3591. {
  3592. grdClone.removeChild(subNode);
  3593. continue;
  3594. }
  3595. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  3596. {
  3597. if(colnoNode.text != 0)
  3598. {
  3599. grdClone.removeChild(subNode);
  3600. continue;
  3601. }
  3602. }
  3603. if(orgdegnitemkind != null && orgdegnitemkind.length > 0 && (subkindNode.text == "CCN" || subkindNode.text == "DGN" || subkindNode.text == "OPN"))
  3604. {
  3605. grdClone.removeChild(subNode);
  3606. continue;
  3607. }
  3608. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3609. // 2008-007-16 이경희
  3610. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3611. /*
  3612. if(pageInfo.fstLevlItemCd != "")
  3613. {
  3614. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3615. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3616. }
  3617. if(pageInfo.fstLevlItemCd != "")
  3618. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3619. */
  3620. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3621. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3622. if(tmpcolno == -1 && tmprowno == 0)
  3623. {
  3624. isGrd = false;
  3625. }
  3626. else
  3627. {
  3628. isGrd = true;
  3629. }
  3630. }
  3631. }
  3632. else if(gridtype == "T")
  3633. {
  3634. //값을 갖지 않는 grid row는 제거한다.
  3635. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3636. if(len == 0)
  3637. {
  3638. continue;
  3639. }
  3640. var grdClone = grdNode.cloneNode(true);
  3641. var subNodeList = grdClone.selectNodes("recitem");
  3642. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3643. // 공통서식에서 최상위아이템을 찾도록 fstlevlitemcd를 설정한다.
  3644. // 2008-007-16 이경희
  3645. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3646. /*
  3647. var subNode = subNodeList.item(0);
  3648. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3649. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3650. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3651. if(pageInfo.fstLevlItemCd != "")
  3652. {
  3653. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  3654. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  3655. }
  3656. if(pageInfo.fstLevlItemCd != "")
  3657. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3658. */
  3659. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3660. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3661. {
  3662. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3663. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3664. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3665. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3666. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3667. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3668. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3669. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3670. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3671. if(subkindNode.text == "GSL")
  3672. {
  3673. grdClone.removeChild(subNode);
  3674. continue;
  3675. }
  3676. if(gridtype == "T")
  3677. {
  3678. //축에 있는 값은 제거한다.
  3679. //var subKindNode = subNode.selectSingleNode("degnitemkind");
  3680. if(subkindNode.text == "GXB" || subkindNode.text == "GYB")
  3681. {
  3682. subReccntsNode = subNode.selectSingleNode("reccnts");
  3683. subReccntsNode.text = "";
  3684. subRectermcdNode = subNode.selectSingleNode("rectermcd");
  3685. subRectermcdNode.text = "";
  3686. }
  3687. }
  3688. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  3689. {
  3690. grdClone.removeChild(subNode); // 값이 없는 노드는 삭제함.
  3691. continue;
  3692. }
  3693. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3694. // 2008-007-16 이경희
  3695. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3696. /*
  3697. if(pageInfo.fstLevlItemCd != "")
  3698. {
  3699. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3700. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3701. }
  3702. if(pageInfo.fstLevlItemCd != "")
  3703. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3704. */
  3705. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3706. // this.savedInfoRef2 = "/root/hidden/savedinfo";
  3707. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3708. }
  3709. }
  3710. }
  3711. }
  3712. /**
  3713. * @desc : 체크박스 기록 데이터를 가져온다
  3714. * @id :
  3715. * @event :
  3716. * @return :
  3717. * @authur : 이상현
  3718. */
  3719. function getCheckSaveData(pageInfo)
  3720. {
  3721. var chkList = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind = 'CHK']");
  3722. var colCnt;
  3723. //for(var chkIdx = 0; chkIdx < chkList.length; chkIdx++)
  3724. for(var chkIdx = chkList.length - 1; chkIdx >= 0; chkIdx--)
  3725. {
  3726. var chkNode = chkList.item(chkIdx);
  3727. var degnitemno = chkNode.selectSingleNode("degnitemno").text;
  3728. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  3729. var rectermcd = chkNode.selectSingleNode("rectermcd").text;
  3730. var rectermnm = chkNode.selectSingleNode("rectermnm").text;
  3731. if(rectermcd == "")
  3732. continue;
  3733. //var condition = getSaveDataParent(supdegnitemno, "");
  3734. //alert(condition);
  3735. //if(condition != "")
  3736. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  3737. var arrTermcd = rectermcd.split(" ");
  3738. // CHK 아이템 정렬 문제 수정 setsrchdata, getCheckSaveData
  3739. //var arrTermnm = rectermnm.split(" ");
  3740. var arrTermnm = rectermnm.split("▦");
  3741. for(var i = 0; i < arrTermcd.length; i++)
  3742. {
  3743. var tmpNode = chkNode.cloneNode(true);
  3744. tmpNode.selectSingleNode("rectermcd").text = arrTermcd[i];
  3745. tmpNode.selectSingleNode("rectermnm").text = arrTermnm[i];
  3746. tmpNode.selectSingleNode("colno").text = i;
  3747. //model.duplicate(pageInfo.savedInfoRef2, tmpNode);
  3748. chkNode.parentNode.insertBefore(tmpNode, chkNode);
  3749. }
  3750. chkNode.parentNode.removeChild(chkNode);
  3751. }
  3752. }
  3753. var condAll = "";
  3754. /**
  3755. * @desc : 저장할 항목의 상위 정보를 가져온다
  3756. * @id :
  3757. * @event :
  3758. * @return :
  3759. * @authur : 이상현
  3760. */
  3761. function getSaveDataParent(degnitemno, condition)
  3762. {
  3763. var srchno = "'" + degnitemno + "'";
  3764. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  3765. {
  3766. if(condition == "")
  3767. condition = "degnitemno = '" + degnitemno + "'";
  3768. else
  3769. condition += " or degnitemno = '" + degnitemno + "'";
  3770. }
  3771. var pageInfo = new PAGEINFO();
  3772. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  3773. if(supdegnitemno != "" && supdegnitemno != "0")
  3774. {
  3775. //var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + supdegnitemno + "']/degnitemkind");
  3776. //if(degnitemkind != "GRD")
  3777. condition = getSaveDataParent(supdegnitemno, condition);
  3778. if(condAll == "")
  3779. condAll = condition;
  3780. else
  3781. condAll += " or " + condition;
  3782. }
  3783. return condition;
  3784. /*if(!isSearchString(condition, degnitemno))
  3785. {
  3786. if(condition == "")
  3787. condition = "degnitemno = '" + degnitemno + "'";
  3788. else
  3789. condition += " or degnitemno = '" + degnitemno + "'";
  3790. }
  3791. var pageInfo = new PAGEINFO();
  3792. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  3793. if(supdegnitemno != "" && supdegnitemno != "0")
  3794. {
  3795. //var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + supdegnitemno + "']/degnitemkind");
  3796. //if(degnitemkind != "GRD")
  3797. condition = getSaveDataParent(supdegnitemno, condition);
  3798. }
  3799. return condition;*/
  3800. }
  3801. /**
  3802. * @desc : 디자인아이템순번으로 인스턴스 연결
  3803. * @id :
  3804. * @event :
  3805. * @return :
  3806. * @authur : 이상현
  3807. */
  3808. function makeRefByDegnitemno()
  3809. {
  3810. var pageInfo = new PAGEINFO();
  3811. makeInstance(pageInfo);
  3812. for(var i = 0; i < document.controls.length; i++)
  3813. {
  3814. var ctrl = document.controls.item(i);
  3815. var ctrltype = ctrl.elementName;
  3816. var degnitemno = ctrl.attribute("degnitemno");
  3817. //alert("degnitemno : " + degnitemno);
  3818. if(degnitemno == "")
  3819. continue;
  3820. var refitem = ctrl.attribute("refitem");
  3821. if(refitem == "")
  3822. {
  3823. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  3824. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/reccnts";
  3825. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  3826. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd";
  3827. //else if(ctrltype == "xforms:datagrid")
  3828. // ctrl.attribute("nodeset") = pageInfo.grdNodeset + "[@grupcd='" + valgrupcd + "']";
  3829. //alert("ctrl.ref : " + ctrl.attribute("ref"));
  3830. } else {
  3831. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  3832. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermnm";
  3833. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  3834. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd";
  3835. }
  3836. ctrl.refresh();
  3837. }
  3838. }
  3839. /**
  3840. * @desc : 디자인계층코드로 인스턴스 연결
  3841. * @id :
  3842. * @event :
  3843. * @return :
  3844. * @authur : 박종훈
  3845. */
  3846. function makeRefByDegnitemLevlCd()
  3847. {
  3848. var pageInfo = new PAGEINFO();
  3849. makeInstance(pageInfo);
  3850. for(var i = 0; i < document.controls.length; i++)
  3851. {
  3852. var ctrl = document.controls.item(i);
  3853. var ctrltype = ctrl.elementName;
  3854. var degnitemlevlcd = ctrl.attribute("degnitemlevlcd");
  3855. //alert("degnitemno : " + degnitemno);
  3856. if(degnitemlevlcd == "")
  3857. continue;
  3858. var refitem = ctrl.attribute("refitem");
  3859. if(refitem == "")
  3860. {
  3861. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  3862. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/reccnts";
  3863. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  3864. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd";
  3865. //else if(ctrltype == "xforms:datagrid")
  3866. // ctrl.attribute("nodeset") = pageInfo.grdNodeset + "[@grupcd='" + valgrupcd + "']";
  3867. //alert("ctrl.ref : " + ctrl.attribute("ref"));
  3868. } else {
  3869. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  3870. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/rectermnm";
  3871. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  3872. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd";
  3873. }
  3874. ctrl.refresh();
  3875. }
  3876. }
  3877. var g_maxdegnitemno;
  3878. /**
  3879. * @desc : 인스턴스 생성
  3880. * @id :
  3881. * @event :
  3882. * @return :
  3883. * @authur : 이상현
  3884. * @history: 2008/04/17 이경희 - 서식디자인에서 아이템 기본값 입력 후 캘린더에 값 적용이 안되는 문제 수정 CAL 조건 추가
  3885. 2008-10-28 이경희 - 서식디자인에서 아이템 기본값으로 설정된 기록을 CMB등의 아이템을 기본으로 저장시 뷰어에서
  3886. 보이지 않는 문제점이 있어서, rectermnm 노드값을 추가.
  3887. */
  3888. var g_arrMslDefVal = "";
  3889. var g_arrImgDefVal = "";
  3890. function makeInstance(pageInfo, bInit)
  3891. {
  3892. if(pageInfo == null)
  3893. pageInfo = new PAGEINFO();
  3894. if(bInit == null)
  3895. bInit = true;
  3896. g_maxdegnitemno = model.getXPathValue("max(" + pageInfo.formdegnRef + "/degnitemno)");
  3897. var itemcnt = getNodesetCnt(model, pageInfo.formdegnRef);
  3898. var reccnt = getNodesetCnt(model, pageInfo.recItemRef);
  3899. var diff = 0;
  3900. var idxdiff = 0;
  3901. var selIdx = 0;
  3902. for(var idx = 1; idx <= itemcnt; idx++)
  3903. {
  3904. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  3905. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  3906. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  3907. var degnitemno = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemno");
  3908. var degnitemkind = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemkind");
  3909. var degnitemcd = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemcd");
  3910. var supdegnitemno = model.getValue(gPrePath_formdegnRef + idx + "]/supdegnitemno");
  3911. var supdegnitemkind = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/degnitemkind");
  3912. var degnitemlevlno = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemlevlno");
  3913. var degnitemnm = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemnm");
  3914. var degnitemdefltval = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemdefltval");
  3915. var unitcd = model.getValue(gPrePath_formdegnRef + idx + "]/unitcd");
  3916. var unitnm = model.getValue(gPrePath_formdegnRef + idx + "]/unitnm");
  3917. var valgrupcd = model.getValue(gPrePath_formdegnRef + idx + "]/valgrupcd");
  3918. /*
  3919. // MSL, IMG의 경우 아이템기본값 처리 루틴 추가
  3920. // 수정자: 이경희
  3921. // 수정일: 2008.04.18
  3922. */
  3923. if(degnitemkind == "MSL" && degnitemdefltval != "") //0000903001 0000985001
  3924. {
  3925. g_arrMslDefVal = degnitemdefltval.split(" ");
  3926. }
  3927. if(degnitemkind == "IMG" && degnitemdefltval != "") //0012574001 0012679001
  3928. {
  3929. g_arrImgDefVal = degnitemdefltval.split(" ");
  3930. }
  3931. //if(degnitemkind == "SSU" || degnitemkind == "ISU")
  3932. if(degnitemkind == "MSL" || supdegnitemkind == "SSL" && degnitemkind == "SSU")
  3933. {
  3934. if(degnitemkind == "MSL")
  3935. selIdx = 0;
  3936. diff++;
  3937. continue;
  3938. }
  3939. if(supdegnitemkind == "MSL" && degnitemkind == "SSU")
  3940. {
  3941. var MslDefVal = "";
  3942. var termcd = model.getValue(gPrePath_formdegnRef + idx + "]/termcd");
  3943. var i = 0;
  3944. var DataSet = 0; // 아이템 기본값 설정 여부 확인 변수
  3945. while(i < g_arrMslDefVal.length)
  3946. {
  3947. // 전역 변수(g_MslDefVal) 의 값을 비교
  3948. MslDefVal = g_arrMslDefVal[i];
  3949. if(MslDefVal == termcd)
  3950. {
  3951. //alert("g_arrMslDefVal[" + i + "]: " + MslDefVal);
  3952. //alert("rectermnm:" + degnitemnm);
  3953. makeSubSelectInstance(pageInfo, supdegnitemno, selIdx++, degnitemnm, MslDefVal);
  3954. DataSet = 1;
  3955. break;
  3956. }
  3957. i++;
  3958. }
  3959. if(DataSet == 0) // 아이템 기본값 설정이 안되었을 경우
  3960. {
  3961. //makeSelectInstance(pageInfo, supdegnitemno, selIdx++);
  3962. makeSelectInstance(pageInfo, supdegnitemno, selIdx++);
  3963. }
  3964. continue;
  3965. }
  3966. //selIdx = 0;
  3967. if(supdegnitemkind == "IMG" && degnitemkind == "ISU")
  3968. {
  3969. var ImgDefVal = "";
  3970. var termcd = model.getValue(gPrePath_formdegnRef + idx + "]/termcd");
  3971. var i = 0;
  3972. var DataSet = 0; // 아이템 기본값 설정 여부 확인 변수
  3973. while(i < g_arrImgDefVal.length)
  3974. {
  3975. // 전역 변수(g_MslDefVal) 의 값을 비교
  3976. ImgDefVal = g_arrImgDefVal[i];
  3977. if(ImgDefVal == termcd)
  3978. {
  3979. //alert("g_arrImgDefVal[" + i+ "]: " + MslDefVal);
  3980. //alert("rectermnm:" + degnitemnm);
  3981. makeSubSelectInstance(pageInfo, degnitemno, selIdx++, degnitemnm, ImgDefVal);
  3982. DataSet = 1;
  3983. break;
  3984. }
  3985. i++;
  3986. }
  3987. if(DataSet == 0) // 아이템 기본값 설정이 안되었을 경우
  3988. {
  3989. makeSelectInstance(pageInfo, degnitemno, selIdx++);
  3990. }
  3991. continue;
  3992. // 기존 코드
  3993. //makeSelectInstance(pageInfo, degnitemno, selIdx++);
  3994. //continue;
  3995. }
  3996. if(degnitemkind == "GRD" || degnitemkind == "GSU")
  3997. {
  3998. makeGridInstance(pageInfo, degnitemno);
  3999. continue;
  4000. }
  4001. if(degnitemkind == "DGN")
  4002. {
  4003. makeDGNInstance(pageInfo, degnitemno);
  4004. continue;
  4005. }
  4006. if(degnitemkind == "OPN")
  4007. {
  4008. makeOPNInstance(pageInfo, degnitemno);
  4009. continue;
  4010. }
  4011. if(degnitemkind == "CCN")
  4012. {
  4013. makeCCNInstance(pageInfo, degnitemno);
  4014. continue;
  4015. }
  4016. if(degnitemkind == "BTN")
  4017. continue;
  4018. //var termcd = model.getValue(gPrePath_formdegnRef + idx + "]/termcd");
  4019. var degnitemlevlcd = "";
  4020. if(pageInfo.fstLevlItemCd != "")
  4021. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(gPrePath_formdegnRef + idx + "]/degnitemlevlcd");
  4022. else
  4023. degnitemlevlcd = model.getValue(gPrePath_formdegnRef + idx + "]/degnitemlevlcd");
  4024. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4025. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4026. if(pageInfo.fstLevlItemCd != "")
  4027. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4028. idxdiff = idx - diff;
  4029. model.makeValue(gPrePath_recItemRef + idxdiff + "]/instcd", "");
  4030. model.makeValue(gPrePath_recItemRef + idxdiff + "]/rechistseq", "");
  4031. model.makeValue(gPrePath_recItemRef + idxdiff + "]/recitemno", "");
  4032. model.makeValue(gPrePath_recItemRef + idxdiff + "]/fstlevlitemcd", fstlevlitemcd);
  4033. model.makeValue(gPrePath_recItemRef + idxdiff + "]/formcd", formcd);
  4034. model.makeValue(gPrePath_recItemRef + idxdiff + "]/formdegnseq", formdegnseq);
  4035. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnitemno", degnitemno);
  4036. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnitemcd", degnitemcd);
  4037. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnitemkind", degnitemkind);
  4038. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnitemlevlno", degnitemlevlno);
  4039. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnitemnm", degnitemnm, true);
  4040. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnitemlevlcd", degnitemlevlcd);
  4041. model.makeValue(gPrePath_recItemRef + idxdiff + "]/rectermcd", "");
  4042. model.makeValue(gPrePath_recItemRef + idxdiff + "]/rectermnm", "", true);
  4043. model.makeValue(gPrePath_recItemRef + idxdiff + "]/recrefcd", "");
  4044. model.makeValue(gPrePath_recItemRef + idxdiff + "]/recitemnm", "", true);
  4045. model.makeValue(gPrePath_recItemRef + idxdiff + "]/reccnts", "", true);
  4046. model.makeValue(gPrePath_recItemRef + idxdiff + "]/unitnm", unitnm);
  4047. model.makeValue(gPrePath_recItemRef + idxdiff + "]/recimge", "");
  4048. model.makeValue(gPrePath_recItemRef + idxdiff + "]/srcimge", "");
  4049. model.makeValue(gPrePath_recItemRef + idxdiff + "]/rowno", "");
  4050. model.makeValue(gPrePath_recItemRef + idxdiff + "]/colno", "");
  4051. model.makeValue(gPrePath_recItemRef + idxdiff + "]/supdegnitemno", supdegnitemno);
  4052. model.makeValue(gPrePath_recItemRef + idxdiff + "]/extdegnitemlevlcd", "");
  4053. model.makeValue(gPrePath_recItemRef + idxdiff + "]/rectermflag", "");
  4054. model.makeValue(gPrePath_recItemRef + idxdiff + "]/degnunitcd", unitcd);
  4055. /*
  4056. if(degnitemkind == "CHK" || degnitemkind == "RDO" || degnitemkind == "CMB" ||
  4057. degnitemkind == "SSL" || degnitemkind == "MSL" || degnitemkind == "BOL")
  4058. {
  4059. model.setValue(gPrePath_recItemRef + idxdiff + "]/rectermcd", degnitemdefltval);
  4060. }
  4061. else if(degnitemkind == "STX" || degnitemkind == "MTX" || degnitemkind == "CAL")
  4062. {
  4063. model.setValue(gPrePath_recItemRef + idxdiff + "]/reccnts", degnitemdefltval);
  4064. }
  4065. */
  4066. if(degnitemkind == "CHK" || degnitemkind == "RDO" || degnitemkind == "CMB" ||
  4067. degnitemkind == "SSL" || degnitemkind == "MSL" || degnitemkind == "BOL")
  4068. {
  4069. model.setValue(gPrePath_recItemRef + idxdiff + "]/rectermcd", degnitemdefltval);
  4070. // BOL 기본값 처리
  4071. if(degnitemkind == "BOL")
  4072. {
  4073. if(degnitemdefltval != "")
  4074. model.setValue(gPrePath_recItemRef + idxdiff + "]/rectermnm", degnitemnm, true);
  4075. }
  4076. // SSL 기본값 처리
  4077. if(degnitemkind == "SSL")
  4078. {
  4079. var defltvalnm = model.getValue(gPrePath_formdegnRef + "termcd = '" + degnitemdefltval + "']/degnitemnm");
  4080. var tmpdefltvalnm = model.getValue(gPrePath_formdegnRef + "termcd = '" + degnitemdefltval + "']/itemnm");
  4081. if(defltvalnm == "")
  4082. defltvalnm = tmpdefltvalnm;
  4083. model.setValue(gPrePath_recItemRef + idxdiff + "]/rectermnm", defltvalnm, true);
  4084. }
  4085. /*
  4086. // 추가 내용: 아이템 기본값으로 기록내용 저장 시 rectermnm이 없이 저장이 되어 통합기록조회에서 보이지 않음.
  4087. */
  4088. // 1. vallist 노드를 찾는다.
  4089. if(valgrupcd != "")
  4090. {
  4091. var cnt = getNodesetCnt(model, pageInfo.vallistRef + "[grupcd='" + valgrupcd + "']");
  4092. var sLabel = "";
  4093. var sValue = "";
  4094. if(degnitemdefltval != "")
  4095. {
  4096. for(var i =0; i< cnt; i++)
  4097. {
  4098. sLabel = model.instances(0).selectNodes(g_pageInfo.vallistRef +"[grupcd='" + valgrupcd + "']/valitemnm").item(i).text;
  4099. sValue = model.instances(0).selectNodes(g_pageInfo.vallistRef +"[grupcd='" + valgrupcd + "']/valcd").item(i).text;
  4100. // 2. 아이템 기본값과 같은 값인 경우 rectermnm을 추가
  4101. if(sValue == degnitemdefltval)
  4102. {
  4103. model.setValue(gPrePath_recItemRef + idxdiff + "]/rectermnm", sLabel, true);
  4104. break;
  4105. }
  4106. }
  4107. }
  4108. }
  4109. }
  4110. else if(degnitemkind == "STX" || degnitemkind == "MTX" || degnitemkind == "CAL")
  4111. {
  4112. model.setValue(gPrePath_recItemRef + idxdiff + "]/reccnts", degnitemdefltval);
  4113. }
  4114. }
  4115. if(bInit)
  4116. copyNodeset(pageInfo.initrecRef, pageInfo.recRef, "replace", model, model);
  4117. //copyNodeset(pageInfo.recRef2, pageInfo.recRef, "replace", model, model);
  4118. }
  4119. /**
  4120. * @desc : MSL 및 IMG 데이터의 하위 인스턴스를 생성함.
  4121. * @id :
  4122. * @event :
  4123. * @return :
  4124. * @authur : 이경희
  4125. */
  4126. function makeSubSelectInstance(pageInfo, degnitemno, selIdx, rectermnm, rectermcd)
  4127. {
  4128. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4129. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4130. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4131. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4132. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  4133. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4134. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4135. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4136. var unitcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4137. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4138. var degnitemlevlcd = "";
  4139. if(pageInfo.fstLevlItemCd != "")
  4140. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(gPrePath_formdegnRef + idx + "]/degnitemlevlcd");
  4141. else
  4142. degnitemlevlcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlcd");
  4143. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4144. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4145. if(pageInfo.fstLevlItemCd != "")
  4146. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4147. var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  4148. model.makeValue(gPrePath_recItemRef + idx + "]/instcd", "");
  4149. model.makeValue(gPrePath_recItemRef + idx + "]/rechistseq", "");
  4150. model.makeValue(gPrePath_recItemRef + idx + "]/recitemno", "");
  4151. model.makeValue(gPrePath_recItemRef + idx + "]/fstlevlitemcd", fstlevlitemcd);
  4152. model.makeValue(gPrePath_recItemRef + idx + "]/formcd", formcd);
  4153. model.makeValue(gPrePath_recItemRef + idx + "]/formdegnseq", formdegnseq);
  4154. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemno", degnitemno);
  4155. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemcd", degnitemcd);
  4156. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemkind", degnitemkind);
  4157. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemlevlno", degnitemlevlno);
  4158. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemnm", degnitemnm);
  4159. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4160. model.makeValue(gPrePath_recItemRef + idx + "]/rectermcd", rectermcd);
  4161. model.makeValue(gPrePath_recItemRef + idx + "]/rectermnm", rectermnm);
  4162. model.makeValue(gPrePath_recItemRef + idx + "]/recrefcd", "");
  4163. model.makeValue(gPrePath_recItemRef + idx + "]/recitemnm", "");
  4164. model.makeValue(gPrePath_recItemRef + idx + "]/reccnts", "");
  4165. model.makeValue(gPrePath_recItemRef + idx + "]/unitnm", unitnm);
  4166. model.makeValue(gPrePath_recItemRef + idx + "]/recimge", "");
  4167. model.makeValue(gPrePath_recItemRef + idx + "]/srcimge", "");
  4168. model.makeValue(gPrePath_recItemRef + idx + "]/rowno", "");
  4169. model.makeValue(gPrePath_recItemRef + idx + "]/colno", selIdx);
  4170. model.makeValue(gPrePath_recItemRef + idx + "]/supdegnitemno", supdegnitemno);
  4171. model.makeValue(gPrePath_recItemRef + idx + "]/extdegnitemlevlcd", "");
  4172. model.makeValue(gPrePath_recItemRef + idx + "]/rectermflag", "");
  4173. model.makeValue(gPrePath_recItemRef + idx + "]/degnunitcd", unitcd);
  4174. }
  4175. /**
  4176. * @desc : 라디오, 콤보, 체크박스 인스턴스 생성
  4177. * @id :
  4178. * @event :
  4179. * @return :
  4180. * @authur : 이상현
  4181. */
  4182. function makeSelectInstance(pageInfo, degnitemno, selIdx)
  4183. {
  4184. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4185. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4186. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4187. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4188. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  4189. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4190. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4191. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4192. var unitcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4193. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4194. var degnitemlevlcd = "";
  4195. if(pageInfo.fstLevlItemCd != "")
  4196. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(gPrePath_formdegnRef + idx + "]/degnitemlevlcd");
  4197. else
  4198. degnitemlevlcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlcd");
  4199. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4200. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4201. // fstlevlitemcd 를 못찾는 경우.
  4202. // 일부 아이템의 degnitemlevlcd 에 가 001이 붙은 경우가 있어 fstlevlitemcd를 찾지 못함.
  4203. //if(fstlevlitemcd == "")
  4204. //{
  4205. //fstlevlitemcd = fstlevlitembasecd;
  4206. /*
  4207. var Tmpfstlevlitembasecd = fstlevlitembasecd + "001";
  4208. fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + Tmpfstlevlitembasecd + "']/degnitemcd");
  4209. if(fstlevlitemcd == "")
  4210. messageBox("아이템코드 상에 문제가 있습니다. 개발팀에 문의바랍니다.");
  4211. else
  4212. {
  4213. if(fstlevlitembasecd == fstlevlitemcd.substr(0, 7))
  4214. fstlevlitemcd = fstlevlitemcd.substr(0, 7);
  4215. }
  4216. */
  4217. //}
  4218. if(pageInfo.fstLevlItemCd != "")
  4219. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4220. var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  4221. model.makeValue(gPrePath_recItemRef + idx + "]/instcd", "");
  4222. model.makeValue(gPrePath_recItemRef + idx + "]/rechistseq", "");
  4223. model.makeValue(gPrePath_recItemRef + idx + "]/recitemno", "");
  4224. model.makeValue(gPrePath_recItemRef + idx + "]/fstlevlitemcd", fstlevlitemcd);
  4225. model.makeValue(gPrePath_recItemRef + idx + "]/formcd", formcd);
  4226. model.makeValue(gPrePath_recItemRef + idx + "]/formdegnseq", formdegnseq);
  4227. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemno", degnitemno);
  4228. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemcd", degnitemcd);
  4229. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemkind", degnitemkind);
  4230. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemlevlno", degnitemlevlno);
  4231. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemnm", degnitemnm);
  4232. model.makeValue(gPrePath_recItemRef + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4233. model.makeValue(gPrePath_recItemRef + idx + "]/rectermcd", "");
  4234. model.makeValue(gPrePath_recItemRef + idx + "]/rectermnm", "");
  4235. model.makeValue(gPrePath_recItemRef + idx + "]/recrefcd", "");
  4236. model.makeValue(gPrePath_recItemRef + idx + "]/recitemnm", "");
  4237. model.makeValue(gPrePath_recItemRef + idx + "]/reccnts", "");
  4238. model.makeValue(gPrePath_recItemRef + idx + "]/unitnm", unitnm);
  4239. model.makeValue(gPrePath_recItemRef + idx + "]/recimge", "");
  4240. model.makeValue(gPrePath_recItemRef + idx + "]/srcimge", "");
  4241. model.makeValue(gPrePath_recItemRef + idx + "]/rowno", "");
  4242. model.makeValue(gPrePath_recItemRef + idx + "]/colno", selIdx);
  4243. model.makeValue(gPrePath_recItemRef + idx + "]/supdegnitemno", supdegnitemno);
  4244. model.makeValue(gPrePath_recItemRef + idx + "]/extdegnitemlevlcd", "");
  4245. model.makeValue(gPrePath_recItemRef + idx + "]/rectermflag", "");
  4246. model.makeValue(gPrePath_recItemRef + idx + "]/degnunitcd", unitcd);
  4247. }
  4248. /**
  4249. * @desc : 그리드 인스턴스 생성
  4250. * @id :
  4251. * @event :
  4252. * @return :
  4253. * @authur : 이상현
  4254. */
  4255. function makeGridInstance(pageInfo, degnitemno)
  4256. {
  4257. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  4258. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4259. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4260. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4261. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  4262. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4263. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4264. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4265. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4266. var unitcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitcd");
  4267. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4268. ///////////////////////////////////////////////////
  4269. var degnitemlevlcd = "";
  4270. if(pageInfo.fstLevlItemCd != "")
  4271. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  4272. else
  4273. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  4274. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4275. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4276. if(pageInfo.fstLevlItemCd != "")
  4277. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4278. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4279. /////////////////////////////////////////////////
  4280. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  4281. var valgrupcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/valgrupcd");
  4282. var degnattrval = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnattrval");
  4283. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "gridtype");
  4284. var prepath_formdegnRef_GSUdegnitemno = pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + degnitemno;
  4285. var subcnt = getNodesetCnt(model, prepath_formdegnRef_GSUdegnitemno + "']");
  4286. var recItemCnt = getNodesetCnt(model, pageInfo.recItemRef);
  4287. if(gridtype == "Y")
  4288. {
  4289. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4290. // row의 -1번째 컬럼(구분 컬럼)
  4291. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef); //getNodesetCnt(model, pageInfo.recItemRef);
  4292. //var grdCntIdx = grdCnt + 1;
  4293. var grdCntIdx = 0;
  4294. var row = -1;
  4295. var col = -1;
  4296. grdCnt += 1;
  4297. grdCntIdx = 1;
  4298. row++;
  4299. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4300. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4301. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4302. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4303. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4304. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4305. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4306. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4307. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4308. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4309. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4310. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4311. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4312. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm);
  4313. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4314. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4315. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "");
  4316. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4317. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "");
  4318. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "");
  4319. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4320. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4321. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4322. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4323. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4324. for(var i = 0; i < subcnt; i++)
  4325. {
  4326. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(i).text, "axflag");
  4327. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(i).text;
  4328. var subsupdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/supdegnitemno").item(i).text;
  4329. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(i).text;
  4330. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(i).text;
  4331. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(i).text;
  4332. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(i).text;
  4333. var subunitcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitcd").item(i).text;
  4334. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(i).text;
  4335. var subdegnitemlevlcd = "";
  4336. if(pageInfo.fstLevlItemCd != "")
  4337. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4338. else
  4339. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  4340. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4341. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4342. if(pageInfo.fstLevlItemCd != "")
  4343. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4344. grdCntIdx++;
  4345. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4346. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4347. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4348. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4349. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4350. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4351. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", subdegnitemno);
  4352. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4353. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", subdegnitemkind);
  4354. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", parseInt(subdegnitemlevlno) + 1);
  4355. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4356. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4357. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4358. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4359. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4360. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4361. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4362. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", subunitnm);
  4363. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4364. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4365. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4366. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", ++col);
  4367. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/supdegnitemno", subsupdegnitemno);
  4368. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/extdegnitemlevlcd", "");
  4369. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermflag", "");
  4370. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnunitcd", subunitcd);
  4371. }
  4372. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4373. model.addLog("Y축 증가 테이블 생성시간: " + ((endTime-startTime)/1000) );
  4374. }
  4375. else if(gridtype == "X")
  4376. {
  4377. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4378. // 개선 코드
  4379. var grdCnt = 0;
  4380. for(var j = 0; j < subcnt; j++)
  4381. {
  4382. //var label = model.instances(0).selectNodes(pageInfo.formdegnRef +
  4383. // "[degnitemkind='GSU' and supdegnitemno='" + degnitemno + "']/degnitemnm").item(j).text;
  4384. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  4385. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  4386. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  4387. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  4388. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  4389. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4390. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  4391. var subdegnitemlevlcd = "";
  4392. if(pageInfo.fstLevlItemCd != "")
  4393. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4394. else
  4395. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  4396. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4397. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4398. if(pageInfo.fstLevlItemCd != "")
  4399. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4400. grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef);
  4401. grdCnt += 1;
  4402. var grdCntIdx = 1;
  4403. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4404. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4405. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4406. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4407. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4408. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4409. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4410. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4411. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4412. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4413. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4414. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4415. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4416. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm, true);
  4417. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4418. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4419. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4420. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4421. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4422. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4423. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4424. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4425. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4426. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", j);
  4427. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4428. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/supdegnitemno", subsupdegnitemno);
  4429. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/extdegnitemlevlcd", "");
  4430. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermflag", "");
  4431. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnunitcd", subunitcd);
  4432. grdCntIdx++;
  4433. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4434. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4435. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemno", "");
  4436. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4437. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formcd", formcd);
  4438. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formdegnseq", formdegnseq);
  4439. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemno", subdegnitemno);
  4440. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4441. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemkind", "GSL");
  4442. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlno", subdegnitemlevlno);
  4443. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4444. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4445. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermcd", "");
  4446. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermnm", "", true);
  4447. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recrefcd", "");
  4448. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemnm", "", true);
  4449. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/reccnts", subdegnitemnm, true);
  4450. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/unitnm", subunitnm);
  4451. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recimge", "");
  4452. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/srcimge", "");
  4453. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rowno", j);
  4454. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/colno", "0");
  4455. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/supdegnitemno", degnitemno);
  4456. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/extdegnitemlevlcd", "");
  4457. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermflag", "");
  4458. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnunitcd", subunitcd);
  4459. // create empty column
  4460. grdCntIdx++;
  4461. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4462. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4463. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemno", "");
  4464. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4465. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formcd", formcd);
  4466. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formdegnseq", formdegnseq);
  4467. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemno", subdegnitemno);
  4468. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4469. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemkind", "GSU");
  4470. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlno", subdegnitemlevlno);
  4471. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4472. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4473. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermcd", "");
  4474. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermnm", "", true);
  4475. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recrefcd", "");
  4476. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemnm", "", true);
  4477. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/reccnts", "", true);
  4478. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/unitnm", subunitnm);
  4479. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recimge", "");
  4480. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/srcimge", "");
  4481. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rowno", j);
  4482. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/colno", "1");
  4483. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/supdegnitemno", degnitemno);
  4484. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/extdegnitemlevlcd", "");
  4485. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermflag", "");
  4486. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnunitcd", subunitcd);
  4487. }
  4488. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4489. model.addLog("X축 증가 테이블 생성시간: " + ((endTime-startTime)/1000) );
  4490. }
  4491. else if(gridtype =="T") //Table
  4492. {
  4493. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4494. var arrX = new Array();
  4495. var arrY = new Array();
  4496. var xCnt = 0;
  4497. var yCnt = 0;
  4498. var fstcolwidth = 0;
  4499. for(var j = 0; j < subcnt; j++) // 그리드 테이블 컬럼만 얻기
  4500. {
  4501. var label = model.instances(0).selectNodes(pageInfo.formdegnRef +
  4502. "[degnitemkind='GSU' and supdegnitemno='" + degnitemno + "']/degnitemnm").item(j).text;
  4503. var axflag = getStyleValue(model.instances(0).selectNodes(pageInfo.formdegnRef +
  4504. "[degnitemkind='GSU' and supdegnitemno='" + degnitemno + "']/itemattrval").item(j).text, "axflag");
  4505. if(axflag == "X")
  4506. {
  4507. arrX[xCnt++] = label;
  4508. }
  4509. else if(axflag == "Y")
  4510. {
  4511. arrY[yCnt++] = label;
  4512. }
  4513. }
  4514. var nArrXLength = arrX.length;
  4515. var totalcnt = nArrXLength * arrY.length; // 테이블의 값이 들어가는 컬럼수만 계산
  4516. var grdCnt = 0;
  4517. var grdCntIdx = 0;
  4518. var colIdx = 1;
  4519. var row = -1;
  4520. var col = 0;
  4521. for(var i = 0; i < totalcnt; i++)
  4522. {
  4523. if(i % nArrXLength == 0) // row의 -1번째 컬럼(구분 컬럼)
  4524. {
  4525. grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef); //recItemRef);
  4526. //grdCntIdx = (grdCnt*(arrX.length+2)) + 1;
  4527. grdCnt += 1;
  4528. grdCntIdx = 1;
  4529. row++;
  4530. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4531. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4532. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4533. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4534. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4535. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4536. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4537. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4538. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4539. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4540. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4541. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4542. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4543. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm);
  4544. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4545. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4546. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "");
  4547. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4548. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "");
  4549. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "");
  4550. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4551. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4552. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4553. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4554. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4555. grdCntIdx++;
  4556. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4557. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4558. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4559. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4560. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4561. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4562. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:Y')]/degnitemno").item(row).text);
  4563. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:Y')]/degnitemcd").item(row).text);
  4564. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", "GXB");
  4565. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:Y')]/degnitemlevlno").item(row).text);
  4566. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:Y')]/degnitemnm").item(row).text, true);
  4567. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:Y')]/degnitemlevlcd").item(row).text);
  4568. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4569. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4570. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4571. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4572. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", arrY[row], true);
  4573. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(nArrXLength + row).text);
  4574. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4575. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4576. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4577. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "0");
  4578. col = 0;
  4579. }
  4580. var subdegnitemcd = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemcd").item(col).text;
  4581. var subdegnitemno = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemno").item(col).text;
  4582. var subdegnitemkind = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemkind").item(col).text;
  4583. var subdegnitemlevlcd = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemlevlcd").item(col).text;
  4584. var subdegnitemlevlno = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemlevlno").item(col).text;
  4585. var subdegnitemnm = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemnm").item(col).text;
  4586. var subunitnm = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/unitnm").item(col).text;
  4587. if(pageInfo.fstLevlItemCd != "")
  4588. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + subdegnitemlevlcd;
  4589. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4590. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4591. if(pageInfo.fstLevlItemCd != "")
  4592. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4593. grdCntIdx++;
  4594. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4595. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4596. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4597. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4598. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4599. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4600. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", subdegnitemno);
  4601. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4602. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", subdegnitemkind);
  4603. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", parseInt(subdegnitemlevlno) + 1);
  4604. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4605. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4606. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4607. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4608. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4609. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4610. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4611. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", subunitnm);
  4612. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4613. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4614. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4615. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", ++col);
  4616. }
  4617. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4618. model.addLog("일반 테이블 생성시간: " + ((endTime-startTime)/1000) );
  4619. }
  4620. else if(gridtype == "G") //Grid
  4621. {
  4622. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4623. // row의 -1번째 컬럼(구분 컬럼)
  4624. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef);
  4625. var grdCntIdx = 0;
  4626. var row = -1;
  4627. var col = -1;
  4628. grdCnt += 1;
  4629. grdCntIdx = 1;
  4630. row++;
  4631. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4632. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4633. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4634. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4635. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4636. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4637. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4638. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4639. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4640. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4641. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4642. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4643. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4644. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm, true);
  4645. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4646. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4647. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4648. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4649. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4650. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "");
  4651. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4652. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4653. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4654. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4655. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4656. for(var j = 0; j < subcnt; j++)
  4657. {
  4658. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  4659. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  4660. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  4661. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  4662. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  4663. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4664. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  4665. var subdegnitemlevlcd = "";
  4666. if(pageInfo.fstLevlItemCd != "")
  4667. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4668. else
  4669. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  4670. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4671. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4672. if(pageInfo.fstLevlItemCd != "")
  4673. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4674. grdCntIdx++;
  4675. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4676. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4677. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4678. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4679. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4680. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4681. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", subdegnitemno);
  4682. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4683. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", subdegnitemkind);
  4684. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", subdegnitemlevlno);
  4685. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4686. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4687. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4688. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4689. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4690. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4691. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4692. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", subunitnm);
  4693. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4694. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4695. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4696. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", ++col);
  4697. }
  4698. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4699. model.addLog("그리드 생성 시간: " + ((endTime-startTime)/1000) );
  4700. }
  4701. }
  4702. /**
  4703. * @desc : 진단명 인스턴스 생성
  4704. * @id :
  4705. * @event :
  4706. * @return :
  4707. * @authur : 이상현(2008-07-15)
  4708. */
  4709. function makeDGNInstance(pageInfo, degnitemno)
  4710. {
  4711. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  4712. if(type == "btn")
  4713. return;
  4714. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4715. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4716. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4717. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4718. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4719. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4720. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4721. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4722. var degnitemlevlcd = "";
  4723. if(pageInfo.fstLevlItemCd != "")
  4724. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  4725. else
  4726. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  4727. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4728. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4729. if(pageInfo.fstLevlItemCd != "")
  4730. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4731. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  4732. var columnIdx = 1;
  4733. //DGN 그리드
  4734. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  4735. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  4736. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4737. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4738. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4739. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4740. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4741. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4742. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4743. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4744. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  4745. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  4746. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "DGN");
  4747. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  4748. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  4749. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4750. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4751. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4752. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4753. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4754. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4755. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  4756. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4757. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4758. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4759. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  4760. columnIdx++;
  4761. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4762. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4763. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4764. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4765. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4766. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4767. //DGN, OPN, CCN은 디자인정보가 1개밖에 존재하지 않기 때문에.. degnitemno를 통일한다. (snoweye : 2008-07-15)
  4768. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4769. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4770. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0004249001");
  4771. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4772. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4773. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "R/O");
  4774. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0004249");
  4775. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4776. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4777. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4778. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4779. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4780. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4781. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4782. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4783. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4784. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  4785. columnIdx++;
  4786. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4787. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4788. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4789. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4790. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4791. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4792. //DGN, OPN, CCN은 디자인정보가 1개밖에 존재하지 않기 때문에.. degnitemno를 통일한다. (snoweye : 2008-07-15)
  4793. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4794. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4795. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0001443001");
  4796. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4797. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4798. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주부");
  4799. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0001443");
  4800. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4801. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4802. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4803. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4804. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4805. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4806. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4807. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4808. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4809. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  4810. columnIdx++;
  4811. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4812. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4813. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4814. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4815. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4816. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4817. //DGN, OPN, CCN은 디자인정보가 1개밖에 존재하지 않기 때문에.. degnitemno를 통일한다. (snoweye : 2008-07-15)
  4818. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4819. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4820. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000960001");
  4821. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4822. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4823. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "진단명");
  4824. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000960");
  4825. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4826. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4827. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4828. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4829. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4830. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4831. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4832. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4833. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4834. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "2");
  4835. }
  4836. /**
  4837. * @desc : 진단명 인스턴스 생성
  4838. * @id :
  4839. * @event :
  4840. * @return :
  4841. * @authur : 이상현
  4842. */
  4843. function makeDGNInstance_old(pageInfo, degnitemno)
  4844. {
  4845. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  4846. if(type == "btn")
  4847. return;
  4848. //var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  4849. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4850. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4851. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4852. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4853. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4854. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4855. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4856. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4857. var degnitemlevlcd = "";
  4858. if(pageInfo.fstLevlItemCd != "")
  4859. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  4860. else
  4861. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  4862. //var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  4863. //if(pageInfo.fstLevlItemCd != "")
  4864. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  4865. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4866. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4867. if(pageInfo.fstLevlItemCd != "")
  4868. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4869. //var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  4870. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  4871. var columnIdx = 1;
  4872. //DGN 그리드
  4873. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  4874. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  4875. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4876. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4877. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4878. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4879. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4880. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4881. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4882. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  4883. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  4884. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "DGN");
  4885. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  4886. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  4887. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4888. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4889. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4890. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4891. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4892. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4893. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  4894. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4895. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4896. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4897. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  4898. columnIdx++;
  4899. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4900. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4901. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4902. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4903. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4904. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4905. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4906. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0004249001");
  4907. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4908. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4909. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "R/O");
  4910. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0004249");
  4911. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4912. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4913. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4914. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4915. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4916. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4917. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4918. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4919. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4920. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  4921. columnIdx++;
  4922. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4923. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4924. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4925. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4926. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4927. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4928. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4929. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0001443001");
  4930. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4931. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4932. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주부");
  4933. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0001443");
  4934. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4935. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4936. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4937. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4938. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4939. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4940. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4941. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4942. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4943. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  4944. columnIdx++;
  4945. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4946. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4947. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4948. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4949. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4950. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4951. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4952. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000960001");
  4953. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4954. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4955. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "진단명");
  4956. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000960");
  4957. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4958. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4959. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4960. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4961. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4962. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4963. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4964. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4965. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4966. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "2");
  4967. /*
  4968. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/instcd", "");
  4969. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rechistseq", "");
  4970. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemno", "");
  4971. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/fstlevlitemcd", fstlevlitemcd);
  4972. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formcd", formcd);//"0000000899");
  4973. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formdegnseq", formdegnseq);
  4974. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemno", degnitemno);
  4975. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemcd", degnitemcd);
  4976. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemkind", "GRD");
  4977. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/orgdegnitemkind", "DGN");
  4978. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlno", degnitemlevlno);
  4979. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemnm", degnitemnm);
  4980. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4981. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermcd", "");
  4982. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermnm", "");
  4983. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recrefcd", "");
  4984. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemnm", "");
  4985. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/reccnts", "");
  4986. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/unitnm", unitnm);
  4987. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recimge", "");
  4988. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rowno", "0");
  4989. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/colno", "");
  4990. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/instcd", "");
  4991. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rechistseq", "");
  4992. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemno", "");
  4993. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/fstlevlitemcd", fstlevlitemcd);
  4994. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formcd", formcd);//"0000000899");
  4995. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formdegnseq", formdegnseq);
  4996. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemno", ++g_maxdegnitemno);
  4997. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemcd", "0004249001");
  4998. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemkind", "GSU");
  4999. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5000. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemnm", "R/O");
  5001. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlcd", degnitemlevlcd + "." + "0004249");
  5002. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermcd", "");
  5003. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermnm", "");
  5004. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recrefcd", "");
  5005. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemnm", "");
  5006. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/reccnts", "");
  5007. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/unitnm", "");
  5008. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recimge", "");
  5009. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rowno", "0");
  5010. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/colno", "0");
  5011. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/instcd", "");
  5012. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rechistseq", "");
  5013. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemno", "");
  5014. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/fstlevlitemcd", fstlevlitemcd);
  5015. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formcd", formcd);//"0000000899");
  5016. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formdegnseq", formdegnseq);
  5017. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemno", ++g_maxdegnitemno);
  5018. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemcd", "0001443001");
  5019. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemkind", "GSU");
  5020. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5021. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemnm", "주부");
  5022. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlcd", degnitemlevlcd + "." + "0001443");
  5023. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermcd", "");
  5024. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermnm", "");
  5025. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recrefcd", "");
  5026. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemnm", "");
  5027. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/reccnts", "");
  5028. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/unitnm", "");
  5029. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recimge", "");
  5030. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rowno", "0");
  5031. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/colno", "1");
  5032. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/instcd", "");
  5033. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rechistseq", "");
  5034. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recitemno", "");
  5035. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/fstlevlitemcd", fstlevlitemcd);
  5036. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/formcd", formcd);//"0000000899");
  5037. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/formdegnseq", formdegnseq);
  5038. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemno", ++g_maxdegnitemno);
  5039. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemcd", "0000960001");
  5040. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemkind", "GSU");
  5041. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5042. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemnm", "진단명");
  5043. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemlevlcd", degnitemlevlcd + "." + "0000960");
  5044. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rectermcd", "");
  5045. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rectermnm", "");
  5046. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recrefcd", "");
  5047. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recitemnm", "");
  5048. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/reccnts", "");
  5049. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/unitnm", "");
  5050. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recimge", "");
  5051. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rowno", "0");
  5052. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/colno", "2");
  5053. */
  5054. }
  5055. /**
  5056. * @desc : 수술명 인스턴스 생성
  5057. * @id :
  5058. * @event :
  5059. * @return :
  5060. * @authur : 이상현
  5061. */
  5062. function makeOPNInstance(pageInfo, degnitemno)
  5063. {
  5064. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5065. if(type == "btn")
  5066. return;
  5067. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5068. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5069. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5070. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5071. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5072. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5073. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5074. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5075. var degnitemlevlcd = "";
  5076. if(pageInfo.fstLevlItemCd != "")
  5077. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5078. else
  5079. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5080. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5081. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5082. if(pageInfo.fstLevlItemCd != "")
  5083. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5084. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5085. var columnIdx = 1;
  5086. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5087. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5088. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5089. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5090. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5091. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5092. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5093. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);
  5094. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5095. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5096. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5097. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5098. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "OPN");
  5099. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5100. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5101. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5102. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5103. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5104. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5105. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5106. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5107. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5108. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5109. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5110. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5111. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5112. columnIdx++;
  5113. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5114. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5115. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5116. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5117. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);
  5118. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5119. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5120. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000509001");
  5121. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5122. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5123. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "수술명");
  5124. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000509");
  5125. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5126. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5127. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5128. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5129. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5130. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5131. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5132. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5133. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5134. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5135. }
  5136. /**
  5137. * @desc : 수술명 인스턴스 생성
  5138. * @id :
  5139. * @event :
  5140. * @return :
  5141. * @authur : 이상현
  5142. */
  5143. function makeOPNInstance_Old(pageInfo, degnitemno)
  5144. {
  5145. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5146. if(type == "btn")
  5147. return;
  5148. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5149. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5150. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5151. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5152. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5153. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5154. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5155. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5156. var degnitemlevlcd = "";
  5157. if(pageInfo.fstLevlItemCd != "")
  5158. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5159. else
  5160. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5161. //var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5162. //if(pageInfo.fstLevlItemCd != "")
  5163. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  5164. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5165. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5166. if(pageInfo.fstLevlItemCd != "")
  5167. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5168. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5169. var columnIdx = 1;
  5170. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5171. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5172. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5173. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5174. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5175. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5176. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000900");
  5177. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5178. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5179. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5180. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5181. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "OPN");
  5182. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5183. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5184. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5185. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5186. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5187. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5188. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5189. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5190. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5191. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5192. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5193. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5194. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5195. columnIdx++;
  5196. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5197. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5198. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5199. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5200. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000900");
  5201. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5202. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5203. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000509001");
  5204. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5205. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5206. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "수술명");
  5207. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000509");
  5208. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5209. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5210. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5211. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5212. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5213. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5214. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5215. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5216. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5217. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5218. /*
  5219. var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  5220. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/instcd", "");
  5221. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rechistseq", "");
  5222. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemno", "");
  5223. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/fstlevlitemcd", fstlevlitemcd);
  5224. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formcd", formcd);//"0000000900");
  5225. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formdegnseq", formdegnseq);
  5226. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemno", degnitemno);
  5227. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemcd", degnitemcd);
  5228. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemkind", "GRD");
  5229. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/orgdegnitemkind", "OPN");
  5230. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlno", degnitemlevlno);
  5231. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemnm", degnitemnm);
  5232. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5233. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermcd", "");
  5234. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermnm", "");
  5235. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recrefcd", "");
  5236. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemnm", "");
  5237. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/reccnts", "");
  5238. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/unitnm", unitnm);
  5239. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recimge", "");
  5240. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rowno", "0");
  5241. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/colno", "");
  5242. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/instcd", "");
  5243. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rechistseq", "");
  5244. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemno", "");
  5245. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/fstlevlitemcd", fstlevlitemcd);
  5246. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formcd", formcd);//"0000000900");
  5247. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formdegnseq", formdegnseq);
  5248. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemno", ++g_maxdegnitemno);
  5249. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemcd", "0000509001");
  5250. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemkind", "GSU");
  5251. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5252. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemnm", "수술명");
  5253. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlcd", degnitemlevlcd + "." + "0000509");
  5254. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermcd", "");
  5255. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermnm", "");
  5256. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recrefcd", "");
  5257. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemnm", "");
  5258. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/reccnts", "");
  5259. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/unitnm", "");
  5260. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recimge", "");
  5261. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rowno", "0");
  5262. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/colno", "0");
  5263. */
  5264. }
  5265. /**
  5266. * @desc : 주호소 인스턴스 생성
  5267. * @id :
  5268. * @event :
  5269. * @return :
  5270. * @authur : 이상현
  5271. */
  5272. function makeCCNInstance(pageInfo, degnitemno)
  5273. {
  5274. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5275. if(type == "btn")
  5276. return;
  5277. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5278. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5279. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5280. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5281. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5282. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5283. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5284. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5285. var degnitemlevlcd = "";
  5286. if(pageInfo.fstLevlItemCd != "")
  5287. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5288. else
  5289. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5290. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5291. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5292. if(pageInfo.fstLevlItemCd != "")
  5293. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5294. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5295. var columnIdx = 1;
  5296. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5297. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5298. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5299. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5300. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5301. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5302. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5303. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5304. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5305. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5306. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5307. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5308. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "CCN");
  5309. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5310. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5311. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5312. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5313. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5314. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5315. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5316. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5317. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5318. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5319. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5320. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5321. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5322. columnIdx++;
  5323. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5324. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5325. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5326. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5327. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5328. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5329. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5330. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000931001");
  5331. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5332. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5333. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주호소");
  5334. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000931");
  5335. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5336. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5337. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5338. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5339. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5340. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5341. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5342. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5343. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5344. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5345. columnIdx++;
  5346. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5347. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5348. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5349. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5350. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5351. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5352. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5353. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000299002");
  5354. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5355. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5356. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "발생일");
  5357. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000299");
  5358. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5359. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5360. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5361. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5362. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5363. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5364. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5365. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5366. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5367. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  5368. }
  5369. /**
  5370. * @desc : 주호소 인스턴스 생성
  5371. * @id :
  5372. * @event :
  5373. * @return :
  5374. * @authur : 이상현
  5375. */
  5376. function makeCCNInstance_Old(pageInfo, degnitemno)
  5377. {
  5378. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5379. if(type == "btn")
  5380. return;
  5381. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5382. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5383. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5384. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5385. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5386. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5387. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5388. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5389. var degnitemlevlcd = "";
  5390. if(pageInfo.fstLevlItemCd != "")
  5391. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5392. else
  5393. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5394. //alert(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5395. //alert(degnitemlevlcd);
  5396. //var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5397. //if(pageInfo.fstLevlItemCd != "")
  5398. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  5399. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5400. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5401. if(pageInfo.fstLevlItemCd != "")
  5402. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5403. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5404. var columnIdx = 1;
  5405. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5406. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5407. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5408. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5409. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5410. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5411. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5412. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5413. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5414. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5415. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5416. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "CCN");
  5417. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5418. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5419. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5420. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5421. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5422. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5423. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5424. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5425. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5426. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5427. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5428. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5429. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5430. columnIdx++;
  5431. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5432. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5433. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5434. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5435. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5436. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5437. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5438. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000931001");
  5439. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5440. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5441. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주호소");
  5442. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000931");
  5443. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5444. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5445. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5446. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5447. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5448. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5449. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5450. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5451. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5452. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5453. columnIdx++;
  5454. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5455. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5456. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5457. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5458. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5459. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5460. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5461. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000299002");
  5462. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5463. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5464. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "발생일");
  5465. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000299");
  5466. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5467. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5468. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5469. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5470. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5471. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5472. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5473. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5474. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5475. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  5476. /*
  5477. var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  5478. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/instcd", "");
  5479. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rechistseq", "");
  5480. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemno", "");
  5481. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/fstlevlitemcd", fstlevlitemcd);
  5482. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formcd", formcd);//"0000000901");
  5483. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formdegnseq", formdegnseq);
  5484. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemno", degnitemno);
  5485. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemcd", degnitemcd);
  5486. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemkind", "GRD");
  5487. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/orgdegnitemkind", "CCN");
  5488. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlno", degnitemlevlno);
  5489. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemnm", degnitemnm);
  5490. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5491. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermcd", "");
  5492. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermnm", "");
  5493. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recrefcd", "");
  5494. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemnm", "");
  5495. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/reccnts", "");
  5496. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/unitnm", unitnm);
  5497. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recimge", "");
  5498. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rowno", "0");
  5499. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/colno", "");
  5500. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/instcd", "");
  5501. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rechistseq", "");
  5502. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemno", "");
  5503. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/fstlevlitemcd", fstlevlitemcd);
  5504. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formcd", formcd);//"0000000901");
  5505. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formdegnseq", formdegnseq);
  5506. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemno", ++g_maxdegnitemno);
  5507. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemcd", "0000931001");
  5508. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemkind", "GSU");
  5509. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5510. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemnm", "주호소");
  5511. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlcd", degnitemlevlcd + ".0000931");
  5512. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermcd", "");
  5513. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermnm", "");
  5514. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recrefcd", "");
  5515. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemnm", "");
  5516. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/reccnts", "");
  5517. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/unitnm", "");
  5518. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recimge", "");
  5519. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rowno", "0");
  5520. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/colno", "0");
  5521. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/instcd", "");
  5522. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rechistseq", "");
  5523. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemno", "");
  5524. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/fstlevlitemcd", fstlevlitemcd);
  5525. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formcd", formcd);//"0000000901");
  5526. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formdegnseq", formdegnseq);
  5527. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemno", ++g_maxdegnitemno);
  5528. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemcd", "0000299002");
  5529. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemkind", "GSU");
  5530. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5531. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemnm", "발생일");
  5532. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlcd", degnitemlevlcd + ".0000299");
  5533. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermcd", "");
  5534. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermnm", "");
  5535. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recrefcd", "");
  5536. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemnm", "");
  5537. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/reccnts", "");
  5538. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/unitnm", "");
  5539. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recimge", "");
  5540. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rowno", "0");
  5541. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/colno", "1");
  5542. */
  5543. }
  5544. /**
  5545. * @desc : 서식디스플레이 함수
  5546. * @id :
  5547. * @event :
  5548. * @return :
  5549. * @authur : 이상현
  5550. */
  5551. function previewByDegnItems(formmastRef, degnitemRef, vallistRef, imglistRef, recMode, supdegnitemcd, viewobj, bDraw)
  5552. {
  5553. //if(viewobj == null)
  5554. // viewobj = window;
  5555. //if(pageInfo == null)
  5556. var pageInfo = new PAGEINFO(viewobj);
  5557. //if(supdegnitemcd == null)
  5558. // supdegnitemcd = "";
  5559. if(bDraw == null)
  5560. bDraw = true;
  5561. pageInfo.fstLevlItemCd = supdegnitemcd;
  5562. if(vallistRef == null || imglistRef == null)
  5563. {
  5564. copyNodeset(grd_pltte.attribute("nodeset"), degnitemRef, "replace", model, opener.model);
  5565. grd_pltte.rebuild();
  5566. for(var i = grd_pltte.fixedRows; i < grd_pltte.rows; i++)
  5567. {
  5568. grd_pltte.rowstatus(i) = 1;
  5569. }
  5570. model.makeValue("/root/send/degnitems", grd_pltte.getUpdateData());
  5571. submit("TRMRF01304");
  5572. }
  5573. else
  5574. {
  5575. copyNodeset(pageInfo.formmastRef, formmastRef, "replace", model, opener.model);
  5576. copyNodeset(pageInfo.formdegnRef, degnitemRef, "replace", model, opener.model);
  5577. copyNodeset(pageInfo.vallistRef, vallistRef, "replace", model, opener.model);
  5578. copyNodeset(pageInfo.imgelistRef, imglistRef, "replace", model, opener.model);
  5579. }
  5580. if(bDraw)
  5581. fCreateDegnBySelfInfo(pageInfo, viewobj, recMode);
  5582. }
  5583. var gLogNo = 0;
  5584. /**
  5585. * @desc : User Log 생성
  5586. * @id :
  5587. * @event :
  5588. * @return :
  5589. * @authur : 이상현
  5590. */
  5591. function SetUserLog(lognm, clsnm, cnts, show)
  5592. {
  5593. if (show == null)
  5594. {
  5595. show = false;
  5596. }
  5597. if (show)
  5598. {
  5599. alert(lognm +" / "+ clsnm +" / "+ cnts);
  5600. return;
  5601. }
  5602. try
  5603. {
  5604. var pathlog = "/root/temp/userlog/log";
  5605. if (gLogNo > 1000)
  5606. {
  5607. model.removeNodeset(pathlog);
  5608. gLogNo = 0;
  5609. idx = 1;
  5610. }
  5611. gLogNo++;
  5612. model.makeValue(pathlog+ "[" +gLogNo+ "]/no", gLogNo);
  5613. model.makeValue(pathlog+ "[" +gLogNo+ "]/time", getCurrentTime());
  5614. model.makeValue(pathlog+ "[" +gLogNo+ "]/lognm", lognm);
  5615. model.makeValue(pathlog+ "[" +gLogNo+ "]/clsnm", ""+clsnm);
  5616. if (cnts.indexOf("<", 0) > -1 || cnts.indexOf(">", 0) > -1)
  5617. {
  5618. model.makeValue(pathlog+ "[" +gLogNo+ "]/cnts", "");
  5619. model.setValue(pathlog+ "[" +gLogNo+ "]/cnts", cnts, true);
  5620. }
  5621. else
  5622. {
  5623. model.makeValue(pathlog+ "[" +gLogNo+ "]/cnts", cnts);
  5624. }
  5625. }
  5626. catch (e)
  5627. {
  5628. SetUserLog("[ERROR! SetUserLog]" + lognm, clsnm, cnts, true)
  5629. throw e;
  5630. }
  5631. }
  5632. var butter;
  5633. var StringBuffer = function() {
  5634. this.buffer = new Array();
  5635. }
  5636. StringBuffer.prototype.append = function(obj) {
  5637. this.buffer.push(obj);
  5638. }
  5639. StringBuffer.prototype.toString = function() {
  5640. return this.buffer.join("");
  5641. }
  5642. /**
  5643. * @desc : 프로그램 서식의 인스턴스 생성
  5644. * @id :
  5645. * @event :
  5646. * @return :
  5647. * @authur : 이상현
  5648. */
  5649. function makeProgInstance_old(pageInfo, instance, nodelistMain)
  5650. {
  5651. var instance = document.models(0).instances(0);
  5652. var nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  5653. var nodelistRecitem = instance.selectNodes("/root/main/recinfo/recitem");
  5654. var iRecleng = nodelistRecitem.length;
  5655. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  5656. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5657. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5658. var degnitemcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemcd");
  5659. var degnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemno");
  5660. var degnitemkind = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemkind");
  5661. var degnitemlevlno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlno");
  5662. var degnitemnm = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemnm");
  5663. var unitnm = model.getValue(gPrePath_formdegnRef + 1 + "]/unitnm");
  5664. var degnitemlevlcd = "";
  5665. var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[supdegnitemno='"+degnitemno+"' and degnitemkind='GSU']");
  5666. if(pageInfo.fstLevlItemCd != ""){
  5667. degnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  5668. }else{
  5669. degnitemlevlcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  5670. //degnitemlevlcd = parent.model.instances(0).selectSingleNode(pageInfo.formdegnRef +"[degnitemcd=" + degnitemcd + "]/degnitemlevlcd").text
  5671. }
  5672. var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5673. if(pageInfo.fstLevlItemCd != ""){
  5674. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5675. }
  5676. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  5677. var valgrupcd = model.getValue(gPrePath_formdegnRef + 1 + "]/valgrupcd");
  5678. var degnattrval = model.getValue(gPrePath_formdegnRef + 1 + "]/degnattrval");
  5679. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  5680. var degnunitcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnunitcd");
  5681. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef + 1 + "]/itemattrval"), "gridtype");
  5682. //var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + 1 + "']");
  5683. var iFndRow = 0;
  5684. var iLeng = 0;
  5685. var prepath_formdegnRef_GSUdegnitemno = pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + degnitemno;
  5686. if(nodelistMain.length >= 1){
  5687. for(var i = 1; i <= nodelistMain.length; i++)
  5688. {
  5689. var col = 0;
  5690. //var diff = 0;
  5691. var tempMainNode = nodelistMain.item(i - 1);
  5692. var compcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/rectermcd");
  5693. var compcnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/reccnts");
  5694. var colno = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/colno");
  5695. if(compcnts != ""){
  5696. iFndRow = getNodesetCnt(model, pageInfo.recItemRef + "/recitem[recitemnm='" + compcnts + "' and colno='" + colno + "']"); //중복항목 존재여부검사
  5697. if(iFndRow > 0){
  5698. iRecleng = iRecleng - 1;
  5699. //diff++;
  5700. }else if(iFndRow <= 0){
  5701. iLeng = i + iRecleng;
  5702. //alert("iLeng="+iLeng);
  5703. model.makeValue(gPrePath_recItemRef + iLeng + "]/instcd", "");
  5704. model.makeValue(gPrePath_recItemRef + iLeng + "]/rechistseq", "");
  5705. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitemno", "");
  5706. model.makeValue(gPrePath_recItemRef + iLeng + "]/fstlevlitemcd", fstlevlitemcd);
  5707. model.makeValue(gPrePath_recItemRef + iLeng + "]/formcd", formcd);
  5708. model.makeValue(gPrePath_recItemRef + iLeng + "]/formdegnseq", formdegnseq);
  5709. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemno", degnitemno);
  5710. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemcd", degnitemcd);
  5711. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemkind", degnitemkind);
  5712. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemlevlno", degnitemlevlno);
  5713. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemnm", degnitemnm);
  5714. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemlevlcd", degnitemlevlcd);
  5715. model.makeValue(gPrePath_recItemRef + iLeng + "]/rectermcd", "");
  5716. model.makeValue(gPrePath_recItemRef + iLeng + "]/rectermnm", "");
  5717. model.makeValue(gPrePath_recItemRef + iLeng + "]/recrefcd", "");
  5718. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitemnm", "");
  5719. model.makeValue(gPrePath_recItemRef + iLeng + "]/reccnts", "");
  5720. model.makeValue(gPrePath_recItemRef + iLeng + "]/unitnm", unitnm);
  5721. model.makeValue(gPrePath_recItemRef + iLeng + "]/recimge", "");
  5722. model.makeValue(gPrePath_recItemRef + iLeng + "]/srcimge", "");
  5723. model.makeValue(gPrePath_recItemRef + iLeng + "]/rowno", iLeng - 1);
  5724. model.makeValue(gPrePath_recItemRef + iLeng + "]/colno", "");
  5725. model.makeValue(gPrePath_recItemRef + iLeng + "]/supdegnitemno", supdegnitemno);
  5726. model.makeValue(gPrePath_recItemRef + iLeng + "]/extdegnitemlevlcd", "");
  5727. model.makeValue(gPrePath_recItemRef + iLeng + "]/rectermflag", "");
  5728. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnunitcd", degnunitcd);
  5729. //for(var j = 0; j < tempMainNode.childNodes.length; j++)
  5730. for(var j = 0; j < subcnt; j++)
  5731. {
  5732. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  5733. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  5734. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  5735. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  5736. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  5737. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  5738. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  5739. var subsupdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/supdegnitemno").item(j).text;
  5740. var subdegnunitcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitcd").item(j).text;
  5741. var subdegnitemlevlcd = "";
  5742. if(pageInfo.fstLevlItemCd != ""){
  5743. subdegnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  5744. }else{
  5745. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  5746. }
  5747. //var subfstlevlitemcd = subdegnitemlevlcd.split(".")[0];
  5748. //if(pageInfo.fstLevlItemCd != ""){
  5749. // subfstlevlitemcd = pageInfo.fstLevlItemCd;
  5750. //}
  5751. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  5752. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  5753. if(pageInfo.fstLevlItemCd != "")
  5754. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  5755. var rectermcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermcd");
  5756. var reccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/reccnts");
  5757. if (reccnts == "-")
  5758. {
  5759. reccnts = "";
  5760. }
  5761. var cntsyn = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cntsyn");
  5762. var ccflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/ccflag");
  5763. var rectermflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermflag");
  5764. var cccnts = "";
  5765. //alert('rectermcd='+rectermcd+', reccnts='+reccnts+', rectermflag='+rectermflag+', subdegnitemkind='+subdegnitemkind);
  5766. if (ccflag == "CC")
  5767. {
  5768. cccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cccnts");
  5769. }
  5770. var jIdx = j + 1;
  5771. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/instcd", "");
  5772. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rechistseq", "");
  5773. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recitemno", "");
  5774. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  5775. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/formcd", formcd);
  5776. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/formdegnseq", formdegnseq);
  5777. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemno", subdegnitemno);
  5778. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemcd", subdegnitemcd);
  5779. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemkind", subdegnitemkind);
  5780. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemlevlno", subdegnitemlevlno);
  5781. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemnm", subdegnitemnm);
  5782. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  5783. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermcd", rectermcd);
  5784. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recitemnm", "");
  5785. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recrefcd", "");
  5786. if(cntsyn == "N" || cntsyn == ""){
  5787. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermnm", reccnts);
  5788. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/reccnts", cccnts);
  5789. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermflag", rectermflag);
  5790. } else if(cntsyn == "Y") {
  5791. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermnm", "");
  5792. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/reccnts", reccnts);
  5793. }
  5794. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/unitnm", subunitnm);
  5795. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recimge", "");
  5796. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/srcimge", "");
  5797. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rowno", iLeng - 1);
  5798. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/colno", j);
  5799. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/supdegnitemno", subsupdegnitemno);
  5800. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/extdegnitemlevlcd", "");
  5801. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnunitcd", subdegnunitcd);
  5802. }
  5803. }
  5804. col++;
  5805. }
  5806. }
  5807. grd_diaglist.rebuild();
  5808. }
  5809. model.removeNodeset("/root/main/selectdiaglist");
  5810. }
  5811. /**
  5812. * @desc : 프로그램 서식의 인스턴스 생성
  5813. * @id :
  5814. * @event :
  5815. * @return :
  5816. * @authur : 이상현
  5817. */
  5818. function makeProgInstance(pageInfo, instance, nodelistMain)
  5819. {
  5820. var instance = document.models(0).instances(0);
  5821. var nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  5822. var nodelistRecitem = instance.selectNodes("/root/main/recinfo/grid");
  5823. var iRecleng = nodelistRecitem.length;
  5824. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  5825. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5826. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5827. var degnitemcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemcd");
  5828. var degnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemno");
  5829. var degnitemkind = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemkind");
  5830. //var degnitemlevlno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlno");
  5831. var degnitemlevlno = "";
  5832. var degnitemnm = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemnm");
  5833. var unitnm = model.getValue(gPrePath_formdegnRef + 1 + "]/unitnm");
  5834. var degnitemlevlcd = "";
  5835. var orgdegnitemkind = "";
  5836. var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[supdegnitemno='"+degnitemno+"' and degnitemkind='GSU']");
  5837. // if(pageInfo.fstLevlItemCd != ""){
  5838. // degnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  5839. // }else{
  5840. // degnitemlevlcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  5841. // //degnitemlevlcd = parent.model.instances(0).selectSingleNode(pageInfo.formdegnRef +"[degnitemcd=" + degnitemcd + "]/degnitemlevlcd").text
  5842. // }
  5843. //
  5844. var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5845. //
  5846. // if(pageInfo.fstLevlItemCd != ""){
  5847. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  5848. // }
  5849. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  5850. var valgrupcd = model.getValue(gPrePath_formdegnRef + 1 + "]/valgrupcd");
  5851. var degnattrval = model.getValue(gPrePath_formdegnRef + 1 + "]/degnattrval");
  5852. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  5853. var degnunitcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnunitcd");
  5854. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef + 1 + "]/itemattrval"), "gridtype");
  5855. //var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + 1 + "']");
  5856. var iFndRow = 0;
  5857. var iLeng = 0;
  5858. var col = 0;
  5859. var prepath_formdegnRef_GSUdegnitemno = pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + degnitemno;
  5860. var tempgrdNodeList = instance1.selectNodes(gPageInfo_EMR.initRecinfoGridRef);
  5861. if(nodelistMain.length >= 1){
  5862. for(var i = 1; i <= nodelistMain.length; i++)
  5863. {
  5864. //var diff = 0;
  5865. var tempMainNode = nodelistMain.item(i - 1);
  5866. var compcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/rectermcd");
  5867. var compcnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/reccnts");
  5868. var colno = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/colno");
  5869. degnitemno = tempgrdNodeList.item(0).selectSingleNode("degnitemno").text;
  5870. degnitemlevlcd = tempgrdNodeList.item(0).selectSingleNode("degnitemlevlcd").text;
  5871. fstlevlitemcd = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("fstlevlitemcd").text;
  5872. orgdegnitemkind = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("orgdegnitemkind").text;
  5873. degnitemlevlno = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("degnitemlevlno").text;
  5874. orgdegnitemkind = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("orgdegnitemkind").text;
  5875. if(compcnts != "" || compcd == "-"){
  5876. iFndRow = getNodesetCnt(model, pageInfo.recInfoGridRef + "/recitem[recitemnm='" + compcnts + "' and colno='" + colno + "']"); //중복항목 존재여부검사
  5877. if(iFndRow > 0){
  5878. iRecleng = iRecleng - 1;
  5879. //diff++;
  5880. }else if(iFndRow <= 0){
  5881. //iLeng = (i + iRecleng) - col;
  5882. iLeng = i + iRecleng;
  5883. //alert("iLeng="+iLeng);
  5884. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]", "");
  5885. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/degnitemno", degnitemno);
  5886. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/degnitemlevlcd", degnitemlevlcd);
  5887. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/instcd", "");
  5888. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rechistseq", "");
  5889. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recitemno", "");
  5890. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/fstlevlitemcd", fstlevlitemcd);
  5891. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/formcd", formcd);
  5892. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/formdegnseq", formdegnseq);
  5893. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemno", degnitemno);
  5894. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemcd", degnitemcd);
  5895. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemkind", degnitemkind);
  5896. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/orgdegnitemkind", orgdegnitemkind);
  5897. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemlevlno", degnitemlevlno);
  5898. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemnm", degnitemnm);
  5899. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemlevlcd", degnitemlevlcd);
  5900. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rectermcd", "");
  5901. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rectermnm", "");
  5902. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recrefcd", "");
  5903. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recitemnm", "");
  5904. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/reccnts", "");
  5905. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/unitnm", unitnm);
  5906. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recimge", "");
  5907. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/srcimge", "");
  5908. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rowno", iLeng - 1);
  5909. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/colno", "-1");
  5910. //for(var j = 0; j < tempMainNode.childNodes.length; j++)
  5911. var itemNodeList = tempgrdNodeList.item(0).selectNodes("recitem");
  5912. for(var j = 0; j < subcnt; j++)
  5913. {
  5914. var recitemNode = itemNodeList.item(j + 1);
  5915. //iLeng = iLeng + j + 1;
  5916. // var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  5917. // var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  5918. // var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  5919. // var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  5920. // var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  5921. // var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  5922. // var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  5923. //
  5924. // var subsupdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/supdegnitemno").item(j).text;
  5925. // var subdegnunitcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitcd").item(j).text;
  5926. //
  5927. // var subdegnitemlevlcd = "";
  5928. //
  5929. // if(pageInfo.fstLevlItemCd != ""){
  5930. // subdegnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  5931. // }else{
  5932. // subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  5933. // }
  5934. //
  5935. //
  5936. // var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  5937. // var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  5938. // if(pageInfo.fstLevlItemCd != "")
  5939. // subfstlevlitemcd = pageInfo.fstLevlItemCd;
  5940. var rectermcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermcd");
  5941. var reccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/reccnts");
  5942. if (reccnts == "-")
  5943. {
  5944. reccnts = "";
  5945. }
  5946. var cntsyn = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cntsyn");
  5947. var ccflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/ccflag");
  5948. var rectermflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermflag");
  5949. var cccnts = "";
  5950. if (ccflag == "CC")
  5951. {
  5952. cccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cccnts");
  5953. //주호소의 경우 termcd가 없을경우가 있으므로, tremcd가 없을경우 저장시 배제됨
  5954. if (rectermcd == "" && (cntsyn == "N" || cntsyn == "") && reccnts != "")
  5955. {
  5956. rectermcd = "-";
  5957. }
  5958. }
  5959. var jIdx = j + 1;
  5960. var subfstlevlitemcd = recitemNode.selectSingleNode("fstlevlitemcd").text;
  5961. var subdegnitemno = recitemNode.selectSingleNode("degnitemno").text;
  5962. var subdegnitemcd = recitemNode.selectSingleNode("degnitemcd").text;
  5963. var subdegnitemkind = recitemNode.selectSingleNode("degnitemkind").text;
  5964. var subdegnitemlevlno = recitemNode.selectSingleNode("degnitemlevlno").text;
  5965. var subdegnitemnm = recitemNode.selectSingleNode("degnitemnm").text;
  5966. var subdegnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text;
  5967. var subunitnm = recitemNode.selectSingleNode("unitnm").text;
  5968. var subsupdegnitemno = recitemNode.selectSingleNode("supdegnitemno").text;
  5969. var subdegnunitcd = recitemNode.selectSingleNode("degnunitcd").text;
  5970. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/instcd", "");
  5971. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rechistseq", "");
  5972. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recitemno", "");
  5973. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/fstlevlitemcd", subfstlevlitemcd);
  5974. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/formcd", formcd);
  5975. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/formdegnseq", formdegnseq);
  5976. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemno", subdegnitemno);
  5977. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemcd", subdegnitemcd);
  5978. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemkind", subdegnitemkind);
  5979. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemlevlno", subdegnitemlevlno);
  5980. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemnm", subdegnitemnm);
  5981. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemlevlcd", subdegnitemlevlcd);
  5982. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermcd", rectermcd);
  5983. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recitemnm", "");
  5984. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recrefcd", "");
  5985. if(cntsyn == "N" || cntsyn == "")
  5986. {
  5987. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermnm", reccnts);
  5988. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/reccnts", cccnts);
  5989. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermflag", rectermflag);
  5990. } else if(cntsyn == "Y") {
  5991. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermnm", "");
  5992. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/reccnts", reccnts);
  5993. }
  5994. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/unitnm", subunitnm);
  5995. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recimge", "");
  5996. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/srcimge", "");
  5997. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rowno", iLeng - 1);
  5998. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/colno", j);
  5999. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/supdegnitemno", subsupdegnitemno);
  6000. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/extdegnitemlevlcd", "");
  6001. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnunitcd", subdegnunitcd);
  6002. }
  6003. }
  6004. col++;
  6005. }
  6006. }
  6007. grd_diaglist.rebuild();
  6008. }
  6009. model.removeNodeset("/root/main/selectdiaglist");
  6010. }
  6011. /**
  6012. * @desc : 디자인항목순번으로 데이터를 가져온다
  6013. * @id :
  6014. * @event :
  6015. * @return :
  6016. * @authur : 이상현
  6017. */
  6018. function getItemDataByDegnItemNo(degnitemno, pmodel)
  6019. {
  6020. if(pmodel == null)
  6021. pmodel = model;
  6022. var pageInfo = new PAGEINFO();
  6023. var itemVal = new ITEMVAL();
  6024. itemVal.rectermcd = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermcd");
  6025. itemVal.rectermcd = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermnm");
  6026. itemVal.reccnts = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts");
  6027. itemVal.recimge = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge");
  6028. return itemVal;
  6029. }
  6030. /**
  6031. * @desc : 디자인항목코드로 데이터를 가져온다
  6032. * @id :
  6033. * @event :
  6034. * @return :
  6035. * @authur : 이상현
  6036. */
  6037. function getItemDataByDegnItemCd(degnitemcd, pmodel)
  6038. {
  6039. if(pmodel == null)
  6040. pmodel = model;
  6041. var pageInfo = new PAGEINFO();
  6042. var ins = pmodel.instances(0);
  6043. var nodeList = ins.selectNodes(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval");
  6044. var arrItemVal = new Array();
  6045. for(var i = 0; i < nodeList.length; i++)
  6046. {
  6047. var node = nodeList.item(i);
  6048. arrItemVal[i] = node.text;
  6049. }
  6050. return arrItemVal;
  6051. }
  6052. /**
  6053. * @desc : 디자인항목순번으로 데이터를 셋팅한다
  6054. * @id :
  6055. * @event :
  6056. * @return :
  6057. * @authur : 이상현
  6058. */
  6059. function setItemDataByDegnItemNo(degnitemno, itemval, type, pmodel, overWrite)
  6060. {
  6061. // type : 1 - rectermcd, 2 - reccnts, 3 - recimge
  6062. if(pmodel == null)
  6063. pmodel = model;
  6064. if(overWrite == null)
  6065. overWrite = true;
  6066. var pageInfo = new PAGEINFO();
  6067. var path = "";
  6068. if(type == 1)
  6069. {
  6070. path = pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermcd";
  6071. }
  6072. else if(type == 2)
  6073. {
  6074. path = pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts";
  6075. }
  6076. else if(type == 3)
  6077. {
  6078. path = pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge";
  6079. }
  6080. if(!overWrite)
  6081. {
  6082. overWrite = pmodel.getValue(path) == "" ? true : false;
  6083. }
  6084. if(overWrite)
  6085. {
  6086. pmodel.setValue(path, itemval);
  6087. }
  6088. else
  6089. {
  6090. pmodel.setValue(path, pmodel.getValue(path) + "\n\n" + itemval);
  6091. }
  6092. pmodel.refresh();
  6093. }
  6094. /**
  6095. * @desc : 디자인항목코드로 데이터를 셋팅한다
  6096. * @id :
  6097. * @event :
  6098. * @return :
  6099. * @authur : 이상현
  6100. */
  6101. function setItemDataByDegnItemCd(degnitemcd, itemval, pmodel)
  6102. {
  6103. if(pmodel == null)
  6104. pmodel = model;
  6105. var pageInfo = new PAGEINFO();
  6106. //pmodel.setValue(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval", itemval);
  6107. var nodeList = ins.selectNodes(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval");
  6108. for(var i = 0; i < nodeList.length; i++)
  6109. {
  6110. var node = nodeList.item(i);
  6111. node.text = itemval;
  6112. }
  6113. //pmodel.refresh();
  6114. }
  6115. /**
  6116. * @desc : 팝업으로 띄우는 서식여부
  6117. * @id :
  6118. * @event :
  6119. * @return :
  6120. * @authur : 이상현
  6121. */
  6122. function isOpenModalForm(formprogflag)
  6123. {
  6124. if (isPopup())
  6125. return false;
  6126. else if (formprogflag == "-" || formprogflag == "PROF" || formprogflag == "OCR")
  6127. return true;
  6128. else
  6129. return false;
  6130. }
  6131. /**
  6132. * @desc : 선택아이템 여부
  6133. * @id :
  6134. * @event :
  6135. * @return :
  6136. * @authur : 이상현
  6137. */
  6138. function isSelectItem(degnitemkind)
  6139. {
  6140. if(degnitemkind == "RDO" || degnitemkind == "CHK" || degnitemkind == "CMB" ||
  6141. degnitemkind == "BOL" || degnitemkind == "SSU" || degnitemkind == "ISU")
  6142. return true;
  6143. return false;
  6144. }
  6145. /**
  6146. * @desc : 컨텍스트메뉴 추가
  6147. * @id :
  6148. * @event :
  6149. * @return :
  6150. * @authur : 이상현
  6151. */
  6152. function addCntxMenu(name, func, paramlist, menuRef)
  6153. {
  6154. if(menuRef == null)
  6155. menuRef = "/root/hidden/menu/item";
  6156. var idx = getNodesetCnt(model, "/root/hidden/menu/item") + 1;
  6157. model.makeValue(menuRef + "[" + idx + "]/name", name);
  6158. model.makeValue(menuRef + "[" + idx + "]/func", func);
  6159. if(paramlist == null)
  6160. return;
  6161. for(var i = 0; i < paramlist.length; i++)
  6162. {
  6163. var param = paramlist[i];
  6164. model.makeValue(menuRef + "[" + idx + "]/param[" + (i + 1) + "]/name", param.name);
  6165. model.makeValue(menuRef + "[" + idx + "]/param[" + (i + 1) + "]/value", param.value);
  6166. }
  6167. }
  6168. /**
  6169. * @desc : 컨텍스트메뉴 삭제
  6170. * @id :
  6171. * @event :
  6172. * @return :
  6173. * @authur : 이상현
  6174. */
  6175. function removeCntxMenu(func, menuRef)
  6176. {
  6177. if(menuRef == null)
  6178. menuRef = "/root/hidden/menu/item";
  6179. var menuNode = model.instances(0).selectSingleNode(menuRef + "[func = '" + func + "']");
  6180. if(menuNode != null)
  6181. menuNode.parentNode.removeChild(menuNode);
  6182. }
  6183. /**
  6184. * @desc : 컨텍스트메뉴 찾기
  6185. * @id :
  6186. * @event :
  6187. * @return :
  6188. * @authur : 이상현
  6189. */
  6190. function findCntxMenu(func, menuRef)
  6191. {
  6192. if(menuRef == null)
  6193. menuRef = "/root/hidden/menu/item";
  6194. var menuNode = model.instances(0).selectSingleNode(menuRef + "[func = '" + func + "']");
  6195. return menuNode;
  6196. }
  6197. /**
  6198. * @desc : 파라미터로 컨텍스트메뉴 추가
  6199. * @id :
  6200. * @event :
  6201. * @return :
  6202. * @authur : 이상현
  6203. */
  6204. function findCntxMenuParamList(menuNode)
  6205. {
  6206. var paramNodeList = menuNode.selectNodes("param");
  6207. var arrParam = new Array();
  6208. for(var i = 0; i < paramNodeList.length; i++)
  6209. {
  6210. var paramNode = paramNodeList.item(i);
  6211. var param = new PARAM(paramNode.selectSingleNode("name").text, paramNode.selectSingleNode("value").text);
  6212. arrParam[i] = param;
  6213. }
  6214. return arrParam;
  6215. }
  6216. /**
  6217. * @desc : 문자열 길이 구함
  6218. * @id :
  6219. * @event :
  6220. * @return :
  6221. * @authur : 이상현
  6222. */
  6223. function getSrchStrCnt(srcStr, srchStr)
  6224. {
  6225. var arrStr = srcStr.split(srchStr);
  6226. return arrStr.length - 1;
  6227. }
  6228. /**
  6229. * @desc : 시간로그 셋팅
  6230. * @id :
  6231. * @event :
  6232. * @return :
  6233. * @authur : 이상현
  6234. */
  6235. function setTimeLog(pModel, pFlag, pTime)
  6236. {
  6237. var cnt = getNodesetCnt(pModel, "/root/emrtemp/times/" + pFlag)+1;
  6238. model.makeValue("/root/emrtemp/times/"+pFlag+"[" +cnt+ "]/time", pTime);
  6239. }
  6240. /**
  6241. * @desc : 로그 셋팅
  6242. * @id :
  6243. * @event :
  6244. * @return :
  6245. * @authur : 이상현
  6246. */
  6247. function addEmrLog(logcnts)
  6248. {
  6249. model.addlog("[EMR FORM LOG] " + logcnts);
  6250. }
  6251. //var gTimeLogCnt = 0;
  6252. /**
  6253. * @desc : 사용자 시간로그 셋팅
  6254. * @id :
  6255. * @event :
  6256. * @return :
  6257. * @authur : 이상현
  6258. */
  6259. function SetUserTimeLog(lognm, clsenm, pmodel)
  6260. {
  6261. if(pmodel == null)
  6262. {
  6263. if (isPopup())
  6264. pmodel = opener.model;
  6265. else
  6266. pmodel = model;
  6267. }
  6268. if (isPopup())
  6269. {
  6270. lognm = "(p)" + lognm;
  6271. }
  6272. if (getUserId() == "EMR" || getMainDomain().indexOf("localhost") > -1 || getUserId() == "emr")
  6273. {
  6274. var dt = new Date();
  6275. //gTimeLogCnt++;
  6276. var logCnt = getNodesetCnt(pmodel, "/root/timelog/log");
  6277. logCnt++;
  6278. var log = lognm +"\t"+ clsenm +"\t"+ dt.getTime()+"\t";
  6279. pmodel.makeValue("/root/timelog/log[" +logCnt+ "]", log);
  6280. addEmrLog(log);
  6281. }
  6282. else
  6283. {
  6284. var dt = new Date();
  6285. var log = lognm +"\t"+ clsenm +"\t"+ dt.getTime()+"\t";
  6286. addEmrLog(log);
  6287. }
  6288. }
  6289. /**
  6290. * @desc : 이벤트 셋팅
  6291. * @id :
  6292. * @event :
  6293. * @return :
  6294. * @authur : 이상현
  6295. */
  6296. function setComnEvent(srcformcd, degnitemno, ctrlid)
  6297. {
  6298. if(ctrlid == null)
  6299. ctrlid = "MTX_" + degnitemno;
  6300. //alert(ctrlid);
  6301. var ctrl = document.controls(ctrlid);
  6302. ctrl.attribute("onmouseup") = "saveSelectionText('" + degnitemno + "', '" + ctrlid +"')";
  6303. ctrl.attribute("onkeyup") = "saveSelectionText('" + degnitemno + "', '" + ctrlid +"')";
  6304. //ctrl.attribute("onkeypress") = "keyPress('" + srcformcd + "', '" + degnitemno + "', '" + ctrlid +"')";
  6305. ctrl.attribute("onmousedown") = "if(event.button == 3){showComnMenu('" + srcformcd + "', '" + degnitemno + "', '" + ctrlid +"');}";
  6306. ctrl.attribute("DOMFocusOut") = "window.setPopupMenu(false);";
  6307. //alert(ctrl.attribute("onmousedown"));
  6308. }
  6309. /**
  6310. * @desc : 마우스오른쪽버튼 클릭 메뉴 표시
  6311. * @id :
  6312. * @event :
  6313. * @return :
  6314. * @authur : 이상현
  6315. */
  6316. function showComnMenu(srcFormCd, degnitemno, ctrlid)
  6317. {
  6318. setParameter("comn_srcFormCd", srcFormCd);
  6319. setParameter("comn_degnitemno", degnitemno);
  6320. setParameter("comn_ctrlid", ctrlid);
  6321. //메뉴 초기화
  6322. model.removeNodeset("/root/hidden/menu/item");
  6323. addCntxMenu("상용구 선택", "selectComnuseMenu");
  6324. //박종훈 작업(뷰어테스트가 완료되지 않아 주석처리)
  6325. addCntxMenu("", "");
  6326. addCntxMenu("잘라내기 Ctrl+X", "selectCutMenu");
  6327. addCntxMenu("복사 Ctrl+C ", "selectCopyMenu");
  6328. addCntxMenu("붙여넣기 Ctrl+V", "selectPasteMenu");
  6329. addCntxMenu("삭제 Del", "selectDeleteMenu");
  6330. addCntxMenu("", "");
  6331. addCntxMenu("모두선택 Ctrl+A", "selectSelAllMenu");
  6332. //박종훈 작업 끝
  6333. /*addCntxMenu("예문 선택", "selectExamuseMenu");
  6334. addCntxMenu("", "");
  6335. addCntxMenu("상용구 등록", "addComnuseMenu");
  6336. addCntxMenu("예문 등록", "addExamuseMenu");*/
  6337. if(document.controls(event.focus) != null)
  6338. {
  6339. if(document.controls(event.focus).elementName == "xforms:textarea")
  6340. window.setPopupMenu(true, "/root/hidden/menu/item", "name", "func", false);//사용자지정팝업메뉴설정
  6341. }
  6342. }
  6343. /**
  6344. * @desc : 키누름 이벤트
  6345. * @id :
  6346. * @event :
  6347. * @return :
  6348. * @authur : 이상현
  6349. */
  6350. function keyPress(srcFormCd, degnitemno, ctrlid)
  6351. {
  6352. return;
  6353. if(ctrlid == null)
  6354. ctrlid = "MTX_" + degnitemno;
  6355. if(event.ctrlKey)
  6356. {
  6357. switch(event.keyCode)
  6358. {
  6359. case 17 : //'q' 113
  6360. selectComnuse(srcFormCd, degnitemno, 'C', ctrlid);
  6361. break;
  6362. case 23 : //'w' 119
  6363. selectComnuse(srcFormCd, degnitemno, 'E', ctrlid);
  6364. break;
  6365. case 5 : //'e' 101
  6366. addComnuse(srcFormCd, degnitemno, 'C', ctrlid);
  6367. break;
  6368. case 18 : //'r' 114
  6369. addComnuse(srcFormCd, degnitemno, 'E', ctrlid);
  6370. break;
  6371. }
  6372. }
  6373. }
  6374. /**
  6375. * @desc : 상용구 메뉴 선택
  6376. * @id :
  6377. * @event :
  6378. * @return :
  6379. * @authur : 이상현
  6380. */
  6381. function selectComnuseMenu()
  6382. {
  6383. selectComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6384. }
  6385. /**
  6386. * @desc : 복사 메뉴 선택
  6387. * @id :
  6388. * @event :
  6389. * @return :
  6390. * @authur : 박종훈
  6391. */
  6392. function selectCopyMenu()
  6393. {
  6394. selectCopy(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6395. }
  6396. /**
  6397. * @desc : 잘라내기 메뉴 선택
  6398. * @id :
  6399. * @event :
  6400. * @return :
  6401. * @authur : 박종훈
  6402. */
  6403. function selectCutMenu()
  6404. {
  6405. selectCut(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6406. }
  6407. /**
  6408. * @desc : 모두선택 메뉴 선택
  6409. * @id :
  6410. * @event :
  6411. * @return :
  6412. * @authur : 박종훈
  6413. */
  6414. function selectSelAllMenu()
  6415. {
  6416. selectSelAll(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6417. }
  6418. /**
  6419. * @desc : 붙여넣기 메뉴 선택
  6420. * @id :
  6421. * @event :
  6422. * @return :
  6423. * @authur : 박종훈
  6424. */
  6425. function selectPasteMenu()
  6426. {
  6427. selectPaste(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6428. }
  6429. /**
  6430. * @desc : 삭제 메뉴 선택
  6431. * @id :
  6432. * @event :
  6433. * @return :
  6434. * @authur : 박종훈
  6435. */
  6436. function selectDeleteMenu()
  6437. {
  6438. selectDelete(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6439. }
  6440. /**
  6441. * @desc : 예문 메뉴 선택
  6442. * @id :
  6443. * @event :
  6444. * @return :
  6445. * @authur : 이상현
  6446. */
  6447. function selectExamuseMenu()
  6448. {
  6449. selectComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "E", getParameter("comn_ctrlid"));
  6450. }
  6451. /**
  6452. * @desc : 상용구 메뉴 추가
  6453. * @id :
  6454. * @event :
  6455. * @return :
  6456. * @authur : 이상현
  6457. */
  6458. function addComnuseMenu()
  6459. {
  6460. addComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6461. }
  6462. /**
  6463. * @desc : 예문 메뉴 추가
  6464. * @id :
  6465. * @event :
  6466. * @return :
  6467. * @authur : 이상현
  6468. */
  6469. function addExamuseMenu()
  6470. {
  6471. addComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "E", getParameter("comn_ctrlid"));
  6472. }
  6473. /**
  6474. * @desc : 상용구전용 모달 함수
  6475. * @id :
  6476. * @event :
  6477. * @return :
  6478. * @authur : 이경희
  6479. */
  6480. function modalForComnUse(id,monNo,xPos,yPos,wid,ref,resultref,userProp,prevPos, authCode)
  6481. {
  6482. var rtn = "";
  6483. //body.disabled = true;
  6484. if (userProp == null) {
  6485. userProp = "min:hidden;max:hidden;";
  6486. } else {
  6487. userProp = "min:hidden;max:hidden;" + userProp;
  6488. }
  6489. if (authCode == null) {
  6490. setGlobalVariable("spclscrnauth", getAuthCode(""));
  6491. } else {
  6492. setGlobalVariable("spclscrnauth", getAuthCode(authCode));
  6493. }
  6494. rtn = openInternal("modal",id,"scn",monNo,xPos,yPos,wid,ref,resultref,userProp,prevPos);
  6495. //body.disabled = false;
  6496. return rtn;
  6497. }
  6498. /**
  6499. * @desc : 상용구 선택
  6500. * @id :
  6501. * @event :
  6502. * @return :
  6503. * @authur : 이상현
  6504. */
  6505. function selectComnuse(srcFormCd, degnitemno, chosflag, ctrlid)
  6506. {
  6507. // 타과인지 본인과인지 확인
  6508. var deptcd = getUserInfo("dutplcecd");
  6509. var formmastNode = opener.window.model.instances(0).selectSingleNode("/root/main/forminfo/formmast");
  6510. var supformcd = "";
  6511. var supformkind = "";
  6512. if(formmastNode != null)
  6513. {
  6514. var formcdNode = formmastNode.selectSingleNode("formcd");
  6515. var formprogflagNode = formmastNode.selectSingleNode("formprogflag");
  6516. var formprognmNode = formmastNode.selectSingleNode("formprognm");
  6517. var formdeptcdNode = formmastNode.selectSingleNode("formdeptcd");
  6518. var srcformcdNode = formmastNode.selectSingleNode("srcformcd");
  6519. var formkindNode = formmastNode.selectSingleNode("formkind");
  6520. supformcd = formcdNode.text;
  6521. supformkind = formkindNode.text;
  6522. // formcd로 변경
  6523. setParameter("comn_formprogflag", formprogflagNode.text);
  6524. // 공통서식인지 확인
  6525. if((formprogflagNode.text == "PROG" || formprogflagNode.text == "MAIN")
  6526. && formkindNode.text == "C" && formprognmNode.text != "")
  6527. {
  6528. srcFormCd = srcformcdNode.text; //formmastNode.selectSingleNode("srcformcd").text;
  6529. setParameter("deptflag", "U");
  6530. }
  6531. else if(formprogflagNode.text == "PROF") // 제증명
  6532. {
  6533. srcFormCd = srcformcdNode.text; //formmastNode.selectSingleNode("srcformcd").text;
  6534. setParameter("deptflag", "U");
  6535. }
  6536. else // 특수서식이면
  6537. {
  6538. // 특수 서식중에 타과 서식인지 사용자부서 서식인지 확인
  6539. if(deptcd == formdeptcdNode.text) // || formdeptcdNode.text == "-")
  6540. {
  6541. setParameter("deptflag", "U");
  6542. }
  6543. else
  6544. {
  6545. setParameter("deptflag", "E");
  6546. setParameter("otherdeptcd", formdeptcdNode.text);
  6547. }
  6548. }
  6549. }
  6550. if(ctrlid == null)
  6551. ctrlid = "MTX_" + degnitemno;
  6552. var ctrl = document.controls(ctrlid);
  6553. // 현재 입력중인 텍스트를 얻는다.
  6554. ctrl.dispatch("xforms-value-changed");
  6555. //var typingText = ctrl.currentText;
  6556. //var tempFocus = model.getFocus();
  6557. //model.setFocus(tempFocus);
  6558. /////////////////////////////////////
  6559. var txtSelPos = ctrl.selBegin;
  6560. var curText = ctrl.currentText;
  6561. var curTextBefore = curText.substr(0, txtSelPos);
  6562. var curTextAfter = curText.substr(txtSelPos, curText.length);
  6563. /////////////////////////////////////
  6564. var pageInfo = new PAGEINFO();
  6565. var fstlevlitemcd = model.getValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/fstlevlitemcd");
  6566. setParameter("openmode", "select");
  6567. setParameter("comn_chosflag", chosflag);
  6568. setParameter("comn_degnitemcd", fstlevlitemcd);
  6569. setParameter("comn_srcformcd", srcFormCd);
  6570. // 2008-10-23
  6571. // Modal 함수 내의 body.disable 때문에 커서가 안보이는 문제로 새로운 함수를 만듬
  6572. //modal("SPMRF04900",1 ,50, 50);
  6573. modalForComnUse("SPMRF04900",1 ,50, 50);
  6574. var comnuse = getParameter("comncnts"); //내용
  6575. if(comnuse == "")
  6576. return;
  6577. var pdocument = null;
  6578. var pmodel = null;
  6579. var pinstance = null;
  6580. //완성서식을 찾아간다.
  6581. var formcd = model.getValue(pageInfo.formmastRef + "/formcd");
  6582. var formkind = model.getValue(pageInfo.formmastRef + "/formkind");
  6583. if(supformcd == formcd) // 부분서식이 없는 완성서식에서 상용구를 사용하는 경우
  6584. {
  6585. if(supformkind == formkind) // 완성서식에서 상용구를 사용하는 경우
  6586. {
  6587. if(formkind == "C")
  6588. {
  6589. pdocument = document;
  6590. pmodel = model;
  6591. pinstance = instance1;
  6592. }
  6593. else if(formkind == "U")
  6594. {
  6595. pdocument = opener.document;
  6596. pmodel = opener.model;
  6597. pinstance = opener.instance1;
  6598. }
  6599. }
  6600. }
  6601. else // 부분서식이 있는 완성서식에서 상용구를 사용하는 경우
  6602. {
  6603. if(formkind == "C")
  6604. {
  6605. pdocument = document;
  6606. pmodel = model;
  6607. pinstance = instance1;
  6608. }
  6609. else if(formkind == "U")
  6610. {
  6611. pdocument = opener.document;
  6612. pmodel = opener.model;
  6613. pinstance = opener.instance1;
  6614. }
  6615. }
  6616. pmodel.refresh(); // ctrl 값이 사라짐.
  6617. var SetEndCursorPos = txtSelPos;
  6618. var arrComnuse = comnuse.split("▩");
  6619. for(var i = 0; i < arrComnuse.length - 1; i++)
  6620. {
  6621. //선택한 상용구를 분리한다.
  6622. var arrComncnts = arrComnuse[i].split("▦");
  6623. var degnitemcd = arrComncnts[0];
  6624. var itembasecd = degnitemcd.substr(0, 7);
  6625. var comncnts = arrComncnts[1];
  6626. //상용구를 setting할 아이템을 찾는다.
  6627. //상용구 선택액션을 취한 아이템의 경우 해당 아이템에 바로 setting
  6628. //model.refreshpart("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemno = '" + degnitemno + "' and degnitemkind = 'MTX']");
  6629. var ivwObj = null;
  6630. // 의뢰서식같이 MTX아이템없이 FRM만 존재하는 서식때문에 미리 체크.
  6631. if(formkind == "U")
  6632. ivwObj = pdocument.controls("ivw_" + degnitemcd);
  6633. if(ivwObj == null)
  6634. {
  6635. var itemNode = pinstance.selectSingleNode("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemno = '" + degnitemno + "' and degnitemkind = 'MTX']/reccnts");
  6636. if(itemNode != null)
  6637. {
  6638. if(fstlevlitemcd == degnitemcd)
  6639. {
  6640. itemNode.text = (curText == "") ? comncnts : curTextBefore + comncnts + curTextAfter;
  6641. SetEndCursorPos += comncnts.length;
  6642. }
  6643. else
  6644. {
  6645. itemNode.text = (itemNode.text == "") ? comncnts : itemNode.text + "\n" + comncnts;
  6646. }
  6647. continue;
  6648. }
  6649. }
  6650. //1레벨 코드가 선택한 상용구 아이템인 아이템들을 순회하면서 첫번째 MTX를 찾아서 setting한다.
  6651. //var itemList = pinstance.selectNodes("/root/main/recinfo/recitem[degnitemlevlno='1' and fstlevlitemcd = '" + degnitemcd + "']");
  6652. //var itemList = pinstance.selectNodes("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "']");
  6653. var itemList = pinstance.selectNodes("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemkind = 'MTX']");
  6654. for(var j = 0; j < itemList.length; j++)
  6655. {
  6656. itemNode = itemList.item(j);
  6657. var degnitemkind = itemNode.selectSingleNode("degnitemkind").text;
  6658. //var fstlevlitemcd = itemNode.selectSingleNode("fstlevlitemcd").text;
  6659. var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  6660. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  6661. var degnitemnm = itemNode.selectSingleNode("degnitemnm").text;
  6662. var degnitemlevlno = itemNode.selectSingleNode("degnitemlevlno").text;
  6663. // MTX를 상위 아이템으로 하는 하위 FRM이 있는지 확인.
  6664. //var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  6665. //var frmList = pinstance.selectNodes("/root/main/recinfo/recitem[degnitemlevlno = '2' and degnitemnm = '자유입력' and supdegnitemno = '" + degnitemno + "']");
  6666. var frmList = pinstance.selectNodes("/root/main/recinfo/recitem[degnitemlevlno = '" + (parseInt(degnitemlevlno) + 1) + "' and supdegnitemno = '" + degnitemno + "']");
  6667. if(frmList.length > 0)
  6668. {
  6669. for(var idx=0; idx < frmList.length; idx++)
  6670. {
  6671. var frmNode = frmList.item(idx);
  6672. if(frmNode.selectSingleNode("degnitemkind").text == "FRM")
  6673. {
  6674. degnitemkind = "FRM";
  6675. var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  6676. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  6677. var subForm = pinstance.selectSingleNode("/root/main/forminfo/unitformmast[orgsupdegnitemcd = '" + degnitemcd + "' and orgsupdegnitemno = '" + degnitemno + "']");
  6678. if(subForm != null)
  6679. {
  6680. ////////////////////////////////////////////////////////////////////////////////////
  6681. // 기록이 로딩되었나 확인한다.
  6682. if(subForm.selectSingleNode("loaded").text == "")
  6683. {
  6684. // 서식을 로딩한다.
  6685. expanSubsection(degnitemcd);
  6686. subForm.selectSingleNode("loaded").text = "true";
  6687. }
  6688. var ivwfrm = pdocument.controls("ivw_" + degnitemcd);
  6689. if(ivwfrm != null)
  6690. {
  6691. var ivwmodel = ivwfrm.model;
  6692. var ivwinstance = ivwfrm.instance1;
  6693. //itemNode = ivwinstance.selectSingleNode("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemno = '" + degnitemno + "' and degnitemkind = 'MTX']/reccnts");
  6694. itemNode = ivwinstance.selectSingleNode("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemkind = 'MTX']/reccnts");
  6695. if(itemNode != null)
  6696. {
  6697. if(fstlevlitemcd == degnitemcd)
  6698. {
  6699. itemNode.text = (curText == "") ? comncnts : curTextBefore + comncnts + curTextAfter;
  6700. // 부분서식로딩으로 삭제
  6701. //SetEndCursorPos += comncnts.length;
  6702. }
  6703. else
  6704. {
  6705. itemNode.text = (itemNode.text == "") ? comncnts : itemNode.text + "\n" + comncnts;
  6706. }
  6707. ivwmodel.refresh();
  6708. // pmodel이 opener.model을 가리키기 때문에 iviewer내의 모델로 변경해줌.
  6709. // 부분서식로딩으로 삭제
  6710. //pmodel = model;
  6711. break;
  6712. }
  6713. }
  6714. }
  6715. }
  6716. }
  6717. }
  6718. else
  6719. {
  6720. var valueNode = itemNode.selectSingleNode("reccnts");
  6721. if(fstlevlitemcd == degnitemcd)
  6722. {
  6723. valueNode.text = (curText == "") ? comncnts : curTextBefore + comncnts + curTextAfter;
  6724. SetEndCursorPos += comncnts.length;
  6725. }
  6726. else
  6727. {
  6728. valueNode.text = (valueNode.text == "") ? comncnts : valueNode.text + "\n" + comncnts;
  6729. }
  6730. continue;
  6731. }
  6732. }
  6733. }
  6734. setParameter("comncnts", ""); //내용
  6735. setParameter("deptflag", "");
  6736. setParameter("otherdeptcd", "");
  6737. pmodel.refresh();
  6738. pmodel.setFocus(ctrlid);
  6739. ctrl.selBegin = SetEndCursorPos;
  6740. ctrl.selEnd = SetEndCursorPos;
  6741. //model.setFocus(ctrlid);
  6742. }
  6743. /**
  6744. * @desc : 복사 선택
  6745. * @id :
  6746. * @event :
  6747. * @return :
  6748. * @authur : 박종훈
  6749. */
  6750. function selectCopy(srcFormCd, degnitemno, chosflag, ctrlid)
  6751. {
  6752. if(ctrlid == null)
  6753. ctrlid = "MTX_" + degnitemno;
  6754. var ctrl = document.controls(ctrlid);
  6755. window.clipBoardData = ctrl.selectionText;
  6756. }
  6757. /**
  6758. * @desc : 잘라내기 선택
  6759. * @id :
  6760. * @event :
  6761. * @return :
  6762. * @authur : 박종훈
  6763. */
  6764. function selectCut(srcFormCd, degnitemno, chosflag, ctrlid)
  6765. {
  6766. if(ctrlid == null)
  6767. ctrlid = "MTX_" + degnitemno;
  6768. var ctrl = document.controls(ctrlid);
  6769. window.clipBoardData = ctrl.selectionText;
  6770. ctrl.selectionText = "";
  6771. }
  6772. /**
  6773. * @desc : 삭제 선택
  6774. * @id :
  6775. * @event :
  6776. * @return :
  6777. * @authur : 박종훈
  6778. */
  6779. function selectDelete(srcFormCd, degnitemno, chosflag, ctrlid)
  6780. {
  6781. if(ctrlid == null)
  6782. ctrlid = "MTX_" + degnitemno;
  6783. var ctrl = document.controls(ctrlid);
  6784. ctrl.selectionText = "";
  6785. }
  6786. /**
  6787. * @desc : 모두선택 선택
  6788. * @id :
  6789. * @event :
  6790. * @return :
  6791. * @authur : 박종훈
  6792. */
  6793. function selectSelAll(srcFormCd, degnitemno, chosflag, ctrlid)
  6794. {
  6795. if(ctrlid == null)
  6796. ctrlid = "MTX_" + degnitemno;
  6797. var ctrl = document.controls(ctrlid);
  6798. ctrl.selBegin = 0;
  6799. ctrl.selEnd = (ctrl.currentText).length;
  6800. }
  6801. /**
  6802. * @desc : 붙여넣기 선택
  6803. * @id :
  6804. * @event :
  6805. * @return :
  6806. * @authur : 박종훈
  6807. */
  6808. function selectPaste(srcFormCd, degnitemno, chosflag, ctrlid)
  6809. {
  6810. if(ctrlid == null)
  6811. ctrlid = "MTX_" + degnitemno;
  6812. var ctrl = document.controls(ctrlid);
  6813. // 현재 입력중인 텍스트를 얻는다.
  6814. ctrl.dispatch("xforms-value-changed");
  6815. //var typingText = ctrl.currentText;
  6816. //var tempFocus = model.getFocus();
  6817. //model.setFocus(tempFocus);
  6818. var ctrl = document.controls(ctrlid);
  6819. ctrl.selectionText = "";
  6820. /////////////////////////////////////
  6821. var txtSelPos = ctrl.selBegin;
  6822. var curText = ctrl.currentText;
  6823. var curTextBefore = curText.substr(0, txtSelPos);
  6824. var curTextAfter = curText.substr(txtSelPos, curText.length);
  6825. /////////////////////////////////////
  6826. var dataType = window.clipBoardDataType;
  6827. if (dataType == "TEXT")
  6828. {
  6829. var comncnts = escape(window.clipBoardData);
  6830. //2009-09-15 오후 7:50:37 강지훈 수정 : Enter값처리를 위해 수정
  6831. comncnts = comncnts.setReplaceWord("%0D%0A", "%0A");
  6832. ctrl.currentText = curTextBefore + unescape(comncnts) + curTextAfter;
  6833. }
  6834. }
  6835. var gMaxSectionID = "";
  6836. function expanSubsection(itemcd)
  6837. {
  6838. var pageInfo = new PAGEINFO();
  6839. var bFold = itemcd == gMaxSectionID ? true : false;
  6840. var ctrl = null;
  6841. var prevItemCd = gMaxSectionID;
  6842. var unitformcd = "";
  6843. var secCtrl = document.controls("lbl_" + itemcd);
  6844. var formdegnseq = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemcd+"']/formdegnseq");
  6845. unitformcd = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemcd+"']/formcd");
  6846. if(formdegnseq == "")
  6847. ctrl = document.controls("tar_" + itemcd);
  6848. else
  6849. ctrl = document.controls("ivw_" + itemcd);
  6850. //섹션 선택시 해당 섹션의 부분서식의 로딩되어있는지 확인하여
  6851. //로딩되어 있지 않으면 부분서식로딩
  6852. var ivwObj = document.controls("ivw_" +itemcd);
  6853. if(ivwObj != null)
  6854. {
  6855. if(ivwObj.src == "")
  6856. {
  6857. //var unitformcd = model.getValue(gPageInfo.formdegnRef + "[supdegnitemcd='" + itemCds[i] +
  6858. // "' and degnitemkind = 'FRM' and itemuseflag = 'F0']/degnitemcd");
  6859. var unitformcd = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemcd+"']/formcd");
  6860. if (unitformcd != "")
  6861. {
  6862. ivwObj.attribute("supdegnitemcd") = itemcd;
  6863. ivwObj.attribute("unitformcd") = unitformcd;
  6864. model.addLog(unitformcd + " Loading 시작 : " + getCurrentTime());
  6865. loadUnitForm(ivwObj, itemcd);
  6866. model.addLog(unitformcd + " Loading 끝 : " + getCurrentTime());
  6867. }
  6868. }
  6869. }
  6870. gMaxSectionID = "";
  6871. if(ctrl != null)
  6872. {
  6873. ctrl.attribute("top") = ctrl.attribute("orgtop");
  6874. ctrl.attribute("height") = ctrl.attribute("orgheight");
  6875. //secCtrl.attribute("background-color") = "#99ccff";//secCtrl.attribute("orgbackground-color");
  6876. ctrl.visible = true;
  6877. if (unitformcd == "0000000901" || unitformcd == "0000000899" || unitformcd == "0000000900")
  6878. {
  6879. ctrl.window.javascript.fInitPage(false, parseInt(ctrl.attribute("height")), parseInt(ctrl.attribute("width")));
  6880. }
  6881. }
  6882. }
  6883. /**
  6884. * @desc : 상용구추가
  6885. * @id :
  6886. * @event :
  6887. * @return :
  6888. * @authur : 이상현
  6889. */
  6890. function addComnuse(srcFormCd, degnitemno, chosflag, ctrlid)
  6891. {
  6892. if(ctrlid == null)
  6893. ctrlid = "MTX_" + degnitemno;
  6894. var ctrl = document.controls(ctrlid);
  6895. selBegin = model.getValue("/root/hidden/selectiontext/begin");
  6896. selEnd = model.getValue("/root/hidden/selectiontext/end");
  6897. var curText = ctrl.currentText;
  6898. var selText = curText.substring(ctrl.selBegin, ctrl.selEnd);
  6899. var pageInfo = new PAGEINFO();
  6900. var fstlevlitemcd = model.getValue(pageInfo.recItemRef +
  6901. "[degnitemno='" + degnitemno + "']/fstlevlitemcd");
  6902. //var itembasecd = fstlevlitemcd.substr(0,7);
  6903. if(srcFormCd == "")
  6904. {
  6905. messageBox("서식 정보가", "I004");
  6906. return;
  6907. }
  6908. if(fstlevlitemcd == "")
  6909. {
  6910. messageBox("항목 정보가", "I004");
  6911. return;
  6912. }
  6913. setParameter("openmode", "insert");
  6914. setParameter("comn_chosflag", chosflag);
  6915. setParameter("comn_degnitemcd", fstlevlitemcd);
  6916. setParameter("comn_srcformcd", srcFormCd);
  6917. setParameter("comncnts", selText);
  6918. modal("SMMRF02400",1 ,50, 50);
  6919. var ctrl = document.controls(ctrlid);
  6920. var txtSelPos = ctrl.selBegin;
  6921. var curText = ctrl.currentText;
  6922. var curTextBefore = curText.substr(0, txtSelPos);
  6923. var curTextAfter = curText.substr(txtSelPos, curText.length);
  6924. var commuse = getParameter("comncnts"); //내용
  6925. model.setFocus("MTX_" + degnitemno);
  6926. ctrl.currentText = curTextBefore + commuse + curTextAfter;
  6927. ctrl.selBegin = txtSelPos + commuse.length;
  6928. ctrl.dispatch("onkeyup");
  6929. //setParameter("comnseq", ""); //상용구순번
  6930. //setParameter("reprnm", ""); //대표명
  6931. setParameter("comncnts", ""); //내용
  6932. }
  6933. /**
  6934. * @desc : 선택된 텍스트 저장
  6935. * @id :
  6936. * @event :
  6937. * @return :
  6938. * @authur : 이상현
  6939. */
  6940. function saveSelectionText(degnitemno, ctrlid)
  6941. {
  6942. if(ctrlid == null)
  6943. ctrlid = "MTX_" + degnitemno;
  6944. var ctrl = document.controls(ctrlid);
  6945. model.makeValue("/root/hidden/selectiontext/begin", ctrl.selBegin);
  6946. model.makeValue("/root/hidden/selectiontext/end", ctrl.selEnd);
  6947. }
  6948. /**
  6949. * @desc : 로컬, 개발환경 여부
  6950. * @id :
  6951. * @event :
  6952. * @return :
  6953. * @authur : 이상현
  6954. */
  6955. function isDevMode()
  6956. {
  6957. if (window.document.location == "C:/CMCProject/application/webapps/emr/medirecweb/xrw/" ||
  6958. window.document.location == "D:/CMCProject/application/webapps/emr/medirecweb/xrw/" ||
  6959. window.document.location.indexOf("dev999") > -1)
  6960. {
  6961. return true;
  6962. }
  6963. else
  6964. {
  6965. return false;
  6966. }
  6967. }
  6968. /**
  6969. * @desc : 이미지 로드용 대화상자 열기
  6970. * @id :
  6971. * @event :
  6972. * @return :
  6973. * @authur : 이상현
  6974. */
  6975. function openImageFileDialogEx(maxBytes, bMulti)
  6976. {
  6977. if(bMulti == null)
  6978. bMulti = false;
  6979. var file = window.fileDialog("open","",bMulti,"","","All Files (*.*)|*.*|JPEG Files(*.jpg)|*.jpg|GIF Files(*.gif)|*.gif|BMP Files(*.bmp)|*.bmp");
  6980. var arrFile = file.split("|");
  6981. for(var i = 0; i < arrFile.length; i++)
  6982. {
  6983. var subfile = arrFile[i];
  6984. if (subfile != "" && maxBytes != null) { // 파일 크기 확인
  6985. var fso = new ActiveXObject("Scripting.FileSystemObject");
  6986. var f = fso.GetFile(subfile);
  6987. if (f.size > maxBytes) {
  6988. messageBox("파일 크기가 최대 크기인 4M를","E003");
  6989. return "";
  6990. }
  6991. }
  6992. }
  6993. return file;
  6994. }
  6995. /**
  6996. * @desc : 서식 데이터 가져온다
  6997. * @id :
  6998. * @event :
  6999. * @return :
  7000. * @authur : 이상현
  7001. */
  7002. function getFormData(formcd, formrecseq, ref, rsltref)
  7003. {
  7004. var pageInfo = new PAGEINFO();
  7005. if(ref == null)
  7006. ref = "/root/send/formreq";
  7007. if(rsltref == null)
  7008. rsltref = pageInfo.forminfoRef;
  7009. pageInfo.formmastRef = rsltref + "/formmast";
  7010. pageInfo.formdegnRef = rsltref + "/formdegn";
  7011. if(getFormDegnInfoByFormcd(formcd, ref, rsltref) == false)
  7012. return;
  7013. makeInstance(pageInfo, true);
  7014. if(formrecseq == null)
  7015. return;
  7016. var recRef = "/root/hidden/recinfo";
  7017. if(getFormRecData(formrecseq, ref, recRef) == false)
  7018. return;
  7019. setSrchData(recRef + "/recitem", window);
  7020. }
  7021. /**
  7022. * @desc : 서식코드로 서식디자인 정보 조회
  7023. * @id :
  7024. * @event :
  7025. * @return :
  7026. * @authur : 이상현
  7027. */
  7028. function getFormDegnInfoByFormcd(formcd, ref, rsltref)
  7029. {
  7030. if(ref == null)
  7031. ref = "/root/send/formreq";
  7032. if(rsltref == null)
  7033. rsltref = "/root/main/forminfo";
  7034. var tmpRsltRef = "/root/hidden/formdegn/forminfo";
  7035. model.removeNode(tmpRsltRef);
  7036. model.makeNode(tmpRsltRef);
  7037. model.makeValue(ref + "/formcd", formcd);
  7038. model.makeValue(ref + "/formdegnseq", "");
  7039. model.makeValue(ref + "/extnunitformlistyn", "N");
  7040. model.makeValue(ref + "/cashedformdegnseq", "");
  7041. model.makeValue(ref + "/sysformrecdt", "");
  7042. model.makeValue(ref + "/mode", "D");
  7043. if(submit("TRMRF02001", "false", ref, tmpRsltRef))
  7044. {
  7045. //model.copyNode(rsltref, tmpRsltRef);
  7046. copyNodeset(rsltref, tmpRsltRef);
  7047. model.removeNode(tmpRsltRef);
  7048. return true;
  7049. }
  7050. return false;
  7051. }
  7052. /**
  7053. * @desc : 서식 기록값을 가져온다
  7054. * @id :
  7055. * @event :
  7056. * @return :
  7057. * @authur : 이상현
  7058. */
  7059. function getFormRecData(formrecseq, ref, rsltref)
  7060. {
  7061. if(ref == null)
  7062. ref = "/root/send/formreq";
  7063. if(rsltref == null)
  7064. rsltref = "/root/hidden/recinfo";
  7065. model.makeValue(ref + "/formrecseq", formrecseq);
  7066. if(submit("TRMMR01301", "false", ref, rsltref))
  7067. {
  7068. doReplaceLtGt(rsltref + "/recitem");
  7069. return true;
  7070. }
  7071. return false;
  7072. }
  7073. /**
  7074. * @desc : 그리드 행 추가
  7075. * @id :
  7076. * @event :
  7077. * @return :
  7078. * @authur : 이상현
  7079. */
  7080. function addGridRow(degnitemno, type)
  7081. {
  7082. try
  7083. {
  7084. if(type == null)
  7085. type = "GRD";
  7086. var pageInfo = new PAGEINFO();
  7087. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  7088. var GrdNodeList = instance1.selectSingleNode(pageInfo.initRecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  7089. if(GrdNodeList == null)
  7090. return;
  7091. var tmpNode = GrdNodeList.cloneNode(true);
  7092. var recitemNode = tmpNode.selectSingleNode("recitem");
  7093. var rownoNode = recitemNode.selectSingleNode("rowno");
  7094. if(rownoNode != null)
  7095. rownoNode.text = cnt;
  7096. var nodeList = tmpNode.selectNodes("recitem");
  7097. for(var i = 0; i < nodeList.length; i++)
  7098. {
  7099. var node = nodeList.item(i); // recitem 한 노드
  7100. var rownoNode = node.selectSingleNode("rowno");
  7101. if(rownoNode != null)
  7102. rownoNode.text = cnt;
  7103. var colnoNode = node.selectSingleNode("colno");
  7104. var reccntsNode = node.selectSingleNode("reccnts");
  7105. if(reccntsNode != null)
  7106. reccntsNode.text = "";
  7107. var rectermcdNode = node.selectSingleNode("rectermcd");
  7108. if(rectermcdNode != null)
  7109. rectermcdNode.text = "";
  7110. var rectermnmNode = node.selectSingleNode("rectermnm");
  7111. if(rectermnmNode != null)
  7112. rectermnmNode.text = "";
  7113. }
  7114. var recinfoNode = instance1.selectSingleNode(pageInfo.recRef);
  7115. model.duplicate(recinfoNode, tmpNode);
  7116. //model.duplicate(recinfoNode, recitemNode);
  7117. var grd = document.controls(type + "_" + degnitemno);
  7118. grd.rebuild();
  7119. model.refresh();
  7120. }
  7121. catch(e)
  7122. {
  7123. return;
  7124. }
  7125. }
  7126. /**
  7127. * @desc : 그리드 행추가 Version2
  7128. * @id :
  7129. * @event :
  7130. * @return :
  7131. * @authur : 이상현
  7132. */
  7133. function addGridRowEx(degnitemno, type)
  7134. {
  7135. addGridRow(degnitemno, type);
  7136. var grd = document.controls(type + "_" + degnitemno);
  7137. grd.isreadonly(grd.rows - 1, grd.colRef("recitem[colno = '2']/recitemnm")) = false;
  7138. grd.isreadonly(grd.rows - 1, grd.colRef("recitem[colno = '2']/rectermcd")) = false;
  7139. }
  7140. /**
  7141. * @desc : 그리드 열 추가
  7142. * @id :
  7143. * @event :
  7144. * @return :
  7145. * @authur : 이상현
  7146. */
  7147. function addGridCol(degnitemno, viewobj)
  7148. {
  7149. try
  7150. {
  7151. var pageInfo = new PAGEINFO();
  7152. var pmodel = null;
  7153. if(viewobj == null)
  7154. {
  7155. viewobj = window;
  7156. pmodel = model;
  7157. }
  7158. else
  7159. pmodel = viewobj.model;
  7160. ////////////////
  7161. var degnattrval = pmodel.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/degnattrval");
  7162. var ctrltype = "ctrl";
  7163. var strStyle = "";
  7164. strStyle += getCtrlAttribute("font-family", getStyleValue(degnattrval, ctrltype + ".font-family"));
  7165. strStyle += getCtrlAttribute("font-size", getStyleValue(degnattrval, ctrltype + ".font-size"));
  7166. strStyle += getCtrlAttribute("font-weight", getStyleValue(degnattrval, ctrltype + ".font-weight"));
  7167. strStyle += getCtrlAttribute("font-style", getStyleValue(degnattrval, ctrltype + ".font-style"));
  7168. strStyle += getCtrlAttribute("color", getStyleValue(degnattrval, ctrltype + ".color"));
  7169. strStyle += getCtrlAttribute("text-decoration", getStyleValue(degnattrval, ctrltype + ".text-decoration"));
  7170. strStyle += getCtrlAttribute("text-align", getStyleValue(degnattrval, ctrltype + ".text-align"));
  7171. strStyle += getCtrlAttribute("vertical-align", getStyleValue(degnattrval, ctrltype + ".vertical-align"));
  7172. strStyle += getCtrlAttribute("word-wrap", getStyleValue(degnattrval, ctrltype + ".word-wrap"));
  7173. strStyle += getCtrlAttribute("line-spacing", getStyleValue(degnattrval, ctrltype + ".line-spacing"));
  7174. strStyle += getCtrlAttribute("text-select", getStyleValue(degnattrval, ctrltype + ".text-select"));
  7175. var grd = viewobj.document.controls("GRD_" + degnitemno);
  7176. if(grd != null)
  7177. {
  7178. var cols = grd.cols;
  7179. var coltype = grd.colType(cols-1);
  7180. switch(coltype)
  7181. {
  7182. case "OUTPUT": // OUTPUT
  7183. case "output":
  7184. grd.addColumn("type:output; ref:test_col; " + strStyle);
  7185. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7186. break;
  7187. case "INPUT": // INPUT
  7188. case "input":
  7189. case "":
  7190. grd.addColumn("type:input; ref:test_col; " + strStyle);
  7191. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7192. break;
  7193. case "INPUTBUTTON": // INPUT+BUTTON
  7194. case "inputbutton":
  7195. grd.addColumn("type:inputbutton; ref:test_col; " + strStyle);
  7196. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7197. break;
  7198. case "INPUTDATE": // INPUT+DATE
  7199. case "inputdate":
  7200. grd.addColumn("type:inputdate; ref:test_col; " + strStyle);
  7201. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7202. break;
  7203. case "COMBO": // COMBO
  7204. case "combo":
  7205. {
  7206. var colid = "GSU_" + cols;
  7207. grd.addColumn("type:combo; ref:recitem[colno='" + cols + "']/reccnts; id:" + colid + "; " + strStyle);
  7208. var subctrl = eval(colid);
  7209. var choices = subctrl.createChild("xforms:choices" , "");
  7210. var nodesetPath = grd.cellComboNodeset(1, cols-1);
  7211. var itemset = choices.createChild("xforms:itemset", "nodeset:" + nodesetPath);
  7212. itemset.createChild("xforms:label", "ref:valitemnm");
  7213. itemset.createChild("xforms:value", "ref:valitemnm");
  7214. //itemset.createChild("xforms:value", "ref:valcd");
  7215. break;
  7216. }
  7217. case "CHECKBOX": // CHECKBOX
  7218. case "checkbox":
  7219. grd.addColumn("type:checkbox; ref:test_col; " + strStyle);
  7220. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7221. break;
  7222. case "RADIO": // RADIO
  7223. case "radio":
  7224. grd.addColumn("type:radio; ref:test_col; " + strStyle);
  7225. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7226. break;
  7227. }
  7228. // TF 버그로 인하여 color를 재설정(strStyle 에서 color를 설정했음에도 변경되지 않음.)
  7229. grd.allstyle( "data", "color" ) = getStyleValue(degnattrval, ctrltype + ".color");
  7230. pmodel.removeNodeset("/root/main/descendant::test_col");
  7231. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7232. var len = grdList.length;
  7233. for(var i = 0; i < len; i++)
  7234. {
  7235. var grdNode = grdList.item(i);
  7236. var recitemNodeList = grdNode.selectNodes("recitem");
  7237. // recitem노드리스트에서 항상 마지막 recitem을 선택한다.
  7238. var recitemNode = recitemNodeList.item(recitemNodeList.length-1);
  7239. if(recitemNode != null)
  7240. {
  7241. //var subNode = grdNode.selectSingleNode("recitem");
  7242. var tmpNode = recitemNode.cloneNode(true);
  7243. var colnoNode = tmpNode.selectSingleNode("colno");
  7244. if(colnoNode != null)
  7245. colnoNode.text = cols;
  7246. var reccntsNode = tmpNode.selectSingleNode("reccnts");
  7247. if(reccntsNode != null)
  7248. reccntsNode.text = "";
  7249. //reccntsNode = tmpNode.selectSingleNode("reccnts");
  7250. var rectermcdNode = tmpNode.selectSingleNode("rectermcd");
  7251. if(rectermcdNode != null)
  7252. rectermcdNode.text = "";
  7253. var rectermnmNode = tmpNode.selectSingleNode("rectermnm");
  7254. if(rectermnmNode != null)
  7255. rectermnmNode.text = "";
  7256. var degnitemkindNode = tmpNode.selectSingleNode("degnitemkind");
  7257. if(degnitemkindNode != null)
  7258. degnitemkindNode.text = "GSU";
  7259. //var degnitemlevlcdNode = tmpNode.selectSingleNode("degnitemlevlcd");
  7260. //if(degnitemlevlcdNode != null)
  7261. //{
  7262. //}
  7263. var supdegnitemnoNode = tmpNode.selectSingleNode("supdegnitemno");
  7264. if(supdegnitemnoNode == null)
  7265. {
  7266. // 임시로 추가 노드를 생성한다.
  7267. model.makeValue("/root/temp/tempinfo/supdegnitemno", degnitemno);
  7268. model.makeValue("/root/temp/tempinfo/extdegnitemlevlcd", "");
  7269. model.makeValue("/root/temp/tempinfo/rectermflag", "");
  7270. model.makeValue("/root/temp/tempinfo/degnunitcd", "");
  7271. var supdegnitemnoNode = model.instance1.selectSingleNode("/root/temp/tempinfo/supdegnitemno");
  7272. var extdegnitemlevlcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/extdegnitemlevlcd");
  7273. var rectermflagNode = model.instance1.selectSingleNode("/root/temp/tempinfo/rectermflag");
  7274. var degnunitcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/degnunitcd");
  7275. tmpNode.appendChild(supdegnitemnoNode);
  7276. tmpNode.appendChild(extdegnitemlevlcdNode);
  7277. tmpNode.appendChild(rectermflagNode);
  7278. tmpNode.appendChild(degnunitcdNode);
  7279. }
  7280. else
  7281. {
  7282. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  7283. }
  7284. grdNode.appendChild(tmpNode);
  7285. }
  7286. }
  7287. grd.rebuild();
  7288. }
  7289. }
  7290. catch(e)
  7291. {
  7292. return;
  7293. }
  7294. model.refresh();
  7295. }
  7296. function addGridCol_old(degnitemno, viewobj)
  7297. {
  7298. try
  7299. {
  7300. var pageInfo = new PAGEINFO();
  7301. var pmodel = null;
  7302. if(viewobj == null)
  7303. {
  7304. viewobj = window;
  7305. pmodel = model;
  7306. }
  7307. else
  7308. pmodel = viewobj.model;
  7309. ////////////////
  7310. var degnattrval = pmodel.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/degnattrval");
  7311. var ctrltype = "ctrl";
  7312. var strStyle = "";
  7313. strStyle += getCtrlAttribute("font-family", getStyleValue(degnattrval, ctrltype + ".font-family"));
  7314. strStyle += getCtrlAttribute("font-size", getStyleValue(degnattrval, ctrltype + ".font-size"));
  7315. strStyle += getCtrlAttribute("font-weight", getStyleValue(degnattrval, ctrltype + ".font-weight"));
  7316. strStyle += getCtrlAttribute("font-style", getStyleValue(degnattrval, ctrltype + ".font-style"));
  7317. strStyle += getCtrlAttribute("color", getStyleValue(degnattrval, ctrltype + ".color"));
  7318. strStyle += getCtrlAttribute("text-decoration", getStyleValue(degnattrval, ctrltype + ".text-decoration"));
  7319. strStyle += getCtrlAttribute("text-align", getStyleValue(degnattrval, ctrltype + ".text-align"));
  7320. strStyle += getCtrlAttribute("vertical-align", getStyleValue(degnattrval, ctrltype + ".vertical-align"));
  7321. strStyle += getCtrlAttribute("word-wrap", getStyleValue(degnattrval, ctrltype + ".word-wrap"));
  7322. strStyle += getCtrlAttribute("line-spacing", getStyleValue(degnattrval, ctrltype + ".line-spacing"));
  7323. strStyle += getCtrlAttribute("text-select", getStyleValue(degnattrval, ctrltype + ".text-select"));
  7324. var grd = viewobj.document.controls("GRD_" + degnitemno);
  7325. if(grd != null)
  7326. {
  7327. var cols = grd.cols;
  7328. var coltype = grd.colType(cols-1);
  7329. switch(coltype)
  7330. {
  7331. case "OUTPUT": // OUTPUT
  7332. case "output":
  7333. grd.addColumn("type:output; ref:test_col; " + strStyle);
  7334. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7335. break;
  7336. case "INPUT": // INPUT
  7337. case "input":
  7338. case "":
  7339. grd.addColumn("type:input; ref:test_col; " + strStyle);
  7340. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7341. break;
  7342. case "INPUTBUTTON": // INPUT+BUTTON
  7343. case "inputbutton":
  7344. grd.addColumn("type:inputbutton; ref:test_col; " + strStyle);
  7345. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7346. break;
  7347. case "INPUTDATE": // INPUT+DATE
  7348. case "inputdate":
  7349. grd.addColumn("type:inputdate; ref:test_col; " + strStyle);
  7350. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7351. break;
  7352. case "COMBO": // COMBO
  7353. case "combo":
  7354. {
  7355. var colid = "GSU_" + cols;
  7356. grd.addColumn("type:combo; ref:recitem[colno='" + cols + "']/reccnts; id:" + colid + "; " + strStyle);
  7357. var subctrl = eval(colid);
  7358. var choices = subctrl.createChild("xforms:choices" , "");
  7359. var nodesetPath = grd.cellComboNodeset(1, cols-1);
  7360. var itemset = choices.createChild("xforms:itemset", "nodeset:" + nodesetPath);
  7361. itemset.createChild("xforms:label", "ref:valitemnm");
  7362. itemset.createChild("xforms:value", "ref:valitemnm");
  7363. //itemset.createChild("xforms:value", "ref:valcd");
  7364. break;
  7365. }
  7366. case "CHECKBOX": // CHECKBOX
  7367. case "checkbox":
  7368. grd.addColumn("type:checkbox; ref:test_col; " + strStyle);
  7369. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7370. break;
  7371. case "RADIO": // RADIO
  7372. case "radio":
  7373. grd.addColumn("type:radio; ref:test_col; " + strStyle);
  7374. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7375. break;
  7376. }
  7377. // TF 버그로 인하여 color를 재설정(strStyle 에서 color를 설정했음에도 변경되지 않음.)
  7378. grd.allstyle( "data", "color" ) = getStyleValue(degnattrval, ctrltype + ".color");
  7379. pmodel.removeNodeset("/root/main/descendant::test_col");
  7380. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7381. var len = grdList.length;
  7382. for(var i = 0; i < len; i++)
  7383. {
  7384. var grdNode = grdList.item(i);
  7385. var recitemNodeList = grdNode.selectNodes("recitem");
  7386. // recitem노드리스트에서 항상 마지막 recitem을 선택한다.
  7387. var recitemNode = recitemNodeList.item(recitemNodeList.length-1);
  7388. if(recitemNode != null)
  7389. {
  7390. //var subNode = grdNode.selectSingleNode("recitem");
  7391. var tmpNode = recitemNode.cloneNode(true);
  7392. var colnoNode = tmpNode.selectSingleNode("colno");
  7393. if(colnoNode != null)
  7394. colnoNode.text = cols;
  7395. var reccntsNode = tmpNode.selectSingleNode("reccnts");
  7396. if(reccntsNode != null)
  7397. reccntsNode.text = "";
  7398. //reccntsNode = tmpNode.selectSingleNode("reccnts");
  7399. var rectermcdNode = tmpNode.selectSingleNode("rectermcd");
  7400. if(rectermcdNode != null)
  7401. rectermcdNode.text = "";
  7402. var rectermnmNode = tmpNode.selectSingleNode("rectermnm");
  7403. if(rectermnmNode != null)
  7404. rectermnmNode.text = "";
  7405. var degnitemkindNode = tmpNode.selectSingleNode("degnitemkind");
  7406. if(degnitemkindNode != null)
  7407. degnitemkindNode.text = "GSU";
  7408. //var degnitemlevlcdNode = tmpNode.selectSingleNode("degnitemlevlcd");
  7409. //if(degnitemlevlcdNode != null)
  7410. //{
  7411. //}
  7412. var supdegnitemnoNode = tmpNode.selectSingleNode("supdegnitemno");
  7413. if(supdegnitemnoNode == null)
  7414. {
  7415. // 임시로 추가 노드를 생성한다.
  7416. model.makeValue("/root/temp/tempinfo/supdegnitemno", degnitemno);
  7417. model.makeValue("/root/temp/tempinfo/extdegnitemlevlcd", "");
  7418. model.makeValue("/root/temp/tempinfo/rectermflag", "");
  7419. model.makeValue("/root/temp/tempinfo/degnunitcd", "");
  7420. var supdegnitemnoNode = model.instance1.selectSingleNode("/root/temp/tempinfo/supdegnitemno");
  7421. var extdegnitemlevlcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/extdegnitemlevlcd");
  7422. var rectermflagNode = model.instance1.selectSingleNode("/root/temp/tempinfo/rectermflag");
  7423. var degnunitcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/degnunitcd");
  7424. tmpNode.appendChild(supdegnitemnoNode);
  7425. tmpNode.appendChild(extdegnitemlevlcdNode);
  7426. tmpNode.appendChild(rectermflagNode);
  7427. tmpNode.appendChild(degnunitcdNode);
  7428. }
  7429. else
  7430. {
  7431. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  7432. }
  7433. grdNode.appendChild(tmpNode);
  7434. }
  7435. }
  7436. grd.rebuild();
  7437. }
  7438. }
  7439. catch(e)
  7440. {
  7441. return;
  7442. }
  7443. model.refresh();
  7444. }
  7445. /**
  7446. * @desc : 그리드 행제거
  7447. * @id :
  7448. * @event :
  7449. * @return :
  7450. * @authur : 이상현
  7451. */
  7452. function removeGridRow(degnitemno, type)
  7453. {
  7454. var rows = instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']").length;
  7455. var lastRow = rows - 1; //grd.row - grd.fixedRows;
  7456. if(lastRow == "0")
  7457. {
  7458. messageBox("더 이상은 삭제", "E001");
  7459. return;
  7460. }
  7461. if(type == null)
  7462. type = "GRD";
  7463. var pageInfo = new PAGEINFO();
  7464. var grd = document.controls(type + "_" + degnitemno);
  7465. // 전체 그리드 개수
  7466. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7467. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']").length;
  7468. var GridNodesList = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7469. // 선택한 row만 삭제한다.
  7470. var selectedrow = grd.selectedRows;
  7471. if(selectedrow == 0)
  7472. {
  7473. // 행 선택없이 삭제를 누른 경우 Default로 마지막 행이 삭제되도록 한다.
  7474. for(var idx=0; idx < cnt; idx++)
  7475. {
  7476. var subNode = GridNodesList.item(idx);
  7477. if(subNode != null)
  7478. {
  7479. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7480. if(subDegnItemNo == degnitemno)
  7481. {
  7482. var subRecNode = subNode.selectSingleNode("recitem");
  7483. var subRow = subRecNode.selectSingleNode("rowno").text;
  7484. if(lastRow == subRow)
  7485. {
  7486. subNode.parentNode.removeChild(subNode);
  7487. //break;
  7488. //model.removenode("/root/main/recinfo/grid[" + (idx+1) + "]"); //[degnitemno='" + degnitemno + "']");
  7489. }
  7490. }
  7491. }
  7492. }
  7493. }
  7494. else
  7495. {
  7496. var selRow = "";
  7497. // 선택한 행이 있을 경우 선택한 행만 지운다.
  7498. for(var row = 0; row < selectedrow; row++)
  7499. {
  7500. selRow = grd.selectedRow(row);
  7501. // 그리드를 삭제한다.
  7502. var subNode = GridNodesList.item(selRow-1);
  7503. subNode.parentNode.removeChild(subNode);
  7504. }
  7505. // 변경된 row를 재지정
  7506. var newRow = 0;
  7507. grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7508. cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']").length;
  7509. GridNodesList = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7510. for(var row = 0; row < cnt; row++)
  7511. {
  7512. var subNode = GridNodesList.item(row);
  7513. if(subNode != null)
  7514. {
  7515. var recitemNodelist = subNode.selectNodes("recitem");
  7516. for(var col = 0; col < recitemNodelist.length; col++)
  7517. {
  7518. var recitemNode = recitemNodelist.item(col);
  7519. recitemNode.selectSingleNode("rowno").text = row;
  7520. }
  7521. }
  7522. }
  7523. }
  7524. grd.rebuild();
  7525. model.refresh();
  7526. }
  7527. function removeGridRow_old(degnitemno, type)
  7528. {
  7529. var rows = instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']").length;
  7530. var curRow = rows - 1; //grd.row - grd.fixedRows;
  7531. if(curRow == "0")
  7532. {
  7533. messageBox("더 이상은 삭제", "E001");
  7534. return;
  7535. }
  7536. if(type == null)
  7537. type = "GRD";
  7538. var pageInfo = new PAGEINFO();
  7539. var grd = document.controls(type + "_" + degnitemno);
  7540. // 전체 그리드 개수
  7541. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef);
  7542. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef).length;
  7543. var GridNodesList = instance1.selectNodes(pageInfo.RecinfoGridRef);
  7544. for(var idx=0; idx < cnt; idx++)
  7545. {
  7546. var subNode = GridNodesList.item(idx);
  7547. if(subNode != null)
  7548. {
  7549. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7550. if(subDegnItemNo == degnitemno)
  7551. {
  7552. var subRecNode = subNode.selectSingleNode("recitem");
  7553. var subRow = subRecNode.selectSingleNode("rowno").text;
  7554. if(curRow == subRow)
  7555. {
  7556. //break;
  7557. model.removenode("/root/main/recinfo/grid[" + (idx+1) + "]"); //[degnitemno='" + degnitemno + "']");
  7558. }
  7559. }
  7560. }
  7561. }
  7562. grd.rebuild();
  7563. model.refresh();
  7564. }
  7565. /**
  7566. * @desc : 그리드 열 제거 Version2
  7567. * @id :
  7568. * @event :
  7569. * @return :
  7570. * @authur : 이상현
  7571. */
  7572. function removeGridRowEx(degnitemno, type)
  7573. {
  7574. if(type == null){
  7575. type = "GRD";
  7576. }
  7577. try
  7578. {
  7579. var grdobj = document.controls(type + "_" + degnitemno);
  7580. for(var i = grdobj.selectedRows-1; i >= 0; i--)
  7581. {
  7582. var currow = grdobj.selectedRow(i);
  7583. var node = instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7584. currow--;
  7585. model.removenode(node.item(currow));
  7586. }
  7587. //var currow = grdobj.row - 1;
  7588. //model.removenode("/root/main/recinfo/grid[" + (currow + 1) + "]");
  7589. //grid node remove후, grid rowno재설정
  7590. var nodelist = model.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7591. var totrow = nodelist.length;
  7592. var irowcnt = 0;
  7593. for(var i = 0; i < totrow; i++){
  7594. var node = nodelist.item(i);
  7595. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960']/rowno"); //진단header
  7596. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno"); //R/O
  7597. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno"); //주부
  7598. var path4 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno"); //진단명
  7599. if(path1 != null)
  7600. path1.text = irowcnt;
  7601. if(path2 != null)
  7602. path2.text = irowcnt;
  7603. if(path3 != null)
  7604. path3.text = irowcnt;
  7605. if(path4 != null)
  7606. path4.text = irowcnt;
  7607. irowcnt++;
  7608. }
  7609. grdobj.rebuild();
  7610. }
  7611. catch(e)
  7612. {
  7613. }
  7614. }
  7615. /**
  7616. * @desc : 그리드 열 제거 Version2
  7617. * @id :
  7618. * @event :
  7619. * @return :
  7620. * @authur : 이상현
  7621. */
  7622. function removeGridRowEx_old(degnitemno, type)
  7623. {
  7624. if(type == null)
  7625. type = "GRD";
  7626. var grd = document.controls(type + "_" + degnitemno);
  7627. var currow = grd.row - 1;
  7628. //alert(currow + "," + degnitemno);
  7629. //var rows = instance1.selectNodes("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']").length;
  7630. //var curRow = grd.textMatrix(grd.row, grd.cols - 1);
  7631. //alert(curRow);
  7632. model.removenode("/root/main/recinfo/grid[" + (currow+1) + "]");
  7633. /*
  7634. var totrow = model.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']").length;
  7635. var irowcnt = 0;
  7636. for(var i = 1 ; i <= totrow; i++){
  7637. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960']/rowno", irowcnt); //진단header
  7638. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno", irowcnt); //R/O
  7639. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno", irowcnt); //주부
  7640. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno", irowcnt); //진단명
  7641. irowcnt++;
  7642. }*/
  7643. var nodelist = model.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7644. var totrow = nodelist.length;
  7645. var irowcnt = 0;
  7646. for(var i = 0; i < totrow; i++){
  7647. var node = nodelist.item(i);
  7648. //alert(node.xml);
  7649. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960']/rowno"); //진단header
  7650. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno"); //R/O
  7651. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno"); //주부
  7652. var path4 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno"); //진단명
  7653. //alert(path1.text + "," + path2.text + "," + path3.text + "," + path4.text);
  7654. path1.text = irowcnt;
  7655. path2.text = irowcnt;
  7656. path3.text = irowcnt;
  7657. path4.text = irowcnt;
  7658. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960']/rowno").text = irowcnt; //진단header
  7659. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno").text = irowcnt; //R/O
  7660. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno").text = irowcnt; //주부
  7661. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno").text = irowcnt; //진단명
  7662. irowcnt++;
  7663. }
  7664. grd.rebuild();
  7665. }
  7666. /**
  7667. * @desc : 그리드 열 제거
  7668. * @id :
  7669. * @event :
  7670. * @return :
  7671. * @authur : 이상현
  7672. */
  7673. /*
  7674. function removeGridCol_old(degnitemno)
  7675. {
  7676. var grd = document.controls("GRD_" + degnitemno);
  7677. if(grd != null)
  7678. {
  7679. var cols = grd.cols;
  7680. if(cols == 1)
  7681. {
  7682. messageBox("더 이상은 삭제", "E001");
  7683. return;
  7684. }
  7685. // 전체 그리드 개수
  7686. var grdCnt = getNodesetCnt(model, "/root/main/recinfo/grid"); //pageInfo.RecinfoGridRef);
  7687. var GridNodesList = instance1.selectNodes("/root/main/recinfo/grid");
  7688. var cnt = 0;
  7689. for(var idx=0; idx < grdCnt; idx++)
  7690. {
  7691. var subNode = GridNodesList.item(idx);
  7692. if(subNode != null)
  7693. {
  7694. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7695. if(subDegnItemNo == degnitemno)
  7696. {
  7697. model.removeNode("/root/main/recinfo/grid[" + (idx+1) + "]/recitem[" + (cols + 1) + "][rowno = " + cnt + " colno='" + (cols - 1) + "']");
  7698. cnt++;
  7699. }
  7700. }
  7701. }
  7702. grd.removeColumn();
  7703. }
  7704. }
  7705. */
  7706. /**
  7707. * @desc : 그리드 열 제거
  7708. * @id :
  7709. * @event :
  7710. * @return :
  7711. * @authur : 이상현
  7712. */
  7713. function removeGridCol(degnitemno, type)
  7714. {
  7715. if(type == null)
  7716. type = "GRD";
  7717. var ctrlid = type + "_" + degnitemno;
  7718. var grd = document.controls(ctrlid);
  7719. if(grd != null)
  7720. {
  7721. var cols = grd.cols;
  7722. if(cols == 1)
  7723. {
  7724. messageBox("더 이상은 삭제", "E001");
  7725. return;
  7726. }
  7727. // 전체 그리드 개수
  7728. var grdCnt = getNodesetCnt(model, "/root/main/recinfo/grid"); //pageInfo.RecinfoGridRef);
  7729. var GridNodesList = instance1.selectNodes("/root/main/recinfo/grid");
  7730. var cnt = 0;
  7731. for(var idx=0; idx < grdCnt; idx++)
  7732. {
  7733. var subNode = GridNodesList.item(idx);
  7734. if(subNode != null)
  7735. {
  7736. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7737. if(subDegnItemNo == degnitemno)
  7738. {
  7739. model.removeNode("/root/main/recinfo/grid[" + (idx+1) + "]/recitem[" + (cols + 1) + "][rowno = " + cnt + " colno='" + (cols - 1) + "']");
  7740. cnt++;
  7741. }
  7742. }
  7743. }
  7744. grd.removeColumn();
  7745. }
  7746. }
  7747. /**
  7748. * @desc : 기록아이템 값을 가져온다
  7749. * @id :
  7750. * @event :
  7751. * @return :
  7752. * @authur : 이상현
  7753. */
  7754. function getFormItemValue(degnitemlevlcd)
  7755. {
  7756. var pageInfo = new PAGEINFO();
  7757. var itemVal = new ITEMVAL();
  7758. itemVal.rectermcd = model.getValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/rectermcd");
  7759. itemVal.rectermnm = model.getValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/rectermnm");
  7760. itemVal.reccnts = model.getValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts");
  7761. itemVal.recimge = model.getValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge");
  7762. return itemVal;
  7763. }
  7764. /**
  7765. * @desc : 기록아이템 값을 가져온다
  7766. * @id :
  7767. * @event :
  7768. * @return :
  7769. * @authur : 이상현
  7770. */
  7771. function getFormRecItemExist()
  7772. {
  7773. var iNodeCnt = 0;
  7774. var pageInfo = new PAGEINFO();
  7775. var iNodeCnt = getNodesetCnt(model, pageInfo.recItemRef + "[reccnts != '' or rectermcd != '' or rectermnm != '']");
  7776. return iNodeCnt;
  7777. }
  7778. /**
  7779. * @desc : 기록아이템 값을 셋팅
  7780. * @id :
  7781. * @event :
  7782. * @return :
  7783. * @authur : 이상현
  7784. */
  7785. function setFormItemValue(degnitemlevlcd, itemVal, bRefresh)
  7786. {
  7787. var pageInfo = new PAGEINFO();
  7788. if(bRefresh == null)
  7789. bRefresh == false;
  7790. var node = instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/rectermcd");
  7791. if(node != null)
  7792. node.text = itemVal.rectermcd;
  7793. node = instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/rectermnm");
  7794. if(node != null)
  7795. node.text = itemVal.rectermnm;
  7796. node = instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge");
  7797. if(node != null)
  7798. node.text = itemVal.recimge;
  7799. /*
  7800. if ( model.getValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/degnitemkind") == "CAL")
  7801. {
  7802. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", itemVal.reccnts.toDate().getDateFormat("YYYY-MM-DD"));
  7803. }
  7804. else
  7805. {
  7806. node = instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts");
  7807. }
  7808. */
  7809. node = instance1.selectSingleNode(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts");
  7810. if(node != null)
  7811. node.text = itemVal.reccnts;
  7812. /*model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/rectermcd", itemVal.rectermcd);
  7813. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/rectermnm", itemVal.rectermnm);
  7814. if ( model.getValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/degnitemkind") == "CAL")
  7815. {
  7816. //model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", itemVal.reccnts.toDate().getDateFormat("YYYY-MM-DD"));
  7817. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", itemVal.reccnts);
  7818. }
  7819. else
  7820. {
  7821. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", itemVal.reccnts);
  7822. }
  7823. model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", itemVal.recimge);*/
  7824. if(bRefresh)
  7825. model.refresh();
  7826. }
  7827. /**
  7828. * @desc : 첫글자 제거 후 리턴(첫글자가 str과 동일할 경우)
  7829. * @id :
  7830. * @event :
  7831. * @return :
  7832. * @authur : 이상현
  7833. */
  7834. function getRemoveLeftChar(srcdata, str)
  7835. {
  7836. var i, j = 0;
  7837. for (i = 0; i < srcdata.length; i++) {
  7838. if (srcdata.charAt(i) == str) j = j + 1;
  7839. else break;
  7840. }
  7841. return srcdata.substr(j, srcdata.length - j + 1);
  7842. }
  7843. /*****************************************************************************
  7844. 튜닝
  7845. ******************************************************************************/
  7846. var LOAD_COMPLETE = true;
  7847. var LOAD_INCOMPLETE = false;
  7848. var COMN_FORM = 1;
  7849. var UNIT_FORM = 2;
  7850. var GENL_FORM = 3;
  7851. /**
  7852. * @group :
  7853. * @ver : 2008.06.13
  7854. * @by : snoweye
  7855. * @---------------------------------------------------
  7856. * @type : function
  7857. * @access : public
  7858. * @desc : 부모 화면으로 onloadcomplete 이벤트를 dispatch
  7859. * @param : curformtype - 로딩이 완료된 서식의 종류 (COMN_FORM/UNIT_FORM/GENL_FORM)
  7860. * @return :
  7861. * @---------------------------------------------------
  7862. */
  7863. function dispOnLoadComplete(curformtype, formcd)
  7864. {
  7865. if(parent == null)
  7866. return;
  7867. //setLoadStatus(parent, formcd, curformtype);
  7868. parent.window.javascript.setParameter("loadstatus", curformtype);
  7869. parent.window.javascript.setParameter("loadformcd", formcd);
  7870. parent.body.dispatch("onloadcomplete");
  7871. }
  7872. /**
  7873. * @group :
  7874. * @ver : 2008.06.13
  7875. * @by : snoweye
  7876. * @---------------------------------------------------
  7877. * @type : function
  7878. * @access : public
  7879. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  7880. * @param : fstLevlItemCd - 최상위 아이템 코드
  7881. * @return :
  7882. * @---------------------------------------------------
  7883. */
  7884. function setFstLevlItemCd_old(fstLevlItemCd)
  7885. {
  7886. var nodeList = instance1.selectNodes(gPageInfo_EMR.recItemRef);
  7887. for(var i = 0; i < nodeList.length; i++)
  7888. {
  7889. var recitemNode = nodeList.item(i);
  7890. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  7891. //fstlevlitemcdNode.text = fstLevlItemCd;
  7892. model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  7893. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  7894. //degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  7895. model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  7896. }
  7897. }
  7898. /**
  7899. * @group :
  7900. * @ver : 2008.06.13
  7901. * @by : snoweye
  7902. * @modify : 2008.07.10 (snoweye)
  7903. * @---------------------------------------------------
  7904. * @type : function
  7905. * @access : public
  7906. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  7907. * @param : ivwObj - 최상위 아이템 코드를 세팅할 iviewer 객체
  7908. * @param : formcd - iviewer에 로딩된 서식의 코드
  7909. * @return :
  7910. * @---------------------------------------------------
  7911. */
  7912. function setFstLevlItemCd(ivwObj, formcd)
  7913. {
  7914. var orgsupdegnitemno = model.getValue(gPageInfo_EMR.forminfoRef + "/unitformmast[formcd='" + formcd + "' and loaded != 'true']/orgsupdegnitemno");
  7915. var degnitemlevlcd = model.getValue(gPageInfo_EMR.formdegnRef + "[degnitemno = '" + orgsupdegnitemno + "']/degnitemlevlcd");
  7916. var fstLevlBaseItemCd = degnitemlevlcd.substr(0, degnitemlevlcd.indexOf(".") >= 0 ? degnitemlevlcd.indexOf(".") : degnitemlevlcd.length);
  7917. var fstLevlItemCd = model.getValue(gPageInfo_EMR.formdegnRef + "[degnitemlevlcd = '" + fstLevlBaseItemCd + "']/degnitemcd");
  7918. var nodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.recItemRef);
  7919. for(var i = 0; i < nodeList.length; i++)
  7920. {
  7921. var recitemNode = nodeList.item(i);
  7922. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  7923. if(fstlevlitemcdNode == null)
  7924. continue;
  7925. if(recitemNode.selectSingleNode("degnunitcd") == null)
  7926. {
  7927. var unitcdNode = instance1.createElement("degnunitcd");
  7928. recitemNode.appendChild(unitcdNode);
  7929. }
  7930. fstlevlitemcdNode.text = fstLevlItemCd;
  7931. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  7932. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  7933. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  7934. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  7935. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  7936. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  7937. }
  7938. var grdNodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.RecinfoGridRef);
  7939. for(var i = 0; i < grdNodeList.length; i++)
  7940. {
  7941. // degnunitcd 노드 확인
  7942. var degnitemlevlNode = grdNodeList.item(i).selectSingleNode("degnitemlevlcd");
  7943. degnitemlevlNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlNode.text;
  7944. var itemNodeList = grdNodeList.item(i).selectNodes("recitem");
  7945. for(var j = 0; j < itemNodeList.length; j++)
  7946. {
  7947. var recitemNode = itemNodeList.item(j);
  7948. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  7949. if(fstlevlitemcdNode == null)
  7950. continue;
  7951. if(recitemNode.selectSingleNode("degnunitcd") == null)
  7952. {
  7953. var unitcdNode = instance1.createElement("degnunitcd");
  7954. recitemNode.appendChild(unitcdNode);
  7955. }
  7956. fstlevlitemcdNode.text = fstLevlItemCd;
  7957. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  7958. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  7959. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  7960. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  7961. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  7962. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  7963. }
  7964. }
  7965. var tempnodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.initrecItemRef);
  7966. for(var i = 0; i < tempnodeList.length; i++)
  7967. {
  7968. var recitemNode = tempnodeList.item(i);
  7969. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  7970. if(fstlevlitemcdNode == null)
  7971. continue;
  7972. if(recitemNode.selectSingleNode("degnunitcd") == null)
  7973. {
  7974. var unitcdNode = instance1.createElement("degnunitcd");
  7975. recitemNode.appendChild(unitcdNode);
  7976. }
  7977. fstlevlitemcdNode.text = fstLevlItemCd;
  7978. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  7979. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  7980. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  7981. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  7982. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  7983. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  7984. }
  7985. var tempgrdNodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.initRecinfoGridRef);
  7986. for(var i = 0; i < tempgrdNodeList.length; i++)
  7987. {
  7988. var degnitemlevlNode = tempgrdNodeList.item(i).selectSingleNode("degnitemlevlcd");
  7989. degnitemlevlNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlNode.text;
  7990. var itemNodeList = tempgrdNodeList.item(i).selectNodes("recitem");
  7991. for(var j = 0; j < itemNodeList.length; j++)
  7992. {
  7993. var recitemNode = itemNodeList.item(j);
  7994. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  7995. if(fstlevlitemcdNode == null)
  7996. continue;
  7997. fstlevlitemcdNode.text = fstLevlItemCd;
  7998. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  7999. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8000. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8001. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8002. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8003. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8004. }
  8005. }
  8006. }
  8007. /**
  8008. * @group :
  8009. * @ver : 2009.12.22
  8010. * @by : acwon
  8011. * @modify : 2009.12.22 (acwon)
  8012. * @---------------------------------------------------
  8013. * @type : function
  8014. * @access : public
  8015. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  8016. * 동일한 부분서식이 두개이상일때 문제점이 발견되어 보완함.
  8017. * @param : ivwObj - 최상위 아이템 코드를 세팅할 iviewer 객체
  8018. * orgSupDegnItemNo
  8019. * @return :
  8020. * @---------------------------------------------------
  8021. */
  8022. function setFstLevlItemCdOnUnitForm(ivwObj, orgSupDegnItemNo)
  8023. {
  8024. var degnitemlevlcd = model.getValue(gPageInfo_EMR.formdegnRef + "[degnitemno = '" + orgSupDegnItemNo + "']/degnitemlevlcd");
  8025. var fstLevlBaseItemCd = degnitemlevlcd.substr(0, degnitemlevlcd.indexOf(".") >= 0 ? degnitemlevlcd.indexOf(".") : degnitemlevlcd.length);
  8026. var fstLevlItemCd = model.getValue(gPageInfo_EMR.formdegnRef + "[degnitemlevlcd = '" + fstLevlBaseItemCd + "']/degnitemcd");
  8027. var nodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.recItemRef);
  8028. for(var i = 0; i < nodeList.length; i++)
  8029. {
  8030. var recitemNode = nodeList.item(i);
  8031. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8032. if(fstlevlitemcdNode == null)
  8033. continue;
  8034. if(recitemNode.selectSingleNode("degnunitcd") == null)
  8035. {
  8036. var unitcdNode = instance1.createElement("degnunitcd");
  8037. recitemNode.appendChild(unitcdNode);
  8038. }
  8039. fstlevlitemcdNode.text = fstLevlItemCd;
  8040. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8041. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8042. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8043. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8044. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8045. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8046. }
  8047. var grdNodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.RecinfoGridRef);
  8048. for(var i = 0; i < grdNodeList.length; i++)
  8049. {
  8050. // degnunitcd 노드 확인
  8051. var degnitemlevlNode = grdNodeList.item(i).selectSingleNode("degnitemlevlcd");
  8052. degnitemlevlNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlNode.text;
  8053. var itemNodeList = grdNodeList.item(i).selectNodes("recitem");
  8054. for(var j = 0; j < itemNodeList.length; j++)
  8055. {
  8056. var recitemNode = itemNodeList.item(j);
  8057. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8058. if(fstlevlitemcdNode == null)
  8059. continue;
  8060. if(recitemNode.selectSingleNode("degnunitcd") == null)
  8061. {
  8062. var unitcdNode = instance1.createElement("degnunitcd");
  8063. recitemNode.appendChild(unitcdNode);
  8064. }
  8065. fstlevlitemcdNode.text = fstLevlItemCd;
  8066. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8067. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8068. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8069. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8070. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8071. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8072. }
  8073. }
  8074. var tempnodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.initrecItemRef);
  8075. for(var i = 0; i < tempnodeList.length; i++)
  8076. {
  8077. var recitemNode = tempnodeList.item(i);
  8078. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8079. if(fstlevlitemcdNode == null)
  8080. continue;
  8081. if(recitemNode.selectSingleNode("degnunitcd") == null)
  8082. {
  8083. var unitcdNode = instance1.createElement("degnunitcd");
  8084. recitemNode.appendChild(unitcdNode);
  8085. }
  8086. fstlevlitemcdNode.text = fstLevlItemCd;
  8087. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8088. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8089. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8090. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8091. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8092. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8093. }
  8094. var tempgrdNodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.initRecinfoGridRef);
  8095. for(var i = 0; i < tempgrdNodeList.length; i++)
  8096. {
  8097. var degnitemlevlNode = tempgrdNodeList.item(i).selectSingleNode("degnitemlevlcd");
  8098. degnitemlevlNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlNode.text;
  8099. var itemNodeList = tempgrdNodeList.item(i).selectNodes("recitem");
  8100. for(var j = 0; j < itemNodeList.length; j++)
  8101. {
  8102. var recitemNode = itemNodeList.item(j);
  8103. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8104. if(fstlevlitemcdNode == null)
  8105. continue;
  8106. fstlevlitemcdNode.text = fstLevlItemCd;
  8107. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8108. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8109. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8110. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8111. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8112. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8113. }
  8114. }
  8115. }
  8116. /**
  8117. * @group :
  8118. * @ver : 2010.04.15
  8119. * @by : 주희경
  8120. * @modify:
  8121. * @---------------------------------------------------
  8122. * @type :
  8123. * @access : public
  8124. * @desc : 서식 저장 시 필수 입력 체크 할 때 해당 컨트롤이 disable상태인지 체크한다.
  8125. * @param :
  8126. * @param :
  8127. * @return :
  8128. * @---------------------------------------------------
  8129. */
  8130. function fGetReadOnlyStat( degnitemno )
  8131. {
  8132. var modelchildren = model.children;
  8133. var length = modelchildren.length;
  8134. for (i=0; i< length; i++)
  8135. {
  8136. if( modelchildren.item(i).elementName == "xforms:bind" )
  8137. {
  8138. var ref = modelchildren.item(i).attribute("ref");
  8139. if ( ref.indexOf("degnitemno='"+degnitemno+"'") > -1 )
  8140. {
  8141. var ctrlid = modelchildren.item(i).attribute("id").substr(5, modelchildren.item(i).attribute("id").length);
  8142. var pCtrl = document.all(ctrlid);
  8143. if ( pCtrl.disabled == true )
  8144. return true;
  8145. else
  8146. return false;
  8147. }
  8148. }
  8149. }
  8150. return false;
  8151. }
  8152. /**
  8153. * @group :
  8154. * @ver : 2008.07.16
  8155. * @by : 이경희
  8156. * @modify:
  8157. * @---------------------------------------------------
  8158. * @type :
  8159. * @access : public
  8160. * @desc : 진료기록에서 서식 저장시 필수입력 아이템 입력 여부를 체크한다.
  8161. * @param :
  8162. * @param :
  8163. * @return :
  8164. * @---------------------------------------------------
  8165. */
  8166. function chkEssentialitem(supdegnitemcd)
  8167. {
  8168. var pageInfo = new PAGEINFO();
  8169. // formdegn 인스턴스에서 essential:true 속성 아이템리스트를 골라낸다.
  8170. var esCnt = getNodesetCnt(model, "/root/main/forminfo/formdegn[essnrecyn = 'Y']");
  8171. //2010.11.26 김달현 - 서식 구분
  8172. var formprogflag = model.getValue("/root/main/forminfo/formmast/formprogflag");
  8173. if(esCnt > 0)
  8174. {
  8175. // degnitemlevlcd 를 찾는다.
  8176. var formdegnNodelist = findNodeset(model, "/root/main/forminfo/formdegn[essnrecyn = 'Y']");
  8177. // debugger;
  8178. for(var idx = 0; idx < formdegnNodelist.length; idx++)
  8179. {
  8180. var formdegnNode = formdegnNodelist.item(idx);
  8181. var degnitemno = formdegnNode.selectSingleNode("degnitemno").text;
  8182. var degnitemlevlcd = formdegnNode.selectSingleNode("degnitemlevlcd").text;
  8183. var degnitemkind = formdegnNode.selectSingleNode("degnitemkind").text;
  8184. var itemattrvalNode = formdegnNode.selectSingleNode("itemattrval");
  8185. var degnitemnm = formdegnNode.selectSingleNode("degnitemnm").text;
  8186. var supdegnitemcd = formdegnNode.selectSingleNode("supdegnitemcd").text;
  8187. if ( fGetReadOnlyStat( degnitemno ) ) //현재 disable 상태이면 필수체크 안한다. 2010.04.15, 주희경
  8188. {
  8189. continue;
  8190. }
  8191. if(itemattrvalNode != null)
  8192. {
  8193. var attr = getStyleValue(itemattrvalNode.text, "essential");
  8194. var recitemNode = null;
  8195. if(attr == "true")
  8196. {
  8197. if (supdegnitemcd != null && supdegnitemcd != "") {
  8198. recitemNode = findNode(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + supdegnitemcd + "." + degnitemlevlcd +"']");
  8199. } else {
  8200. //2010.01.17 안치원 - 진단명,수술명 필수입력체크 하지 못하는 오류 수정
  8201. if (degnitemkind == "DGN" || degnitemkind == "OPN") {
  8202. recitemNode = findNode(model, "/root/main/recinfo/grid/recitem[degnitemlevlcd = '" + degnitemlevlcd +"']");
  8203. } else {
  8204. recitemNode = findNode(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd +"']");
  8205. }
  8206. }
  8207. //var rectemcdNode = findNode(model, pageInfo.grdNodeset + "[degnitemlevlcd = '" + degnitemlevlcd +"']");
  8208. //var rectemnmNode = findNode(model, pageInfo.grdNodeset + "[degnitemlevlcd = '" + degnitemlevlcd +"']");
  8209. if(recitemNode != null)
  8210. {
  8211. //2010.01.16 안치원 - MSL 필수입력체크 오류수정
  8212. if(degnitemkind == "MSL")
  8213. {
  8214. var cnt = 0;
  8215. if (supdegnitemcd != null && supdegnitemcd != "") {
  8216. cnt = getNodesetCnt(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + supdegnitemcd + "." + degnitemlevlcd+"' and rectermcd != '']");
  8217. }else{
  8218. cnt = getNodesetCnt(model, pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd+"' and rectermcd != '']");
  8219. }
  8220. if(cnt > 0)
  8221. continue;
  8222. }
  8223. else if(degnitemkind == "RDO" || degnitemkind == "CMB" || degnitemkind == "CHK" || degnitemkind == "SSL")
  8224. {
  8225. var rectermcdNode = recitemNode.selectSingleNode("rectermcd");
  8226. if(rectermcdNode != null && rectermcdNode.text != "")
  8227. continue;
  8228. }
  8229. else if(degnitemkind == "FRM")
  8230. {
  8231. //2010.01.12 안치원 - MTX의 필수입력시 기본부분서식이 있으면 부분서식을, 없으면 MTX의 입력여부를 검사한다.
  8232. continue;
  8233. }
  8234. //2010.11.26 김달현 - 제증명 서식의 진단필수체크
  8235. else if(formprogflag == "PROF" && degnitemkind == "DGN"){
  8236. var degnitemcd = formdegnNode.selectSingleNode("degnitemcd").text;
  8237. var fstlevlitemcd = model.getValue("/root/main/recinfo/grid/recitem[degnitemcd = '"+degnitemcd+"']/fstlevlitemcd");
  8238. var diagrectermcd = model.getValue("/root/main/recinfo/grid/recitem[fstlevlitemcd = '"+fstlevlitemcd+"' and colno = 2]/rectermcd");//진단코드
  8239. var diagrectermnm = model.getValue("/root/main/recinfo/grid/recitem[fstlevlitemcd = '"+fstlevlitemcd+"' and colno = 2]/rectermnm");//진단명
  8240. if(diagrectermnm == null || diagrectermnm == ""){
  8241. degnitemnm = "진단명";
  8242. }
  8243. //진단코드가 입력된 경우는 진단명까지 입력여부 체크
  8244. if(diagrectermnm != ""){
  8245. continue;
  8246. }else{
  8247. if(diagrectermcd != "" && diagrectermnm != ""){
  8248. continue;
  8249. }
  8250. }
  8251. }
  8252. else if(degnitemkind == "MTX" || degnitemkind == "DGN" || degnitemkind == "OPN")//2010.01.17 안치원 - 진단명,수술명 필수입력체크 하지 못하는 오류 수정
  8253. {
  8254. //2010.01.12 안치원 - MTX의 필수입력시 기본부분서식이 있으면 부분서식을, 없으면 MTX의 입력여부를 검사한다.
  8255. var baseFormCnt = getNodesetCnt(model, "/root/main/forminfo/formdegn[supdegnitemno = '"+degnitemno+"' and itemuseflag='F0']");
  8256. if (baseFormCnt == 0) {
  8257. var recCntsNode = recitemNode.selectSingleNode("reccnts");
  8258. if(recCntsNode != null && recCntsNode.text != "")
  8259. continue;
  8260. } else {
  8261. var degnitemcd = formdegnNode.selectSingleNode("degnitemcd").text;
  8262. var recCnt = getNodesetCnt(model, pageInfo.recItemRef2+"[fstlevlitemcd = '"+degnitemcd+"']");
  8263. if (recCnt != 0)
  8264. continue;
  8265. }
  8266. }
  8267. else
  8268. {
  8269. var reccntsNode = recitemNode.selectSingleNode("reccnts");
  8270. if(reccntsNode != null && reccntsNode.text != "")
  8271. continue;
  8272. }
  8273. // 필수 입력 아이템에 포커스를 맞춰준다.
  8274. messageBox("필수 입력항목(" + degnitemnm + ")이 입력되지", "E007");
  8275. var ctrlid = degnitemkind + "_" + degnitemno;
  8276. var ctrl = document.controls(degnitemkind + "_" + degnitemno);
  8277. model.setFocus(ctrlid);
  8278. return false;
  8279. }
  8280. }
  8281. }
  8282. }
  8283. }
  8284. return true;
  8285. }
  8286. /**
  8287. * @group :
  8288. * @ver : 2008.07.28
  8289. * @by : 박종훈
  8290. * @modify:
  8291. * @---------------------------------------------------
  8292. * @type :
  8293. * @access : public
  8294. * @desc : 진료기록 미리보기에서 셋팅한 사용자변 글자크기를 레지스트리에 등록한다
  8295. * @param : regnm : 레지스트리 명
  8296. * @param : regval : 레지스트리 값
  8297. * @return :
  8298. * @---------------------------------------------------
  8299. */
  8300. function setRegistry(regnm, regval)
  8301. {
  8302. model.registry("HKEY_LOCAL_MACHINE", "SOFTWARE\\HIS\\Config\\" + getUserId(), regnm, "STRING") = regval;
  8303. }
  8304. /**
  8305. * @group :
  8306. * @ver : 2008.07.28
  8307. * @by : 박종훈
  8308. * @modify:
  8309. * @---------------------------------------------------
  8310. * @type :
  8311. * @access : public
  8312. * @desc : 진료기록 미리보기에서 셋팅한 사용자변 글자크기를 레지스트리에 등록한다
  8313. * @param : regnm : 레지스트리 명
  8314. * @param :
  8315. * @return : regval : 레지스트리 값
  8316. * @---------------------------------------------------
  8317. */
  8318. function getRegistry(regnm)
  8319. {
  8320. var regval = model.registry("HKEY_LOCAL_MACHINE", "SOFTWARE\\HIS\\Config\\" + getUserId(), regnm, "STRING");
  8321. return regval;
  8322. }
  8323. /**
  8324. * @group :
  8325. * @ver : 2008.09.16
  8326. * @by : 나종천
  8327. * @---------------------------------------------------
  8328. * @type : function
  8329. * @access : public
  8330. * @desc : Check Number
  8331. * @param : 체크번호를 제외한 등록번호, INSTCD
  8332. * @return : PID
  8333. * @---------------------------------------------------
  8334. */
  8335. function getCretCheckNo(sPid, sInstcd){
  8336. var iBowl = 0;
  8337. var iStock = 0;
  8338. var iLength = sPid.length;
  8339. switch(sInstcd){
  8340. case "012": // 강남성모병원 Check Number 생성로직
  8341. for(var i = 0; i < iLength; i ++) {
  8342. iBowl = parseInt(sPid.substring(i, i+1)) * (parseInt(iLength) - parseInt(i) );
  8343. iStock = parseInt(iStock) + parseInt(iBowl);
  8344. }
  8345. iBowl = (parseInt(iStock) - 5)/11;
  8346. if(parseInt(sPid) < 1950909){ // 2008-10-03 오픈시 원무 check 번호 로직 문제로 인하여 최초 생성번호 이후에는 버림처리로 분기함
  8347. iBowl = (parseInt(iStock) - (parseInt(Math.round(iBowl)) * 11) );
  8348. } else {
  8349. iBowl = (parseInt(iStock) - (parseInt(Math.floor(iBowl)) * 11) );
  8350. }
  8351. iBowl = 11 - parseInt(iBowl);
  8352. if( iBowl == 11 || iBowl == 10) {
  8353. iBowl = 0;
  8354. // iBowl 이 음수일 경우 '-'부호가 환자번호에 들어가서 양수로 변환해준다..
  8355. }else if( iBowl < 0) {
  8356. iBowl = parseInt(iBowl) * -1;
  8357. }
  8358. sPid = sPid.concat(parseInt(iBowl));
  8359. break;
  8360. case "017": // 빈센트병원 Check Number 생성로직
  8361. for( i = 0; i < iLength; i ++) {
  8362. iBowl = parseInt(sPid.substring(i, i+1)) * (i+2);
  8363. iStock = iStock + iBowl;
  8364. }
  8365. iBowl2 = (parseInt(iStock) - 5)/11;
  8366. iBowl = (iStock - parseInt((Math.round(iBowl2) * 11)) );
  8367. iBowl = 11 - iBowl;
  8368. if( iBowl == 11 || iBowl == 10) {
  8369. iBowl = 0;
  8370. // iBowl 이 음수일 경우 '-'부호가 환자번호에 들어가서 양수로 변환해준다..
  8371. }else if( iBowl < 0) {
  8372. iBowl = iBowl * -1;
  8373. }
  8374. sPid = sPid + "" + iBowl;
  8375. }
  8376. return sPid;
  8377. }
  8378. /**
  8379. * @desc : 메타데이터에서 caption을 CDATA로 감싼다.
  8380. * @id :
  8381. * @event :
  8382. * @return :
  8383. * @authur : 이경희
  8384. */
  8385. function SetCdata(metadata)
  8386. {
  8387. var strMeta = metadata;
  8388. // 1. CDATA로 감싸져 있는지 확인.
  8389. if(isSearchString(strMeta, "CDATA") == false)
  8390. {
  8391. var strStCaptionOld = "";
  8392. var strEdCaptionOld = "";
  8393. var strStCaptionNew = "";
  8394. var strEdCaptionNew = "";
  8395. // 배열로 반환
  8396. strStCaptionOld = GetXvgStCaption(strMeta);
  8397. strEdCaptionOld = GetXvgEdCaption(strMeta);
  8398. // for문으로 반복
  8399. for(var idx = 0; idx < strStCaptionOld.length; idx++)
  8400. {
  8401. if(idx == 0)
  8402. {
  8403. // 모든 </caption> 을 ]]></caption> 으로 변경
  8404. strEdCaptionNew = "]]>" + strEdCaptionOld[idx];
  8405. strMeta = strMeta.setReplaceWord(strEdCaptionOld[idx], strEdCaptionNew);
  8406. }
  8407. strStCaptionNew = strStCaptionOld[idx] + "<![CDATA[";
  8408. strMeta = strMeta.setReplaceWord(strStCaptionOld[idx], strStCaptionNew);
  8409. }
  8410. }
  8411. return strMeta;
  8412. }
  8413. /**
  8414. * @desc : 메타데이터에서 caption의 시작 태그를 반환한다.
  8415. * @id :
  8416. * @event :
  8417. * @return :
  8418. * @authur : 이경희
  8419. */
  8420. function GetXvgStCaption(metadata)
  8421. {
  8422. var strMeta = metadata;
  8423. var getStCaption = new Array();
  8424. var grpexpSt = new RegExp('(<caption[^<>]+>)', 'igm');
  8425. if(grpexpSt.test(strMeta) == true)
  8426. {
  8427. getStCaption = strMeta.match(grpexpSt);
  8428. strMeta = strMeta.replace(grpexpSt, "");
  8429. }
  8430. if(getStCaption.length > 0)
  8431. return getStCaption;
  8432. else
  8433. return "";
  8434. }
  8435. /**
  8436. * @desc : 메타데이터에서 caption의 종료 태그를 반환한다.
  8437. * @id :
  8438. * @event :
  8439. * @return :
  8440. * @authur : 이경희
  8441. */
  8442. function GetXvgEdCaption(metadata)
  8443. {
  8444. var strMeta = metadata;
  8445. var getEdCaption = new Array();
  8446. var grpexpEd = new RegExp('(</caption>)', 'igm');
  8447. if (grpexpEd.test(strMeta) == true)
  8448. {
  8449. getEdCaption = strMeta.match(grpexpEd);
  8450. strMeta = strMeta.replace(grpexpEd, "");
  8451. }
  8452. if(getEdCaption.length > 0)
  8453. return getEdCaption;
  8454. else
  8455. return "";
  8456. }
  8457. /**
  8458. * @desc : 메타데이터에서 viewmode, width, height 를 배열로 반환한다.
  8459. * @id :
  8460. * @event :
  8461. * @return :
  8462. * @authur : 이경희
  8463. */
  8464. function GetMetaMode(str)
  8465. {
  8466. var strXrw = str;
  8467. var regexp = new RegExp('(<Xvg [^<>]+>)', 'igm');
  8468. if (regexp.test(strXrw) == true)
  8469. {
  8470. var xvginfo = strXrw.match(regexp);
  8471. var strRtn = "";
  8472. for(var idx =0; idx < xvginfo.length; idx++)
  8473. {
  8474. strRtn += xvginfo[idx];
  8475. }
  8476. // ViewMode 얻기
  8477. strRtn = strRtn.setReplaceWord("<", "");
  8478. strRtn = strRtn.setReplaceWord(">", "");
  8479. strRtn = strRtn.setReplaceWord("'", "");
  8480. var arrAttrs = strRtn.split(" ");
  8481. var viewMode = "";
  8482. var viewWidth = "";
  8483. var viewHeight = "";
  8484. var strXvgInfo = new Array(3);
  8485. for(var i = 0; i < arrAttrs.length; i++)
  8486. {
  8487. var strSplit = arrAttrs[i].split("=");
  8488. if(strSplit[0] == "viewMode") {
  8489. viewMode = strSplit[1];
  8490. strXvgInfo[0] = viewMode;
  8491. continue;
  8492. }
  8493. if(strSplit[0] == "width") {
  8494. viewWidth = strSplit[1];
  8495. strXvgInfo[1] = viewWidth;
  8496. continue;
  8497. }
  8498. if(strSplit[0] == "height") {
  8499. viewHeight = strSplit[1];
  8500. strXvgInfo[2] = viewHeight;
  8501. continue;
  8502. }
  8503. }
  8504. return strXvgInfo;
  8505. }
  8506. else
  8507. {
  8508. return "";
  8509. }
  8510. }
  8511. /**
  8512. * @desc : XSLT 속성을 얻어온다.
  8513. * @
  8514. * @param :
  8515. * @return :
  8516. * @---------------------------------------------------
  8517. */
  8518. function getCtrlAttribute(type, value)
  8519. {
  8520. if(value != "") return type+":"+value+"; ";
  8521. return "";
  8522. }
  8523. /**
  8524. * @desc : 무인수납가능여부 표시
  8525. * @param :
  8526. * @return :
  8527. * @author : 2010.03.08 주희경
  8528. * @---------------------------------------------------
  8529. */
  8530. function fSetRcptpossynmsg( pid )
  8531. {
  8532. model.makeValue("/root/main/rcptpossynmsg", "");
  8533. pamfGetCodeList(new Array("P0029"), new Array("/root/init/PAM/P0029list"));
  8534. var p0029_node = "/root/init/PAM/P0029list/P0029";
  8535. var p0029_msg = "";
  8536. model.makeValue("/root/send/PAM/pid" , pid );
  8537. model.makeValue("/root/send/PAM/sessuserid", getUserInfo("userid"));
  8538. model.makeValue("/root/send/PAM/sessinstcd", getUserInfo("dutplceinstcd"));
  8539. model.makeValue("/root/send/PAM/checkyn" , "Y");
  8540. submit("TXPAO99906");
  8541. /*
  8542. if(getNodesetCount("/root/main/rsv/h_opmi/opmi/error") > 0) {
  8543. p0029_msg = "자동수납불가"
  8544. + model.getvalue(p0029_node + "[cdid = '"+ model.getValue("/root/main/rsv/h_opmi/opmi/error")+ "']/detl").removeMask("죄송합니다.수납창구에서 번호표를 뽑고 대기하십시오");
  8545. }
  8546. if(getNodesetCount("/root/main/rsv/h_opmi/opmi/error") == 0) {
  8547. p0029_msg = "자동수납가능";
  8548. }
  8549. */
  8550. var errorcode = model.getValue("/root/main/rsv/h_opmi/opmi/error");
  8551. p0029_msg = "";
  8552. if (isNull(errorcode)) {
  8553. p0029_msg = "자동수납가능";
  8554. }
  8555. else {
  8556. p0029_msg = "자동수납불가"+ model.getvalue(p0029_node + "[cdid = '"+ model.getValue("/root/main/rsv/h_opmi/opmi/error")+ "']/detl").removeMask("죄송합니다.수납창구에서 번호표를 뽑고 대기하십시오");
  8557. }
  8558. model.makeValue("/root/main/rcptpossynmsg", p0029_msg);
  8559. txt_rcptpossynmsg.hint = model.getValue("/root/main/rcptpossynmsg");
  8560. }
  8561. /**
  8562. * @desc : 노드셋을 맨위에 집어넣는다.
  8563. strDest : 목적노드
  8564. strSrc : 소스노드
  8565. * @param :
  8566. * @return :
  8567. * @author : 2010.03.30 강지훈
  8568. * @---------------------------------------------------
  8569. */
  8570. function fInsertNodes(strDest, strSrc){
  8571. var srcNodeList = instance1.selectNodes(strSrc);
  8572. if(srcNodeList.length > 0 ){
  8573. var destNodeList = instance1.selectNodes(strDest);
  8574. if( destNodeList == null || destNodeList.length == 0 ) {
  8575. return false;
  8576. }
  8577. var pDestNode = destNodeList(0).parentNode;
  8578. var destLastNodesetName = destNodeList(0).nodeName;
  8579. var tmpSrcNode;
  8580. for( var a = srcNodeList.length - 1; a >= 0; a-- ) {
  8581. pDestNode = instance1.selectSingleNode(strDest).parentNode;
  8582. tmpSrcNode = srcNodeList.item(a).cloneNode(true);
  8583. tmpSrcNode.nodeName = destLastNodesetName;
  8584. model.duplicate(pDestNode, tmpSrcNode, "*[1]");
  8585. }
  8586. }
  8587. }