EMRCommon.xjs 423 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 진료 - emrcommon - JScript
  5. * Version :
  6. - Ver.1.00.01
  7. * 최초작성일:
  8. * 수정이력:
  9. 2008-11-24
  10. - getImgeData() 함수 수정(로컬이미지는 공통서식, 과별서식 구분 없이 무조건 저장.
  11. 편집가능 DB이미지는 공통서식의 경우 편집을 하지 않으면 Pass
  12. 과별서식의 경우 편집을 하지 않아도 저장하도록 수정)
  13. 2008-11-21
  14. - removeGridRowEx(degnitemno, type) 함수 수정(오지훈)
  15. 기존 함수는 old로 함수명 변경처리
  16. * 기타:
  17. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  18. */
  19. var INFO_CSV_DEL = "▦▩*^^*▩▦";
  20. /*
  21. var gPageInfo_EMR = new PAGEINFO();
  22. var gPrePath_recItemRef = gPageInfo_EMR.recItemRef;
  23. var gPrePath_formdegnRef = gPageInfo_EMR.formdegnRef;
  24. //var gPrePath_formdegnRef_degnitemno = gPageInfo_EMR.formdegnRef + "[degnitemno = '";
  25. var gPrePath_recItemGridRef = gPageInfo_EMR.RecinfoGridrecItemRef;
  26. var gPrePath_recInfoGridRef = gPageInfo_EMR.RecinfoGridRef;
  27. */
  28. // 그리드 컬럼 구분자
  29. // 예) ctrl.colwidth:23^23^23
  30. //var GRD_COL_DELIMETER = "^";
  31. var GRD_COL_DELIMETER = ",";
  32. /**
  33. * @desc : page info 설정
  34. * @id :
  35. * @event :
  36. * @return :
  37. * @authur : 이상현
  38. */
  39. /*
  40. function PAGEINFO(viewerobj)
  41. {
  42. if(viewerobj == null){
  43. if( frmf_getCurrentFormKind() == "main" ){
  44. viewerobj = frmf_getMainViewer();
  45. }else{
  46. viewerobj = getOwnerFrame().form;
  47. }
  48. }
  49. this.paperwidth = 680;
  50. this.paperheight = 1000;
  51. // this.pagewidth = viewerobj.position.width;
  52. // this.pageheight = viewerobj.position.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 = 10;
  64. this.forminfoRef = "ds_main_forminfo";
  65. this.formmastRef = "ds_main_forminfo_formmast"; //this.formmastRef = "/root/main/forminfo/formmast";
  66. this.formdegnRef = "ds_main_forminfo_formdegn";
  67. this.vallistRef = "ds_main_forminfo_vallist";
  68. this.imgelistRef = "ds_main_forminfo_imgelist";
  69. this.recRef = "ds_main_recinfo";
  70. this.recRef2 = "ds_hidden_recinfo";
  71. this.initrecRef = "ds_temp_recinfo";
  72. this.extnrecRef = "ds_hidden_extnformrec_recinfo";
  73. this.recMastRef = "ds_main_recinfo_formrec";
  74. this.recItemRef = "ds_main_recinfo_recitem";
  75. this.recItemRef2 = "ds_hidden_recinfo_recitem";
  76. this.initrecItemRef = "ds_temp_recinfo_recitem";
  77. this.extnrecItemRef = "ds_hidden_extnformrec_recinfo_recitem";
  78. this.savedInfoRef = "ds_main_savedinfo_";
  79. this.savedInfoRef2 = "ds_hidden_savedinfo";
  80. this.savedInfoItemRef2 = "ds_hidden_savedinfo_recitem";
  81. this.grdNodeset = "ds_main_recinfo_recitem";
  82. this.grdCapRef = "ds_main_forminfo_GrdList";
  83. this.imgerecItemRef = "ds_temp_imgerec_recinfo_recitem";
  84. //가계도 처리를 위하여 추가(2008-09-25) 박종훈
  85. this.fmyrecItemRef = "ds_temp_fmyrec_recinfo";
  86. //추가기록 처리를 위하여 추가(2008-09-25) 박종훈
  87. this.etcrecItemRef = "ds_temp_etcrec_recinfo";
  88. //누적데이터 조회를 위하여 추가(2008-09-30) 박종훈
  89. this.acmlrecItemRef = "ds_acmltmp_recinfo_recitem";
  90. this.sortItemRef = "ds_temp_sort_recinfo_recitem";
  91. this.popForminfoRef = "ds_temp_pop_forminfo";
  92. this.popRecinfoRef = "ds_temp2_getrecinfo_recinfo";
  93. this.RecinfoGridRef = "ds_main_recinfo_grid";
  94. this.initRecinfoGridRef = "ds_temp_recinfo_grid";
  95. this.RecinfoGridrecItemRef = "ds_main_recinfo_grid_recitem";
  96. this.initRecinfoGridrecItemRef = "ds_temp_recinfo_grid_recitem";
  97. // this.xsltRecinfoRecitemRef = "/recinfo/recitem";
  98. // this.xsltRecinfoGridRef = "/recinfo/grid";
  99. //20080818 박종훈 추가(특수서식 로딩관련)
  100. this.initforminfoRef = "ds_temp_forminfo";
  101. this.initformmastRef = "ds_temp_forminfo_formmast";
  102. //2010-03-31 오전 9:33:12 강지훈 추가(최종진단명)
  103. this.lastdiagItemRef = "ds_temp_lastdiag_recinfo";
  104. this.formCd = "";
  105. this.srcFormCd = "";
  106. this.formDegnSeq = "";
  107. this.degnItemNo = "";
  108. this.degnItemCd = "";
  109. this.degnItemLevlCd = "";
  110. this.fstLevlItemCd = "";
  111. this.degnitemkind = "";
  112. this.degnitemlevlno = "";
  113. this.degnitemnm = "";
  114. this.rectermnm = "";
  115. this.comuseyn = "";
  116. this.fontFamily = "돋움, Arial";
  117. this.fontSize = 11;
  118. this.align = "";
  119. this.valign = "";
  120. }
  121. function ITEMVAL()
  122. {
  123. this.rectermcd = "";
  124. this.rectermnm = "";
  125. this.reccnts = "";
  126. this.recimge = "";
  127. }
  128. function PARAM(name, value)
  129. {
  130. this.name = name;
  131. this.value = value;
  132. }
  133. */
  134. /**
  135. * @desc : 노드셋 카피
  136. * @id :
  137. * @event :
  138. * @return :
  139. * @authur : 이상현
  140. */
  141. function copyNodeset(strDest, strSrc, mode, destModel, srcModel)
  142. {
  143. if(mode == null)
  144. mode = "replace";
  145. if(destModel == null)
  146. destModel = model;
  147. if(srcModel == null)
  148. srcModel = model;
  149. if(mode == "replace")
  150. destModel.removeNodeset(strDest);// 대상 노드를 삭제한다.
  151. //var destListLen = 0;
  152. var destNodeList = destModel.instances(0).selectNodes(strDest);
  153. //if(destNodeList != null)
  154. var destListLen = destNodeList.length;
  155. var srcNodeList = srcModel.instances(0).selectNodes(strSrc);
  156. var prepath_strDest = strDest + "[";
  157. var idx;
  158. for(var i = 0; i < srcNodeList.length; i++)
  159. {
  160. idx = i + 1 + destListLen;
  161. var strDest1 = prepath_strDest + idx + "]";
  162. destModel.makeNode(strDest1);
  163. var destNode = destModel.instances(0).selectSingleNode(strDest1);
  164. var srcNode = srcNodeList.item(i);
  165. var srcChildList = srcNode.childNodes;
  166. for(var j = 0; j < srcChildList.length; j++)
  167. destNode.appendChild(srcChildList.item(j).cloneNode(true));
  168. }
  169. }
  170. /**
  171. * @desc : 노드 카피
  172. * @id :
  173. * @event :
  174. * @return :
  175. * @authur : 이상현
  176. */
  177. function copyNode(destModel, srcModel, strDest, strSrc)
  178. {
  179. if(findNode(srcModel, strSrc) == null)
  180. {
  181. alert("카피할 원본노드(" + strSrc + ")가 존재하지 않습니다..");
  182. return;
  183. }
  184. var destNode = findNode(destModel, strDest);
  185. if(destNode == null)
  186. destModel.makeNode(strDest);
  187. else
  188. {
  189. var childList = destNode.childNodes;
  190. for(var idx = 0; idx < childList.length; idx++)
  191. {
  192. var childNode = childList.item(idx);
  193. destModel.removenode(childNode);
  194. }
  195. }
  196. var destXml = destModel.instances(0);
  197. var destNode = destXml.selectSingleNode(strDest);
  198. var nodeList2 = destNode.childNodes;
  199. var temp_count = 0;
  200. var total_count = nodeList2.length;
  201. for (; temp_count<total_count; temp_count++)
  202. {
  203. destNode.removeChild( nodeList2.item(0) );
  204. }
  205. var srcXml = srcModel.instances(0);
  206. var srcNode = srcXml.selectSingleNode(strSrc);
  207. nodeList2 = srcNode.childNodes;
  208. var clone_node = null;
  209. temp_count = 0;
  210. total_count = nodeList2.length;
  211. for (; temp_count<total_count; temp_count++)
  212. {
  213. var node = nodeList2.item(temp_count);
  214. clone_node = node.cloneNode(true);
  215. destNode.appendChild( clone_node );
  216. }
  217. }
  218. /**
  219. * @desc : 노드 찾기
  220. * @id :
  221. * @event :
  222. * @return :
  223. * @authur : 이상현
  224. */
  225. // function findNode(srchModel, strPath)
  226. // {
  227. // var insXml = srchModel.instances(0);
  228. //
  229. // var destNode = insXml.selectSingleNode(strPath);
  230. // return destNode;
  231. // }
  232. /**
  233. * @desc : 노드셋 찾기
  234. * @id :
  235. * @event :
  236. * @return :
  237. * @authur : 이상현
  238. */
  239. function findNodeset(srchModel, strPath)
  240. {
  241. var insXml = srchModel.instances(0);
  242. var destNodeList = insXml.selectNodes(strPath);
  243. return destNodeList;
  244. }
  245. /**
  246. * @desc : 노드셋 갯수 카운트
  247. * @id :
  248. * @event :
  249. * @return :
  250. * @authur : 이상현
  251. */
  252. function getNodesetCnt(srchModel, path)
  253. {
  254. var insXml = srchModel.instances(0);
  255. var nodeList = insXml.selectNodes(path);
  256. return nodeList.length;
  257. }
  258. /**
  259. * @desc : 그리드 트리 설정
  260. * @id :
  261. * @event :
  262. * @return :
  263. * @authur : 이상현
  264. */
  265. function setGridTree( gridObj, levelcol, targetcol, collapsed) {
  266. //tree 및 레벨설정
  267. for(var i = gridObj.fixedRows; i < gridObj.rows; i++)
  268. {
  269. //gridObj.issubtotal(i) = true;
  270. gridObj.outlinelevel(i)=gridObj.valuematrix(i, levelcol); //인스턴스 levl 값임
  271. }
  272. // tree 대상 컬럼 및 형태 설정
  273. gridObj.outlinecol=targetcol; //연결선이 표현되는 컬럼
  274. gridObj.outlinebar=2; //연결선 형태 설정 (+ , - , 사각형 안보이게 하려면 0 으로 세팅)
  275. gridObj.treecolor="#948777"
  276. // 자식 트리 접기
  277. if (collapsed)
  278. {
  279. for(var i = gridObj.fixedrows; i <gridObj.rows; i++)
  280. {
  281. gridObj.isCollapsed(i) = collapsed; //자식 트리 접기
  282. }
  283. }
  284. }
  285. function POSITION(x, y)
  286. {
  287. this.x = x;
  288. this.y = y;
  289. }
  290. function TABLE(rows, cols)
  291. {
  292. this.rows = rows;
  293. this.cols = cols;
  294. }
  295. function SIZE(cx, cy)
  296. {
  297. this.cx = cx;
  298. this.cy = cy;
  299. }
  300. /**
  301. * @desc : 컨트롤의 스타일 값 가져오기
  302. * @id :
  303. * @event :
  304. * @return :
  305. * @authur : 이상현
  306. */
  307. // function getStyleValue(attrs, attrNm, ctrltype)
  308. // {
  309. // if(ctrltype != null)
  310. // attrNm = ctrltype + "." + attrNm;
  311. //
  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. //
  319. // if(arrAttr[0] == attrNm)
  320. // {
  321. // //return arrAttr[1].setReplaceWord("|", ":");
  322. // return arrAttr[1];
  323. // }
  324. // }
  325. //
  326. // return "";
  327. // }
  328. /**
  329. * @desc : 컨트롤의 포맷 값 가져오기
  330. * @id :
  331. * @event :
  332. * @return :
  333. * @authur : 이경희
  334. */
  335. function getFormatStyleValue(attrs, attrNm, ctrltype)
  336. {
  337. if(attrs == null || attrs == "")
  338. return "";
  339. if(ctrltype != null)
  340. attrNm = ctrltype + "." + attrNm;
  341. // "label.left:0;label.top:-1;label.width:50;label.height:20;ctrl.left:65;left:40;top:1127;border-style:none;
  342. // ctrl.border-style:sunken;format:99;ctrl.format:hh|nn;"
  343. var arrAttrs = attrs.split(";");
  344. var arrAttr = "";
  345. for(var i = 0; i < arrAttrs.length; i++)
  346. {
  347. if(isSearchString(arrAttrs[i], attrNm))
  348. {
  349. arrAttr = arrAttrs[i].setReplaceWord("ctrl.format:", "");
  350. arrAttr = arrAttr.setReplaceWord("|", ":");
  351. break;
  352. }
  353. }
  354. return arrAttr;
  355. }
  356. /**
  357. * @desc : 컨트롤의 스타일 값 셋팅
  358. * @id :
  359. * @event :
  360. * @return :
  361. * @authur : 이상현
  362. */
  363. function setStyleValue(attrs, attrNm, attrVal)
  364. {
  365. var arrAttrs = attrs.split(";");
  366. attrs = "";
  367. var bFind = false;
  368. for(var i = 0; i < arrAttrs.length; i++)
  369. {
  370. var arrAttr = arrAttrs[i].split(":");
  371. if(arrAttr.length < 2)
  372. continue;
  373. if(arrAttr[0] == attrNm)
  374. {
  375. arrAttr[1] = attrVal;
  376. bFind = true;
  377. if(attrVal == "")
  378. continue;
  379. }
  380. attrs += arrAttr[0] + ":" + arrAttr[1] + ";";
  381. }
  382. if(!bFind)
  383. attrs += attrNm + ":" + attrVal + ";";
  384. return attrs;
  385. }
  386. /**
  387. * @group :
  388. * @ver : 2007.05.15
  389. * @by :
  390. * @---------------------------------------------------
  391. * @type : function
  392. * @access : public
  393. * @desc : 구분자로 분리된 특정자료를 Reading
  394. * @param : pData : 원본데이터
  395. * @param : pRow : 찾고자 하는 위치의 row
  396. * @param : pCol : 찾고자 하는 위치의 column
  397. * @return : 해당 row, column의 문자열
  398. * @---------------------------------------------------
  399. */
  400. function getArrayData(pData, pRow, pCol, pRowSep, pColSep){
  401. var rowSep = "▩"; // row 구분자
  402. var colSep = "▦"; // column 구분자
  403. if(pRowSep != null && pRowSep != "undefined")
  404. rowSep = pRowSep;
  405. if(pColSep != null && pColSep != "undefined")
  406. colSep = pColSep;
  407. var arrRow = pData.split(rowSep);
  408. if(arrRow.length <= pRow) return "";
  409. var arrCol = arrRow[pRow].split(colSep);
  410. if(arrCol.length <= pCol) return "";
  411. return arrCol[pCol];
  412. }
  413. /**
  414. * @group :
  415. * @ver : 2007.06.13
  416. * @by :
  417. * @---------------------------------------------------
  418. * @type : function
  419. * @access : public
  420. * @desc : 두개의 노드셋을 비교한다.
  421. * @param : originalNode :
  422. * @param : copyNode :
  423. * @return : true, false
  424. * @---------------------------------------------------
  425. */
  426. function fCompareNodes(originalNode, copyNode){
  427. var ins = document.models( 0 ).instances( 0 );
  428. var original = ins.selectSingleNode(originalNode).xml;
  429. var copy = ins.selectSingleNode(copyNode).xml;
  430. if(original == null || copy == null){
  431. return false;
  432. }else if (original == copy){
  433. return true;
  434. }else{
  435. return false;
  436. }
  437. }
  438. /**
  439. * @desc : 조회해온 기록 값을 셋팅
  440. * @id :
  441. * @event :
  442. * @return :
  443. * @authur : 이상현 (2008-07-15)
  444. */
  445. function setSrchData(srcPath, viewobj)
  446. {
  447. model.addLog("[DEBUG] setSrchData srcPath::"+srcPath);
  448. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  449. var pageInfo = new PAGEINFO(viewobj);
  450. var nodeList = model.instances(0).selectNodes(srcPath);
  451. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");//"/root/main/recinfo/recitem";
  452. var initRowno = 0;
  453. var prevColno = 0;
  454. var cntGSL = 0;
  455. var prev_Grddegnitemlevlcd = "";
  456. var prev_Grddegnitemno = "";
  457. var prev_degnitemlevlcd = "";
  458. var prev_degnitemno = "";
  459. var prev_MSLdegnitemno = ""; //2010-03-16 오전 9:17:25 강지훈 : MSL타입 수정모드시 값설정이 제대로 되지않는 오류 수정
  460. //2010-02-08 오후 1:28:25 강지훈 수정 : default 값이 설정되어있을경우 default값을 빼기위해서 destNode의 값을 일괄삭제
  461. var delNodes = viewobj.model.instance1.selectNodes("/root/main/recinfo/recitem[rectermcd != '' or rectermnm != '' or reccnts != '']");
  462. for(var a = 0; a < delNodes.length; a++){
  463. var trgNode = delNodes.item(a);
  464. if(trgNode.selectSingleNode("rectermcd") != null){
  465. trgNode.selectSingleNode("rectermcd").text = "";
  466. }
  467. if(trgNode.selectSingleNode("rectermnm") != null){
  468. trgNode.selectSingleNode("rectermnm").text = "";
  469. }
  470. if(trgNode.selectSingleNode("reccnts") != null){
  471. trgNode.selectSingleNode("reccnts").text = "";
  472. }
  473. }
  474. model.addLog("[DEBUG] setSrchData nodeList.length::"+nodeList.length);
  475. for(var i = 0; i < nodeList.length; i++)
  476. {
  477. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  478. var srcCopyNode = srcNode.cloneNode(true);
  479. var formcdNode = srcNode.selectSingleNode("formcd");
  480. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  481. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  482. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  483. model.addLog("[DEBUG] setSrchData degnitemnmNode::"+degnitemnmNode.text);
  484. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  485. model.addLog("[DEBUG] setSrchData degnitemnoNode::"+degnitemnoNode.text);
  486. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  487. var degnitemlevlcdNode = srcNode.selectSingleNode("degnitemlevlcd");
  488. model.addLog("[DEBUG] setSrchData degnitemkindNode::"+degnitemkindNode.text);
  489. model.addLog("[DEBUG] setSrchData reccnts::"+srcNode.selectSingleNode("reccnts").text);
  490. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  491. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  492. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  493. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  494. var reccntsNode = srcNode.selectSingleNode("reccnts");
  495. var rownoNode = srcNode.selectSingleNode("rowno");
  496. var colnoNode = srcNode.selectSingleNode("colno");
  497. //"/root/main/forminfo/formdegn";
  498. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  499. var itemattrvalNode = null;
  500. if(supdegnitemnoNode != null)
  501. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  502. var grdtype = "";
  503. if(itemattrvalNode != null)
  504. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  505. //"/root/main/forminfo/formmast";
  506. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  507. if(formcdNode.text != destformcdNode.text)
  508. continue;
  509. var condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "'";
  510. var destNode = null;
  511. if(degnitemkindNode.text == "GSU")
  512. {
  513. // debugger;
  514. // GSU의 그리드가 어떤 타입인지 확인한다.
  515. //// 1. root/temp/recinfo 의 노드를 찾는다.
  516. var tempRecinfoNode = findNode(viewobj.model, pageInfo.initrecRef);
  517. //"/root/temp/recinfo/grid/recitem";
  518. var tmpRecitemNode = viewobj.instance1.selectSingleNode(pageInfo.initRecinfoGridrecItemRef + "[degnitemlevlcd = '" + degnitemlevlcdNode.text + "']");
  519. var tempParentNode = null;
  520. var mainGrdType = "";
  521. if(tmpRecitemNode != null)
  522. {
  523. tempParentNode = tmpRecitemNode.parentNode;
  524. var fst_recitemNode = tempParentNode.selectSingleNode("recitem");
  525. var top_degnitemnoNode = tempParentNode.selectSingleNode("degnitemno");
  526. var top_degnitemlevlcdNode = tempParentNode.selectSingleNode("degnitemlevlcd");
  527. var fst_degnitemkindNode = fst_recitemNode.selectSingleNode("degnitemkind");
  528. var fst_orgdegnitemkindNode = fst_recitemNode.selectSingleNode("orgdegnitemkind");
  529. var rootCond = "degnitemno = '" + top_degnitemnoNode.text + "' and degnitemlevlcd = '" + top_degnitemlevlcdNode.text + "'";
  530. if(top_degnitemnoNode !=null && top_degnitemlevlcdNode != null)
  531. {
  532. if(prev_Grddegnitemno == "" && prev_Grddegnitemlevlcd == "")
  533. {
  534. prev_Grddegnitemno = top_degnitemnoNode.text;
  535. prev_Grddegnitemlevlcd = top_degnitemlevlcdNode.text;
  536. }
  537. else
  538. {
  539. // Grid의 degnitemno와 degnitemlevlcd가 다르면 다른 그리드이므로 값을 초기화한다.
  540. if(prev_Grddegnitemno != top_degnitemnoNode.text && prev_Grddegnitemlevlcd != top_degnitemlevlcdNode.text)
  541. {
  542. prev_Grddegnitemno = top_degnitemnoNode.text;
  543. prev_Grddegnitemlevlcd = top_degnitemlevlcdNode.text;
  544. initRowno = 0;
  545. prevColno = -1;
  546. prev_degnitemlevlcd = "";
  547. prev_degnitemno = "";
  548. prev_row = -1;
  549. }
  550. }
  551. }
  552. if(fst_orgdegnitemkindNode == null)
  553. {
  554. // X축, Y축, G축, T축
  555. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemlevlcd = '" + top_degnitemlevlcdNode.text + "']/itemattrval");
  556. if(itemattrvalNode != null)
  557. mainGrdType = getStyleValue(itemattrvalNode.text, "gridtype");
  558. //// 2. 찾을 조건을 정의한다.
  559. if(mainGrdType == "X")
  560. {
  561. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  562. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  563. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  564. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  565. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  566. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  567. if(destNode == null)
  568. {
  569. // X축 그리드의 빈 컬럼을 추가한다.
  570. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + top_degnitemlevlcdNode.text + "']");
  571. var tmpgrdList = viewobj.instance1.selectNodes("/root/temp/recinfo/grid[degnitemlevlcd='" + top_degnitemlevlcdNode.text + "']");
  572. var len = grdList.length;
  573. var grdNode = "";
  574. var subRecitemNodeList = "";
  575. var sublength = 0;
  576. var subNode = "";
  577. var tmpNode = "";
  578. for(var x = 0; x < len; x++)
  579. {
  580. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  581. subRecitemNodeList = grdNode.selectNodes("recitem");
  582. sublength = subRecitemNodeList.length;
  583. // recitem의 마지막 컬럼을 복사.
  584. subNode = subRecitemNodeList.item(sublength-1);
  585. tmpNode = subNode.cloneNode(true);
  586. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  587. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  588. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  589. else
  590. tmpNode.selectSingleNode("reccnts").text = "";
  591. tmpNode.selectSingleNode("rectermcd").text = "";
  592. tmpNode.selectSingleNode("rectermnm").text = "";
  593. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  594. grdNode.appendChild(tmpNode);
  595. }
  596. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  597. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  598. var grd = viewobj.document.controls("GRD_" + top_degnitemnoNode.text);
  599. if(grd == null)
  600. continue;
  601. var cols = grd.cols;
  602. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  603. grd.rebuild();
  604. model.refresh();
  605. }
  606. else
  607. {
  608. // 복사할 대상 노드를 찾은 경우
  609. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  610. destNode.parentNode.replaceChild(srcCopyNode, destNode);
  611. }
  612. continue;
  613. }
  614. /*
  615. else if(mainGrdType == "Y")
  616. {
  617. // 이전 Colno 보다 colnoNode가 큰 경우
  618. if(prev_degnitemlevlcd == "")
  619. {
  620. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  621. prev_degnitemno = degnitemnoNode.text;
  622. }
  623. else
  624. {
  625. if(prev_degnitemno != degnitemnoNode.text && prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) < parseInt(colnoNode.text)))
  626. {
  627. prevColno =colnoNode.text;
  628. }
  629. // 이전 Colno 와 colnoNode가 같은 경우
  630. else if(prev_degnitemno != degnitemnoNode.text && prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) >= parseInt(colnoNode.text)))
  631. {
  632. initRowno++;
  633. }
  634. else // 이전 Colno 보다 colnoNode가 작은 경우 다음 row로 넘어간다.
  635. {
  636. initRowno++;
  637. prevColno =colnoNode.text;
  638. }
  639. }
  640. //condition = condition + " and rowno = '" + initRowno + "' and colno = '" + colnoNode.text + "'";
  641. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  642. }
  643. */
  644. else // Y축, G축, T축
  645. {
  646. // G축, T축 그리드
  647. // 행추가/삭제, 열추가/삭제가 없으므로 DB에 저장된 rowno, colno 그대로 맵핑한다.
  648. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  649. }
  650. ///////////////////////////////////////////////////////////////////
  651. //// 3. root/main/recinfo 에서 Grid를 찾는다.
  652. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + rootCond + "]");
  653. var tmpdestNode = null;
  654. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  655. {
  656. var subgrdNode = tmpDestNodeList.item(idx);
  657. tmpdestNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  658. if(tmpdestNode != null)
  659. {
  660. break;
  661. }
  662. }
  663. //// 4. root/main/recinfo 노드에 해당 GRD기 없으면 temp/recinfo 에서 찾은 grid 노드를 main으로 복사한다.
  664. // rowno 를 initRowno로 수정한 후 복사한다.
  665. if(tmpdestNode == null)
  666. {
  667. var mainParentNode = tempParentNode.cloneNode(true);
  668. var recitemList = mainParentNode.selectNodes("recitem");
  669. for(var tmpidx = 0; tmpidx < recitemList.length; tmpidx++)
  670. {
  671. var tmpSubRecNode = recitemList.item(tmpidx);
  672. tmpSubRecNode.selectSingleNode("rowno").text = rownoNode.text;
  673. }
  674. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  675. if(recinfoNode == null)
  676. {
  677. viewobj.document.models(0).makeNode(pageInfo.recRef);
  678. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  679. }
  680. recinfoNode.appendChild(mainParentNode);
  681. }
  682. }
  683. else
  684. {
  685. // DGN, OPN, CCN
  686. mainGrdType = fst_orgdegnitemkindNode.text;
  687. //// 2. 찾을 조건을 정의한다.
  688. // 이전 Colno 보다 colnoNode가 큰 경우
  689. if(prev_degnitemlevlcd == "")
  690. {
  691. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  692. }
  693. else
  694. {
  695. // rowno는 같고 이전 Colno 보다 현재 colnoNode가 큰 경우
  696. if(prev_degnitemlevlcd != degnitemlevlcdNode.text && (parseInt(prevColno) < parseInt(colnoNode.text)))
  697. {
  698. prevColno =colnoNode.text;
  699. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  700. }
  701. // 이전 Colno 와 colnoNode가 같은 경우 rowno를 증가시킴
  702. else if(prev_degnitemlevlcd == degnitemlevlcdNode.text && (parseInt(prevColno) == parseInt(colnoNode.text)))
  703. {
  704. initRowno++;
  705. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  706. }
  707. else // 이전 Colno 보다 colnoNode가 작은 경우 다음 row로 넘어간다.
  708. {
  709. initRowno++;
  710. prevColno =colnoNode.text;
  711. prev_degnitemlevlcd = degnitemlevlcdNode.text;
  712. }
  713. }
  714. condition = condition + " and rowno = '" + initRowno + "' and colno = '" + colnoNode.text + "'";
  715. //// 3. root/main/recinfo 항목을 찾는다.
  716. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + rootCond + "]");
  717. var tmpdestNode = null;
  718. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  719. {
  720. var subgrdNode = tmpDestNodeList.item(idx);
  721. tmpdestNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  722. if(tmpdestNode != null)
  723. {
  724. break;
  725. }
  726. }
  727. //// 4. root/main/recinfo 노드에 해당 GRD가 없으면 temp/recinfo 에서 찾은 grid 노드를 main으로 복사한다.
  728. //// rowno 를 initRowno로 수정한 후 복사한다.
  729. if(tmpdestNode == null)
  730. {
  731. var mainParentNode = tempParentNode.cloneNode(true);
  732. var recitemList = mainParentNode.selectNodes("recitem");
  733. for(var tmpidx = 0; tmpidx < recitemList.length; tmpidx++)
  734. {
  735. var tmpSubRecNode = recitemList.item(tmpidx);
  736. tmpSubRecNode.selectSingleNode("rowno").text = initRowno;
  737. }
  738. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  739. if(recinfoNode == null)
  740. {
  741. viewobj.document.models(0).makeNode(pageInfo.recRef);
  742. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  743. }
  744. recinfoNode.appendChild(mainParentNode);
  745. }
  746. srcCopyNode.selectSingleNode("rowno").text = initRowno;
  747. }
  748. }
  749. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  750. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  751. //// 5. main/recinfo 노드에서 해당 노드를 찾지 못하면 다시한번 temp 에서 찾아 main으로 복사한다.
  752. if(destNode == null)
  753. {
  754. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  755. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  756. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  757. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  758. if(grdNode != null)
  759. {
  760. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  761. var grdCloneNode = grdNode.cloneNode(true);
  762. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  763. for(var idx = 0; idx < recitemNodeList.length; idx++)
  764. {
  765. // recitem
  766. var recitemNode = recitemNodeList.item(idx);
  767. recitemNode.selectSingleNode("rowno").text = initRowno; //rownoNode.text;
  768. }
  769. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  770. // 5. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  771. if(orgdegnitemkindNode != null)
  772. {
  773. if(orgdegnitemkindNode.text == "DGN" // 진단명
  774. || orgdegnitemkindNode.text == "OPN" // 수술
  775. || orgdegnitemkindNode.text == "CCN") // 주호소
  776. {
  777. recinfoNode.appendChild(grdCloneNode);
  778. }
  779. }
  780. else
  781. {
  782. // 현재 grdNode는 root/temp/recinfo의 그리드노드이므로, root/main/recinfo의 그리드노드를 찾는다.
  783. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  784. // rowno 순서를 맞추기 위해 srcNode의 rowno 이전의 GRD를 찾는다.
  785. for(var idx = 0; idx < grdNodeList.length; idx++)
  786. {
  787. var subgrdNode = grdNodeList.item(idx);
  788. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  789. {
  790. grdNode = subgrdNode;
  791. break;
  792. }
  793. }
  794. recinfoNode.insertAfter(grdCloneNode, grdNode);
  795. }
  796. grdNode = grdCloneNode;
  797. }
  798. //2010.06.08 김달현 수정. grdNode null 처리
  799. if(grdNode == null){
  800. continue;
  801. }
  802. //교체할 대상 gsu를 구한다.
  803. //var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  804. var gsucond = "degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and colno = '" + colnoNode.text + "'";
  805. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  806. if(destNode == null)
  807. {
  808. addGridCol(supdegnitemnoNode.text, viewobj);
  809. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  810. if(destNode == null)
  811. continue;
  812. }
  813. // 기록된 grid의 recitem(srcNode)를 main/recinfo/grid의 recitem(destNode)로 교환한다.
  814. //replaceChild(node newChild, node oldChild)
  815. srcCopyNode.selectSingleNode("rowno").text = initRowno; // 저장된 rowno는 순서가 뒤바뀌어 있으므로 initRowno를 대입한다.
  816. grdNode.replaceChild(srcCopyNode, destNode);
  817. continue;
  818. }
  819. destNode.parentNode.replaceChild(srcCopyNode, destNode);
  820. }
  821. else if(degnitemkindNode.text == "CHK")
  822. {
  823. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  824. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  825. if(destNode == null)
  826. continue;
  827. /*
  828. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  829. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  830. var rectermcd = "";
  831. for(var idx = 0; idx < srcNodeList.length; idx++)
  832. {
  833. var node = srcNodeList.item(idx);
  834. if(idx == 0)
  835. rectermcd += node.selectSingleNode("rectermcd").text;
  836. else
  837. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  838. }
  839. destNode.selectSingleNode("rectermcd").text = rectermcd;
  840. */
  841. // CHK 아이템 정렬 문제 수정 setsrchdata, getCheckSaveData
  842. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  843. /* 2010.01.27 안치원 - 수정모드시 degnitemno가 같은 item에 값이 설정되는 오류수정
  844. * 아래 srcPath + "[degnitemno = '" + srcdegnitemno + "']" 의 값이
  845. * "/root/hidden/recinfo/recitem[fstlevlitemcd='0000098001' and formcd = '0900004557'][degnitemno = '11']"
  846. * 으로 나옴으로 해서, 앞의 조건은 무시되고 degnitemno = '11'인 값을 가져와 설정하는 문제가 발생했음.
  847. * 그래서 path의 값이
  848. * "/root/hidden/recinfo/recitem[fstlevlitemcd='0000098001' and formcd = '0900004557' and degnitemno = '11']"
  849. * 로 나오도록 수정함.
  850. */
  851. //srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  852. var l_srcPath = srcPath + "[degnitemno = '" + srcdegnitemno + "']";
  853. l_srcPath = l_srcPath.replace("][", " and ");
  854. srcNodeList = findNodeset(model, l_srcPath);
  855. var rectermcd = "";
  856. var rectermnm = "";
  857. var reccnts = "";
  858. for(var idx = 0; idx < srcNodeList.length; idx++)
  859. {
  860. var node = srcNodeList.item(idx);
  861. reccnts = node.selectSingleNode("reccnts").text;
  862. var tmpRectermnm = node.selectSingleNode("rectermnm").text;
  863. if(tmpRectermnm == "")
  864. {
  865. tmpRectermnm = model.getValue(pageInfo.vallistRef + "[valcd='" + node.selectSingleNode("rectermcd").text + "']/valitemnm");
  866. }
  867. if(idx == 0)
  868. {
  869. rectermcd += node.selectSingleNode("rectermcd").text;
  870. rectermnm += tmpRectermnm; //node.selectSingleNode("rectermnm").text;
  871. }
  872. else
  873. {
  874. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  875. rectermnm += "▦" + tmpRectermnm; //node.selectSingleNode("rectermnm").text;
  876. }
  877. }
  878. destNode.selectSingleNode("rectermcd").text = rectermcd;
  879. destNode.selectSingleNode("rectermnm").text = rectermnm;
  880. destNode.selectSingleNode("reccnts").text = reccnts;
  881. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text; //2010.04.29, 주희경, 기록 수정 시 수식 계산을 위해 기록시 저장한 rowno셋팅
  882. }
  883. else if(degnitemkindNode.text == "MSL")
  884. {
  885. condition = condition + " and degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  886. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  887. if(destNode == null)
  888. continue;
  889. //2010-03-16 오전 9:18:31 강지훈 : MSL 합계가 colno = 0 에 setting된다.
  890. if(prev_MSLdegnitemno != degnitemnoNode.text){
  891. //debugger;
  892. //colno 가 0인 targetNode를 찾는다.
  893. var zeroNodeSrchCond = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text ;
  894. zeroNodeSrchCond += "' and degnitemno = '" + degnitemnoNode.text + "' and colno = '0'";
  895. var prev_recMSLSumNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + zeroNodeSrchCond + "]");
  896. //targetNode가 존재한다면 기록된 동일degnitemno 값들을 sum하여 targetNode의 0번째 colno에 setting
  897. if(prev_recMSLSumNode != null){
  898. var recMSLSrchCond = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and degnitemno = "+ degnitemnoNode.text;
  899. var recMSLSum = model.instances(0).getXPathString("sum("+ pageInfo.recRef + "/recitem[" + recMSLSrchCond +"]/rowno)") ;
  900. prev_recMSLSumNode.selectSingleNode("rowno").text = recMSLSum;
  901. }
  902. }
  903. //pointer 복사에서 값 복사로 변경
  904. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  905. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  906. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  907. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  908. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  909. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  910. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  911. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  912. prev_MSLdegnitemno = degnitemnoNode.text;
  913. }
  914. else
  915. {
  916. //20100624-kys-연령감정서의 경우 로딩시 디폴트값으로 degnitemlevlcd의 값이 같은 STX가 존재하여 저정후 값셋팅이 되지 않음.
  917. //이러한 경우 condition에 degnitemno를 추가함.
  918. if(degnitemkindNode.text == "STX"){
  919. condition = condition + " and degnitemno = '" + degnitemnoNode.text + "'";
  920. }
  921. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  922. if(destNode == null)
  923. continue;
  924. //pointer 복사에서 값 복사로 변경
  925. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  926. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  927. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  928. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  929. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  930. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  931. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  932. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  933. //이미지 OCX처리
  934. if(degnitemkindNode.text == "IMG")
  935. {
  936. var degnitemno = degnitemnoNode.text;
  937. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  938. if(imgedit == "Y")
  939. {
  940. var ctrlid = "IMG_" + degnitemno;
  941. eval(ctrlid).SetShapeString(reccntsNode.text);
  942. }
  943. }
  944. }
  945. }
  946. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  947. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  948. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  949. model.addLog("[DEBUG] setSrchData refresh");
  950. //viewobj.model.refresh();
  951. model.addLog("[DEBUG] setSrchData dispatch");
  952. viewobj.body.dispatch("onsubformdataloadcomp");
  953. }
  954. function setSrchData_Old3(srcPath, viewobj)
  955. {
  956. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  957. var pageInfo = new PAGEINFO(viewobj);
  958. var nodeList = model.instances(0).selectNodes(srcPath);
  959. var dgndegnitemno = "";
  960. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");
  961. for(var i = 0; i < nodeList.length; i++)
  962. {
  963. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  964. var formcdNode = srcNode.selectSingleNode("formcd");
  965. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  966. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  967. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  968. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  969. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  970. var degnitemlevlcdNode = srcNode.selectSingleNode("degnitemlevlcd");
  971. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  972. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  973. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  974. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  975. var reccntsNode = srcNode.selectSingleNode("reccnts");
  976. var rownoNode = srcNode.selectSingleNode("rowno");
  977. var colnoNode = srcNode.selectSingleNode("colno");
  978. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  979. var itemattrvalNode = null;
  980. if(supdegnitemnoNode != null)
  981. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  982. var grdtype = "";
  983. if(itemattrvalNode != null)
  984. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  985. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  986. if(formcdNode.text != destformcdNode.text)
  987. continue;
  988. var condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "'";
  989. var destNode = null;
  990. if(degnitemkindNode.text == "GSU")
  991. {
  992. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  993. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  994. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  995. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  996. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  997. {
  998. var subgrdNode = tmpDestNodeList.item(idx);
  999. destNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  1000. if(destNode != null)
  1001. {
  1002. // 현재 destNode가 빈 row 인지 데이터가 이미 매핑된 row인지 확인한다.
  1003. var tmpCondition = "formcd = '" + formcdNode.text + "' and rowno = '" + rownoNode.text + "' and colno = '-1'";
  1004. var tmpHeaderNode = subgrdNode.selectSingleNode("recitem[" + tmpCondition + "]/orgdegnitemkind");
  1005. if(tmpHeaderNode != null)
  1006. {
  1007. if(tmpHeaderNode.text == "DGN")
  1008. {
  1009. var tmpdegnitemlevlcd = subgrdNode.selectSingleNode("recitem[colno = '-1']/degnitemlevlcd");
  1010. // 진단 내역을 확인
  1011. tmpCondition = "degnitemlevlcd = '" + tmpdegnitemlevlcd.text + "'";
  1012. tmpNodelist = findNodeset(viewobj.model, pageInfo.RecinfoGridRef + "[" + tmpCondition + "]");
  1013. for(var tmpidx = 0; tmpidx < tmpNodelist.length; tmpidx++)
  1014. {
  1015. var tmpNode = tmpNodelist.item(tmpidx);
  1016. var DiagNode = tmpNode.selectSingleNode("recitem[colno='2']");
  1017. if(DiagNode.selectSingleNode("rectermcd").text != "" && DiagNode.selectSingleNode("rectermnm").text != "")
  1018. {
  1019. //rownoNode.text = parseInt(rownoNode.text )+1;
  1020. rownoNode.text = parseInt(DiagNode.selectSingleNode("rowno").text )+1;
  1021. condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and rowno = '" + rownoNode.text + "'";
  1022. }
  1023. else
  1024. {
  1025. var tmpRownoNode = DiagNode.selectSingleNode("rowno");
  1026. condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and rowno = '" + tmpRownoNode.text + "'";
  1027. break;
  1028. }
  1029. }
  1030. }
  1031. else
  1032. {
  1033. break;
  1034. }
  1035. }
  1036. else
  1037. {
  1038. break;
  1039. }
  1040. }
  1041. }
  1042. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  1043. // 저장된 인스턴스를 매핑하기 위해 빈 row를 추가한다.
  1044. if(destNode == null)
  1045. {
  1046. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1047. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  1048. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  1049. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1050. // 3. 그리드 타입별로 구분한다.
  1051. //var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  1052. var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemkind='GRD' and degnitemlevlcd='" + supdegnitemlevlcd + "']/itemattrval");
  1053. if(grdtypeNode != null)
  1054. grdtype = getStyleValue(grdtypeNode.text, "gridtype");
  1055. if(grdtype == "X")
  1056. {
  1057. // X축 그리드의 빈 컬럼을 추가한다.
  1058. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1059. var len = grdList.length;
  1060. var grdNode = "";
  1061. var subRecitemNodeList = "";
  1062. var sublength = 0;
  1063. var subNode = "";
  1064. var tmpNode = "";
  1065. for(var x = 0; x < len; x++)
  1066. {
  1067. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  1068. subRecitemNodeList = grdNode.selectNodes("recitem");
  1069. sublength = subRecitemNodeList.length;
  1070. //var subRecitemNodeList.item(i).selectSingleNode("degnitemnm");
  1071. // recitem의 마지막 컬럼을 복사.
  1072. subNode = subRecitemNodeList.item(sublength-1);
  1073. //var subNode = grdNode.selectSingleNode("recitem");
  1074. tmpNode = subNode.cloneNode(true);
  1075. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  1076. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  1077. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  1078. else
  1079. tmpNode.selectSingleNode("reccnts").text = "";
  1080. tmpNode.selectSingleNode("rectermcd").text = "";
  1081. tmpNode.selectSingleNode("rectermnm").text = "";
  1082. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  1083. grdNode.appendChild(tmpNode);
  1084. }
  1085. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  1086. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  1087. var grd = viewobj.document.controls("GRD_" + supdegnitemnoNode.text);
  1088. var cols = grd.cols;
  1089. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  1090. //grd.colAttribute( cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1091. grd.rebuild();
  1092. model.refresh();
  1093. continue;
  1094. }
  1095. else // GridType이 X축이 아닌 경우
  1096. {
  1097. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  1098. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1099. if(grdNode != null)
  1100. {
  1101. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  1102. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1103. // 4. temp에서 찾은 grid 노드를 복사할 root/main/recinfo 노드에서 구하기
  1104. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  1105. if(recinfoNode == null)
  1106. {
  1107. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1108. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1109. }
  1110. var grdCloneNode = grdNode.cloneNode(true);
  1111. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  1112. for(var idx = 0; idx < recitemNodeList.length; idx++)
  1113. {
  1114. // recitem
  1115. var recitemNode = recitemNodeList.item(idx);
  1116. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1117. }
  1118. if(rownoNode.text >= 1)
  1119. {
  1120. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  1121. for(var idx = 0; idx < grdNodeList.length; idx++)
  1122. {
  1123. var subgrdNode = grdNodeList.item(idx);
  1124. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  1125. {
  1126. grdNode = subgrdNode;
  1127. break;
  1128. }
  1129. }
  1130. }
  1131. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1132. // 5. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  1133. if(orgdegnitemkindNode != null)
  1134. {
  1135. if(orgdegnitemkindNode.text == "DGN" // 진단명
  1136. || orgdegnitemkindNode.text == "OPN" // 수술
  1137. || orgdegnitemkindNode.text == "CCN") // 주호소
  1138. {
  1139. recinfoNode.appendChild(grdCloneNode);
  1140. }
  1141. }
  1142. else
  1143. {
  1144. recinfoNode.insertAfter(grdCloneNode, grdNode);
  1145. }
  1146. grdNode = grdCloneNode;
  1147. }
  1148. if(grdNode == null)
  1149. {
  1150. //grdNode = model.instances(0).selectSingleNode(srcPath + "[degnitemno='" + supdegnitemno + "' and rowno='" + rownoNode.text + "']");
  1151. //hidden에 있는 skeleton을 복사한다
  1152. //grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1153. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1154. if(grdNode == null)
  1155. continue;
  1156. var CopygrdNode = grdNode.cloneNode(true);
  1157. //로직 분리 (TF버그로 인해 부모에 append하기전에 값을 변경한다.)
  1158. // GRD 인스턴스의 row 갱신
  1159. var subRecitemList = CopygrdNode.selectNodes("recitem");
  1160. for(var idx = 0; idx < subRecitemList.length; idx++)
  1161. {
  1162. var recitemNode = subRecitemList.item(idx);
  1163. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1164. }
  1165. //교체할 대상 gsu를 구한다.
  1166. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1167. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1168. if(destNode == null)
  1169. {
  1170. if(grdtype != "X")
  1171. continue;
  1172. addGridCol(supdegnitemnoNode.text);
  1173. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1174. if(destNode == null)
  1175. continue;
  1176. }
  1177. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1178. CopygrdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1179. var recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1180. if(recNode == null)
  1181. {
  1182. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1183. recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1184. }
  1185. recNode.appendChild(CopygrdNode);
  1186. continue;
  1187. }
  1188. }
  1189. //교체할 대상 gsu를 구한다.
  1190. //var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1191. var gsucond = "degnitemlevlcd = '" + degnitemlevlcdNode.text + "' and colno = '" + colnoNode.text + "'";
  1192. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1193. if(destNode == null)
  1194. {
  1195. addGridCol(supdegnitemnoNode.text, viewobj);
  1196. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1197. if(destNode == null)
  1198. continue;
  1199. }
  1200. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1201. grdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1202. continue;
  1203. }
  1204. // 복사할 대상 노드를 찾은 경우 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  1205. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1206. }
  1207. else if(degnitemkindNode.text == "CHK")
  1208. {
  1209. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1210. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1211. if(destNode == null)
  1212. continue;
  1213. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  1214. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  1215. var rectermcd = "";
  1216. for(var idx = 0; idx < srcNodeList.length; idx++)
  1217. {
  1218. var node = srcNodeList.item(idx);
  1219. if(idx == 0)
  1220. rectermcd += node.selectSingleNode("rectermcd").text;
  1221. else
  1222. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  1223. }
  1224. destNode.selectSingleNode("rectermcd").text = rectermcd;
  1225. }
  1226. else if(degnitemkindNode.text == "MSL")
  1227. {
  1228. condition = condition + " and degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1229. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1230. if(destNode == null)
  1231. continue;
  1232. //pointer 복사에서 값 복사로 변경
  1233. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1234. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  1235. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  1236. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  1237. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  1238. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  1239. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  1240. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  1241. }
  1242. else
  1243. {
  1244. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  1245. if(destNode == null)
  1246. continue;
  1247. //pointer 복사에서 값 복사로 변경
  1248. //destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1249. destNode.selectSingleNode("rectermcd").text = srcNode.selectSingleNode("rectermcd").text;
  1250. destNode.selectSingleNode("rectermnm").text = srcNode.selectSingleNode("rectermnm").text;
  1251. destNode.selectSingleNode("reccnts").text = srcNode.selectSingleNode("reccnts").text;
  1252. //destNode.selectSingleNode("srcimge").text = srcNode.selectSingleNode("srcimge").text;
  1253. destNode.selectSingleNode("recimge").text = srcNode.selectSingleNode("recimge").text;
  1254. destNode.selectSingleNode("rowno").text = srcNode.selectSingleNode("rowno").text;
  1255. destNode.selectSingleNode("colno").text = srcNode.selectSingleNode("colno").text;
  1256. //이미지 OCX처리
  1257. if(degnitemkindNode.text == "IMG")
  1258. {
  1259. var degnitemno = degnitemnoNode.text;
  1260. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  1261. if(imgedit == "Y")
  1262. {
  1263. var ctrlid = "IMG_" + degnitemno;
  1264. eval(ctrlid).SetShapeString(reccntsNode.text);
  1265. }
  1266. }
  1267. }
  1268. }
  1269. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  1270. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  1271. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  1272. viewobj.model.refresh();
  1273. viewobj.body.dispatch("onsubformdataloadcomp");
  1274. }
  1275. /**
  1276. * @desc : 조회해온 기록 값을 셋팅
  1277. * @id :
  1278. * @event :
  1279. * @return :
  1280. * @authur : 이상현
  1281. */
  1282. function setSrchData_Old1(srcPath, viewobj)
  1283. {
  1284. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  1285. var pageInfo = new PAGEINFO(viewobj);
  1286. var nodeList = model.instances(0).selectNodes(srcPath);
  1287. var dgndegnitemno = "";
  1288. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");
  1289. for(var i = 0; i < nodeList.length; i++)
  1290. {
  1291. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  1292. var formcdNode = srcNode.selectSingleNode("formcd");
  1293. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  1294. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  1295. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  1296. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  1297. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  1298. var degnitemlevlcdNode = srcNode.selectSingleNode("degnitemlevlcd");
  1299. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  1300. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  1301. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  1302. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  1303. var reccntsNode = srcNode.selectSingleNode("reccnts");
  1304. var rownoNode = srcNode.selectSingleNode("rowno");
  1305. var colnoNode = srcNode.selectSingleNode("colno");
  1306. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  1307. var itemattrvalNode = null;
  1308. if(supdegnitemnoNode != null)
  1309. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  1310. var grdtype = "";
  1311. if(itemattrvalNode != null)
  1312. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  1313. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  1314. if(formcdNode.text != destformcdNode.text)
  1315. continue;
  1316. /*if(degnitemkindNode.text == "GRD")
  1317. {
  1318. var degnitemkind = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemkind");
  1319. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  1320. dgndegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemno");
  1321. continue;
  1322. }*/
  1323. //var condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + degnitemnoNode.text + "'";
  1324. var condition = "formcd = '" + formcdNode.text + "' and degnitemlevlcd = '" + degnitemlevlcdNode.text + "'";
  1325. var destNode = null;
  1326. if(degnitemkindNode.text == "GSU")
  1327. {
  1328. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1329. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1330. // 1. root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  1331. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  1332. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  1333. {
  1334. var subgrdNode = tmpDestNodeList.item(idx);
  1335. destNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  1336. if(destNode != null)
  1337. break;
  1338. }
  1339. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  1340. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  1341. if(destNode == null)
  1342. {
  1343. //var supdegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  1344. /*if(supdegnitemno == "")
  1345. //DGN, OCN, CCN의 경우 대표 아이템번호를 가지고 부모를 찾는다.(snoweye : 2008-07-15)
  1346. //supdegnitemno = dgndegnitemno;
  1347. supdegnitemno = degnitemnoNode.text;
  1348. else
  1349. condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + supdegnitemno + "' and rowno = '" + rownoNode.text +"' and colno = '" + colnoNode.text + "'";*/
  1350. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1351. // 2. /root/main/recinfo 에서 못찾으면 /root/temp/recinfo 에서 찾아온다.
  1352. var supdegnitemlevlcd = degnitemlevlcdNode.text.substr(0, degnitemlevlcdNode.text.lastIndexOf("."));
  1353. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  1354. //grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1355. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1356. if(grdNode != null)
  1357. {
  1358. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1359. // 3. temp에서 찾은 grid 노드를 복사할 root/main/recinfo 노드 구하기
  1360. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  1361. if(recinfoNode == null)
  1362. {
  1363. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1364. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1365. }
  1366. var grdCloneNode = grdNode.cloneNode(true);
  1367. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  1368. for(var idx = 0; idx < recitemNodeList.length; idx++)
  1369. {
  1370. var recitemNode = recitemNodeList.item(idx);
  1371. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1372. }
  1373. if(rownoNode.text >= 1)
  1374. {
  1375. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']");
  1376. for(var idx = 0; idx < grdNodeList.length; idx++)
  1377. {
  1378. var subgrdNode = grdNodeList.item(idx);
  1379. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  1380. {
  1381. grdNode = subgrdNode;
  1382. break;
  1383. }
  1384. }
  1385. }
  1386. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1387. // 4. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술명/주호소 인지를 판단한다.
  1388. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  1389. if(orgdegnitemkindNode != null)
  1390. {
  1391. if(orgdegnitemkindNode.text == "DGN" // 진단명
  1392. || orgdegnitemkindNode.text == "OPN" // 수술
  1393. || orgdegnitemkindNode.text == "CCN") // 주호소
  1394. {
  1395. recinfoNode.appendChild(grdCloneNode);
  1396. }
  1397. }
  1398. else
  1399. {
  1400. recinfoNode.insertAfter(grdCloneNode, grdNode);
  1401. }
  1402. grdNode = grdCloneNode;
  1403. }
  1404. //var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  1405. var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemlevlcd = '" + supdegnitemlevlcd + "']/itemattrval");
  1406. if(grdtypeNode != null)
  1407. grdtype = getStyleValue(grdtypeNode.text, "gridtype");
  1408. if(grdtype == "X")
  1409. {
  1410. // X축 그리드의 빈 컬럼을 추가한다.
  1411. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1412. var tmpgrdList = viewobj.instance1.selectNodes("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1413. var len = grdList.length;
  1414. var grdNode = "";
  1415. var subRecitemNodeList = "";
  1416. var sublength = 0;
  1417. var subNode = "";
  1418. var tmpNode = "";
  1419. for(var x = 0; x < len; x++)
  1420. {
  1421. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  1422. subRecitemNodeList = grdNode.selectNodes("recitem");
  1423. sublength = subRecitemNodeList.length;
  1424. //var subRecitemNodeList.item(i).selectSingleNode("degnitemnm");
  1425. // recitem의 마지막 컬럼을 복사.
  1426. subNode = subRecitemNodeList.item(sublength-1);
  1427. //var subNode = grdNode.selectSingleNode("recitem");
  1428. tmpNode = subNode.cloneNode(true);
  1429. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  1430. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  1431. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  1432. else
  1433. tmpNode.selectSingleNode("reccnts").text = "";
  1434. tmpNode.selectSingleNode("rectermcd").text = "";
  1435. tmpNode.selectSingleNode("rectermnm").text = "";
  1436. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  1437. // supdegnitemno를 supdegnitemlevlcd 로 변경됨에 따라 삭제
  1438. /*
  1439. if(tmpNode.selectSingleNode("supdegnitemno") == null)
  1440. {
  1441. var supdegnitemnoNode = instance1.createElement("supdegnitemno");
  1442. tmpNode.appendChild(supdegnitemnoNode);
  1443. }
  1444. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  1445. */
  1446. grdNode.appendChild(tmpNode);
  1447. }
  1448. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  1449. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  1450. var grd = viewobj.document.controls("GRD_" + supdegnitemlevlcd);
  1451. var cols = grd.cols;
  1452. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  1453. //grd.colAttribute( cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1454. grd.rebuild();
  1455. model.refresh();
  1456. //grd.addColumn("type:input; ref:test_col;");
  1457. //grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1458. continue;
  1459. }
  1460. if(grdNode == null)
  1461. {
  1462. //grdNode = model.instances(0).selectSingleNode(srcPath + "[degnitemno='" + supdegnitemno + "' and rowno='" + rownoNode.text + "']");
  1463. //hidden에 있는 skeleton을 복사한다
  1464. //grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1465. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemlevlcd='" + supdegnitemlevlcd + "']");
  1466. var CopygrdNode = grdNode.cloneNode(true);
  1467. //로직 분리 (TF버그로 인해 부모에 append하기전에 값을 변경한다.)
  1468. // GRD 인스턴스의 row 갱신
  1469. var subRecitemList = CopygrdNode.selectNodes("recitem");
  1470. for(var idx = 0; idx < subRecitemList.length; idx++)
  1471. {
  1472. var recitemNode = subRecitemList.item(idx);
  1473. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1474. }
  1475. //교체할 대상 gsu를 구한다.
  1476. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1477. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1478. if(destNode == null)
  1479. {
  1480. if(grdtype != "X")
  1481. continue;
  1482. addGridCol(supdegnitemnoNode.text);
  1483. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1484. if(destNode == null)
  1485. continue;
  1486. }
  1487. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1488. CopygrdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1489. var recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1490. if(recNode == null)
  1491. {
  1492. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1493. recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1494. }
  1495. recNode.appendChild(CopygrdNode);
  1496. continue;
  1497. }
  1498. //grd rowno를 갱신한다.
  1499. //grdNode.selectSingleNode("recitem/rowno").text = rownoNode.text;
  1500. //교체할 대상 gsu를 구한다.
  1501. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1502. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1503. if(destNode == null)
  1504. {
  1505. if(grdtype != "X")
  1506. continue;
  1507. addGridCol(supdegnitemnoNode.text, viewobj);
  1508. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1509. if(destNode == null)
  1510. continue;
  1511. }
  1512. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1513. grdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1514. continue;
  1515. }
  1516. // 복사할 대상 노드를 찾은 경우
  1517. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  1518. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1519. }
  1520. else if(degnitemkindNode.text == "CHK")
  1521. {
  1522. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1523. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1524. if(destNode == null)
  1525. continue;
  1526. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  1527. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  1528. var rectermcd = "";
  1529. for(var idx = 0; idx < srcNodeList.length; idx++)
  1530. {
  1531. var node = srcNodeList.item(idx);
  1532. if(idx == 0)
  1533. rectermcd += node.selectSingleNode("rectermcd").text;
  1534. else
  1535. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  1536. }
  1537. destNode.selectSingleNode("rectermcd").text = rectermcd;
  1538. }
  1539. else if(degnitemkindNode.text == "MSL")
  1540. {
  1541. condition = condition + " and colno = '" + colnoNode.text + "'";
  1542. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1543. if(destNode == null)
  1544. continue;
  1545. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1546. }
  1547. else
  1548. {
  1549. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  1550. if(destNode == null)
  1551. continue;
  1552. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1553. //이미지 OCX처리
  1554. if(degnitemkindNode.text == "IMG")
  1555. {
  1556. var degnitemno = degnitemnoNode.text;
  1557. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  1558. if(imgedit == "Y")
  1559. {
  1560. var ctrlid = "IMG_" + degnitemno;
  1561. eval(ctrlid).SetShapeString(reccntsNode.text);
  1562. }
  1563. }
  1564. }
  1565. }
  1566. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  1567. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  1568. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  1569. viewobj.model.refresh();
  1570. }
  1571. /**
  1572. * @desc : 조회해온 기록 값을 셋팅
  1573. * @id :
  1574. * @event :
  1575. * @return :
  1576. * @authur : 이상현
  1577. */
  1578. function setSrchData_Old2(srcPath, viewobj)
  1579. {
  1580. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  1581. var pageInfo = new PAGEINFO(viewobj);
  1582. var nodeList = model.instances(0).selectNodes(srcPath);
  1583. var dgndegnitemno = "";
  1584. viewobj.model.removeNodeset(pageInfo.recItemRef + "[orgdegnitemkind = 'DGN' or orgdegnitemkind = 'OPN' or orgdegnitemkind = 'CCN']");
  1585. for(var i = 0; i < nodeList.length; i++)
  1586. {
  1587. var srcNode = nodeList.item(i); // 기록노드 recitem 하나씩 가져옴.
  1588. var formcdNode = srcNode.selectSingleNode("formcd");
  1589. var formdegnseqNode = srcNode.selectSingleNode("formdegnseq");
  1590. var degnitemcdNode = srcNode.selectSingleNode("degnitemcd");
  1591. var degnitemnmNode = srcNode.selectSingleNode("degnitemnm");
  1592. var degnitemnoNode = srcNode.selectSingleNode("degnitemno");
  1593. var degnitemkindNode = srcNode.selectSingleNode("degnitemkind");
  1594. var rectermcdNode = srcNode.selectSingleNode("rectermcd");
  1595. var rectermnmNode = srcNode.selectSingleNode("rectermnm");
  1596. var recrefcdNode = srcNode.selectSingleNode("recrefcd");
  1597. var recitemnmNode = srcNode.selectSingleNode("recitemnm");
  1598. var reccntsNode = srcNode.selectSingleNode("reccnts");
  1599. var rownoNode = srcNode.selectSingleNode("rowno");
  1600. var colnoNode = srcNode.selectSingleNode("colno");
  1601. var supdegnitemnoNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + degnitemnoNode.text + "']/supdegnitemno");
  1602. var itemattrvalNode = null;
  1603. if(supdegnitemnoNode != null)
  1604. itemattrvalNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemnoNode.text + "']/itemattrval");
  1605. var grdtype = "";
  1606. if(itemattrvalNode != null)
  1607. grdtype = getStyleValue(itemattrvalNode.text, "gridtype");
  1608. var destformcdNode = viewobj.model.instances(0).selectSingleNode(pageInfo.formmastRef + "/formcd");
  1609. if(formcdNode.text != destformcdNode.text)
  1610. continue;
  1611. if(degnitemkindNode.text == "GRD")
  1612. {
  1613. var degnitemkind = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemkind");
  1614. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  1615. dgndegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/degnitemno");
  1616. continue;
  1617. }
  1618. var condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + degnitemnoNode.text + "'";
  1619. var destNode = null;
  1620. if(degnitemkindNode.text == "GSU")
  1621. {
  1622. condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1623. // root/main/recinfo의 하위노드중에서 condition에 해당하는 grid 노드의 자식노드(recitem) 노드를 찾는다.
  1624. var tmpDestNodeList = findNodeset(viewobj.model, pageInfo.RecinfoGridRef);
  1625. for(var idx = 0; idx < tmpDestNodeList.length; idx++)
  1626. {
  1627. var subgrdNode = tmpDestNodeList.item(idx);
  1628. destNode = subgrdNode.selectSingleNode("recitem[" + condition + "]");
  1629. if(destNode != null)
  1630. break;
  1631. }
  1632. // grid 노드의 자식노드recitem중 condition에 해당하는 노드를 찾는다.
  1633. destNode = findNode(viewobj.model, pageInfo.RecinfoGridRef + "/descendant::recitem[" + condition + "]");
  1634. if(destNode == null)
  1635. {
  1636. var supdegnitemno = viewobj.model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  1637. if(supdegnitemno == "")
  1638. supdegnitemno = dgndegnitemno;
  1639. else
  1640. condition = "formcd = '" + formcdNode.text + "' and degnitemno = '" + supdegnitemno + "' and rowno = '" + rownoNode.text +"' and colno = '" + colnoNode.text + "'";
  1641. // DB에서 불러온 서식의 instances 구조에 해당 노드가 없는 경우 /root/temp/recinfo/ 에서 찾아 복사한다.
  1642. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1643. if(grdNode != null)
  1644. {
  1645. // 1. root/main/recinfo 노드 구하기
  1646. var recinfoNode = findNode(viewobj.model, pageInfo.recRef);
  1647. if(recinfoNode == null)
  1648. {
  1649. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1650. recinfoNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1651. }
  1652. var grdCloneNode = grdNode.cloneNode(true);
  1653. grdCloneNode.selectSingleNode("degnitemno").text = supdegnitemno;
  1654. var recitemNodeList = grdCloneNode.selectNodes("recitem");
  1655. for(var idx = 0; idx < recitemNodeList.length; idx++)
  1656. {
  1657. var recitemNode = recitemNodeList.item(idx);
  1658. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1659. }
  1660. if(rownoNode.text >= 1)
  1661. {
  1662. var grdNodeList = viewobj.instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + supdegnitemno + "']");
  1663. for(var idx = 0; idx < grdNodeList.length; idx++)
  1664. {
  1665. var subgrdNode = grdNodeList.item(idx);
  1666. if(subgrdNode.selectSingleNode("recitem/rowno").text == (rownoNode.text-1))
  1667. {
  1668. grdNode = subgrdNode;
  1669. break;
  1670. }
  1671. }
  1672. }
  1673. // 2. /root/temp/recinfo 에서 가져온 grid 인스턴스가 진단명/수술 인지 여부를 판단한다.
  1674. var orgdegnitemkindNode = grdNode.selectSingleNode("recitem/orgdegnitemkind");
  1675. if(orgdegnitemkindNode != null)
  1676. {
  1677. if(orgdegnitemkindNode.text == "DGN" || orgdegnitemkindNode.text == "OPN")
  1678. {
  1679. recinfoNode.appendChild(grdCloneNode);
  1680. }
  1681. }
  1682. else
  1683. {
  1684. recinfoNode.insertAfter(grdCloneNode, grdNode);
  1685. }
  1686. grdNode = grdCloneNode;
  1687. }
  1688. var grdtypeNode = viewobj.instance1.selectSingleNode(pageInfo.formdegnRef + "[degnitemno = '" + supdegnitemno + "']/itemattrval");
  1689. if(grdtypeNode != null)
  1690. grdtype = getStyleValue(grdtypeNode.text, "gridtype");
  1691. if(grdtype == "X")
  1692. {
  1693. // X축 그리드의 빈 컬럼을 추가한다.
  1694. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1695. var len = grdList.length;
  1696. var grdNode = "";
  1697. var subRecitemNodeList = "";
  1698. var sublength = 0;
  1699. var subNode = "";
  1700. var tmpNode = "";
  1701. for(var x = 0; x < len; x++)
  1702. {
  1703. grdNode = grdList.item(x); // 첫번째 grid row를 선택
  1704. subRecitemNodeList = grdNode.selectNodes("recitem");
  1705. sublength = subRecitemNodeList.length;
  1706. //var subRecitemNodeList.item(i).selectSingleNode("degnitemnm");
  1707. // recitem의 마지막 컬럼을 복사.
  1708. subNode = subRecitemNodeList.item(sublength-1);
  1709. //var subNode = grdNode.selectSingleNode("recitem");
  1710. tmpNode = subNode.cloneNode(true);
  1711. tmpNode.selectSingleNode("colno").text = colnoNode.text;
  1712. if(tmpNode.selectSingleNode("rowno").text == rownoNode.text)
  1713. tmpNode.selectSingleNode("reccnts").text = reccntsNode.text;
  1714. else
  1715. tmpNode.selectSingleNode("reccnts").text = "";
  1716. tmpNode.selectSingleNode("rectermcd").text = "";
  1717. tmpNode.selectSingleNode("rectermnm").text = "";
  1718. tmpNode.selectSingleNode("degnitemkind").text = "GSU";
  1719. if(tmpNode.selectSingleNode("supdegnitemno") == null)
  1720. {
  1721. var supdegnitemnoNode = instance1.createElement("supdegnitemno");
  1722. tmpNode.appendChild(supdegnitemnoNode);
  1723. }
  1724. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  1725. grdNode.appendChild(tmpNode);
  1726. }
  1727. // Grid 컨트롤을 생성할때에는 createchild 명령어가 제대로 작동하나,
  1728. // 이미 생성된 컨트롤에서 컬럼을 추가할때에는 createchild 명령어는 작동하지 않음.
  1729. var grd = viewobj.document.controls("GRD_" + supdegnitemno);
  1730. var cols = grd.cols;
  1731. grd.addColumn("type:input; ref:recitem[colno='" + cols + "']/reccnts");
  1732. //grd.colAttribute( cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1733. grd.rebuild();
  1734. model.refresh();
  1735. //grd.addColumn("type:input; ref:test_col;");
  1736. //grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  1737. continue;
  1738. }
  1739. if(grdNode == null)
  1740. {
  1741. //grdNode = model.instances(0).selectSingleNode(srcPath + "[degnitemno='" + supdegnitemno + "' and rowno='" + rownoNode.text + "']");
  1742. //hidden에 있는 skeleton을 복사한다
  1743. grdNode = viewobj.model.instances(0).selectSingleNode("/root/temp/recinfo/grid[degnitemno='" + supdegnitemno + "']");
  1744. var CopygrdNode = grdNode.cloneNode(true);
  1745. //로직 분리 (TF버그로 인해 부모에 append하기전에 값을 변경한다.)
  1746. // GRD 인스턴스의 row 갱신
  1747. var subRecitemList = CopygrdNode.selectNodes("recitem");
  1748. for(var idx = 0; idx < subRecitemList.length; idx++)
  1749. {
  1750. var recitemNode = subRecitemList.item(idx);
  1751. recitemNode.selectSingleNode("rowno").text = rownoNode.text;
  1752. }
  1753. //교체할 대상 gsu를 구한다.
  1754. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1755. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1756. if(destNode == null)
  1757. {
  1758. if(grdtype != "X")
  1759. continue;
  1760. addGridCol(supdegnitemnoNode.text);
  1761. destNode = CopygrdNode.selectSingleNode("recitem[" + gsucond +"]");
  1762. if(destNode == null)
  1763. continue;
  1764. }
  1765. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1766. CopygrdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1767. var recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1768. if(recNode == null)
  1769. {
  1770. viewobj.document.models(0).makeNode(pageInfo.recRef);
  1771. recNode = viewobj.document.models(0).instances(0).selectSingleNode(pageInfo.recRef);
  1772. }
  1773. recNode.appendChild(CopygrdNode);
  1774. continue;
  1775. }
  1776. //grd rowno를 갱신한다.
  1777. //grdNode.selectSingleNode("recitem/rowno").text = rownoNode.text;
  1778. //교체할 대상 gsu를 구한다.
  1779. var gsucond = "degnitemno = '" + degnitemnoNode.text + "' and colno = '" + colnoNode.text + "'";
  1780. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1781. if(destNode == null)
  1782. {
  1783. if(grdtype != "X")
  1784. continue;
  1785. addGridCol(supdegnitemnoNode.text, viewobj);
  1786. destNode = grdNode.selectSingleNode("recitem[" + gsucond +"]");
  1787. if(destNode == null)
  1788. continue;
  1789. }
  1790. // 기록된 recitem 노드를 복사한 grid의 recitem과 교체한다.
  1791. grdNode.replaceChild(srcNode.cloneNode(true), destNode);
  1792. continue;
  1793. }
  1794. // 복사할 대상 노드를 찾은 경우
  1795. // 기록된 grid의 recitem 노드셋(srcNode)를 하나씩 destNode를 찾아 교환한다.
  1796. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1797. }
  1798. else if(degnitemkindNode.text == "CHK")
  1799. {
  1800. //condition = condition + " and rowno = '" + rownoNode.text + "' and colno = '" + colnoNode.text + "'";
  1801. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1802. if(destNode == null)
  1803. continue;
  1804. var srcdegnitemno = srcNode.selectSingleNode("degnitemno").text;
  1805. srcNodeList = findNodeset(model, srcPath + "[degnitemno = '" + srcdegnitemno + "']");
  1806. var rectermcd = "";
  1807. for(var idx = 0; idx < srcNodeList.length; idx++)
  1808. {
  1809. var node = srcNodeList.item(idx);
  1810. if(idx == 0)
  1811. rectermcd += node.selectSingleNode("rectermcd").text;
  1812. else
  1813. rectermcd += " " + node.selectSingleNode("rectermcd").text;
  1814. }
  1815. destNode.selectSingleNode("rectermcd").text = rectermcd;
  1816. }
  1817. else if(degnitemkindNode.text == "MSL")
  1818. {
  1819. condition = condition + " and colno = '" + colnoNode.text + "'";
  1820. destNode = findNode(viewobj.model, pageInfo.recRef + "/descendant::recitem[" + condition + "]");
  1821. if(destNode == null)
  1822. continue;
  1823. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1824. }
  1825. else
  1826. {
  1827. destNode = findNode(viewobj.model, pageInfo.recItemRef + "[" + condition + "]");
  1828. if(destNode == null)
  1829. continue;
  1830. destNode.parentNode.replaceChild(srcNode.cloneNode(true), destNode);
  1831. //이미지 OCX처리
  1832. if(degnitemkindNode.text == "IMG")
  1833. {
  1834. var degnitemno = degnitemnoNode.text;
  1835. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '']/itemattrval"), "imgedit");
  1836. if(imgedit == "Y")
  1837. {
  1838. var ctrlid = "IMG_" + degnitemno;
  1839. eval(ctrlid).SetShapeString(reccntsNode.text);
  1840. }
  1841. }
  1842. }
  1843. }
  1844. //copyNodeset(pageInfo.recItemRef, srcPath, "replace", viewobj.model, model);
  1845. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  1846. model.addLog("setSrchData 시간: " + ((endTime-startTime)/1000) );
  1847. viewobj.model.refresh();
  1848. }
  1849. // /**
  1850. // * @desc : Data Clear
  1851. // * @id :
  1852. // * @event :
  1853. // * @return :
  1854. // * @authur : 이상현
  1855. // */
  1856. // function clearData()
  1857. // {
  1858. // sysf_trace_emr("***** clearData() EMRCommon *****");
  1859. // var pageInfo = new PAGEINFO();
  1860. // dsf_copyDsList(pageInfo.recRef, pageInfo.initrecRef, "replace", this, this);
  1861. // dsf_clearDsList(pageInfo.extnrecRef);
  1862. // dsf_clearDsList(pageInfo.recItemRef2);
  1863. // clearImgeData();
  1864. // }
  1865. // function GetImgUrl(imgecd)
  1866. // {
  1867. // return getActionURI("TRMRF01212") + getUserSessionString() + "&imgecd=" + imgecd;
  1868. // //return getActionURL("TRMRF01212") + "&imgecd=" + imgecd;
  1869. // }
  1870. // /**
  1871. // * @desc : 이미지데이터를 clear한다
  1872. // * @id :
  1873. // * @event :
  1874. // * @return :
  1875. // * @authur : 박종훈
  1876. // * @history:
  1877. // 2008-12-02 : 신규생성
  1878. // */
  1879. // function clearImgeData()
  1880. // {
  1881. // sysf_trace_emr("***** clearImgeData() EMRCommon *****");
  1882. // sysf_trace_emr("***** jw.choe 이미지 데이터를 clear 임시 return !!!! EMRCommon *****");
  1883. // return;
  1884. // var pageInfo = new PAGEINFO();
  1885. // var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  1886. //
  1887. // // 공통서식인지 과별서식인지 구분
  1888. // var FormInfoNode = instance1.selectNodes(pageInfo.formmastRef);
  1889. //
  1890. // var isFormMain = "";
  1891. //
  1892. // if(FormInfoNode.length > 0)
  1893. // {
  1894. // var formmastInfoNode = FormInfoNode.item(0);
  1895. //
  1896. // var formprogflag = formmastInfoNode.selectSingleNode("formprogflag").text;
  1897. // var formprognm = formmastInfoNode.selectSingleNode("formprognm").text;
  1898. // var formkind = formmastInfoNode.selectSingleNode("formkind").text;
  1899. //
  1900. // if(formprognm != "-" && formkind == "C" && formprogflag != "-")
  1901. // {
  1902. // isFormMain = true;
  1903. // }
  1904. // else
  1905. // {
  1906. // isFormMain = false;
  1907. // }
  1908. // }
  1909. //
  1910. // for(var i = 0; i < nodeList.length; i++)
  1911. // {
  1912. // var itemNode = nodeList.item(i);
  1913. // var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  1914. // var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  1915. // var degnitemlevlcd = itemNode.selectSingleNode("degnitemlevlcd").text;
  1916. // var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/itemattrval"), "imgedit");
  1917. //
  1918. // if(imgedit != "Y")
  1919. // continue;
  1920. //
  1921. // var degnattrval = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnattrval");
  1922. //
  1923. // var ctrlwidth = getStyleValue(degnattrval, "ctrl.width");
  1924. // var ctrlheight = getStyleValue(degnattrval, "ctrl.height");
  1925. //
  1926. // var ctrlid = "IMG_" + degnitemno;
  1927. //
  1928. // var strShape = eval("IMG_" + degnitemno).DeleteAllShape();
  1929. //
  1930. // var Viewmode = eval("IMG_" + degnitemno).GetViewMode();
  1931. //
  1932. // if(Viewmode != "1")
  1933. // {
  1934. // eval("IMG_" + degnitemno).SetViewMode(1);
  1935. // }
  1936. //
  1937. // if (ctrlwidth != "") // 2011-01-17 경북대 최원돈 예외사항 오류수정
  1938. // {
  1939. // eval("IMG_" + degnitemno).width = ctrlwidth;
  1940. // }
  1941. //
  1942. // if (ctrlheight != "") // 2011-01-17 경북대 최원돈 예외사항 오류수정
  1943. // {
  1944. // eval("IMG_" + degnitemno).height = ctrlheight;
  1945. // }
  1946. //
  1947. // var domain = getMainDomain();
  1948. //
  1949. // var imgurl = GetImgUrl(degnitemcd);
  1950. //
  1951. // var imgsrc = domain + imgurl;
  1952. //
  1953. // eval("IMG_" + degnitemno).LoadImage(imgsrc);
  1954. //
  1955. // }
  1956. // }
  1957. // /**
  1958. // * @desc : 이미지데이터를 가져온다
  1959. // * @id :
  1960. // * @event :
  1961. // * @return :
  1962. // * @authur : 이상현
  1963. // * @history:
  1964. // 2008-11-24
  1965. // - 로컬이미지는 공통서식, 과별서식 구분 없이 무조건 저장.
  1966. // - 편집가능 DB이미지는 공통서식의 경우 편집을 하지 않으면 Pass
  1967. // 과별서식의 경우 편집을 하지 않아도 저장하도록 수정
  1968. // */
  1969. // var BASE_SHAPE = "<Xvg viewMode='1' zoom='0' width='300' height='300'></Xvg>";
  1970. // function getImgeData()
  1971. // {
  1972. // sysf_trace_emr("***** getImgeData() 이미지데이터를 가져온다. EMRCommon *****");
  1973. // sysf_trace_emr("jw.choe getImgeData() jump");
  1974. // var pageInfo = new PAGEINFO();
  1975. // var expr = "degnitemkind == 'IMG'";
  1976. // //var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  1977. // var recItemRefDs = this.objects[pageInfo.recItemRef];
  1978. // recItemRefDs.filter(expr);
  1979. //
  1980. // // 공통서식인지 과별서식인지 구분
  1981. // //var FormInfoNode = instance1.selectNodes(pageInfo.formmastRef);
  1982. // var formmastRefDs = this.objects[pageInfo.formmastRef];
  1983. //
  1984. // var isFormMain = "";
  1985. // var formkind = "";
  1986. // var formprognm = "";
  1987. // var formprogflag = "";
  1988. //
  1989. // if(formmastRefDs.rowcount > 0)
  1990. // {
  1991. // //var formmastInfoNode = FormInfoNode.item(0);
  1992. //
  1993. // formprogflag = formmastRefDs.getColumn(0, "formprogflag");
  1994. // formprognm = formmastRefDs.getColumn(0, "formprognm");
  1995. // formkind = formmastRefDs.getColumn(0, "formkind");
  1996. //
  1997. // if(formprognm != "-" && formkind == "C" && formprogflag != "-")
  1998. // {
  1999. // isFormMain = true;
  2000. // }
  2001. // else if(formkind == "U")
  2002. // {
  2003. // isFormMain = true; // 공통서식내의 부분 서식.
  2004. // }
  2005. // else
  2006. // {
  2007. // isFormMain = false;
  2008. // }
  2009. // }
  2010. //
  2011. // for(var i = 0; i < recItemRefDs.rowcount; i++)
  2012. // {
  2013. // //var itemNode = nodeList.item(i);
  2014. // var degnitemno = recItemRefDs.getColumn(i, "degnitemno");
  2015. // var degnitemcd = recItemRefDs.getColumn(i, "degnitemcd");
  2016. // var degnitemlevlcd = recItemRefDs.getColumn(i, "degnitemlevlcd");
  2017. //
  2018. // var degnitemnm = recItemRefDs.getColumn(i, "degnitemnm");
  2019. // var fstlevlitemcd = recItemRefDs.getColumn(i, "fstlevlitemcd");
  2020. // var reccnts = recItemRefDs.getColumn(i, "reccnts");
  2021. //
  2022. // var imgedit = "";
  2023. //
  2024. // if(formkind == "U")
  2025. // {
  2026. // var Tmpdegnitemlevlcd = degnitemlevlcd;
  2027. // var Tmpfstlevlitemcd = "";
  2028. //
  2029. // if(!utlf_isNull(fstlevlitemcd))
  2030. // {
  2031. // Tmpfstlevlitemcd = fstlevlitemcd.substr(0, 7) + ".";
  2032. // Tmpdegnitemlevlcd = Tmpdegnitemlevlcd.setReplaceWord(Tmpfstlevlitemcd, "");
  2033. // }
  2034. //
  2035. // imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd = '" + Tmpdegnitemlevlcd + "']/itemattrval"), "imgedit");
  2036. // }
  2037. // else
  2038. // imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/itemattrval"), "imgedit");
  2039. //
  2040. // if(imgedit != "Y")
  2041. // continue;
  2042. //
  2043. // var ctrlid = "IMG_" + degnitemno;
  2044. //
  2045. // var strShape = eval("IMG_" + degnitemno).GetShapeString();
  2046. // var strRecImge = eval("IMG_" + degnitemno).SaveImageBase64();
  2047. // var strImgSize = eval("IMG_" + degnitemno).GetImageSizeEx(false); // 이미지의 크기
  2048. //
  2049. // var LocalImgNode = "/root/temp2/localimage/" + ctrlid + "/srcimge";
  2050. // var LocalYNNode = "/root/temp2/localimage/" + ctrlid + "/LocalYN";
  2051. // var LocalDegnitemlevlCDNode = "/root/temp2/localimage/" + ctrlid + "/degnitemlevlcd";
  2052. //
  2053. // //var isLocalImge = model.getValue("/root/temp2/localimage");
  2054. // var strSrcImge = model.getValue(LocalImgNode);
  2055. // var strLocalYN = model.getValue(LocalYNNode);
  2056. // var strLocalImgDegnitemlevlcd = model.getValue(LocalDegnitemlevlCDNode);
  2057. // /*
  2058. // if(degnitemnm == "빈이미지" && reccnts != "")
  2059. // {
  2060. // // MetaData
  2061. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2062. //
  2063. // // recimage
  2064. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2065. // }
  2066. // */
  2067. //
  2068. // if(strLocalYN == "Y") // 로컬이미지 저장 루틴
  2069. // {
  2070. // if(degnitemlevlcd == strLocalImgDegnitemlevlcd)
  2071. // {
  2072. // // Image Size
  2073. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/unitnm", strImgSize);
  2074. //
  2075. // // MetaData
  2076. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2077. //
  2078. // // recimage
  2079. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2080. //
  2081. // // srcimage
  2082. // var newNode = model.instance1.selectSingleNode(LocalImgNode);
  2083. //
  2084. // var srcimgNode = itemNode.selectSingleNode("srcimge");
  2085. //
  2086. // if(newNode != null && srcimgNode != null)
  2087. // {
  2088. // itemNode.replaceChild(newNode, srcimgNode);
  2089. // }
  2090. //
  2091. // // srcimage
  2092. // /*
  2093. // var newNode = model.instance1.selectSingleNode(LocalImgNode);
  2094. //
  2095. // var srcimgNode = "";
  2096. // srcimgNode = itemNode.selectSingleNode("srcimge");
  2097. //
  2098. // if(srcimgNode != null) {
  2099. // itemNode.replaceChild(newNode, srcimgNode);
  2100. // }
  2101. // else {
  2102. // itemNode.appendChild(newNode);
  2103. // }
  2104. // */
  2105. //
  2106. // // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  2107. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/colno", "FILE");
  2108. //
  2109. // // 미리보기시 로컬이미지와 DB이미지를 구분하기 위해 설정
  2110. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/degnitemnm", "LOCALIMG");
  2111. // }
  2112. // }
  2113. // else // DB 이미지 저장 루틴
  2114. // {
  2115. // /*
  2116. // // xvg패턴 제거
  2117. // // 편집가능인 이미지에서 편집을 안했을 경우의 메타데이터가 들어가는 경우를 방지하기 위해서임.
  2118. // var tmpShape = removeXvgTag(strShape);
  2119. //
  2120. // if(tmpShape != "")
  2121. // model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2122. // */
  2123. // if(isFormMain == true) // 공통서식은 수정하지 않은 편집가능 이미지인 경우 저장하지 않음.
  2124. // {
  2125. // var tmpShape = removeXvgTag(strShape);
  2126. //
  2127. // if(tmpShape != "")
  2128. // {
  2129. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", strShape, true);
  2130. //
  2131. // // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  2132. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/colno", "MAST", true);
  2133. //
  2134. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2135. // }
  2136. // }
  2137. // else // 과별서식
  2138. // {
  2139. // if(degnitemnm == "빈이미지" && strShape == "")
  2140. // {
  2141. // //itemNode.parentNode.removeChild(itemNode);
  2142. // }
  2143. // else
  2144. // {
  2145. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/reccnts", strShape, true);
  2146. //
  2147. // // 진료기록메인에서 미리보기 쿼리 실행 시 로컬이미지를 찾기 위해 colno를 'FILE'로 설정
  2148. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/colno", "MAST", true);
  2149. //
  2150. // model.setValue(pageInfo.recItemRef + "[degnitemlevlcd = '" + degnitemlevlcd + "']/recimge", strRecImge, true);
  2151. // }
  2152. // }
  2153. // }
  2154. // }
  2155. // }
  2156. function getImgeData_old2()
  2157. {
  2158. var pageInfo = new PAGEINFO();
  2159. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  2160. for(var i = 0; i < nodeList.length; i++)
  2161. {
  2162. var itemNode = nodeList.item(i);
  2163. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  2164. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/itemattrval"), "imgedit");
  2165. if(imgedit != "Y")
  2166. continue;
  2167. var strShape = eval("IMG_" + degnitemno).GetShapeString();
  2168. var strRecImge = eval("IMG_" + degnitemno).SaveImageBase64();
  2169. // xvg패턴 제거
  2170. var tmpShape = removeXvgTag(strShape);
  2171. var isLocalImge = model.getValue("/root/temp2/localimage");
  2172. if(isLocalImge == "true")
  2173. {
  2174. if(tmpShape != "")
  2175. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2176. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge", strRecImge, true);
  2177. // 로컬이미지 저장
  2178. var newNode = model.instance1.selectSingleNode("/root/rectemp/srcimge");
  2179. var srcimgNode = "";
  2180. srcimgNode = itemNode.selectSingleNode("srcimge");
  2181. if(srcimgNode != null)
  2182. {
  2183. itemNode.replaceChild(newNode, srcimgNode);
  2184. }
  2185. else
  2186. {
  2187. itemNode.appendChild(newNode);
  2188. }
  2189. }
  2190. else
  2191. {
  2192. if(tmpShape != "")
  2193. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2194. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge", strRecImge, true);
  2195. }
  2196. /*
  2197. if(tmpShape != "")
  2198. {
  2199. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape, true);
  2200. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge", strRecImge, true);
  2201. if(isLocalImge == "true")
  2202. {
  2203. //model.makeValue("/root/rectemp/srcimge", strBase64, true);
  2204. var newNode = model.instance1.selectSingleNode("/root/rectemp/srcimge");
  2205. var srcimgNode = "";
  2206. srcimgNode = itemNode.selectSingleNode("srcimge");
  2207. if(srcimgNode != null)
  2208. {
  2209. itemNode.replaceChild(newNode, srcimgNode);
  2210. }
  2211. else
  2212. {
  2213. itemNode.appendChild(newNode);
  2214. }
  2215. //model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/srcimge", strRecImge, true);
  2216. }
  2217. }
  2218. */
  2219. }
  2220. }
  2221. function getImgeData_old()
  2222. {
  2223. var pageInfo = new PAGEINFO();
  2224. var nodeList = instance1.selectNodes(pageInfo.recItemRef + "[degnitemkind = 'IMG']");
  2225. for(var i = 0; i < nodeList.length; i++)
  2226. {
  2227. var itemNode = nodeList.item(i);
  2228. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  2229. var imgedit = getStyleValue(model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/itemattrval"), "imgedit");
  2230. if(imgedit != "Y")
  2231. continue;
  2232. var strShape = eval("IMG_" + degnitemno).GetShapeString();
  2233. if(strShape != BASE_SHAPE)
  2234. model.setValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts", strShape);
  2235. }
  2236. }
  2237. /**
  2238. * @desc : 메타데이터에서 <xvg> 태그를 삭제한다.
  2239. * @id :
  2240. * @event :
  2241. * @return :
  2242. * @authur : 이경희
  2243. */
  2244. function removeXvgTag(metadata)
  2245. {
  2246. var strMeta = metadata;
  2247. var grpexpSt = new RegExp('(<xvg[^<>]+>)', 'igm');
  2248. var grpexpEd = new RegExp('(</xvg>)', 'igm');
  2249. if (grpexpSt.test(strMeta) == true)
  2250. {
  2251. strMeta = strMeta.replace(grpexpSt, '');
  2252. }
  2253. if (grpexpEd.test(strMeta) == true)
  2254. {
  2255. strMeta = strMeta.replace(grpexpEd, '');
  2256. }
  2257. return strMeta;
  2258. }
  2259. // /**
  2260. // * @desc : 저장할 기록정보를 가져온다
  2261. // * @id :
  2262. // * @event :
  2263. // * @return :
  2264. // * @authur : 이상현
  2265. // */
  2266. // function getSaveData(targetPath, appendMode, pmodel, pageInfo, mode)
  2267. // {
  2268. // sysf_trace_emr("***** getSaveData("+targetPath+", "+appendMode+", "+pmodel+", "+pageInfo+", "+mode+") EMRCommon *****");
  2269. // if(utlf_isNull(mode))
  2270. // mode = "";
  2271. //
  2272. // if(mode == "all")
  2273. // getSaveDataAll(targetPath, appendMode, pmodel, pageInfo);
  2274. // else
  2275. // getSaveDataVal(targetPath, appendMode, pmodel, pageInfo);
  2276. // }
  2277. //
  2278. // /**
  2279. // * @desc : 저장할 기록정보를 모두 가져온다
  2280. // * @id :
  2281. // * @event :
  2282. // * @return :
  2283. // * @authur : 이상현
  2284. // */
  2285. // function getSaveDataAll(targetPath, appendMode, pmodel, pageInfo)
  2286. // {
  2287. // sysf_trace_emr("***** MMRCommon getSaveDataAll("+targetPath+", "+appendMode+", "+pmodel+", "+pageInfo+") EMRCommon*****");
  2288. // if(utlf_isNull(pageInfo))
  2289. // pageInfo = new PAGEINFO();
  2290. //
  2291. // if(utlf_isNull(pmodel))
  2292. // pmodel == this;
  2293. //
  2294. // dsf_clearDsList( pageInfo.savedInfoRef2 );
  2295. // sysf_trace_emr("model.makeValue(pageInfo.savedInfoRef2... 체크필요");
  2296. // // model.removeNodeset(pageInfo.savedInfoRef2);
  2297. // // model.makeValue(pageInfo.savedInfoRef2, "");
  2298. //
  2299. //
  2300. // var recItemRefDs = this.objects[pageInfo.recItemRef];
  2301. // var nodeListCnt = 0;
  2302. // if( !utlf_isNull(recItemRefDs) ){
  2303. // recItemRefDs.filter("degnitemkind != 'GRD' && degnitemkind != 'IMG'");
  2304. // nodeListCnt = recItemRefDs.rowcount;
  2305. // //temp
  2306. // dsf_create("tmp_recItemRefDs");
  2307. // tmp_recItemRefDs.copyDs(recItemRefDs, true);
  2308. // recItemRefDs.filter("");
  2309. // }
  2310. //
  2311. // //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[degnitemkind != 'GRD' and degnitemkind != 'IMG']");
  2312. // for(var i = 0; i < nodeListCnt; i++)
  2313. // {
  2314. // var condition = "";
  2315. // //var itemsNode = nodeList.item(i);
  2316. // var degnitemnoNode = tmp_recItemRefDs.getColumn(i, "degnitemno");
  2317. // if(utlf_isNull(degnitemnoNode))
  2318. // continue;
  2319. //
  2320. // var rowCondition = "";
  2321. // if(utlf_isNull(condition))
  2322. // condition = "degnitemno == '" + degnitemnoNode + "'" + rowCondition;
  2323. // else
  2324. // condition += " || degnitemno == '" + degnitemnoNode + "'" + rowCondition;
  2325. //
  2326. // var supdegnitemno = (this.objects[gPrePath_formdegnRef]).lookup("degnitemno", degnitemnoNode, "supdegnitemno");
  2327. // if(!utlf_isNull(supdegnitemno))
  2328. // condition = getSaveDataParent(supdegnitemno, condition);
  2329. //
  2330. // if(!utlf_isNull(condition)){
  2331. // //copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2332. // var savedInfoItemRef2Ds = this.objects[pageInfo.savedInfoItemRef2];
  2333. // var recItemRefDs = this.objects[gPrePath_recItemRef];
  2334. //
  2335. // if( utlf_isNull(savedInfoItemRef2Ds) ){
  2336. // dsf_createDs( pageInfo.savedInfoItemRef2 );
  2337. // dsf_copyColInfo( savedInfoItemRef2Ds, recItemRefDs );
  2338. // }
  2339. //
  2340. // recItemRefDs.filter( condition );
  2341. // savedInfoItemRef2Ds.appendData( recItemRefDs );
  2342. // recItemRefDs.filter( "" );
  2343. // }
  2344. // condAll += condition;
  2345. // }
  2346. //
  2347. // getCheckSaveData(pageInfo);
  2348. //
  2349. // if(!utlf_isNull(this.objects[pageInfo.savedInfoItemRef2]) && (this.objects[pageInfo.savedInfoItemRef2]).rowcount > 0)
  2350. // {
  2351. // if(!utlf_isNull(pageInfo.formCd))
  2352. // {
  2353. // var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2354. // pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2355. // pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2356. // pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2357. // pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2358. // pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2359. // pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2360. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2361. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2362. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2363. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2364. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2365. // pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2366. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2367. // pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2368. // pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2369. // pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2370. // pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2371. // pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2372. // pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2373. // pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2374. // pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2375. // }
  2376. // copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2377. // }
  2378. // }
  2379. //
  2380. // /**
  2381. // * @desc : 저장할 기록정보 값을 가져온다
  2382. // * @id :
  2383. // * @event :
  2384. // * @return :
  2385. // * @authur : 이상현, 20100209, 주희경 수정
  2386. // */
  2387. // function getSaveDataVal(targetPath, appendMode, pmodel, pageInfo)
  2388. // {
  2389. // sysf_trace_emr("***** getSaveDataVal("+targetPath+", "+appendMode+", "+pmodel+", "+pageInfo+") EMRCommon *****");
  2390. // sysf_trace_emr("***** 저장할 기록정보 값을 가져온다 ****");
  2391. // sysf_trace_emr("***** jw.choe return ****");
  2392. // return;
  2393. // if(utlf_isNull(pageInfo))
  2394. // pageInfo = new PAGEINFO();
  2395. //
  2396. // if(utlf_isNull(pmodel))
  2397. // pmodel == this;
  2398. //
  2399. // //이미지ocx에 있는 annotation 정보 grep
  2400. // getImgeData();
  2401. //
  2402. // //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  2403. // dsf_clearDsList(pageInfo.savedInfoRef2);
  2404. // // model.removeNodeset(pageInfo.savedInfoRef2);
  2405. // // model.makeValue(pageInfo.savedInfoRef2, "");
  2406. //
  2407. // getGridSaveData(pageInfo);
  2408. //
  2409. // /////////////////////////////
  2410. // // 2010.02.08, 주희경 수정
  2411. // // 기본서식 기록 데이터가 없고 [추가기록, 이미지, 가계도, 확장서식]의 데이터가 있는경우 부분서식 타이틀 저장을 위해 체크 및 데이터 셋팅
  2412. // var expr = "!utlf_isNull(rectermcd) || !utlf_isNull(reccnts)";
  2413. // var etcrecItemRefDs = this.objects[pageInfo.etcrecItemRef+ "_recitem"];
  2414. // var etcrecItemRefCnt = etcrecItemRefDs == null ? 0 : etcrecItemRefDs.getCaseCount(expr);
  2415. // //추가기록이 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2416. // if ( etcrecItemRefCnt > 0 )
  2417. // {
  2418. // etcrecItemRefDs.filter(expr);
  2419. // fSetFormRecItemHeader(pageInfo, etcrecItemRefDs, false);
  2420. // etcrecItemRefDs.filter("");
  2421. // //fSetFormRecItemHeader(pageInfo, etcrecNodeList, false);
  2422. // }
  2423. //
  2424. // var imgerecItemRefDs = this.objects[pageInfo.imgerecItemRef];
  2425. // var imgerecItemRefCnt = imgerecItemRefDs == null ? 0 : imgerecItemRefDs.getCaseCount(expr);
  2426. // //이미지가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2427. // if ( imgerecItemRefCnt > 0 )
  2428. // {
  2429. // imgerecItemRefDs.filter(expr);
  2430. // fSetFormRecItemHeader(pageInfo, imgerecItemRefDs, false);
  2431. // imgerecItemRefDs.filter("");
  2432. // //fSetFormRecItemHeader(pageInfo, imgrecNodeList, false);
  2433. // }
  2434. //
  2435. // var fmyrecItemRefDs = this.objects[pageInfo.fmyrecItemRef+ "_recitem"];
  2436. // var fmyrecItemRefCnt = fmyrecItemRefDs == null ? 0 : fmyrecItemRefDs.getCaseCount(expr);
  2437. // //가계도가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2438. // if ( fmyrecItemRefCnt > 0 )
  2439. // {
  2440. // fmyrecItemRefDs.filter(expr);
  2441. // fSetFormRecItemHeader(pageInfo, fmyrecItemRefDs, false);
  2442. // fmyrecItemRefDs.filter("");
  2443. // //fSetFormRecItemHeader(pageInfo, fmyrecNodeList, false);
  2444. // }
  2445. //
  2446. // var extnrecRefDs = this.objects[pageInfo.extnrecRef+ "_recitem"];
  2447. // var extnrecRefCnt = extnrecRefDs == null ? 0 : extnrecRefDs.getCaseCount(expr);
  2448. // //확장서식 데이터가 존재하면 기본서식 노드리스트의 헤더에 값을 셋팅
  2449. // if ( extnrecRefCnt > 0 )
  2450. // {
  2451. // extnrecRefDs.filter(expr);
  2452. // fSetFormRecItemHeader(pageInfo, extnrecRefDs, false);
  2453. // extnrecRefDs.filter("");
  2454. // //fSetFormRecItemHeader(pageInfo, extnecNodeList, false);
  2455. // }
  2456. // //
  2457. // /////////////////////////////////////////////
  2458. //
  2459. //
  2460. // // 그리드 이외의 아이템 노드리스트를 가져온다.
  2461. // //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '' or srcimge != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2462. // var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2463. //
  2464. //
  2465. // //////////////////////////
  2466. // // 2010.02.08, 주희경 수정
  2467. // // 기본 서식의 타이틀에 셋팅한 데이터 원복
  2468. //
  2469. // //추가기록, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2470. // if ( etcrecNodeList.length > 0 )
  2471. // fSetFormRecItemHeader(pageInfo, etcrecNodeList, true);
  2472. //
  2473. // //이미지, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2474. // if ( imgrecNodeList.length > 0 )
  2475. // fSetFormRecItemHeader(pageInfo, imgrecNodeList, true);
  2476. //
  2477. // //가계도, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2478. // if ( fmyrecNodeList.length > 0 )
  2479. // fSetFormRecItemHeader(pageInfo, fmyrecNodeList, true);
  2480. //
  2481. // //확장서식, 기본 서식의 타이틀에 셋팅한 데이터 원복
  2482. // if ( extnecNodeList.length > 0 )
  2483. // fSetFormRecItemHeader(pageInfo, extnecNodeList, true);
  2484. //
  2485. //
  2486. //
  2487. // //
  2488. // //////////////////////////////
  2489. //
  2490. //
  2491. // // grdClone은 <grid> 의 row 하나를 뜻함.
  2492. // for(var i = 0; i < nodeList.length; i++)
  2493. // {
  2494. // var condition = "";
  2495. // var itemsNode = nodeList.item(i); // 값이 있는 단일 노드
  2496. // var degnitemnoNode = itemsNode.selectSingleNode("degnitemno"); // itemsNode의 degnitemno값
  2497. // var degnitemnmNode = itemsNode.selectSingleNode("degnitemnm"); // itemsNode의 degnitemnm값
  2498. // var degnitemkindNode = itemsNode.selectSingleNode("degnitemkind"); // itemsNode의 degnitemkind값
  2499. //
  2500. // var RecCntsNode = itemsNode.selectSingleNode("reccnts"); // itemsNode의 reccnts값
  2501. // var recimgeNode = itemsNode.selectSingleNode("recimge"); // itemsNode의 reccnts값
  2502. //
  2503. // var subrecrefcdNode = itemsNode.selectSingleNode("recrefcd");
  2504. // var subrecitemnmNode = itemsNode.selectSingleNode("recitemnm");
  2505. // var subtermcdNode = itemsNode.selectSingleNode("rectermcd");
  2506. // var subfstlevlcdNode = itemsNode.selectSingleNode("fstlevlitemcd");
  2507. // var sublevlcdNode = itemsNode.selectSingleNode("degnitemlevlcd");
  2508. // var sublevlnoNode = itemsNode.selectSingleNode("degnitemlevlno");
  2509. //
  2510. // if(degnitemnoNode == null)
  2511. // continue;
  2512. //
  2513. // if(degnitemkindNode.text == "IMG" && degnitemnmNode.text == "빈이미지" && RecCntsNode.text != "")
  2514. // {
  2515. // var tmpMeta = removeXvgTag(RecCntsNode.text);
  2516. // if( tmpMeta == "")
  2517. // continue;
  2518. // }
  2519. //
  2520. // var rowCondition = "";
  2521. // var srchno = "'" + degnitemnoNode.text + "'";
  2522. // if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  2523. // {
  2524. // if(condition == "")
  2525. // condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2526. // else
  2527. // condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2528. // }
  2529. //
  2530. // var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2531. // if(supdegnitemno != "" && supdegnitemno != "0")
  2532. // condition = getSaveDataParent(supdegnitemno, condition);
  2533. //
  2534. // if(condition != "")
  2535. // {
  2536. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2537. //
  2538. // // MSL-SSU 데이터 체크
  2539. // //var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind != 'IMG' and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2540. // var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind = 'MSL']");
  2541. //
  2542. // for(var idx = 0; idx < nodelist.length; idx++)
  2543. // {
  2544. // var recitemNode = nodelist.item(idx);
  2545. //
  2546. // var degnitemnm = recitemNode.selectSingleNode("degnitemnm").text;
  2547. // var degnitemno = recitemNode.selectSingleNode("degnitemno").text;
  2548. // var degnitemkind = recitemNode.selectSingleNode("degnitemkind").text;
  2549. // var degnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text;
  2550. //
  2551. // var rectermcd = recitemNode.selectSingleNode("rectermcd").text;
  2552. // var rectermnm = recitemNode.selectSingleNode("rectermnm").text;
  2553. // var reccnts = recitemNode.selectSingleNode("reccnts").text;
  2554. //
  2555. // var rowno = recitemNode.selectSingleNode("rowno").text;
  2556. // var colno = recitemNode.selectSingleNode("colno").text;
  2557. // /*
  2558. // var degncntrviewflag = model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/degncntrviewflag");
  2559. //
  2560. // if(degncntrviewflag == "L") // 라벨은 삭제대상에서 제외
  2561. // continue;
  2562. // */
  2563. // //if( rectermcd != "" && rectermnm != "")
  2564. // if( rectermcd != "")
  2565. // continue;
  2566. // else if(reccnts != "")
  2567. // continue;
  2568. //
  2569. // recitemNode.parentNode.removeChild(recitemNode);
  2570. // }
  2571. // }
  2572. //
  2573. // if(condAll == "")
  2574. // condAll = condition;
  2575. // else
  2576. // {
  2577. // if(condition != "")
  2578. // condAll += " or " + condition;
  2579. // }
  2580. // }
  2581. //
  2582. // condAll = "";
  2583. //
  2584. //
  2585. // // 기존 코드
  2586. // // grid 이외의 아이템을 pageInfo.savedInfoItemRef2 의 recitem노드 뒤에 이어서 복사한다.
  2587. // //if(condition != "")
  2588. // // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2589. //
  2590. // getCheckSaveData(pageInfo);
  2591. //
  2592. // if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2593. // {
  2594. // if(pageInfo.formCd != "")
  2595. // {
  2596. // var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2597. // pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2598. // pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2599. // pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2600. // pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2601. // pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2602. // pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2603. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2604. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2605. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2606. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2607. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2608. // pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2609. // pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2610. // pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2611. // pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2612. // pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2613. // pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2614. // pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2615. // pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2616. // pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2617. // pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2618. // pmodel.makeValue(targetPath + "[" + idx + "]/degnunitcd", "");
  2619. // }
  2620. //
  2621. // // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  2622. // copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2623. // }
  2624. // }
  2625. /**
  2626. * @desc : 기본서식 기록 데이터가 없고 [추가기록, 이미지, 가계도, 확장서식]의 데이터가 있는경우 부분서식 타이틀 저장을 위해 체크 및 데이터 셋팅
  2627. * @id :
  2628. * @event :
  2629. * @return :
  2630. * @authur : 주희경
  2631. */
  2632. // function fSetFormRecItemHeader(pageInfo, etcNodeList, resetDataFlag)
  2633. // {
  2634. // sysf_trace_emr("***** fSetFormRecItemHeader("+pageInfo+", "+etcNodeList+", "+resetDataFlag+") EMRCommon *****");
  2635. // var tmpivwObj = "";
  2636. // for(var i = 0; i < etcNodeList.rowcount; i++)
  2637. // {
  2638. // //var etcitemsNode = etcNodeList.item(i); // 값이 있는 단일 노드
  2639. // var etcfstlevlitemcd = etcNodeList.getColumn(i, "fstlevlitemcd");
  2640. // var etcreccnts = etcNodeList.getColumn(i, "reccnts").text;
  2641. // var fRow = ds_data_recitem.findRow("fstlevlitemcd", etcfstlevlitemcd);
  2642. // var orgreccnts = ds_data_recitem.getColumn(fRow, "reccnts");
  2643. //
  2644. // if (utlf_isNull(etcreccnts))
  2645. // etcreccnts = etcNodeList.getColumn(i, "rectermcd");
  2646. //
  2647. // tmpivwObj = this.components["ivw_" + etcfstlevlitemcd];
  2648. //
  2649. // if (!resetDataFlag)
  2650. // {
  2651. // if(!utlf_isNull(tmpivwObj))
  2652. // {
  2653. // var cnt = tmpivwObj.getFormRecItemExist();
  2654. //
  2655. // if (cnt < 1 && utlf_isNull(orgreccnts) && !utlf_isNull(etcreccnts))
  2656. // {
  2657. // ds_data_recitem.setColumn(fRow, "reccnts", etcreccnts);
  2658. // }
  2659. // }
  2660. // else
  2661. // {
  2662. // if (utlf_isNull(orgreccnts))
  2663. // {
  2664. // ds_data_recitem.setColumn(fRow, "reccnts", etcreccnts);
  2665. // }
  2666. // }
  2667. // }
  2668. // else
  2669. // {
  2670. // if(!utlf_isNull(tmpivwObj) && !utlf_isNull(tmpivwObj.url))
  2671. // {
  2672. // var cnt = tmpivwObj.getFormRecItemExist();
  2673. //
  2674. // if (cnt < 1 && orgreccnts == etcreccnts && !utlf_isNull(etcreccnts))
  2675. // {
  2676. // ds_data_recitem.setColumn(fRow, "reccnts", "");
  2677. // }
  2678. //
  2679. // }
  2680. // else
  2681. // {
  2682. // if (orgreccnts == etcreccnts)
  2683. // {
  2684. // ds_data_recitem.setColumn(fRow, "reccnts", "");
  2685. // }
  2686. // }
  2687. // }
  2688. // }
  2689. // }
  2690. /**
  2691. * @desc : 저장할 기록정보 값을 가져온다
  2692. * @id :
  2693. * @event :
  2694. * @return :
  2695. * @authur : 이상현
  2696. */
  2697. function getSaveDataVal_20100211(targetPath, appendMode, pmodel, pageInfo)
  2698. {
  2699. if(pageInfo == null)
  2700. pageInfo = new PAGEINFO();
  2701. if(pmodel == null)
  2702. pmodel == model;
  2703. //이미지ocx에 있는 annotation 정보 grep
  2704. getImgeData();
  2705. //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  2706. model.removeNodeset(pageInfo.savedInfoRef2);
  2707. model.makeValue(pageInfo.savedInfoRef2, "");
  2708. getGridSaveData(pageInfo);
  2709. var etcrecNodeList = model.instances(0).selectNodes(pageInfo.etcrecItemRef+ "/recitem[rectermcd != '' or reccnts != '']");
  2710. var tmpivwObj = "";
  2711. for(var i = 0; i < etcrecNodeList.length; i++)
  2712. {
  2713. var etcrecitemsNode = etcrecNodeList.item(i); // 값이 있는 단일 노드
  2714. var etcrecfstlevlitemcd = etcrecitemsNode.selectSingleNode("fstlevlitemcd").text;
  2715. var etcrecreccnts = etcrecitemsNode.selectSingleNode("reccnts").text;
  2716. var orgreccnts = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts");
  2717. tmpivwObj = document.controls("ivw_" + etcrecfstlevlitemcd);
  2718. if(tmpivwObj != null && tmpivwObj.src != "")
  2719. {
  2720. var cnt = tmpivwObj.window.javascript.getFormRecItemExist();
  2721. if (cnt < 1 && orgreccnts == "" && etcrecreccnts != "")
  2722. {
  2723. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", etcrecreccnts);
  2724. }
  2725. }
  2726. else
  2727. {
  2728. if (orgreccnts == "")
  2729. {
  2730. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", etcrecreccnts);
  2731. }
  2732. }
  2733. }
  2734. // 그리드 이외의 아이템 노드리스트를 가져온다.
  2735. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '' or srcimge != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2736. var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2737. for(var i = 0; i < etcrecNodeList.length; i++)
  2738. {
  2739. var etcrecitemsNode = etcrecNodeList.item(i); // 값이 있는 단일 노드
  2740. var etcrecfstlevlitemcd = etcrecitemsNode.selectSingleNode("fstlevlitemcd").text;
  2741. var etcrecreccnts = etcrecitemsNode.selectSingleNode("reccnts").text;
  2742. var orgreccnts = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts");
  2743. tmpivwObj = document.controls("ivw_" + etcrecfstlevlitemcd);
  2744. if(tmpivwObj != null && tmpivwObj.src != "")
  2745. {
  2746. var cnt = tmpivwObj.window.javascript.getFormRecItemExist();
  2747. if (cnt < 1 && orgreccnts == etcrecreccnts && etcrecreccnts != "")
  2748. {
  2749. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", "");
  2750. }
  2751. }
  2752. else
  2753. {
  2754. if (orgreccnts == etcrecreccnts)
  2755. {
  2756. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd = '" + etcrecfstlevlitemcd + "']/reccnts", "");
  2757. }
  2758. }
  2759. }
  2760. // grdClone은 <grid> 의 row 하나를 뜻함.
  2761. for(var i = 0; i < nodeList.length; i++)
  2762. {
  2763. var condition = "";
  2764. var itemsNode = nodeList.item(i); // 값이 있는 단일 노드
  2765. var degnitemnoNode = itemsNode.selectSingleNode("degnitemno"); // itemsNode의 degnitemno값
  2766. var degnitemnmNode = itemsNode.selectSingleNode("degnitemnm"); // itemsNode의 degnitemnm값
  2767. var degnitemkindNode = itemsNode.selectSingleNode("degnitemkind"); // itemsNode의 degnitemkind값
  2768. var RecCntsNode = itemsNode.selectSingleNode("reccnts"); // itemsNode의 reccnts값
  2769. var recimgeNode = itemsNode.selectSingleNode("recimge"); // itemsNode의 reccnts값
  2770. var subrecrefcdNode = itemsNode.selectSingleNode("recrefcd");
  2771. var subrecitemnmNode = itemsNode.selectSingleNode("recitemnm");
  2772. var subtermcdNode = itemsNode.selectSingleNode("rectermcd");
  2773. var subfstlevlcdNode = itemsNode.selectSingleNode("fstlevlitemcd");
  2774. var sublevlcdNode = itemsNode.selectSingleNode("degnitemlevlcd");
  2775. var sublevlnoNode = itemsNode.selectSingleNode("degnitemlevlno");
  2776. if(degnitemnoNode == null)
  2777. continue;
  2778. if(degnitemkindNode.text == "IMG" && degnitemnmNode.text == "빈이미지" && RecCntsNode.text != "")
  2779. {
  2780. var tmpMeta = removeXvgTag(RecCntsNode.text);
  2781. if( tmpMeta == "")
  2782. continue;
  2783. }
  2784. var rowCondition = "";
  2785. var srchno = "'" + degnitemnoNode.text + "'";
  2786. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  2787. {
  2788. if(condition == "")
  2789. condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2790. else
  2791. condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2792. }
  2793. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2794. if(supdegnitemno != "" && supdegnitemno != "0")
  2795. condition = getSaveDataParent(supdegnitemno, condition);
  2796. if(condition != "")
  2797. {
  2798. copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2799. // MSL-SSU 데이터 체크
  2800. //var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind != 'IMG' and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2801. var nodelist = model.instances(0).selectNodes(pageInfo.savedInfoItemRef2 + "[degnitemkind = 'MSL']");
  2802. for(var idx = 0; idx < nodelist.length; idx++)
  2803. {
  2804. var recitemNode = nodelist.item(idx);
  2805. var degnitemnm = recitemNode.selectSingleNode("degnitemnm").text;
  2806. var degnitemno = recitemNode.selectSingleNode("degnitemno").text;
  2807. var degnitemkind = recitemNode.selectSingleNode("degnitemkind").text;
  2808. var degnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text;
  2809. var rectermcd = recitemNode.selectSingleNode("rectermcd").text;
  2810. var rectermnm = recitemNode.selectSingleNode("rectermnm").text;
  2811. var reccnts = recitemNode.selectSingleNode("reccnts").text;
  2812. var rowno = recitemNode.selectSingleNode("rowno").text;
  2813. var colno = recitemNode.selectSingleNode("colno").text;
  2814. /*
  2815. var degncntrviewflag = model.getValue(pageInfo.formdegnRef + "[degnitemlevlcd='" + degnitemlevlcd + "' and degnitemno = '" + degnitemno + "']/degncntrviewflag");
  2816. if(degncntrviewflag == "L") // 라벨은 삭제대상에서 제외
  2817. continue;
  2818. */
  2819. //if( rectermcd != "" && rectermnm != "")
  2820. if( rectermcd != "")
  2821. continue;
  2822. else if(reccnts != "")
  2823. continue;
  2824. recitemNode.parentNode.removeChild(recitemNode);
  2825. }
  2826. }
  2827. if(condAll == "")
  2828. condAll = condition;
  2829. else
  2830. {
  2831. if(condition != "")
  2832. condAll += " or " + condition;
  2833. }
  2834. }
  2835. condAll = "";
  2836. // 기존 코드
  2837. // grid 이외의 아이템을 pageInfo.savedInfoItemRef2 의 recitem노드 뒤에 이어서 복사한다.
  2838. //if(condition != "")
  2839. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2840. getCheckSaveData(pageInfo);
  2841. if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2842. {
  2843. if(pageInfo.formCd != "")
  2844. {
  2845. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2846. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2847. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2848. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2849. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2850. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2851. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2852. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2853. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2854. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2855. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2856. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2857. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2858. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2859. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2860. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2861. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2862. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2863. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2864. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2865. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2866. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2867. pmodel.makeValue(targetPath + "[" + idx + "]/degnunitcd", "");
  2868. }
  2869. // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  2870. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2871. }
  2872. }
  2873. // MSL-SSU 아이템 저장문제로 백업 2008-12-02
  2874. function getSaveDataVal_old(targetPath, appendMode, pmodel, pageInfo)
  2875. {
  2876. if(pageInfo == null)
  2877. pageInfo = new PAGEINFO();
  2878. if(pmodel == null)
  2879. pmodel == model;
  2880. //이미지ocx에 있는 annotation 정보 grep
  2881. getImgeData();
  2882. //그리드 데이타를 변형하기 위해 일단 main에서 hidden으로 옮긴다.
  2883. model.removeNodeset(pageInfo.savedInfoRef2);
  2884. model.makeValue(pageInfo.savedInfoRef2, "");
  2885. getGridSaveData(pageInfo);
  2886. // 그리드 이외의 아이템 노드리스트를 가져온다.
  2887. //var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '' or srcimge != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2888. var nodeList = model.instances(0).selectNodes(pageInfo.recItemRef + "[(rectermcd != '' or reccnts != '') and degnitemkind != 'GRD' and degnitemkind != 'GSU']");
  2889. // grdClone은 <grid> 의 row 하나를 뜻함.
  2890. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2891. // 2008-07-16 이경희
  2892. // fstLevlItemCd 문제로 인하여 삭제
  2893. /*
  2894. if(nodeList.length >= 1)
  2895. {
  2896. var subNode = nodeList.item(0);
  2897. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  2898. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  2899. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  2900. if(pageInfo.fstLevlItemCd != "")
  2901. {
  2902. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  2903. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  2904. }
  2905. if(pageInfo.fstLevlItemCd != "")
  2906. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2907. }
  2908. */
  2909. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2910. for(var i = 0; i < nodeList.length; i++)
  2911. {
  2912. var condition = "";
  2913. var itemsNode = nodeList.item(i); // 값이 있는 단일 노드
  2914. var degnitemnoNode = itemsNode.selectSingleNode("degnitemno"); // itemsNode의 degnitemno값
  2915. var RecCntsNode = itemsNode.selectSingleNode("reccnts"); // itemsNode의 reccnts값
  2916. var subrecrefcdNode = itemsNode.selectSingleNode("recrefcd");
  2917. var subrecitemnmNode = itemsNode.selectSingleNode("recitemnm");
  2918. var subtermcdNode = itemsNode.selectSingleNode("rectermcd");
  2919. var subfstlevlcdNode = itemsNode.selectSingleNode("fstlevlitemcd");
  2920. var sublevlcdNode = itemsNode.selectSingleNode("degnitemlevlcd");
  2921. var sublevlnoNode = itemsNode.selectSingleNode("degnitemlevlno");
  2922. if(degnitemnoNode == null)
  2923. continue;
  2924. var rowCondition = "";
  2925. var srchno = "'" + degnitemnoNode.text + "'";
  2926. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  2927. {
  2928. if(condition == "")
  2929. condition = "degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2930. else
  2931. condition += " or degnitemno = '" + degnitemnoNode.text + "'" + rowCondition;
  2932. }
  2933. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2934. // 2008-07-16 이경희
  2935. // fstLevlItemCd 문제로 인하여 삭제
  2936. /*
  2937. if(pageInfo.fstLevlItemCd != "")
  2938. {
  2939. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  2940. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  2941. }
  2942. if(pageInfo.fstLevlItemCd != "")
  2943. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  2944. */
  2945. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2946. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemnoNode.text + "']/supdegnitemno");
  2947. if(supdegnitemno != "" && supdegnitemno != "0")
  2948. condition = getSaveDataParent(supdegnitemno, condition);
  2949. if(condition != "")
  2950. copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2951. if(condAll == "")
  2952. condAll = condition;
  2953. else
  2954. {
  2955. if(condition != "")
  2956. condAll += " or " + condition;
  2957. }
  2958. }
  2959. condAll = "";
  2960. // 기존 코드
  2961. // grid 이외의 아이템을 pageInfo.savedInfoItemRef2 의 recitem노드 뒤에 이어서 복사한다.
  2962. //if(condition != "")
  2963. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  2964. getCheckSaveData(pageInfo);
  2965. if(getNodesetCnt(model, pageInfo.savedInfoItemRef2) > 0)
  2966. {
  2967. if(pageInfo.formCd != "")
  2968. {
  2969. var idx = getNodesetCnt(pmodel, targetPath) + 1;
  2970. pmodel.makeValue(targetPath + "[" + idx + "]/instcd", "");
  2971. pmodel.makeValue(targetPath + "[" + idx + "]/rechistseq", "");
  2972. pmodel.makeValue(targetPath + "[" + idx + "]/recitemno", "");
  2973. pmodel.makeValue(targetPath + "[" + idx + "]/fstlevlitemcd", pageInfo.fstLevlItemCd);
  2974. pmodel.makeValue(targetPath + "[" + idx + "]/formcd", pageInfo.formCd);
  2975. pmodel.makeValue(targetPath + "[" + idx + "]/formdegnseq", pageInfo.formDegnSeq);
  2976. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemno", pageInfo.degnItemNo);
  2977. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemcd", pageInfo.degnItemCd);
  2978. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemkind", pageInfo.degnitemkind);
  2979. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlno", pageInfo.degnitemlevlno);
  2980. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemnm", pageInfo.degnitemnm);
  2981. pmodel.makeValue(targetPath + "[" + idx + "]/rectermnm", pageInfo.rectermnm);
  2982. pmodel.makeValue(targetPath + "[" + idx + "]/degnitemlevlcd", pageInfo.degnItemLevlCd);
  2983. pmodel.makeValue(targetPath + "[" + idx + "]/rectermcd", "");
  2984. pmodel.makeValue(targetPath + "[" + idx + "]/recrefcd", "");
  2985. pmodel.makeValue(targetPath + "[" + idx + "]/recitemnm", "");
  2986. pmodel.makeValue(targetPath + "[" + idx + "]/reccnts", "");
  2987. pmodel.makeValue(targetPath + "[" + idx + "]/recimge", "");
  2988. pmodel.makeValue(targetPath + "[" + idx + "]/srcimge", "");
  2989. pmodel.makeValue(targetPath + "[" + idx + "]/rowno", "");
  2990. pmodel.makeValue(targetPath + "[" + idx + "]/colno", "");
  2991. }
  2992. // savedInfoItemRef2(/root/hidden/savedinfo/recitem) => /root/temp/sort/recinfo/recitem 으로 복사
  2993. copyNodeset(targetPath, pageInfo.savedInfoItemRef2, appendMode, pmodel, model);
  2994. }
  2995. }
  2996. /**
  2997. * @desc : 그리드의 저장할 기록정보를 가져온다
  2998. * @id :
  2999. * @event :
  3000. * @return :
  3001. * @authur : 이상현
  3002. */
  3003. function getGridSaveData_Old(pageInfo)
  3004. {
  3005. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // + "[degnitemkind = 'GRD']");
  3006. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3007. {
  3008. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3009. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3010. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3011. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3012. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3013. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3014. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3015. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3016. gridtype = "Y";
  3017. if(gridtype == "X")
  3018. {
  3019. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3020. if(len == 0)
  3021. {
  3022. continue;
  3023. }
  3024. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3025. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3026. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3027. // grdNode는 grid 컨트롤의 한 row 임.
  3028. colCnt = grdNode.selectNodes("recitem").length;
  3029. var grdClone = grdNode.cloneNode(true);
  3030. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3031. var subNode = subNodeList.item(0);
  3032. var degnitemnm = "";
  3033. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3034. {
  3035. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3036. var colno = subNode.selectSingleNode("colno").text;
  3037. if(colno == "-1") {
  3038. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3039. continue;
  3040. }
  3041. if(colno == "0") {
  3042. degnitemnm = subNode.selectSingleNode("reccnts").text;
  3043. continue;
  3044. }
  3045. var reccnts = subNode.selectSingleNode("reccnts").text;
  3046. if(reccnts != "")
  3047. {
  3048. subNode.selectSingleNode("degnitemnm").text = degnitemnm;
  3049. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3050. }
  3051. }
  3052. }
  3053. else if(gridtype == "Y" || gridtype == "G")
  3054. {
  3055. // 그리드 개수
  3056. var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3057. if(len == 0)
  3058. {
  3059. continue;
  3060. }
  3061. // grdClone은 <grid> 의 row 하나를 뜻함.
  3062. var grdClone = grdNode.cloneNode(true);
  3063. var subNodeList = grdClone.selectNodes("recitem");
  3064. var subNode = subNodeList.item(0);
  3065. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3066. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3067. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3068. if(pageInfo.fstLevlItemCd != "")
  3069. {
  3070. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  3071. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  3072. }
  3073. if(pageInfo.fstLevlItemCd != "")
  3074. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3075. for(var subIdx = 1 ; subIdx < subNodeList.length; subIdx++)
  3076. {
  3077. var subNode = subNodeList.item(subIdx);
  3078. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3079. var subcntsNode = subNode.selectSingleNode("reccnts");
  3080. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3081. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3082. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3083. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3084. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3085. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3086. if(subkindNode.text == "GSL")
  3087. {
  3088. grdClone.removeChild(subNode);
  3089. continue;
  3090. }
  3091. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  3092. {
  3093. grdClone.removeChild(subNode);
  3094. continue;
  3095. }
  3096. if(pageInfo.fstLevlItemCd != "")
  3097. {
  3098. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3099. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3100. }
  3101. if(pageInfo.fstLevlItemCd != "")
  3102. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3103. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3104. }
  3105. }
  3106. else if(gridtype == "T")
  3107. {
  3108. //값을 갖지 않는 grid row는 제거한다.
  3109. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3110. if(len == 0)
  3111. {
  3112. continue;
  3113. }
  3114. var grdClone = grdNode.cloneNode(true);
  3115. var subNodeList = grdClone.selectNodes("recitem");
  3116. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3117. // 공통서식에서 최상위아이템을 찾도록 fstlevlitemcd를 설정한다.
  3118. var subNode = subNodeList.item(0);
  3119. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3120. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3121. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3122. if(pageInfo.fstLevlItemCd != "")
  3123. {
  3124. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  3125. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  3126. }
  3127. if(pageInfo.fstLevlItemCd != "")
  3128. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3129. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3130. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3131. {
  3132. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3133. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3134. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3135. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3136. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3137. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3138. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3139. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3140. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3141. if(subkindNode.text == "GSL")
  3142. {
  3143. grdClone.removeChild(subNode);
  3144. continue;
  3145. }
  3146. if(gridtype == "T")
  3147. {
  3148. //축에 있는 값은 제거한다.
  3149. //var subKindNode = subNode.selectSingleNode("degnitemkind");
  3150. if(subkindNode.text == "GXB" || subkindNode.text == "GYB")
  3151. {
  3152. subReccntsNode = subNode.selectSingleNode("reccnts");
  3153. subReccntsNode.text = "";
  3154. subRectermcdNode = subNode.selectSingleNode("rectermcd");
  3155. subRectermcdNode.text = "";
  3156. }
  3157. }
  3158. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  3159. {
  3160. grdClone.removeChild(subNode); // 값이 없는 노드는 삭제함.
  3161. continue;
  3162. }
  3163. if(pageInfo.fstLevlItemCd != "")
  3164. {
  3165. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3166. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3167. }
  3168. if(pageInfo.fstLevlItemCd != "")
  3169. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3170. // this.savedInfoRef2 = "/root/hidden/savedinfo";
  3171. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3172. }
  3173. }
  3174. }
  3175. }
  3176. // /**
  3177. // * @desc : 그리드의 저장할 기록정보를 가져온다
  3178. // * @id :
  3179. // * @event :
  3180. // * @return :
  3181. // * @authur : 이상현
  3182. // * @history:
  3183. // 2008-11-28 이경희
  3184. // -그리드 저장시 셀에 입력된 값이 있으면 그리드 구조 통채로 저장하며, 입력된 값이 없으면 저장하지 않는다.
  3185. // - Y, G축 DGN, OPN, CCN 저장시 그리드 제목은 처음 하나만 저장되는 기존 구조를 따르면서 내용은 모두 저장하도록 수정
  3186. //
  3187. // 2010-03-24 주희경
  3188. // - 그리드 저장 시 값을 select 할 때 그리드 기록 데이터의 순서가 꼬인 구조로 되어 있어 그룹별로 기록 데이터를 copy하도록 수정
  3189. //
  3190. // 2010-04-14 김달현
  3191. // - 그리드의 degnitemno별로 모으는 작업 할 때에 indexOf제외조건 오류 수정
  3192. // */
  3193. // function getGridSaveData(pageInfo)
  3194. // {
  3195. // sysf_trace_emr("***** getGridSaveData("+pageInfo+") 그리드의 저장할 기록정보를 가져온다 EMRCommon *****");
  3196. //
  3197. // var tmpGrdList = this.objects[pageInfo.RecinfoGridRef];
  3198. // var tmpGrdListCnt = tmpGrdList == null ? 0 : tmpGrdList.rowcount;
  3199. // //var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // "/root/main/recinfo/grid";
  3200. // var groupKeys = "";
  3201. //
  3202. // for(var grdIdx = 0; grdIdx < tmpGrdListCnt; grdIdx++)
  3203. // {
  3204. // //var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3205. // var degnitemno = tmpGrdList.getColumn(grdIdx, "degnitemno");
  3206. // groupKeys = groupKeys + degnitemno + ",";
  3207. // }
  3208. // var arrGroupKey = groupKeys.split(",");
  3209. //
  3210. // //2010.04.22 dhkim 배열을 순서대로 정렬한다.(순서대로 정렬되어있지 않은 경우는 skip시키지 않아 정렬 로직 추가)
  3211. // if(arrGroupKey.length > 0){
  3212. // var tmp;
  3213. // for(var i = arrGroupKey.length; i >= 0; i--){
  3214. // for(var j = 0; j < i; j++){
  3215. // if(Number(arrGroupKey[j]) > Number(arrGroupKey[j+1])){
  3216. // tmp = arrGroupKey[j];
  3217. // arrGroupKey[j] = arrGroupKey[j+1];
  3218. // arrGroupKey[j+1] = tmp;
  3219. // }
  3220. // }
  3221. // }
  3222. //
  3223. // groupKeys = "";
  3224. // for(var i = 0; i < arrGroupKey.length; i++){
  3225. // if(arrGroupKey.length -1 == i){
  3226. // groupKeys += arrGroupKey[i];
  3227. // }else{
  3228. // groupKeys += arrGroupKey[i] + ",";
  3229. // }
  3230. // }
  3231. // }
  3232. //
  3233. // //2010.04.14 dhkim
  3234. // //(기존의 indexOf로 string을 검색했을 때 degnitemno가 중복된 경우의 처리가 불가능함)
  3235. // //ex) degnitemno가 7, 17, 27 등으로 들어가 있는 경우 indexOf에서 제외되어 7값만 가져가게됨.
  3236. // //루프를 돌면서 key값이 같은게 있으면 skip시키면서 새로운 array를 만들어준다.
  3237. // var tmpKey = ""; var _tmpKey;
  3238. // groupKeys = "";
  3239. // for(var x = 0; x < arrGroupKey.length ; x++){
  3240. //
  3241. // _tmpKey = arrGroupKey[x];
  3242. //
  3243. // if(tmpKey != _tmpKey){
  3244. // groupKeys = groupKeys + _tmpKey + ",";
  3245. // }
  3246. // tmpKey = _tmpKey;
  3247. // }
  3248. //
  3249. // arrGroupKey = groupKeys.split(",");
  3250. //
  3251. // sysf_trace_emr("jw.choe grd data 노드 체크후 처리 ");
  3252. // for (i=0; i<arrGroupKey.length-1; i++)
  3253. // {
  3254. //
  3255. // tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef+"[degnitemno='"+arrGroupKey[i]+"']"); // "/root/main/recinfo/grid";
  3256. //
  3257. // getGridData(pageInfo, tmpGrdList);
  3258. // }
  3259. // }
  3260. /**
  3261. * @desc : 그리드의 저장할 기록정보를 가져온다
  3262. * @id :
  3263. * @event :
  3264. * @return :
  3265. * @authur : 주희경
  3266. * @history:
  3267. 2010-03-24 주희경
  3268. - 그리드 저장 시 값을 select 할 때 그리드 기록 데이터의 순서가 꼬인 구조로 되어 있어 그룹별로 기록 데이터를 copy하도록 함수 분리
  3269. */
  3270. function getGridData(pageInfo, tmpGrdList)
  3271. {
  3272. var isGrd = false;
  3273. var tmpfstlevlitemcd = "";
  3274. var tmpdegnitemlevlcd = "";
  3275. var copycnt = 0;
  3276. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3277. {
  3278. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3279. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3280. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3281. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3282. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3283. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3284. var orgdegnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/orgdegnitemkind");
  3285. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3286. var fstlevlitemcd = grdNode.selectSingleNode("recitem/fstlevlitemcd").text;
  3287. if(tmpdegnitemlevlcd != degnitemlevlcd)
  3288. {
  3289. tmpdegnitemlevlcd = degnitemlevlcd;
  3290. isGrd = false;
  3291. }
  3292. // 진단명, 수술명, 주호소인 경우 그리드 타입은 Y축 누적
  3293. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3294. gridtype = "Y";
  3295. if(gridtype == "X")
  3296. {
  3297. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3298. if(len == 0)
  3299. {
  3300. continue;
  3301. }
  3302. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3303. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3304. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3305. // grdNode는 grid 컨트롤의 한 row 임.
  3306. colCnt = grdNode.selectNodes("recitem").length;
  3307. var grdClone = grdNode.cloneNode(true);
  3308. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3309. var subNode = subNodeList.item(0);
  3310. var degnitemnm = "";
  3311. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3312. {
  3313. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3314. // 2009.05.04 이경희
  3315. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3316. //
  3317. if(subNode.selectSingleNode("degnunitcd") == null)
  3318. {
  3319. var degnunitcdNode = instance1.createElement("degnunitcd");
  3320. subNode.appendChild(degnunitcdNode);
  3321. }
  3322. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3323. copycnt++;
  3324. }
  3325. }
  3326. else if(gridtype == "Y" || gridtype == "G")
  3327. {
  3328. // 입력된 그리드 개수가 있는지 체크
  3329. //var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3330. var len = 0;
  3331. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN" ||
  3332. orgdegnitemkind == "DGN" || orgdegnitemkind == "OPN" || orgdegnitemkind == "CCN")
  3333. {
  3334. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' or rectermnm != '') or reccnts != '')]").length;
  3335. }
  3336. else
  3337. {
  3338. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' and rectermnm != '') or reccnts != '')]").length;
  3339. }
  3340. 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;
  3341. if(len == 0 && tmllen > 0)
  3342. {
  3343. continue;
  3344. }
  3345. // grdClone은 <grid> 의 row 하나를 뜻함.
  3346. var grdClone = grdNode.cloneNode(true);
  3347. var subNodeList = grdClone.selectNodes("recitem[orgdegnitemkind != 'CCN' and orgdegnitemkind != 'DGN' and orgdegnitemkind != 'OPN'");
  3348. var subNode = subNodeList.item(0);
  3349. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3350. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3351. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3352. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3353. //2008-07-28 박종훈 (그리드의 GRD이름이 한번만 저장되게하기 위함, 처음 한번만 저장되고 그다음 row부터는 저장되지 않도록..)
  3354. var subIdx = 0;
  3355. if (isGrd)
  3356. {
  3357. subIdx = 1;
  3358. }
  3359. //for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3360. for(subIdx; subIdx < subNodeList.length; subIdx++)
  3361. {
  3362. var subNode = subNodeList.item(subIdx);
  3363. if (subNode.selectSingleNode("degnitemkind").text != "GRD" && subNode.selectSingleNode("rectermcd").text == "" && subNode.selectSingleNode("rectermnm").text == "" && subNode.selectSingleNode("reccnts").text == "")
  3364. {
  3365. }
  3366. else
  3367. {
  3368. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3369. var subcntsNode = subNode.selectSingleNode("reccnts");
  3370. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3371. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3372. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3373. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3374. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3375. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3376. var orgdegnitemkind = subNode.selectSingleNode("orgdegnitemkind");
  3377. var rownoNode = subNode.selectSingleNode("rowno");
  3378. var colnoNode = subNode.selectSingleNode("colno");
  3379. //다음 노드의 colno를 알기 위한 임시 노드 리스트(2008-07-28 박종훈)
  3380. //colno가 -1일 경우에만 GRD요소
  3381. var subNodeTmp = subNodeList.item(subIdx + 1);
  3382. if(subNodeTmp != null)
  3383. {
  3384. var tmpcolno = parseInt(subNodeTmp.selectSingleNode("colno").text);
  3385. var tmprowno = parseInt(subNodeTmp.selectSingleNode("rowno").text);
  3386. }
  3387. //////////////////////////////////////////////////////////////////
  3388. // 2009.05.04 이경희
  3389. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3390. //
  3391. if(subNode.selectSingleNode("degnunitcd") == null)
  3392. {
  3393. var degnunitcdNode = instance1.createElement("degnunitcd");
  3394. subNode.appendChild(degnunitcdNode);
  3395. }
  3396. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3397. copycnt++;
  3398. if(tmpcolno == -1 && tmprowno == 0)
  3399. {
  3400. isGrd = false;
  3401. }
  3402. else
  3403. {
  3404. isGrd = true;
  3405. }
  3406. }
  3407. }
  3408. }
  3409. else if(gridtype == "T")
  3410. {
  3411. //값을 갖지 않는 grid row는 제거한다.
  3412. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3413. if(len == 0)
  3414. {
  3415. continue;
  3416. }
  3417. var grdClone = grdNode.cloneNode(true);
  3418. var subNodeList = grdClone.selectNodes("recitem");
  3419. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3420. {
  3421. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3422. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3423. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3424. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3425. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3426. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3427. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3428. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3429. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3430. if(subkindNode.text == "GSL")
  3431. {
  3432. grdClone.removeChild(subNode);
  3433. continue;
  3434. }
  3435. // 2009.05.04 이경희
  3436. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3437. //
  3438. if(subNode.selectSingleNode("degnunitcd") == null)
  3439. {
  3440. var degnunitcdNode = instance1.createElement("degnunitcd");
  3441. subNode.appendChild(degnunitcdNode);
  3442. }
  3443. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3444. copycnt++;
  3445. }
  3446. }
  3447. }
  3448. return copycnt;
  3449. }
  3450. /**
  3451. * @desc : 그리드의 저장할 기록정보를 가져온다
  3452. * @id :
  3453. * @event :
  3454. * @return :
  3455. * @authur : 이상현
  3456. * @history:
  3457. 2008-11-28 이경희
  3458. -그리드 저장시 셀에 입력된 값이 있으면 그리드 구조 통채로 저장하며, 입력된 값이 없으면 저장하지 않는다.
  3459. - Y, G축 DGN, OPN, CCN 저장시 그리드 제목은 처음 하나만 저장되는 기존 구조를 따르면서 내용은 모두 저장하도록 수정
  3460. */
  3461. function getGridSaveData_old_20100324(pageInfo)
  3462. {
  3463. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // "/root/main/recinfo/grid";
  3464. var isGrd = false;
  3465. var tmpfstlevlitemcd = "";
  3466. var tmpdegnitemlevlcd = "";
  3467. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3468. {
  3469. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3470. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3471. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3472. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3473. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3474. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3475. var orgdegnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/orgdegnitemkind");
  3476. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3477. var fstlevlitemcd = grdNode.selectSingleNode("recitem/fstlevlitemcd").text;
  3478. if(tmpdegnitemlevlcd != degnitemlevlcd)
  3479. {
  3480. tmpdegnitemlevlcd = degnitemlevlcd;
  3481. isGrd = false;
  3482. }
  3483. // 진단명, 수술명, 주호소인 경우 그리드 타입은 Y축 누적
  3484. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3485. gridtype = "Y";
  3486. if(gridtype == "X")
  3487. {
  3488. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3489. if(len == 0)
  3490. {
  3491. continue;
  3492. }
  3493. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3494. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3495. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3496. // grdNode는 grid 컨트롤의 한 row 임.
  3497. colCnt = grdNode.selectNodes("recitem").length;
  3498. var grdClone = grdNode.cloneNode(true);
  3499. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3500. var subNode = subNodeList.item(0);
  3501. var degnitemnm = "";
  3502. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3503. {
  3504. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3505. // 2009.05.04 이경희
  3506. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3507. //
  3508. if(subNode.selectSingleNode("degnunitcd") == null)
  3509. {
  3510. var degnunitcdNode = instance1.createElement("degnunitcd");
  3511. subNode.appendChild(degnunitcdNode);
  3512. }
  3513. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3514. }
  3515. }
  3516. else if(gridtype == "Y" || gridtype == "G")
  3517. {
  3518. // 입력된 그리드 개수가 있는지 체크
  3519. //var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3520. var len = 0;
  3521. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN" ||
  3522. orgdegnitemkind == "DGN" || orgdegnitemkind == "OPN" || orgdegnitemkind == "CCN")
  3523. {
  3524. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' or rectermnm != '') or reccnts != '')]").length;
  3525. }
  3526. else
  3527. {
  3528. len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and ((rectermcd != '' and rectermnm != '') or reccnts != '')]").length;
  3529. }
  3530. 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;
  3531. if(len == 0 && tmllen > 0)
  3532. {
  3533. continue;
  3534. }
  3535. // grdClone은 <grid> 의 row 하나를 뜻함.
  3536. var grdClone = grdNode.cloneNode(true);
  3537. var subNodeList = grdClone.selectNodes("recitem[orgdegnitemkind != 'CCN' and orgdegnitemkind != 'DGN' and orgdegnitemkind != 'OPN'");
  3538. var subNode = subNodeList.item(0);
  3539. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3540. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3541. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3542. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3543. //2008-07-28 박종훈 (그리드의 GRD이름이 한번만 저장되게하기 위함, 처음 한번만 저장되고 그다음 row부터는 저장되지 않도록..)
  3544. var subIdx = 0;
  3545. if (isGrd)
  3546. {
  3547. subIdx = 1;
  3548. }
  3549. //for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3550. for(subIdx; subIdx < subNodeList.length; subIdx++)
  3551. {
  3552. var subNode = subNodeList.item(subIdx);
  3553. if (subNode.selectSingleNode("degnitemkind").text != "GRD" && subNode.selectSingleNode("rectermcd").text == "" && subNode.selectSingleNode("rectermnm").text == "" && subNode.selectSingleNode("reccnts").text == "")
  3554. {
  3555. }
  3556. else
  3557. {
  3558. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3559. var subcntsNode = subNode.selectSingleNode("reccnts");
  3560. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3561. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3562. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3563. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3564. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3565. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3566. var orgdegnitemkind = subNode.selectSingleNode("orgdegnitemkind");
  3567. var rownoNode = subNode.selectSingleNode("rowno");
  3568. var colnoNode = subNode.selectSingleNode("colno");
  3569. //다음 노드의 colno를 알기 위한 임시 노드 리스트(2008-07-28 박종훈)
  3570. //colno가 -1일 경우에만 GRD요소
  3571. var subNodeTmp = subNodeList.item(subIdx + 1);
  3572. if(subNodeTmp != null)
  3573. {
  3574. var tmpcolno = parseInt(subNodeTmp.selectSingleNode("colno").text);
  3575. var tmprowno = parseInt(subNodeTmp.selectSingleNode("rowno").text);
  3576. }
  3577. //////////////////////////////////////////////////////////////////
  3578. // 2009.05.04 이경희
  3579. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3580. //
  3581. if(subNode.selectSingleNode("degnunitcd") == null)
  3582. {
  3583. var degnunitcdNode = instance1.createElement("degnunitcd");
  3584. subNode.appendChild(degnunitcdNode);
  3585. }
  3586. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3587. if(tmpcolno == -1 && tmprowno == 0)
  3588. {
  3589. isGrd = false;
  3590. }
  3591. else
  3592. {
  3593. isGrd = true;
  3594. }
  3595. }
  3596. }
  3597. }
  3598. else if(gridtype == "T")
  3599. {
  3600. //값을 갖지 않는 grid row는 제거한다.
  3601. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3602. if(len == 0)
  3603. {
  3604. continue;
  3605. }
  3606. var grdClone = grdNode.cloneNode(true);
  3607. var subNodeList = grdClone.selectNodes("recitem");
  3608. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3609. {
  3610. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3611. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3612. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3613. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3614. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3615. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3616. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3617. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3618. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3619. if(subkindNode.text == "GSL")
  3620. {
  3621. grdClone.removeChild(subNode);
  3622. continue;
  3623. }
  3624. // 2009.05.04 이경희
  3625. // 그리드가 들어간 서식에서 그리드데이터 입력 후 단위를 포함한 일반아이템 기록시 단위가 밀리는 문제가 생기는 현상 수정
  3626. //
  3627. if(subNode.selectSingleNode("degnunitcd") == null)
  3628. {
  3629. var degnunitcdNode = instance1.createElement("degnunitcd");
  3630. subNode.appendChild(degnunitcdNode);
  3631. }
  3632. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3633. }
  3634. }
  3635. }
  3636. }
  3637. function getGridSaveData_old(pageInfo)
  3638. {
  3639. // "/root/main/recinfo/grid";
  3640. var tmpGrdList = model.instances(0).selectNodes(pageInfo.RecinfoGridRef); // + "[degnitemkind = 'GRD']");
  3641. var isGrd = false;
  3642. var tmpfstlevlitemcd = "";
  3643. var tmpdegnitemlevlcd = "";
  3644. for(var grdIdx = 0; grdIdx < tmpGrdList.length; grdIdx++)
  3645. {
  3646. var grdNode = tmpGrdList.item(grdIdx); // grid 리스트중에 grid 를 하나씩 가져온다.
  3647. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3648. var degnitemnm = grdNode.selectSingleNode("recitem/degnitemnm").text;
  3649. var rowno = parseInt(grdNode.selectSingleNode("recitem/rowno").text);
  3650. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/itemattrval"), "gridtype");
  3651. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + grdNode.selectSingleNode("recitem/degnitemno").text + "']/degnitemkind");
  3652. var degnitemlevlcd = grdNode.selectSingleNode("recitem/degnitemlevlcd").text;
  3653. var fstlevlitemcd = grdNode.selectSingleNode("recitem/fstlevlitemcd").text;
  3654. //그리드가 바뀔때 첫번째 GRD항목의 명칭을 저장하기 위한 처리
  3655. /*
  3656. if(tmpfstlevlitemcd != fstlevlitemcd)
  3657. {
  3658. tmpfstlevlitemcd = fstlevlitemcd;
  3659. isGrd = false;
  3660. }
  3661. */
  3662. if(tmpdegnitemlevlcd != degnitemlevlcd)
  3663. {
  3664. tmpdegnitemlevlcd = degnitemlevlcd;
  3665. isGrd = false;
  3666. }
  3667. if(degnitemkind == "DGN" || degnitemkind == "OPN" || degnitemkind == "CCN")
  3668. gridtype = "Y";
  3669. if(gridtype == "X")
  3670. {
  3671. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3672. if(len == 0)
  3673. {
  3674. continue;
  3675. }
  3676. var degnitemno = grdNode.selectSingleNode("recitem/degnitemno").text;
  3677. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  3678. var GrdNodeList = instance1.selectSingleNode(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  3679. // grdNode는 grid 컨트롤의 한 row 임.
  3680. colCnt = grdNode.selectNodes("recitem").length;
  3681. var grdClone = grdNode.cloneNode(true);
  3682. var subNodeList = grdClone.selectNodes("recitem"); // recitem 리스트노드
  3683. var subNode = subNodeList.item(0);
  3684. var degnitemnm = "";
  3685. for(var colIdx = 0; colIdx < colCnt; colIdx++)
  3686. {
  3687. var subNode = subNodeList.item(colIdx); // 첫번째 recitem 노드 선택
  3688. var colno = subNode.selectSingleNode("colno").text;
  3689. if(colno == "-1") {
  3690. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3691. continue;
  3692. }
  3693. if(colno == "0") {
  3694. degnitemnm = subNode.selectSingleNode("reccnts").text;
  3695. continue;
  3696. }
  3697. var reccnts = subNode.selectSingleNode("reccnts").text;
  3698. if(reccnts != "")
  3699. {
  3700. subNode.selectSingleNode("degnitemnm").text = degnitemnm;
  3701. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3702. }
  3703. }
  3704. }
  3705. else if(gridtype == "Y" || gridtype == "G")
  3706. {
  3707. // 그리드 개수
  3708. var len = grdNode.selectNodes("recitem[degnitemkind != 'GSL' and degnitemkind != 'GXB' and degnitemkind != 'GYB' and (rectermcd != '' or reccnts != '' or recrefcd != '' or recitemnm != '')]").length;
  3709. if(len == 0)
  3710. {
  3711. continue;
  3712. }
  3713. // grdClone은 <grid> 의 row 하나를 뜻함.
  3714. var grdClone = grdNode.cloneNode(true);
  3715. var subNodeList = grdClone.selectNodes("recitem[orgdegnitemkind != 'CCN' and orgdegnitemkind != 'DGN' and orgdegnitemkind != 'OPN'");
  3716. var subNode = subNodeList.item(0);
  3717. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3718. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3719. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3720. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3721. // 2008-007-16 이경희
  3722. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3723. /*
  3724. if(pageInfo.fstLevlItemCd != "")
  3725. {
  3726. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  3727. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  3728. }
  3729. if(pageInfo.fstLevlItemCd != "")
  3730. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3731. */
  3732. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3733. //2008-07-28 박종훈 (그리드의 GRD이름이 한번만 저장되게하기 위함, 처음 한번만 저장되고 그다음 row부터는 저장되지 않도록..)
  3734. var subIdx = 0;
  3735. if (isGrd)
  3736. {
  3737. subIdx = 1;
  3738. }
  3739. //for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3740. for(subIdx; subIdx < subNodeList.length; subIdx++)
  3741. {
  3742. var subNode = subNodeList.item(subIdx);
  3743. var subkindNode = subNode.selectSingleNode("degnitemkind");
  3744. var subcntsNode = subNode.selectSingleNode("reccnts");
  3745. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3746. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3747. var subtermcdNode = subNode.selectSingleNode("rectermcd");
  3748. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3749. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3750. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3751. var orgdegnitemkind = subNode.selectSingleNode("orgdegnitemkind");
  3752. var rownoNode = subNode.selectSingleNode("rowno");
  3753. var colnoNode = subNode.selectSingleNode("colno");
  3754. //다음 노드의 colno를 알기 위한 임시 노드 리스트(2008-07-28 박종훈)
  3755. //colno가 -1일 경우에만 GRD요소
  3756. var subNodeTmp = subNodeList.item(subIdx + 1);
  3757. if(subNodeTmp != null)
  3758. {
  3759. var tmpcolno = parseInt(subNodeTmp.selectSingleNode("colno").text);
  3760. var tmprowno = parseInt(subNodeTmp.selectSingleNode("rowno").text);
  3761. }
  3762. //////////////////////////////////////////////////////////////////
  3763. if(subkindNode.text == "GSL")
  3764. {
  3765. grdClone.removeChild(subNode);
  3766. continue;
  3767. }
  3768. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  3769. {
  3770. if(colnoNode.text != 0)
  3771. {
  3772. grdClone.removeChild(subNode);
  3773. continue;
  3774. }
  3775. }
  3776. if(orgdegnitemkind != null && orgdegnitemkind.length > 0 && (subkindNode.text == "CCN" || subkindNode.text == "DGN" || subkindNode.text == "OPN"))
  3777. {
  3778. grdClone.removeChild(subNode);
  3779. continue;
  3780. }
  3781. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3782. // 2008-007-16 이경희
  3783. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3784. /*
  3785. if(pageInfo.fstLevlItemCd != "")
  3786. {
  3787. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3788. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3789. }
  3790. if(pageInfo.fstLevlItemCd != "")
  3791. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3792. */
  3793. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3794. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3795. if(tmpcolno == -1 && tmprowno == 0)
  3796. {
  3797. isGrd = false;
  3798. }
  3799. else
  3800. {
  3801. isGrd = true;
  3802. }
  3803. }
  3804. }
  3805. else if(gridtype == "T")
  3806. {
  3807. //값을 갖지 않는 grid row는 제거한다.
  3808. var len = grdNode.selectNodes("recitem[degnitemkind = 'GSU' and (rectermcd != '' or reccnts != '')]").length;
  3809. if(len == 0)
  3810. {
  3811. continue;
  3812. }
  3813. var grdClone = grdNode.cloneNode(true);
  3814. var subNodeList = grdClone.selectNodes("recitem");
  3815. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3816. // 공통서식에서 최상위아이템을 찾도록 fstlevlitemcd를 설정한다.
  3817. // 2008-007-16 이경희
  3818. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3819. /*
  3820. var subNode = subNodeList.item(0);
  3821. var fstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3822. var levlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3823. var levlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3824. if(pageInfo.fstLevlItemCd != "")
  3825. {
  3826. levlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + levlcdNode.text;
  3827. levlnoNode.text = parseInt(levlnoNode.text) + 1;
  3828. }
  3829. if(pageInfo.fstLevlItemCd != "")
  3830. fstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3831. */
  3832. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3833. for(var subIdx = 0 ; subIdx < subNodeList.length; subIdx++)
  3834. {
  3835. var subNode = subNodeList.item(subIdx); // 한 컬럼값(뒤에서부터)
  3836. var subkindNode = subNode.selectSingleNode("degnitemkind"); // subNode에서 degnitemkind 값
  3837. var subcntsNode = subNode.selectSingleNode("reccnts"); // subNode에서 reccnts 값
  3838. var subtermcdNode = subNode.selectSingleNode("rectermcd"); // subNode에서 rectermcd 값
  3839. var subrecrefcdNode = subNode.selectSingleNode("recrefcd");
  3840. var subrecitemnmNode = subNode.selectSingleNode("recitemnm");
  3841. var subfstlevlcdNode = subNode.selectSingleNode("fstlevlitemcd");
  3842. var sublevlcdNode = subNode.selectSingleNode("degnitemlevlcd");
  3843. var sublevlnoNode = subNode.selectSingleNode("degnitemlevlno");
  3844. if(subkindNode.text == "GSL")
  3845. {
  3846. grdClone.removeChild(subNode);
  3847. continue;
  3848. }
  3849. if(gridtype == "T")
  3850. {
  3851. //축에 있는 값은 제거한다.
  3852. //var subKindNode = subNode.selectSingleNode("degnitemkind");
  3853. if(subkindNode.text == "GXB" || subkindNode.text == "GYB")
  3854. {
  3855. subReccntsNode = subNode.selectSingleNode("reccnts");
  3856. subReccntsNode.text = "";
  3857. subRectermcdNode = subNode.selectSingleNode("rectermcd");
  3858. subRectermcdNode.text = "";
  3859. }
  3860. }
  3861. if(subkindNode.text == "GSU" && subcntsNode.text == "" && subtermcdNode.text == "")
  3862. {
  3863. grdClone.removeChild(subNode); // 값이 없는 노드는 삭제함.
  3864. continue;
  3865. }
  3866. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3867. // 2008-007-16 이경희
  3868. // fstLevlItemCd 를 저장시에 설정할때 문제로 인하여 삭제
  3869. /*
  3870. if(pageInfo.fstLevlItemCd != "")
  3871. {
  3872. sublevlcdNode.text = pageInfo.fstLevlItemCd.substr(0, 7) + "." + sublevlcdNode.text;
  3873. sublevlnoNode.text = parseInt(levlnoNode.text) + 1;
  3874. }
  3875. if(pageInfo.fstLevlItemCd != "")
  3876. subfstlevlcdNode.text = pageInfo.fstLevlItemCd;
  3877. */
  3878. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3879. // this.savedInfoRef2 = "/root/hidden/savedinfo";
  3880. model.duplicate(pageInfo.savedInfoRef2, subNode);
  3881. }
  3882. }
  3883. }
  3884. }
  3885. /**
  3886. * @desc : 체크박스 기록 데이터를 가져온다
  3887. * @id :
  3888. * @event :
  3889. * @return :
  3890. * @authur : 이상현
  3891. */
  3892. function getCheckSaveData(pageInfo)
  3893. {
  3894. sysf_trace_emr("***** getCheckSaveData("+pageInfo+") *****");
  3895. var filterStr = "degnitemkind == 'CHK'";
  3896. var chkListCnt = this.objects["ds_hidden_savedinfo_recitem"]==null ? 0 : (this.objects["ds_hidden_savedinfo_recitem"]).getCaseCount(filterStr);//pageInfo.savedInfoItemRef2
  3897. // filterDs 복사
  3898. if( chkListCnt > 0 ) {
  3899. dsf_createDs("tmp_chkList");
  3900. var savedInfoItemRef2Ds = this.objects[pageInfo.savedInfoItemRef2];
  3901. savedInfoItemRef2Ds.filter(filterStr);
  3902. tmp_chkList.copyData(savedInfoItemRef2Ds, true);
  3903. savedInfoItemRef2Ds.filter("");
  3904. }
  3905. sysf_trace_emr("jw.choe 현재 변환 화면에서 chk 가 없으므로 차후 변경 EMRCommon ");
  3906. // end
  3907. var colCnt;
  3908. //for(var chkIdx = 0; chkIdx < chkList.length; chkIdx++)
  3909. for(var chkIdx = chkListCnt - 1; chkIdx >= 0; chkIdx--)
  3910. {
  3911. var chkNode = chkList.item(chkIdx);
  3912. var degnitemno = chkNode.selectSingleNode("degnitemno").text;
  3913. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  3914. var rectermcd = chkNode.selectSingleNode("rectermcd").text;
  3915. var rectermnm = chkNode.selectSingleNode("rectermnm").text;
  3916. if(rectermcd == "")
  3917. continue;
  3918. //var condition = getSaveDataParent(supdegnitemno, "");
  3919. //alert(condition);
  3920. //if(condition != "")
  3921. // copyNodeset(pageInfo.savedInfoItemRef2, gPrePath_recItemRef + condition + "]", "append", model, model);
  3922. var arrTermcd = rectermcd.split(" ");
  3923. // CHK 아이템 정렬 문제 수정 setsrchdata, getCheckSaveData
  3924. //var arrTermnm = rectermnm.split(" ");
  3925. var arrTermnm = rectermnm.split("▦");
  3926. for(var i = 0; i < arrTermcd.length; i++)
  3927. {
  3928. var tmpNode = chkNode.cloneNode(true);
  3929. tmpNode.selectSingleNode("rectermcd").text = arrTermcd[i];
  3930. tmpNode.selectSingleNode("rectermnm").text = arrTermnm[i];
  3931. tmpNode.selectSingleNode("colno").text = i;
  3932. //model.duplicate(pageInfo.savedInfoRef2, tmpNode);
  3933. chkNode.parentNode.insertBefore(tmpNode, chkNode);
  3934. }
  3935. chkNode.parentNode.removeChild(chkNode);
  3936. }
  3937. }
  3938. var condAll = "";
  3939. /**
  3940. * @desc : 저장할 항목의 상위 정보를 가져온다
  3941. * @id :
  3942. * @event :
  3943. * @return :
  3944. * @authur : 이상현
  3945. */
  3946. function getSaveDataParent(degnitemno, condition)
  3947. {
  3948. var srchno = "'" + degnitemno + "'";
  3949. if(!isSearchString(condition, srchno) && !isSearchString(condAll, srchno))
  3950. {
  3951. if(condition == "")
  3952. condition = "degnitemno = '" + degnitemno + "'";
  3953. else
  3954. condition += " or degnitemno = '" + degnitemno + "'";
  3955. }
  3956. var pageInfo = new PAGEINFO();
  3957. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  3958. if(supdegnitemno != "" && supdegnitemno != "0")
  3959. {
  3960. //var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + supdegnitemno + "']/degnitemkind");
  3961. //if(degnitemkind != "GRD")
  3962. condition = getSaveDataParent(supdegnitemno, condition);
  3963. if(condAll == "")
  3964. condAll = condition;
  3965. else
  3966. condAll += " or " + condition;
  3967. }
  3968. return condition;
  3969. /*if(!isSearchString(condition, degnitemno))
  3970. {
  3971. if(condition == "")
  3972. condition = "degnitemno = '" + degnitemno + "'";
  3973. else
  3974. condition += " or degnitemno = '" + degnitemno + "'";
  3975. }
  3976. var pageInfo = new PAGEINFO();
  3977. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  3978. if(supdegnitemno != "" && supdegnitemno != "0")
  3979. {
  3980. //var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + supdegnitemno + "']/degnitemkind");
  3981. //if(degnitemkind != "GRD")
  3982. condition = getSaveDataParent(supdegnitemno, condition);
  3983. }
  3984. return condition;*/
  3985. }
  3986. /**
  3987. * @desc : 디자인아이템순번으로 인스턴스 연결
  3988. * @id :
  3989. * @event :
  3990. * @return :
  3991. * @authur : 이상현
  3992. */
  3993. function makeRefByDegnitemno()
  3994. {
  3995. sysf_trace_emr("***** EMRCommon makeRefByDegnitemno() *****");
  3996. var pageInfo = new PAGEINFO();
  3997. makeInstance(pageInfo);
  3998. /*
  3999. for(var i = 0; i < document.controls.length; i++)
  4000. {
  4001. var ctrl = document.controls.item(i);
  4002. var ctrltype = ctrl.elementName;
  4003. var degnitemno = ctrl.attribute("degnitemno");
  4004. //alert("degnitemno : " + degnitemno);
  4005. if(degnitemno == "")
  4006. continue;
  4007. var refitem = ctrl.attribute("refitem");
  4008. if(refitem == "")
  4009. {
  4010. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  4011. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/reccnts";
  4012. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  4013. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd";
  4014. //else if(ctrltype == "xforms:datagrid")
  4015. // ctrl.attribute("nodeset") = pageInfo.grdNodeset + "[@grupcd='" + valgrupcd + "']";
  4016. //alert("ctrl.ref : " + ctrl.attribute("ref"));
  4017. } else {
  4018. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  4019. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermnm";
  4020. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  4021. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/rectermcd";
  4022. }
  4023. ctrl.refresh();
  4024. }
  4025. */
  4026. }
  4027. /**
  4028. * @desc : 디자인계층코드로 인스턴스 연결
  4029. * @id :
  4030. * @event :
  4031. * @return :
  4032. * @authur : 박종훈
  4033. */
  4034. function makeRefByDegnitemLevlCd()
  4035. {
  4036. var pageInfo = new PAGEINFO();
  4037. makeInstance(pageInfo);
  4038. for(var i = 0; i < document.controls.length; i++)
  4039. {
  4040. var ctrl = document.controls.item(i);
  4041. var ctrltype = ctrl.elementName;
  4042. var degnitemlevlcd = ctrl.attribute("degnitemlevlcd");
  4043. //alert("degnitemno : " + degnitemno);
  4044. if(degnitemlevlcd == "")
  4045. continue;
  4046. var refitem = ctrl.attribute("refitem");
  4047. if(refitem == "")
  4048. {
  4049. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  4050. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/reccnts";
  4051. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  4052. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd";
  4053. //else if(ctrltype == "xforms:datagrid")
  4054. // ctrl.attribute("nodeset") = pageInfo.grdNodeset + "[@grupcd='" + valgrupcd + "']";
  4055. //alert("ctrl.ref : " + ctrl.attribute("ref"));
  4056. } else {
  4057. if(ctrltype == "xforms:input" || ctrltype == "xforms:textarea")
  4058. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/rectermnm";
  4059. else if(ctrltype == "xforms:select1" || ctrltype == "xforms:select")
  4060. ctrl.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + degnitemlevlcd + "']/rectermcd";
  4061. }
  4062. ctrl.refresh();
  4063. }
  4064. }
  4065. var g_maxdegnitemno;
  4066. /**
  4067. * @desc : 인스턴스 생성
  4068. * @id :
  4069. * @event :
  4070. * @return :
  4071. * @authur : 이상현
  4072. * @history: 2008/04/17 이경희 - 서식디자인에서 아이템 기본값 입력 후 캘린더에 값 적용이 안되는 문제 수정 CAL 조건 추가
  4073. 2008-10-28 이경희 - 서식디자인에서 아이템 기본값으로 설정된 기록을 CMB등의 아이템을 기본으로 저장시 뷰어에서
  4074. 보이지 않는 문제점이 있어서, rectermnm 노드값을 추가.
  4075. */
  4076. var g_arrMslDefVal = "";
  4077. var g_arrImgDefVal = "";
  4078. function makeInstance(pageInfo, bInit)
  4079. {
  4080. sysf_trace_emr("***** EMRCommon makeInstance("+pageInfo+", "+bInit+") 인스턴스 생성 *****");
  4081. if(utlf_isNull(pageInfo))
  4082. pageInfo = new PAGEINFO();
  4083. if(utlf_isNull(bInit))
  4084. bInit = true;
  4085. g_maxdegnitemno = ds_data_formdegn.getCaseMax("degnitemno > 0", "degnitemno");
  4086. sysf_trace_emr("@@@@ g_maxdegnitemno : " + g_maxdegnitemno );
  4087. var itemcnt = ds_data_formdegn.rowcount;
  4088. var reccnt = ds_data_recitem.rowcount;
  4089. var diff = 0;
  4090. var idxdiff = 0;
  4091. var selIdx = 0;
  4092. for(var idx = 0; idx < itemcnt; idx++)
  4093. {
  4094. var recMastRefDs = ds_data_formrec;
  4095. var formmastRefDs = ds_data_formmast;
  4096. var formdegnRefDs = ds_data_formdegn;
  4097. var rechistseq = recMastRefDs.getColumn(0, "rechistseq");
  4098. var formcd = formmastRefDs.getColumn(0, "formcd");
  4099. var formdegnseq = formmastRefDs.getColumn(0, "formdegnseq");
  4100. var degnitemno = formdegnRefDs.getColumn(idx, "degnitemno");
  4101. var degnitemkind = formdegnRefDs.getColumn(idx, "degnitemkind");
  4102. var degnitemcd = formdegnRefDs.getColumn(idx, "degnitemcd");
  4103. var supdegnitemno = formdegnRefDs.getColumn(idx, "supdegnitemno");
  4104. var supdegnitemkind = formdegnRefDs.lookup("degnitemno", supdegnitemno, "degnitemkind");
  4105. var degnitemlevlno = formdegnRefDs.getColumn(idx, "degnitemlevlno");
  4106. var degnitemnm = formdegnRefDs.getColumn(idx, "degnitemnm");
  4107. var degnitemdefltval = formdegnRefDs.getColumn(idx, "degnitemdefltval");
  4108. var unitcd = formdegnRefDs.getColumn(idx, "unitcd");
  4109. var unitnm = formdegnRefDs.getColumn(idx, "unitnm");
  4110. var valgrupcd = formdegnRefDs.getColumn(idx, "valgrupcd");
  4111. /*
  4112. // MSL, IMG의 경우 아이템기본값 처리 루틴 추가
  4113. // 수정자: 이경희
  4114. // 수정일: 2008.04.18
  4115. */
  4116. if(degnitemkind == "MSL" && !utlf_isNull(degnitemdefltval)) //0000903001 0000985001
  4117. {
  4118. g_arrMslDefVal = degnitemdefltval.split(" ");
  4119. }
  4120. if(degnitemkind == "IMG" && !utlf_isNull(degnitemdefltval)) //0012574001 0012679001
  4121. {
  4122. g_arrImgDefVal = degnitemdefltval.split(" ");
  4123. }
  4124. if(degnitemkind == "MSL" || supdegnitemkind == "SSL" && degnitemkind == "SSU")
  4125. {
  4126. if(degnitemkind == "MSL")
  4127. selIdx = 0;
  4128. diff++;
  4129. continue;
  4130. }
  4131. if(supdegnitemkind == "MSL" && degnitemkind == "SSU")
  4132. {
  4133. var MslDefVal = "";
  4134. var termcd = formdegnRefDs.getColumn(idx, "termcd");
  4135. var i = 0;
  4136. var DataSet = 0; // 아이템 기본값 설정 여부 확인 변수
  4137. while(i < g_arrMslDefVal.length)
  4138. {
  4139. // 전역 변수(g_MslDefVal) 의 값을 비교
  4140. MslDefVal = g_arrMslDefVal[i];
  4141. if(MslDefVal == termcd)
  4142. {
  4143. //alert("g_arrMslDefVal[" + i + "]: " + MslDefVal);
  4144. //alert("rectermnm:" + degnitemnm);
  4145. makeSubSelectInstance(pageInfo, supdegnitemno, selIdx++, degnitemnm, MslDefVal);
  4146. DataSet = 1;
  4147. break;
  4148. }
  4149. i++;
  4150. }
  4151. if(DataSet == 0) // 아이템 기본값 설정이 안되었을 경우
  4152. {
  4153. makeSelectInstance(pageInfo, supdegnitemno, selIdx++);
  4154. }
  4155. continue;
  4156. }
  4157. //selIdx = 0;
  4158. if(supdegnitemkind == "IMG" && degnitemkind == "ISU")
  4159. {
  4160. var ImgDefVal = "";
  4161. var termcd = formdegnRefDs.getColumn(idx, "termcd");
  4162. var i = 0;
  4163. var DataSet = 0; // 아이템 기본값 설정 여부 확인 변수
  4164. while(i < g_arrImgDefVal.length)
  4165. {
  4166. // 전역 변수(g_MslDefVal) 의 값을 비교
  4167. ImgDefVal = g_arrImgDefVal[i];
  4168. if(ImgDefVal == termcd)
  4169. {
  4170. //alert("g_arrImgDefVal[" + i+ "]: " + MslDefVal);
  4171. //alert("rectermnm:" + degnitemnm);
  4172. makeSubSelectInstance(pageInfo, degnitemno, selIdx++, degnitemnm, ImgDefVal);
  4173. DataSet = 1;
  4174. break;
  4175. }
  4176. i++;
  4177. }
  4178. if(DataSet == 0) // 아이템 기본값 설정이 안되었을 경우
  4179. {
  4180. makeSelectInstance(pageInfo, degnitemno, selIdx++);
  4181. }
  4182. continue;
  4183. // 기존 코드
  4184. //makeSelectInstance(pageInfo, degnitemno, selIdx++);
  4185. //continue;
  4186. }
  4187. if(degnitemkind == "GRD" || degnitemkind == "GSU")
  4188. {
  4189. makeGridInstance(pageInfo, degnitemno);
  4190. continue;
  4191. }
  4192. if(degnitemkind == "DGN")
  4193. {
  4194. makeDGNInstance(pageInfo, degnitemno);
  4195. continue;
  4196. }
  4197. if(degnitemkind == "OPN")
  4198. {
  4199. makeOPNInstance(pageInfo, degnitemno);
  4200. continue;
  4201. }
  4202. if(degnitemkind == "CCN")
  4203. {
  4204. makeCCNInstance(pageInfo, degnitemno);
  4205. continue;
  4206. }
  4207. if(degnitemkind == "BTN")
  4208. continue;
  4209. //var termcd = model.getValue(gPrePath_formdegnRef + idx + "]/termcd");
  4210. var degnitemlevlcd = "";
  4211. if(!utlf_isNull(pageInfo.fstLevlItemCd))
  4212. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + formdegnRefDs.getColumn(idx, "degnitemlevlcd");
  4213. else
  4214. degnitemlevlcd = formdegnRefDs.getColumn(idx, "degnitemlevlcd");
  4215. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4216. var fstlevlitemcd = formdegnRefDs.lookup("degnitemlevlcd", fstlevlitembasecd, "degnitemcd");
  4217. if(!utlf_isNull(pageInfo.fstLevlItemCd))
  4218. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4219. idxdiff = idx - diff;
  4220. sysf_trace_emr("idx : " + idx + " diff : " + diff + " idxdiff : " + idxdiff ) ;
  4221. var recItemRefDs = this.objects["ds_data_recitem"];
  4222. dsf_makeValue(recItemRefDs, "instcd", "string", "", idxdiff);
  4223. dsf_makeValue(recItemRefDs, "rechistseq", "BIGDECIMAL", "", idxdiff);
  4224. dsf_makeValue(recItemRefDs, "recitemno", "INT", "", idxdiff);
  4225. dsf_makeValue(recItemRefDs, "fstlevlitemcd", "string", fstlevlitemcd, idxdiff);
  4226. dsf_makeValue(recItemRefDs, "formcd", "string", formcd, idxdiff);
  4227. dsf_makeValue(recItemRefDs, "formdegnseq", "BIGDECIMAL", formdegnseq, idxdiff);
  4228. dsf_makeValue(recItemRefDs, "degnitemno", "INT", degnitemno, idxdiff);
  4229. dsf_makeValue(recItemRefDs, "degnitemcd", "string", degnitemcd, idxdiff);
  4230. dsf_makeValue(recItemRefDs, "degnitemkind", "string", degnitemkind, idxdiff);
  4231. dsf_makeValue(recItemRefDs, "degnitemlevlno", "string", degnitemlevlno, idxdiff);
  4232. dsf_makeValue(recItemRefDs, "degnitemnm", "string", degnitemnm, idxdiff);
  4233. dsf_makeValue(recItemRefDs, "degnitemlevlcd", "string", degnitemlevlcd, idxdiff);
  4234. dsf_makeValue(recItemRefDs, "rectermcd", "string", "", idxdiff);
  4235. dsf_makeValue(recItemRefDs, "rectermnm", "string", "", idxdiff);
  4236. dsf_makeValue(recItemRefDs, "recrefcd", "string", "", idxdiff);
  4237. dsf_makeValue(recItemRefDs, "recitemnm", "string", "", idxdiff);
  4238. dsf_makeValue(recItemRefDs, "reccnts", "string", "", idxdiff);
  4239. dsf_makeValue(recItemRefDs, "unitnm", "string", unitnm, idxdiff);
  4240. dsf_makeValue(recItemRefDs, "recimge", "string", "", idxdiff);
  4241. dsf_makeValue(recItemRefDs, "srcimge", "string", "", idxdiff);
  4242. dsf_makeValue(recItemRefDs, "rowno", "string", "", idxdiff);
  4243. dsf_makeValue(recItemRefDs, "colno", "string", "", idxdiff);
  4244. dsf_makeValue(recItemRefDs, "supdegnitemno", "INT", supdegnitemno, idxdiff);
  4245. dsf_makeValue(recItemRefDs, "extdegnitemlevlcd", "string", "", idxdiff);
  4246. dsf_makeValue(recItemRefDs, "rectermflag", "string", "", idxdiff);
  4247. dsf_makeValue(recItemRefDs, "degnunitcd", "string", unitcd, idxdiff);
  4248. if(degnitemkind == "CHK" || degnitemkind == "RDO" || degnitemkind == "CMB" ||
  4249. degnitemkind == "SSL" || degnitemkind == "MSL" || degnitemkind == "BOL")
  4250. {
  4251. recItemRefDs.setColumn(idxdiff, "rectermcd", degnitemdefltval);
  4252. // BOL 기본값 처리
  4253. if(degnitemkind == "BOL")
  4254. {
  4255. if(!utlf_isNull(degnitemdefltval))
  4256. recItemRefDs.setColumn(idxdiff, "rectermnm", degnitemnm);
  4257. }
  4258. // SSL 기본값 처리
  4259. if(degnitemkind == "SSL")
  4260. {
  4261. var defltvalnm = formdegnRefDs.lookup("termcd", degnitemdefltval, "degnitemnm");
  4262. var tmpdefltvalnm = formdegnRefDs.lookup("termcd", degnitemdefltval, "itemnm");
  4263. if(utlf_isNull(defltvalnm))
  4264. defltvalnm = tmpdefltvalnm;
  4265. recItemRefDs.setColumn(idxdiff, "rectermnm", defltvalnm);
  4266. }
  4267. /*
  4268. // 추가 내용: 아이템 기본값으로 기록내용 저장 시 rectermnm이 없이 저장이 되어 통합기록조회에서 보이지 않음.
  4269. */
  4270. // 1. vallist 노드를 찾는다.
  4271. if(!utlf_isNull(valgrupcd))
  4272. {
  4273. var vallistRefDs = this.objects[pageInfo.vallistRef];
  4274. var cnt = vallistRefDs.getCaseCount("grupcd=='" + valgrupcd + "'");
  4275. var sLabel = "";
  4276. var sValue = "";
  4277. if(!utlf_isNull(degnitemdefltval))
  4278. {
  4279. var g_vallistRefDs = this.objects[g_pageInfo.vallistRef];
  4280. g_vallistRefDs.filter("grupcd=='" + valgrupcd + "'");
  4281. for(var i=0; i<cnt; i++)
  4282. {
  4283. sLabel = g_vallistRefDs.getColumn(i, "valitemnm");
  4284. sValue = g_vallistRefDs.getColumn(i, "valcd");
  4285. // 2. 아이템 기본값과 같은 값인 경우 rectermnm을 추가
  4286. if(sValue == degnitemdefltval)
  4287. {
  4288. recItemRefDs.setColumn(idxdiff, "rectermnm", sLabel);
  4289. break;
  4290. }
  4291. }
  4292. g_vallistRefDs.filter("");
  4293. }
  4294. }
  4295. }
  4296. else if(degnitemkind == "STX" || degnitemkind == "MTX" || degnitemkind == "CAL")
  4297. {
  4298. recItemRefDs.setColumn(idxdiff, "reccnts", degnitemdefltval);
  4299. }
  4300. }
  4301. //sysf_trace_emr(ds_data_recitem.saveXML());
  4302. if(bInit){
  4303. sysf_trace_emr("bInit : " + bInit);
  4304. dsf_copyDsList(arrDsTempRecinfo, arrDsRecinfo, "replace", this, this);
  4305. //copyNodeset(pageInfo.initrecRef, pageInfo.recRef, "replace", model, model);
  4306. }
  4307. }
  4308. /**
  4309. * @desc : MSL 및 IMG 데이터의 하위 인스턴스를 생성함.
  4310. * @id :
  4311. * @event :
  4312. * @return :
  4313. * @authur : 이경희
  4314. */
  4315. function makeSubSelectInstance(pageInfo, degnitemno, selIdx, rectermnm, rectermcd)
  4316. {
  4317. sysf_trace_emr("***** makeSubSelectInstance("+pageInfo+", "+degnitemno+", "+selIdx+", "+rectermnm+", "+rectermcd+") *****");
  4318. var formmastRefDs = this.objects[pageInfo.formmastRef];
  4319. var formdegnRefDs = this.objects[gPrePath_formdegnRef];
  4320. var formcd = formmastRefDs.getColumn(0, "formcd");
  4321. var formdegnseq = formmastRefDs.getColumn(0, "formdegnseq");
  4322. var degnitemcd = formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemcd");
  4323. var degnitemno = formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemno");
  4324. var supdegnitemno = formdegnRefDs.lookup("degnitemno", degnitemno, "supdegnitemno");
  4325. var degnitemkind = formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemkind");
  4326. var degnitemlevlno = formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemlevlno");
  4327. var degnitemnm = formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemnm");
  4328. var unitcd = formdegnRefDs.lookup("degnitemno", degnitemno, "unitnm");
  4329. var unitnm = formdegnRefDs.lookup("degnitemno", degnitemno, "unitnm");
  4330. var degnitemlevlcd = "";
  4331. if(!utlf_isNull(pageInfo.fstLevlItemCd))
  4332. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + formdegnRefDs.getColumn(idx, "degnitemlevlcd");
  4333. else
  4334. degnitemlevlcd = formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemlevlcd");
  4335. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4336. var fstlevlitemcd = formdegnRefDs.lookup("degnitemlevlcd", fstlevlitembasecd, "degnitemcd");
  4337. if(!utlf_isNull(pageInfo.fstLevlItemCd))
  4338. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4339. var recItemRefDs = this.objects[pageInfo.recItemRef];
  4340. var idx = recItemRefDs.rowcount;
  4341. var gPrePath_recItemRefDs = this.objects[gPrePath_recItemRef];
  4342. dsf_makeValue(gPrePath_recItemRefDs, "instcd" , "string" , "" , idx);
  4343. dsf_makeValue(gPrePath_recItemRefDs, "rechistseq" , "BIGDECIMAL" , "" , idx);
  4344. dsf_makeValue(gPrePath_recItemRefDs, "recitemno" , "INT" , "" , idx);
  4345. dsf_makeValue(gPrePath_recItemRefDs, "fstlevlitemcd" , "string" , fstlevlitemcd , idx);
  4346. dsf_makeValue(gPrePath_recItemRefDs, "formcd" , "string" , formcd , idx);
  4347. dsf_makeValue(gPrePath_recItemRefDs, "formdegnseq" , "BIGDECIMAL" , formdegnseq , idx);
  4348. dsf_makeValue(gPrePath_recItemRefDs, "degnitemno" , "INT" , degnitemno , idx);
  4349. dsf_makeValue(gPrePath_recItemRefDs, "degnitemcd" , "string" , degnitemcd , idx);
  4350. dsf_makeValue(gPrePath_recItemRefDs, "degnitemkind" , "string" , degnitemkind , idx);
  4351. dsf_makeValue(gPrePath_recItemRefDs, "degnitemlevlno" , "string" , degnitemlevlno , idx);
  4352. dsf_makeValue(gPrePath_recItemRefDs, "degnitemnm" , "string" , degnitemnm , idx);
  4353. dsf_makeValue(gPrePath_recItemRefDs, "degnitemlevlcd" , "string" , degnitemlevlcd , idx);
  4354. dsf_makeValue(gPrePath_recItemRefDs, "rectermcd" , "string" , rectermcd , idx);
  4355. dsf_makeValue(gPrePath_recItemRefDs, "rectermnm" , "string" , rectermnm , idx);
  4356. dsf_makeValue(gPrePath_recItemRefDs, "recrefcd" , "string" , "" , idx);
  4357. dsf_makeValue(gPrePath_recItemRefDs, "recitemnm" , "string" , "" , idx);
  4358. dsf_makeValue(gPrePath_recItemRefDs, "reccnts" , "string" , "" , idx);
  4359. dsf_makeValue(gPrePath_recItemRefDs, "unitnm" , "string" , unitnm , idx);
  4360. dsf_makeValue(gPrePath_recItemRefDs, "recimge" , "string" , "" , idx);
  4361. dsf_makeValue(gPrePath_recItemRefDs, "srcimge" , "string" , "" , idx);
  4362. dsf_makeValue(gPrePath_recItemRefDs, "rowno" , "string" , "" , idx);
  4363. dsf_makeValue(gPrePath_recItemRefDs, "colno" , "string" , selIdx , idx);
  4364. dsf_makeValue(gPrePath_recItemRefDs, "supdegnitemno" , "INT" , supdegnitemno , idx);
  4365. dsf_makeValue(gPrePath_recItemRefDs, "extdegnitemlevlcd", "string" , "" , idx);
  4366. dsf_makeValue(gPrePath_recItemRefDs, "rectermflag" , "string" , "" , idx);
  4367. dsf_makeValue(gPrePath_recItemRefDs, "degnunitcd" , "string" , unitcd , idx);
  4368. }
  4369. /**
  4370. * @desc : 라디오, 콤보, 체크박스 인스턴스 생성
  4371. * @id :
  4372. * @event :
  4373. * @return :
  4374. * @authur : 이상현
  4375. */
  4376. function makeSelectInstance(pageInfo, degnitemno, selIdx)
  4377. {
  4378. sysf_trace_emr("***** makeSelectInstance("+pageInfo+", "+degnitemno+", "+selIdx+") *****");
  4379. var formmastRefDs = this.objects[pageInfo.formmastRef];
  4380. var gPrePath_formdegnRefDs = this.objects[gPrePath_formdegnRef];
  4381. var formcd = formmastRefDs.getColumn(0, "formcd");
  4382. var formdegnseq = formmastRefDs.getColumn(0, "formdegnseq");
  4383. var degnitemcd = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemcd");
  4384. var degnitemno = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemno");
  4385. var supdegnitemno = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "supdegnitemno");
  4386. var degnitemkind = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemkind");
  4387. var degnitemlevlno = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemlevlno");
  4388. var degnitemnm = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemnm");
  4389. var unitcd = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "unitnm");
  4390. var unitnm = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "unitnm");
  4391. var degnitemlevlcd = "";
  4392. if(!utlf_isNull(pageInfo.fstLevlItemCd))
  4393. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + gPrePath_formdegnRefDs.getColumn(idx, "degnitemlevlcd");
  4394. else
  4395. degnitemlevlcd = gPrePath_formdegnRefDs.lookup("degnitemno", degnitemno, "degnitemlevlcd");
  4396. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4397. var fstlevlitemcd = gPrePath_formdegnRefDs.lookup("degnitemlevlcd", fstlevlitembasecd, "degnitemcd");
  4398. // fstlevlitemcd 를 못찾는 경우.
  4399. // 일부 아이템의 degnitemlevlcd 에 가 001이 붙은 경우가 있어 fstlevlitemcd를 찾지 못함.
  4400. if(!utlf_isNull(pageInfo.fstLevlItemCd))
  4401. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4402. var recItemRefDs = this.objects[pageInfo.recItemRef];
  4403. var idx = recItemRefDs.rowcount; //getNodesetCnt(model, pageInfo.recItemRef) + 1;
  4404. var gPrePath_recItemRefDs = this.objects[gPrePath_recItemRef];
  4405. dsf_makeValue(gPrePath_recItemRefDs, "instcd" , "string" , "" , idx);
  4406. dsf_makeValue(gPrePath_recItemRefDs, "rechistseq" , "BIGDECIMAL" , "" , idx);
  4407. dsf_makeValue(gPrePath_recItemRefDs, "recitemno" , "INT" , "" , idx);
  4408. dsf_makeValue(gPrePath_recItemRefDs, "fstlevlitemcd" , "string" , fstlevlitemcd , idx);
  4409. dsf_makeValue(gPrePath_recItemRefDs, "formcd" , "string" , formcd , idx);
  4410. dsf_makeValue(gPrePath_recItemRefDs, "formdegnseq" , "BIGDECIMAL" , formdegnseq , idx);
  4411. dsf_makeValue(gPrePath_recItemRefDs, "degnitemno" , "INT" , degnitemno , idx);
  4412. dsf_makeValue(gPrePath_recItemRefDs, "degnitemcd" , "string" , degnitemcd , idx);
  4413. dsf_makeValue(gPrePath_recItemRefDs, "degnitemkind" , "string" , degnitemkind , idx);
  4414. dsf_makeValue(gPrePath_recItemRefDs, "degnitemlevlno" , "string" , degnitemlevlno , idx);
  4415. dsf_makeValue(gPrePath_recItemRefDs, "degnitemnm" , "string" , degnitemnm , idx);
  4416. dsf_makeValue(gPrePath_recItemRefDs, "degnitemlevlcd" , "string" , degnitemlevlcd , idx);
  4417. dsf_makeValue(gPrePath_recItemRefDs, "rectermcd" , "string" , "" , idx);
  4418. dsf_makeValue(gPrePath_recItemRefDs, "rectermnm" , "string" , "" , idx);
  4419. dsf_makeValue(gPrePath_recItemRefDs, "recrefcd" , "string" , "" , idx);
  4420. dsf_makeValue(gPrePath_recItemRefDs, "recitemnm" , "string" , "" , idx);
  4421. dsf_makeValue(gPrePath_recItemRefDs, "reccnts" , "string" , "" , idx);
  4422. dsf_makeValue(gPrePath_recItemRefDs, "unitnm" , "string" , unitnm , idx);
  4423. dsf_makeValue(gPrePath_recItemRefDs, "recimge" , "string" , "" , idx);
  4424. dsf_makeValue(gPrePath_recItemRefDs, "srcimge" , "string" , "" , idx);
  4425. dsf_makeValue(gPrePath_recItemRefDs, "rowno" , "string" , "" , idx);
  4426. dsf_makeValue(gPrePath_recItemRefDs, "colno" , "string" , selIdx , idx);
  4427. dsf_makeValue(gPrePath_recItemRefDs, "supdegnitemno" , "INT" , supdegnitemno , idx);
  4428. dsf_makeValue(gPrePath_recItemRefDs, "extdegnitemlevlcd", "string" , "" , idx);
  4429. dsf_makeValue(gPrePath_recItemRefDs, "rectermflag" , "string" , "" , idx);
  4430. dsf_makeValue(gPrePath_recItemRefDs, "degnunitcd" , "string" , unitcd , idx);
  4431. }
  4432. /**
  4433. * @desc : 그리드 인스턴스 생성
  4434. * @id :
  4435. * @event :
  4436. * @return :
  4437. * @authur : 이상현
  4438. */
  4439. function makeGridInstance(pageInfo, degnitemno)
  4440. {
  4441. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  4442. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4443. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4444. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4445. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  4446. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4447. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4448. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4449. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4450. var unitcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitcd");
  4451. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4452. ///////////////////////////////////////////////////
  4453. var degnitemlevlcd = "";
  4454. if(pageInfo.fstLevlItemCd != "")
  4455. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  4456. else
  4457. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  4458. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4459. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4460. if(pageInfo.fstLevlItemCd != "")
  4461. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4462. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4463. /////////////////////////////////////////////////
  4464. var supdegnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/supdegnitemno");
  4465. var valgrupcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/valgrupcd");
  4466. var degnattrval = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnattrval");
  4467. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "gridtype");
  4468. var prepath_formdegnRef_GSUdegnitemno = pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + degnitemno;
  4469. var subcnt = getNodesetCnt(model, prepath_formdegnRef_GSUdegnitemno + "']");
  4470. var recItemCnt = getNodesetCnt(model, pageInfo.recItemRef);
  4471. if(gridtype == "Y")
  4472. {
  4473. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4474. // row의 -1번째 컬럼(구분 컬럼)
  4475. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef); //getNodesetCnt(model, pageInfo.recItemRef);
  4476. //var grdCntIdx = grdCnt + 1;
  4477. var grdCntIdx = 0;
  4478. var row = -1;
  4479. var col = -1;
  4480. grdCnt += 1;
  4481. grdCntIdx = 1;
  4482. row++;
  4483. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4484. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4485. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4486. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4487. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4488. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4489. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4490. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4491. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4492. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4493. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4494. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4495. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4496. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm);
  4497. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4498. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4499. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "");
  4500. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4501. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "");
  4502. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "");
  4503. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4504. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4505. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4506. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4507. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4508. for(var i = 0; i < subcnt; i++)
  4509. {
  4510. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(i).text, "axflag");
  4511. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(i).text;
  4512. var subsupdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/supdegnitemno").item(i).text;
  4513. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(i).text;
  4514. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(i).text;
  4515. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(i).text;
  4516. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(i).text;
  4517. var subunitcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitcd").item(i).text;
  4518. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(i).text;
  4519. var subdegnitemlevlcd = "";
  4520. if(pageInfo.fstLevlItemCd != "")
  4521. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4522. else
  4523. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  4524. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4525. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4526. if(pageInfo.fstLevlItemCd != "")
  4527. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4528. grdCntIdx++;
  4529. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4530. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4531. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4532. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4533. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4534. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4535. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", subdegnitemno);
  4536. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4537. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", subdegnitemkind);
  4538. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", parseInt(subdegnitemlevlno) + 1);
  4539. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4540. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4541. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4542. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4543. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4544. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4545. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4546. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", subunitnm);
  4547. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4548. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4549. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4550. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", ++col);
  4551. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/supdegnitemno", subsupdegnitemno);
  4552. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/extdegnitemlevlcd", "");
  4553. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermflag", "");
  4554. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnunitcd", subunitcd);
  4555. }
  4556. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4557. model.addLog("Y축 증가 테이블 생성시간: " + ((endTime-startTime)/1000) );
  4558. }
  4559. else if(gridtype == "X")
  4560. {
  4561. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4562. // 개선 코드
  4563. var grdCnt = 0;
  4564. for(var j = 0; j < subcnt; j++)
  4565. {
  4566. //var label = model.instances(0).selectNodes(pageInfo.formdegnRef +
  4567. // "[degnitemkind='GSU' and supdegnitemno='" + degnitemno + "']/degnitemnm").item(j).text;
  4568. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  4569. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  4570. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  4571. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  4572. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  4573. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4574. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  4575. var subdegnitemlevlcd = "";
  4576. if(pageInfo.fstLevlItemCd != "")
  4577. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4578. else
  4579. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  4580. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4581. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4582. if(pageInfo.fstLevlItemCd != "")
  4583. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4584. grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef);
  4585. grdCnt += 1;
  4586. var grdCntIdx = 1;
  4587. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4588. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4589. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4590. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4591. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4592. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4593. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4594. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4595. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4596. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4597. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4598. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4599. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4600. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm, true);
  4601. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4602. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4603. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4604. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4605. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4606. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4607. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4608. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4609. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4610. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", j);
  4611. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4612. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/supdegnitemno", subsupdegnitemno);
  4613. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/extdegnitemlevlcd", "");
  4614. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermflag", "");
  4615. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnunitcd", subunitcd);
  4616. grdCntIdx++;
  4617. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4618. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4619. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemno", "");
  4620. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4621. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formcd", formcd);
  4622. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formdegnseq", formdegnseq);
  4623. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemno", subdegnitemno);
  4624. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4625. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemkind", "GSL");
  4626. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlno", subdegnitemlevlno);
  4627. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4628. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4629. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermcd", "");
  4630. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermnm", "", true);
  4631. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recrefcd", "");
  4632. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemnm", "", true);
  4633. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/reccnts", subdegnitemnm, true);
  4634. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/unitnm", subunitnm);
  4635. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recimge", "");
  4636. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/srcimge", "");
  4637. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rowno", j);
  4638. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/colno", "0");
  4639. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/supdegnitemno", degnitemno);
  4640. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/extdegnitemlevlcd", "");
  4641. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermflag", "");
  4642. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnunitcd", subunitcd);
  4643. // create empty column
  4644. grdCntIdx++;
  4645. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4646. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4647. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemno", "");
  4648. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4649. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formcd", formcd);
  4650. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/formdegnseq", formdegnseq);
  4651. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemno", subdegnitemno);
  4652. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4653. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemkind", "GSU");
  4654. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlno", subdegnitemlevlno);
  4655. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4656. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4657. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermcd", "");
  4658. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermnm", "", true);
  4659. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recrefcd", "");
  4660. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recitemnm", "", true);
  4661. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/reccnts", "", true);
  4662. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/unitnm", subunitnm);
  4663. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/recimge", "");
  4664. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/srcimge", "");
  4665. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rowno", j);
  4666. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/colno", "1");
  4667. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/supdegnitemno", degnitemno);
  4668. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/extdegnitemlevlcd", "");
  4669. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/rectermflag", "");
  4670. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem["+ grdCntIdx + "]/degnunitcd", subunitcd);
  4671. }
  4672. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4673. model.addLog("X축 증가 테이블 생성시간: " + ((endTime-startTime)/1000) );
  4674. }
  4675. else if(gridtype =="T") //Table
  4676. {
  4677. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4678. var arrX = new Array();
  4679. var arrY = new Array();
  4680. var xCnt = 0;
  4681. var yCnt = 0;
  4682. var fstcolwidth = 0;
  4683. for(var j = 0; j < subcnt; j++) // 그리드 테이블 컬럼만 얻기
  4684. {
  4685. var label = model.instances(0).selectNodes(pageInfo.formdegnRef +
  4686. "[degnitemkind='GSU' and supdegnitemno='" + degnitemno + "']/degnitemnm").item(j).text;
  4687. var axflag = getStyleValue(model.instances(0).selectNodes(pageInfo.formdegnRef +
  4688. "[degnitemkind='GSU' and supdegnitemno='" + degnitemno + "']/itemattrval").item(j).text, "axflag");
  4689. if(axflag == "X")
  4690. {
  4691. arrX[xCnt++] = label;
  4692. }
  4693. else if(axflag == "Y")
  4694. {
  4695. arrY[yCnt++] = label;
  4696. }
  4697. }
  4698. var nArrXLength = arrX.length;
  4699. var totalcnt = nArrXLength * arrY.length; // 테이블의 값이 들어가는 컬럼수만 계산
  4700. var grdCnt = 0;
  4701. var grdCntIdx = 0;
  4702. var colIdx = 1;
  4703. var row = -1;
  4704. var col = 0;
  4705. for(var i = 0; i < totalcnt; i++)
  4706. {
  4707. if(i % nArrXLength == 0) // row의 -1번째 컬럼(구분 컬럼)
  4708. {
  4709. grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef); //recItemRef);
  4710. //grdCntIdx = (grdCnt*(arrX.length+2)) + 1;
  4711. grdCnt += 1;
  4712. grdCntIdx = 1;
  4713. row++;
  4714. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4715. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4716. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4717. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4718. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4719. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4720. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4721. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4722. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4723. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4724. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4725. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4726. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4727. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm);
  4728. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4729. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4730. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "");
  4731. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4732. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "");
  4733. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "");
  4734. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4735. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4736. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4737. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4738. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4739. grdCntIdx++;
  4740. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4741. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4742. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4743. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4744. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4745. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4746. 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);
  4747. 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);
  4748. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", "GXB");
  4749. 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);
  4750. 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);
  4751. 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);
  4752. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4753. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4754. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4755. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4756. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", arrY[row], true);
  4757. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(nArrXLength + row).text);
  4758. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4759. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4760. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4761. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "0");
  4762. col = 0;
  4763. }
  4764. var subdegnitemcd = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemcd").item(col).text;
  4765. var subdegnitemno = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemno").item(col).text;
  4766. var subdegnitemkind = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemkind").item(col).text;
  4767. var subdegnitemlevlcd = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemlevlcd").item(col).text;
  4768. var subdegnitemlevlno = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemlevlno").item(col).text;
  4769. var subdegnitemnm = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/degnitemnm").item(col).text;
  4770. var subunitnm = model.instances(0).selectNodes(pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='"+degnitemno+"' and contains(itemattrval, 'axflag:X')]/unitnm").item(col).text;
  4771. if(pageInfo.fstLevlItemCd != "")
  4772. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + subdegnitemlevlcd;
  4773. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4774. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4775. if(pageInfo.fstLevlItemCd != "")
  4776. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4777. grdCntIdx++;
  4778. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4779. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4780. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4781. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4782. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4783. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4784. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", subdegnitemno);
  4785. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4786. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", subdegnitemkind);
  4787. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", parseInt(subdegnitemlevlno) + 1);
  4788. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4789. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4790. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4791. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4792. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4793. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4794. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4795. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", subunitnm);
  4796. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4797. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4798. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4799. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", ++col);
  4800. }
  4801. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4802. model.addLog("일반 테이블 생성시간: " + ((endTime-startTime)/1000) );
  4803. }
  4804. else if(gridtype == "G") //Grid
  4805. {
  4806. var startTime = new Date().getTime(); //시작시간 체크(단위 ms)
  4807. // row의 -1번째 컬럼(구분 컬럼)
  4808. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef);
  4809. var grdCntIdx = 0;
  4810. var row = -1;
  4811. var col = -1;
  4812. grdCnt += 1;
  4813. grdCntIdx = 1;
  4814. row++;
  4815. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]", "");
  4816. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemno", degnitemno);
  4817. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/degnitemlevlcd", degnitemlevlcd);
  4818. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4819. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4820. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4821. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4822. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4823. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4824. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", degnitemno);
  4825. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", degnitemcd);
  4826. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", degnitemkind);
  4827. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", degnitemlevlno);
  4828. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", degnitemnm, true);
  4829. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", degnitemlevlcd);
  4830. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4831. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4832. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4833. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4834. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "");
  4835. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", unitnm);
  4836. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4837. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4838. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4839. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", "-1");
  4840. for(var j = 0; j < subcnt; j++)
  4841. {
  4842. var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  4843. var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  4844. var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  4845. var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  4846. var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  4847. var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4848. var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  4849. var subdegnitemlevlcd = "";
  4850. if(pageInfo.fstLevlItemCd != "")
  4851. subdegnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  4852. else
  4853. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  4854. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  4855. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  4856. if(pageInfo.fstLevlItemCd != "")
  4857. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  4858. grdCntIdx++;
  4859. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/instcd", "");
  4860. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rechistseq", "");
  4861. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemno", "");
  4862. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  4863. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formcd", formcd);
  4864. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/formdegnseq", formdegnseq);
  4865. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemno", subdegnitemno);
  4866. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemcd", subdegnitemcd);
  4867. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemkind", subdegnitemkind);
  4868. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlno", subdegnitemlevlno);
  4869. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemnm", subdegnitemnm, true);
  4870. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  4871. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermcd", "");
  4872. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rectermnm", "", true);
  4873. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recrefcd", "");
  4874. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recitemnm", "", true);
  4875. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/reccnts", "", true);
  4876. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/unitnm", subunitnm);
  4877. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/recimge", "");
  4878. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/srcimge", "");
  4879. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/rowno", row);
  4880. model.makeValue(gPrePath_recInfoGridRef + grdCnt + "]/recitem[" + grdCntIdx + "]/colno", ++col);
  4881. }
  4882. var endTime = new Date().getTime(); //종료시간 체크(단위 ms)
  4883. model.addLog("그리드 생성 시간: " + ((endTime-startTime)/1000) );
  4884. }
  4885. }
  4886. /**
  4887. * @desc : 진단명 인스턴스 생성
  4888. * @id :
  4889. * @event :
  4890. * @return :
  4891. * @authur : 이상현(2008-07-15)
  4892. */
  4893. function makeDGNInstance(pageInfo, degnitemno)
  4894. {
  4895. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  4896. if(type == "btn")
  4897. return;
  4898. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  4899. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  4900. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  4901. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  4902. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  4903. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  4904. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  4905. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  4906. var degnitemlevlcd = "";
  4907. if(pageInfo.fstLevlItemCd != "")
  4908. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  4909. else
  4910. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  4911. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  4912. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  4913. if(pageInfo.fstLevlItemCd != "")
  4914. fstlevlitemcd = pageInfo.fstLevlItemCd;
  4915. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  4916. var columnIdx = 1;
  4917. //DGN 그리드
  4918. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  4919. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  4920. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  4921. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4922. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4923. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4924. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4925. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4926. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4927. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4928. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  4929. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  4930. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "DGN");
  4931. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  4932. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  4933. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  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", 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. //DGN, OPN, CCN은 디자인정보가 1개밖에 존재하지 않기 때문에.. degnitemno를 통일한다. (snoweye : 2008-07-15)
  4952. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4953. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4954. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0004249001");
  4955. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4956. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4957. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "R/O");
  4958. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0004249");
  4959. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4960. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4961. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4962. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4963. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4964. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4965. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4966. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4967. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4968. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  4969. columnIdx++;
  4970. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4971. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4972. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4973. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4974. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  4975. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  4976. //DGN, OPN, CCN은 디자인정보가 1개밖에 존재하지 않기 때문에.. degnitemno를 통일한다. (snoweye : 2008-07-15)
  4977. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  4978. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  4979. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0001443001");
  4980. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  4981. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  4982. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주부");
  4983. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0001443");
  4984. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  4985. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  4986. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  4987. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  4988. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  4989. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  4990. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  4991. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  4992. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  4993. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  4994. columnIdx++;
  4995. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  4996. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  4997. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  4998. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  4999. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  5000. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5001. //DGN, OPN, CCN은 디자인정보가 1개밖에 존재하지 않기 때문에.. degnitemno를 통일한다. (snoweye : 2008-07-15)
  5002. //model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5003. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5004. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000960001");
  5005. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5006. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5007. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "진단명");
  5008. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000960");
  5009. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5010. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5011. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5012. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5013. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5014. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5015. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5016. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5017. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5018. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "2");
  5019. }
  5020. /**
  5021. * @desc : 진단명 인스턴스 생성
  5022. * @id :
  5023. * @event :
  5024. * @return :
  5025. * @authur : 이상현
  5026. */
  5027. function makeDGNInstance_old(pageInfo, degnitemno)
  5028. {
  5029. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5030. if(type == "btn")
  5031. return;
  5032. //var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  5033. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5034. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5035. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5036. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5037. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5038. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5039. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5040. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5041. var degnitemlevlcd = "";
  5042. if(pageInfo.fstLevlItemCd != "")
  5043. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5044. else
  5045. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5046. //var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5047. //if(pageInfo.fstLevlItemCd != "")
  5048. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  5049. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5050. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5051. if(pageInfo.fstLevlItemCd != "")
  5052. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5053. //var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  5054. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5055. var columnIdx = 1;
  5056. //DGN 그리드
  5057. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5058. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5059. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5060. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5061. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5062. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5063. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  5064. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5065. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5066. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5067. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5068. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "DGN");
  5069. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5070. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5071. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5072. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5073. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5074. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5075. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5076. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5077. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5078. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5079. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5080. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5081. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5082. columnIdx++;
  5083. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5084. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5085. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5086. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5087. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  5088. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5089. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5090. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0004249001");
  5091. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5092. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5093. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "R/O");
  5094. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0004249");
  5095. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5096. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5097. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5098. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5099. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5100. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5101. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5102. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5103. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5104. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5105. columnIdx++;
  5106. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5107. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5108. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5109. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5110. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  5111. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5112. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5113. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0001443001");
  5114. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5115. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5116. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주부");
  5117. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0001443");
  5118. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5119. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5120. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5121. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5122. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5123. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5124. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5125. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5126. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5127. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  5128. columnIdx++;
  5129. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5130. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5131. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5132. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5133. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000899");
  5134. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5135. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5136. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000960001");
  5137. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5138. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5139. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "진단명");
  5140. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000960");
  5141. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5142. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5143. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5144. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5145. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5146. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5147. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5148. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5149. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5150. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "2");
  5151. /*
  5152. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/instcd", "");
  5153. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rechistseq", "");
  5154. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemno", "");
  5155. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/fstlevlitemcd", fstlevlitemcd);
  5156. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formcd", formcd);//"0000000899");
  5157. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formdegnseq", formdegnseq);
  5158. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemno", degnitemno);
  5159. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemcd", degnitemcd);
  5160. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemkind", "GRD");
  5161. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/orgdegnitemkind", "DGN");
  5162. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlno", degnitemlevlno);
  5163. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemnm", degnitemnm);
  5164. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5165. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermcd", "");
  5166. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermnm", "");
  5167. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recrefcd", "");
  5168. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemnm", "");
  5169. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/reccnts", "");
  5170. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/unitnm", unitnm);
  5171. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recimge", "");
  5172. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rowno", "0");
  5173. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/colno", "");
  5174. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/instcd", "");
  5175. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rechistseq", "");
  5176. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemno", "");
  5177. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/fstlevlitemcd", fstlevlitemcd);
  5178. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formcd", formcd);//"0000000899");
  5179. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formdegnseq", formdegnseq);
  5180. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemno", ++g_maxdegnitemno);
  5181. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemcd", "0004249001");
  5182. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemkind", "GSU");
  5183. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5184. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemnm", "R/O");
  5185. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlcd", degnitemlevlcd + "." + "0004249");
  5186. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermcd", "");
  5187. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermnm", "");
  5188. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recrefcd", "");
  5189. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemnm", "");
  5190. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/reccnts", "");
  5191. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/unitnm", "");
  5192. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recimge", "");
  5193. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rowno", "0");
  5194. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/colno", "0");
  5195. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/instcd", "");
  5196. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rechistseq", "");
  5197. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemno", "");
  5198. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/fstlevlitemcd", fstlevlitemcd);
  5199. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formcd", formcd);//"0000000899");
  5200. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formdegnseq", formdegnseq);
  5201. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemno", ++g_maxdegnitemno);
  5202. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemcd", "0001443001");
  5203. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemkind", "GSU");
  5204. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5205. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemnm", "주부");
  5206. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlcd", degnitemlevlcd + "." + "0001443");
  5207. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermcd", "");
  5208. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermnm", "");
  5209. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recrefcd", "");
  5210. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemnm", "");
  5211. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/reccnts", "");
  5212. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/unitnm", "");
  5213. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recimge", "");
  5214. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rowno", "0");
  5215. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/colno", "1");
  5216. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/instcd", "");
  5217. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rechistseq", "");
  5218. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recitemno", "");
  5219. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/fstlevlitemcd", fstlevlitemcd);
  5220. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/formcd", formcd);//"0000000899");
  5221. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/formdegnseq", formdegnseq);
  5222. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemno", ++g_maxdegnitemno);
  5223. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemcd", "0000960001");
  5224. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemkind", "GSU");
  5225. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5226. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemnm", "진단명");
  5227. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/degnitemlevlcd", degnitemlevlcd + "." + "0000960");
  5228. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rectermcd", "");
  5229. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rectermnm", "");
  5230. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recrefcd", "");
  5231. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recitemnm", "");
  5232. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/reccnts", "");
  5233. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/unitnm", "");
  5234. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/recimge", "");
  5235. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/rowno", "0");
  5236. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[3]/colno", "2");
  5237. */
  5238. }
  5239. /**
  5240. * @desc : 수술명 인스턴스 생성
  5241. * @id :
  5242. * @event :
  5243. * @return :
  5244. * @authur : 이상현
  5245. */
  5246. function makeOPNInstance(pageInfo, degnitemno)
  5247. {
  5248. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5249. if(type == "btn")
  5250. return;
  5251. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5252. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5253. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5254. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5255. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5256. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5257. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5258. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5259. var degnitemlevlcd = "";
  5260. if(pageInfo.fstLevlItemCd != "")
  5261. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5262. else
  5263. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5264. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5265. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5266. if(pageInfo.fstLevlItemCd != "")
  5267. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5268. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5269. var columnIdx = 1;
  5270. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5271. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5272. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5273. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5274. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5275. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5276. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5277. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);
  5278. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5279. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5280. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5281. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5282. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "OPN");
  5283. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5284. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5285. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5286. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5287. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5288. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5289. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5290. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5291. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5292. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5293. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5294. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5295. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5296. columnIdx++;
  5297. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5298. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5299. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5300. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5301. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);
  5302. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5303. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5304. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000509001");
  5305. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5306. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5307. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "수술명");
  5308. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000509");
  5309. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5310. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5311. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5312. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5313. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5314. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5315. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5316. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5317. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5318. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5319. }
  5320. /**
  5321. * @desc : 수술명 인스턴스 생성
  5322. * @id :
  5323. * @event :
  5324. * @return :
  5325. * @authur : 이상현
  5326. */
  5327. function makeOPNInstance_Old(pageInfo, degnitemno)
  5328. {
  5329. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5330. if(type == "btn")
  5331. return;
  5332. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5333. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5334. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5335. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5336. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5337. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5338. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5339. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5340. var degnitemlevlcd = "";
  5341. if(pageInfo.fstLevlItemCd != "")
  5342. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5343. else
  5344. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5345. //var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5346. //if(pageInfo.fstLevlItemCd != "")
  5347. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  5348. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5349. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5350. if(pageInfo.fstLevlItemCd != "")
  5351. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5352. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5353. var columnIdx = 1;
  5354. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5355. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5356. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5357. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5358. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5359. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5360. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000900");
  5361. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5362. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5363. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5364. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5365. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "OPN");
  5366. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5367. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5368. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5369. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5370. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5371. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5372. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5373. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5374. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5375. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5376. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5377. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5378. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5379. columnIdx++;
  5380. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5381. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5382. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5383. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5384. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000900");
  5385. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5386. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5387. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000509001");
  5388. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5389. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5390. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "수술명");
  5391. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + "." + "0000509");
  5392. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5393. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5394. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5395. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5396. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5397. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5398. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5399. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5400. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5401. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5402. /*
  5403. var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  5404. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/instcd", "");
  5405. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rechistseq", "");
  5406. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemno", "");
  5407. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/fstlevlitemcd", fstlevlitemcd);
  5408. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formcd", formcd);//"0000000900");
  5409. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formdegnseq", formdegnseq);
  5410. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemno", degnitemno);
  5411. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemcd", degnitemcd);
  5412. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemkind", "GRD");
  5413. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/orgdegnitemkind", "OPN");
  5414. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlno", degnitemlevlno);
  5415. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemnm", degnitemnm);
  5416. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5417. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermcd", "");
  5418. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermnm", "");
  5419. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recrefcd", "");
  5420. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemnm", "");
  5421. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/reccnts", "");
  5422. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/unitnm", unitnm);
  5423. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recimge", "");
  5424. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rowno", "0");
  5425. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/colno", "");
  5426. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/instcd", "");
  5427. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rechistseq", "");
  5428. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemno", "");
  5429. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/fstlevlitemcd", fstlevlitemcd);
  5430. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formcd", formcd);//"0000000900");
  5431. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formdegnseq", formdegnseq);
  5432. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemno", ++g_maxdegnitemno);
  5433. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemcd", "0000509001");
  5434. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemkind", "GSU");
  5435. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5436. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemnm", "수술명");
  5437. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlcd", degnitemlevlcd + "." + "0000509");
  5438. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermcd", "");
  5439. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermnm", "");
  5440. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recrefcd", "");
  5441. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemnm", "");
  5442. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/reccnts", "");
  5443. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/unitnm", "");
  5444. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recimge", "");
  5445. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rowno", "0");
  5446. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/colno", "0");
  5447. */
  5448. }
  5449. /**
  5450. * @desc : 주호소 인스턴스 생성
  5451. * @id :
  5452. * @event :
  5453. * @return :
  5454. * @authur : 이상현
  5455. */
  5456. function makeCCNInstance(pageInfo, degnitemno)
  5457. {
  5458. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5459. if(type == "btn")
  5460. return;
  5461. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5462. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5463. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5464. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5465. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5466. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5467. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5468. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5469. var degnitemlevlcd = "";
  5470. if(pageInfo.fstLevlItemCd != "")
  5471. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5472. else
  5473. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5474. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5475. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5476. if(pageInfo.fstLevlItemCd != "")
  5477. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5478. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5479. var columnIdx = 1;
  5480. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5481. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5482. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5483. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5484. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5485. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5486. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5487. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5488. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5489. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5490. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5491. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5492. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "CCN");
  5493. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5494. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5495. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5496. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5497. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5498. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5499. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5500. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5501. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5502. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5503. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5504. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5505. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5506. columnIdx++;
  5507. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5508. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5509. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5510. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5511. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5512. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5513. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5514. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000931001");
  5515. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5516. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5517. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주호소");
  5518. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000931");
  5519. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5520. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5521. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5522. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5523. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5524. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5525. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5526. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5527. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5528. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5529. columnIdx++;
  5530. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5531. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5532. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5533. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5534. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5535. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5536. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5537. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000299002");
  5538. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5539. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5540. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "발생일");
  5541. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000299");
  5542. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5543. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5544. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5545. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5546. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5547. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5548. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5549. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5550. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5551. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  5552. }
  5553. /**
  5554. * @desc : 주호소 인스턴스 생성
  5555. * @id :
  5556. * @event :
  5557. * @return :
  5558. * @authur : 이상현
  5559. */
  5560. function makeCCNInstance_Old(pageInfo, degnitemno)
  5561. {
  5562. var type = getStyleValue(model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/itemattrval"), "type");
  5563. if(type == "btn")
  5564. return;
  5565. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5566. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5567. var degnitemcd = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemcd");
  5568. var degnitemno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemno");
  5569. var degnitemkind = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemkind");
  5570. var degnitemlevlno = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemlevlno");
  5571. var degnitemnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/degnitemnm");
  5572. var unitnm = model.getValue(gPrePath_formdegnRef_degnitemno + degnitemno + "']/unitnm");
  5573. var degnitemlevlcd = "";
  5574. if(pageInfo.fstLevlItemCd != "")
  5575. degnitemlevlcd = pageInfo.fstLevlItemCd.substr(0, 7) + "." + model.getValue(pageInfo.formdegnRef + "[" + degnitemno + "']/degnitemlevlcd");
  5576. else
  5577. degnitemlevlcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5578. //alert(pageInfo.formdegnRef + "[degnitemno = '" + degnitemno + "']/degnitemlevlcd");
  5579. //alert(degnitemlevlcd);
  5580. //var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5581. //if(pageInfo.fstLevlItemCd != "")
  5582. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  5583. var fstlevlitembasecd = degnitemlevlcd.split(".")[0];
  5584. var fstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + fstlevlitembasecd + "']/degnitemcd");
  5585. if(pageInfo.fstLevlItemCd != "")
  5586. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5587. var idx = getNodesetCnt(model, pageInfo.RecinfoGridRef) + 1;
  5588. var columnIdx = 1;
  5589. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]", "");
  5590. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/degnitemno", degnitemno);
  5591. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5592. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5593. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5594. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5595. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5596. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5597. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", degnitemno);
  5598. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", degnitemcd);
  5599. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GRD");
  5600. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/orgdegnitemkind", "CCN");
  5601. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", degnitemlevlno);
  5602. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", degnitemnm);
  5603. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd);
  5604. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5605. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5606. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5607. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5608. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5609. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", unitnm);
  5610. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5611. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5612. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5613. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "-1");
  5614. columnIdx++;
  5615. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5616. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5617. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5618. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5619. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5620. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5621. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5622. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000931001");
  5623. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5624. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5625. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "주호소");
  5626. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000931");
  5627. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5628. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5629. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5630. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5631. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5632. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5633. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5634. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5635. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5636. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "0");
  5637. columnIdx++;
  5638. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/instcd", "");
  5639. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rechistseq", "");
  5640. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemno", "");
  5641. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/fstlevlitemcd", fstlevlitemcd);
  5642. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formcd", formcd);//"0000000901");
  5643. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/formdegnseq", formdegnseq);
  5644. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemno", ++g_maxdegnitemno);
  5645. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemcd", "0000299002");
  5646. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemkind", "GSU");
  5647. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5648. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemnm", "발생일");
  5649. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/degnitemlevlcd", degnitemlevlcd + ".0000299");
  5650. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermcd", "");
  5651. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rectermnm", "");
  5652. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recrefcd", "");
  5653. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recitemnm", "");
  5654. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/reccnts", "");
  5655. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/unitnm", "");
  5656. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/recimge", "");
  5657. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/srcimge", "");
  5658. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/rowno", "0");
  5659. model.makeValue(pageInfo.RecinfoGridRef + "[" + idx + "]/recitem[" + columnIdx + "]/colno", "1");
  5660. /*
  5661. var idx = getNodesetCnt(model, pageInfo.recItemRef) + 1;
  5662. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/instcd", "");
  5663. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rechistseq", "");
  5664. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemno", "");
  5665. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/fstlevlitemcd", fstlevlitemcd);
  5666. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formcd", formcd);//"0000000901");
  5667. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/formdegnseq", formdegnseq);
  5668. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemno", degnitemno);
  5669. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemcd", degnitemcd);
  5670. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemkind", "GRD");
  5671. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/orgdegnitemkind", "CCN");
  5672. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlno", degnitemlevlno);
  5673. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemnm", degnitemnm);
  5674. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/degnitemlevlcd", degnitemlevlcd);
  5675. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermcd", "");
  5676. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rectermnm", "");
  5677. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recrefcd", "");
  5678. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitemnm", "");
  5679. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/reccnts", "");
  5680. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/unitnm", unitnm);
  5681. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recimge", "");
  5682. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/rowno", "0");
  5683. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/colno", "");
  5684. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/instcd", "");
  5685. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rechistseq", "");
  5686. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemno", "");
  5687. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/fstlevlitemcd", fstlevlitemcd);
  5688. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formcd", formcd);//"0000000901");
  5689. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/formdegnseq", formdegnseq);
  5690. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemno", ++g_maxdegnitemno);
  5691. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemcd", "0000931001");
  5692. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemkind", "GSU");
  5693. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5694. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemnm", "주호소");
  5695. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/degnitemlevlcd", degnitemlevlcd + ".0000931");
  5696. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermcd", "");
  5697. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rectermnm", "");
  5698. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recrefcd", "");
  5699. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recitemnm", "");
  5700. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/reccnts", "");
  5701. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/unitnm", "");
  5702. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/recimge", "");
  5703. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/rowno", "0");
  5704. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[1]/colno", "0");
  5705. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/instcd", "");
  5706. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rechistseq", "");
  5707. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemno", "");
  5708. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/fstlevlitemcd", fstlevlitemcd);
  5709. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formcd", formcd);//"0000000901");
  5710. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/formdegnseq", formdegnseq);
  5711. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemno", ++g_maxdegnitemno);
  5712. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemcd", "0000299002");
  5713. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemkind", "GSU");
  5714. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlno", parseInt(degnitemlevlno) + 1);
  5715. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemnm", "발생일");
  5716. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/degnitemlevlcd", degnitemlevlcd + ".0000299");
  5717. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermcd", "");
  5718. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rectermnm", "");
  5719. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recrefcd", "");
  5720. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recitemnm", "");
  5721. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/reccnts", "");
  5722. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/unitnm", "");
  5723. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/recimge", "");
  5724. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/rowno", "0");
  5725. model.makeValue(pageInfo.recItemRef + "[" + idx + "]/recitem[2]/colno", "1");
  5726. */
  5727. }
  5728. /**
  5729. * @desc : 서식디스플레이 함수
  5730. * @id :
  5731. * @event :
  5732. * @return :
  5733. * @authur : 이상현
  5734. */
  5735. function previewByDegnItems(formmastRef, degnitemRef, vallistRef, imglistRef, recMode, supdegnitemcd, viewobj, bDraw)
  5736. {
  5737. //if(viewobj == null)
  5738. // viewobj = window;
  5739. //if(pageInfo == null)
  5740. var pageInfo = new PAGEINFO(viewobj);
  5741. //if(supdegnitemcd == null)
  5742. // supdegnitemcd = "";
  5743. if(bDraw == null)
  5744. bDraw = true;
  5745. pageInfo.fstLevlItemCd = supdegnitemcd;
  5746. if(vallistRef == null || imglistRef == null)
  5747. {
  5748. copyNodeset(grd_pltte.attribute("nodeset"), degnitemRef, "replace", model, opener.model);
  5749. grd_pltte.rebuild();
  5750. for(var i = grd_pltte.fixedRows; i < grd_pltte.rows; i++)
  5751. {
  5752. grd_pltte.rowstatus(i) = 1;
  5753. }
  5754. model.makeValue("/root/send/degnitems", grd_pltte.getUpdateData());
  5755. submit("TRMRF01304");
  5756. }
  5757. else
  5758. {
  5759. copyNodeset(pageInfo.formmastRef, formmastRef, "replace", model, opener.model);
  5760. copyNodeset(pageInfo.formdegnRef, degnitemRef, "replace", model, opener.model);
  5761. copyNodeset(pageInfo.vallistRef, vallistRef, "replace", model, opener.model);
  5762. copyNodeset(pageInfo.imgelistRef, imglistRef, "replace", model, opener.model);
  5763. }
  5764. if(bDraw)
  5765. fCreateDegnBySelfInfo(pageInfo, viewobj, recMode);
  5766. }
  5767. var gLogNo = 0;
  5768. /**
  5769. * @desc : User Log 생성
  5770. * @id :
  5771. * @event :
  5772. * @return :
  5773. * @authur : 이상현
  5774. */
  5775. function SetUserLog(lognm, clsnm, cnts, show)
  5776. {
  5777. if (show == null)
  5778. {
  5779. show = false;
  5780. }
  5781. if (show)
  5782. {
  5783. alert(lognm +" / "+ clsnm +" / "+ cnts);
  5784. return;
  5785. }
  5786. try
  5787. {
  5788. var pathlog = "/root/temp/userlog/log";
  5789. if (gLogNo > 1000)
  5790. {
  5791. model.removeNodeset(pathlog);
  5792. gLogNo = 0;
  5793. idx = 1;
  5794. }
  5795. gLogNo++;
  5796. model.makeValue(pathlog+ "[" +gLogNo+ "]/no", gLogNo);
  5797. model.makeValue(pathlog+ "[" +gLogNo+ "]/time", getCurrentTime());
  5798. model.makeValue(pathlog+ "[" +gLogNo+ "]/lognm", lognm);
  5799. model.makeValue(pathlog+ "[" +gLogNo+ "]/clsnm", ""+clsnm);
  5800. if (cnts.indexOf("<", 0) > -1 || cnts.indexOf(">", 0) > -1)
  5801. {
  5802. model.makeValue(pathlog+ "[" +gLogNo+ "]/cnts", "");
  5803. model.setValue(pathlog+ "[" +gLogNo+ "]/cnts", cnts, true);
  5804. }
  5805. else
  5806. {
  5807. model.makeValue(pathlog+ "[" +gLogNo+ "]/cnts", cnts);
  5808. }
  5809. }
  5810. catch (e)
  5811. {
  5812. SetUserLog("[ERROR! SetUserLog]" + lognm, clsnm, cnts, true)
  5813. throw e;
  5814. }
  5815. }
  5816. var butter;
  5817. var StringBuffer = function() {
  5818. this.buffer = new Array();
  5819. }
  5820. StringBuffer.prototype.append = function(obj) {
  5821. this.buffer.push(obj);
  5822. }
  5823. StringBuffer.prototype.toString = function() {
  5824. return this.buffer.join("");
  5825. }
  5826. /**
  5827. * @desc : 프로그램 서식의 인스턴스 생성
  5828. * @id :
  5829. * @event :
  5830. * @return :
  5831. * @authur : 이상현
  5832. */
  5833. function makeProgInstance_old(pageInfo, instance, nodelistMain)
  5834. {
  5835. var instance = document.models(0).instances(0);
  5836. var nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  5837. var nodelistRecitem = instance.selectNodes("/root/main/recinfo/recitem");
  5838. var iRecleng = nodelistRecitem.length;
  5839. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  5840. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  5841. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  5842. var degnitemcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemcd");
  5843. var degnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemno");
  5844. var degnitemkind = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemkind");
  5845. var degnitemlevlno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlno");
  5846. var degnitemnm = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemnm");
  5847. var unitnm = model.getValue(gPrePath_formdegnRef + 1 + "]/unitnm");
  5848. var degnitemlevlcd = "";
  5849. var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[supdegnitemno='"+degnitemno+"' and degnitemkind='GSU']");
  5850. if(pageInfo.fstLevlItemCd != ""){
  5851. degnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  5852. }else{
  5853. degnitemlevlcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  5854. //degnitemlevlcd = parent.model.instances(0).selectSingleNode(pageInfo.formdegnRef +"[degnitemcd=" + degnitemcd + "]/degnitemlevlcd").text
  5855. }
  5856. var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  5857. if(pageInfo.fstLevlItemCd != ""){
  5858. fstlevlitemcd = pageInfo.fstLevlItemCd;
  5859. }
  5860. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  5861. var valgrupcd = model.getValue(gPrePath_formdegnRef + 1 + "]/valgrupcd");
  5862. var degnattrval = model.getValue(gPrePath_formdegnRef + 1 + "]/degnattrval");
  5863. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  5864. var degnunitcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnunitcd");
  5865. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef + 1 + "]/itemattrval"), "gridtype");
  5866. //var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + 1 + "']");
  5867. var iFndRow = 0;
  5868. var iLeng = 0;
  5869. var prepath_formdegnRef_GSUdegnitemno = pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + degnitemno;
  5870. if(nodelistMain.length >= 1){
  5871. for(var i = 1; i <= nodelistMain.length; i++)
  5872. {
  5873. var col = 0;
  5874. //var diff = 0;
  5875. var tempMainNode = nodelistMain.item(i - 1);
  5876. var compcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/rectermcd");
  5877. var compcnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/reccnts");
  5878. var colno = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/colno");
  5879. if(compcnts != ""){
  5880. iFndRow = getNodesetCnt(model, pageInfo.recItemRef + "/recitem[recitemnm='" + compcnts + "' and colno='" + colno + "']"); //중복항목 존재여부검사
  5881. if(iFndRow > 0){
  5882. iRecleng = iRecleng - 1;
  5883. //diff++;
  5884. }else if(iFndRow <= 0){
  5885. iLeng = i + iRecleng;
  5886. //alert("iLeng="+iLeng);
  5887. model.makeValue(gPrePath_recItemRef + iLeng + "]/instcd", "");
  5888. model.makeValue(gPrePath_recItemRef + iLeng + "]/rechistseq", "");
  5889. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitemno", "");
  5890. model.makeValue(gPrePath_recItemRef + iLeng + "]/fstlevlitemcd", fstlevlitemcd);
  5891. model.makeValue(gPrePath_recItemRef + iLeng + "]/formcd", formcd);
  5892. model.makeValue(gPrePath_recItemRef + iLeng + "]/formdegnseq", formdegnseq);
  5893. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemno", degnitemno);
  5894. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemcd", degnitemcd);
  5895. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemkind", degnitemkind);
  5896. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemlevlno", degnitemlevlno);
  5897. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemnm", degnitemnm);
  5898. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnitemlevlcd", degnitemlevlcd);
  5899. model.makeValue(gPrePath_recItemRef + iLeng + "]/rectermcd", "");
  5900. model.makeValue(gPrePath_recItemRef + iLeng + "]/rectermnm", "");
  5901. model.makeValue(gPrePath_recItemRef + iLeng + "]/recrefcd", "");
  5902. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitemnm", "");
  5903. model.makeValue(gPrePath_recItemRef + iLeng + "]/reccnts", "");
  5904. model.makeValue(gPrePath_recItemRef + iLeng + "]/unitnm", unitnm);
  5905. model.makeValue(gPrePath_recItemRef + iLeng + "]/recimge", "");
  5906. model.makeValue(gPrePath_recItemRef + iLeng + "]/srcimge", "");
  5907. model.makeValue(gPrePath_recItemRef + iLeng + "]/rowno", iLeng - 1);
  5908. model.makeValue(gPrePath_recItemRef + iLeng + "]/colno", "");
  5909. model.makeValue(gPrePath_recItemRef + iLeng + "]/supdegnitemno", supdegnitemno);
  5910. model.makeValue(gPrePath_recItemRef + iLeng + "]/extdegnitemlevlcd", "");
  5911. model.makeValue(gPrePath_recItemRef + iLeng + "]/rectermflag", "");
  5912. model.makeValue(gPrePath_recItemRef + iLeng + "]/degnunitcd", degnunitcd);
  5913. //for(var j = 0; j < tempMainNode.childNodes.length; j++)
  5914. for(var j = 0; j < subcnt; j++)
  5915. {
  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. var subsupdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/supdegnitemno").item(j).text;
  5924. var subdegnunitcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitcd").item(j).text;
  5925. var subdegnitemlevlcd = "";
  5926. if(pageInfo.fstLevlItemCd != ""){
  5927. subdegnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  5928. }else{
  5929. subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  5930. }
  5931. //var subfstlevlitemcd = subdegnitemlevlcd.split(".")[0];
  5932. //if(pageInfo.fstLevlItemCd != ""){
  5933. // subfstlevlitemcd = pageInfo.fstLevlItemCd;
  5934. //}
  5935. var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  5936. var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  5937. if(pageInfo.fstLevlItemCd != "")
  5938. subfstlevlitemcd = pageInfo.fstLevlItemCd;
  5939. var rectermcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermcd");
  5940. var reccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/reccnts");
  5941. if (reccnts == "-")
  5942. {
  5943. reccnts = "";
  5944. }
  5945. var cntsyn = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cntsyn");
  5946. var ccflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/ccflag");
  5947. var rectermflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermflag");
  5948. var cccnts = "";
  5949. //alert('rectermcd='+rectermcd+', reccnts='+reccnts+', rectermflag='+rectermflag+', subdegnitemkind='+subdegnitemkind);
  5950. if (ccflag == "CC")
  5951. {
  5952. cccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cccnts");
  5953. }
  5954. var jIdx = j + 1;
  5955. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/instcd", "");
  5956. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rechistseq", "");
  5957. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recitemno", "");
  5958. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/fstlevlitemcd", subfstlevlitemcd);
  5959. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/formcd", formcd);
  5960. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/formdegnseq", formdegnseq);
  5961. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemno", subdegnitemno);
  5962. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemcd", subdegnitemcd);
  5963. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemkind", subdegnitemkind);
  5964. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemlevlno", subdegnitemlevlno);
  5965. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemnm", subdegnitemnm);
  5966. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnitemlevlcd", subdegnitemlevlcd);
  5967. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermcd", rectermcd);
  5968. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recitemnm", "");
  5969. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recrefcd", "");
  5970. if(cntsyn == "N" || cntsyn == ""){
  5971. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermnm", reccnts);
  5972. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/reccnts", cccnts);
  5973. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermflag", rectermflag);
  5974. } else if(cntsyn == "Y") {
  5975. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rectermnm", "");
  5976. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/reccnts", reccnts);
  5977. }
  5978. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/unitnm", subunitnm);
  5979. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/recimge", "");
  5980. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/srcimge", "");
  5981. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/rowno", iLeng - 1);
  5982. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/colno", j);
  5983. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/supdegnitemno", subsupdegnitemno);
  5984. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/extdegnitemlevlcd", "");
  5985. model.makeValue(gPrePath_recItemRef + iLeng + "]/recitem[" + jIdx + "]/degnunitcd", subdegnunitcd);
  5986. }
  5987. }
  5988. col++;
  5989. }
  5990. }
  5991. grd_diaglist.rebuild();
  5992. }
  5993. model.removeNodeset("/root/main/selectdiaglist");
  5994. }
  5995. /**
  5996. * @desc : 프로그램 서식의 인스턴스 생성
  5997. * @id :
  5998. * @event :
  5999. * @return :
  6000. * @authur : 이상현
  6001. */
  6002. function makeProgInstance(pageInfo, instance, nodelistMain)
  6003. {
  6004. var instance = document.models(0).instances(0);
  6005. var nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  6006. var nodelistRecitem = instance.selectNodes("/root/main/recinfo/grid");
  6007. var iRecleng = nodelistRecitem.length;
  6008. var rechistseq = model.getValue(pageInfo.recMastRef + "/rechistseq");
  6009. var formcd = model.getValue(pageInfo.formmastRef +"/formcd");
  6010. var formdegnseq = model.getValue(pageInfo.formmastRef +"/formdegnseq");
  6011. var degnitemcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemcd");
  6012. var degnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemno");
  6013. var degnitemkind = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemkind");
  6014. //var degnitemlevlno = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlno");
  6015. var degnitemlevlno = "";
  6016. var degnitemnm = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemnm");
  6017. var unitnm = model.getValue(gPrePath_formdegnRef + 1 + "]/unitnm");
  6018. var degnitemlevlcd = "";
  6019. var orgdegnitemkind = "";
  6020. var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[supdegnitemno='"+degnitemno+"' and degnitemkind='GSU']");
  6021. // if(pageInfo.fstLevlItemCd != ""){
  6022. // degnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  6023. // }else{
  6024. // degnitemlevlcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnitemlevlcd");
  6025. // //degnitemlevlcd = parent.model.instances(0).selectSingleNode(pageInfo.formdegnRef +"[degnitemcd=" + degnitemcd + "]/degnitemlevlcd").text
  6026. // }
  6027. //
  6028. var fstlevlitemcd = degnitemlevlcd.split(".")[0];
  6029. //
  6030. // if(pageInfo.fstLevlItemCd != ""){
  6031. // fstlevlitemcd = pageInfo.fstLevlItemCd;
  6032. // }
  6033. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  6034. var valgrupcd = model.getValue(gPrePath_formdegnRef + 1 + "]/valgrupcd");
  6035. var degnattrval = model.getValue(gPrePath_formdegnRef + 1 + "]/degnattrval");
  6036. var supdegnitemno = model.getValue(gPrePath_formdegnRef + 1 + "]/supdegnitemno");
  6037. var degnunitcd = model.getValue(gPrePath_formdegnRef + 1 + "]/degnunitcd");
  6038. var gridtype = getStyleValue(model.getValue(gPrePath_formdegnRef + 1 + "]/itemattrval"), "gridtype");
  6039. //var subcnt = getNodesetCnt(model, pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + 1 + "']");
  6040. var iFndRow = 0;
  6041. var iLeng = 0;
  6042. var col = 0;
  6043. var prepath_formdegnRef_GSUdegnitemno = pageInfo.formdegnRef + "[degnitemkind='GSU' and supdegnitemno='" + degnitemno;
  6044. var tempgrdNodeList = instance1.selectNodes(gPageInfo_EMR.initRecinfoGridRef);
  6045. if(nodelistMain.length >= 1){
  6046. for(var i = 1; i <= nodelistMain.length; i++)
  6047. {
  6048. //var diff = 0;
  6049. var tempMainNode = nodelistMain.item(i - 1);
  6050. var compcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/rectermcd");
  6051. var compcnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/reccnts");
  6052. var colno = model.getValue("/root/main/selectdiaglist[" + i + "]/col[comp='true']/colno");
  6053. degnitemno = tempgrdNodeList.item(0).selectSingleNode("degnitemno").text;
  6054. degnitemlevlcd = tempgrdNodeList.item(0).selectSingleNode("degnitemlevlcd").text;
  6055. fstlevlitemcd = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("fstlevlitemcd").text;
  6056. orgdegnitemkind = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("orgdegnitemkind").text;
  6057. degnitemlevlno = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("degnitemlevlno").text;
  6058. orgdegnitemkind = tempgrdNodeList.item(0).selectNodes("recitem").item(0).selectSingleNode("orgdegnitemkind").text;
  6059. if(compcnts != "" || compcd == "-"){
  6060. iFndRow = getNodesetCnt(model, pageInfo.recInfoGridRef + "/recitem[recitemnm='" + compcnts + "' and colno='" + colno + "']"); //중복항목 존재여부검사
  6061. if(iFndRow > 0){
  6062. iRecleng = iRecleng - 1;
  6063. //diff++;
  6064. }else if(iFndRow <= 0){
  6065. //iLeng = (i + iRecleng) - col;
  6066. iLeng = i + iRecleng;
  6067. //alert("iLeng="+iLeng);
  6068. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]", "");
  6069. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/degnitemno", degnitemno);
  6070. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/degnitemlevlcd", degnitemlevlcd);
  6071. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/instcd", "");
  6072. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rechistseq", "");
  6073. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recitemno", "");
  6074. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/fstlevlitemcd", fstlevlitemcd);
  6075. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/formcd", formcd);
  6076. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/formdegnseq", formdegnseq);
  6077. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemno", degnitemno);
  6078. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemcd", degnitemcd);
  6079. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemkind", degnitemkind);
  6080. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/orgdegnitemkind", orgdegnitemkind);
  6081. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemlevlno", degnitemlevlno);
  6082. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemnm", degnitemnm);
  6083. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/degnitemlevlcd", degnitemlevlcd);
  6084. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rectermcd", "");
  6085. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rectermnm", "");
  6086. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recrefcd", "");
  6087. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recitemnm", "");
  6088. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/reccnts", "");
  6089. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/unitnm", unitnm);
  6090. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/recimge", "");
  6091. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/srcimge", "");
  6092. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/rowno", iLeng - 1);
  6093. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i-col) + "]/colno", "-1");
  6094. //for(var j = 0; j < tempMainNode.childNodes.length; j++)
  6095. var itemNodeList = tempgrdNodeList.item(0).selectNodes("recitem");
  6096. for(var j = 0; j < subcnt; j++)
  6097. {
  6098. var recitemNode = itemNodeList.item(j + 1);
  6099. //iLeng = iLeng + j + 1;
  6100. // var axflag = getStyleValue(model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/itemattrval").item(j).text, "axflag");
  6101. // var subdegnitemcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemcd").item(j).text;
  6102. // var subdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemno").item(j).text;
  6103. // var subdegnitemkind = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemkind").item(j).text;
  6104. // var subdegnitemlevlno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlno").item(j).text;
  6105. // var subdegnitemnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  6106. // var subunitnm = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitnm").item(j).text;
  6107. //
  6108. // var subsupdegnitemno = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/supdegnitemno").item(j).text;
  6109. // var subdegnunitcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/unitcd").item(j).text;
  6110. //
  6111. // var subdegnitemlevlcd = "";
  6112. //
  6113. // if(pageInfo.fstLevlItemCd != ""){
  6114. // subdegnitemlevlcd = pageInfo.fstLevlItemCd + "." + model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemnm").item(j).text;
  6115. // }else{
  6116. // subdegnitemlevlcd = model.instances(0).selectNodes(prepath_formdegnRef_GSUdegnitemno + "']/degnitemlevlcd").item(j).text;
  6117. // }
  6118. //
  6119. //
  6120. // var subfstlevlitembasecd = subdegnitemlevlcd.split(".")[0];
  6121. // var subfstlevlitemcd = model.getValue(gPrePath_formdegnRef + "degnitemlevlcd = '" + subfstlevlitembasecd + "']/degnitemcd");
  6122. // if(pageInfo.fstLevlItemCd != "")
  6123. // subfstlevlitemcd = pageInfo.fstLevlItemCd;
  6124. var rectermcd = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermcd");
  6125. var reccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/reccnts");
  6126. if (reccnts == "-")
  6127. {
  6128. reccnts = "";
  6129. }
  6130. var cntsyn = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cntsyn");
  6131. var ccflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/ccflag");
  6132. var rectermflag = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/rectermflag");
  6133. var cccnts = "";
  6134. if (ccflag == "CC")
  6135. {
  6136. cccnts = model.getValue("/root/main/selectdiaglist[" + i + "]/col[colno='" + j + "']/cccnts");
  6137. //주호소의 경우 termcd가 없을경우가 있으므로, tremcd가 없을경우 저장시 배제됨
  6138. if (rectermcd == "" && (cntsyn == "N" || cntsyn == "") && reccnts != "")
  6139. {
  6140. rectermcd = "-";
  6141. }
  6142. }
  6143. var jIdx = j + 1;
  6144. var subfstlevlitemcd = recitemNode.selectSingleNode("fstlevlitemcd").text;
  6145. var subdegnitemno = recitemNode.selectSingleNode("degnitemno").text;
  6146. var subdegnitemcd = recitemNode.selectSingleNode("degnitemcd").text;
  6147. var subdegnitemkind = recitemNode.selectSingleNode("degnitemkind").text;
  6148. var subdegnitemlevlno = recitemNode.selectSingleNode("degnitemlevlno").text;
  6149. var subdegnitemnm = recitemNode.selectSingleNode("degnitemnm").text;
  6150. var subdegnitemlevlcd = recitemNode.selectSingleNode("degnitemlevlcd").text;
  6151. var subunitnm = recitemNode.selectSingleNode("unitnm").text;
  6152. var subsupdegnitemno = recitemNode.selectSingleNode("supdegnitemno").text;
  6153. var subdegnunitcd = recitemNode.selectSingleNode("degnunitcd").text;
  6154. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/instcd", "");
  6155. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rechistseq", "");
  6156. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recitemno", "");
  6157. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/fstlevlitemcd", subfstlevlitemcd);
  6158. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/formcd", formcd);
  6159. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/formdegnseq", formdegnseq);
  6160. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemno", subdegnitemno);
  6161. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemcd", subdegnitemcd);
  6162. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemkind", subdegnitemkind);
  6163. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemlevlno", subdegnitemlevlno);
  6164. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemnm", subdegnitemnm);
  6165. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnitemlevlcd", subdegnitemlevlcd);
  6166. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermcd", rectermcd);
  6167. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recitemnm", "");
  6168. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recrefcd", "");
  6169. if(cntsyn == "N" || cntsyn == "")
  6170. {
  6171. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermnm", reccnts);
  6172. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/reccnts", cccnts);
  6173. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermflag", rectermflag);
  6174. } else if(cntsyn == "Y") {
  6175. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rectermnm", "");
  6176. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/reccnts", reccnts);
  6177. }
  6178. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/unitnm", subunitnm);
  6179. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/recimge", "");
  6180. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/srcimge", "");
  6181. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/rowno", iLeng - 1);
  6182. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/colno", j);
  6183. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/supdegnitemno", subsupdegnitemno);
  6184. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/extdegnitemlevlcd", "");
  6185. model.makeValue(gPrePath_recInfoGridRef + iLeng + "]/recitem[" + (i+jIdx-col) + "]/degnunitcd", subdegnunitcd);
  6186. }
  6187. }
  6188. col++;
  6189. }
  6190. }
  6191. grd_diaglist.rebuild();
  6192. }
  6193. model.removeNodeset("/root/main/selectdiaglist");
  6194. }
  6195. /**
  6196. * @desc : 디자인항목순번으로 데이터를 가져온다
  6197. * @id :
  6198. * @event :
  6199. * @return :
  6200. * @authur : 이상현
  6201. */
  6202. function getItemDataByDegnItemNo(degnitemno, pmodel)
  6203. {
  6204. if(pmodel == null)
  6205. pmodel = model;
  6206. var pageInfo = new PAGEINFO();
  6207. var itemVal = new ITEMVAL();
  6208. itemVal.rectermcd = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermcd");
  6209. itemVal.rectermcd = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermnm");
  6210. itemVal.reccnts = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts");
  6211. itemVal.recimge = pmodel.getValue(pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge");
  6212. return itemVal;
  6213. }
  6214. /**
  6215. * @desc : 디자인항목코드로 데이터를 가져온다
  6216. * @id :
  6217. * @event :
  6218. * @return :
  6219. * @authur : 이상현
  6220. */
  6221. function getItemDataByDegnItemCd(degnitemcd, pmodel)
  6222. {
  6223. if(pmodel == null)
  6224. pmodel = model;
  6225. var pageInfo = new PAGEINFO();
  6226. var ins = pmodel.instances(0);
  6227. var nodeList = ins.selectNodes(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval");
  6228. var arrItemVal = new Array();
  6229. for(var i = 0; i < nodeList.length; i++)
  6230. {
  6231. var node = nodeList.item(i);
  6232. arrItemVal[i] = node.text;
  6233. }
  6234. return arrItemVal;
  6235. }
  6236. /**
  6237. * @desc : 디자인항목순번으로 데이터를 셋팅한다
  6238. * @id :
  6239. * @event :
  6240. * @return :
  6241. * @authur : 이상현
  6242. */
  6243. function setItemDataByDegnItemNo(degnitemno, itemval, type, pmodel, overWrite)
  6244. {
  6245. // type : 1 - rectermcd, 2 - reccnts, 3 - recimge
  6246. if(pmodel == null)
  6247. pmodel = model;
  6248. if(overWrite == null)
  6249. overWrite = true;
  6250. var pageInfo = new PAGEINFO();
  6251. var path = "";
  6252. if(type == 1)
  6253. {
  6254. path = pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/rectermcd";
  6255. }
  6256. else if(type == 2)
  6257. {
  6258. path = pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/reccnts";
  6259. }
  6260. else if(type == 3)
  6261. {
  6262. path = pageInfo.recItemRef + "[degnitemno = '" + degnitemno + "']/recimge";
  6263. }
  6264. if(!overWrite)
  6265. {
  6266. overWrite = pmodel.getValue(path) == "" ? true : false;
  6267. }
  6268. if(overWrite)
  6269. {
  6270. pmodel.setValue(path, itemval);
  6271. }
  6272. else
  6273. {
  6274. pmodel.setValue(path, pmodel.getValue(path) + "\n\n" + itemval);
  6275. }
  6276. pmodel.refresh();
  6277. }
  6278. /**
  6279. * @desc : 디자인항목코드로 데이터를 셋팅한다
  6280. * @id :
  6281. * @event :
  6282. * @return :
  6283. * @authur : 이상현
  6284. */
  6285. function setItemDataByDegnItemCd(degnitemcd, itemval, pmodel)
  6286. {
  6287. if(pmodel == null)
  6288. pmodel = model;
  6289. var pageInfo = new PAGEINFO();
  6290. //pmodel.setValue(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval", itemval);
  6291. var nodeList = ins.selectNodes(pageInfo.recItemRef + "[degnitemcd = '" + degnitemcd + "']/itemval");
  6292. for(var i = 0; i < nodeList.length; i++)
  6293. {
  6294. var node = nodeList.item(i);
  6295. node.text = itemval;
  6296. }
  6297. //pmodel.refresh();
  6298. }
  6299. /**
  6300. * @desc : 팝업으로 띄우는 서식여부
  6301. * @id :
  6302. * @event :
  6303. * @return :
  6304. * @authur : 이상현
  6305. */
  6306. function isOpenModalForm(formprogflag)
  6307. {
  6308. if (isPopup())
  6309. return false;
  6310. else if (formprogflag == "-" || formprogflag == "PROF" || formprogflag == "OCR")
  6311. return true;
  6312. else
  6313. return false;
  6314. }
  6315. /**
  6316. * @desc : 선택아이템 여부
  6317. * @id :
  6318. * @event :
  6319. * @return :
  6320. * @authur : 이상현
  6321. */
  6322. function isSelectItem(degnitemkind)
  6323. {
  6324. if(degnitemkind == "RDO" || degnitemkind == "CHK" || degnitemkind == "CMB" ||
  6325. degnitemkind == "BOL" || degnitemkind == "SSU" || degnitemkind == "ISU")
  6326. return true;
  6327. return false;
  6328. }
  6329. /**
  6330. * @desc : 컨텍스트메뉴 추가
  6331. * @id :
  6332. * @event :
  6333. * @return :
  6334. * @authur : 이상현
  6335. */
  6336. function addCntxMenu(name, func, paramlist, menuRef)
  6337. {
  6338. if(menuRef == null)
  6339. menuRef = "/root/hidden/menu/item";
  6340. var idx = getNodesetCnt(model, "/root/hidden/menu/item") + 1;
  6341. model.makeValue(menuRef + "[" + idx + "]/name", name);
  6342. model.makeValue(menuRef + "[" + idx + "]/func", func);
  6343. if(paramlist == null)
  6344. return;
  6345. for(var i = 0; i < paramlist.length; i++)
  6346. {
  6347. var param = paramlist[i];
  6348. model.makeValue(menuRef + "[" + idx + "]/param[" + (i + 1) + "]/name", param.name);
  6349. model.makeValue(menuRef + "[" + idx + "]/param[" + (i + 1) + "]/value", param.value);
  6350. }
  6351. }
  6352. /**
  6353. * @desc : 컨텍스트메뉴 삭제
  6354. * @id :
  6355. * @event :
  6356. * @return :
  6357. * @authur : 이상현
  6358. */
  6359. function removeCntxMenu(func, menuRef)
  6360. {
  6361. if(menuRef == null)
  6362. menuRef = "/root/hidden/menu/item";
  6363. var menuNode = model.instances(0).selectSingleNode(menuRef + "[func = '" + func + "']");
  6364. if(menuNode != null)
  6365. menuNode.parentNode.removeChild(menuNode);
  6366. }
  6367. /**
  6368. * @desc : 컨텍스트메뉴 찾기
  6369. * @id :
  6370. * @event :
  6371. * @return :
  6372. * @authur : 이상현
  6373. */
  6374. function findCntxMenu(func, menuRef)
  6375. {
  6376. if(menuRef == null)
  6377. menuRef = "/root/hidden/menu/item";
  6378. var menuNode = model.instances(0).selectSingleNode(menuRef + "[func = '" + func + "']");
  6379. return menuNode;
  6380. }
  6381. /**
  6382. * @desc : 파라미터로 컨텍스트메뉴 추가
  6383. * @id :
  6384. * @event :
  6385. * @return :
  6386. * @authur : 이상현
  6387. */
  6388. function findCntxMenuParamList(menuNode)
  6389. {
  6390. var paramNodeList = menuNode.selectNodes("param");
  6391. var arrParam = new Array();
  6392. for(var i = 0; i < paramNodeList.length; i++)
  6393. {
  6394. var paramNode = paramNodeList.item(i);
  6395. var param = new PARAM(paramNode.selectSingleNode("name").text, paramNode.selectSingleNode("value").text);
  6396. arrParam[i] = param;
  6397. }
  6398. return arrParam;
  6399. }
  6400. /**
  6401. * @desc : 문자열 길이 구함
  6402. * @id :
  6403. * @event :
  6404. * @return :
  6405. * @authur : 이상현
  6406. */
  6407. function getSrchStrCnt(srcStr, srchStr)
  6408. {
  6409. var arrStr = srcStr.split(srchStr);
  6410. return arrStr.length - 1;
  6411. }
  6412. /**
  6413. * @desc : 시간로그 셋팅
  6414. * @id :
  6415. * @event :
  6416. * @return :
  6417. * @authur : 이상현
  6418. */
  6419. function setTimeLog(pModel, pFlag, pTime)
  6420. {
  6421. var cnt = getNodesetCnt(pModel, "/root/emrtemp/times/" + pFlag)+1;
  6422. model.makeValue("/root/emrtemp/times/"+pFlag+"[" +cnt+ "]/time", pTime);
  6423. }
  6424. /**
  6425. * @desc : 로그 셋팅
  6426. * @id :
  6427. * @event :
  6428. * @return :
  6429. * @authur : 이상현
  6430. */
  6431. function addEmrLog(logcnts)
  6432. {
  6433. trace("[EMR FORM LOG] " + logcnts);
  6434. }
  6435. //var gTimeLogCnt = 0;
  6436. /**
  6437. * @desc : 사용자 시간로그 셋팅
  6438. * @id :
  6439. * @event :
  6440. * @return :
  6441. * @authur : 이상현
  6442. */
  6443. function SetUserTimeLog(lognm, clsenm, pmodel)
  6444. {
  6445. //sysf_trace_emr("***** SetUserTimeLog("+lognm+", "+clsenm+", "+pmodel+") *****");
  6446. if(utlf_isNull(pmodel))
  6447. {
  6448. if (frmf_isPopup())
  6449. pmodel = (this.getOwnerFrame().form).opener;
  6450. else
  6451. pmodel = this;
  6452. }
  6453. if (frmf_isPopup())
  6454. {
  6455. lognm = "(p)" + lognm;
  6456. }
  6457. if (sysf_getUserId() == "EMR" || sysf_getURLprefix().indexOf("localhost") > -1 || sysf_getUserId() == "emr")
  6458. {
  6459. var dt = new Date();
  6460. // var logCnt = getNodesetCnt(pmodel, "/root/timelog/log");
  6461. // logCnt++;
  6462. //
  6463. // var log = lognm +"\t"+ clsenm +"\t"+ dt.getTime()+"\t";
  6464. // pmodel.makeValue("/root/timelog/log[" +logCnt+ "]", log);
  6465. var log = lognm +"\t"+ clsenm +"\t"+ dt.getTime()+"\t";
  6466. if( pmodel.objects["ds_timelog"] == null ){
  6467. var sDsName = "ds_timelog";
  6468. var objDs = new Dataset(sDsName);
  6469. pmodel.addChild(sDsName, objDs);
  6470. objDs.name = sDsName;
  6471. }
  6472. var nRow = pmodel.ds_timelog.addRow();
  6473. dsf_makeValue(pmodel.ds_timelog, "log", "string", log, nRow);
  6474. addEmrLog(log);
  6475. }
  6476. else
  6477. {
  6478. var dt = new Date();
  6479. var log = lognm +"\t"+ clsenm +"\t"+ dt.getTime()+"\t";
  6480. addEmrLog(log);
  6481. }
  6482. }
  6483. /**
  6484. * @desc : 이벤트 셋팅
  6485. * @id :
  6486. * @event :
  6487. * @return :
  6488. * @authur : 이상현
  6489. */
  6490. function setComnEvent(srcformcd, degnitemno, ctrlid)
  6491. {
  6492. sysf_trace_emr("***** setComnEvent("+srcformcd+", "+degnitemno+", "+ctrlid+") EMRCommon 이벤트 셋팅 MTX 이벤트 삭제 recitem 에서 처리*****");
  6493. if(utlf_isNull(ctrlid))
  6494. ctrlid = "MTX_" + degnitemno;
  6495. var ctrl = eval(ctrlid);
  6496. // ctrl.onlbuttonup.addHandler(saveSelectionText);
  6497. // ctrl.onkeyup.addHandler(saveSelectionText);
  6498. ctrl.onrbuttondown.addHandler(showComnMenu);
  6499. // var ctrl = document.controls(ctrlid);
  6500. // ctrl.attribute("onmouseup") = "saveSelectionText('" + degnitemno + "', '" + ctrlid +"')";
  6501. // ctrl.attribute("onkeyup") = "saveSelectionText('" + degnitemno + "', '" + ctrlid +"')";
  6502. // ctrl.attribute("onmousedown") = "if(event.button == 3){showComnMenu('" + srcformcd + "', '" + degnitemno + "', '" + ctrlid +"');}";
  6503. // ctrl.attribute("DOMFocusOut") = "window.setPopupMenu(false);";
  6504. }
  6505. /**
  6506. * @desc : 마우스오른쪽버튼 클릭 메뉴 표시
  6507. * @id :
  6508. * @event :
  6509. * @return :
  6510. * @authur : 이상현
  6511. */
  6512. function showComnMenu(srcFormCd, degnitemno, ctrlid)
  6513. {
  6514. setParameter("comn_srcFormCd", srcFormCd);
  6515. setParameter("comn_degnitemno", degnitemno);
  6516. setParameter("comn_ctrlid", ctrlid);
  6517. //메뉴 초기화
  6518. model.removeNodeset("/root/hidden/menu/item");
  6519. addCntxMenu("상용구 선택", "selectComnuseMenu");
  6520. //박종훈 작업(뷰어테스트가 완료되지 않아 주석처리)
  6521. addCntxMenu("", "");
  6522. addCntxMenu("잘라내기 Ctrl+X", "selectCutMenu");
  6523. addCntxMenu("복사 Ctrl+C ", "selectCopyMenu");
  6524. addCntxMenu("붙여넣기 Ctrl+V", "selectPasteMenu");
  6525. addCntxMenu("삭제 Del", "selectDeleteMenu");
  6526. addCntxMenu("", "");
  6527. addCntxMenu("모두선택 Ctrl+A", "selectSelAllMenu");
  6528. //박종훈 작업 끝
  6529. /*addCntxMenu("예문 선택", "selectExamuseMenu");
  6530. addCntxMenu("", "");
  6531. addCntxMenu("상용구 등록", "addComnuseMenu");
  6532. addCntxMenu("예문 등록", "addExamuseMenu");*/
  6533. if(document.controls(event.focus) != null)
  6534. {
  6535. if(document.controls(event.focus).elementName == "xforms:textarea")
  6536. window.setPopupMenu(true, "/root/hidden/menu/item", "name", "func", false);//사용자지정팝업메뉴설정
  6537. }
  6538. }
  6539. /**
  6540. * @desc : 키누름 이벤트
  6541. * @id :
  6542. * @event :
  6543. * @return :
  6544. * @authur : 이상현
  6545. */
  6546. function keyPress(srcFormCd, degnitemno, ctrlid)
  6547. {
  6548. return;
  6549. if(ctrlid == null)
  6550. ctrlid = "MTX_" + degnitemno;
  6551. if(event.ctrlKey)
  6552. {
  6553. switch(event.keyCode)
  6554. {
  6555. case 17 : //'q' 113
  6556. selectComnuse(srcFormCd, degnitemno, 'C', ctrlid);
  6557. break;
  6558. case 23 : //'w' 119
  6559. selectComnuse(srcFormCd, degnitemno, 'E', ctrlid);
  6560. break;
  6561. case 5 : //'e' 101
  6562. addComnuse(srcFormCd, degnitemno, 'C', ctrlid);
  6563. break;
  6564. case 18 : //'r' 114
  6565. addComnuse(srcFormCd, degnitemno, 'E', ctrlid);
  6566. break;
  6567. }
  6568. }
  6569. }
  6570. /**
  6571. * @desc : 상용구 메뉴 선택
  6572. * @id :
  6573. * @event :
  6574. * @return :
  6575. * @authur : 이상현
  6576. */
  6577. function selectComnuseMenu()
  6578. {
  6579. selectComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6580. }
  6581. /**
  6582. * @desc : 복사 메뉴 선택
  6583. * @id :
  6584. * @event :
  6585. * @return :
  6586. * @authur : 박종훈
  6587. */
  6588. function selectCopyMenu()
  6589. {
  6590. selectCopy(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6591. }
  6592. /**
  6593. * @desc : 잘라내기 메뉴 선택
  6594. * @id :
  6595. * @event :
  6596. * @return :
  6597. * @authur : 박종훈
  6598. */
  6599. function selectCutMenu()
  6600. {
  6601. selectCut(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6602. }
  6603. /**
  6604. * @desc : 모두선택 메뉴 선택
  6605. * @id :
  6606. * @event :
  6607. * @return :
  6608. * @authur : 박종훈
  6609. */
  6610. function selectSelAllMenu()
  6611. {
  6612. selectSelAll(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6613. }
  6614. /**
  6615. * @desc : 붙여넣기 메뉴 선택
  6616. * @id :
  6617. * @event :
  6618. * @return :
  6619. * @authur : 박종훈
  6620. */
  6621. function selectPasteMenu()
  6622. {
  6623. selectPaste(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6624. }
  6625. /**
  6626. * @desc : 삭제 메뉴 선택
  6627. * @id :
  6628. * @event :
  6629. * @return :
  6630. * @authur : 박종훈
  6631. */
  6632. function selectDeleteMenu()
  6633. {
  6634. selectDelete(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6635. }
  6636. /**
  6637. * @desc : 예문 메뉴 선택
  6638. * @id :
  6639. * @event :
  6640. * @return :
  6641. * @authur : 이상현
  6642. */
  6643. function selectExamuseMenu()
  6644. {
  6645. selectComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "E", getParameter("comn_ctrlid"));
  6646. }
  6647. /**
  6648. * @desc : 상용구 메뉴 추가
  6649. * @id :
  6650. * @event :
  6651. * @return :
  6652. * @authur : 이상현
  6653. */
  6654. function addComnuseMenu()
  6655. {
  6656. addComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "C", getParameter("comn_ctrlid"));
  6657. }
  6658. /**
  6659. * @desc : 예문 메뉴 추가
  6660. * @id :
  6661. * @event :
  6662. * @return :
  6663. * @authur : 이상현
  6664. */
  6665. function addExamuseMenu()
  6666. {
  6667. addComnuse(getParameter("comn_srcFormCd"), getParameter("comn_degnitemno"), "E", getParameter("comn_ctrlid"));
  6668. }
  6669. /**
  6670. * @desc : 상용구전용 모달 함수
  6671. * @id :
  6672. * @event :
  6673. * @return :
  6674. * @authur : 이경희
  6675. */
  6676. /*
  6677. HIT 가이드는 openInternal 일 경우 frmf_openForm 으로 전환
  6678. 누락부분 체트! frmf_openForm parameter 는 sScreenID, objScrnInfo, objParam만 있음.
  6679. */
  6680. function modalForComnUse(id,monNo,xPos,yPos,wid,ref,resultref,userProp,prevPos, authCode)
  6681. {
  6682. var rtn = "";
  6683. //body.disabled = true;
  6684. if (userProp == null) {
  6685. userProp = "min:hidden;max:hidden;";
  6686. } else {
  6687. userProp = "min:hidden;max:hidden;" + userProp;
  6688. }
  6689. if (authCode == null) {
  6690. sysf_setGlobalVariable("spclscrnauth", frmf_getScreenAuth(""));
  6691. } else {
  6692. sysf_setGlobalVariable("spclscrnauth", frmf_getScreenAuth(authCode));
  6693. }
  6694. //rtn = openInternal("modal",id,"scn",monNo,xPos,yPos,wid,ref,resultref,userProp,prevPos);
  6695. rtn = frmf_openForm(id,null,null);
  6696. //body.disabled = false;
  6697. return rtn;
  6698. }
  6699. /**
  6700. * @desc : 상용구 선택
  6701. * @id :
  6702. * @event :
  6703. * @return :
  6704. * @authur : 이상현
  6705. */
  6706. function selectComnuse(srcFormCd, degnitemno, chosflag, ctrlid)
  6707. {
  6708. // 타과인지 본인과인지 확인
  6709. var deptcd = getUserInfo("dutplcecd");
  6710. var formmastNode = opener.window.model.instances(0).selectSingleNode("/root/main/forminfo/formmast");
  6711. var supformcd = "";
  6712. var supformkind = "";
  6713. if(formmastNode != null)
  6714. {
  6715. var formcdNode = formmastNode.selectSingleNode("formcd");
  6716. var formprogflagNode = formmastNode.selectSingleNode("formprogflag");
  6717. var formprognmNode = formmastNode.selectSingleNode("formprognm");
  6718. var formdeptcdNode = formmastNode.selectSingleNode("formdeptcd");
  6719. var srcformcdNode = formmastNode.selectSingleNode("srcformcd");
  6720. var formkindNode = formmastNode.selectSingleNode("formkind");
  6721. supformcd = formcdNode.text;
  6722. supformkind = formkindNode.text;
  6723. // formcd로 변경
  6724. setParameter("comn_formprogflag", formprogflagNode.text);
  6725. // 공통서식인지 확인
  6726. if((formprogflagNode.text == "PROG" || formprogflagNode.text == "MAIN")
  6727. && formkindNode.text == "C" && formprognmNode.text != "")
  6728. {
  6729. srcFormCd = srcformcdNode.text; //formmastNode.selectSingleNode("srcformcd").text;
  6730. setParameter("deptflag", "U");
  6731. }
  6732. else if(formprogflagNode.text == "PROF") // 제증명
  6733. {
  6734. srcFormCd = srcformcdNode.text; //formmastNode.selectSingleNode("srcformcd").text;
  6735. setParameter("deptflag", "U");
  6736. }
  6737. else // 특수서식이면
  6738. {
  6739. // 특수 서식중에 타과 서식인지 사용자부서 서식인지 확인
  6740. if(deptcd == formdeptcdNode.text) // || formdeptcdNode.text == "-")
  6741. {
  6742. setParameter("deptflag", "U");
  6743. }
  6744. else
  6745. {
  6746. setParameter("deptflag", "E");
  6747. setParameter("otherdeptcd", formdeptcdNode.text);
  6748. }
  6749. }
  6750. }
  6751. if(ctrlid == null)
  6752. ctrlid = "MTX_" + degnitemno;
  6753. var ctrl = document.controls(ctrlid);
  6754. // 현재 입력중인 텍스트를 얻는다.
  6755. ctrl.dispatch("xforms-value-changed");
  6756. //var typingText = ctrl.currentText;
  6757. //var tempFocus = model.getFocus();
  6758. //model.setFocus(tempFocus);
  6759. /////////////////////////////////////
  6760. var txtSelPos = ctrl.selBegin;
  6761. var curText = ctrl.currentText;
  6762. var curTextBefore = curText.substr(0, txtSelPos);
  6763. var curTextAfter = curText.substr(txtSelPos, curText.length);
  6764. /////////////////////////////////////
  6765. var pageInfo = new PAGEINFO();
  6766. var fstlevlitemcd = model.getValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/fstlevlitemcd");
  6767. setParameter("openmode", "select");
  6768. setParameter("comn_chosflag", chosflag);
  6769. setParameter("comn_degnitemcd", fstlevlitemcd);
  6770. setParameter("comn_srcformcd", srcFormCd);
  6771. // 2008-10-23
  6772. // Modal 함수 내의 body.disable 때문에 커서가 안보이는 문제로 새로운 함수를 만듬
  6773. //modal("SPMRF04900",1 ,50, 50);
  6774. modalForComnUse("SPMRF04900",1 ,50, 50);
  6775. var comnuse = getParameter("comncnts"); //내용
  6776. if(comnuse == "")
  6777. return;
  6778. var pdocument = null;
  6779. var pmodel = null;
  6780. var pinstance = null;
  6781. //완성서식을 찾아간다.
  6782. var formcd = model.getValue(pageInfo.formmastRef + "/formcd");
  6783. var formkind = model.getValue(pageInfo.formmastRef + "/formkind");
  6784. if(supformcd == formcd) // 부분서식이 없는 완성서식에서 상용구를 사용하는 경우
  6785. {
  6786. if(supformkind == formkind) // 완성서식에서 상용구를 사용하는 경우
  6787. {
  6788. if(formkind == "C")
  6789. {
  6790. pdocument = document;
  6791. pmodel = model;
  6792. pinstance = instance1;
  6793. }
  6794. else if(formkind == "U")
  6795. {
  6796. pdocument = opener.document;
  6797. pmodel = opener.model;
  6798. pinstance = opener.instance1;
  6799. }
  6800. }
  6801. }
  6802. else // 부분서식이 있는 완성서식에서 상용구를 사용하는 경우
  6803. {
  6804. if(formkind == "C")
  6805. {
  6806. pdocument = document;
  6807. pmodel = model;
  6808. pinstance = instance1;
  6809. }
  6810. else if(formkind == "U")
  6811. {
  6812. pdocument = opener.document;
  6813. pmodel = opener.model;
  6814. pinstance = opener.instance1;
  6815. }
  6816. }
  6817. pmodel.refresh(); // ctrl 값이 사라짐.
  6818. var SetEndCursorPos = txtSelPos;
  6819. var arrComnuse = comnuse.split("▩");
  6820. for(var i = 0; i < arrComnuse.length - 1; i++)
  6821. {
  6822. //선택한 상용구를 분리한다.
  6823. var arrComncnts = arrComnuse[i].split("▦");
  6824. var degnitemcd = arrComncnts[0];
  6825. var itembasecd = degnitemcd.substr(0, 7);
  6826. var comncnts = arrComncnts[1];
  6827. //상용구를 setting할 아이템을 찾는다.
  6828. //상용구 선택액션을 취한 아이템의 경우 해당 아이템에 바로 setting
  6829. //model.refreshpart("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemno = '" + degnitemno + "' and degnitemkind = 'MTX']");
  6830. var ivwObj = null;
  6831. // 의뢰서식같이 MTX아이템없이 FRM만 존재하는 서식때문에 미리 체크.
  6832. if(formkind == "U")
  6833. ivwObj = pdocument.controls("ivw_" + degnitemcd);
  6834. if(ivwObj == null)
  6835. {
  6836. var itemNode = pinstance.selectSingleNode("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemno = '" + degnitemno + "' and degnitemkind = 'MTX']/reccnts");
  6837. if(itemNode != null)
  6838. {
  6839. if(fstlevlitemcd == degnitemcd)
  6840. {
  6841. itemNode.text = (curText == "") ? comncnts : curTextBefore + comncnts + curTextAfter;
  6842. SetEndCursorPos += comncnts.length;
  6843. }
  6844. else
  6845. {
  6846. itemNode.text = (itemNode.text == "") ? comncnts : itemNode.text + "\n" + comncnts;
  6847. }
  6848. continue;
  6849. }
  6850. }
  6851. //1레벨 코드가 선택한 상용구 아이템인 아이템들을 순회하면서 첫번째 MTX를 찾아서 setting한다.
  6852. //var itemList = pinstance.selectNodes("/root/main/recinfo/recitem[degnitemlevlno='1' and fstlevlitemcd = '" + degnitemcd + "']");
  6853. //var itemList = pinstance.selectNodes("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "']");
  6854. var itemList = pinstance.selectNodes("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemkind = 'MTX']");
  6855. for(var j = 0; j < itemList.length; j++)
  6856. {
  6857. itemNode = itemList.item(j);
  6858. var degnitemkind = itemNode.selectSingleNode("degnitemkind").text;
  6859. //var fstlevlitemcd = itemNode.selectSingleNode("fstlevlitemcd").text;
  6860. var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  6861. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  6862. var degnitemnm = itemNode.selectSingleNode("degnitemnm").text;
  6863. var degnitemlevlno = itemNode.selectSingleNode("degnitemlevlno").text;
  6864. // MTX를 상위 아이템으로 하는 하위 FRM이 있는지 확인.
  6865. //var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  6866. //var frmList = pinstance.selectNodes("/root/main/recinfo/recitem[degnitemlevlno = '2' and degnitemnm = '자유입력' and supdegnitemno = '" + degnitemno + "']");
  6867. var frmList = pinstance.selectNodes("/root/main/recinfo/recitem[degnitemlevlno = '" + (parseInt(degnitemlevlno) + 1) + "' and supdegnitemno = '" + degnitemno + "']");
  6868. if(frmList.length > 0)
  6869. {
  6870. for(var idx=0; idx < frmList.length; idx++)
  6871. {
  6872. var frmNode = frmList.item(idx);
  6873. if(frmNode.selectSingleNode("degnitemkind").text == "FRM")
  6874. {
  6875. degnitemkind = "FRM";
  6876. var degnitemcd = itemNode.selectSingleNode("degnitemcd").text;
  6877. var degnitemno = itemNode.selectSingleNode("degnitemno").text;
  6878. var subForm = pinstance.selectSingleNode("/root/main/forminfo/unitformmast[orgsupdegnitemcd = '" + degnitemcd + "' and orgsupdegnitemno = '" + degnitemno + "']");
  6879. if(subForm != null)
  6880. {
  6881. ////////////////////////////////////////////////////////////////////////////////////
  6882. // 기록이 로딩되었나 확인한다.
  6883. if(subForm.selectSingleNode("loaded").text == "")
  6884. {
  6885. // 서식을 로딩한다.
  6886. expanSubsection(degnitemcd);
  6887. subForm.selectSingleNode("loaded").text = "true";
  6888. }
  6889. var ivwfrm = pdocument.controls("ivw_" + degnitemcd);
  6890. if(ivwfrm != null)
  6891. {
  6892. var ivwmodel = ivwfrm.model;
  6893. var ivwinstance = ivwfrm.instance1;
  6894. //itemNode = ivwinstance.selectSingleNode("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemno = '" + degnitemno + "' and degnitemkind = 'MTX']/reccnts");
  6895. itemNode = ivwinstance.selectSingleNode("/root/main/recinfo/recitem[fstlevlitemcd = '" + degnitemcd + "' and degnitemkind = 'MTX']/reccnts");
  6896. if(itemNode != null)
  6897. {
  6898. if(fstlevlitemcd == degnitemcd)
  6899. {
  6900. itemNode.text = (curText == "") ? comncnts : curTextBefore + comncnts + curTextAfter;
  6901. // 부분서식로딩으로 삭제
  6902. //SetEndCursorPos += comncnts.length;
  6903. }
  6904. else
  6905. {
  6906. itemNode.text = (itemNode.text == "") ? comncnts : itemNode.text + "\n" + comncnts;
  6907. }
  6908. ivwmodel.refresh();
  6909. // pmodel이 opener.model을 가리키기 때문에 iviewer내의 모델로 변경해줌.
  6910. // 부분서식로딩으로 삭제
  6911. //pmodel = model;
  6912. break;
  6913. }
  6914. }
  6915. }
  6916. }
  6917. }
  6918. }
  6919. else
  6920. {
  6921. var valueNode = itemNode.selectSingleNode("reccnts");
  6922. if(fstlevlitemcd == degnitemcd)
  6923. {
  6924. valueNode.text = (curText == "") ? comncnts : curTextBefore + comncnts + curTextAfter;
  6925. SetEndCursorPos += comncnts.length;
  6926. }
  6927. else
  6928. {
  6929. valueNode.text = (valueNode.text == "") ? comncnts : valueNode.text + "\n" + comncnts;
  6930. }
  6931. continue;
  6932. }
  6933. }
  6934. }
  6935. setParameter("comncnts", ""); //내용
  6936. setParameter("deptflag", "");
  6937. setParameter("otherdeptcd", "");
  6938. pmodel.refresh();
  6939. pmodel.setFocus(ctrlid);
  6940. ctrl.selBegin = SetEndCursorPos;
  6941. ctrl.selEnd = SetEndCursorPos;
  6942. //model.setFocus(ctrlid);
  6943. }
  6944. /**
  6945. * @desc : 복사 선택
  6946. * @id :
  6947. * @event :
  6948. * @return :
  6949. * @authur : 박종훈
  6950. */
  6951. function selectCopy(srcFormCd, degnitemno, chosflag, ctrlid)
  6952. {
  6953. if(ctrlid == null)
  6954. ctrlid = "MTX_" + degnitemno;
  6955. var ctrl = document.controls(ctrlid);
  6956. window.clipBoardData = ctrl.selectionText;
  6957. }
  6958. /**
  6959. * @desc : 잘라내기 선택
  6960. * @id :
  6961. * @event :
  6962. * @return :
  6963. * @authur : 박종훈
  6964. */
  6965. function selectCut(srcFormCd, degnitemno, chosflag, ctrlid)
  6966. {
  6967. if(ctrlid == null)
  6968. ctrlid = "MTX_" + degnitemno;
  6969. var ctrl = document.controls(ctrlid);
  6970. window.clipBoardData = ctrl.selectionText;
  6971. ctrl.selectionText = "";
  6972. }
  6973. /**
  6974. * @desc : 삭제 선택
  6975. * @id :
  6976. * @event :
  6977. * @return :
  6978. * @authur : 박종훈
  6979. */
  6980. function selectDelete(srcFormCd, degnitemno, chosflag, ctrlid)
  6981. {
  6982. if(ctrlid == null)
  6983. ctrlid = "MTX_" + degnitemno;
  6984. var ctrl = document.controls(ctrlid);
  6985. ctrl.selectionText = "";
  6986. }
  6987. /**
  6988. * @desc : 모두선택 선택
  6989. * @id :
  6990. * @event :
  6991. * @return :
  6992. * @authur : 박종훈
  6993. */
  6994. function selectSelAll(srcFormCd, degnitemno, chosflag, ctrlid)
  6995. {
  6996. if(ctrlid == null)
  6997. ctrlid = "MTX_" + degnitemno;
  6998. var ctrl = document.controls(ctrlid);
  6999. ctrl.selBegin = 0;
  7000. ctrl.selEnd = (ctrl.currentText).length;
  7001. }
  7002. /**
  7003. * @desc : 붙여넣기 선택
  7004. * @id :
  7005. * @event :
  7006. * @return :
  7007. * @authur : 박종훈
  7008. */
  7009. function selectPaste(srcFormCd, degnitemno, chosflag, ctrlid)
  7010. {
  7011. if(ctrlid == null)
  7012. ctrlid = "MTX_" + degnitemno;
  7013. var ctrl = document.controls(ctrlid);
  7014. // 현재 입력중인 텍스트를 얻는다.
  7015. ctrl.dispatch("xforms-value-changed");
  7016. //var typingText = ctrl.currentText;
  7017. //var tempFocus = model.getFocus();
  7018. //model.setFocus(tempFocus);
  7019. var ctrl = document.controls(ctrlid);
  7020. ctrl.selectionText = "";
  7021. /////////////////////////////////////
  7022. var txtSelPos = ctrl.selBegin;
  7023. var curText = ctrl.currentText;
  7024. var curTextBefore = curText.substr(0, txtSelPos);
  7025. var curTextAfter = curText.substr(txtSelPos, curText.length);
  7026. /////////////////////////////////////
  7027. var dataType = window.clipBoardDataType;
  7028. if (dataType == "TEXT")
  7029. {
  7030. var comncnts = escape(window.clipBoardData);
  7031. //2009-09-15 오후 7:50:37 강지훈 수정 : Enter값처리를 위해 수정
  7032. comncnts = comncnts.setReplaceWord("%0D%0A", "%0A");
  7033. ctrl.currentText = curTextBefore + unescape(comncnts) + curTextAfter;
  7034. }
  7035. }
  7036. var gMaxSectionID = "";
  7037. function expanSubsection(itemcd)
  7038. {
  7039. var pageInfo = new PAGEINFO();
  7040. var bFold = itemcd == gMaxSectionID ? true : false;
  7041. var ctrl = null;
  7042. var prevItemCd = gMaxSectionID;
  7043. var unitformcd = "";
  7044. var secCtrl = document.controls("lbl_" + itemcd);
  7045. var formdegnseq = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemcd+"']/formdegnseq");
  7046. unitformcd = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemcd+"']/formcd");
  7047. if(formdegnseq == "")
  7048. ctrl = document.controls("tar_" + itemcd);
  7049. else
  7050. ctrl = document.controls("ivw_" + itemcd);
  7051. //섹션 선택시 해당 섹션의 부분서식의 로딩되어있는지 확인하여
  7052. //로딩되어 있지 않으면 부분서식로딩
  7053. var ivwObj = document.controls("ivw_" +itemcd);
  7054. if(ivwObj != null)
  7055. {
  7056. if(ivwObj.src == "")
  7057. {
  7058. //var unitformcd = model.getValue(gPageInfo.formdegnRef + "[supdegnitemcd='" + itemCds[i] +
  7059. // "' and degnitemkind = 'FRM' and itemuseflag = 'F0']/degnitemcd");
  7060. var unitformcd = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemcd+"']/formcd");
  7061. if (unitformcd != "")
  7062. {
  7063. ivwObj.attribute("supdegnitemcd") = itemcd;
  7064. ivwObj.attribute("unitformcd") = unitformcd;
  7065. model.addLog(unitformcd + " Loading 시작 : " + getCurrentTime());
  7066. loadUnitForm(ivwObj, itemcd);
  7067. model.addLog(unitformcd + " Loading 끝 : " + getCurrentTime());
  7068. }
  7069. }
  7070. }
  7071. gMaxSectionID = "";
  7072. if(ctrl != null)
  7073. {
  7074. ctrl.attribute("top") = ctrl.attribute("orgtop");
  7075. ctrl.attribute("height") = ctrl.attribute("orgheight");
  7076. //secCtrl.attribute("background-color") = "#99ccff";//secCtrl.attribute("orgbackground-color");
  7077. ctrl.visible = true;
  7078. if (unitformcd == "0000000901" || unitformcd == "0000000899" || unitformcd == "0000000900")
  7079. {
  7080. ctrl.window.javascript.fInitPage(false, parseInt(ctrl.attribute("height")), parseInt(ctrl.attribute("width")));
  7081. }
  7082. }
  7083. }
  7084. /**
  7085. * @desc : 상용구추가
  7086. * @id :
  7087. * @event :
  7088. * @return :
  7089. * @authur : 이상현
  7090. */
  7091. function addComnuse(srcFormCd, degnitemno, chosflag, ctrlid)
  7092. {
  7093. if(ctrlid == null)
  7094. ctrlid = "MTX_" + degnitemno;
  7095. var ctrl = document.controls(ctrlid);
  7096. selBegin = model.getValue("/root/hidden/selectiontext/begin");
  7097. selEnd = model.getValue("/root/hidden/selectiontext/end");
  7098. var curText = ctrl.currentText;
  7099. var selText = curText.substring(ctrl.selBegin, ctrl.selEnd);
  7100. var pageInfo = new PAGEINFO();
  7101. var fstlevlitemcd = model.getValue(pageInfo.recItemRef +
  7102. "[degnitemno='" + degnitemno + "']/fstlevlitemcd");
  7103. //var itembasecd = fstlevlitemcd.substr(0,7);
  7104. if(srcFormCd == "")
  7105. {
  7106. messageBox("서식 정보가", "I004");
  7107. return;
  7108. }
  7109. if(fstlevlitemcd == "")
  7110. {
  7111. messageBox("항목 정보가", "I004");
  7112. return;
  7113. }
  7114. setParameter("openmode", "insert");
  7115. setParameter("comn_chosflag", chosflag);
  7116. setParameter("comn_degnitemcd", fstlevlitemcd);
  7117. setParameter("comn_srcformcd", srcFormCd);
  7118. setParameter("comncnts", selText);
  7119. modal("SMMRF02400",1 ,50, 50);
  7120. var ctrl = document.controls(ctrlid);
  7121. var txtSelPos = ctrl.selBegin;
  7122. var curText = ctrl.currentText;
  7123. var curTextBefore = curText.substr(0, txtSelPos);
  7124. var curTextAfter = curText.substr(txtSelPos, curText.length);
  7125. var commuse = getParameter("comncnts"); //내용
  7126. model.setFocus("MTX_" + degnitemno);
  7127. ctrl.currentText = curTextBefore + commuse + curTextAfter;
  7128. ctrl.selBegin = txtSelPos + commuse.length;
  7129. ctrl.dispatch("onkeyup");
  7130. //setParameter("comnseq", ""); //상용구순번
  7131. //setParameter("reprnm", ""); //대표명
  7132. setParameter("comncnts", ""); //내용
  7133. }
  7134. /**
  7135. * @desc : 선택된 텍스트 저장
  7136. * @id :
  7137. * @event :
  7138. * @return :
  7139. * @authur : 이상현
  7140. */
  7141. function saveSelectionText(obj, e)
  7142. {
  7143. sysf_trace_emr("***** saveSelectionText("+degnitemno+", "+ctrlid+") EMRCommon 선택된 텍스트 저장이벤트 확인!!!*****");
  7144. //degnitemno, ctrlid
  7145. var degnitemno = obj.name.split("_");
  7146. var ctrlid = "";
  7147. if(utlf_isNull())
  7148. ctrlid = "MTX_" + degnitemno;
  7149. var ctrl = this.components[ctrlid];
  7150. var oDs = this.objects["ds_hidden_selectiontext"];
  7151. if( oDs == null ) dsf_createDs("ds_hidden_selectiontext");
  7152. if( ctrl == null ) var selidx = ["",""]
  7153. else var selidx = ctrl.getSelect();
  7154. dsf_makeValue(ds_hidden_selectiontext, "begin", "string", selidx[0]);
  7155. dsf_makeValue(ds_hidden_selectiontext, "end", "string", selidx[1]);
  7156. // model.makeValue("/root/hidden/selectiontext/begin", ctrl.selBegin);
  7157. // model.makeValue("/root/hidden/selectiontext/end", ctrl.selEnd);
  7158. }
  7159. /**
  7160. * @desc : 로컬, 개발환경 여부
  7161. * @id :
  7162. * @event :
  7163. * @return :
  7164. * @authur : 이상현
  7165. */
  7166. function isDevMode()
  7167. {
  7168. if (window.document.location == "C:/CMCProject/application/webapps/emr/medirecweb/xrw/" ||
  7169. window.document.location == "D:/CMCProject/application/webapps/emr/medirecweb/xrw/" ||
  7170. window.document.location.indexOf("dev999") > -1)
  7171. {
  7172. return true;
  7173. }
  7174. else
  7175. {
  7176. return false;
  7177. }
  7178. }
  7179. /**
  7180. * @desc : 이미지 로드용 대화상자 열기
  7181. * @id :
  7182. * @event :
  7183. * @return :
  7184. * @authur : 이상현
  7185. */
  7186. function openImageFileDialogEx(maxBytes, bMulti)
  7187. {
  7188. if(bMulti == null)
  7189. bMulti = false;
  7190. var file = window.fileDialog("open","",bMulti,"","","All Files (*.*)|*.*|JPEG Files(*.jpg)|*.jpg|GIF Files(*.gif)|*.gif|BMP Files(*.bmp)|*.bmp");
  7191. var arrFile = file.split("|");
  7192. for(var i = 0; i < arrFile.length; i++)
  7193. {
  7194. var subfile = arrFile[i];
  7195. if (subfile != "" && maxBytes != null) { // 파일 크기 확인
  7196. var fso = new ActiveXObject("Scripting.FileSystemObject");
  7197. var f = fso.GetFile(subfile);
  7198. if (f.size > maxBytes) {
  7199. messageBox("파일 크기가 최대 크기인 2M를","E003");
  7200. return "";
  7201. }
  7202. }
  7203. }
  7204. return file;
  7205. }
  7206. /**
  7207. * @desc : 서식 데이터 가져온다
  7208. * @id :
  7209. * @event :
  7210. * @return :
  7211. * @authur : 이상현
  7212. */
  7213. function getFormData(formcd, formrecseq, ref, rsltref)
  7214. {
  7215. var pageInfo = new PAGEINFO();
  7216. if(ref == null)
  7217. ref = "/root/send/formreq";
  7218. if(rsltref == null)
  7219. rsltref = pageInfo.forminfoRef;
  7220. pageInfo.formmastRef = rsltref + "/formmast";
  7221. pageInfo.formdegnRef = rsltref + "/formdegn";
  7222. if(getFormDegnInfoByFormcd(formcd, ref, rsltref) == false)
  7223. return;
  7224. makeInstance(pageInfo, true);
  7225. if(formrecseq == null)
  7226. return;
  7227. var recRef = "/root/hidden/recinfo";
  7228. if(getFormRecData(formrecseq, ref, recRef) == false)
  7229. return;
  7230. setSrchData(recRef + "/recitem", window);
  7231. }
  7232. /**
  7233. * @desc : 서식코드로 서식디자인 정보 조회
  7234. * @id :
  7235. * @event :
  7236. * @return :
  7237. * @authur : 이상현
  7238. */
  7239. function getFormDegnInfoByFormcd(formcd, ref, rsltref)
  7240. {
  7241. if(ref == null)
  7242. ref = "/root/send/formreq";
  7243. if(rsltref == null)
  7244. rsltref = "/root/main/forminfo";
  7245. var tmpRsltRef = "/root/hidden/formdegn/forminfo";
  7246. model.removeNode(tmpRsltRef);
  7247. model.makeNode(tmpRsltRef);
  7248. model.makeValue(ref + "/formcd", formcd);
  7249. model.makeValue(ref + "/formdegnseq", "");
  7250. model.makeValue(ref + "/extnunitformlistyn", "N");
  7251. model.makeValue(ref + "/cashedformdegnseq", "");
  7252. model.makeValue(ref + "/sysformrecdt", "");
  7253. model.makeValue(ref + "/mode", "D");
  7254. if(submit("TRMRF02001", "false", ref, tmpRsltRef))
  7255. {
  7256. //model.copyNode(rsltref, tmpRsltRef);
  7257. copyNodeset(rsltref, tmpRsltRef);
  7258. model.removeNode(tmpRsltRef);
  7259. return true;
  7260. }
  7261. return false;
  7262. }
  7263. /**
  7264. * @desc : 서식 기록값을 가져온다
  7265. * @id :
  7266. * @event :
  7267. * @return :
  7268. * @authur : 이상현
  7269. */
  7270. function getFormRecData(formrecseq, ref, rsltref)
  7271. {
  7272. if(ref == null)
  7273. ref = "/root/send/formreq";
  7274. if(rsltref == null)
  7275. rsltref = "/root/hidden/recinfo";
  7276. model.makeValue(ref + "/formrecseq", formrecseq);
  7277. if(submit("TRMMR01301", "false", ref, rsltref))
  7278. {
  7279. doReplaceLtGt(rsltref + "/recitem");
  7280. return true;
  7281. }
  7282. return false;
  7283. }
  7284. /**
  7285. * @desc : 그리드 행 추가
  7286. * @id :
  7287. * @event :
  7288. * @return :
  7289. * @authur : 이상현
  7290. */
  7291. function addGridRow(degnitemno, type)
  7292. {
  7293. try
  7294. {
  7295. if(type == null)
  7296. type = "GRD";
  7297. var pageInfo = new PAGEINFO();
  7298. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno='" + degnitemno + "']").length;
  7299. var GrdNodeList = instance1.selectSingleNode(pageInfo.initRecinfoGridRef + "[degnitemno='" + degnitemno + "']");
  7300. if(GrdNodeList == null)
  7301. return;
  7302. var tmpNode = GrdNodeList.cloneNode(true);
  7303. var recitemNode = tmpNode.selectSingleNode("recitem");
  7304. var rownoNode = recitemNode.selectSingleNode("rowno");
  7305. if(rownoNode != null)
  7306. rownoNode.text = cnt;
  7307. var nodeList = tmpNode.selectNodes("recitem");
  7308. for(var i = 0; i < nodeList.length; i++)
  7309. {
  7310. var node = nodeList.item(i); // recitem 한 노드
  7311. var rownoNode = node.selectSingleNode("rowno");
  7312. if(rownoNode != null)
  7313. rownoNode.text = cnt;
  7314. var colnoNode = node.selectSingleNode("colno");
  7315. var reccntsNode = node.selectSingleNode("reccnts");
  7316. if(reccntsNode != null)
  7317. reccntsNode.text = "";
  7318. var rectermcdNode = node.selectSingleNode("rectermcd");
  7319. if(rectermcdNode != null)
  7320. rectermcdNode.text = "";
  7321. var rectermnmNode = node.selectSingleNode("rectermnm");
  7322. if(rectermnmNode != null)
  7323. rectermnmNode.text = "";
  7324. }
  7325. var recinfoNode = instance1.selectSingleNode(pageInfo.recRef);
  7326. model.duplicate(recinfoNode, tmpNode);
  7327. //model.duplicate(recinfoNode, recitemNode);
  7328. var grd = document.controls(type + "_" + degnitemno);
  7329. grd.rebuild();
  7330. model.refresh();
  7331. }
  7332. catch(e)
  7333. {
  7334. return;
  7335. }
  7336. }
  7337. /**
  7338. * @desc : 그리드 행추가 Version2
  7339. * @id :
  7340. * @event :
  7341. * @return :
  7342. * @authur : 이상현
  7343. */
  7344. function addGridRowEx(degnitemno, type)
  7345. {
  7346. addGridRow(degnitemno, type);
  7347. var grd = document.controls(type + "_" + degnitemno);
  7348. grd.isreadonly(grd.rows - 1, grd.colRef("recitem[colno = '2']/recitemnm")) = false;
  7349. grd.isreadonly(grd.rows - 1, grd.colRef("recitem[colno = '2']/rectermcd")) = false;
  7350. }
  7351. /**
  7352. * @desc : 그리드 열 추가
  7353. * @id :
  7354. * @event :
  7355. * @return :
  7356. * @authur : 이상현
  7357. */
  7358. function addGridCol(degnitemno, viewobj)
  7359. {
  7360. try
  7361. {
  7362. var pageInfo = new PAGEINFO();
  7363. var pmodel = null;
  7364. if(viewobj == null)
  7365. {
  7366. viewobj = window;
  7367. pmodel = model;
  7368. }
  7369. else
  7370. pmodel = viewobj.model;
  7371. ////////////////
  7372. var degnattrval = pmodel.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/degnattrval");
  7373. var ctrltype = "ctrl";
  7374. var strStyle = "";
  7375. strStyle += getCtrlAttribute("font-family", getStyleValue(degnattrval, ctrltype + ".font-family"));
  7376. strStyle += getCtrlAttribute("font-size", getStyleValue(degnattrval, ctrltype + ".font-size"));
  7377. strStyle += getCtrlAttribute("font-weight", getStyleValue(degnattrval, ctrltype + ".font-weight"));
  7378. strStyle += getCtrlAttribute("font-style", getStyleValue(degnattrval, ctrltype + ".font-style"));
  7379. strStyle += getCtrlAttribute("color", getStyleValue(degnattrval, ctrltype + ".color"));
  7380. strStyle += getCtrlAttribute("text-decoration", getStyleValue(degnattrval, ctrltype + ".text-decoration"));
  7381. strStyle += getCtrlAttribute("text-align", getStyleValue(degnattrval, ctrltype + ".text-align"));
  7382. strStyle += getCtrlAttribute("vertical-align", getStyleValue(degnattrval, ctrltype + ".vertical-align"));
  7383. strStyle += getCtrlAttribute("word-wrap", getStyleValue(degnattrval, ctrltype + ".word-wrap"));
  7384. strStyle += getCtrlAttribute("line-spacing", getStyleValue(degnattrval, ctrltype + ".line-spacing"));
  7385. strStyle += getCtrlAttribute("text-select", getStyleValue(degnattrval, ctrltype + ".text-select"));
  7386. var grd = viewobj.document.controls("GRD_" + degnitemno);
  7387. if(grd != null)
  7388. {
  7389. var cols = grd.cols;
  7390. var coltype = grd.colType(cols-1);
  7391. switch(coltype)
  7392. {
  7393. case "OUTPUT": // OUTPUT
  7394. case "output":
  7395. grd.addColumn("type:output; ref:test_col; " + strStyle);
  7396. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7397. break;
  7398. case "INPUT": // INPUT
  7399. case "input":
  7400. case "":
  7401. grd.addColumn("type:input; ref:test_col; " + strStyle);
  7402. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7403. break;
  7404. case "INPUTBUTTON": // INPUT+BUTTON
  7405. case "inputbutton":
  7406. grd.addColumn("type:inputbutton; ref:test_col; " + strStyle);
  7407. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7408. break;
  7409. case "INPUTDATE": // INPUT+DATE
  7410. case "inputdate":
  7411. grd.addColumn("type:inputdate; ref:test_col; " + strStyle);
  7412. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7413. break;
  7414. case "COMBO": // COMBO
  7415. case "combo":
  7416. {
  7417. var colid = "GSU_" + cols;
  7418. grd.addColumn("type:combo; ref:recitem[colno='" + cols + "']/reccnts; id:" + colid + "; " + strStyle);
  7419. var subctrl = eval(colid);
  7420. var choices = subctrl.createChild("xforms:choices" , "");
  7421. var nodesetPath = grd.cellComboNodeset(1, cols-1);
  7422. var itemset = choices.createChild("xforms:itemset", "nodeset:" + nodesetPath);
  7423. itemset.createChild("xforms:label", "ref:valitemnm");
  7424. itemset.createChild("xforms:value", "ref:valitemnm");
  7425. //itemset.createChild("xforms:value", "ref:valcd");
  7426. break;
  7427. }
  7428. case "CHECKBOX": // CHECKBOX
  7429. case "checkbox":
  7430. grd.addColumn("type:checkbox; ref:test_col; " + strStyle);
  7431. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7432. break;
  7433. case "RADIO": // RADIO
  7434. case "radio":
  7435. grd.addColumn("type:radio; ref:test_col; " + strStyle);
  7436. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7437. break;
  7438. }
  7439. // TF 버그로 인하여 color를 재설정(strStyle 에서 color를 설정했음에도 변경되지 않음.)
  7440. grd.allstyle( "data", "color" ) = getStyleValue(degnattrval, ctrltype + ".color");
  7441. pmodel.removeNodeset("/root/main/descendant::test_col");
  7442. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7443. var len = grdList.length;
  7444. for(var i = 0; i < len; i++)
  7445. {
  7446. var grdNode = grdList.item(i);
  7447. var recitemNodeList = grdNode.selectNodes("recitem");
  7448. // recitem노드리스트에서 항상 마지막 recitem을 선택한다.
  7449. var recitemNode = recitemNodeList.item(recitemNodeList.length-1);
  7450. if(recitemNode != null)
  7451. {
  7452. //var subNode = grdNode.selectSingleNode("recitem");
  7453. var tmpNode = recitemNode.cloneNode(true);
  7454. var colnoNode = tmpNode.selectSingleNode("colno");
  7455. if(colnoNode != null)
  7456. colnoNode.text = cols;
  7457. var reccntsNode = tmpNode.selectSingleNode("reccnts");
  7458. if(reccntsNode != null)
  7459. reccntsNode.text = "";
  7460. //reccntsNode = tmpNode.selectSingleNode("reccnts");
  7461. var rectermcdNode = tmpNode.selectSingleNode("rectermcd");
  7462. if(rectermcdNode != null)
  7463. rectermcdNode.text = "";
  7464. var rectermnmNode = tmpNode.selectSingleNode("rectermnm");
  7465. if(rectermnmNode != null)
  7466. rectermnmNode.text = "";
  7467. var degnitemkindNode = tmpNode.selectSingleNode("degnitemkind");
  7468. if(degnitemkindNode != null)
  7469. degnitemkindNode.text = "GSU";
  7470. //var degnitemlevlcdNode = tmpNode.selectSingleNode("degnitemlevlcd");
  7471. //if(degnitemlevlcdNode != null)
  7472. //{
  7473. //}
  7474. var supdegnitemnoNode = tmpNode.selectSingleNode("supdegnitemno");
  7475. if(supdegnitemnoNode == null)
  7476. {
  7477. // 임시로 추가 노드를 생성한다.
  7478. model.makeValue("/root/temp/tempinfo/supdegnitemno", degnitemno);
  7479. model.makeValue("/root/temp/tempinfo/extdegnitemlevlcd", "");
  7480. model.makeValue("/root/temp/tempinfo/rectermflag", "");
  7481. model.makeValue("/root/temp/tempinfo/degnunitcd", "");
  7482. var supdegnitemnoNode = model.instance1.selectSingleNode("/root/temp/tempinfo/supdegnitemno");
  7483. var extdegnitemlevlcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/extdegnitemlevlcd");
  7484. var rectermflagNode = model.instance1.selectSingleNode("/root/temp/tempinfo/rectermflag");
  7485. var degnunitcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/degnunitcd");
  7486. tmpNode.appendChild(supdegnitemnoNode);
  7487. tmpNode.appendChild(extdegnitemlevlcdNode);
  7488. tmpNode.appendChild(rectermflagNode);
  7489. tmpNode.appendChild(degnunitcdNode);
  7490. }
  7491. else
  7492. {
  7493. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  7494. }
  7495. grdNode.appendChild(tmpNode);
  7496. }
  7497. }
  7498. grd.rebuild();
  7499. }
  7500. }
  7501. catch(e)
  7502. {
  7503. return;
  7504. }
  7505. model.refresh();
  7506. }
  7507. function addGridCol_old(degnitemno, viewobj)
  7508. {
  7509. try
  7510. {
  7511. var pageInfo = new PAGEINFO();
  7512. var pmodel = null;
  7513. if(viewobj == null)
  7514. {
  7515. viewobj = window;
  7516. pmodel = model;
  7517. }
  7518. else
  7519. pmodel = viewobj.model;
  7520. ////////////////
  7521. var degnattrval = pmodel.getValue(pageInfo.formdegnRef + "[degnitemno='" + degnitemno + "']/degnattrval");
  7522. var ctrltype = "ctrl";
  7523. var strStyle = "";
  7524. strStyle += getCtrlAttribute("font-family", getStyleValue(degnattrval, ctrltype + ".font-family"));
  7525. strStyle += getCtrlAttribute("font-size", getStyleValue(degnattrval, ctrltype + ".font-size"));
  7526. strStyle += getCtrlAttribute("font-weight", getStyleValue(degnattrval, ctrltype + ".font-weight"));
  7527. strStyle += getCtrlAttribute("font-style", getStyleValue(degnattrval, ctrltype + ".font-style"));
  7528. strStyle += getCtrlAttribute("color", getStyleValue(degnattrval, ctrltype + ".color"));
  7529. strStyle += getCtrlAttribute("text-decoration", getStyleValue(degnattrval, ctrltype + ".text-decoration"));
  7530. strStyle += getCtrlAttribute("text-align", getStyleValue(degnattrval, ctrltype + ".text-align"));
  7531. strStyle += getCtrlAttribute("vertical-align", getStyleValue(degnattrval, ctrltype + ".vertical-align"));
  7532. strStyle += getCtrlAttribute("word-wrap", getStyleValue(degnattrval, ctrltype + ".word-wrap"));
  7533. strStyle += getCtrlAttribute("line-spacing", getStyleValue(degnattrval, ctrltype + ".line-spacing"));
  7534. strStyle += getCtrlAttribute("text-select", getStyleValue(degnattrval, ctrltype + ".text-select"));
  7535. var grd = viewobj.document.controls("GRD_" + degnitemno);
  7536. if(grd != null)
  7537. {
  7538. var cols = grd.cols;
  7539. var coltype = grd.colType(cols-1);
  7540. switch(coltype)
  7541. {
  7542. case "OUTPUT": // OUTPUT
  7543. case "output":
  7544. grd.addColumn("type:output; ref:test_col; " + strStyle);
  7545. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7546. break;
  7547. case "INPUT": // INPUT
  7548. case "input":
  7549. case "":
  7550. grd.addColumn("type:input; ref:test_col; " + strStyle);
  7551. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7552. break;
  7553. case "INPUTBUTTON": // INPUT+BUTTON
  7554. case "inputbutton":
  7555. grd.addColumn("type:inputbutton; ref:test_col; " + strStyle);
  7556. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7557. break;
  7558. case "INPUTDATE": // INPUT+DATE
  7559. case "inputdate":
  7560. grd.addColumn("type:inputdate; ref:test_col; " + strStyle);
  7561. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7562. break;
  7563. case "COMBO": // COMBO
  7564. case "combo":
  7565. {
  7566. var colid = "GSU_" + cols;
  7567. grd.addColumn("type:combo; ref:recitem[colno='" + cols + "']/reccnts; id:" + colid + "; " + strStyle);
  7568. var subctrl = eval(colid);
  7569. var choices = subctrl.createChild("xforms:choices" , "");
  7570. var nodesetPath = grd.cellComboNodeset(1, cols-1);
  7571. var itemset = choices.createChild("xforms:itemset", "nodeset:" + nodesetPath);
  7572. itemset.createChild("xforms:label", "ref:valitemnm");
  7573. itemset.createChild("xforms:value", "ref:valitemnm");
  7574. //itemset.createChild("xforms:value", "ref:valcd");
  7575. break;
  7576. }
  7577. case "CHECKBOX": // CHECKBOX
  7578. case "checkbox":
  7579. grd.addColumn("type:checkbox; ref:test_col; " + strStyle);
  7580. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7581. break;
  7582. case "RADIO": // RADIO
  7583. case "radio":
  7584. grd.addColumn("type:radio; ref:test_col; " + strStyle);
  7585. grd.colAttribute(cols, "ref") = "recitem[colno='" + cols + "']/reccnts";
  7586. break;
  7587. }
  7588. // TF 버그로 인하여 color를 재설정(strStyle 에서 color를 설정했음에도 변경되지 않음.)
  7589. grd.allstyle( "data", "color" ) = getStyleValue(degnattrval, ctrltype + ".color");
  7590. pmodel.removeNodeset("/root/main/descendant::test_col");
  7591. var grdList = viewobj.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7592. var len = grdList.length;
  7593. for(var i = 0; i < len; i++)
  7594. {
  7595. var grdNode = grdList.item(i);
  7596. var recitemNodeList = grdNode.selectNodes("recitem");
  7597. // recitem노드리스트에서 항상 마지막 recitem을 선택한다.
  7598. var recitemNode = recitemNodeList.item(recitemNodeList.length-1);
  7599. if(recitemNode != null)
  7600. {
  7601. //var subNode = grdNode.selectSingleNode("recitem");
  7602. var tmpNode = recitemNode.cloneNode(true);
  7603. var colnoNode = tmpNode.selectSingleNode("colno");
  7604. if(colnoNode != null)
  7605. colnoNode.text = cols;
  7606. var reccntsNode = tmpNode.selectSingleNode("reccnts");
  7607. if(reccntsNode != null)
  7608. reccntsNode.text = "";
  7609. //reccntsNode = tmpNode.selectSingleNode("reccnts");
  7610. var rectermcdNode = tmpNode.selectSingleNode("rectermcd");
  7611. if(rectermcdNode != null)
  7612. rectermcdNode.text = "";
  7613. var rectermnmNode = tmpNode.selectSingleNode("rectermnm");
  7614. if(rectermnmNode != null)
  7615. rectermnmNode.text = "";
  7616. var degnitemkindNode = tmpNode.selectSingleNode("degnitemkind");
  7617. if(degnitemkindNode != null)
  7618. degnitemkindNode.text = "GSU";
  7619. //var degnitemlevlcdNode = tmpNode.selectSingleNode("degnitemlevlcd");
  7620. //if(degnitemlevlcdNode != null)
  7621. //{
  7622. //}
  7623. var supdegnitemnoNode = tmpNode.selectSingleNode("supdegnitemno");
  7624. if(supdegnitemnoNode == null)
  7625. {
  7626. // 임시로 추가 노드를 생성한다.
  7627. model.makeValue("/root/temp/tempinfo/supdegnitemno", degnitemno);
  7628. model.makeValue("/root/temp/tempinfo/extdegnitemlevlcd", "");
  7629. model.makeValue("/root/temp/tempinfo/rectermflag", "");
  7630. model.makeValue("/root/temp/tempinfo/degnunitcd", "");
  7631. var supdegnitemnoNode = model.instance1.selectSingleNode("/root/temp/tempinfo/supdegnitemno");
  7632. var extdegnitemlevlcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/extdegnitemlevlcd");
  7633. var rectermflagNode = model.instance1.selectSingleNode("/root/temp/tempinfo/rectermflag");
  7634. var degnunitcdNode = model.instance1.selectSingleNode("/root/temp/tempinfo/degnunitcd");
  7635. tmpNode.appendChild(supdegnitemnoNode);
  7636. tmpNode.appendChild(extdegnitemlevlcdNode);
  7637. tmpNode.appendChild(rectermflagNode);
  7638. tmpNode.appendChild(degnunitcdNode);
  7639. }
  7640. else
  7641. {
  7642. tmpNode.selectSingleNode("supdegnitemno").text = degnitemno;
  7643. }
  7644. grdNode.appendChild(tmpNode);
  7645. }
  7646. }
  7647. grd.rebuild();
  7648. }
  7649. }
  7650. catch(e)
  7651. {
  7652. return;
  7653. }
  7654. model.refresh();
  7655. }
  7656. /**
  7657. * @desc : 그리드 행제거
  7658. * @id :
  7659. * @event :
  7660. * @return :
  7661. * @authur : 이상현
  7662. */
  7663. function removeGridRow(degnitemno, type)
  7664. {
  7665. var rows = instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']").length;
  7666. var lastRow = rows - 1; //grd.row - grd.fixedRows;
  7667. if(lastRow == "0")
  7668. {
  7669. messageBox("더 이상은 삭제", "E001");
  7670. return;
  7671. }
  7672. if(type == null)
  7673. type = "GRD";
  7674. var pageInfo = new PAGEINFO();
  7675. var grd = document.controls(type + "_" + degnitemno);
  7676. // 전체 그리드 개수
  7677. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7678. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']").length;
  7679. var GridNodesList = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7680. // 선택한 row만 삭제한다.
  7681. var selectedrow = grd.selectedRows;
  7682. if(selectedrow == 0)
  7683. {
  7684. // 행 선택없이 삭제를 누른 경우 Default로 마지막 행이 삭제되도록 한다.
  7685. for(var idx=0; idx < cnt; idx++)
  7686. {
  7687. var subNode = GridNodesList.item(idx);
  7688. if(subNode != null)
  7689. {
  7690. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7691. if(subDegnItemNo == degnitemno)
  7692. {
  7693. var subRecNode = subNode.selectSingleNode("recitem");
  7694. var subRow = subRecNode.selectSingleNode("rowno").text;
  7695. if(lastRow == subRow)
  7696. {
  7697. subNode.parentNode.removeChild(subNode);
  7698. //break;
  7699. //model.removenode("/root/main/recinfo/grid[" + (idx+1) + "]"); //[degnitemno='" + degnitemno + "']");
  7700. }
  7701. }
  7702. }
  7703. }
  7704. }
  7705. else
  7706. {
  7707. var selRow = "";
  7708. // 선택한 행이 있을 경우 선택한 행만 지운다.
  7709. for(var row = 0; row < selectedrow; row++)
  7710. {
  7711. selRow = grd.selectedRow(row);
  7712. // 그리드를 삭제한다.
  7713. var subNode = GridNodesList.item(selRow-1);
  7714. subNode.parentNode.removeChild(subNode);
  7715. }
  7716. // 변경된 row를 재지정
  7717. var newRow = 0;
  7718. grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7719. cnt = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']").length;
  7720. GridNodesList = instance1.selectNodes(pageInfo.RecinfoGridRef + "[degnitemno = '" + degnitemno + "']");
  7721. for(var row = 0; row < cnt; row++)
  7722. {
  7723. var subNode = GridNodesList.item(row);
  7724. if(subNode != null)
  7725. {
  7726. var recitemNodelist = subNode.selectNodes("recitem");
  7727. for(var col = 0; col < recitemNodelist.length; col++)
  7728. {
  7729. var recitemNode = recitemNodelist.item(col);
  7730. recitemNode.selectSingleNode("rowno").text = row;
  7731. }
  7732. }
  7733. }
  7734. }
  7735. grd.rebuild();
  7736. model.refresh();
  7737. }
  7738. function removeGridRow_old(degnitemno, type)
  7739. {
  7740. var rows = instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']").length;
  7741. var curRow = rows - 1; //grd.row - grd.fixedRows;
  7742. if(curRow == "0")
  7743. {
  7744. messageBox("더 이상은 삭제", "E001");
  7745. return;
  7746. }
  7747. if(type == null)
  7748. type = "GRD";
  7749. var pageInfo = new PAGEINFO();
  7750. var grd = document.controls(type + "_" + degnitemno);
  7751. // 전체 그리드 개수
  7752. var grdCnt = getNodesetCnt(model, pageInfo.RecinfoGridRef);
  7753. var cnt = instance1.selectNodes(pageInfo.RecinfoGridRef).length;
  7754. var GridNodesList = instance1.selectNodes(pageInfo.RecinfoGridRef);
  7755. for(var idx=0; idx < cnt; idx++)
  7756. {
  7757. var subNode = GridNodesList.item(idx);
  7758. if(subNode != null)
  7759. {
  7760. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7761. if(subDegnItemNo == degnitemno)
  7762. {
  7763. var subRecNode = subNode.selectSingleNode("recitem");
  7764. var subRow = subRecNode.selectSingleNode("rowno").text;
  7765. if(curRow == subRow)
  7766. {
  7767. //break;
  7768. model.removenode("/root/main/recinfo/grid[" + (idx+1) + "]"); //[degnitemno='" + degnitemno + "']");
  7769. }
  7770. }
  7771. }
  7772. }
  7773. grd.rebuild();
  7774. model.refresh();
  7775. }
  7776. /**
  7777. * @desc : 그리드 열 제거 Version2
  7778. * @id :
  7779. * @event :
  7780. * @return :
  7781. * @authur : 이상현
  7782. */
  7783. function removeGridRowEx(degnitemno, type)
  7784. {
  7785. if(type == null){
  7786. type = "GRD";
  7787. }
  7788. try
  7789. {
  7790. var grdobj = document.controls(type + "_" + degnitemno);
  7791. for(var i = grdobj.selectedRows-1; i >= 0; i--)
  7792. {
  7793. var currow = grdobj.selectedRow(i);
  7794. var node = instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7795. currow--;
  7796. model.removenode(node.item(currow));
  7797. }
  7798. //var currow = grdobj.row - 1;
  7799. //model.removenode("/root/main/recinfo/grid[" + (currow + 1) + "]");
  7800. //grid node remove후, grid rowno재설정
  7801. var nodelist = model.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7802. var totrow = nodelist.length;
  7803. var irowcnt = 0;
  7804. for(var i = 0; i < totrow; i++){
  7805. var node = nodelist.item(i);
  7806. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960']/rowno"); //진단header
  7807. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno"); //R/O
  7808. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno"); //주부
  7809. var path4 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno"); //진단명
  7810. if(path1 != null)
  7811. path1.text = irowcnt;
  7812. if(path2 != null)
  7813. path2.text = irowcnt;
  7814. if(path3 != null)
  7815. path3.text = irowcnt;
  7816. if(path4 != null)
  7817. path4.text = irowcnt;
  7818. irowcnt++;
  7819. }
  7820. grdobj.rebuild();
  7821. }
  7822. catch(e)
  7823. {
  7824. }
  7825. }
  7826. /**
  7827. * @desc : 그리드 열 제거 Version2
  7828. * @id :
  7829. * @event :
  7830. * @return :
  7831. * @authur : 이상현
  7832. */
  7833. function removeGridRowEx_old(degnitemno, type)
  7834. {
  7835. if(type == null)
  7836. type = "GRD";
  7837. var grd = document.controls(type + "_" + degnitemno);
  7838. var currow = grd.row - 1;
  7839. //alert(currow + "," + degnitemno);
  7840. //var rows = instance1.selectNodes("/root/main/recinfo/recitem[degnitemno='" + degnitemno + "']").length;
  7841. //var curRow = grd.textMatrix(grd.row, grd.cols - 1);
  7842. //alert(curRow);
  7843. model.removenode("/root/main/recinfo/grid[" + (currow+1) + "]");
  7844. /*
  7845. var totrow = model.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']").length;
  7846. var irowcnt = 0;
  7847. for(var i = 1 ; i <= totrow; i++){
  7848. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960']/rowno", irowcnt); //진단header
  7849. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno", irowcnt); //R/O
  7850. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno", irowcnt); //주부
  7851. model.setValue("/root/main/recinfo/grid[" + i + "] and [degnitemno='" + degnitemno + "']/recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno", irowcnt); //진단명
  7852. irowcnt++;
  7853. }*/
  7854. var nodelist = model.instance1.selectNodes("/root/main/recinfo/grid[degnitemno='" + degnitemno + "']");
  7855. var totrow = nodelist.length;
  7856. var irowcnt = 0;
  7857. for(var i = 0; i < totrow; i++){
  7858. var node = nodelist.item(i);
  7859. //alert(node.xml);
  7860. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960']/rowno"); //진단header
  7861. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno"); //R/O
  7862. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno"); //주부
  7863. var path4 = node.selectSingleNode("recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno"); //진단명
  7864. //alert(path1.text + "," + path2.text + "," + path3.text + "," + path4.text);
  7865. path1.text = irowcnt;
  7866. path2.text = irowcnt;
  7867. path3.text = irowcnt;
  7868. path4.text = irowcnt;
  7869. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960']/rowno").text = irowcnt; //진단header
  7870. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0004249']/rowno").text = irowcnt; //R/O
  7871. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0001443']/rowno").text = irowcnt; //주부
  7872. //node.selectSingleNode("/root/main/recinfo/grid/recitem[degnitemlevlcd='0016650.0000960.0000960']/rowno").text = irowcnt; //진단명
  7873. irowcnt++;
  7874. }
  7875. grd.rebuild();
  7876. }
  7877. /**
  7878. * @desc : 그리드 열 제거
  7879. * @id :
  7880. * @event :
  7881. * @return :
  7882. * @authur : 이상현
  7883. */
  7884. /*
  7885. function removeGridCol_old(degnitemno)
  7886. {
  7887. var grd = document.controls("GRD_" + degnitemno);
  7888. if(grd != null)
  7889. {
  7890. var cols = grd.cols;
  7891. if(cols == 1)
  7892. {
  7893. messageBox("더 이상은 삭제", "E001");
  7894. return;
  7895. }
  7896. // 전체 그리드 개수
  7897. var grdCnt = getNodesetCnt(model, "/root/main/recinfo/grid"); //pageInfo.RecinfoGridRef);
  7898. var GridNodesList = instance1.selectNodes("/root/main/recinfo/grid");
  7899. var cnt = 0;
  7900. for(var idx=0; idx < grdCnt; idx++)
  7901. {
  7902. var subNode = GridNodesList.item(idx);
  7903. if(subNode != null)
  7904. {
  7905. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7906. if(subDegnItemNo == degnitemno)
  7907. {
  7908. model.removeNode("/root/main/recinfo/grid[" + (idx+1) + "]/recitem[" + (cols + 1) + "][rowno = " + cnt + " colno='" + (cols - 1) + "']");
  7909. cnt++;
  7910. }
  7911. }
  7912. }
  7913. grd.removeColumn();
  7914. }
  7915. }
  7916. */
  7917. /**
  7918. * @desc : 그리드 열 제거
  7919. * @id :
  7920. * @event :
  7921. * @return :
  7922. * @authur : 이상현
  7923. */
  7924. function removeGridCol(degnitemno, type)
  7925. {
  7926. if(type == null)
  7927. type = "GRD";
  7928. var ctrlid = type + "_" + degnitemno;
  7929. var grd = document.controls(ctrlid);
  7930. if(grd != null)
  7931. {
  7932. var cols = grd.cols;
  7933. if(cols == 1)
  7934. {
  7935. messageBox("더 이상은 삭제", "E001");
  7936. return;
  7937. }
  7938. // 전체 그리드 개수
  7939. var grdCnt = getNodesetCnt(model, "/root/main/recinfo/grid"); //pageInfo.RecinfoGridRef);
  7940. var GridNodesList = instance1.selectNodes("/root/main/recinfo/grid");
  7941. var cnt = 0;
  7942. for(var idx=0; idx < grdCnt; idx++)
  7943. {
  7944. var subNode = GridNodesList.item(idx);
  7945. if(subNode != null)
  7946. {
  7947. var subDegnItemNo = subNode.selectSingleNode("degnitemno").text;
  7948. if(subDegnItemNo == degnitemno)
  7949. {
  7950. model.removeNode("/root/main/recinfo/grid[" + (idx+1) + "]/recitem[" + (cols + 1) + "][rowno = " + cnt + " colno='" + (cols - 1) + "']");
  7951. cnt++;
  7952. }
  7953. }
  7954. }
  7955. grd.removeColumn();
  7956. }
  7957. }
  7958. /**
  7959. * @desc : 기록아이템 값을 가져온다
  7960. * @id :
  7961. * @event :
  7962. * @return :
  7963. * @authur : 이상현
  7964. */
  7965. // function getFormRecItemExist()
  7966. // {
  7967. // var iNodeCnt = 0;
  7968. // var pageInfo = new PAGEINFO();
  7969. // var iNodeCnt = getNodesetCnt(model, pageInfo.recItemRef + "[reccnts != '' or rectermcd != '' or rectermnm != '']");
  7970. //
  7971. // return iNodeCnt;
  7972. // }
  7973. //
  7974. /**
  7975. * @desc : 첫글자 제거 후 리턴(첫글자가 str과 동일할 경우)
  7976. * @id :
  7977. * @event :
  7978. * @return :
  7979. * @authur : 이상현
  7980. */
  7981. function getRemoveLeftChar(srcdata, str)
  7982. {
  7983. var i, j = 0;
  7984. for (i = 0; i < srcdata.length; i++) {
  7985. if (srcdata.charAt(i) == str) j = j + 1;
  7986. else break;
  7987. }
  7988. return srcdata.substr(j, srcdata.length - j + 1);
  7989. }
  7990. /*****************************************************************************
  7991. 튜닝
  7992. ******************************************************************************/
  7993. var LOAD_COMPLETE = true;
  7994. var LOAD_INCOMPLETE = false;
  7995. var COMN_FORM = 1;
  7996. var UNIT_FORM = 2;
  7997. var GENL_FORM = 3;
  7998. /**
  7999. * @group :
  8000. * @ver : 2008.06.13
  8001. * @by : snoweye
  8002. * @---------------------------------------------------
  8003. * @type : function
  8004. * @access : public
  8005. * @desc : 부모 화면으로 onloadcomplete 이벤트를 dispatch
  8006. * @param : curformtype - 로딩이 완료된 서식의 종류 (COMN_FORM/UNIT_FORM/GENL_FORM)
  8007. * @return :
  8008. * @---------------------------------------------------
  8009. */
  8010. function dispOnLoadComplete(curformtype, formcd)
  8011. {
  8012. sysf_trace_emr("***** dispOnLoadComplete("+curformtype+", "+formcd+") EMRCommon *****");
  8013. // TF 는 parent 체크하여 동작되나 XP일 경우 this는 서식로더가 포함되는 진료기록메인의 ivw_loder 임
  8014. if(utlf_isNull(parent))
  8015. return;
  8016. //setLoadStatus(parent, formcd, curformtype);
  8017. parent.frmf_setParameter("loadstatus", curformtype);
  8018. parent.frmf_setParameter("loadformcd", formcd);
  8019. parent.lf_onloadcomplete();
  8020. }
  8021. /**
  8022. * @group :
  8023. * @ver : 2008.06.13
  8024. * @by : snoweye
  8025. * @---------------------------------------------------
  8026. * @type : function
  8027. * @access : public
  8028. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  8029. * @param : fstLevlItemCd - 최상위 아이템 코드
  8030. * @return :
  8031. * @---------------------------------------------------
  8032. */
  8033. function setFstLevlItemCd_old(fstLevlItemCd)
  8034. {
  8035. var nodeList = instance1.selectNodes(gPageInfo_EMR.recItemRef);
  8036. for(var i = 0; i < nodeList.length; i++)
  8037. {
  8038. var recitemNode = nodeList.item(i);
  8039. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8040. //fstlevlitemcdNode.text = fstLevlItemCd;
  8041. model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8042. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8043. //degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8044. model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8045. }
  8046. }
  8047. /**
  8048. * @group :
  8049. * @ver : 2008.06.13
  8050. * @by : snoweye
  8051. * @modify : 2008.07.10 (snoweye)
  8052. * @---------------------------------------------------
  8053. * @type : function
  8054. * @access : public
  8055. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  8056. * @param : ivwObj - 최상위 아이템 코드를 세팅할 iviewer 객체
  8057. * @param : formcd - iviewer에 로딩된 서식의 코드
  8058. * @return :
  8059. * @---------------------------------------------------
  8060. */
  8061. function setFstLevlItemCd(ivwObj, formcd)
  8062. {
  8063. var orgsupdegnitemno = model.getValue(gPageInfo_EMR.forminfoRef + "/unitformmast[formcd='" + formcd + "' and loaded != 'true']/orgsupdegnitemno");
  8064. var degnitemlevlcd = model.getValue(gPageInfo_EMR.formdegnRef + "[degnitemno = '" + orgsupdegnitemno + "']/degnitemlevlcd");
  8065. var fstLevlBaseItemCd = degnitemlevlcd.substr(0, degnitemlevlcd.indexOf(".") >= 0 ? degnitemlevlcd.indexOf(".") : degnitemlevlcd.length);
  8066. var fstLevlItemCd = model.getValue(gPageInfo_EMR.formdegnRef + "[degnitemlevlcd = '" + fstLevlBaseItemCd + "']/degnitemcd");
  8067. var nodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.recItemRef);
  8068. for(var i = 0; i < nodeList.length; i++)
  8069. {
  8070. var recitemNode = nodeList.item(i);
  8071. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8072. if(fstlevlitemcdNode == null)
  8073. continue;
  8074. if(recitemNode.selectSingleNode("degnunitcd") == null)
  8075. {
  8076. var unitcdNode = instance1.createElement("degnunitcd");
  8077. recitemNode.appendChild(unitcdNode);
  8078. }
  8079. fstlevlitemcdNode.text = fstLevlItemCd;
  8080. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8081. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8082. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8083. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8084. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8085. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8086. }
  8087. var grdNodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.RecinfoGridRef);
  8088. for(var i = 0; i < grdNodeList.length; i++)
  8089. {
  8090. // degnunitcd 노드 확인
  8091. var degnitemlevlNode = grdNodeList.item(i).selectSingleNode("degnitemlevlcd");
  8092. degnitemlevlNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlNode.text;
  8093. var itemNodeList = grdNodeList.item(i).selectNodes("recitem");
  8094. for(var j = 0; j < itemNodeList.length; j++)
  8095. {
  8096. var recitemNode = itemNodeList.item(j);
  8097. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8098. if(fstlevlitemcdNode == null)
  8099. continue;
  8100. if(recitemNode.selectSingleNode("degnunitcd") == null)
  8101. {
  8102. var unitcdNode = instance1.createElement("degnunitcd");
  8103. recitemNode.appendChild(unitcdNode);
  8104. }
  8105. fstlevlitemcdNode.text = fstLevlItemCd;
  8106. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8107. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8108. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8109. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8110. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8111. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8112. }
  8113. }
  8114. var tempnodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.initrecItemRef);
  8115. for(var i = 0; i < tempnodeList.length; i++)
  8116. {
  8117. var recitemNode = tempnodeList.item(i);
  8118. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8119. if(fstlevlitemcdNode == null)
  8120. continue;
  8121. if(recitemNode.selectSingleNode("degnunitcd") == null)
  8122. {
  8123. var unitcdNode = instance1.createElement("degnunitcd");
  8124. recitemNode.appendChild(unitcdNode);
  8125. }
  8126. fstlevlitemcdNode.text = fstLevlItemCd;
  8127. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8128. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8129. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8130. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8131. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8132. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8133. }
  8134. var tempgrdNodeList = ivwObj.instance1.selectNodes(gPageInfo_EMR.initRecinfoGridRef);
  8135. for(var i = 0; i < tempgrdNodeList.length; i++)
  8136. {
  8137. var degnitemlevlNode = tempgrdNodeList.item(i).selectSingleNode("degnitemlevlcd");
  8138. degnitemlevlNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlNode.text;
  8139. var itemNodeList = tempgrdNodeList.item(i).selectNodes("recitem");
  8140. for(var j = 0; j < itemNodeList.length; j++)
  8141. {
  8142. var recitemNode = itemNodeList.item(j);
  8143. var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8144. if(fstlevlitemcdNode == null)
  8145. continue;
  8146. fstlevlitemcdNode.text = fstLevlItemCd;
  8147. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/fstlevlitemcd", fstLevlItemCd);
  8148. var degnitemlevlcdNode = recitemNode.selectSingleNode("degnitemlevlcd");
  8149. degnitemlevlcdNode.text = fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text;
  8150. //ivwObj.model.setValue(gPageInfo_EMR.recItemRef + "[" + (i + 1) + "]/degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + degnitemlevlcdNode.text);
  8151. var degnitemlevlnoNode = recitemNode.selectSingleNode("degnitemlevlno");
  8152. degnitemlevlnoNode.text = parseInt(degnitemlevlnoNode.text) + 1;
  8153. }
  8154. }
  8155. }
  8156. /**
  8157. * @group :
  8158. * @ver : 2009.12.22
  8159. * @by : acwon
  8160. * @modify : 2009.12.22 (acwon)
  8161. * @---------------------------------------------------
  8162. * @type : function
  8163. * @access : public
  8164. * @desc : 부분서식의 아이템에 부분서식 상위코드를 세팅
  8165. * 동일한 부분서식이 두개이상일때 문제점이 발견되어 보완함.
  8166. * @param : ivwObj - 최상위 아이템 코드를 세팅할 iviewer 객체
  8167. * orgSupDegnItemNo
  8168. * @return :
  8169. * @---------------------------------------------------
  8170. */
  8171. // function setFstLevlItemCdOnUnitForm(ivwObj, orgSupDegnItemNo)
  8172. // {
  8173. // sysf_trace_emr("***** setFstLevlItemCdOnUnitForm("+ivwObj+", "+orgSupDegnItemNo+") EMRCommon 부분서식의 아이템에 부분서식 상위코드를 세팅*****");
  8174. // //var EMR_formdegnRefDs = this.objects[gPageInfo_EMR.formdegnRef];
  8175. // var degnitemlevlcd = ds_data_formdegn.lookup("degnitemno", orgSupDegnItemNo, "degnitemlevlcd");
  8176. // var fstLevlBaseItemCd = degnitemlevlcd.substr(0, degnitemlevlcd.indexOf(".") >= 0 ? degnitemlevlcd.indexOf(".") : degnitemlevlcd.length);
  8177. // var fstLevlItemCd = ds_data_formdegn.lookup("degnitemlevlcd", fstLevlBaseItemCd, "degnitemcd");
  8178. //
  8179. // var nodeList = ivwObj.objects["ds_data_recitem"];
  8180. // var nodeListCnt = 0;
  8181. // if( nodeList != null ) nodeListCnt = nodeList.rowcount;
  8182. //
  8183. // for(var i = 0; i < nodeListCnt; i++)
  8184. // {
  8185. // var recitemNode = nodeList;
  8186. //
  8187. // if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  8188. // continue;
  8189. //
  8190. // if(recitemNode.getColumnInfo("degnunitcd") == null)
  8191. // {
  8192. // recitemNode.addColumn("degnunitcd", "string");
  8193. // }
  8194. //
  8195. // recitemNode.setColumn(i, "fstlevlitemcd", fstLevlItemCd);
  8196. // recitemNode.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(i, "degnitemlevlcd"));
  8197. // recitemNode.setColumn(i, "degnitemlevlno", parseInt(recitemNode.getColumn(i, "degnitemlevlno")) + 1)
  8198. // }
  8199. //
  8200. // sysf_trace_emr("jw.choe grid dataset check EMRCommon ");
  8201. // var grdNodeList = ivwObj.objects["ds_main_recinfo_grid"];//ivwObj.objects[gPageInfo_EMR.RecinfoGridRef];
  8202. // var grdNodeListCnt = 0;
  8203. // if( grdNodeList != null ) grdNodeListCnt = grdNodeList.rowcount;
  8204. // for(var i = 0; i < grdNodeListCnt; i++)
  8205. // {
  8206. // grdNodeList.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + grdNodeList.getColumn(i, "degnitemlevlcd"));
  8207. //
  8208. // //var itemNodeList = grdNodeList.item(i).selectNodes("recitem");
  8209. // var itemNodeList = ivwObj.objects["ds_main_recinfo_grid_recitem"];
  8210. // var itemNodeListCnt = 0;
  8211. // if( itemNodeList != null ) itemNodeListCnt = itemNodeList.rowcount;
  8212. // for(var j = 0; j < itemNodeListCnt; j++)
  8213. // {
  8214. // var recitemNode = itemNodeList;
  8215. // //var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8216. //
  8217. // if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  8218. // continue;
  8219. //
  8220. // if(recitemNode.getColumnInfo("degnunitcd") == null)
  8221. // {
  8222. // recitemNode.addColumn("degnunitcd", "string");
  8223. // }
  8224. //
  8225. // recitemNode.setColumn(j, "fstlevlitemcd", fstLevlItemCd);
  8226. // recitemNode.setColumn(j, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(j, "degnitemlevlcd"));
  8227. // recitemNode.setColumn(j, "degnitemlevlno", parseInt(recitemNode.getColumn(j, "degnitemlevlno")) + 1);
  8228. // }
  8229. // }
  8230. //
  8231. // var tempnodeList = ivwObj.objects["ds_temp_recitem"];//ivwObj.objects[gPageInfo_EMR.initrecItemRef];
  8232. // var tempnodeListCnt = 0;
  8233. // if( tempnodeList != null ) tempnodeListCnt = tempnodeList.rowcount;
  8234. //
  8235. // for(var i = 0; i < tempnodeListCnt; i++)
  8236. // {
  8237. // var recitemNode = tempnodeList;
  8238. // //var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8239. //
  8240. // if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  8241. // continue;
  8242. //
  8243. // if(recitemNode.getColumnInfo("degnunitcd") == null)
  8244. // {
  8245. // recitemNode.addColumn("degnunitcd", "string");
  8246. // }
  8247. //
  8248. // recitemNode.setColumn(i, "fstlevlitemcd", fstLevlItemCd);
  8249. // recitemNode.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(i, "degnitemlevlcd"));
  8250. // recitemNode.setColumn(i, "degnitemlevlno", parseInt(recitemNode.getColumn(i, "degnitemlevlno")) + 1);
  8251. // }
  8252. //
  8253. // var tempgrdNodeList = ivwObj.objects["ds_temp_recinfo_grid"];//ivwObj.objects[gPageInfo_EMR.initRecinfoGridRef];
  8254. // var tempgrdNodeListCnt = 0;
  8255. // if( tempgrdNodeList != null ) tempgrdNodeListCnt = tempgrdNodeList.rowcount;
  8256. // for(var i = 0; i < tempgrdNodeListCnt; i++)
  8257. // {
  8258. // tempgrdNodeList.setColumn(i, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + tempgrdNodeList.getColumn(i, "degnitemlevlcd"))
  8259. //
  8260. // //var itemNodeList = tempgrdNodeList.item(i).selectNodes("recitem");
  8261. // var itemNodeList = ivwObj.objects["ds_temp_recinfo_grid_recitem"];
  8262. // var itemNodeListCnt = 0;
  8263. // if( itemNodeList != null ) itemNodeListCnt = itemNodeList.rowcount;
  8264. // for(var j = 0; j < itemNodeListCnt; j++)
  8265. // {
  8266. // var recitemNode = itemNodeList;
  8267. // //var fstlevlitemcdNode = recitemNode.selectSingleNode("fstlevlitemcd");
  8268. //
  8269. // if(recitemNode.getColumnInfo("fstlevlitemcd") == null)
  8270. // continue;
  8271. //
  8272. // recitemNode.setColumn(j, "fstlevlitemcd", fstLevlItemCd);
  8273. // recitemNode.setColumn(j, "degnitemlevlcd", fstLevlItemCd.substr(0, 7) + "." + recitemNode.getColumn(j, "degnitemlevlcd"));
  8274. // recitemNode.setColumn(j, "degnitemlevlno", parseInt(recitemNode.getColumn(j, "degnitemlevlno")) + 1);
  8275. // }
  8276. // }
  8277. // }
  8278. /**
  8279. * @group :
  8280. * @ver : 2010.04.15
  8281. * @by : 주희경
  8282. * @modify:
  8283. * @---------------------------------------------------
  8284. * @type :
  8285. * @access : public
  8286. * @desc : 서식 저장 시 필수 입력 체크 할 때 해당 컨트롤이 disable상태인지 체크한다.
  8287. * @param :
  8288. * @param :
  8289. * @return :
  8290. * @---------------------------------------------------
  8291. */
  8292. function fGetReadOnlyStat( degnitemno )
  8293. {
  8294. var modelchildren = model.children;
  8295. var length = modelchildren.length;
  8296. for (i=0; i< length; i++)
  8297. {
  8298. if( modelchildren.item(i).elementName == "xforms:bind" )
  8299. {
  8300. var ref = modelchildren.item(i).attribute("ref");
  8301. if ( ref.indexOf("degnitemno='"+degnitemno+"'") > -1 )
  8302. {
  8303. var ctrlid = modelchildren.item(i).attribute("id").substr(5, modelchildren.item(i).attribute("id").length);
  8304. var pCtrl = document.all(ctrlid);
  8305. if ( pCtrl.disabled == true )
  8306. return true;
  8307. else
  8308. return false;
  8309. }
  8310. }
  8311. }
  8312. return false;
  8313. }
  8314. /**
  8315. * @group :
  8316. * @ver : 2008.07.28
  8317. * @by : 박종훈
  8318. * @modify:
  8319. * @---------------------------------------------------
  8320. * @type :
  8321. * @access : public
  8322. * @desc : 진료기록 미리보기에서 셋팅한 사용자변 글자크기를 레지스트리에 등록한다
  8323. * @param : regnm : 레지스트리 명
  8324. * @param : regval : 레지스트리 값
  8325. * @return :
  8326. * @---------------------------------------------------
  8327. */
  8328. function lf_setRegistry(regnm, regval)
  8329. {
  8330. var objExtCommon = new ExtCommon();
  8331. objExtCommon.regSetValue("HKEY_LOCAL_MACHINE", "SOFTWARE\\HIS\\Config\\" + sysf_getUserId(), regnm, regval + "" );
  8332. // model.registry("HKEY_LOCAL_MACHINE", "SOFTWARE\\HIS\\Config\\" + getUserId(), regnm, "STRING") = regval;
  8333. }
  8334. /**
  8335. * @group :
  8336. * @ver : 2008.07.28
  8337. * @by : 박종훈
  8338. * @modify:
  8339. * @---------------------------------------------------
  8340. * @type :
  8341. * @access : public
  8342. * @desc : 진료기록 미리보기에서 셋팅한 사용자변 글자크기를 레지스트리에 등록한다
  8343. * @param : regnm : 레지스트리 명
  8344. * @param :
  8345. * @return : regval : 레지스트리 값
  8346. * @---------------------------------------------------
  8347. */
  8348. function lf_getRegistry(regnm)
  8349. {
  8350. var objExtCommon = new ExtCommon();
  8351. var regval = objExtCommon.regGetValue("HKEY_LOCAL_MACHINE", "SOFTWARE\\HIS\\Config\\" + sysf_getUserId(), regnm, "S" );
  8352. //var regval = model.registry("HKEY_LOCAL_MACHINE", "SOFTWARE\\HIS\\Config\\" + getUserId(), regnm, "STRING");
  8353. return regval;
  8354. }
  8355. /**
  8356. * @group :
  8357. * @ver : 2008.09.16
  8358. * @by : 나종천
  8359. * @---------------------------------------------------
  8360. * @type : function
  8361. * @access : public
  8362. * @desc : Check Number
  8363. * @param : 체크번호를 제외한 등록번호, INSTCD
  8364. * @return : PID
  8365. * @---------------------------------------------------
  8366. */
  8367. function getCretCheckNo(sPid, sInstcd){
  8368. var iBowl = 0;
  8369. var iStock = 0;
  8370. var iLength = sPid.length;
  8371. switch(sInstcd){
  8372. case "012": // 강남성모병원 Check Number 생성로직
  8373. for(var i = 0; i < iLength; i ++) {
  8374. iBowl = parseInt(sPid.substring(i, i+1)) * (parseInt(iLength) - parseInt(i) );
  8375. iStock = parseInt(iStock) + parseInt(iBowl);
  8376. }
  8377. iBowl = (parseInt(iStock) - 5)/11;
  8378. if(parseInt(sPid) < 1950909){ // 2008-10-03 오픈시 원무 check 번호 로직 문제로 인하여 최초 생성번호 이후에는 버림처리로 분기함
  8379. iBowl = (parseInt(iStock) - (parseInt(Math.round(iBowl)) * 11) );
  8380. } else {
  8381. iBowl = (parseInt(iStock) - (parseInt(Math.floor(iBowl)) * 11) );
  8382. }
  8383. iBowl = 11 - parseInt(iBowl);
  8384. if( iBowl == 11 || iBowl == 10) {
  8385. iBowl = 0;
  8386. // iBowl 이 음수일 경우 '-'부호가 환자번호에 들어가서 양수로 변환해준다..
  8387. }else if( iBowl < 0) {
  8388. iBowl = parseInt(iBowl) * -1;
  8389. }
  8390. sPid = sPid.concat(parseInt(iBowl));
  8391. break;
  8392. case "017": // 빈센트병원 Check Number 생성로직
  8393. for( i = 0; i < iLength; i ++) {
  8394. iBowl = parseInt(sPid.substring(i, i+1)) * (i+2);
  8395. iStock = iStock + iBowl;
  8396. }
  8397. iBowl2 = (parseInt(iStock) - 5)/11;
  8398. iBowl = (iStock - parseInt((Math.round(iBowl2) * 11)) );
  8399. iBowl = 11 - iBowl;
  8400. if( iBowl == 11 || iBowl == 10) {
  8401. iBowl = 0;
  8402. // iBowl 이 음수일 경우 '-'부호가 환자번호에 들어가서 양수로 변환해준다..
  8403. }else if( iBowl < 0) {
  8404. iBowl = iBowl * -1;
  8405. }
  8406. sPid = sPid + "" + iBowl;
  8407. }
  8408. return sPid;
  8409. }
  8410. /**
  8411. * @desc : 메타데이터에서 caption을 CDATA로 감싼다.
  8412. * @id :
  8413. * @event :
  8414. * @return :
  8415. * @authur : 이경희
  8416. */
  8417. function SetCdata(metadata)
  8418. {
  8419. var strMeta = metadata;
  8420. // 1. CDATA로 감싸져 있는지 확인.
  8421. if(isSearchString(strMeta, "CDATA") == false)
  8422. {
  8423. var strStCaptionOld = "";
  8424. var strEdCaptionOld = "";
  8425. var strStCaptionNew = "";
  8426. var strEdCaptionNew = "";
  8427. // 배열로 반환
  8428. strStCaptionOld = GetXvgStCaption(strMeta);
  8429. strEdCaptionOld = GetXvgEdCaption(strMeta);
  8430. // for문으로 반복
  8431. for(var idx = 0; idx < strStCaptionOld.length; idx++)
  8432. {
  8433. if(idx == 0)
  8434. {
  8435. // 모든 </caption> 을 ]]]]><![CDATA[></caption> 으로 변경
  8436. strEdCaptionNew = "]]]]><![CDATA[>" + strEdCaptionOld[idx];
  8437. strMeta = strMeta.setReplaceWord(strEdCaptionOld[idx], strEdCaptionNew);
  8438. }
  8439. strStCaptionNew = strStCaptionOld[idx] + "<![CDATA[";
  8440. strMeta = strMeta.setReplaceWord(strStCaptionOld[idx], strStCaptionNew);
  8441. }
  8442. }
  8443. return strMeta;
  8444. }
  8445. /**
  8446. * @desc : 메타데이터에서 caption의 시작 태그를 반환한다.
  8447. * @id :
  8448. * @event :
  8449. * @return :
  8450. * @authur : 이경희
  8451. */
  8452. function GetXvgStCaption(metadata)
  8453. {
  8454. var strMeta = metadata;
  8455. var getStCaption = new Array();
  8456. var grpexpSt = new RegExp('(<caption[^<>]+>)', 'igm');
  8457. if(grpexpSt.test(strMeta) == true)
  8458. {
  8459. getStCaption = strMeta.match(grpexpSt);
  8460. strMeta = strMeta.replace(grpexpSt, "");
  8461. }
  8462. if(getStCaption.length > 0)
  8463. return getStCaption;
  8464. else
  8465. return "";
  8466. }
  8467. /**
  8468. * @desc : 메타데이터에서 caption의 종료 태그를 반환한다.
  8469. * @id :
  8470. * @event :
  8471. * @return :
  8472. * @authur : 이경희
  8473. */
  8474. function GetXvgEdCaption(metadata)
  8475. {
  8476. var strMeta = metadata;
  8477. var getEdCaption = new Array();
  8478. var grpexpEd = new RegExp('(</caption>)', 'igm');
  8479. if (grpexpEd.test(strMeta) == true)
  8480. {
  8481. getEdCaption = strMeta.match(grpexpEd);
  8482. strMeta = strMeta.replace(grpexpEd, "");
  8483. }
  8484. if(getEdCaption.length > 0)
  8485. return getEdCaption;
  8486. else
  8487. return "";
  8488. }
  8489. /**
  8490. * @desc : 메타데이터에서 viewmode, width, height 를 배열로 반환한다.
  8491. * @id :
  8492. * @event :
  8493. * @return :
  8494. * @authur : 이경희
  8495. */
  8496. function GetMetaMode(str)
  8497. {
  8498. var strXrw = str;
  8499. var regexp = new RegExp('(<Xvg [^<>]+>)', 'igm');
  8500. if (regexp.test(strXrw) == true)
  8501. {
  8502. var xvginfo = strXrw.match(regexp);
  8503. var strRtn = "";
  8504. for(var idx =0; idx < xvginfo.length; idx++)
  8505. {
  8506. strRtn += xvginfo[idx];
  8507. }
  8508. // ViewMode 얻기
  8509. strRtn = strRtn.setReplaceWord("<", "");
  8510. strRtn = strRtn.setReplaceWord(">", "");
  8511. strRtn = strRtn.setReplaceWord("'", "");
  8512. var arrAttrs = strRtn.split(" ");
  8513. var viewMode = "";
  8514. var viewWidth = "";
  8515. var viewHeight = "";
  8516. var strXvgInfo = new Array(3);
  8517. for(var i = 0; i < arrAttrs.length; i++)
  8518. {
  8519. var strSplit = arrAttrs[i].split("=");
  8520. if(strSplit[0] == "viewMode") {
  8521. viewMode = strSplit[1];
  8522. strXvgInfo[0] = viewMode;
  8523. continue;
  8524. }
  8525. if(strSplit[0] == "width") {
  8526. viewWidth = strSplit[1];
  8527. strXvgInfo[1] = viewWidth;
  8528. continue;
  8529. }
  8530. if(strSplit[0] == "height") {
  8531. viewHeight = strSplit[1];
  8532. strXvgInfo[2] = viewHeight;
  8533. continue;
  8534. }
  8535. }
  8536. return strXvgInfo;
  8537. }
  8538. else
  8539. {
  8540. return "";
  8541. }
  8542. }
  8543. /**
  8544. * @desc : XSLT 속성을 얻어온다.
  8545. * @
  8546. * @param :
  8547. * @return :
  8548. * @---------------------------------------------------
  8549. */
  8550. function getCtrlAttribute(type, value)
  8551. {
  8552. if(value != "") return type+":"+value+"; ";
  8553. return "";
  8554. }
  8555. /**
  8556. * @desc : 무인수납가능여부 표시
  8557. * @param :
  8558. * @return :
  8559. * @author : 2010.03.08 주희경
  8560. * @---------------------------------------------------
  8561. */
  8562. function fSetRcptpossynmsg( pid )
  8563. {
  8564. oDs_main = this.objects["ds_main"];
  8565. if( oDs_main == null ){
  8566. var objColInfo = new Array();
  8567. objColInfo.push({col: "rcptpossynmsg", type:"string", size:256, val:""});
  8568. dsf_createDsRow("ds_main", objColInfo);
  8569. }else{
  8570. if( oDs_main.getColumnInfo("rcptpossynmsg") == null ){
  8571. oDs_main.addColumn("rcptpossynmsg", "string");
  8572. }
  8573. }
  8574. dsf_createDs("ds_init_PAM_P0029");
  8575. pamfGetCodeList([{dsNm: "ds_init_PAM_P0029", cdGrpId: "P0029"}]);
  8576. //pamfGetCodeList(new Array("P0029"), new Array("/root/init/PAM/P0029list"));
  8577. //var p0029_node = "/root/init/PAM/P0029list/P0029";
  8578. var p0029_msg = "";
  8579. //sysf_trace_emr(ds_init_PAM_P0029.saveXML());
  8580. var objColInfo = new Array();
  8581. objColInfo.push({col: "pid", type:"string", size:256, val:pid});
  8582. objColInfo.push({col: "sessuserid", type:"string", size:256, val:sysf_getUserInfo("userid")});
  8583. objColInfo.push({col: "sessinstcd", type:"string", size:256, val:sysf_getUserInfo("dutplceinstcd")});
  8584. objColInfo.push({col: "checkyn", type:"string", size:256, val:"Y"});
  8585. objColInfo.push({col: "kioskioflag", type:"string", size:256, val:""});
  8586. objColInfo.push({col: "gubun", type:"string", size:256, val:""});
  8587. dsf_createDsRow("ds_inds_txpao99906", objColInfo);
  8588. dsf_setDefaultVal(ds_inds_txpao99906, "kioskioflag:O,gubun:Y");
  8589. objColInfo = new Array();
  8590. objColInfo.push({col: "error", type:"string", size:256});
  8591. objColInfo.push({col: "errortype", type:"string", size:256});
  8592. dsf_createDs("ds_main_rsv_h_opmi_opmi", objColInfo);
  8593. var oParam = {};
  8594. oParam.id = "TXPAO99906";
  8595. oParam.service = "kioskmngtapp.KioskRcpt";
  8596. oParam.method = "reqKioskOutOrdAmtCalc";
  8597. oParam.inds = "ptbs=ds_inds_txpao99906";
  8598. oParam.outds = "ds_main_rsv_h_opmi_opmi=opmi";
  8599. oParam.async = false;
  8600. //oParam.callback = "cf_TXPAO99906";
  8601. tranf_submit(oParam);
  8602. //sysf_trace_emr(ds_main_rsv_h_opmi_opmi.saveXML());
  8603. //sysf_trace_emr(ds_init_PAM_P0029.lookup("cdid", ds_main_rsv_h_opmi_opmi.getColumn(0, "error"), "detldesc"));
  8604. if(!utlf_isNull(ds_main_rsv_h_opmi_opmi.getColumn(0, "error"))) {
  8605. p0029_msg = "무인수납불가"
  8606. + frmf_removeMask(ds_init_PAM_P0029.lookup("cdid", ds_main_rsv_h_opmi_opmi.getColumn(0, "error"), "detldesc"), "죄송합니다.수납창구에서 번호표를 뽑고 대기하십시오");
  8607. }
  8608. if(utlf_isNull(ds_main_rsv_h_opmi_opmi.getColumn(0, "error"))) {
  8609. p0029_msg = "무인수납가능";
  8610. }
  8611. ds_main.setColumn(0, "rcptpossynmsg", p0029_msg);
  8612. txt_rcptpossynmsg.tooltiptext = ds_main.getColumn(0, "rcptpossynmsg");
  8613. }
  8614. ]]></Script>